diff --git a/SW/.vs/AssessmentMgmt/v16/.suo b/SW/.vs/AssessmentMgmt/v16/.suo index 58e6faa..1daaa9f 100644 Binary files a/SW/.vs/AssessmentMgmt/v16/.suo and b/SW/.vs/AssessmentMgmt/v16/.suo differ diff --git a/SW/WindowsApplication1/WindowsApplication1.jmconfig b/SW/20211125/AssessmentMgmt.jmconfig similarity index 100% rename from SW/WindowsApplication1/WindowsApplication1.jmconfig rename to SW/20211125/AssessmentMgmt.jmconfig diff --git a/SW/20211125/AssessmentMgmt.sln b/SW/20211125/AssessmentMgmt.sln new file mode 100644 index 0000000..9c3246c --- /dev/null +++ b/SW/20211125/AssessmentMgmt.sln @@ -0,0 +1,75 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31613.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "AssessmentMgmt", "AssessmentMgmt\AssessmentMgmt.vbproj", "{1B191999-7204-4EB5-96F7-A6805B0B32FC}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ThemenDokumente", "Dokumente\ThemenDokumente.vbproj", "{91C33E2D-DE28-4D17-B94B-240E51D2BCB9}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "_FRReporting", "_FRReporting\_FRReporting.vbproj", "{C04C6268-6402-4DEB-8BFA-E6A233B55DBF}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WindowsApp1", "WindowsApp1\WindowsApp1.vbproj", "{E7F8450A-BDE4-49D4-8256-A883DA46BAF8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|Any CPU.ActiveCfg = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.ActiveCfg = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.Build.0 = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|Any CPU.ActiveCfg = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|Mixed Platforms.Build.0 = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.ActiveCfg = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.Build.0 = Release|x86 + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Debug|x86.ActiveCfg = Debug|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Release|Any CPU.Build.0 = Release|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {91C33E2D-DE28-4D17-B94B-240E51D2BCB9}.Release|x86.ActiveCfg = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|x86.ActiveCfg = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Debug|x86.Build.0 = Debug|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|Any CPU.Build.0 = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|x86.ActiveCfg = Release|Any CPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF}.Release|x86.Build.0 = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Debug|x86.Build.0 = Debug|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|Any CPU.Build.0 = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|x86.ActiveCfg = Release|Any CPU + {E7F8450A-BDE4-49D4-8256-A883DA46BAF8}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {70BE0CBD-9FD7-4445-82CB-8A38BAC41906} + EndGlobalSection +EndGlobal diff --git a/SW/20211125/AssessmentMgmt.sln.bak b/SW/20211125/AssessmentMgmt.sln.bak new file mode 100644 index 0000000..3ff1528 --- /dev/null +++ b/SW/20211125/AssessmentMgmt.sln.bak @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "AssetMgmt", "AssetMgmt\AssetMgmt.vbproj", "{1B191999-7204-4EB5-96F7-A6805B0B32FC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.ActiveCfg = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.Build.0 = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.ActiveCfg = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SW/20211125/AssessmentMgmt.v12.suo b/SW/20211125/AssessmentMgmt.v12.suo new file mode 100644 index 0000000..f0a0bfc Binary files /dev/null and b/SW/20211125/AssessmentMgmt.v12.suo differ diff --git a/SW/20211125/AssessmentMgmt/App.config b/SW/20211125/AssessmentMgmt/App.config new file mode 100644 index 0000000..b3289b4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/SW/20211125/AssessmentMgmt/AssessmentMgmt.ico b/SW/20211125/AssessmentMgmt/AssessmentMgmt.ico new file mode 100644 index 0000000..d7aa832 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/AssessmentMgmt.ico differ diff --git a/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj b/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj new file mode 100644 index 0000000..1ccdb7c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj @@ -0,0 +1,569 @@ + + + + Debug + x86 + + + 2.0 + {1B191999-7204-4EB5-96F7-A6805B0B32FC} + WinExe + AssetMgmt.My.MyApplication + AssetMgmt + AssessmentMgmt + 512 + WindowsForms + v4.5 + + + + + x86 + true + full + true + true + bin\Debug\ + AssessmentMgmt.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + x86 + pdbonly + false + true + true + bin\Release\ + AssessmentMgmt.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + AssessmentMgmt.ico + + + + + False + C:\Program Files (x86)\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll + + + ..\..\..\..\Klassen\DropDownControl\bin\Release\DropDownControls.dll + + + True + + + + False + ..\..\..\Klassen\RTFEditor\RTFEditor\bin\Debug\RTFEditor.dll + + + D:\Installer\Sautinsoft\HTML-to-RTF Pro DLL .Net Full (4.8.9.21)\Bin\Net 3.5\SautinSoft.HtmlToRtf.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\Dokumente\bin\Debug\ThemenDokumente.dll + + + ..\_FRReporting\bin\Debug\_FRReporting.dll + + + + + + + + + + + + + + + + + Form2.vb + + + Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + + Demo_Assessmentgenerierung.vb + + + Form + + + Demo_Mailgenerierung.vb + + + Form + + + Form1.vb + + + Form + + + frmAbout.vb + + + Form + + + frmLogin.vb + + + Form + + + frmMailInfo.vb + + + Form + + + frmMsgBox.vb + + + Form + + + frmSplash.vb + + + Form + + + + frmISI.vb + + + Form + + + + frmKategorie.vb + + + Form + + + + + + + + frmMassnahmeplan.vb + + + Form + + + frmMassnahmenplanDetail.vb + + + Form + + + frmMassnahmeuebersicht.vb + + + Form + + + MassnahmeDetailBearbeitung.vb + + + Form + + + + FrmDefinition_Pruefplan.vb + + + Form + + + frmPPlan.vb + + + Form + + + frmPruefplan.vb + + + Form + + + frmPruefplanDetail.vb + + + Form + + + + + + + FrmFinding.vb + + + Form + + + frmFindingHilfe.vb + + + Form + + + frmMassnahme.vb + + + Form + + + frmPruefschrittUebersicht.vb + + + Form + + + frmWeitergabe.vb + + + Form + + + PruefschrittDetailsBearbeitung.vb + + + Form + + + frmDomainEditor.vb + + + Form + + + frmDomainEditorExtTables.vb + + + Form + + + frmFormSelector.vb + + + Form + + + frmSysadminMenu.vb + + + Form + + + Form + + + FrmToolTipEditor.vb + + + Form + + + frmVerbindungEditor.vb + + + Form + + + + + frmMain.vb + + + Form + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + FrmUebersicht.vb + + + Form + + + + + + + + frmNeuerVorgabeEintrag.vb + + + Form + + + frmVorgabe.vb + + + Form + + + frmVorgabeDefinition.vb + + + Form + + + + + Form2.vb + + + + Demo_Assessmentgenerierung.vb + + + Demo_Mailgenerierung.vb + + + Form1.vb + + + frmAbout.vb + + + frmLogin.vb + + + frmMailInfo.vb + + + frmMsgBox.vb + + + frmSplash.vb + + + frmISI.vb + + + frmKategorie.vb + + + frmMassnahmeplan.vb + + + frmMassnahmenplanDetail.vb + + + frmMassnahmeuebersicht.vb + + + MassnahmeDetailBearbeitung.vb + + + FrmDefinition_Pruefplan.vb + + + frmPPlan.vb + + + frmPruefplan.vb + + + frmPruefplanDetail.vb + + + FrmFinding.vb + + + frmFindingHilfe.vb + + + frmMassnahme.vb + + + frmPruefschrittUebersicht.vb + + + frmWeitergabe.vb + + + PruefschrittDetailsBearbeitung.vb + + + frmDomainEditor.vb + + + frmDomainEditorExtTables.vb + + + frmFormSelector.vb + + + frmSysadminMenu.vb + + + frmSysadminTableSelector.vb + + + FrmToolTipEditor.vb + Designer + + + frmVerbindungEditor.vb + + + frmMain.vb + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + FrmUebersicht.vb + + + frmNeuerVorgabeEintrag.vb + + + frmVorgabe.vb + + + frmVorgabeDefinition.vb + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj.user b/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj.user new file mode 100644 index 0000000..07d054e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/AssessmentMgmt.vbproj.user @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/AssessmentMgmt_TemporaryKey.pfx b/SW/20211125/AssessmentMgmt/AssessmentMgmt_TemporaryKey.pfx new file mode 100644 index 0000000..62ebeb7 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/AssessmentMgmt_TemporaryKey.pfx differ diff --git a/SW/20211125/AssessmentMgmt/DB/Form2.Designer.vb b/SW/20211125/AssessmentMgmt/DB/Form2.Designer.vb new file mode 100644 index 0000000..f2f88cf --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Form2.Designer.vb @@ -0,0 +1,81 @@ + _ +Partial Class Form2 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form2)) + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.C1TrueDBGrid2 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.C1TrueDBGrid2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 0 + Me.C1TrueDBGrid1.UseCompatibleTextRendering = False + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'C1TrueDBGrid2 + ' + Me.C1TrueDBGrid2.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid2.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid2.Images.Add(CType(resources.GetObject("C1TrueDBGrid2.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid2.Location = New System.Drawing.Point(713, 111) + Me.C1TrueDBGrid2.Name = "C1TrueDBGrid2" + Me.C1TrueDBGrid2.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid2.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid2.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid2.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid2.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid2.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid2.TabIndex = 1 + Me.C1TrueDBGrid2.UseCompatibleTextRendering = False + Me.C1TrueDBGrid2.PropBag = resources.GetString("C1TrueDBGrid2.PropBag") + ' + 'Form2 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.C1TrueDBGrid2) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Name = "Form2" + Me.Text = "Form2" + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.C1TrueDBGrid2, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents C1TrueDBGrid2 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/AssessmentMgmt/DB/Form2.resx b/SW/20211125/AssessmentMgmt/DB/Form2.resx new file mode 100644 index 0000000..f2dfcbe --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Form2.resx @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/DB/Form2.vb b/SW/20211125/AssessmentMgmt/DB/Form2.vb new file mode 100644 index 0000000..361d614 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Form2.vb @@ -0,0 +1,3 @@ +Public Class Form2 + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsApplication.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsApplication.vb new file mode 100644 index 0000000..aab6ad0 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsApplication.vb @@ -0,0 +1,517 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'Application' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'Application'. + ''' + Public Class clsApplication + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bShowlogin, m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iMandantnr, m_iApplikationsnr As SqlInt32 + Private m_sTmp_filepath, m_sVersion As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iApplikationsnr
  • + '''
  • sVersion. May be SqlString.Null
  • + '''
  • bShowlogin. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • sTmp_filepath. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Application_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iapplikationsnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iApplikationsnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sversion", SqlDbType.VarChar, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVersion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bshowlogin", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bShowlogin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@stmp_filepath", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTmp_filepath)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Application_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsApplication::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iApplikationsnr
  • + '''
  • sVersion. May be SqlString.Null
  • + '''
  • bShowlogin. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • sTmp_filepath. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Application_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iapplikationsnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iApplikationsnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sversion", SqlDbType.VarChar, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVersion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bshowlogin", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bShowlogin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@stmp_filepath", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTmp_filepath)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Application_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsApplication::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iApplikationsnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Application_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iapplikationsnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iApplikationsnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Application_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsApplication::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iApplikationsnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iApplikationsnr
  • + '''
  • sVersion
  • + '''
  • bShowlogin
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • sTmp_filepath
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Application_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Application") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iapplikationsnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iApplikationsnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Application_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iApplikationsnr = New SqlInt32(CType(dtToReturn.Rows(0)("applikationsnr"), Integer)) + If dtToReturn.Rows(0)("version") Is System.DBNull.Value Then + m_sVersion = SqlString.Null + Else + m_sVersion = New SqlString(CType(dtToReturn.Rows(0)("version"), String)) + End If + If dtToReturn.Rows(0)("showlogin") Is System.DBNull.Value Then + m_bShowlogin = SqlBoolean.Null + Else + m_bShowlogin = New SqlBoolean(CType(dtToReturn.Rows(0)("showlogin"), Boolean)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("tmp_filepath") Is System.DBNull.Value Then + m_sTmp_filepath = SqlString.Null + Else + m_sTmp_filepath = New SqlString(CType(dtToReturn.Rows(0)("tmp_filepath"), String)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsApplication::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Application_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Application") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Application_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsApplication::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iApplikationsnr]() As SqlInt32 + Get + Return m_iApplikationsnr + End Get + Set(ByVal Value As SqlInt32) + Dim iApplikationsnrTmp As SqlInt32 = Value + If iApplikationsnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iApplikationsnr", "iApplikationsnr can't be NULL") + End If + m_iApplikationsnr = Value + End Set + End Property + + + Public Property [sVersion]() As SqlString + Get + Return m_sVersion + End Get + Set(ByVal Value As SqlString) + m_sVersion = Value + End Set + End Property + + + Public Property [bShowlogin]() As SqlBoolean + Get + Return m_bShowlogin + End Get + Set(ByVal Value As SqlBoolean) + m_bShowlogin = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [sTmp_filepath]() As SqlString + Get + Dim s As String + s = m_sTmp_filepath.ToString + If UCase(s).IndexOf("%APPDATA%") > -1 Then + s = s.Replace("%appdata%", System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)) + End If + m_sTmp_filepath = New SqlString(CType(s, String)) + Return m_sTmp_filepath + + End Get + Set(ByVal Value As SqlString) + m_sTmp_filepath = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/Dokumente_sik/DB/clsConnectionProvider.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsConnectionProvider.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsConnectionProvider.vb rename to SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsConnectionProvider.vb diff --git a/SW/Dokumente_sik/DB/clsDBInteractionBase.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDBInteractionBase.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsDBInteractionBase.vb rename to SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDBInteractionBase.vb diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Massnahmeplan.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Massnahmeplan.vb new file mode 100644 index 0000000..d4f9644 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Massnahmeplan.vb @@ -0,0 +1,390 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsDefinition_Massnahmeplan + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daGueltig_Bis, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iDefinitionNr, m_iMassnahmeplanNr, m_iDefinition_MassnahmeplanNr As SqlInt32 + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Massnahmeplan_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iDefinition_MassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_MassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iDefinition_MassnahmeplanNr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iDefinition_MassnahmeplanNr").Value, SqlInt32)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Massnahmeplan_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Massnahmeplan::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Massnahmeplan_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinition_MassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_MassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Massnahmeplan_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Massnahmeplan::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Massnahmeplan_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinition_MassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_MassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Massnahmeplan_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Massnahmeplan::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Massnahmeplan_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Definition_Massnahmeplan") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iDefinition_MassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_MassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Massnahmeplan_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iDefinition_MassnahmeplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("Definition_MassnahmeplanNr"), Integer)) + If dtToReturn.Rows(0)("DefinitionNr") Is System.DBNull.Value Then + m_iDefinitionNr = SqlInt32.Null + Else + m_iDefinitionNr = New SqlInt32(CType(dtToReturn.Rows(0)("DefinitionNr"), Integer)) + End If + If dtToReturn.Rows(0)("MassnahmeplanNr") Is System.DBNull.Value Then + m_iMassnahmeplanNr = SqlInt32.Null + Else + m_iMassnahmeplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("MassnahmeplanNr"), Integer)) + End If + If dtToReturn.Rows(0)("Gueltig_Bis") Is System.DBNull.Value Then + m_daGueltig_Bis = SqlDateTime.Null + Else + m_daGueltig_Bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_Bis"), Date)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Massnahmeplan::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Massnahmeplan_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Definition_Massnahmeplan") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Massnahmeplan_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Massnahmeplan::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iDefinition_MassnahmeplanNr]() As SqlInt32 + Get + Return m_iDefinition_MassnahmeplanNr + End Get + Set(ByVal Value As SqlInt32) + Dim iDefinition_MassnahmeplanNrTmp As SqlInt32 = Value + If iDefinition_MassnahmeplanNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iDefinition_MassnahmeplanNr", "iDefinition_MassnahmeplanNr can't be NULL") + End If + m_iDefinition_MassnahmeplanNr = Value + End Set + End Property + + + Public Property [iDefinitionNr]() As SqlInt32 + Get + Return m_iDefinitionNr + End Get + Set(ByVal Value As SqlInt32) + m_iDefinitionNr = Value + End Set + End Property + + + Public Property [iMassnahmeplanNr]() As SqlInt32 + Get + Return m_iMassnahmeplanNr + End Get + Set(ByVal Value As SqlInt32) + m_iMassnahmeplanNr = Value + End Set + End Property + + + Public Property [daGueltig_Bis]() As SqlDateTime + Get + Return m_daGueltig_Bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_Bis = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Pruefplan.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Pruefplan.vb new file mode 100644 index 0000000..c880d95 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsDefinition_Pruefplan.vb @@ -0,0 +1,390 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsDefinition_Pruefplan + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daGueltig_Bis, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iDefinitionNr, m_iPruefplanNr, m_iDefinition_PruefplanNr As SqlInt32 + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Public Overrides Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Pruefplan_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iDefinition_PruefplanNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_PruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iDefinition_PruefplanNr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iDefinition_PruefplanNr").Value, SqlInt32)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Pruefplan_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Pruefplan::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Public Overrides Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Pruefplan_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinition_PruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_PruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Pruefplan_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Pruefplan::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Public Overrides Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Pruefplan_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinition_PruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_PruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Pruefplan_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Pruefplan::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Public Overrides Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Pruefplan_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("Definition_Pruefplan") + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iDefinition_PruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iDefinition_PruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Pruefplan_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iDefinition_PruefplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("Definition_PruefplanNr"), Integer)) + If dtToReturn.Rows(0)("DefinitionNr") Is System.DBNull.Value Then + m_iDefinitionNr = SqlInt32.Null + Else + m_iDefinitionNr = New SqlInt32(CType(dtToReturn.Rows(0)("DefinitionNr"), Integer)) + End If + If dtToReturn.Rows(0)("PruefplanNr") Is System.DBNull.Value Then + m_iPruefplanNr = SqlInt32.Null + Else + m_iPruefplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefplanNr"), Integer)) + End If + If dtToReturn.Rows(0)("Gueltig_Bis") Is System.DBNull.Value Then + m_daGueltig_Bis = SqlDateTime.Null + Else + m_daGueltig_Bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_Bis"), Date)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Pruefplan::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Public Overrides Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Definition_Pruefplan_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("Definition_Pruefplan") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Definition_Pruefplan_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsDefinition_Pruefplan::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iDefinition_PruefplanNr]() As SqlInt32 + Get + Return m_iDefinition_PruefplanNr + End Get + Set(ByVal Value As SqlInt32) + Dim iDefinition_PruefplanNrTmp As SqlInt32 = Value + If iDefinition_PruefplanNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iDefinition_PruefplanNr", "iDefinition_PruefplanNr can't be NULL") + End If + m_iDefinition_PruefplanNr = Value + End Set + End Property + + + Public Property [iDefinitionNr]() As SqlInt32 + Get + Return m_iDefinitionNr + End Get + Set(ByVal Value As SqlInt32) + m_iDefinitionNr = Value + End Set + End Property + + + Public Property [iPruefplanNr]() As SqlInt32 + Get + Return m_iPruefplanNr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefplanNr = Value + End Set + End Property + + + Public Property [daGueltig_Bis]() As SqlDateTime + Get + Return m_daGueltig_Bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_Bis = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFinma_Definition.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFinma_Definition.vb new file mode 100644 index 0000000..dbf1024 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFinma_Definition.vb @@ -0,0 +1,526 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsFinma_Definition + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iNormaltive_Vorlage, m_iFinmaDefinitionNr, m_iMutierer, m_iKategorie, m_iParentID As SqlInt32 + Private m_sISO, m_sRef_Kontrolle, m_sKurzbeschreibung, m_sFinmaRS, m_sUnterpunkt_FINMA_RS, m_sGrundsatz_Finma, m_sErgänzungen, m_sDefinition As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Finma_Definition_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFinmaDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFinmaDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFinmaRS", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFinmaRS)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sISO", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sISO)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sRef_Kontrolle", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sRef_Kontrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKategorie", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iKategorie)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iNormaltive_Vorlage", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iNormaltive_Vorlage)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sGrundsatz_Finma", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sGrundsatz_Finma)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sUnterpunkt_FINMA_RS", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sUnterpunkt_FINMA_RS)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgänzungen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgänzungen)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Finma_Definition_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFinma_Definition::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Finma_Definition_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFinmaDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFinmaDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFinmaRS", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFinmaRS)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sISO", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sISO)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sRef_Kontrolle", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sRef_Kontrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKategorie", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iKategorie)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iNormaltive_Vorlage", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iNormaltive_Vorlage)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sGrundsatz_Finma", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sGrundsatz_Finma)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sUnterpunkt_FINMA_RS", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sUnterpunkt_FINMA_RS)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgänzungen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgänzungen)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Finma_Definition_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFinma_Definition::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Finma_Definition_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFinmaDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFinmaDefinitionNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Finma_Definition_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFinma_Definition::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Finma_Definition_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Finma_Definition") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iFinmaDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFinmaDefinitionNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Finma_Definition_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iFinmaDefinitionNr = New SqlInt32(CType(dtToReturn.Rows(0)("FinmaDefinitionNr"), Integer)) + If dtToReturn.Rows(0)("ParentID") Is System.DBNull.Value Then + m_iParentID = SqlInt32.Null + Else + m_iParentID = New SqlInt32(CType(dtToReturn.Rows(0)("ParentID"), Integer)) + End If + If dtToReturn.Rows(0)("FinmaRS") Is System.DBNull.Value Then + m_sFinmaRS = SqlString.Null + Else + m_sFinmaRS = New SqlString(CType(dtToReturn.Rows(0)("FinmaRS"), String)) + End If + If dtToReturn.Rows(0)("ISO") Is System.DBNull.Value Then + m_sISO = SqlString.Null + Else + m_sISO = New SqlString(CType(dtToReturn.Rows(0)("ISO"), String)) + End If + If dtToReturn.Rows(0)("Ref_Kontrolle") Is System.DBNull.Value Then + m_sRef_Kontrolle = SqlString.Null + Else + m_sRef_Kontrolle = New SqlString(CType(dtToReturn.Rows(0)("Ref_Kontrolle"), String)) + End If + If dtToReturn.Rows(0)("Kurzbeschreibung") Is System.DBNull.Value Then + m_sKurzbeschreibung = SqlString.Null + Else + m_sKurzbeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Kurzbeschreibung"), String)) + End If + If dtToReturn.Rows(0)("Kategorie") Is System.DBNull.Value Then + m_iKategorie = SqlInt32.Null + Else + m_iKategorie = New SqlInt32(CType(dtToReturn.Rows(0)("Kategorie"), Integer)) + End If + If dtToReturn.Rows(0)("Normaltive_Vorlage") Is System.DBNull.Value Then + m_iNormaltive_Vorlage = SqlInt32.Null + Else + m_iNormaltive_Vorlage = New SqlInt32(CType(dtToReturn.Rows(0)("Normaltive_Vorlage"), Integer)) + End If + If dtToReturn.Rows(0)("Grundsatz_Finma") Is System.DBNull.Value Then + m_sGrundsatz_Finma = SqlString.Null + Else + m_sGrundsatz_Finma = New SqlString(CType(dtToReturn.Rows(0)("Grundsatz_Finma"), String)) + End If + If dtToReturn.Rows(0)("Unterpunkt_FINMA_RS") Is System.DBNull.Value Then + m_sUnterpunkt_FINMA_RS = SqlString.Null + Else + m_sUnterpunkt_FINMA_RS = New SqlString(CType(dtToReturn.Rows(0)("Unterpunkt_FINMA_RS"), String)) + End If + If dtToReturn.Rows(0)("Definition") Is System.DBNull.Value Then + m_sDefinition = SqlString.Null + Else + m_sDefinition = New SqlString(CType(dtToReturn.Rows(0)("Definition"), String)) + End If + If dtToReturn.Rows(0)("Ergänzungen") Is System.DBNull.Value Then + m_sErgänzungen = SqlString.Null + Else + m_sErgänzungen = New SqlString(CType(dtToReturn.Rows(0)("Ergänzungen"), String)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFinma_Definition::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Finma_Definition_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Finma_Definition") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Finma_Definition_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFinma_Definition::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iFinmaDefinitionNr]() As SqlInt32 + Get + Return m_iFinmaDefinitionNr + End Get + Set(ByVal Value As SqlInt32) + Dim iFinmaDefinitionNrTmp As SqlInt32 = Value + If iFinmaDefinitionNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iFinmaDefinitionNr", "iFinmaDefinitionNr can't be NULL") + End If + m_iFinmaDefinitionNr = Value + End Set + End Property + + + Public Property [iParentID]() As SqlInt32 + Get + Return m_iParentID + End Get + Set(ByVal Value As SqlInt32) + m_iParentID = Value + End Set + End Property + + + Public Property [sFinmaRS]() As SqlString + Get + Return m_sFinmaRS + End Get + Set(ByVal Value As SqlString) + m_sFinmaRS = Value + End Set + End Property + + + Public Property [sISO]() As SqlString + Get + Return m_sISO + End Get + Set(ByVal Value As SqlString) + m_sISO = Value + End Set + End Property + + + Public Property [sRef_Kontrolle]() As SqlString + Get + Return m_sRef_Kontrolle + End Get + Set(ByVal Value As SqlString) + m_sRef_Kontrolle = Value + End Set + End Property + + + Public Property [sKurzbeschreibung]() As SqlString + Get + Return m_sKurzbeschreibung + End Get + Set(ByVal Value As SqlString) + m_sKurzbeschreibung = Value + End Set + End Property + + + Public Property [iKategorie]() As SqlInt32 + Get + Return m_iKategorie + End Get + Set(ByVal Value As SqlInt32) + m_iKategorie = Value + End Set + End Property + + + Public Property [iNormaltive_Vorlage]() As SqlInt32 + Get + Return m_iNormaltive_Vorlage + End Get + Set(ByVal Value As SqlInt32) + m_iNormaltive_Vorlage = Value + End Set + End Property + + + Public Property [sGrundsatz_Finma]() As SqlString + Get + Return m_sGrundsatz_Finma + End Get + Set(ByVal Value As SqlString) + m_sGrundsatz_Finma = Value + End Set + End Property + + + Public Property [sUnterpunkt_FINMA_RS]() As SqlString + Get + Return m_sUnterpunkt_FINMA_RS + End Get + Set(ByVal Value As SqlString) + m_sUnterpunkt_FINMA_RS = Value + End Set + End Property + + + Public Property [sDefinition]() As SqlString + Get + Return m_sDefinition + End Get + Set(ByVal Value As SqlString) + m_sDefinition = Value + End Set + End Property + + + Public Property [sErgänzungen]() As SqlString + Get + Return m_sErgänzungen + End Get + Set(ByVal Value As SqlString) + m_sErgänzungen = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe.vb new file mode 100644 index 0000000..bad81e1 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe.vb @@ -0,0 +1,510 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'funktionsgruppe' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'funktionsgruppe'. + ''' + Public Class clsFunktionsgruppe + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iMandantnr, m_iFunktionsgruppenr As SqlInt32 + Private m_sZugehoerigkeit, m_sBezeichnung, m_sBeschreibung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgruppenr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sZugehoerigkeit. May be SqlString.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@szugehoerigkeit", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sZugehoerigkeit)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgruppenr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sZugehoerigkeit. May be SqlString.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@szugehoerigkeit", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sZugehoerigkeit)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgruppenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgruppenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iFunktionsgruppenr
  • + '''
  • sBezeichnung
  • + '''
  • sBeschreibung
  • + '''
  • sZugehoerigkeit
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("funktionsgruppe") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iFunktionsgruppenr = New SqlInt32(CType(dtToReturn.Rows(0)("funktionsgruppenr"), Integer)) + If dtToReturn.Rows(0)("bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String)) + End If + If dtToReturn.Rows(0)("zugehoerigkeit") Is System.DBNull.Value Then + m_sZugehoerigkeit = SqlString.Null + Else + m_sZugehoerigkeit = New SqlString(CType(dtToReturn.Rows(0)("zugehoerigkeit"), String)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("funktionsgruppe") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iFunktionsgruppenr]() As SqlInt32 + Get + Return m_iFunktionsgruppenr + End Get + Set(ByVal Value As SqlInt32) + Dim iFunktionsgruppenrTmp As SqlInt32 = Value + If iFunktionsgruppenrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iFunktionsgruppenr", "iFunktionsgruppenr can't be NULL") + End If + m_iFunktionsgruppenr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sZugehoerigkeit]() As SqlString + Get + Return m_sZugehoerigkeit + End Get + Set(ByVal Value As SqlString) + m_sZugehoerigkeit = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe_rolle.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe_rolle.vb new file mode 100644 index 0000000..ea69596 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsFunktionsgruppe_rolle.vb @@ -0,0 +1,489 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'funktionsgruppe_rolle' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'funktionsgruppe_rolle'. + ''' + Public Class clsFunktionsgruppe_rolle + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iFunktionsgruppenr, m_iFunktionsgrupperollenr, m_iMandantnr, m_iRollenr As SqlInt32 + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgrupperollenr
  • + '''
  • iFunktionsgruppenr. May be SqlInt32.Null
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_rolle_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFunktionsgrupperollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgrupperollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_rolle_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe_rolle::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgrupperollenr
  • + '''
  • iFunktionsgruppenr. May be SqlInt32.Null
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_rolle_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFunktionsgrupperollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgrupperollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_rolle_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe_rolle::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgrupperollenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_rolle_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFunktionsgrupperollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgrupperollenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_rolle_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe_rolle::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iFunktionsgrupperollenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iFunktionsgrupperollenr
  • + '''
  • iFunktionsgruppenr
  • + '''
  • iRollenr
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_rolle_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("funktionsgruppe_rolle") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iFunktionsgrupperollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgrupperollenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_rolle_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iFunktionsgrupperollenr = New SqlInt32(CType(dtToReturn.Rows(0)("Funktionsgrupperollenr"), Integer)) + If dtToReturn.Rows(0)("funktionsgruppenr") Is System.DBNull.Value Then + m_iFunktionsgruppenr = SqlInt32.Null + Else + m_iFunktionsgruppenr = New SqlInt32(CType(dtToReturn.Rows(0)("funktionsgruppenr"), Integer)) + End If + If dtToReturn.Rows(0)("rollenr") Is System.DBNull.Value Then + m_iRollenr = SqlInt32.Null + Else + m_iRollenr = New SqlInt32(CType(dtToReturn.Rows(0)("rollenr"), Integer)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe_rolle::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_funktionsgruppe_rolle_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("funktionsgruppe_rolle") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_funktionsgruppe_rolle_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsFunktionsgruppe_rolle::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iFunktionsgrupperollenr]() As SqlInt32 + Get + Return m_iFunktionsgrupperollenr + End Get + Set(ByVal Value As SqlInt32) + Dim iFunktionsgrupperollenrTmp As SqlInt32 = Value + If iFunktionsgrupperollenrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iFunktionsgrupperollenr", "iFunktionsgrupperollenr can't be NULL") + End If + m_iFunktionsgrupperollenr = Value + End Set + End Property + + + Public Property [iFunktionsgruppenr]() As SqlInt32 + Get + Return m_iFunktionsgruppenr + End Get + Set(ByVal Value As SqlInt32) + m_iFunktionsgruppenr = Value + End Set + End Property + + + Public Property [iRollenr]() As SqlInt32 + Get + Return m_iRollenr + End Get + Set(ByVal Value As SqlInt32) + m_iRollenr = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKategorie.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKategorie.vb new file mode 100644 index 0000000..adf073e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKategorie.vb @@ -0,0 +1,407 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsKategorie + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iKategorienr, m_iParentid As SqlInt32 + Private m_sBeschreibung_Lang, m_sBezeichnung, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Kategorie_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKategorienr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKategorienr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iparentid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentid)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung_Lang", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung_Lang)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Kategorie_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKategorie::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Kategorie_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKategorienr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKategorienr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iparentid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentid)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung_Lang", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung_Lang)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Kategorie_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKategorie::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Kategorie_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKategorienr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKategorienr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Kategorie_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKategorie::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Kategorie_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Kategorie") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iKategorienr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKategorienr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Kategorie_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iKategorienr = New SqlInt32(CType(dtToReturn.Rows(0)("Kategorienr"), Integer)) + If dtToReturn.Rows(0)("parentid") Is System.DBNull.Value Then + m_iParentid = SqlInt32.Null + Else + m_iParentid = New SqlInt32(CType(dtToReturn.Rows(0)("parentid"), Integer)) + End If + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung_Lang") Is System.DBNull.Value Then + m_sBeschreibung_Lang = SqlString.Null + Else + m_sBeschreibung_Lang = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung_Lang"), String)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKategorie::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Kategorie_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Kategorie") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Kategorie_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKategorie::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iKategorienr]() As SqlInt32 + Get + Return m_iKategorienr + End Get + Set(ByVal Value As SqlInt32) + Dim iKategorienrTmp As SqlInt32 = Value + If iKategorienrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iKategorienr", "iKategorienr can't be NULL") + End If + m_iKategorienr = Value + End Set + End Property + + + Public Property [iParentid]() As SqlInt32 + Get + Return m_iParentid + End Get + Set(ByVal Value As SqlInt32) + m_iParentid = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sBeschreibung_Lang]() As SqlString + Get + Return m_sBeschreibung_Lang + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung_Lang = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKey_tabelle.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKey_tabelle.vb new file mode 100644 index 0000000..6ee282d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsKey_tabelle.vb @@ -0,0 +1,491 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'key_tabelle' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'key_tabelle'. + ''' + Public Class clsKey_tabelle + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iKeynr, m_iKey_wert, m_iMandantnr As SqlInt32 + Private m_sBeschreibung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iKeynr
  • + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iKeynr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@ikeynr").Value, Integer)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iKeynr
  • + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("key_tabelle") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iKeynr = New SqlInt32(CType(dtToReturn.Rows(0)("keynr"), Integer)) + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String)) + m_iKey_wert = New SqlInt32(CType(dtToReturn.Rows(0)("key_wert"), Integer)) + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("key_tabelle") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iKeynr]() As SqlInt32 + Get + Return m_iKeynr + End Get + Set(ByVal Value As SqlInt32) + Dim iKeynrTmp As SqlInt32 = Value + If iKeynrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iKeynr", "iKeynr can't be NULL") + End If + m_iKeynr = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + Dim sBeschreibungTmp As SqlString = Value + If sBeschreibungTmp.IsNull Then + Throw New ArgumentOutOfRangeException("sBeschreibung", "sBeschreibung can't be NULL") + End If + m_sBeschreibung = Value + End Set + End Property + + + Public Property [iKey_wert]() As SqlInt32 + Get + Return m_iKey_wert + End Get + Set(ByVal Value As SqlInt32) + Dim iKey_wertTmp As SqlInt32 = Value + If iKey_wertTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iKey_wert", "iKey_wert can't be NULL") + End If + m_iKey_wert = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahme.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahme.vb new file mode 100644 index 0000000..6dcd35c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahme.vb @@ -0,0 +1,476 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + Public Class clsMassnahme + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daTermin, m_daMutiert_am, m_daZugewiesen, m_daErstellt_am As SqlDateTime + Private m_iAktueller_Verantwortlicher, m_iVerantwortlichNr, m_iVerantwortungIsINr, m_iMassnahmeNr, m_iMutierer, m_iStatusNr, m_iMassnahmeplannr As SqlInt32 + Private m_sMassnahmeResultat As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahme_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplannr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmeResultat", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmeResultat)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungIsINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungIsINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAktueller_Verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAktueller_Verantwortlicher)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daZugewiesen", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daZugewiesen)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iMassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iMassnahmeNr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iMassnahmeNr").Value, Integer)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahme_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahme::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahme_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplannr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmeResultat", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmeResultat)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungIsINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungIsINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAktueller_Verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAktueller_Verantwortlicher)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daZugewiesen", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daZugewiesen)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahme_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahme::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahme_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahme_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahme::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahme_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Massnahme") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iMassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahme_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMassnahmeNr = New SqlInt32(CType(dtToReturn.Rows(0)("MassnahmeNr"), Integer)) + If dtToReturn.Rows(0)("Massnahmeplannr") Is System.DBNull.Value Then + m_iMassnahmeplannr = SqlInt32.Null + Else + m_iMassnahmeplannr = New SqlInt32(CType(dtToReturn.Rows(0)("Massnahmeplannr"), Integer)) + End If + If dtToReturn.Rows(0)("StatusNr") Is System.DBNull.Value Then + m_iStatusNr = SqlInt32.Null + Else + m_iStatusNr = New SqlInt32(CType(dtToReturn.Rows(0)("StatusNr"), Integer)) + End If + If dtToReturn.Rows(0)("MassnahmeResultat") Is System.DBNull.Value Then + m_sMassnahmeResultat = SqlString.Null + Else + m_sMassnahmeResultat = New SqlString(CType(dtToReturn.Rows(0)("MassnahmeResultat"), String)) + End If + If dtToReturn.Rows(0)("Termin") Is System.DBNull.Value Then + m_daTermin = SqlDateTime.Null + Else + m_daTermin = New SqlDateTime(CType(dtToReturn.Rows(0)("Termin"), Date)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortlichNr") Is System.DBNull.Value Then + m_iVerantwortlichNr = SqlInt32.Null + Else + m_iVerantwortlichNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortlichNr"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortungIsINr") Is System.DBNull.Value Then + m_iVerantwortungIsINr = SqlInt32.Null + Else + m_iVerantwortungIsINr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungIsINr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktueller_Verantwortlicher") Is System.DBNull.Value Then + m_iAktueller_Verantwortlicher = SqlInt32.Null + Else + m_iAktueller_Verantwortlicher = New SqlInt32(CType(dtToReturn.Rows(0)("Aktueller_Verantwortlicher"), Integer)) + End If + If dtToReturn.Rows(0)("Zugewiesen") Is System.DBNull.Value Then + m_daZugewiesen = SqlDateTime.Null + Else + m_daZugewiesen = New SqlDateTime(CType(dtToReturn.Rows(0)("Zugewiesen"), Date)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahme::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahme_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Massnahme") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahme_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahme::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMassnahmeNr]() As SqlInt32 + Get + Return m_iMassnahmeNr + End Get + Set(ByVal Value As SqlInt32) + Dim iMassnahmeNrTmp As SqlInt32 = Value + If iMassnahmeNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMassnahmeNr", "iMassnahmeNr can't be NULL") + End If + m_iMassnahmeNr = Value + End Set + End Property + + + Public Property [iMassnahmeplannr]() As SqlInt32 + Get + Return m_iMassnahmeplannr + End Get + Set(ByVal Value As SqlInt32) + m_iMassnahmeplannr = Value + End Set + End Property + + + Public Property [iStatusNr]() As SqlInt32 + Get + Return m_iStatusNr + End Get + Set(ByVal Value As SqlInt32) + m_iStatusNr = Value + End Set + End Property + + + Public Property [sMassnahmeResultat]() As SqlString + Get + Return m_sMassnahmeResultat + End Get + Set(ByVal Value As SqlString) + m_sMassnahmeResultat = Value + End Set + End Property + + + Public Property [daTermin]() As SqlDateTime + Get + Return m_daTermin + End Get + Set(ByVal Value As SqlDateTime) + m_daTermin = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iVerantwortlichNr]() As SqlInt32 + Get + Return m_iVerantwortlichNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortlichNr = Value + End Set + End Property + + + Public Property [iVerantwortungIsINr]() As SqlInt32 + Get + Return m_iVerantwortungIsINr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortungIsINr = Value + End Set + End Property + + + Public Property [iAktueller_Verantwortlicher]() As SqlInt32 + Get + Return m_iAktueller_Verantwortlicher + End Get + Set(ByVal Value As SqlInt32) + m_iAktueller_Verantwortlicher = Value + End Set + End Property + + + Public Property [daZugewiesen]() As SqlDateTime + Get + Return m_daZugewiesen + End Get + Set(ByVal Value As SqlDateTime) + m_daZugewiesen = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahmeplan.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahmeplan.vb new file mode 100644 index 0000000..be5ca7c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMassnahmeplan.vb @@ -0,0 +1,577 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsMassnahmeplan + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daGueltig_Bis, m_daErstmals_am, m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iVerantwortlichNr, m_iTerminierungID, m_iMutierer, m_iVerantwortungISINr, m_iPrioritaetNr, m_iPeriodizitaetNr, m_iMassnahmeplanNr, m_iZeitpunktNr As SqlInt32 + Private m_sBezeichnung, m_sMassnahmen, m_sPruefgegenstand, m_sErgebnisse, m_sHilfsmittel, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahmeplan_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPrioritaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPrioritaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iZeitpunktNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iZeitpunktNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstmals_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstmals_am)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sPruefgegenstand", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sPruefgegenstand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sHilfsmittel", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sHilfsmittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgebnisse", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgebnisse)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iTerminierungID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iTerminierungID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahmeplan_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahmeplan::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahmeplan_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPrioritaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPrioritaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iZeitpunktNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iZeitpunktNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstmals_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstmals_am)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sPruefgegenstand", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sPruefgegenstand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sHilfsmittel", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sHilfsmittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgebnisse", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgebnisse)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iTerminierungID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iTerminierungID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahmeplan_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahmeplan::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahmeplan_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahmeplan_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahmeplan::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahmeplan_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Massnahmeplan") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iMassnahmeplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahmeplan_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMassnahmeplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("MassnahmeplanNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("PrioritaetNr") Is System.DBNull.Value Then + m_iPrioritaetNr = SqlInt32.Null + Else + m_iPrioritaetNr = New SqlInt32(CType(dtToReturn.Rows(0)("PrioritaetNr"), Integer)) + End If + If dtToReturn.Rows(0)("PeriodizitaetNr") Is System.DBNull.Value Then + m_iPeriodizitaetNr = SqlInt32.Null + Else + m_iPeriodizitaetNr = New SqlInt32(CType(dtToReturn.Rows(0)("PeriodizitaetNr"), Integer)) + End If + If dtToReturn.Rows(0)("ZeitpunktNr") Is System.DBNull.Value Then + m_iZeitpunktNr = SqlInt32.Null + Else + m_iZeitpunktNr = New SqlInt32(CType(dtToReturn.Rows(0)("ZeitpunktNr"), Integer)) + End If + If dtToReturn.Rows(0)("Erstmals_am") Is System.DBNull.Value Then + m_daErstmals_am = SqlDateTime.Null + Else + m_daErstmals_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstmals_am"), Date)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Pruefgegenstand") Is System.DBNull.Value Then + m_sPruefgegenstand = SqlString.Null + Else + m_sPruefgegenstand = New SqlString(CType(dtToReturn.Rows(0)("Pruefgegenstand"), String)) + End If + If dtToReturn.Rows(0)("Hilfsmittel") Is System.DBNull.Value Then + m_sHilfsmittel = SqlString.Null + Else + m_sHilfsmittel = New SqlString(CType(dtToReturn.Rows(0)("Hilfsmittel"), String)) + End If + If dtToReturn.Rows(0)("Massnahmen") Is System.DBNull.Value Then + m_sMassnahmen = SqlString.Null + Else + m_sMassnahmen = New SqlString(CType(dtToReturn.Rows(0)("Massnahmen"), String)) + End If + If dtToReturn.Rows(0)("Ergebnisse") Is System.DBNull.Value Then + m_sErgebnisse = SqlString.Null + Else + m_sErgebnisse = New SqlString(CType(dtToReturn.Rows(0)("Ergebnisse"), String)) + End If + If dtToReturn.Rows(0)("VerantwortlichNr") Is System.DBNull.Value Then + m_iVerantwortlichNr = SqlInt32.Null + Else + m_iVerantwortlichNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortlichNr"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortungISINr") Is System.DBNull.Value Then + m_iVerantwortungISINr = SqlInt32.Null + Else + m_iVerantwortungISINr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungISINr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Gueltig_Bis") Is System.DBNull.Value Then + m_daGueltig_Bis = SqlDateTime.Null + Else + m_daGueltig_Bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_Bis"), Date)) + End If + If dtToReturn.Rows(0)("TerminierungID") Is System.DBNull.Value Then + m_iTerminierungID = SqlInt32.Null + Else + m_iTerminierungID = New SqlInt32(CType(dtToReturn.Rows(0)("TerminierungID"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahmeplan::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Massnahmeplan_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Massnahmeplan") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Massnahmeplan_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMassnahmeplan::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMassnahmeplanNr]() As SqlInt32 + Get + Return m_iMassnahmeplanNr + End Get + Set(ByVal Value As SqlInt32) + Dim iMassnahmeplanNrTmp As SqlInt32 = Value + If iMassnahmeplanNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMassnahmeplanNr", "iMassnahmeplanNr can't be NULL") + End If + m_iMassnahmeplanNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [iPrioritaetNr]() As SqlInt32 + Get + Return m_iPrioritaetNr + End Get + Set(ByVal Value As SqlInt32) + m_iPrioritaetNr = Value + End Set + End Property + + + Public Property [iPeriodizitaetNr]() As SqlInt32 + Get + Return m_iPeriodizitaetNr + End Get + Set(ByVal Value As SqlInt32) + m_iPeriodizitaetNr = Value + End Set + End Property + + + Public Property [iZeitpunktNr]() As SqlInt32 + Get + Return m_iZeitpunktNr + End Get + Set(ByVal Value As SqlInt32) + m_iZeitpunktNr = Value + End Set + End Property + + + Public Property [daErstmals_am]() As SqlDateTime + Get + Return m_daErstmals_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstmals_am = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sPruefgegenstand]() As SqlString + Get + Return m_sPruefgegenstand + End Get + Set(ByVal Value As SqlString) + m_sPruefgegenstand = Value + End Set + End Property + + + Public Property [sHilfsmittel]() As SqlString + Get + Return m_sHilfsmittel + End Get + Set(ByVal Value As SqlString) + m_sHilfsmittel = Value + End Set + End Property + + + Public Property [sMassnahmen]() As SqlString + Get + Return m_sMassnahmen + End Get + Set(ByVal Value As SqlString) + m_sMassnahmen = Value + End Set + End Property + + + Public Property [sErgebnisse]() As SqlString + Get + Return m_sErgebnisse + End Get + Set(ByVal Value As SqlString) + m_sErgebnisse = Value + End Set + End Property + + + Public Property [iVerantwortlichNr]() As SqlInt32 + Get + Return m_iVerantwortlichNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortlichNr = Value + End Set + End Property + + + Public Property [iVerantwortungISINr]() As SqlInt32 + Get + Return m_iVerantwortungISINr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortungISINr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [daGueltig_Bis]() As SqlDateTime + Get + Return m_daGueltig_Bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_Bis = Value + End Set + End Property + + + Public Property [iTerminierungID]() As SqlInt32 + Get + Return m_iTerminierungID + End Get + Set(ByVal Value As SqlInt32) + m_iTerminierungID = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMeldungstexte.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMeldungstexte.vb new file mode 100644 index 0000000..2afe689 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMeldungstexte.vb @@ -0,0 +1,632 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'meldungstexte' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'meldungstexte'. + ''' + Public Class clsMeldungstexte + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iMandantnr, m_iSprache, m_iMeldungstextnr As SqlInt32 + Private m_sBeschreibung, m_sInhalt As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMeldungstextnr
  • + '''
  • iSprache
  • + '''
  • sInhalt. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imeldungstextnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMeldungstextnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sinhalt", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sInhalt)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMeldungstextnr
  • + '''
  • iSprache
  • + '''
  • sInhalt. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imeldungstextnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMeldungstextnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sinhalt", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sInhalt)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMeldungstextnr
  • + '''
  • iSprache
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imeldungstextnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMeldungstextnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method using PK field 'meldungstextnr'. This method will + ''' delete one or more rows from the database, based on the Primary Key field 'meldungstextnr'. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMeldungstextnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Public Function DeleteAllWmeldungstextnrLogic() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_DeleteAllWmeldungstextnrLogic]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@imeldungstextnr", SqlDbType.Int, 4, ParameterDirection.Input, false, 10, 0, "", DataRowVersion.Proposed, m_iMeldungstextnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iMeldungstextnr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@imeldungstextnr").Value, Integer)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_DeleteAllWmeldungstextnrLogic' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::DeleteAllWmeldungstextnrLogic::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method using PK field 'sprache'. This method will + ''' delete one or more rows from the database, based on the Primary Key field 'sprache'. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSprache
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Public Function DeleteAllWspracheLogic() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_DeleteAllWspracheLogic]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, false, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iSprache = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@isprache").Value, Integer)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_DeleteAllWspracheLogic' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::DeleteAllWspracheLogic::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMeldungstextnr
  • + '''
  • iSprache
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iMeldungstextnr
  • + '''
  • iSprache
  • + '''
  • sInhalt
  • + '''
  • sBeschreibung
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iMandantnr
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("meldungstexte") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@imeldungstextnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMeldungstextnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMeldungstextnr = New SqlInt32(CType(dtToReturn.Rows(0)("meldungstextnr"), Integer)) + m_iSprache = New SqlInt32(CType(dtToReturn.Rows(0)("sprache"), Integer)) + If dtToReturn.Rows(0)("inhalt") Is System.DBNull.Value Then + m_sInhalt = SqlString.Null + Else + m_sInhalt = New SqlString(CType(dtToReturn.Rows(0)("inhalt"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_meldungstexte_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("meldungstexte") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_meldungstexte_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMeldungstexte::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMeldungstextnr]() As SqlInt32 + Get + Return m_iMeldungstextnr + End Get + Set(ByVal Value As SqlInt32) + Dim iMeldungstextnrTmp As SqlInt32 = Value + If iMeldungstextnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMeldungstextnr", "iMeldungstextnr can't be NULL") + End If + m_iMeldungstextnr = Value + End Set + End Property + + + Public Property [iSprache]() As SqlInt32 + Get + Return m_iSprache + End Get + Set(ByVal Value As SqlInt32) + Dim iSpracheTmp As SqlInt32 = Value + If iSpracheTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iSprache", "iSprache can't be NULL") + End If + m_iSprache = Value + End Set + End Property + + + Public Property [sInhalt]() As SqlString + Get + Return m_sInhalt + End Get + Set(ByVal Value As SqlString) + m_sInhalt = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + Dim bAktivTmp As SqlBoolean = Value + If bAktivTmp.IsNull Then + Throw New ArgumentOutOfRangeException("bAktiv", "bAktiv can't be NULL") + End If + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter.vb new file mode 100644 index 0000000..48ff337 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter.vb @@ -0,0 +1,530 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'mitarbeiter' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'mitarbeiter'. + ''' + Public Class clsMitarbeiter + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMandantnr, m_iMutierer, m_iMitarbeiternr As SqlInt32 + Private m_sEmail, m_sVorname, m_sTgnummer, m_sName As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiternr
  • + '''
  • sVorname. May be SqlString.Null
  • + '''
  • sName. May be SqlString.Null
  • + '''
  • sTgnummer. May be SqlString.Null
  • + '''
  • sEmail. May be SqlString.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@svorname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVorname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stgnummer", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTgnummer)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@semail", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sEmail)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiternr
  • + '''
  • sVorname. May be SqlString.Null
  • + '''
  • sName. May be SqlString.Null
  • + '''
  • sTgnummer. May be SqlString.Null
  • + '''
  • sEmail. May be SqlString.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@svorname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVorname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stgnummer", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTgnummer)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@semail", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sEmail)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iMitarbeiternr
  • + '''
  • sVorname
  • + '''
  • sName
  • + '''
  • sTgnummer
  • + '''
  • sEmail
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("mitarbeiter") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMitarbeiternr = New SqlInt32(CType(dtToReturn.Rows(0)("mitarbeiternr"), Integer)) + If dtToReturn.Rows(0)("vorname") Is System.DBNull.Value Then + m_sVorname = SqlString.Null + Else + m_sVorname = New SqlString(CType(dtToReturn.Rows(0)("vorname"), String)) + End If + If dtToReturn.Rows(0)("name") Is System.DBNull.Value Then + m_sName = SqlString.Null + Else + m_sName = New SqlString(CType(dtToReturn.Rows(0)("name"), String)) + End If + If dtToReturn.Rows(0)("tgnummer") Is System.DBNull.Value Then + m_sTgnummer = SqlString.Null + Else + m_sTgnummer = New SqlString(CType(dtToReturn.Rows(0)("tgnummer"), String)) + End If + If dtToReturn.Rows(0)("email") Is System.DBNull.Value Then + m_sEmail = SqlString.Null + Else + m_sEmail = New SqlString(CType(dtToReturn.Rows(0)("email"), String)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("mitarbeiter") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMitarbeiternr]() As SqlInt32 + Get + Return m_iMitarbeiternr + End Get + Set(ByVal Value As SqlInt32) + Dim iMitarbeiternrTmp As SqlInt32 = Value + If iMitarbeiternrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMitarbeiternr", "iMitarbeiternr can't be NULL") + End If + m_iMitarbeiternr = Value + End Set + End Property + + + Public Property [sVorname]() As SqlString + Get + Return m_sVorname + End Get + Set(ByVal Value As SqlString) + m_sVorname = Value + End Set + End Property + + + Public Property [sName]() As SqlString + Get + Return m_sName + End Get + Set(ByVal Value As SqlString) + m_sName = Value + End Set + End Property + + + Public Property [sTgnummer]() As SqlString + Get + Return m_sTgnummer + End Get + Set(ByVal Value As SqlString) + m_sTgnummer = Value + End Set + End Property + + + Public Property [sEmail]() As SqlString + Get + Return m_sEmail + End Get + Set(ByVal Value As SqlString) + m_sEmail = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter_funktionsgruppe.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter_funktionsgruppe.vb new file mode 100644 index 0000000..4e428bb --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsMitarbeiter_funktionsgruppe.vb @@ -0,0 +1,489 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'mitarbeiter_funktionsgruppe' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'mitarbeiter_funktionsgruppe'. + ''' + Public Class clsMitarbeiter_funktionsgruppe + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iMandantnr, m_iMitarbeiternr, m_iFunktionsgruppenr, m_iMitarbeiter_funktionsgruppenr As SqlInt32 + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_funktionsgruppenr
  • + '''
  • iMitarbeiternr. May be SqlInt32.Null
  • + '''
  • iFunktionsgruppenr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_funktionsgruppe_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiter_funktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_funktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_funktionsgruppe_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_funktionsgruppe::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_funktionsgruppenr
  • + '''
  • iMitarbeiternr. May be SqlInt32.Null
  • + '''
  • iFunktionsgruppenr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_funktionsgruppe_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiter_funktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_funktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifunktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFunktionsgruppenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_funktionsgruppe_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_funktionsgruppe::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_funktionsgruppenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_funktionsgruppe_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiter_funktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_funktionsgruppenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_funktionsgruppe_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_funktionsgruppe::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_funktionsgruppenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iMitarbeiter_funktionsgruppenr
  • + '''
  • iMitarbeiternr
  • + '''
  • iFunktionsgruppenr
  • + '''
  • bAktiv
  • + '''
  • iMandantnr
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_funktionsgruppe_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("mitarbeiter_funktionsgruppe") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@imitarbeiter_funktionsgruppenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_funktionsgruppenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_funktionsgruppe_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMitarbeiter_funktionsgruppenr = New SqlInt32(CType(dtToReturn.Rows(0)("mitarbeiter_funktionsgruppenr"), Integer)) + If dtToReturn.Rows(0)("mitarbeiternr") Is System.DBNull.Value Then + m_iMitarbeiternr = SqlInt32.Null + Else + m_iMitarbeiternr = New SqlInt32(CType(dtToReturn.Rows(0)("mitarbeiternr"), Integer)) + End If + If dtToReturn.Rows(0)("funktionsgruppenr") Is System.DBNull.Value Then + m_iFunktionsgruppenr = SqlInt32.Null + Else + m_iFunktionsgruppenr = New SqlInt32(CType(dtToReturn.Rows(0)("funktionsgruppenr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_funktionsgruppe::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_mitarbeiter_funktionsgruppe_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("mitarbeiter_funktionsgruppe") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_funktionsgruppe_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_funktionsgruppe::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMitarbeiter_funktionsgruppenr]() As SqlInt32 + Get + Return m_iMitarbeiter_funktionsgruppenr + End Get + Set(ByVal Value As SqlInt32) + Dim iMitarbeiter_funktionsgruppenrTmp As SqlInt32 = Value + If iMitarbeiter_funktionsgruppenrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMitarbeiter_funktionsgruppenr", "iMitarbeiter_funktionsgruppenr can't be NULL") + End If + m_iMitarbeiter_funktionsgruppenr = Value + End Set + End Property + + + Public Property [iMitarbeiternr]() As SqlInt32 + Get + Return m_iMitarbeiternr + End Get + Set(ByVal Value As SqlInt32) + m_iMitarbeiternr = Value + End Set + End Property + + + Public Property [iFunktionsgruppenr]() As SqlInt32 + Get + Return m_iFunktionsgruppenr + End Get + Set(ByVal Value As SqlInt32) + m_iFunktionsgruppenr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPeriodizitaet.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPeriodizitaet.vb new file mode 100644 index 0000000..67e523b --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPeriodizitaet.vb @@ -0,0 +1,373 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPeriodizitaet + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iPeriodizitaetNr As SqlInt32 + Private m_sBezeichnung, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Periodizitaet_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Periodizitaet_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPeriodizitaet::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Periodizitaet_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Periodizitaet_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPeriodizitaet::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Periodizitaet_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Periodizitaet_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPeriodizitaet::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Periodizitaet_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Periodizitaet") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Periodizitaet_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPeriodizitaetNr = New SqlInt32(CType(dtToReturn.Rows(0)("PeriodizitaetNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPeriodizitaet::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Periodizitaet_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Periodizitaet") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Periodizitaet_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPeriodizitaet::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPeriodizitaetNr]() As SqlInt32 + Get + Return m_iPeriodizitaetNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPeriodizitaetNrTmp As SqlInt32 = Value + If iPeriodizitaetNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPeriodizitaetNr", "iPeriodizitaetNr can't be NULL") + End If + m_iPeriodizitaetNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittHistory.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittHistory.vb new file mode 100644 index 0000000..3abc5a8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittHistory.vb @@ -0,0 +1,390 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefSchrittHistory + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daEintragdatum, m_daErstellt_am As SqlDateTime + Private m_iPruefSchrittHistoryNr, m_iPruefschrittNr, m_iMutierer As SqlInt32 + Private m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittHistory_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittHistoryNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittHistoryNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daEintragdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daEintragdatum)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittHistory_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittHistory::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittHistory_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittHistoryNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittHistoryNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daEintragdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daEintragdatum)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittHistory_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittHistory::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittHistory_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittHistoryNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittHistoryNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittHistory_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittHistory::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittHistory_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittHistory") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefSchrittHistoryNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittHistoryNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittHistory_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefSchrittHistoryNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefSchrittHistoryNr"), Integer)) + If dtToReturn.Rows(0)("PruefschrittNr") Is System.DBNull.Value Then + m_iPruefschrittNr = SqlInt32.Null + Else + m_iPruefschrittNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittNr"), Integer)) + End If + If dtToReturn.Rows(0)("Eintragdatum") Is System.DBNull.Value Then + m_daEintragdatum = SqlDateTime.Null + Else + m_daEintragdatum = New SqlDateTime(CType(dtToReturn.Rows(0)("Eintragdatum"), Date)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittHistory::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittHistory_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittHistory") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittHistory_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittHistory::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefSchrittHistoryNr]() As SqlInt32 + Get + Return m_iPruefSchrittHistoryNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefSchrittHistoryNrTmp As SqlInt32 = Value + If iPruefSchrittHistoryNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefSchrittHistoryNr", "iPruefSchrittHistoryNr can't be NULL") + End If + m_iPruefSchrittHistoryNr = Value + End Set + End Property + + + Public Property [iPruefschrittNr]() As SqlInt32 + Get + Return m_iPruefschrittNr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittNr = Value + End Set + End Property + + + Public Property [daEintragdatum]() As SqlDateTime + Get + Return m_daEintragdatum + End Get + Set(ByVal Value As SqlDateTime) + m_daEintragdatum = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittMassnahme.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittMassnahme.vb new file mode 100644 index 0000000..4349091 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittMassnahme.vb @@ -0,0 +1,458 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefSchrittMassnahme + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daTermin, m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iVerantwortungNr, m_iPruefschrittmassnahmeNr, m_iPruefschrittfindingnr, m_iMassnahmeStatusNr As SqlInt32 + Private m_sBeschreibung, m_sMassnahmeResultat, m_sKurzbeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittMassnahme_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittmassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittmassnahmeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittfindingnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmeResultat", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmeResultat)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittMassnahme_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittMassnahme::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittMassnahme_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittmassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittmassnahmeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittfindingnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmeResultat", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmeResultat)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMassnahmeStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMassnahmeStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittMassnahme_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittMassnahme::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittMassnahme_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittmassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittmassnahmeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittMassnahme_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittMassnahme::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittMassnahme_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittMassnahme") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittmassnahmeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittmassnahmeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittMassnahme_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefschrittmassnahmeNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittmassnahmeNr"), Integer)) + If dtToReturn.Rows(0)("Pruefschrittfindingnr") Is System.DBNull.Value Then + m_iPruefschrittfindingnr = SqlInt32.Null + Else + m_iPruefschrittfindingnr = New SqlInt32(CType(dtToReturn.Rows(0)("Pruefschrittfindingnr"), Integer)) + End If + If dtToReturn.Rows(0)("Kurzbeschreibung") Is System.DBNull.Value Then + m_sKurzbeschreibung = SqlString.Null + Else + m_sKurzbeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Kurzbeschreibung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("MassnahmeResultat") Is System.DBNull.Value Then + m_sMassnahmeResultat = SqlString.Null + Else + m_sMassnahmeResultat = New SqlString(CType(dtToReturn.Rows(0)("MassnahmeResultat"), String)) + End If + If dtToReturn.Rows(0)("MassnahmeStatusNr") Is System.DBNull.Value Then + m_iMassnahmeStatusNr = SqlInt32.Null + Else + m_iMassnahmeStatusNr = New SqlInt32(CType(dtToReturn.Rows(0)("MassnahmeStatusNr"), Integer)) + End If + If dtToReturn.Rows(0)("Termin") Is System.DBNull.Value Then + m_daTermin = SqlDateTime.Null + Else + m_daTermin = New SqlDateTime(CType(dtToReturn.Rows(0)("Termin"), Date)) + End If + If dtToReturn.Rows(0)("VerantwortungNr") Is System.DBNull.Value Then + m_iVerantwortungNr = SqlInt32.Null + Else + m_iVerantwortungNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungNr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittMassnahme::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittMassnahme_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittMassnahme") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittMassnahme_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittMassnahme::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefschrittmassnahmeNr]() As SqlInt32 + Get + Return m_iPruefschrittmassnahmeNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefschrittmassnahmeNrTmp As SqlInt32 = Value + If iPruefschrittmassnahmeNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefschrittmassnahmeNr", "iPruefschrittmassnahmeNr can't be NULL") + End If + m_iPruefschrittmassnahmeNr = Value + End Set + End Property + + + Public Property [iPruefschrittfindingnr]() As SqlInt32 + Get + Return m_iPruefschrittfindingnr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittfindingnr = Value + End Set + End Property + + + Public Property [sKurzbeschreibung]() As SqlString + Get + Return m_sKurzbeschreibung + End Get + Set(ByVal Value As SqlString) + m_sKurzbeschreibung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sMassnahmeResultat]() As SqlString + Get + Return m_sMassnahmeResultat + End Get + Set(ByVal Value As SqlString) + m_sMassnahmeResultat = Value + End Set + End Property + + + Public Property [iMassnahmeStatusNr]() As SqlInt32 + Get + Return m_iMassnahmeStatusNr + End Get + Set(ByVal Value As SqlInt32) + m_iMassnahmeStatusNr = Value + End Set + End Property + + + Public Property [daTermin]() As SqlDateTime + Get + Return m_daTermin + End Get + Set(ByVal Value As SqlDateTime) + m_daTermin = Value + End Set + End Property + + + Public Property [iVerantwortungNr]() As SqlInt32 + Get + Return m_iVerantwortungNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortungNr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittResultat.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittResultat.vb new file mode 100644 index 0000000..d589cb7 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittResultat.vb @@ -0,0 +1,492 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefSchrittResultat + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iFindings_mittel, m_iAnzahl_Pruefungen, m_iFindings_hoch, m_iFinding_kein, m_iFindings_niedrig, m_iMutierer, m_iPruefschrittNr, m_iPruefschrittResultatStatusNr, m_iPruefSchrittResultatNr As SqlInt32 + Private m_sKurzbeschreibung, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittResultat_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittResultatNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittResultatNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittResultatStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittResultatStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iAnzahl_Pruefungen", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAnzahl_Pruefungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_niedrig", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_niedrig)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_mittel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_mittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_hoch", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_hoch)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFinding_kein", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFinding_kein)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittResultat_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittResultat::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittResultat_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittResultatNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittResultatNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittResultatStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittResultatStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKurzbeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKurzbeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iAnzahl_Pruefungen", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAnzahl_Pruefungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_niedrig", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_niedrig)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_mittel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_mittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFindings_hoch", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFindings_hoch)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iFinding_kein", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFinding_kein)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittResultat_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittResultat::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittResultat_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefSchrittResultatNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittResultatNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittResultat_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittResultat::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittResultat_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittResultat") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefSchrittResultatNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefSchrittResultatNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittResultat_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefSchrittResultatNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefSchrittResultatNr"), Integer)) + If dtToReturn.Rows(0)("PruefschrittNr") Is System.DBNull.Value Then + m_iPruefschrittNr = SqlInt32.Null + Else + m_iPruefschrittNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittNr"), Integer)) + End If + If dtToReturn.Rows(0)("PruefschrittResultatStatusNr") Is System.DBNull.Value Then + m_iPruefschrittResultatStatusNr = SqlInt32.Null + Else + m_iPruefschrittResultatStatusNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittResultatStatusNr"), Integer)) + End If + If dtToReturn.Rows(0)("Kurzbeschreibung") Is System.DBNull.Value Then + m_sKurzbeschreibung = SqlString.Null + Else + m_sKurzbeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Kurzbeschreibung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Anzahl_Pruefungen") Is System.DBNull.Value Then + m_iAnzahl_Pruefungen = SqlInt32.Null + Else + m_iAnzahl_Pruefungen = New SqlInt32(CType(dtToReturn.Rows(0)("Anzahl_Pruefungen"), Integer)) + End If + If dtToReturn.Rows(0)("Findings_niedrig") Is System.DBNull.Value Then + m_iFindings_niedrig = SqlInt32.Null + Else + m_iFindings_niedrig = New SqlInt32(CType(dtToReturn.Rows(0)("Findings_niedrig"), Integer)) + End If + If dtToReturn.Rows(0)("Findings_mittel") Is System.DBNull.Value Then + m_iFindings_mittel = SqlInt32.Null + Else + m_iFindings_mittel = New SqlInt32(CType(dtToReturn.Rows(0)("Findings_mittel"), Integer)) + End If + If dtToReturn.Rows(0)("Findings_hoch") Is System.DBNull.Value Then + m_iFindings_hoch = SqlInt32.Null + Else + m_iFindings_hoch = New SqlInt32(CType(dtToReturn.Rows(0)("Findings_hoch"), Integer)) + End If + If dtToReturn.Rows(0)("Finding_kein") Is System.DBNull.Value Then + m_iFinding_kein = SqlInt32.Null + Else + m_iFinding_kein = New SqlInt32(CType(dtToReturn.Rows(0)("Finding_kein"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittResultat::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittResultat_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittResultat") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittResultat_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittResultat::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefSchrittResultatNr]() As SqlInt32 + Get + Return m_iPruefSchrittResultatNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefSchrittResultatNrTmp As SqlInt32 = Value + If iPruefSchrittResultatNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefSchrittResultatNr", "iPruefSchrittResultatNr can't be NULL") + End If + m_iPruefSchrittResultatNr = Value + End Set + End Property + + + Public Property [iPruefschrittNr]() As SqlInt32 + Get + Return m_iPruefschrittNr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittNr = Value + End Set + End Property + + + Public Property [iPruefschrittResultatStatusNr]() As SqlInt32 + Get + Return m_iPruefschrittResultatStatusNr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittResultatStatusNr = Value + End Set + End Property + + + Public Property [sKurzbeschreibung]() As SqlString + Get + Return m_sKurzbeschreibung + End Get + Set(ByVal Value As SqlString) + m_sKurzbeschreibung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iAnzahl_Pruefungen]() As SqlInt32 + Get + Return m_iAnzahl_Pruefungen + End Get + Set(ByVal Value As SqlInt32) + m_iAnzahl_Pruefungen = Value + End Set + End Property + + + Public Property [iFindings_niedrig]() As SqlInt32 + Get + Return m_iFindings_niedrig + End Get + Set(ByVal Value As SqlInt32) + m_iFindings_niedrig = Value + End Set + End Property + + + Public Property [iFindings_mittel]() As SqlInt32 + Get + Return m_iFindings_mittel + End Get + Set(ByVal Value As SqlInt32) + m_iFindings_mittel = Value + End Set + End Property + + + Public Property [iFindings_hoch]() As SqlInt32 + Get + Return m_iFindings_hoch + End Get + Set(ByVal Value As SqlInt32) + m_iFindings_hoch = Value + End Set + End Property + + + Public Property [iFinding_kein]() As SqlInt32 + Get + Return m_iFinding_kein + End Get + Set(ByVal Value As SqlInt32) + m_iFinding_kein = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittStatus.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittStatus.vb new file mode 100644 index 0000000..0184a0c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefSchrittStatus.vb @@ -0,0 +1,373 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefSchrittStatus + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iPruefschrittStatusNr As SqlInt32 + Private m_sBezeichnung, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittStatus_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittStatus_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittStatus::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittStatus_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittStatusNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittStatus_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittStatus::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittStatus_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittStatusNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittStatus_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittStatus::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittStatus_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittStatus") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittStatusNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittStatusNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittStatus_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefschrittStatusNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittStatusNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittStatus::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefSchrittStatus_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefSchrittStatus") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefSchrittStatus_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefSchrittStatus::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefschrittStatusNr]() As SqlInt32 + Get + Return m_iPruefschrittStatusNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefschrittStatusNrTmp As SqlInt32 = Value + If iPruefschrittStatusNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefschrittStatusNr", "iPruefschrittStatusNr can't be NULL") + End If + m_iPruefschrittStatusNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefplan.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefplan.vb new file mode 100644 index 0000000..7309751 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefplan.vb @@ -0,0 +1,662 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + Public Class clsPruefplan + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bSelbstkontrolle, m_bKein_Mailversand, m_bAktiv, m_bDurchfuehrung_ISI As SqlBoolean + Private m_daMutiert_am, m_daGueltig_Bis, m_daErstmals_am, m_daErstellt_am As SqlDateTime + Private m_iVerantwortungPlanNr, m_iMutierer, m_iAssessmentType, m_iPruefplanNr, m_iTerminierungID, m_iPrioritaetNr, m_iPeriodizitaetNr, m_iZeitpunktNr, m_iVerantwortungISINr, m_iVerantwortlichNr As SqlInt32 + Private m_sBezeichnung, m_sBeschreibung, m_sMassnahmen, m_sErgebnisse, m_sPruefgegenstand, m_sHilfsmittel As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefplan_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPrioritaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPrioritaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iZeitpunktNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iZeitpunktNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstmals_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstmals_am)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sPruefgegenstand", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sPruefgegenstand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sHilfsmittel", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sHilfsmittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgebnisse", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgebnisse)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iTerminierungID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iTerminierungID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungPlanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungPlanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bKein_Mailversand", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bKein_Mailversand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bSelbstkontrolle", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bSelbstkontrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAssessmentType", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAssessmentType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bDurchfuehrung_ISI", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bDurchfuehrung_ISI)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefplan_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefplan::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefplan_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPrioritaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPrioritaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPeriodizitaetNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPeriodizitaetNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iZeitpunktNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iZeitpunktNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstmals_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstmals_am)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sPruefgegenstand", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sPruefgegenstand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sHilfsmittel", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sHilfsmittel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sMassnahmen", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sMassnahmen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgebnisse", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgebnisse)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iTerminierungID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iTerminierungID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungPlanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungPlanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bKein_Mailversand", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bKein_Mailversand)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bSelbstkontrolle", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bSelbstkontrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAssessmentType", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAssessmentType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bDurchfuehrung_ISI", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bDurchfuehrung_ISI)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefplan_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefplan::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefplan_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefplan_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefplan::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefplan_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefplan") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefplan_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefplanNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("PrioritaetNr") Is System.DBNull.Value Then + m_iPrioritaetNr = SqlInt32.Null + Else + m_iPrioritaetNr = New SqlInt32(CType(dtToReturn.Rows(0)("PrioritaetNr"), Integer)) + End If + If dtToReturn.Rows(0)("PeriodizitaetNr") Is System.DBNull.Value Then + m_iPeriodizitaetNr = SqlInt32.Null + Else + m_iPeriodizitaetNr = New SqlInt32(CType(dtToReturn.Rows(0)("PeriodizitaetNr"), Integer)) + End If + If dtToReturn.Rows(0)("ZeitpunktNr") Is System.DBNull.Value Then + m_iZeitpunktNr = SqlInt32.Null + Else + m_iZeitpunktNr = New SqlInt32(CType(dtToReturn.Rows(0)("ZeitpunktNr"), Integer)) + End If + If dtToReturn.Rows(0)("Erstmals_am") Is System.DBNull.Value Then + m_daErstmals_am = SqlDateTime.Null + Else + m_daErstmals_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstmals_am"), Date)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Pruefgegenstand") Is System.DBNull.Value Then + m_sPruefgegenstand = SqlString.Null + Else + m_sPruefgegenstand = New SqlString(CType(dtToReturn.Rows(0)("Pruefgegenstand"), String)) + End If + If dtToReturn.Rows(0)("Hilfsmittel") Is System.DBNull.Value Then + m_sHilfsmittel = SqlString.Null + Else + m_sHilfsmittel = New SqlString(CType(dtToReturn.Rows(0)("Hilfsmittel"), String)) + End If + If dtToReturn.Rows(0)("Massnahmen") Is System.DBNull.Value Then + m_sMassnahmen = SqlString.Null + Else + m_sMassnahmen = New SqlString(CType(dtToReturn.Rows(0)("Massnahmen"), String)) + End If + If dtToReturn.Rows(0)("Ergebnisse") Is System.DBNull.Value Then + m_sErgebnisse = SqlString.Null + Else + m_sErgebnisse = New SqlString(CType(dtToReturn.Rows(0)("Ergebnisse"), String)) + End If + If dtToReturn.Rows(0)("VerantwortlichNr") Is System.DBNull.Value Then + m_iVerantwortlichNr = SqlInt32.Null + Else + m_iVerantwortlichNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortlichNr"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortungISINr") Is System.DBNull.Value Then + m_iVerantwortungISINr = SqlInt32.Null + Else + m_iVerantwortungISINr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungISINr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Gueltig_Bis") Is System.DBNull.Value Then + m_daGueltig_Bis = SqlDateTime.Null + Else + m_daGueltig_Bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_Bis"), Date)) + End If + If dtToReturn.Rows(0)("TerminierungID") Is System.DBNull.Value Then + m_iTerminierungID = SqlInt32.Null + Else + m_iTerminierungID = New SqlInt32(CType(dtToReturn.Rows(0)("TerminierungID"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortungPlanNr") Is System.DBNull.Value Then + m_iVerantwortungPlanNr = SqlInt32.Null + Else + m_iVerantwortungPlanNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungPlanNr"), Integer)) + End If + If dtToReturn.Rows(0)("Kein_Mailversand") Is System.DBNull.Value Then + m_bKein_Mailversand = SqlBoolean.Null + Else + m_bKein_Mailversand = New SqlBoolean(CType(dtToReturn.Rows(0)("Kein_Mailversand"), Boolean)) + End If + If dtToReturn.Rows(0)("Selbstkontrolle") Is System.DBNull.Value Then + m_bSelbstkontrolle = SqlBoolean.Null + Else + m_bSelbstkontrolle = New SqlBoolean(CType(dtToReturn.Rows(0)("Selbstkontrolle"), Boolean)) + End If + If dtToReturn.Rows(0)("AssessmentType") Is System.DBNull.Value Then + m_iAssessmentType = SqlInt32.Null + Else + m_iAssessmentType = New SqlInt32(CType(dtToReturn.Rows(0)("AssessmentType"), Integer)) + End If + If dtToReturn.Rows(0)("Durchfuehrung_ISI") Is System.DBNull.Value Then + m_bDurchfuehrung_ISI = SqlBoolean.Null + Else + m_bDurchfuehrung_ISI = New SqlBoolean(CType(dtToReturn.Rows(0)("Durchfuehrung_ISI"), Boolean)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefplan::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefplan_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefplan") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefplan_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefplan::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefplanNr]() As SqlInt32 + Get + Return m_iPruefplanNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefplanNrTmp As SqlInt32 = Value + If iPruefplanNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefplanNr", "iPruefplanNr can't be NULL") + End If + m_iPruefplanNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [iPrioritaetNr]() As SqlInt32 + Get + Return m_iPrioritaetNr + End Get + Set(ByVal Value As SqlInt32) + m_iPrioritaetNr = Value + End Set + End Property + + + Public Property [iPeriodizitaetNr]() As SqlInt32 + Get + Return m_iPeriodizitaetNr + End Get + Set(ByVal Value As SqlInt32) + m_iPeriodizitaetNr = Value + End Set + End Property + + + Public Property [iZeitpunktNr]() As SqlInt32 + Get + Return m_iZeitpunktNr + End Get + Set(ByVal Value As SqlInt32) + m_iZeitpunktNr = Value + End Set + End Property + + + Public Property [daErstmals_am]() As SqlDateTime + Get + Return m_daErstmals_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstmals_am = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sPruefgegenstand]() As SqlString + Get + Return m_sPruefgegenstand + End Get + Set(ByVal Value As SqlString) + m_sPruefgegenstand = Value + End Set + End Property + + + Public Property [sHilfsmittel]() As SqlString + Get + Return m_sHilfsmittel + End Get + Set(ByVal Value As SqlString) + m_sHilfsmittel = Value + End Set + End Property + + + Public Property [sMassnahmen]() As SqlString + Get + Return m_sMassnahmen + End Get + Set(ByVal Value As SqlString) + m_sMassnahmen = Value + End Set + End Property + + + Public Property [sErgebnisse]() As SqlString + Get + Return m_sErgebnisse + End Get + Set(ByVal Value As SqlString) + m_sErgebnisse = Value + End Set + End Property + + + Public Property [iVerantwortlichNr]() As SqlInt32 + Get + Return m_iVerantwortlichNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortlichNr = Value + End Set + End Property + + + Public Property [iVerantwortungISINr]() As SqlInt32 + Get + Return m_iVerantwortungISINr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortungISINr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [daGueltig_Bis]() As SqlDateTime + Get + Return m_daGueltig_Bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_Bis = Value + End Set + End Property + + + Public Property [iTerminierungID]() As SqlInt32 + Get + Return m_iTerminierungID + End Get + Set(ByVal Value As SqlInt32) + m_iTerminierungID = Value + End Set + End Property + + + Public Property [iVerantwortungPlanNr]() As SqlInt32 + Get + Return m_iVerantwortungPlanNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortungPlanNr = Value + End Set + End Property + + + Public Property [bKein_Mailversand]() As SqlBoolean + Get + Return m_bKein_Mailversand + End Get + Set(ByVal Value As SqlBoolean) + m_bKein_Mailversand = Value + End Set + End Property + + + Public Property [bSelbstkontrolle]() As SqlBoolean + Get + Return m_bSelbstkontrolle + End Get + Set(ByVal Value As SqlBoolean) + m_bSelbstkontrolle = Value + End Set + End Property + + + Public Property [iAssessmentType]() As SqlInt32 + Get + Return m_iAssessmentType + End Get + Set(ByVal Value As SqlInt32) + m_iAssessmentType = Value + End Set + End Property + + + Public Property [bDurchfuehrung_ISI]() As SqlBoolean + Get + Return m_bDurchfuehrung_ISI + End Get + Set(ByVal Value As SqlBoolean) + m_bDurchfuehrung_ISI = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschritt.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschritt.vb new file mode 100644 index 0000000..986ec0a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschritt.vb @@ -0,0 +1,492 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + Public Class clsPruefschritt + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv, m_bDurchfuehrung_ISI As SqlBoolean + Private m_daTermin, m_daErstellt_am, m_daZugewiesen, m_daMutiert_am As SqlDateTime + Private m_iPruefplanNr, m_iMutierer, m_iPruefschrittNr, m_iAssessmenttyp, m_iAktueller_Verantwortlicher, m_iVeramtwortungISINr, m_iStatusnr, m_iVerantwortlichNr As SqlInt32 + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschritt_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iStatusnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iStatusnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAktueller_Verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAktueller_Verantwortlicher)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVeramtwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVeramtwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daZugewiesen", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daZugewiesen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAssessmenttyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAssessmenttyp)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bDurchfuehrung_ISI", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bDurchfuehrung_ISI)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iPruefschrittNr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iPruefschrittNr").Value, Integer)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschritt_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschritt::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschritt_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefplanNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefplanNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iStatusnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iStatusnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortlichNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlichNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAktueller_Verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAktueller_Verantwortlicher)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVeramtwortungISINr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVeramtwortungISINr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daTermin", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daTermin)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daZugewiesen", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daZugewiesen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAssessmenttyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAssessmenttyp)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bDurchfuehrung_ISI", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bDurchfuehrung_ISI)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschritt_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschritt::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschritt_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschritt_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschritt::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschritt_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefschritt") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschritt_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefschrittNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittNr"), Integer)) + If dtToReturn.Rows(0)("PruefplanNr") Is System.DBNull.Value Then + m_iPruefplanNr = SqlInt32.Null + Else + m_iPruefplanNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefplanNr"), Integer)) + End If + If dtToReturn.Rows(0)("Statusnr") Is System.DBNull.Value Then + m_iStatusnr = SqlInt32.Null + Else + m_iStatusnr = New SqlInt32(CType(dtToReturn.Rows(0)("Statusnr"), Integer)) + End If + If dtToReturn.Rows(0)("VerantwortlichNr") Is System.DBNull.Value Then + m_iVerantwortlichNr = SqlInt32.Null + Else + m_iVerantwortlichNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortlichNr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktueller_Verantwortlicher") Is System.DBNull.Value Then + m_iAktueller_Verantwortlicher = SqlInt32.Null + Else + m_iAktueller_Verantwortlicher = New SqlInt32(CType(dtToReturn.Rows(0)("Aktueller_Verantwortlicher"), Integer)) + End If + If dtToReturn.Rows(0)("VeramtwortungISINr") Is System.DBNull.Value Then + m_iVeramtwortungISINr = SqlInt32.Null + Else + m_iVeramtwortungISINr = New SqlInt32(CType(dtToReturn.Rows(0)("VeramtwortungISINr"), Integer)) + End If + If dtToReturn.Rows(0)("Termin") Is System.DBNull.Value Then + m_daTermin = SqlDateTime.Null + Else + m_daTermin = New SqlDateTime(CType(dtToReturn.Rows(0)("Termin"), Date)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Zugewiesen") Is System.DBNull.Value Then + m_daZugewiesen = SqlDateTime.Null + Else + m_daZugewiesen = New SqlDateTime(CType(dtToReturn.Rows(0)("Zugewiesen"), Date)) + End If + If dtToReturn.Rows(0)("Assessmenttyp") Is System.DBNull.Value Then + m_iAssessmenttyp = SqlInt32.Null + Else + m_iAssessmenttyp = New SqlInt32(CType(dtToReturn.Rows(0)("Assessmenttyp"), Integer)) + End If + If dtToReturn.Rows(0)("Durchfuehrung_ISI") Is System.DBNull.Value Then + m_bDurchfuehrung_ISI = SqlBoolean.Null + Else + m_bDurchfuehrung_ISI = New SqlBoolean(CType(dtToReturn.Rows(0)("Durchfuehrung_ISI"), Boolean)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschritt::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschritt_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefschritt") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschritt_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschritt::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefschrittNr]() As SqlInt32 + Get + Return m_iPruefschrittNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefschrittNrTmp As SqlInt32 = Value + If iPruefschrittNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefschrittNr", "iPruefschrittNr can't be NULL") + End If + m_iPruefschrittNr = Value + End Set + End Property + + + Public Property [iPruefplanNr]() As SqlInt32 + Get + Return m_iPruefplanNr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefplanNr = Value + End Set + End Property + + + Public Property [iStatusnr]() As SqlInt32 + Get + Return m_iStatusnr + End Get + Set(ByVal Value As SqlInt32) + m_iStatusnr = Value + End Set + End Property + + + Public Property [iVerantwortlichNr]() As SqlInt32 + Get + Return m_iVerantwortlichNr + End Get + Set(ByVal Value As SqlInt32) + m_iVerantwortlichNr = Value + End Set + End Property + + + Public Property [iAktueller_Verantwortlicher]() As SqlInt32 + Get + Return m_iAktueller_Verantwortlicher + End Get + Set(ByVal Value As SqlInt32) + m_iAktueller_Verantwortlicher = Value + End Set + End Property + + + Public Property [iVeramtwortungISINr]() As SqlInt32 + Get + Return m_iVeramtwortungISINr + End Get + Set(ByVal Value As SqlInt32) + m_iVeramtwortungISINr = Value + End Set + End Property + + + Public Property [daTermin]() As SqlDateTime + Get + Return m_daTermin + End Get + Set(ByVal Value As SqlDateTime) + m_daTermin = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [daZugewiesen]() As SqlDateTime + Get + Return m_daZugewiesen + End Get + Set(ByVal Value As SqlDateTime) + m_daZugewiesen = Value + End Set + End Property + + + Public Property [iAssessmenttyp]() As SqlInt32 + Get + Return m_iAssessmenttyp + End Get + Set(ByVal Value As SqlInt32) + m_iAssessmenttyp = Value + End Set + End Property + + + Public Property [bDurchfuehrung_ISI]() As SqlBoolean + Get + Return m_bDurchfuehrung_ISI + End Get + Set(ByVal Value As SqlBoolean) + m_bDurchfuehrung_ISI = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittFinding.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittFinding.vb new file mode 100644 index 0000000..1b11f10 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittFinding.vb @@ -0,0 +1,441 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefschrittFinding + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iWichtigkeitnr, m_iAuswirkungnr, m_iKritikalitaetnr, m_iPruefschrittresultatnr, m_iPruefschrittfindingNr As SqlInt32 + Private m_sBeschreibung, m_sBezeichnung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefschrittFinding_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittfindingNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittresultatnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittresultatnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iWichtigkeitnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iWichtigkeitnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKritikalitaetnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iKritikalitaetnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswirkungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswirkungnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefschrittFinding_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittFinding::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefschrittFinding_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittfindingNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittresultatnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittresultatnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iWichtigkeitnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iWichtigkeitnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iKritikalitaetnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iKritikalitaetnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswirkungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswirkungnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefschrittFinding_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittFinding::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefschrittFinding_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittfindingNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefschrittFinding_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittFinding::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefschrittFinding_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefschrittFinding") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittfindingNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittfindingNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefschrittFinding_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefschrittfindingNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittfindingNr"), Integer)) + If dtToReturn.Rows(0)("Pruefschrittresultatnr") Is System.DBNull.Value Then + m_iPruefschrittresultatnr = SqlInt32.Null + Else + m_iPruefschrittresultatnr = New SqlInt32(CType(dtToReturn.Rows(0)("Pruefschrittresultatnr"), Integer)) + End If + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Wichtigkeitnr") Is System.DBNull.Value Then + m_iWichtigkeitnr = SqlInt32.Null + Else + m_iWichtigkeitnr = New SqlInt32(CType(dtToReturn.Rows(0)("Wichtigkeitnr"), Integer)) + End If + If dtToReturn.Rows(0)("Kritikalitaetnr") Is System.DBNull.Value Then + m_iKritikalitaetnr = SqlInt32.Null + Else + m_iKritikalitaetnr = New SqlInt32(CType(dtToReturn.Rows(0)("Kritikalitaetnr"), Integer)) + End If + If dtToReturn.Rows(0)("Auswirkungnr") Is System.DBNull.Value Then + m_iAuswirkungnr = SqlInt32.Null + Else + m_iAuswirkungnr = New SqlInt32(CType(dtToReturn.Rows(0)("Auswirkungnr"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittFinding::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_PruefschrittFinding_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("PruefschrittFinding") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_PruefschrittFinding_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittFinding::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefschrittfindingNr]() As SqlInt32 + Get + Return m_iPruefschrittfindingNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefschrittfindingNrTmp As SqlInt32 = Value + If iPruefschrittfindingNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefschrittfindingNr", "iPruefschrittfindingNr can't be NULL") + End If + m_iPruefschrittfindingNr = Value + End Set + End Property + + + Public Property [iPruefschrittresultatnr]() As SqlInt32 + Get + Return m_iPruefschrittresultatnr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittresultatnr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iWichtigkeitnr]() As SqlInt32 + Get + Return m_iWichtigkeitnr + End Get + Set(ByVal Value As SqlInt32) + m_iWichtigkeitnr = Value + End Set + End Property + + + Public Property [iKritikalitaetnr]() As SqlInt32 + Get + Return m_iKritikalitaetnr + End Get + Set(ByVal Value As SqlInt32) + m_iKritikalitaetnr = Value + End Set + End Property + + + Public Property [iAuswirkungnr]() As SqlInt32 + Get + Return m_iAuswirkungnr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswirkungnr = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittnotiz.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittnotiz.vb new file mode 100644 index 0000000..dd9f7dd --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsPruefschrittnotiz.vb @@ -0,0 +1,373 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsPruefschrittnotiz + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iPruefschrittnr, m_iPruefschrittnotizNr As SqlInt32 + Private m_sNotiz As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschrittnotiz_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittnotizNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnotizNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sNotiz", SqlDbType.VarChar, 4098, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sNotiz)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschrittnotiz_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittnotiz::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschrittnotiz_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittnotizNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnotizNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sNotiz", SqlDbType.VarChar, 4098, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sNotiz)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschrittnotiz_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittnotiz::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschrittnotiz_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iPruefschrittnotizNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnotizNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschrittnotiz_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittnotiz::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschrittnotiz_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefschrittnotiz") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iPruefschrittnotizNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iPruefschrittnotizNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschrittnotiz_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iPruefschrittnotizNr = New SqlInt32(CType(dtToReturn.Rows(0)("PruefschrittnotizNr"), Integer)) + If dtToReturn.Rows(0)("Pruefschrittnr") Is System.DBNull.Value Then + m_iPruefschrittnr = SqlInt32.Null + Else + m_iPruefschrittnr = New SqlInt32(CType(dtToReturn.Rows(0)("Pruefschrittnr"), Integer)) + End If + If dtToReturn.Rows(0)("Notiz") Is System.DBNull.Value Then + m_sNotiz = SqlString.Null + Else + m_sNotiz = New SqlString(CType(dtToReturn.Rows(0)("Notiz"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittnotiz::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Pruefschrittnotiz_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Pruefschrittnotiz") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Pruefschrittnotiz_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsPruefschrittnotiz::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iPruefschrittnotizNr]() As SqlInt32 + Get + Return m_iPruefschrittnotizNr + End Get + Set(ByVal Value As SqlInt32) + Dim iPruefschrittnotizNrTmp As SqlInt32 = Value + If iPruefschrittnotizNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iPruefschrittnotizNr", "iPruefschrittnotizNr can't be NULL") + End If + m_iPruefschrittnotizNr = Value + End Set + End Property + + + Public Property [iPruefschrittnr]() As SqlInt32 + Get + Return m_iPruefschrittnr + End Get + Set(ByVal Value As SqlInt32) + m_iPruefschrittnr = Value + End Set + End Property + + + Public Property [sNotiz]() As SqlString + Get + Return m_sNotiz + End Get + Set(ByVal Value As SqlString) + m_sNotiz = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle.vb new file mode 100644 index 0000000..07237dc --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle.vb @@ -0,0 +1,510 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'rolle' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'rolle'. + ''' + Public Class clsRolle + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bSysadminrolle, m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iRollenr, m_iMandantnr As SqlInt32 + Private m_sBeschreibung, m_sBezeichnung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRollenr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • bSysadminrolle. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bsysadminrolle", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bSysadminrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRollenr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • bSysadminrolle. May be SqlBoolean.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bsysadminrolle", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bSysadminrolle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRollenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRollenr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iRollenr
  • + '''
  • sBezeichnung
  • + '''
  • sBeschreibung
  • + '''
  • bSysadminrolle
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("rolle") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iRollenr = New SqlInt32(CType(dtToReturn.Rows(0)("rollenr"), Integer)) + If dtToReturn.Rows(0)("bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String)) + End If + If dtToReturn.Rows(0)("sysadminrolle") Is System.DBNull.Value Then + m_bSysadminrolle = SqlBoolean.Null + Else + m_bSysadminrolle = New SqlBoolean(CType(dtToReturn.Rows(0)("sysadminrolle"), Boolean)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("rolle") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iRollenr]() As SqlInt32 + Get + Return m_iRollenr + End Get + Set(ByVal Value As SqlInt32) + Dim iRollenrTmp As SqlInt32 = Value + If iRollenrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iRollenr", "iRollenr can't be NULL") + End If + m_iRollenr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bSysadminrolle]() As SqlBoolean + Get + Return m_bSysadminrolle + End Get + Set(ByVal Value As SqlBoolean) + m_bSysadminrolle = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_SecurityObject.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_SecurityObject.vb new file mode 100644 index 0000000..fc96336 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_SecurityObject.vb @@ -0,0 +1,529 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'Rolle_SecurityObject' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'Rolle_SecurityObject'. + ''' + Public Class clsRolle_SecurityObject + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bReadonly, m_bAktiv, m_bInvisible As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iMandantnr, m_iRollenr, m_iSecurityobjectnr, m_iRolle_securityobjectnr As SqlInt32 + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_securityobjectnr
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iSecurityobjectnr. May be SqlInt32.Null
  • + '''
  • bReadonly. May be SqlBoolean.Null
  • + '''
  • bInvisible. May be SqlBoolean.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Rolle_SecurityObject_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_securityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_securityobjectnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isecurityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSecurityobjectnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@breadonly", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bReadonly)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@binvisible", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bInvisible)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Rolle_SecurityObject_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_SecurityObject::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_securityobjectnr
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iSecurityobjectnr. May be SqlInt32.Null
  • + '''
  • bReadonly. May be SqlBoolean.Null
  • + '''
  • bInvisible. May be SqlBoolean.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Rolle_SecurityObject_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_securityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_securityobjectnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isecurityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSecurityobjectnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@breadonly", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bReadonly)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@binvisible", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bInvisible)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Rolle_SecurityObject_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_SecurityObject::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_securityobjectnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Rolle_SecurityObject_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_securityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_securityobjectnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Rolle_SecurityObject_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_SecurityObject::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_securityobjectnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iRolle_securityobjectnr
  • + '''
  • iRollenr
  • + '''
  • iSecurityobjectnr
  • + '''
  • bReadonly
  • + '''
  • bInvisible
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iMandantnr
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Rolle_SecurityObject_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Rolle_SecurityObject") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@irolle_securityobjectnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_securityobjectnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Rolle_SecurityObject_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iRolle_securityobjectnr = New SqlInt32(CType(dtToReturn.Rows(0)("rolle_securityobjectnr"), Integer)) + If dtToReturn.Rows(0)("rollenr") Is System.DBNull.Value Then + m_iRollenr = SqlInt32.Null + Else + m_iRollenr = New SqlInt32(CType(dtToReturn.Rows(0)("rollenr"), Integer)) + End If + If dtToReturn.Rows(0)("securityobjectnr") Is System.DBNull.Value Then + m_iSecurityobjectnr = SqlInt32.Null + Else + m_iSecurityobjectnr = New SqlInt32(CType(dtToReturn.Rows(0)("securityobjectnr"), Integer)) + End If + If dtToReturn.Rows(0)("readonly") Is System.DBNull.Value Then + m_bReadonly = SqlBoolean.Null + Else + m_bReadonly = New SqlBoolean(CType(dtToReturn.Rows(0)("readonly"), Boolean)) + End If + If dtToReturn.Rows(0)("invisible") Is System.DBNull.Value Then + m_bInvisible = SqlBoolean.Null + Else + m_bInvisible = New SqlBoolean(CType(dtToReturn.Rows(0)("invisible"), Boolean)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_SecurityObject::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Rolle_SecurityObject_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Rolle_SecurityObject") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Rolle_SecurityObject_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_SecurityObject::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iRolle_securityobjectnr]() As SqlInt32 + Get + Return m_iRolle_securityobjectnr + End Get + Set(ByVal Value As SqlInt32) + Dim iRolle_securityobjectnrTmp As SqlInt32 = Value + If iRolle_securityobjectnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iRolle_securityobjectnr", "iRolle_securityobjectnr can't be NULL") + End If + m_iRolle_securityobjectnr = Value + End Set + End Property + + + Public Property [iRollenr]() As SqlInt32 + Get + Return m_iRollenr + End Get + Set(ByVal Value As SqlInt32) + m_iRollenr = Value + End Set + End Property + + + Public Property [iSecurityobjectnr]() As SqlInt32 + Get + Return m_iSecurityobjectnr + End Get + Set(ByVal Value As SqlInt32) + m_iSecurityobjectnr = Value + End Set + End Property + + + Public Property [bReadonly]() As SqlBoolean + Get + Return m_bReadonly + End Get + Set(ByVal Value As SqlBoolean) + m_bReadonly = Value + End Set + End Property + + + Public Property [bInvisible]() As SqlBoolean + Get + Return m_bInvisible + End Get + Set(ByVal Value As SqlBoolean) + m_bInvisible = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_sysadminfunktion.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_sysadminfunktion.vb new file mode 100644 index 0000000..00f2a9e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsRolle_sysadminfunktion.vb @@ -0,0 +1,489 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'rolle_sysadminfunktion' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'rolle_sysadminfunktion'. + ''' + Public Class clsRolle_sysadminfunktion + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iRollenr, m_iMandant, m_iSysadminfnktnr, m_iRolle_sysadminfnktnr, m_iMutierer As SqlInt32 + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_sysadminfnktnr
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iSysadminfnktnr. May be SqlInt32.Null
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iMandant. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_sysadminfunktion_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_sysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_sysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandant", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandant)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_sysadminfunktion_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_sysadminfunktion::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_sysadminfnktnr
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iSysadminfnktnr. May be SqlInt32.Null
  • + '''
  • iRollenr. May be SqlInt32.Null
  • + '''
  • iMandant. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_sysadminfunktion_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_sysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_sysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@irollenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iRollenr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandant", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandant)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_sysadminfunktion_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_sysadminfunktion::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_sysadminfnktnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_sysadminfunktion_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@irolle_sysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_sysadminfnktnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_sysadminfunktion_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_sysadminfunktion::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iRolle_sysadminfnktnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iRolle_sysadminfnktnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iSysadminfnktnr
  • + '''
  • iRollenr
  • + '''
  • iMandant
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_sysadminfunktion_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("rolle_sysadminfunktion") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@irolle_sysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iRolle_sysadminfnktnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_sysadminfunktion_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iRolle_sysadminfnktnr = New SqlInt32(CType(dtToReturn.Rows(0)("rolle_sysadminfnktnr"), Integer)) + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("sysadminfnktnr") Is System.DBNull.Value Then + m_iSysadminfnktnr = SqlInt32.Null + Else + m_iSysadminfnktnr = New SqlInt32(CType(dtToReturn.Rows(0)("sysadminfnktnr"), Integer)) + End If + If dtToReturn.Rows(0)("rollenr") Is System.DBNull.Value Then + m_iRollenr = SqlInt32.Null + Else + m_iRollenr = New SqlInt32(CType(dtToReturn.Rows(0)("rollenr"), Integer)) + End If + If dtToReturn.Rows(0)("mandant") Is System.DBNull.Value Then + m_iMandant = SqlInt32.Null + Else + m_iMandant = New SqlInt32(CType(dtToReturn.Rows(0)("mandant"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_sysadminfunktion::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_rolle_sysadminfunktion_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("rolle_sysadminfunktion") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_rolle_sysadminfunktion_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsRolle_sysadminfunktion::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iRolle_sysadminfnktnr]() As SqlInt32 + Get + Return m_iRolle_sysadminfnktnr + End Get + Set(ByVal Value As SqlInt32) + Dim iRolle_sysadminfnktnrTmp As SqlInt32 = Value + If iRolle_sysadminfnktnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iRolle_sysadminfnktnr", "iRolle_sysadminfnktnr can't be NULL") + End If + m_iRolle_sysadminfnktnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iSysadminfnktnr]() As SqlInt32 + Get + Return m_iSysadminfnktnr + End Get + Set(ByVal Value As SqlInt32) + m_iSysadminfnktnr = Value + End Set + End Property + + + Public Property [iRollenr]() As SqlInt32 + Get + Return m_iRollenr + End Get + Set(ByVal Value As SqlInt32) + m_iRollenr = Value + End Set + End Property + + + Public Property [iMandant]() As SqlInt32 + Get + Return m_iMandant + End Get + Set(ByVal Value As SqlInt32) + m_iMandant = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSecurityObject.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSecurityObject.vb new file mode 100644 index 0000000..5d07551 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSecurityObject.vb @@ -0,0 +1,570 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'SecurityObject' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'SecurityObject'. + ''' + Public Class clsSecurityObject + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iLevel, m_iMutierer, m_iMandantnr, m_iSecurityObjectNr As SqlInt32 + Private m_sSecurityForm, m_sSecurityObjectDescriotion, m_sSecurityObjectItem, m_sSecurityObject, m_sSecurityObjectType As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm. May be SqlString.Null
  • + '''
  • sSecurityObjectType. May be SqlString.Null
  • + '''
  • sSecurityObject. May be SqlString.Null
  • + '''
  • sSecurityObjectItem. May be SqlString.Null
  • + '''
  • sSecurityObjectDescriotion. May be SqlString.Null
  • + '''
  • iLevel. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityForm", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityForm)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObject", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectItem", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectDescriotion", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectDescriotion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iLevel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iLevel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iMandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm. May be SqlString.Null
  • + '''
  • sSecurityObjectType. May be SqlString.Null
  • + '''
  • sSecurityObject. May be SqlString.Null
  • + '''
  • sSecurityObjectItem. May be SqlString.Null
  • + '''
  • sSecurityObjectDescriotion. May be SqlString.Null
  • + '''
  • iLevel. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityForm", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityForm)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObject", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectItem", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectDescriotion", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectDescriotion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iLevel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iLevel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iMandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm
  • + '''
  • sSecurityObjectType
  • + '''
  • sSecurityObject
  • + '''
  • sSecurityObjectItem
  • + '''
  • sSecurityObjectDescriotion
  • + '''
  • iLevel
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iMandantnr
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("SecurityObject") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iSecurityObjectNr = New SqlInt32(CType(dtToReturn.Rows(0)("SecurityObjectNr"), Integer)) + If dtToReturn.Rows(0)("SecurityForm") Is System.DBNull.Value Then + m_sSecurityForm = SqlString.Null + Else + m_sSecurityForm = New SqlString(CType(dtToReturn.Rows(0)("SecurityForm"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectType") Is System.DBNull.Value Then + m_sSecurityObjectType = SqlString.Null + Else + m_sSecurityObjectType = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectType"), String)) + End If + If dtToReturn.Rows(0)("SecurityObject") Is System.DBNull.Value Then + m_sSecurityObject = SqlString.Null + Else + m_sSecurityObject = New SqlString(CType(dtToReturn.Rows(0)("SecurityObject"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectItem") Is System.DBNull.Value Then + m_sSecurityObjectItem = SqlString.Null + Else + m_sSecurityObjectItem = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectItem"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectDescriotion") Is System.DBNull.Value Then + m_sSecurityObjectDescriotion = SqlString.Null + Else + m_sSecurityObjectDescriotion = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectDescriotion"), String)) + End If + If dtToReturn.Rows(0)("Level") Is System.DBNull.Value Then + m_iLevel = SqlInt32.Null + Else + m_iLevel = New SqlInt32(CType(dtToReturn.Rows(0)("Level"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("Mandantnr"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("SecurityObject") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iSecurityObjectNr]() As SqlInt32 + Get + Return m_iSecurityObjectNr + End Get + Set(ByVal Value As SqlInt32) + Dim iSecurityObjectNrTmp As SqlInt32 = Value + If iSecurityObjectNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iSecurityObjectNr", "iSecurityObjectNr can't be NULL") + End If + m_iSecurityObjectNr = Value + End Set + End Property + + + Public Property [sSecurityForm]() As SqlString + Get + Return m_sSecurityForm + End Get + Set(ByVal Value As SqlString) + m_sSecurityForm = Value + End Set + End Property + + + Public Property [sSecurityObjectType]() As SqlString + Get + Return m_sSecurityObjectType + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectType = Value + End Set + End Property + + + Public Property [sSecurityObject]() As SqlString + Get + Return m_sSecurityObject + End Get + Set(ByVal Value As SqlString) + m_sSecurityObject = Value + End Set + End Property + + + Public Property [sSecurityObjectItem]() As SqlString + Get + Return m_sSecurityObjectItem + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectItem = Value + End Set + End Property + + + Public Property [sSecurityObjectDescriotion]() As SqlString + Get + Return m_sSecurityObjectDescriotion + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectDescriotion = Value + End Set + End Property + + + Public Property [iLevel]() As SqlInt32 + Get + Return m_iLevel + End Get + Set(ByVal Value As SqlInt32) + m_iLevel = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/Dokumente_sik/Klassen/clsSpalten.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSpalten.vb similarity index 100% rename from SW/Dokumente_sik/Klassen/clsSpalten.vb rename to SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSpalten.vb diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSysadminfunktion.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSysadminfunktion.vb new file mode 100644 index 0000000..1a3fb68 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsSysadminfunktion.vb @@ -0,0 +1,710 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'sysadminfunktion' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 18:17:09 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'sysadminfunktion'. + ''' + Public Class clsSysadminfunktion + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iFheight, m_iFwidth, m_iMandantnr, m_iMutierer, m_iSprache, m_iSort, m_iImageIndex, m_iSysadminfnktnr, m_iParentID, m_iFtop, m_iFleft, m_iImageIndexOpen As SqlInt32 + Private m_sKeyFields, m_sDomaintable, m_sBeschreibung, m_sBezeichnung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSysadminfnktnr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • iParentID. May be SqlInt32.Null
  • + '''
  • iSort. May be SqlInt32.Null
  • + '''
  • iImageIndex. May be SqlInt32.Null
  • + '''
  • iImageIndexOpen. May be SqlInt32.Null
  • + '''
  • iFtop. May be SqlInt32.Null
  • + '''
  • iFleft. May be SqlInt32.Null
  • + '''
  • iFwidth. May be SqlInt32.Null
  • + '''
  • iFheight. May be SqlInt32.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • iMandantnr
  • + '''
  • iSprache
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • sDomaintable. May be SqlString.Null
  • + '''
  • sKeyFields. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_sysadminfunktion_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSort", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSort)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iImageIndex", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iImageIndex)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iImageIndexOpen", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iImageIndexOpen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iftop", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFtop)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifleft", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFleft)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifwidth", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFwidth)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifheight", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFheight)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@sDomaintable", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDomaintable)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKeyFields", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKeyFields)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSysadminfnktnr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • iParentID. May be SqlInt32.Null
  • + '''
  • iSort. May be SqlInt32.Null
  • + '''
  • iImageIndex. May be SqlInt32.Null
  • + '''
  • iImageIndexOpen. May be SqlInt32.Null
  • + '''
  • iFtop. May be SqlInt32.Null
  • + '''
  • iFleft. May be SqlInt32.Null
  • + '''
  • iFwidth. May be SqlInt32.Null
  • + '''
  • iFheight. May be SqlInt32.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • iMandantnr
  • + '''
  • iSprache
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • sDomaintable. May be SqlString.Null
  • + '''
  • sKeyFields. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_sysadminfunktion_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSort", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iSort)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iImageIndex", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iImageIndex)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iImageIndexOpen", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iImageIndexOpen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iftop", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFtop)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifleft", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFleft)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifwidth", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFwidth)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ifheight", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iFheight)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSprache)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@sDomaintable", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDomaintable)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKeyFields", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKeyFields)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSysadminfnktnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_sysadminfunktion_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSysadminfnktnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iSysadminfnktnr
  • + '''
  • sBezeichnung
  • + '''
  • iParentID
  • + '''
  • iSort
  • + '''
  • iImageIndex
  • + '''
  • iImageIndexOpen
  • + '''
  • iFtop
  • + '''
  • iFleft
  • + '''
  • iFwidth
  • + '''
  • iFheight
  • + '''
  • sBeschreibung
  • + '''
  • iMandantnr
  • + '''
  • iSprache
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • sDomaintable
  • + '''
  • sKeyFields
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_sysadminfunktion_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("sysadminfunktion") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@isysadminfnktnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSysadminfnktnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iSysadminfnktnr = New SqlInt32(CType(dtToReturn.Rows(0)("sysadminfnktnr"), Integer)) + If dtToReturn.Rows(0)("bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("ParentID") Is System.DBNull.Value Then + m_iParentID = SqlInt32.Null + Else + m_iParentID = New SqlInt32(CType(dtToReturn.Rows(0)("ParentID"), Integer)) + End If + If dtToReturn.Rows(0)("Sort") Is System.DBNull.Value Then + m_iSort = SqlInt32.Null + Else + m_iSort = New SqlInt32(CType(dtToReturn.Rows(0)("Sort"), Integer)) + End If + If dtToReturn.Rows(0)("ImageIndex") Is System.DBNull.Value Then + m_iImageIndex = SqlInt32.Null + Else + m_iImageIndex = New SqlInt32(CType(dtToReturn.Rows(0)("ImageIndex"), Integer)) + End If + If dtToReturn.Rows(0)("ImageIndexOpen") Is System.DBNull.Value Then + m_iImageIndexOpen = SqlInt32.Null + Else + m_iImageIndexOpen = New SqlInt32(CType(dtToReturn.Rows(0)("ImageIndexOpen"), Integer)) + End If + If dtToReturn.Rows(0)("ftop") Is System.DBNull.Value Then + m_iFtop = SqlInt32.Null + Else + m_iFtop = New SqlInt32(CType(dtToReturn.Rows(0)("ftop"), Integer)) + End If + If dtToReturn.Rows(0)("fleft") Is System.DBNull.Value Then + m_iFleft = SqlInt32.Null + Else + m_iFleft = New SqlInt32(CType(dtToReturn.Rows(0)("fleft"), Integer)) + End If + If dtToReturn.Rows(0)("fwidth") Is System.DBNull.Value Then + m_iFwidth = SqlInt32.Null + Else + m_iFwidth = New SqlInt32(CType(dtToReturn.Rows(0)("fwidth"), Integer)) + End If + If dtToReturn.Rows(0)("fheight") Is System.DBNull.Value Then + m_iFheight = SqlInt32.Null + Else + m_iFheight = New SqlInt32(CType(dtToReturn.Rows(0)("fheight"), Integer)) + End If + If dtToReturn.Rows(0)("beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String)) + End If + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + m_iSprache = New SqlInt32(CType(dtToReturn.Rows(0)("sprache"), Integer)) + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Domaintable") Is System.DBNull.Value Then + m_sDomaintable = SqlString.Null + Else + m_sDomaintable = New SqlString(CType(dtToReturn.Rows(0)("Domaintable"), String)) + End If + If dtToReturn.Rows(0)("KeyFields") Is System.DBNull.Value Then + m_sKeyFields = SqlString.Null + Else + m_sKeyFields = New SqlString(CType(dtToReturn.Rows(0)("KeyFields"), String)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_sysadminfunktion_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("sysadminfunktion") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iSysadminfnktnr]() As SqlInt32 + Get + Return m_iSysadminfnktnr + End Get + Set(ByVal Value As SqlInt32) + Dim iSysadminfnktnrTmp As SqlInt32 = Value + If iSysadminfnktnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iSysadminfnktnr", "iSysadminfnktnr can't be NULL") + End If + m_iSysadminfnktnr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [iParentID]() As SqlInt32 + Get + Return m_iParentID + End Get + Set(ByVal Value As SqlInt32) + m_iParentID = Value + End Set + End Property + + + Public Property [iSort]() As SqlInt32 + Get + Return m_iSort + End Get + Set(ByVal Value As SqlInt32) + m_iSort = Value + End Set + End Property + + + Public Property [iImageIndex]() As SqlInt32 + Get + Return m_iImageIndex + End Get + Set(ByVal Value As SqlInt32) + m_iImageIndex = Value + End Set + End Property + + + Public Property [iImageIndexOpen]() As SqlInt32 + Get + Return m_iImageIndexOpen + End Get + Set(ByVal Value As SqlInt32) + m_iImageIndexOpen = Value + End Set + End Property + + + Public Property [iFtop]() As SqlInt32 + Get + Return m_iFtop + End Get + Set(ByVal Value As SqlInt32) + m_iFtop = Value + End Set + End Property + + + Public Property [iFleft]() As SqlInt32 + Get + Return m_iFleft + End Get + Set(ByVal Value As SqlInt32) + m_iFleft = Value + End Set + End Property + + + Public Property [iFwidth]() As SqlInt32 + Get + Return m_iFwidth + End Get + Set(ByVal Value As SqlInt32) + m_iFwidth = Value + End Set + End Property + + + Public Property [iFheight]() As SqlInt32 + Get + Return m_iFheight + End Get + Set(ByVal Value As SqlInt32) + m_iFheight = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + Dim iMandantnrTmp As SqlInt32 = Value + If iMandantnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMandantnr", "iMandantnr can't be NULL") + End If + m_iMandantnr = Value + End Set + End Property + + + Public Property [iSprache]() As SqlInt32 + Get + Return m_iSprache + End Get + Set(ByVal Value As SqlInt32) + Dim iSpracheTmp As SqlInt32 = Value + If iSpracheTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iSprache", "iSprache can't be NULL") + End If + m_iSprache = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [sDomaintable]() As SqlString + Get + Return m_sDomaintable + End Get + Set(ByVal Value As SqlString) + m_sDomaintable = Value + End Set + End Property + + + Public Property [sKeyFields]() As SqlString + Get + Return m_sKeyFields + End Get + Set(ByVal Value As SqlString) + m_sKeyFields = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsTerminierung.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsTerminierung.vb new file mode 100644 index 0000000..30cfcf8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsTerminierung.vb @@ -0,0 +1,373 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsTerminierung + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iID As SqlInt32 + Private m_sBezeichnung, m_sBeschreibung As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Terminierung_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Terminierung_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsTerminierung::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Terminierung_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Terminierung_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsTerminierung::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Terminierung_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Terminierung_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsTerminierung::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Terminierung_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Terminierung") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Terminierung_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iID = New SqlInt32(CType(dtToReturn.Rows(0)("ID"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsTerminierung::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Terminierung_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Terminierung") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Terminierung_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsTerminierung::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iID]() As SqlInt32 + Get + Return m_iID + End Get + Set(ByVal Value As SqlInt32) + Dim iIDTmp As SqlInt32 = Value + If iIDTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iID", "iID can't be NULL") + End If + m_iID = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsToolTip.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsToolTip.vb new file mode 100644 index 0000000..161e6e2 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsToolTip.vb @@ -0,0 +1,490 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'ToolTip' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 14:02:28 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'ToolTip'. + ''' + Public Class clsToolTip + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iToolTipNr As SqlInt32 + Private m_sToolTip, m_sControlName, m_sFormularName As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iToolTipNr
  • + '''
  • sFormularName. May be SqlString.Null
  • + '''
  • sControlName. May be SqlString.Null
  • + '''
  • sToolTip. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_ToolTip_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iToolTipNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iToolTipNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFormularName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFormularName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sControlName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sControlName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sToolTip", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sToolTip)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_ToolTip_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsToolTip::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iToolTipNr
  • + '''
  • sFormularName. May be SqlString.Null
  • + '''
  • sControlName. May be SqlString.Null
  • + '''
  • sToolTip. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_ToolTip_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iToolTipNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iToolTipNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFormularName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFormularName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sControlName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sControlName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sToolTip", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sToolTip)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_ToolTip_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsToolTip::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iToolTipNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_ToolTip_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iToolTipNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iToolTipNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_ToolTip_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsToolTip::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iToolTipNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iToolTipNr
  • + '''
  • sFormularName
  • + '''
  • sControlName
  • + '''
  • sToolTip
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_ToolTip_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("ToolTip") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iToolTipNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iToolTipNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_ToolTip_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iToolTipNr = New SqlInt32(CType(dtToReturn.Rows(0)("ToolTipNr"), Integer)) + If dtToReturn.Rows(0)("FormularName") Is System.DBNull.Value Then + m_sFormularName = SqlString.Null + Else + m_sFormularName = New SqlString(CType(dtToReturn.Rows(0)("FormularName"), String)) + End If + If dtToReturn.Rows(0)("ControlName") Is System.DBNull.Value Then + m_sControlName = SqlString.Null + Else + m_sControlName = New SqlString(CType(dtToReturn.Rows(0)("ControlName"), String)) + End If + If dtToReturn.Rows(0)("ToolTip") Is System.DBNull.Value Then + m_sToolTip = SqlString.Null + Else + m_sToolTip = New SqlString(CType(dtToReturn.Rows(0)("ToolTip"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsToolTip::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_ToolTip_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("ToolTip") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_ToolTip_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsToolTip::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iToolTipNr]() As SqlInt32 + Get + Return m_iToolTipNr + End Get + Set(ByVal Value As SqlInt32) + Dim iToolTipNrTmp As SqlInt32 = Value + If iToolTipNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iToolTipNr", "iToolTipNr can't be NULL") + End If + m_iToolTipNr = Value + End Set + End Property + + + Public Property [sFormularName]() As SqlString + Get + Return m_sFormularName + End Get + Set(ByVal Value As SqlString) + m_sFormularName = Value + End Set + End Property + + + Public Property [sControlName]() As SqlString + Get + Return m_sControlName + End Get + Set(ByVal Value As SqlString) + m_sControlName = Value + End Set + End Property + + + Public Property [sToolTip]() As SqlString + Get + Return m_sToolTip + End Get + Set(ByVal Value As SqlString) + m_sToolTip = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVerantwortung.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVerantwortung.vb new file mode 100644 index 0000000..1bd616d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVerantwortung.vb @@ -0,0 +1,390 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsVerantwortung + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iVerantwortungNr As SqlInt32 + Private m_sEMail, m_sVorname, m_sName As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Verantwortung_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sVorname", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVorname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sEMail", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sEMail)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Verantwortung_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVerantwortung::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Verantwortung_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sVorname", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sVorname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sEMail", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sEMail)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Verantwortung_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVerantwortung::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Verantwortung_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Verantwortung_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVerantwortung::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Verantwortung_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Verantwortung") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iVerantwortungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Verantwortung_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iVerantwortungNr = New SqlInt32(CType(dtToReturn.Rows(0)("VerantwortungNr"), Integer)) + If dtToReturn.Rows(0)("Name") Is System.DBNull.Value Then + m_sName = SqlString.Null + Else + m_sName = New SqlString(CType(dtToReturn.Rows(0)("Name"), String)) + End If + If dtToReturn.Rows(0)("Vorname") Is System.DBNull.Value Then + m_sVorname = SqlString.Null + Else + m_sVorname = New SqlString(CType(dtToReturn.Rows(0)("Vorname"), String)) + End If + If dtToReturn.Rows(0)("EMail") Is System.DBNull.Value Then + m_sEMail = SqlString.Null + Else + m_sEMail = New SqlString(CType(dtToReturn.Rows(0)("EMail"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVerantwortung::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Verantwortung_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Verantwortung") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Verantwortung_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVerantwortung::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iVerantwortungNr]() As SqlInt32 + Get + Return m_iVerantwortungNr + End Get + Set(ByVal Value As SqlInt32) + Dim iVerantwortungNrTmp As SqlInt32 = Value + If iVerantwortungNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iVerantwortungNr", "iVerantwortungNr can't be NULL") + End If + m_iVerantwortungNr = Value + End Set + End Property + + + Public Property [sName]() As SqlString + Get + Return m_sName + End Get + Set(ByVal Value As SqlString) + m_sName = Value + End Set + End Property + + + Public Property [sVorname]() As SqlString + Get + Return m_sVorname + End Get + Set(ByVal Value As SqlString) + m_sVorname = Value + End Set + End Property + + + Public Property [sEMail]() As SqlString + Get + Return m_sEMail + End Get + Set(ByVal Value As SqlString) + m_sEMail = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabe.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabe.vb new file mode 100644 index 0000000..da2bf6b --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabe.vb @@ -0,0 +1,475 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsVorgabe + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am, m_daGueltig_Bis As SqlDateTime + Private m_iVorgabeID, m_iMutierer, m_iParentID As SqlInt32 + Private m_sBezeichnung, m_sDefinition, m_sBeschreibung, m_sKapitel, m_sErgaenzungen, m_sKapitelNr As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Vorgabe_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKapitelNr", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKapitelNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKapitel", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKapitel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgaenzungen", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgaenzungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Vorgabe_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabe::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Vorgabe_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iParentID", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentID)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKapitelNr", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKapitelNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sKapitel", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sKapitel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sErgaenzungen", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sErgaenzungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@daGueltig_Bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_Bis)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Vorgabe_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabe::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Vorgabe_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Vorgabe_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabe::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Vorgabe_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Vorgabe") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iVorgabeID", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeID)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Vorgabe_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iVorgabeID = New SqlInt32(CType(dtToReturn.Rows(0)("VorgabeID"), Integer)) + If dtToReturn.Rows(0)("ParentID") Is System.DBNull.Value Then + m_iParentID = SqlInt32.Null + Else + m_iParentID = New SqlInt32(CType(dtToReturn.Rows(0)("ParentID"), Integer)) + End If + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("KapitelNr") Is System.DBNull.Value Then + m_sKapitelNr = SqlString.Null + Else + m_sKapitelNr = New SqlString(CType(dtToReturn.Rows(0)("KapitelNr"), String)) + End If + If dtToReturn.Rows(0)("Kapitel") Is System.DBNull.Value Then + m_sKapitel = SqlString.Null + Else + m_sKapitel = New SqlString(CType(dtToReturn.Rows(0)("Kapitel"), String)) + End If + If dtToReturn.Rows(0)("Definition") Is System.DBNull.Value Then + m_sDefinition = SqlString.Null + Else + m_sDefinition = New SqlString(CType(dtToReturn.Rows(0)("Definition"), String)) + End If + If dtToReturn.Rows(0)("Ergaenzungen") Is System.DBNull.Value Then + m_sErgaenzungen = SqlString.Null + Else + m_sErgaenzungen = New SqlString(CType(dtToReturn.Rows(0)("Ergaenzungen"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Gueltig_Bis") Is System.DBNull.Value Then + m_daGueltig_Bis = SqlDateTime.Null + Else + m_daGueltig_Bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_Bis"), Date)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabe::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Vorgabe_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Vorgabe") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Vorgabe_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabe::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iVorgabeID]() As SqlInt32 + Get + Return m_iVorgabeID + End Get + Set(ByVal Value As SqlInt32) + Dim iVorgabeIDTmp As SqlInt32 = Value + If iVorgabeIDTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iVorgabeID", "iVorgabeID can't be NULL") + End If + m_iVorgabeID = Value + End Set + End Property + + + Public Property [iParentID]() As SqlInt32 + Get + Return m_iParentID + End Get + Set(ByVal Value As SqlInt32) + m_iParentID = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sKapitelNr]() As SqlString + Get + Return m_sKapitelNr + End Get + Set(ByVal Value As SqlString) + m_sKapitelNr = Value + End Set + End Property + + + Public Property [sKapitel]() As SqlString + Get + Return m_sKapitel + End Get + Set(ByVal Value As SqlString) + m_sKapitel = Value + End Set + End Property + + + Public Property [sDefinition]() As SqlString + Get + Return m_sDefinition + End Get + Set(ByVal Value As SqlString) + m_sDefinition = Value + End Set + End Property + + + Public Property [sErgaenzungen]() As SqlString + Get + Return m_sErgaenzungen + End Get + Set(ByVal Value As SqlString) + m_sErgaenzungen = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [daGueltig_Bis]() As SqlDateTime + Get + Return m_daGueltig_Bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_Bis = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabeDefinition.vb b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabeDefinition.vb new file mode 100644 index 0000000..a2da7a2 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/Generierte Objekte/clsVorgabeDefinition.vb @@ -0,0 +1,424 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + Public Class clsVorgabeDefinition + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daGueltig_bis, m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iMutierer, m_iVorgabeDefinitionNr, m_iVorgabeNr As SqlInt32 + Private m_sBemerkungen, m_sBezeichnung, m_sDefinition As SqlString + +#End Region + + + Public Sub New() + ' // Nothing for now. + End Sub + + + Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_VorgabeDefinition_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBemerkungen", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBemerkungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_VorgabeDefinition_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabeDefinition::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_VorgabeDefinition_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeDefinitionNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDefinition", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDefinition)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBemerkungen", SqlDbType.VarChar, 4096, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBemerkungen)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daGueltig_bis", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daGueltig_bis)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_VorgabeDefinition_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabeDefinition::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_VorgabeDefinition_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iVorgabeDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeDefinitionNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_VorgabeDefinition_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabeDefinition::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_VorgabeDefinition_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("VorgabeDefinition") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iVorgabeDefinitionNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iVorgabeDefinitionNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_VorgabeDefinition_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iVorgabeDefinitionNr = New SqlInt32(CType(dtToReturn.Rows(0)("VorgabeDefinitionNr"), Integer)) + If dtToReturn.Rows(0)("VorgabeNr") Is System.DBNull.Value Then + m_iVorgabeNr = SqlInt32.Null + Else + m_iVorgabeNr = New SqlInt32(CType(dtToReturn.Rows(0)("VorgabeNr"), Integer)) + End If + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Definition") Is System.DBNull.Value Then + m_sDefinition = SqlString.Null + Else + m_sDefinition = New SqlString(CType(dtToReturn.Rows(0)("Definition"), String)) + End If + If dtToReturn.Rows(0)("Bemerkungen") Is System.DBNull.Value Then + m_sBemerkungen = SqlString.Null + Else + m_sBemerkungen = New SqlString(CType(dtToReturn.Rows(0)("Bemerkungen"), String)) + End If + If dtToReturn.Rows(0)("Gueltig_bis") Is System.DBNull.Value Then + m_daGueltig_bis = SqlDateTime.Null + Else + m_daGueltig_bis = New SqlDateTime(CType(dtToReturn.Rows(0)("Gueltig_bis"), Date)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabeDefinition::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_VorgabeDefinition_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("VorgabeDefinition") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_VorgabeDefinition_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsVorgabeDefinition::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iVorgabeDefinitionNr]() As SqlInt32 + Get + Return m_iVorgabeDefinitionNr + End Get + Set(ByVal Value As SqlInt32) + Dim iVorgabeDefinitionNrTmp As SqlInt32 = Value + If iVorgabeDefinitionNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iVorgabeDefinitionNr", "iVorgabeDefinitionNr can't be NULL") + End If + m_iVorgabeDefinitionNr = Value + End Set + End Property + + + Public Property [iVorgabeNr]() As SqlInt32 + Get + Return m_iVorgabeNr + End Get + Set(ByVal Value As SqlInt32) + m_iVorgabeNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sDefinition]() As SqlString + Get + Return m_sDefinition + End Get + Set(ByVal Value As SqlString) + m_sDefinition = Value + End Set + End Property + + + Public Property [sBemerkungen]() As SqlString + Get + Return m_sBemerkungen + End Get + Set(ByVal Value As SqlString) + m_sBemerkungen = Value + End Set + End Property + + + Public Property [daGueltig_bis]() As SqlDateTime + Get + Return m_daGueltig_bis + End Get + Set(ByVal Value As SqlDateTime) + m_daGueltig_bis = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/DB/MyDBObjects/MyMitarbeiter.vb b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/MyMitarbeiter.vb new file mode 100644 index 0000000..34c370e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/MyMitarbeiter.vb @@ -0,0 +1,130 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Security.Principal + +Namespace DB + + Public Class MyMitarbeiter + Inherits DB.clsMitarbeiter + ''' + ''' Alle Mitarbeiter inkl. vollstndigem Name (Fullname) auslesen + ''' + ''' Datatable + ''' + Public Function SelectAllwithFullname() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_mitarbeiter_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("mitarbeiter") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + ''' + ''' Mitarbeiter mittels TGNummer auslesen + ''' + ''' Datatable + ''' + Public Function SelectWithTGNummer() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_mitarbeiter_SelectWithTGNummer]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("mitarbeiter") + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + Try + + scmCmdToExecute.Parameters.Add(New SqlParameter("@stgnummer", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Get_Username)) + + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_mitarbeiter_SelectAllWithTGNummer' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + Return dtToReturn + Catch ex As Exception + MsgBox(ex.Message) + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter::SelectWithTGNummer::Error occured." + ex.Message, ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + ''' + ''' Security-Deklaration zum Auslesen der UserID vom Windows-User + ''' + ''' + Dim ouser As New WindowsPrincipal(WindowsIdentity.GetCurrent) + ''' + ''' Windows-User auslesen + ''' + ''' + ''' + Private Function Get_Username() As String + With ouser.Identity.Name + Return (.Substring(.IndexOf("\") + 1)) + End With + End Function + + + End Class +End Namespace diff --git a/SW/Dokumente_sik/DB/clsMyKey_Tabelle.vb b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/clsMyKey_Tabelle.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsMyKey_Tabelle.vb rename to SW/20211125/AssessmentMgmt/DB/MyDBObjects/clsMyKey_Tabelle.vb diff --git a/SW/20211125/AssessmentMgmt/DB/MyDBObjects/db_connection.vb b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/db_connection.vb new file mode 100644 index 0000000..9458647 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/db_connection.vb @@ -0,0 +1,59 @@ +Imports System.IO +Namespace DB + ''' + ''' Dynamische Datenbank-Verbindung aufbauen. Verwendet wird standardmssig Vertragsverwaltung.cfg. + ''' Sollen Datenbank-Verbindungen zur Auswahl angezeigt werden, werden smntliche Datenbank-Verbindungsdateien + ''' mit dem Namen "Vertragsverwaltung....cfg" bercksichtigt + ''' + ''' + Public Class DB_Connection + + ''' + ''' Liest smtlcihe CFG-Dateien mit dem Namen "Vertragsverwaltung...". Sind meherere Dateien vorhanden, + ''' wird ein Auswahldialog zur Datenbank-Selektion angezeigt. + ''' Standardmssig wird Vertragsverwaltung.cfg als CFG-Datei benutzt. + ''' + ''' Die CFG-Datei ist verschlsselt und wird ber die Crypto-Funktionen entschlsselt. + ''' + ''' + Shared Sub New() + Dim fc As Integer = 0 + If Globals.ConnectionFileName.Length = 0 Then + Dim Dir As DirectoryInfo = New DirectoryInfo(Application.StartupPath) + Try + Dim f As New frmDatenbankauswahl() + Dim ChildFile As FileInfo + For Each ChildFile In Dir.GetFiles() + If UCase(Left(ChildFile.Name, 14)) = "ASSESSMENTMGMT" And UCase(ChildFile.Extension) = ".CFG" Then + f.ListBox1.Items.Add(ChildFile.Name) + fc = fc + 1 + End If + Next + If fc > 1 Then + f.ListBox1.SelectedIndex = 0 + f.ListBox1.Select() + f.ShowDialog() + Globals.ConnectionFileName = f.ListBox1.SelectedItem + f.Dispose() + End If + Catch except As Exception + fc = 0 + Exit Sub + End Try + End If + If fc < 2 Then Globals.ConnectionFileName = "Assessmentmgmt.cfg" + Dim ofile As System.IO.File + Dim oread As System.IO.StreamReader + oread = ofile.OpenText(Application.StartupPath + "\" + Globals.ConnectionFileName) + sConnectionString = oread.ReadLine + sConnectionString = Crypto.DecryptText(sConnectionString, "HutterundMueller") + sConnectionString = Left(sConnectionString, Len(sConnectionString) - 1) + Globals.sConnectionString = sConnectionString + Globals.conn.sConnectionString = sConnectionString + oread.Close() + End Sub + + End Class + +End Namespace + diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.resx b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/frmDatenbankauswahl.resx similarity index 80% rename from SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.resx rename to SW/20211125/AssessmentMgmt/DB/MyDBObjects/frmDatenbankauswahl.resx index 3d8e339..863c6b3 100644 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.resx +++ b/SW/20211125/AssessmentMgmt/DB/MyDBObjects/frmDatenbankauswahl.resx @@ -1,4 +1,4 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 648, 196</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 648, 196</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Assessmentgenerierung.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Assessmentgenerierung.vb new file mode 100644 index 0000000..318f160 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Assessmentgenerierung.vb @@ -0,0 +1,44 @@ +Imports System.Data.SqlClient +Imports System.Data.SqlTypes + +Public Class Demo_Assessmentgenerierung + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + GetData() + End Sub + + Private Sub GetData() + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "SP_Assessment_Generierung" + sqlcmd.Parameters.Add(New SqlParameter("@datum", SqlDbType.Date, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DateTimePicker1.Value)) + sqlcmd.Parameters.Add(New SqlParameter("@demo", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Try + c1daten.DataSource = Nothing + Catch + End Try + + C1Daten.DataSource = ds.Tables(0) + C1Daten.DataMember = ds.Tables(0).TableName + For i = 0 To C1Daten.Splits(0).DisplayColumns.Count - 1 + C1Daten.Splits(0).DisplayColumns(i).AutoSize() + + Next + Catch ex As Exception + MsgBox(ex.Message) + End Try + + + End Sub +End Class + diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.Designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.Designer.vb new file mode 100644 index 0000000..6e77b19 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.Designer.vb @@ -0,0 +1,128 @@ + _ +Partial Class Demo_Mailgenerierung + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Demo_Mailgenerierung)) + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Button1 = New System.Windows.Forms.Button() + Me.Label2 = New System.Windows.Forms.Label() + Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker() + Me.Label1 = New System.Windows.Forms.Label() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.Panel1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.Button1) + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.DateTimePicker1) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(844, 67) + Me.Panel1.TabIndex = 14 + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(238, 13) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(75, 23) + Me.Button1.TabIndex = 3 + Me.Button1.Text = "Start" + Me.Button1.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(5, 51) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(46, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Resultat" + ' + 'DateTimePicker1 + ' + Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.DateTimePicker1.Location = New System.Drawing.Point(97, 12) + Me.DateTimePicker1.Name = "DateTimePicker1" + Me.DateTimePicker1.Size = New System.Drawing.Size(103, 20) + Me.DateTimePicker1.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(2, 18) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(89, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Simulationsdatum" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 67) + Me.C1Daten.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(844, 341) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 15 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'Demo_Mailgenerierung + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(844, 408) + Me.Controls.Add(Me.C1Daten) + Me.Controls.Add(Me.Panel1) + Me.Name = "Demo_Mailgenerierung" + Me.Text = "Demo_Mailgenerierung" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents Panel1 As Panel + Friend WithEvents Button1 As Button + Friend WithEvents Label2 As Label + Friend WithEvents DateTimePicker1 As DateTimePicker + Friend WithEvents Label1 As Label + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.resx new file mode 100644 index 0000000..fc0aca3 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 842, 339</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 842, 339</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.vb new file mode 100644 index 0000000..fa72241 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Demo_Mailgenerierung.vb @@ -0,0 +1,43 @@ +Imports System.Data.SqlClient +Imports System.Data.SqlTypes + +Public Class Demo_Mailgenerierung + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + GetData() + + End Sub + Private Sub GetData() + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_erinnerungsmails" + sqlcmd.Parameters.Add(New SqlParameter("@datum", SqlDbType.Date, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DateTimePicker1.Value)) + sqlcmd.Parameters.Add(New SqlParameter("@demo", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Try + C1Daten.DataSource = Nothing + Catch + End Try + + C1Daten.DataSource = ds.Tables(0) + C1Daten.DataMember = ds.Tables(0).TableName + For i = 0 To C1Daten.Splits(0).DisplayColumns.Count - 1 + C1Daten.Splits(0).DisplayColumns(i).AutoSize() + + Next + Catch ex As Exception + MsgBox(ex.Message) + End Try + + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.Designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.Designer.vb new file mode 100644 index 0000000..d4fb45d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.Designer.vb @@ -0,0 +1,58 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(135, 72) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 0 + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(12.0!, 25.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(274, 229) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Name = "Form1" + Me.Text = "Form1" + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.resx new file mode 100644 index 0000000..b59187b --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="28" ColumnCaptionHeight="28" ColumnFooterHeight="28" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="34" DefRecSelWidth="34" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>34</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/WindowsApplication1/WindowsApplication1/Form1.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.vb similarity index 69% rename from SW/WindowsApplication1/WindowsApplication1/Form1.vb rename to SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.vb index 17d6595..10d55d4 100644 --- a/SW/WindowsApplication1/WindowsApplication1/Form1.vb +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/Form1.vb @@ -1,3 +1,3 @@ Public Class Form1 -End Class +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.designer.vb new file mode 100644 index 0000000..7b0d4a8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.designer.vb @@ -0,0 +1,95 @@ + _ +Partial Class frmAbout + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAbout)) + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.btnOK = New System.Windows.Forms.Button() + Me.lblversiondatum = New System.Windows.Forms.Label() + Me.lblVersion = New System.Windows.Forms.Label() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.ErrorImage = CType(resources.GetObject("PictureBox1.ErrorImage"), System.Drawing.Image) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(0, 0) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(469, 330) + Me.PictureBox1.TabIndex = 1 + Me.PictureBox1.TabStop = False + ' + 'btnOK + ' + Me.btnOK.Location = New System.Drawing.Point(201, 339) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(75, 23) + Me.btnOK.TabIndex = 2 + Me.btnOK.Text = "OK" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'lblversiondatum + ' + Me.lblversiondatum.BackColor = System.Drawing.Color.White + Me.lblversiondatum.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblversiondatum.Location = New System.Drawing.Point(249, 273) + Me.lblversiondatum.Name = "lblversiondatum" + Me.lblversiondatum.Size = New System.Drawing.Size(193, 24) + Me.lblversiondatum.TabIndex = 4 + Me.lblversiondatum.Text = "Version " + Me.lblversiondatum.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'lblVersion + ' + Me.lblVersion.BackColor = System.Drawing.Color.White + Me.lblVersion.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVersion.Location = New System.Drawing.Point(245, 249) + Me.lblVersion.Name = "lblVersion" + Me.lblVersion.Size = New System.Drawing.Size(197, 24) + Me.lblVersion.TabIndex = 3 + Me.lblVersion.Text = "Version " + Me.lblVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'frmAbout + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(464, 374) + Me.Controls.Add(Me.lblversiondatum) + Me.Controls.Add(Me.lblVersion) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.PictureBox1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmAbout" + Me.Text = "frmAbout" + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents btnOK As System.Windows.Forms.Button + Friend WithEvents lblversiondatum As System.Windows.Forms.Label + Friend WithEvents lblVersion As System.Windows.Forms.Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.resx new file mode 100644 index 0000000..accf5f2 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.resx @@ -0,0 +1,2671 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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 + /wAX/M/o0lOwksp3SMtzqi/MNxqv9Yeo2YEVuIZsez3epXbs/MroyrqPTVnpuC/CbkNdb6ouvfcwRG1r + o/RzLvUdpudYkpuLDu/8W2H/AOmvK/8AP+AtxYd3/i2w/wD015X/AJ/wElP/1OL+tQn609Y/8PX/APVl + Z9R2OlexdR/xT9E6h1DKz7c3LZZl3Pve1hq2h1h3uazdQ521A/8AGc6F/wBz8376f/edPE6AWmLwXTbw + YXW9LeDHyWpV/il6PSZr6jnD50fxxlfo/wAX+NRHp9VzhH/hU/8AVYTk8ZlvttvpgBhbzBDQFi0/VrJo + /mutZ7f7GEf+q6cjfsbqP/l7n/5mD/8AI1MnPiXRjTrJLJ/Y3Uf/AC9z/wDMwf8A5GpfsbqP/l7n/wCZ + g/8AyNTFzrJLJ/Y3Uf8Ay9z/APMwf/kal+xuo/8Al7n/AOZg/wDyNSU6ySyf2N1H/wAvc/8AzMH/AORq + X7G6j/5e5/8AmYP/AMjUlOsksn9jdR/8vc//ADMH/wCRqX7G6j/5e5/+Zg//ACNSU6yw7v8AxbYf/pry + v/P+AjfsbqP/AJe5/wDmYP8A8jVLD6GcfqTepZGfk52Qyl+PWLxQ1rWWOqushuHi4nu349f00lP/2f/b + AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD + AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD + AwMDAwMDAwMDAwMDAwMDA//AABEIAV4B1AMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID + BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR + 8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp + 6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAA + AYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAA + AkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA + A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAA + BDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRl + c2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB + AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA + t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA + AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv + dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 + aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBD + b25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT + pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAe + ACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy + ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFg + AWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJU + Al0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW + A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUr + BToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ + BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk + CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwS + DCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l + D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj + EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaP + FrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs + GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ + JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrP + KwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zES + MUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfX + OBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8h + P2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bw + RzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J + T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4Fgv + WH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi + YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un + a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+ + dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFr + gc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x + jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQ + mfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL + pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl + tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf + wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8 + 0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC9 + 4UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl + 8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///9sAQwAB + AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMD + AwMD/9sAQwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD + AwMDAwMDAwMDAwMD/8IAEQgBEQHJAwERAAIRAQMRAf/EAB8AAQACAgIDAQEAAAAAAAAAAAAJCgcIBgsB + AgUEA//EADMQAAEDBAICAgECAwcFAAAAAAYFBwgBAwQJAAIQIFAKETAxIRQWQHCAEhU5OiITIzga/8QA + HQEBAAICAwEBAAAAAAAAAAAAAAcIBgkBBAUCA//EAE4RAAEEAgECBAMGAgUGCQ0BAAMBAgQFBgcREggA + IRMJMRQVECBBIiMWUFEwMkIzF2FxkbZ4CkCBUiQ0JXYYuHCA8KFyQ7O0tSY2d4h5/8QASBIAAgECAwYC + CAMFBQYFBQAAAQIDEQQhMQUAQVESIgZhMhAgcYFCUhMHUGIjkaFyFBWxgjNDFsHRosJTJHCA8JJj4fGy + JSb/2gAMAwEAAhADEAAAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPyGFOfnRjMsB0jza + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA + gP+AgID/gICA/wAAAACAgID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP8AAP+AAAD//wAA/4CAgP8AAAD/AAAA/wAAAP+AgID/gICA/wAAAAAAAAAAgICA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAP//AAD/gAAA/wAAAP+AgID/gICA/4CAgP8AAAD/AAAA/4CA + gP+AgID/AAAA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAP///////wAA/4CAgP+AgID/gICA/4CA + gP+AgID/gICA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP+AgID/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAP//AAD/gAAA/4CA + gP8AAAAAAAAAAAAAAACAgID/gICA/wAAAP8AAID/AACA/wAAgP8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAAAP+AgID/AAAA/wAAAACAgID/gICA/4CAgP8AAAAAgICA/4CAgP+AgID/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8A + AP+AAAD//wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgP8AAAD/AACA/wAAgP8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAAAP+AgID/AAAA/4CAgP8AAAD/AAAA/wAAAP+AgID//wAA/4AA + AP//AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIAAAP//AAD/gAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgID/AAAA/wAA + AP8AAID/AACA/wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAP+AgID/AAAA/wAAAP+AgID/gICA/4CA + gP8AAAD/gAAA//8AAP+AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAP+AAAD//wAA/4CAgP//////AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAgP8AAP//AAD//wAA//8AAP//AAD//wAAAP8AAAD/gICA/4CA + gP+AgID/gICA/4CAgP+AgID//wAA////////AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAP//AAD/gAAA/wCAgP+AgID//////wAA + AAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAP//AAD//wAA//8AAP//AACA/wAA + AP+AgID/gICA/4CAgP8AAAAAAAAAAAAAAACAgID/gAAA//8AAP+AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//// + //8A////gICA////////////AAAAAICAgP8AAID/AACA/wAAAP8AAAD/AAAA/wAA//8AAP//AAD//wAA + gP8AAID/AAAA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA/4AAAP//AAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgICA//////8AAAAAAP///4CAgP///////////wAAAAAAAID/AACA/wAAgP8AAP//AAD//wAA + //8AAID/AACA/wAAAP8AAAD/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////gAAA//8A + AP+AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICA//////8A////AAAAAAD///+AgID///////////8AAID/AACA/wAA + gP8AAP//AAD//wAAgP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + //+AgID//wAA/4AAAP//AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8AAAAAAP///wAAAAAA////gICA/4CA + gP8AAID/AACA/wAAgP8AAP//AAD//wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAA + AAAAAAAA/////4CAgP8AAAAAgAAA//8AAP+AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8A////AAAAAAD/ + //8AAAAAAP///wAAAAAAAID/AACA/wAAgP8AAP//AAD//wAA//8AAAD/AAAA/wAAAP8AAID/AAD//wAA + AP+AgID/AAAAAP//////////gICA/wAAAAAA////AAAAAACAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//// + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAID/AACA/wAAgP8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAAAP+AgID///////////+AgID/AAAAAAD///8AAAAAAP///wCAgP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgICA//////8A////AAAAAAD///8AAAAAAP///wAAAAAAAID/AACA/wAAgP8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAAAP8AAAAA/////4CAgP8AAAAAAP///wAAAAAA////AAAAAACA + gP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICA//////8AAAAAAP///wAAAAAA////AAAAAAD///8AAID/AACA/wAA + gP8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAP+AgID/gICA/wAAAAAA////AAAAAAD/ + //8AAAAAAP///wCAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8A////AAAAAAD///8AAAAAAP///wAA + AAAAAID/AACA/wAAgP8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAP8A////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAACAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8AAAAAAP///wAA + AAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wCAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//// + //8A////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAACAgP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgICA//////8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wCA + gP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICA//////8A////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAA + AAAA////AAAAAACAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8AAAAAAP///wAAAAAA////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAA + AAAA////AAAAAAD///8AAAAAAP///wCAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//////8A////AAAAAAD/ + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAA + AAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAACAgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA//// + //8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAA + AAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wCAgP8AAAD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgICA//////8A////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAA + AAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAACA + gP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgP+AgID/gICA/4CAgP+AgID/gICA/4CA + gP+AgID/gICA/4CAgP+AgID/gICA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgP//////AP///wAA + AAAA////AAAAAAD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAgICA/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAgID//////wD///8AAAAAAP///wAAAAAA////AAAAAAD///8AAAAAAP///wAAAACAgID/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICA/////////////////////////////////////////////////4CA + gP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgP+AgID/gICA/4CAgP+AgID/gICA/4CA + gP+AgID/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////8/f////////z9/////////P3////////8/f// + //////z9/////////P3////////8/f////////z9/xH//////P3/AGAA///8/f8AAAD///z9/wAAAP// + /P3/DgAAiP/8/f8fgAAA//z9/w/AAAD//P3/B/gAAP/8/f8DjgBw//z9/8CAAfj//P3/yEAH8P/8/f/E + AD/g//z9/8oA48j//P3/xUABFP/8/f/KgAAo//z9/8VAAlT//P3/yoAAqP/8/f/FQAFU//z9/8qqqqj/ + /P3/xVVVVP/8/f/Kqqqo//z9/8VVVVT//P3/yqqqqP/8/f/FVVVU//z9/8qqqqj//P3/xVVVVP/8/f/A + AAAA//z9/9//wAH//P3/4qq////8/f/xVX////z9//gA/////P3//AH////8/f////////z9//////// + /P3////////8/f////////z9/////////P3////////8/f////////z9/////////P0oAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + /8YAhLPGAP//cQD//3EA//+OAP//jgD//3EAoKDjAAAAqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICAVdTU1P8A//+OAP//jgD//3EA//9xAP//jgD//44A//9xAP//cQD/ + /44A//+OAP//cQD//3EA//+OAP//jgD//3EA//9xAP//jgCXl8YAAACqAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIBV1NTU/wD//44A//+OAP//cQD//3EA//+OAP//jgD/ + /3EA//9xAP//jgD//44A//9xAP//cQD//44A//+OAP//cQD//3EA//+OAJeXxgAAAKoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgFXU1NT/AP//cQD//3EA//+OAP//jgD/ + /3EA//9xAP//jgD//44A//9xAP//cQD//44A//+OAP//cQD//3EA//+OAP//jgD//3EAoKDjAAAAqgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAVdTU1P8A//9xAP//cQD/ + /44A//+OAP//cQD//3EA//+OAP//jgD//3EA//9xAP//jgD//44A//9xAP//cQD//44A//+OAP//cQCg + oOMAAACqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIBV1NTU/3r/ + /8Z6///GoP//jqD//456///Gev//xqD//46g//+Oev//xnr//8ag//+OoP//jnr//8Z6///GoP//jqD/ + /456///GL3FxxgAAAKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA + gFWurq6O////Vf///1X///9V////Vf///1X///9V////Vf///1X///9Vvb29xqqqqv+qqqr/qqqq/6qq + qv+qqqr/qqqq/6qqqv84ODj/AAAAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAICAgHGq4uL/Qv//jgD//44A//+OAP//cQD//3EA//+OAP//joCAgHGAgIA5AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoI6q4uL/z///xs///8a8///jvP//48///8aNvb3GgICAOQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgHGAgICqgICAqoCAgKqAgICqgICAqoCA + gDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// + ////////+D////gAA//4AAP/+MAAH/jgAB/4IAAf+AADH/wADh/8AAwf/AAAH/wAAB/8AAAf/AAAH/wA + AB/8AAAf/AAAH/wAAB/8AAAf/AAAH/4AP///AH///4D/////////////////////////////KAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACfQED/qlVVv0BAQP9VVVW/gICAQICAgEAAAACAAAAAgAAAAIAAAACAAAAAgAAA + AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADfPz//fyAg/4CA + gP9gYGD/QEBA/yAgIP9AQED/QEBA/0BAQP9AQED/QEBA/0BAQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAD/qioqvwAAAACAgIBAVVVVvwAAYP8AAL//AAD//wAA + //8AAP//AAB//0BAQP9VVVW/QEBA/6pVVb+fQED/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC/AAD/v19f/////0AAAAAAAAAAAEBAQIAAACq/AAB//wAA//8AAP//AAB//0BAQP9gYGD/gICA/38g + IP/fPz//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AACAf39//3+/v/////+AQEBAgAAA + QP8AAACAAABVvwAA//8AAL//ICBA/4CAgL+AgIBAAAAAAKoqKr+/AAD/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAv7+//wD//4B/v7//////vwAAgP8AAL//AADf/wAAQP8AAACAgICAQAAA + AAAAAAAA////QL9fX/+/AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+//wD/ + /4AA//+AVaqqvwAAgP8AAL//AAC//wAAAIAAACq/AAA//4CAgED///+Aqqqqv0B/f4BfICD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+//wD//4AA//+AAP//gAAAgP8AAL//AAD//wAA + //8AAP//AAB//9TU1L+qqqq/AP//gAD//4AAQED/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAv7+//wD//4AA//+AAP//gAAAgP8AAL//AAD//wAA//8AAP//AAB//1Wqqr8A//+AAP//gAD/ + /4AAQED/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+//wD//4AA//+AAP//gAD/ + /4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAQED/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAv7+//wD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD/ + /4AA//+AAP//gAD//4AAQED/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+//wD/ + /4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAQED/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+//wD//4AA//+AAP//gAD//4AA//+AAP//gAD/ + /4AA//+AAP//gAD//4AA//+AAP//gAD//4AAQED/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAqqqqv////4D///+A////gP///4D///+A////gP///4C/v7//v7+//7+/v/+/v7//v7+//7+/ + v/8AAAC/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAQJ/f3/8A//+AAP//gAD/ + /4AA//+AAP//gICAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgEC/v7//v7+//7+/v/+/v7//qqqqvwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0H///9B////Qf///0HwAP9B8AD/QfIAD0HxgA9B8ABPQfgBj0H4AA9B+AAPQfgAD0H4AA9B+AAPQfgA + D0H4AA9B+AAPQfgH/0H8D/9B////Qf///0H///9B////QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAHICAgDmAgIBVAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAFWqODj/VVVV/1BQUOMwMDDjKioq/yoq + Kv8qKir/KioqqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAABVvy8v4wAAAABgYGBxDg5V/wAA + 4v8AAP7/AACq/0BAQONVVVX/jzAw46oqKlUAAAAAAAAAAAAAAAAAAAAAvwAAOZ9PT+Oq1NSqf39/VQAA + M44AADbGAADw/w4Of/9tbW3GgICAVb8/P+PUAABVAAAAAAAAAAAAAAAAAAAAAAAAAAC/v7+qGeXljq/P + z+MAAID/AADU/wAAM44ZGRmOAAAAANTU1FW/Ly/jqgAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAv7+/qgD+ + /o4A/v5xAACA/wAA/v8AAKr/AACb/8jIyMZmzMyOAL+/qgAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAL+/ + v6oA/v5xAP7+jgAkksYAP/7jACT+xgA/v+MzzMyOAP7+jgC/v6oAAABVAAAAAAAAAAAAAAAAAAAAAAAA + AAC/v7+qAP7+jgD+/nEA/v6OAP7+cQD+/o4A/v5xAP7+jgD+/nEAv7+qAAAAVQAAAAAAAAAAAAAAAAAA + AAAAAAAAv7+/qgD+/nEA/v6OAP7+cQD+/o4A/v5xAP7+jgD+/nEA/v6OAL+/qgAAAFUAAAAAAAAAAAAA + AAAAAAAAAAAAALKyso6Z/v6Ov/7+cZn+/o6//v5xlOnpqqTIyMaPz8/jpMjIxl+Pj+MAAAA5AAAAAAAA + AAAAAAAAAAAAAAAAAACAgIAckdraxn/+/qp//v6qaunpqoCAgDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgByAgIBVgICAVYCAgDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEHH/6xBwB+sQcgDrEHAA6xB4COsQeADrEHgA6xB4AOsQeAD + rEHgA6xB4H+sQfD/rEH//6xB//+sQQ== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.vb new file mode 100644 index 0000000..b010bf1 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmAbout.vb @@ -0,0 +1,12 @@ +Public Class frmAbout + + Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click + Me.Close() + End Sub + + Private Sub frmAbout_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.lblVersion.Text = "Version " & Globals.clsapplication.sVersion.Value + Me.lblversiondatum.Text = Globals.Versionsdatum + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.designer.vb new file mode 100644 index 0000000..006a10a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.designer.vb @@ -0,0 +1,89 @@ + _ +Partial Class frmLogin + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmLogin)) + Me.lblBitteAnmelden = New System.Windows.Forms.Label + Me.cbMitarbeiter = New System.Windows.Forms.ComboBox + Me.btnAbbruch = New System.Windows.Forms.Button + Me.btnAnmelden = New System.Windows.Forms.Button + Me.SuspendLayout() + ' + 'lblBitteAnmelden + ' + Me.lblBitteAnmelden.Location = New System.Drawing.Point(12, 9) + Me.lblBitteAnmelden.Name = "lblBitteAnmelden" + Me.lblBitteAnmelden.Size = New System.Drawing.Size(136, 23) + Me.lblBitteAnmelden.TabIndex = 3 + Me.lblBitteAnmelden.Text = "Bitte melden Sie sich an" + ' + 'cbMitarbeiter + ' + Me.cbMitarbeiter.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbMitarbeiter.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbMitarbeiter.FormattingEnabled = True + Me.cbMitarbeiter.Location = New System.Drawing.Point(15, 35) + Me.cbMitarbeiter.Name = "cbMitarbeiter" + Me.cbMitarbeiter.Size = New System.Drawing.Size(257, 21) + Me.cbMitarbeiter.TabIndex = 4 + ' + 'btnAbbruch + ' + Me.btnAbbruch.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnAbbruch.Location = New System.Drawing.Point(158, 76) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(104, 24) + Me.btnAbbruch.TabIndex = 6 + Me.btnAbbruch.Text = "&Abbruch" + ' + 'btnAnmelden + ' + Me.btnAnmelden.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnAnmelden.Location = New System.Drawing.Point(14, 76) + Me.btnAnmelden.Name = "btnAnmelden" + Me.btnAnmelden.Size = New System.Drawing.Size(104, 24) + Me.btnAnmelden.TabIndex = 5 + Me.btnAnmelden.Text = "&Anmelden" + ' + 'frmLogin + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(308, 129) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnAnmelden) + Me.Controls.Add(Me.cbMitarbeiter) + Me.Controls.Add(Me.lblBitteAnmelden) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmLogin" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Benutzerauswahl Assessment-Management" + Me.TopMost = True + Me.ResumeLayout(False) + + End Sub + Friend WithEvents lblBitteAnmelden As System.Windows.Forms.Label + Friend WithEvents cbMitarbeiter As System.Windows.Forms.ComboBox + Friend WithEvents btnAbbruch As System.Windows.Forms.Button + Friend WithEvents btnAnmelden As System.Windows.Forms.Button +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.resx new file mode 100644 index 0000000..41b83e5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIAAAAAAAAAAAAAIi + IiJyIiIiIAAAAAAAACIndyInd3ciIiIAAAAAAAIid3cvJ3d3ciIiAAAAAAACJ3d3f4J3d3ciIgAAAAAA + Ind3co/3d3d3ciIAAAAAACJ3d3L//yd3d3IgAAAAAAACd3dy//+Cd3dyIAAAAAAAAnd3cv//9yd3cgAA + AAAAAAIneHf///9ndyAAAAAAAAAAInh3hzM3giIAAAAAAAAAAAAiIzMzMzMgAAAAAAAAAAAAAAMzMzMz + MAAAAAAAAAAAAAAzu7u7uzMAAAAAAAAAAAABO7u7u7uzAAAAAAAAAAAAA7u7u7u7uzAAAAAAAAAAAAO7 + u7u7u7swAAAAAAAAAAATu7u7u7u7sQAAAAAAAAAAE7u7u7u7u7MAAAAAAAAAADu7u7u7u7uzAAAAAAAA + AAAbu7u7u7u7swAAAAAAAAAAG7u7u7u7u7MAAAAAAAAAABO7Mzu7u7szAAAAAAAAAAADMzMzMzMzMwAA + AAAAAAAAAzM3eIdzMzMAAAAAAAAAAAAzeIiIiHMxAAAAAAAAAAAAM4iIiIdzMAAAAAAAAAAAAAM4iIiI + MwAAAAAAAAAAAAAAM4iIczAAAAAAAAAAAAAAAAATMxAAAAAAAAD/4AAf/gAAD/gAAA/wAAAP8AAAD/AA + AA/wAAAP8AAAD/AAAA/wAAAf8AAAH/gAAD/4AAB//gAA//+AAH//gAB//wAAP/8AAD//AAA//wAAP/8A + AB//AAAf/wAAH/8AAB//AAAf/wAAP/+AAD//gAA//8AAP//AAH//4AD///gD/w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.vb new file mode 100644 index 0000000..d7176d9 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmLogin.vb @@ -0,0 +1,41 @@ +''' +''' Form fr den Login. Wird nur angezeigt, sofern in der Tabelle Application Show-Login = true +''' +''' +Public Class frmLogin + + Dim m_mitarbeiternr As Integer + Property Mitarbeiternr() As Integer + Get + Return m_mitarbeiternr + End Get + Set(ByVal value As Integer) + m_mitarbeiternr = value + End Set + End Property + + Dim tmp_madaten As New DataTable + Dim tmp_clsmitarbeiter As New DB.MyMitarbeiter + Dim conn As New DB.clsConnectionProvider + + Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + conn = Globals.conn + tmp_clsmitarbeiter.cpMainConnectionProvider = conn + conn.OpenConnection() + tmp_madaten = tmp_clsmitarbeiter.SelectAllwithFullname + Me.cbMitarbeiter.DataSource = tmp_madaten + Me.cbMitarbeiter.DisplayMember = "Fullname" + Me.cbMitarbeiter.ValueMember = "Mitarbeiternr" + conn.CloseConnection(True) + End Sub + + Private Sub btnAnmelden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnmelden.Click + Me.Mitarbeiternr = Me.cbMitarbeiter.SelectedValue + Me.DialogResult = Windows.Forms.DialogResult.OK + End Sub + + Private Sub btnAbbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbbruch.Click + Me.Mitarbeiternr = -1 + Me.DialogResult = Windows.Forms.DialogResult.Cancel + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.Designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.Designer.vb new file mode 100644 index 0000000..7f259c6 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.Designer.vb @@ -0,0 +1,177 @@ + _ +Partial Class frmMailInfo + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMailInfo)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbboxmailtyp1 = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.btnSave = New System.Windows.Forms.Button() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.cbboxmailtyp2 = New System.Windows.Forms.ComboBox() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(474, 25) + Me.ToolStrip1.TabIndex = 9 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neue Feststellung erfassen" + Me.ToolStripButton1.Visible = False + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(13, 29) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(239, 13) + Me.Label1.TabIndex = 10 + Me.Label1.Text = "Erinnerungsmail für weitergegebene Assessments" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(13, 51) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(195, 13) + Me.Label2.TabIndex = 11 + Me.Label2.Text = "Erinnerungsmail für eigene Assessments" + ' + 'cbboxmailtyp1 + ' + Me.cbboxmailtyp1.FormattingEnabled = True + Me.cbboxmailtyp1.Items.AddRange(New Object() {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}) + Me.cbboxmailtyp1.Location = New System.Drawing.Point(252, 26) + Me.cbboxmailtyp1.Name = "cbboxmailtyp1" + Me.cbboxmailtyp1.Size = New System.Drawing.Size(64, 21) + Me.cbboxmailtyp1.TabIndex = 12 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(322, 29) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(141, 13) + Me.Label3.TabIndex = 14 + Me.Label3.Text = "Tage vor Terminerreichnung" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(322, 51) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(141, 13) + Me.Label4.TabIndex = 15 + Me.Label4.Text = "Tage vor Terminerreichnung" + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(16, 96) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 16 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(388, 96) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 17 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'cbboxmailtyp2 + ' + Me.cbboxmailtyp2.FormattingEnabled = True + Me.cbboxmailtyp2.Items.AddRange(New Object() {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}) + Me.cbboxmailtyp2.Location = New System.Drawing.Point(252, 48) + Me.cbboxmailtyp2.Name = "cbboxmailtyp2" + Me.cbboxmailtyp2.Size = New System.Drawing.Size(64, 21) + Me.cbboxmailtyp2.TabIndex = 18 + ' + 'frmMailInfo + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(474, 135) + Me.Controls.Add(Me.cbboxmailtyp2) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.cbboxmailtyp1) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmMailInfo" + Me.Text = "MailInfo" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents Label1 As Label + Friend WithEvents Label2 As Label + Friend WithEvents cbboxmailtyp1 As ComboBox + Friend WithEvents Label3 As Label + Friend WithEvents Label4 As Label + Friend WithEvents btnSave As Button + Friend WithEvents btnAbbruch As Button + Friend WithEvents cbboxmailtyp2 As ComboBox +End Class diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.resx similarity index 59% rename from SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.resx rename to SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.resx index adb26ed..0d820f4 100644 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.resx +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.resx @@ -112,38 +112,33 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 339, 17 + + 17, 17 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZALDsMwCEM5OkfLzbIaMGH5dJkligL2a1o5 - qP9RW3VVXYpzqLV2D+CZQVU/Y27uIg4OQQAJXz+hDsyEDtVQ7dib+1GH1fpUDljD6OF5HgjvKgHvN+iC - A0O1EvB+A8ghPvgqB4j9xPlHhidVB2lwwICfbkBxMAFGqHbszb1RGhywhtGxN/dGXAbgGD4CqACMMGZR - VwrA/Rtn/QiKfADckGXYsnwKqAAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABSSURBVDhP3YxbCgAgCAQ9ukfzZkXBlkIv7Sf6GNB1HRKR - dEMVEFEII2Du4Yr2eCMAdUfoEejubwIcVujeUHDKVFDmHSFB6ekuskcEOHgxghiSMjk0Kh+omBHQAAAA - AElFTkSuQmCC - - - - 446, 17 - - - 561, 17 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -159,51 +154,21 @@ 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwsMyLpCsL - +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1L7brO3d1pxuta1Y3YSghuTbGrFp7W1Tt7mLNvL99wyey7bZ - D/6c5znnf855HmYr+CUS9n1b2y16/T9mensfPWAY6OrqEJBKF97JZPW0VB1h8UnXfIyD+8493CdDJkQi - vGxsxKxE0kMtlfk9dzOVmepEknuK6BKPif0SPKypgUssvk0t5dmMavVr/nNIsq1YNjFY8Z8G9zOF16rh - 79RSHiGmPZsJKZB0y8kAKZYnxUh5O/DDtg2xuRet1PZvOK9q+1rwWoEnm9PTJ5Gw78LqdDcZJMMfv0hF - beXZnB8J8B45VmfOkBccJps7kfKdQM67J0It5RG4G8q0twu/PEexHlSAJ19Yf9uPuO2Q8NlWX0tt5Sku - Pk7wng7kP15Hauo4sqHLSJPtQujgRWqpTOHLM2SWnMjM3kX2TR/ZfgHF0LFJWq7M+PgVEXgncl9fYSMe - RD4RQD7Ss0HL1Wlu3iu/1N+N7Dc3CnwEKEZtuZVPu2m5Ok0tLed37KzFvoYGVzr+oYmmt0Y4HD6gVqvH - NBqNVm8yKXS654Nms3nI4XCMluR0OoeIlERXXS7XAMuyp3w+n4y2M4zdbm+3WCx9pGnQYDAMG43GURLH - SFSXRM+l3AiRUq/XD1it1iMMwzB/AcmkJIfUYwLvAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJASURBVDhPfZNLSxtRFMdn5Suah0oChhiJmlGj8RGfiKIi - gouAEPULuMlSxe+Rrbt8hKEWGfJobNq5k0ZaJ7Vgq90ILW5auiiFLv8955oJiU37hwPDPfd3/ufMvVex - VTk4SF0mEprmcrmrS39JCwbdpZ0dzdjeTlWXHvUhmUw/nJ7i7e4uspGIxRurqZqqsPXp5ATG4iJyo6Np - mWBnCScSMNfXIVZXoatqQ5EafHwMMTcHY2ZGRkZVUwq3zc42LJaXYSwtQQ+HZZEafHQEEYtBTE3VQh8a - 0hSemduuh435eRizs9BDIasUj1u3h4cwydGcnIQZjaJEwblal/zBbdfDggB2+ZhMojQ9LaE3FOWJiUbY - lixCbdfD7ChGRmAMDEAEgzApss1gW7IIbTDIqRgIoOB04iXFK7cboqcHus/3b5jFSbG1ZVnxOF50dkr4 - tccDs7cXZa8XWb///+5Fgiv7+8gTeFEHX/p8eNfXh/f9/cgHAs3nL25sWJW9PeTIuUBRdLlk22WCr/x+ - XNP8N6EQboeHUXx6AgxbBGccDuQ6OnDR1SXdeeYctc3ON4OD+KyquI9E8IX+kajeE8XY3NSu6CLp7e3I - tLUhT0V4dt3rlRs4uO27cBj34+N4oCP9RrfxOx13SVU1pbCwkDpvbYXe0oIsFeGfd97d3TCn7JLa/krH - yuBPunC/VlZQiUYfH9WZw5G2Czx7AtviNZMu2w96SL/X1nAXiz0+JltnTmfqucejNYNtca48NqZd286K - ovwBHtVvxMSvxBEAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX - dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz - vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n - 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb - o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg - Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml - mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY - FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 - wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb - MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ - 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHd3d3d3d3MzMzMzMxETMAiIiLu7u7u7u7u7u7u7szAIiI + iIiIiIi7u7u7u7u7swCIiIiIiIiIiIiIu7u7uDMAj4iIiIiIiIiIiIiIiIOzAI+IiIiIiIiIiIiIiIg7 + swCPiIiIiIiIiIiIiIiDu7MAj4iIiIiIiIiIiIiIO7uzAI+IiIiIiIh3OIiIg7u7swCP//iIiIiIiIOI + iDiIi7MAj////4iIiIiIOIOIiIizAI////+IiIiIiIM4iIiIswCP////iI+IiIiIOIiIiLMAj///+Ij/ + +IiIiIOIiIizAI///4iP////iIiIOIiIswCP//iI//////iIiIOIiLMAj/+Ij///////+IiIOIizAI/4 + iP////////+IiIOItwCPiI//////////+IiIOLcAiIj////////////4iIN3AIiP/////////////4iI + NwCI////////////////iLcAj/////////////////+HAIiIiIiIiIiIiIiIiIiIdwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////w== \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.vb new file mode 100644 index 0000000..c02b4a3 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMailInfo.vb @@ -0,0 +1,68 @@ +Imports System.Data.SqlClient +Imports System.Data.SqlDbType +Public Class frmMailInfo + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.Close() + End Sub + + Private Sub frmMailInfo_Load(sender As Object, e As EventArgs) Handles MyBase.Load + get_data() + End Sub + + + Sub get_data() + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "SP_Erinnerungsmail" + sqlcmd.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) + sqlcmd.Parameters.Add(New SqlParameter("@param1", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Me.cbboxmailtyp1.Text = ds.Tables(0).Rows(0).Item("Mailtyp1") + Me.cbboxmailtyp2.Text = ds.Tables(0).Rows(0).Item("Mailtyp2") + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + Sub Save_Data() + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "SP_Erinnerungsmail" + sqlcmd.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2)) + sqlcmd.Parameters.Add(New SqlParameter("@param1", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + sqlcmd.Parameters.Add(New SqlParameter("@param2", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.cbboxmailtyp1.Text)) + sqlcmd.Parameters.Add(New SqlParameter("@param3", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.cbboxmailtyp2.Text)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + connection.ConnectionString = Globals.sConnectionString + connection.Open() + sqlcmd.ExecuteNonQuery() + connection.Close + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + Save_Data() + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.designer.vb new file mode 100644 index 0000000..6a9b67f --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.designer.vb @@ -0,0 +1,181 @@ + _ +Partial Class frmMsgBox + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMsgBox)) + Me.btnYes = New System.Windows.Forms.Button + Me.btnno = New System.Windows.Forms.Button + Me.btnAbbruch = New System.Windows.Forms.Button + Me.txtmsg = New System.Windows.Forms.TextBox + Me.btnOK = New System.Windows.Forms.Button + Me.Panel1 = New System.Windows.Forms.Panel + Me.imgQuestion = New System.Windows.Forms.PictureBox + Me.imgInformation = New System.Windows.Forms.PictureBox + Me.imgExclamation = New System.Windows.Forms.PictureBox + Me.imgCritical = New System.Windows.Forms.PictureBox + Me.Panel1.SuspendLayout() + CType(Me.imgQuestion, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.imgInformation, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.imgExclamation, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.imgCritical, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnYes + ' + Me.btnYes.Location = New System.Drawing.Point(71, 84) + Me.btnYes.Name = "btnYes" + Me.btnYes.Size = New System.Drawing.Size(75, 23) + Me.btnYes.TabIndex = 0 + Me.btnYes.Text = "&Ja" + Me.btnYes.UseVisualStyleBackColor = True + ' + 'btnno + ' + Me.btnno.Location = New System.Drawing.Point(162, 84) + Me.btnno.Name = "btnno" + Me.btnno.Size = New System.Drawing.Size(75, 23) + Me.btnno.TabIndex = 1 + Me.btnno.Text = "&Nein" + Me.btnno.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(254, 84) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 2 + Me.btnAbbruch.Text = "&Abbrechen" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'txtmsg + ' + Me.txtmsg.BackColor = System.Drawing.Color.White + Me.txtmsg.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtmsg.Location = New System.Drawing.Point(67, 20) + Me.txtmsg.Multiline = True + Me.txtmsg.Name = "txtmsg" + Me.txtmsg.ReadOnly = True + Me.txtmsg.Size = New System.Drawing.Size(258, 44) + Me.txtmsg.TabIndex = 3 + Me.txtmsg.TabStop = False + ' + 'btnOK + ' + Me.btnOK.Location = New System.Drawing.Point(133, 84) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(75, 23) + Me.btnOK.TabIndex = 5 + Me.btnOK.Text = "&OK" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.imgQuestion) + Me.Panel1.Controls.Add(Me.imgInformation) + Me.Panel1.Controls.Add(Me.imgExclamation) + Me.Panel1.Controls.Add(Me.txtmsg) + Me.Panel1.Controls.Add(Me.imgCritical) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(337, 78) + Me.Panel1.TabIndex = 6 + ' + 'imgQuestion + ' + Me.imgQuestion.Image = CType(resources.GetObject("imgQuestion.Image"), System.Drawing.Image) + Me.imgQuestion.InitialImage = CType(resources.GetObject("imgQuestion.InitialImage"), System.Drawing.Image) + Me.imgQuestion.Location = New System.Drawing.Point(12, 20) + Me.imgQuestion.Name = "imgQuestion" + Me.imgQuestion.Size = New System.Drawing.Size(39, 36) + Me.imgQuestion.TabIndex = 7 + Me.imgQuestion.TabStop = False + ' + 'imgInformation + ' + Me.imgInformation.Image = CType(resources.GetObject("imgInformation.Image"), System.Drawing.Image) + Me.imgInformation.InitialImage = CType(resources.GetObject("imgInformation.InitialImage"), System.Drawing.Image) + Me.imgInformation.Location = New System.Drawing.Point(12, 20) + Me.imgInformation.Name = "imgInformation" + Me.imgInformation.Size = New System.Drawing.Size(39, 36) + Me.imgInformation.TabIndex = 6 + Me.imgInformation.TabStop = False + ' + 'imgExclamation + ' + Me.imgExclamation.Image = CType(resources.GetObject("imgExclamation.Image"), System.Drawing.Image) + Me.imgExclamation.InitialImage = CType(resources.GetObject("imgExclamation.InitialImage"), System.Drawing.Image) + Me.imgExclamation.Location = New System.Drawing.Point(12, 20) + Me.imgExclamation.Name = "imgExclamation" + Me.imgExclamation.Size = New System.Drawing.Size(39, 36) + Me.imgExclamation.TabIndex = 5 + Me.imgExclamation.TabStop = False + ' + 'imgCritical + ' + Me.imgCritical.Image = CType(resources.GetObject("imgCritical.Image"), System.Drawing.Image) + Me.imgCritical.InitialImage = CType(resources.GetObject("imgCritical.InitialImage"), System.Drawing.Image) + Me.imgCritical.Location = New System.Drawing.Point(12, 20) + Me.imgCritical.Name = "imgCritical" + Me.imgCritical.Size = New System.Drawing.Size(39, 36) + Me.imgCritical.TabIndex = 4 + Me.imgCritical.TabStop = False + ' + 'frmMsgBox + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(337, 116) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnno) + Me.Controls.Add(Me.btnYes) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmMsgBox" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Assessment-Management" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.imgQuestion, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.imgInformation, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.imgExclamation, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.imgCritical, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents btnYes As System.Windows.Forms.Button + Friend WithEvents btnno As System.Windows.Forms.Button + Friend WithEvents btnAbbruch As System.Windows.Forms.Button + Friend WithEvents txtmsg As System.Windows.Forms.TextBox + Friend WithEvents imgCritical As System.Windows.Forms.PictureBox + Friend WithEvents btnOK As System.Windows.Forms.Button + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents imgExclamation As System.Windows.Forms.PictureBox + Friend WithEvents imgQuestion As System.Windows.Forms.PictureBox + Friend WithEvents imgInformation As System.Windows.Forms.PictureBox +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.resx new file mode 100644 index 0000000..51a5fad --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.resx @@ -0,0 +1,763 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAkACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K47WvGbWRw0y23cRRqJJSPcn5 + V/I/WmeN9dNi74IzCAkQPeRhkn8FKj/gRrznRNX0611pr3W4GvIgjN5ZXdvk7Zzx69a9DCYNVYOrPZdF + uznrVuVqK3Ori+JLLL81zehc9ZUhkA/BVQ/rXb6H4nttXjj+eMl+EkjJKOf7vPKt/sn8M1zOmXHhnx5p + F7H/AGRFYyQnaHCqGXIyGDL6dxXlfhrXv7L1qIG4Itp2EcxHQDPDj3U4YfTHernhadSMvZpxlHo9SVVl + Frmd0z6Yoqppd017psE8gAkZcSAdnBw36g0V5h1HlnxTSSF5Zv4FuQ7H0DxIq/rE1eSSXj3EoQMUQnBx + 2HrX0x4s8PRa7p0kbRGTdGY5EBwzLnPy/wC0DyPxHevBLjwjqOgan57W/wBss4ZA3mqpK4BztcdUPsf1 + r2cvxUY0/ZvfocWIpNy5kbmr6ta2GnR6T4bnUW0kRE8yAhjngjnue5rlrfS2uLmG3hXMsrrGg9STgV0m + taofEU1tFp+mSiSMEbUHmOxOOOB0GP1rpfBXgu5e6F1dgCQAj5TkQg8HJHBfHAA+7nJ5wK2UoYehzS+J + 9L3bYcrnOy2PTdA50hJB92aWWZf915GYfoRRWjGixRrGihUUBVA7AUV4B2jqqXWl2V64knt1aQDAkGVc + f8CGDRRQBX/sDTjxJHNMv92e5klX8mYitFI0iQJGioijAVRgCiigB1FFFAH/2Q== + + + + + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K4/VvGTWzEeetv6RRqJJPxJ+V + fyP1qPxxrRs/Nwf9SFjjH/TRhlj+C4H/AAI1i+GNM0HxLoF1BLM66xku8jH5k54Kjuvr/wDqrGc3flju + ejhcLTdP29a/Le2n5+hNF8QGWUbru8UZ6yxxSKPwVUP612OieJrbVlRS8W5jhXjOUY9cc8q2Ox/DNed6 + N4MeG+nm1sxeRbk7U3/I4HV2PZcev41zFj4i06y8btDpU0v9l3Eoi3sMYyeHHfCtyueeOepqI1Jxtz9T + pq4PD1eZYa94q/del+59EUVU0u6a902CeQASMuJAOzg4b9QaK6TxTy74pA24nmYnC3Svgdw8KqP1iasH + wFoVzdzp4hu7gwW8W5oVWTaCB95nPZRz16/Tr6z4s8PRa7p0kbRmQlCjoPvMucjb/tA8j8R3rwjUvDni + jRrO60+1a4udKkkBkFvkgkdN6feU+oPoOuAa5akbT57XPcwVb2mG+rKSi79ez3t5nfG/03x5bajo1lfS + hc4LAbS4HRwO6Z7H2zjivMH8M6hZeLY9Cmj/ANLE6R/IcjBwQw9sHNQ6Jb6zFqcU2lQ3YvIm+VoYyWU/ + l/OvTvBXgq8l1J9T1GQyXkhbe+/d5W7hiWHBkIJAA+7kk84FZXdZrT5noctPLYTammmtI9b/AOR6doHO + kJJ/DNLLMv8AuvIzD9CKK0Y0WKNY0UKigKoHYCiu8+THVUutLsr1xJPbq0gGBIMq4/4EMGiigCv/AGBp + x4kjnmX+7PcySr+TMRWikaRIEjRURRgKowBRRQA6iiigD//Z + + + + + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAlACUDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3yaaOCF5ZXVI0GWZjgAVzeo+K/s3MSRxJ2afJZvog/qQfaqfj + PXBZExjBEO0hT/FIckH/AICBn6sD2rzC41GSeRpJHLM3JJNd+DwTr+9J2Rz1q/s9Fueip4/2y7WuLZx/ + tWzRAfiHc/pXVaXrdtqaqFwkrLuC7gwYeqsOD/MdwK8l8aa5azWumouivpZVDhpUCeYMDhf7wHXJ9ayf + C3iQ2urQ2wuAIppAFJPEcnRX/Pg+oJFa1MB+69pD7n/wCY1/e5ZH0HRVbT7sX2nwXO3aZEBZf7p7j8Dk + UV5Z1HlnxN3xXMjkHb9qJJ9AYYgP1R68suL6SVtisVTPbqa+hfGvh1NZ06U7T8yBZCoyVwSVcDvtJOR3 + DGvANW0S90e58u6iIU8xyrykg9Vboa97Kq8HD2Tepw4mm+bmOt+JxdodJLf897gD6bY64WyhlmvYIoQT + K7qqAdyTgV1/jrxPp3ikaWmm21zF9mMhl85QNzOF6YJz92tTwL4Ku21GO8uomimA3QxsMNHn/low7Y/h + B5JwegrSlNYbBWqaS10CUfaVbrY9g0DnSgw+6887r/umVyv6EUVft4I7W2igiXbHGoRR6ADFFfOncSVl + Xvh6wvt5ZGjMnL+WRtc+rKcqT9RRRQBStvBmmWsvmRs6t6xRQwn/AL6jRT+tbltaW9nF5VvEsaZyQO59 + Se5ooovcCaiiigD/2Q== + + + + + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K4/VvGTWzEeetv6RRqJJPxJ+V + fyP1qPxxrRs/Nwf9SFjjH/TRhlj+C4H/AAI1i+GNM0HxLoF1BLM66xku8jH5k54Kjuvr/wDqrGc3flju + ejhcLTdP29a/Le2n5+hNF8QGWUbru8UZ6yxxSKPwVUP612OieJrbVlRS8W5jhXjOUY9cc8q2Ox/DNed6 + N4MeG+nm1sxeRbk7U3/I4HV2PZcev41zFj4i06y8btDpU0v9l3Eoi3sMYyeHHfCtyueeOepqI1Jxtz9T + pq4PD1eZYa94q/del+59EUVU0u6a902CeQASMuJAOzg4b9QaK6TxTy74pA24nmYnC3Svgdw8KqP1iasH + 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 + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K4/VvGTWzEeetv6RRqJJPxJ+V + fyP1qPxxrRs/Nwf9SFjjH/TRhlj+C4H/AAI1i+GNM0HxLoF1BLM66xku8jH5k54Kjuvr/wDqrGc3flju + ejhcLTdP29a/Le2n5+hNF8QGWUbru8UZ6yxxSKPwVUP612OieJrbVlRS8W5jhXjOUY9cc8q2Ox/DNed6 + N4MeG+nm1sxeRbk7U3/I4HV2PZcev41zFj4i06y8btDpU0v9l3Eoi3sMYyeHHfCtyueeOepqI1Jxtz9T + pq4PD1eZYa94q/del+59EUVU0u6a902CeQASMuJAOzg4b9QaK6TxTy74pA24nmYnC3Svgdw8KqP1iasH + wFoVzdzp4hu7gwW8W5oVWTaCB95nPZRz16/Tr6z4s8PRa7p0kbRmQlCjoPvMucjb/tA8j8R3rwjUvDni + jRrO60+1a4udKkkBkFvkgkdN6feU+oPoOuAa5akbT57XPcwVb2mG+rKSi79ez3t5nfG/03x5bajo1lfS + hc4LAbS4HRwO6Z7H2zjivMH8M6hZeLY9Cmj/ANLE6R/IcjBwQw9sHNQ6Jb6zFqcU2lQ3YvIm+VoYyWU/ + l/OvTvBXgq8l1J9T1GQyXkhbe+/d5W7hiWHBkIJAA+7kk84FZXdZrT5noctPLYTammmtI9b/AOR6doHO + kJJ/DNLLMv8AuvIzD9CKK0Y0WKNY0UKigKoHYCiu8+THVUutLsr1xJPbq0gGBIMq4/4EMGiigCv/AGBp + x4kjnmX+7PcySr+TMRWikaRIEjRURRgKowBRRQA6iiigD//Z + + + + + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K4/VvGTWzEeetv6RRqJJPxJ+V + fyP1qPxxrRs/Nwf9SFjjH/TRhlj+C4H/AAI1i+GNM0HxLoF1BLM66xku8jH5k54Kjuvr/wDqrGc3flju + ejhcLTdP29a/Le2n5+hNF8QGWUbru8UZ6yxxSKPwVUP612OieJrbVlRS8W5jhXjOUY9cc8q2Ox/DNed6 + N4MeG+nm1sxeRbk7U3/I4HV2PZcev41zFj4i06y8btDpU0v9l3Eoi3sMYyeHHfCtyueeOepqI1Jxtz9T + pq4PD1eZYa94q/del+59EUVU0u6a902CeQASMuJAOzg4b9QaK6TxTy74pA24nmYnC3Svgdw8KqP1iasH + wFoVzdzp4hu7gwW8W5oVWTaCB95nPZRz16/Tr6z4s8PRa7p0kbRmQlCjoPvMucjb/tA8j8R3rwjUvDni + jRrO60+1a4udKkkBkFvkgkdN6feU+oPoOuAa5akbT57XPcwVb2mG+rKSi79ez3t5nfG/03x5bajo1lfS + hc4LAbS4HRwO6Z7H2zjivMH8M6hZeLY9Cmj/ANLE6R/IcjBwQw9sHNQ6Jb6zFqcU2lQ3YvIm+VoYyWU/ + l/OvTvBXgq8l1J9T1GQyXkhbe+/d5W7hiWHBkIJAA+7kk84FZXdZrT5noctPLYTammmtI9b/AOR6doHO + kJJ/DNLLMv8AuvIzD9CKK0Y0WKNY0UKigKoHYCiu8+THVUutLsr1xJPbq0gGBIMq4/4EMGiigCv/AGBp + x4kjnmX+7PcySr+TMRWikaRIEjRURRgKowBRRQA6iiigD//Z + + + + + AAABAAgAMDAAAAEACACoDgAAhgAAACAgAAABAAgAqAgAAC4PAAAYGAAAAQAIAMgGAADWFwAAEBAAAAEA + CABoBQAAnh4AADAwAAABACAAqCUAAAYkAAAgIAAAAQAgAKgQAACuSQAAGBgAAAEAIACICQAAVloAABAQ + AAABACAAaAQAAN5jAAAoAAAAMAAAAGAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC + CABJJBsASisjAGc0KAB3PC0AZzswAGdDOwB8QDEAL1JeAFxSUQBoS0QAbFNNAHZTSwBrWVYAclpWAHxf + WQB0Yl0AXGRpAFFteABfcHUAW3R9AGNmaQB7bGsAYmtxAGt3fAB2eHgAhkMyAIhEMwCGSz0Ajk4+AJRJ + NwCWSjgAnE06AKVSPQCGTkAAhVFDAIpQQQCFU0gAmFtMAIRcUwCsVkAAtFpDALxdRgCzXUkAimBVAIFh + WwCIY1oAl2BSAJtiVACUaV0Am2lcALJgTAC9YUkApGNTAKNrXQCrbV4AtmdTALFqVwC8aVQAsWtZALht + WgCHaWAAi21lAIFsaQCIbmgAlWthAIhwbQCZcWcAkXNrAJ5zaQCCdnQAinZ0AIR+fACKfXkAknhyAKhu + YACpdWgAv3lnAMViSgDIZEoAxGpTAMpqUgDBbloA0m1VANV1XgDMe2YAxnxqAMh9awDTfGYA3X9oAIaA + fwCNgH0AlIF7AJmDewClgHUAooJ5AKyIfAC0gXMAu4h4AMuBbgDFg3AAy4p2AM2LeQDUinMA3I98AMKS + fwDMk38A0ZJ8AOiZfwDzmX0A/5p8AEhzggBJf5EAYXmDAHB9gwBOiZwAV4WVAHyGigBtipUAUI2hAFeV + qwBanbMAZpSkAGmXpwBnm60AY56yAF2iuAB8oa8AZKS6AHWktAB4pLQAcaa4AGGqwwBorsYAZK/JAGmw + xwBmsssAaLTOAHWzyABqt9AAarnTAG6+2gBzv9gAb8LdAHLB3AB5x+AAdcnlAHvK5AB5zeoAfdLsAH3T + 8ACMh4YAkYWCAJeIggCWkI4AhZWbAJSUlACampoApImBAKyTjAC/kYUAvJOJALuYjwC+mpAAnqiqAKur + qwC4raoAurq6AMaPgQDGlYkAzZmMANOajADHm5AAyp+UAMChmQDappkA7aOHAOejiQD9oYUA9KGJAOOi + kgDmrJwA66yZAPSulgD4spgAxq6oAMe0rwDOsaoA3baqAN65rwDVvrcA272yANG/ugDks6UA6relAO26 + pgDotKgA672yAMbAvwDOwb0A0cO9AObBtwDjwbkAicnYAJjK0gClydAAic7iAIPQ5gCI0eMAgtPrAIjX + 7ACO2u0Amd3sAIba9ACR3vEAkN/4AI3i9gCH4PgAi+L6AJrl9QCW5/kAlev8AJrs+wCm7PkAovP9AKjx + /ACo+v8AuPj9AMbGxgDOw8AA3cjDANDQ0ADZ2dkA7M7GAOnZ1gDw2NIA9OLdANDg4wDI6/AAwvP6AMv1 + +wDF/f8Ayfz+ANP8/gDc/P4A7ejnAPXq5wDw6ugA5P7/AO3+/wDz8/MA+vTzAPT//wD9/v4A////AAAA + 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 + CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIABARFgAkExMAHB0jACEhJQApIiQAMCstADIx + NAA5Oj8ARSMeAEwmHwBCKCUATzQvAGEwJgBxOCoAez0uAGc8MQBrRTsAdUAzAHFIPwB7Sz4APT1BAEJB + QwBMSUwAUEJAAE1OUQBRTVAAU1BSAFRVWQBmTUgAdEpBAH5OQgBoUEoAdVBHAGJTUQB/XVYAcVxYAHRi + XQBfYmUAVnR/AGRgYQBuYWAAbGxuAHZmZAB9bWwAZm90AHBvcABzcXEAhkMyAIlEMwCKSDcAhkk6AIpL + PACUSjcAlEs5AJtNOQCdUD0ApVI9AKhTPgCGTkIAh1pQAKZWQgCuV0EAp19OALJZQgC9XkYAv19IAIVj + XACQYlYAnWVXAJRkWQCYZVoAnWlcAK5gTgCyYU0AuGFLAKdiUQCrZlMAtmRRALZrWACMbmYAgWtoAJFr + YgCbbWIAgnBtAJpwZgCTd28Am3VrAJ14bgCNfnkAlXp1AJ99dACWfXgAqnRmAKJ0aACydWcAvH1uAKR7 + cACrfHEAxGJKAMZoUADJblYAxnFcAMh2YgDGfWsAhYB/AJqGfwCtgHQAp4d/AK2GegCpiX4AtIN0ALKG + egC4hXkAu4l8AMSDcwDHjX8AXXaAAF94ggBJf5EAWYWVAGuGjgBzgYYAe4SKAGWMmgB6jZYAdJKeAHmS + nABTkqYAW5SkAF+YqgBbn7YAYZapAGebrABlnrIAXqS7AGumugBuqr4AYqrCAGWxywBqsskAarfRAG65 + 0QB1u9EAbsDbAH3B1wBwwdwAesbcAHbH4AB1yeQAfMvkAH/Q5gB+1PAAioGBAIWLjQCIiYkAloeCAJeJ + hgCdiIMAl42LAI+PkACNlpkAjpmcAJeVlQCmiYAAqoyAAKaRiQC0kYUAo52bAIKlsACMq7AArKemAK2o + pwCxtrUAuLSzALm5uQDDj4IAx5GDAMWWigDQk4QA2JqIAMiilgDEo5sA0qKUAOmqlwDFqqMAxrGsAM+0 + rgDcsqYA27esANK9tQDbvbMA5bSiAOW3qwDhv7YAzcG9AOnDuQCJwtEAicnaAKnFyQCzwcMAodbfAIHN + 4QCF0+oAi9XoAI3Y7gCV3O0AnNztAIje9gCQ2/EArtrhAI3g+ACV4PMAmuHzAJDi+ACa7fsAs+XuAKDn + 9wCu5/UArer3AKHt+wCv7PkAtOv0AL3s9QC57fgApvP+AK/z/QC28fsAu/H6ALL4/QDGxcUAycXDAM3N + zQDcyMMA2tnZAO/WzwDx08sA69nUAPPb1QD24dwAw+XqANHl6ADC9PwAzf3+ANn2+gDz4+AA9OnmAPnx + 7wDk+/0A6/3+APb08wD79fMA9f7+AP39/QD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoIHK0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcB + AhodBAAAAAAAAAAAAAAAAAAAAAAAAKVwc7hcMAgCAQEIrQAAAAAAAAAAAAAAAAAAAABrbrW5vsTpsBcB + BB0dHQEBMOgAAAAAAAAAAAAAp2+otr7A6Ojp5+sdAQ0AAAAAMAECMAAAAAAAAJ2muMHD6Ofn5+fo5+jo + mgEWdQAAAAAAAAEBrwAAAABfqL/o6Onn5+fp5+i6smEGAaT2XwAAAAAAAQGvAAAAVG2w5+fn5+i7urRp + ZGRlZAEBr/+4nQAAAAAAAa8AAABgqefou7eyaWdlZGVkZWRkAQGv/+xeAAAAAAABrwAASWNzaWVkZVBb + fJpIOTs/QUIDATDr/8KfAAAAAQGvAABYZWRlZGVDgIuNzcZVMjIyMw4BCK3/+F8AAAABAQAAAABHZGRk + Qz3c1db685AyMjIyMgsBFzDot1orAQQAAAAAAABNZGRBH/XkzuXVizIyMjIyMgsBAggICAEBAAAAAAAA + AABMZEEPe5CLiIVSOTo7QWRkZGQMGB0bIwAAAAAAAAAAAFFkQzcRJ3cuVmxBZGRkZGRkZWXF/vxjAAAA + AAAAAAAAAFNkZGRkZGROyMlROD9DZGRkZGb3/8VXAAAAAAAAAAAAAEpkZGRkZD6r+fKcPDY6QmRkZMH+ + 93QAAAAAAAAAAAAAAEBkZGRkOybV9f3xo0QyMztBaO7/71kAAAAAAAAAAAAAXWRkZGRBE5LS+v7105s8 + MjM5s/7+cgAAAAAwMAAAAAAAUzcpamQ4IYnM4f3/+dmcPDIz6v/tWQAAAAEIAAAAAAAABwEpZEMQHo2V + 2/n//d+qMzJx+/y0AAAAAQgAAAAAAAAYASlkT0s5FC6JlOD6+t2ANTW8/vBiAAABCAAAAAAAAB0BKUui + f34tFBkoj8/04pAkMkb7/p4AAAEIAAAAMOcAHQEpNK7MmM+PeILHj5jRkzAxMrewAAAAAQgAAAQCMAAd + ASkSoOXX5svL5fnQjpOMLDIxSZoAAAABCAAwAQEXrRoBKQAhytTX1Ob6+t6Mi30gMTExIgAAAAEILwEX + AQEcCAEpAAAqipaZ2OPal4SBJTQ1FSBFAAAAAQEBBAAABAUFASkAAABaen2Gh4N5dpsAAAAAAAAAAAAB + AQEAAAAAAQEBKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBMAAAAAAJAQEpAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAQkAAAAAAAAJAaEAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////D////A///AA//8AAD/wADw/AA + A/HgAAHxwAAA+cAAAPmAAABxgAAAc8AAAAfgAAAP8AAAH/AAAB/4AAAP/AAAD/4AAAf+AAAHnwAAA5+A + AAOfgAABn4AAAZyAAAOYgAADkAgAA4AMAAOGDgD/jw///48P//+fj///KAAAABgAAAAwAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAMRoYACUlKQBWPToAYzIpAGYzKABzPjEAez8wAF9A + OgBmRT4Af0AxAHxCNAB/SDoAP0FFAEBBRQBLSUsAWlpcAGpXUwB0W1cAcV1YAHZdWQBlZGYAcGxsAHR0 + dgB6d3kAfXx9AIZDMgCIRDMAikU0AI5HNQCMSDcAh0k4AIFLPgCHSz0Akkg2AJZLOACZTDkAolE8AKdT + PgCoUz8AgU1AAI9ZTACUWEkAgl1VAIRdVACmVEAAsFhBALRaQwC2XEUAul1FAIBgWgCdZFUAmGZaAKxg + TgCyYk0AtGNPALhgSgC/YUoAr2hWAKNrXQCva1oAtWpXAIxoYACTamAAhHJuAJFzbACYd28AiXZwAJZ3 + cACSenQAmnpyAKBzaQCndWgAoXhuALR+cADCYUgAxWJKAMdkSwDGaVEAx2tUAMZ8agCUgHwApIB1AKmF + egCthHoAqYt/AMeEcwDGjX8AXXaAAF94gQBYe4gAZX+KAF+AjABdipoAdIGHAH+AgwB2iI8AaYmVAGyQ + ngB6k50AVpasAFiYrgBkkqEAY5+xAGWdsABfp74AdKq+AHKvwgBntM0AabbQAG250QBru9UAbrzVAHC6 + 0gB4xNoAfsneAH7N5QB4zOgAhoKFAIqHiACUiYYAn4qFAIGUnAChj4sApJCKALOUjACmmpYApZyZAIWq + tgCko6QApaSlAK+rqQCwq6oArLy8ALCwsgC+vr4AyZeHAMCYigDKmIoAypiMAMKckgDHnZIAzKCQAMam + ngDWoJMA2aSXAMWuqADHtK8AzLGpANWxpADcs6kAxbSwANW8tADTv7kA4a+gAOK2qwDnvLEA1sG5AO3H + vQCDzN8Ams7aALPKzwChy9IAqNLaAK7R2ACAzeMAgc/oAITS6QCH2O8AkdDgAJbe7QCE2fEAiNnwAJLc + 8QCO5PkAmOLxAJPn/ACp4/EAqOr3ALbn8QCx7/oApfD9ALD2/gC78PoAuPb9AMfHxwDKxMMAycbFAM3N + zQDfz8sA69/cAMXq8ADH8/oA0vX7ANb8/gDj4uEA9ObiAPLp5gD48O0A5fv+AOD9/wDq/P4A/Pf2APH9 + /gD2/v8A+fj4AP38+wD5/v8A/f39AEsAUABpAHAAhwCQAKUAsADEAM8A4QDwAPAR/wDyMf8A9FH/APZx + /wD3kf8A+bH/APvR/wD///8AAAAAABsALwAtAFAAPwBwAFIAkABjALAAdgDPAIgA8ACZEf8ApjH/ALRR + /wDCcf8Az5H/ANyx/wDr0f8A////AAAAAAAIAC8ADgBQABUAcAAbAJAAIQCwACYAzwAsAPAAPhH/AFgx + /wBxUf8AjHH/AKaR/wC/sf8A2tH/AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAALy8AAAAAAAAAAAAAAAA + AAAAAAAAAACCAwEDFwAAAAAAAAAAAAAAAAB9U4t8EQMBAYUAAAAAAAAAAAAAAABUiZuZvIcDAWBgDwEX + AAAAAAAAf1aPlpq7urq6vQ8DQwAAAA8BFwAAAEeKnry6urq6upiNPwGDjAAAAAABEAAAAFWIurq6lI5X + UE5OBQG8xUUAAABgEAAAPICQWFFPPTsxMk1OBQGF35EAAAAPEAAAOE5OTkxkanSBIh0dIwEQxMdFAAAB + FgAAADpOTSq4rcm1GR0dHQYBEIV+GgEPAAAAAEZNTQeldaBvFR0jJScdAgEBARgAAAAAAAA1TSQKXVlC + PkxNTU5NTpffnAAAAAAAAAAANk1NTU00wHklL01OTU/Gy0gAAAAAAAAAADlNTU0kocqiRB8mME2S0Z0A + AAAAAAAAAFJNTU0oX67MyqRBHB4uv89KAAAAELwAAABABBdMCGOowt/Ioy0cSdGfAABgAbwAAAAAARBN + MgtccrLMzassHL7PSwBgAbwAAAAAARA3e3czCVtzwbdrGzTOkwBgAbwAFoUAARAMtKewZmiqcaxwIRuV + AABgAbxgARAAARAUhrG2qcPQpm1pGxsrAABgAXgBAwEXARAAEmx2r7mzbmUTIA0pegBgAQEPAA8DARAA + AABhYmdeWgAAAAAAAABgAQMAAAABARAAAAAAAAAAAAAAAAAAAABgAQAAAAAAARYAAAAAAAAAAAAAAAAA + AAD///MA///BAP/wBwD/gAMA8ABxAMAAeQDAADkAgAA5AIAAGQDAAAMAwAAHAOAADwDwAAcA+AAHAPgA + AwCcAAMAHgABAB4AAQASAAMAAgADAABAAQAIcH8AHH//AD5//wAoAAAAEAAAACAAAAABAAgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCAAQERYAIRISACIaHAAbGyEAHB0jACUeIAAtKS0ALCwxADIx + NAB6PC4APDxAAE1MTwBTUFIAVVZaAF5cXgBtX10AcVtYAG5gXwB3YFsAemFcAGVlaQBqaWsAbmxtAGx3 + fAB2dXcAfXx+AIdDMgCCRjcAiEQzAIhFNQCZTDkAnE46AKBPPACBUEQAiFlOAJFURACbV0cAll5QAK5W + QAC4W0UAuVxFAI5mXgCba18ArWFOAL5hSgCgal0AjHFqAI90bwCKfHsAkHp1AK9vYAC6c2EApH92AMNh + SQDEYkoAx2RLAMZlTQDGa1QAxnVhAMWNfwBiiJYAYY2cAHyQlgBwk6AAXaO6AH6jrwB4tMQAeMniAIGB + gwCHhYcAi4iIAIqJjACejIgAg5eeAJKRkgCXlZUAkZqcAKGLhAClkIsAo5GNAKiQiACqlI4AtJGIALaW + jACllZAAgrC9AKelpwCtrq8Ap7O1ALOxsQDFoZgAwaWeAMalnQDPraQA1bOoANK4rQDGubUAxr69AM7B + vQC8w8QAiM7jAIzP4ACO1uYAntblAJ/d7gCD1/EAlN3xAKvf7ACu5/QAsur2ALTs9wC59v0Av/f9AMPC + wgDHx8cAzsPAANvZ2ADh0MwA8uXiAPfp5gDj9/oA5vf5AOH4/AD48/EA+/TzAP///wAAAAAALyYAAFBB + AABwWwAAkHQAALCOAADPqQAA8MMAAP/SEQD/2DEA/91RAP/kcQD/6pEA//CxAP/20QD///8AAAAAAC8U + AABQIgAAcDAAAJA+AACwTQAAz1sAAPBpAAD/eREA/4oxAP+dUQD/r3EA/8GRAP/SsQD/5dEA////AAAA + AAAvAwAAUAQAAHAGAACQCQAAsAoAAM8MAADwDgAA/yASAP8+MQD/XFEA/3pxAP+XkQD/trEA/9TRAP// + /wAAAAAALwAOAFAAFwBwACEAkAArALAANgDPAEAA8ABJAP8RWgD/MXAA/1GGAP9xnAD/kbIA/7HIAP/R + 3wD///8AAAAAAC8AIABQADYAcABMAJAAYgCwAHgAzwCOAPAApAD/EbMA/zG+AP9RxwD/cdEA/5HcAP+x + 5QD/0fAA////AAAAAAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx/wD0Uf8A9nH/APeR + /wD5sf8A+9H/AP///wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR/wCmMf8AtFH/AMJx + /wDPkf8A3LH/AOvR/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA8AA+Ef8AWDH/AHFR + /wCMcf8AppH/AL+x/wDa0f8A////AAAAAAAAAAAAAAAAAABMWwAAAAAAAAAAAABTABoCDUYAAAAAAABW + VWBkWQcAAAYYAAAAUmF1dHRjXQhRAAAAAQAANnNiXj08OTkBdlQAAA8AADU7OElDMyAiA0h5AAABAAAs + OCZwb2ceHgsEEBEFAAAAAC0hGT8yKCo3OStYAAAAAAAALjg4T2UnKDc6eFwAAAAAAEo4OCVqe1okIT1+ + VgBGTQAAFQ4pE2Z8ek4fd18AD0cAAAAKNDESPm1yGy99AA9HABgACjBsaERpRUEcUAAPFwkCEAoAV2tx + bkIUHSMADwEAAAIKAAAAS0AAAAAAAA8WAAAPDAAAAAAAAAAAAAD/+QAA/6EAAPgZAADAHQAAgA0AAIAN + AACAAwAAwAcAAOADAADgAQAAMAEAADgBAAAoAQAAAgEAADOfAAAz/wAAKAAAADAAAABgAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACWkI7/lpCO/5aQjv+WkI7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlpCO/wACCP8AAgj/AAII/wACCP+WkI7/lpCO/5aQjv8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAADAAAABYAAAApAAAAMgAA + ACAAAAAGAAAAAAAAAAAAAAAAAAAAAJaQjv8AAgj/AAII/wACCP8AAgj/AAII/wACCP8AAgj/AAII/5aQ + jv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAANAAAAHgAAADYAAABRAAAAah0R + DomFTz+2wnJc0Ws9MI4AAAAqAAAAApaQjv+WkI7/AAII/wACCP8AAgj/AAII/wACCP+WkI7/AAAAAAAA + AAAAAAAAAAII/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAoAAAAXAAAALQAAAEoAAABtTTAnnKBi + T8rQf2bp/5p8//Shif/mrJz/5sG3/8BkTfMAAABnAAII/wACCP8AAgj/AAII/wACCP8AAgj/AAII/wAC + CP+WkI7/lpCO/5aQjv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABwAAABAAAAAhAAAAPQAAAGA5JB2NglJDusV7 + ZeLzl3v6+6CF/+qsmv/ctqv/zsG9/8fHx//R0dH//////5aQjv8AAgj/AAII/wACCP8AAgj/AAII/wAC + CP8AAgj/AAII/wACCP8AAgj/AAII/5aQjv+WkI7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAALAAAAGwAAADAAAABFAAAAWgAAAHViQDSlrXBc0+iV + evX/o4X/7a2Z/9+2qf/Rv7r/x8fH/8fHx//Hx8f/x8fH/8fHx//x8fH/AAII/wACCP8AAgj/AAII/wAC + CP8AAAAAAAAAAAAAAAAAAAAAAAAAAAACCP8AAgj/AAII/wACCP+WkI7/lpCO/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAUAAAAKQAAAEUAAABmUDctl5JjUsHGhW7gzopy7PSu + lv/mtaX/2Lyz/9W+t//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/9DQ0P/+/v7/AAII/wAC + CP8AAgj/lE070wAAAEgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgj/AAII/wACCP8AAgj/lpCO/5aQ + jv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAALwAAAFcfFRKChV1OtriBa9vnoIX2+LKY/+q3 + pf/cvbL/zsPA/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/9nZ + 2f8AAgj/AAII/wACCP+WkI7/zGpR/zAYEooAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAII/wAC + CP8AAgj/AAII/5aQjv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAABLeD0ut799Zu7to4f/7bqm/9++ + sf/Rw73/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fH + x//Hx8f/uK2q/7yTif8AAgj/AAII/wACCP//////05qM/4hHN84AAABAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAACCP8AAgj/AAII/5aQjv8AAAAAAAAAAAAAAAAAAAAAAAAABQAAADxzOy24yH1r/5eC + ff+6urr/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fH + x//HtK//v5GF/795Z/+7alb/vF5H/wACCP8AAgj/AAII/5aQjv//////+vTz/8x4Y/ocDgp8AAAAFwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCP8AAgj/AAII/5aQjv8AAAAAAAAAAAAAAAAAAAAAAAAAITAY + Eo3Sa1L6l5GP/6mpqf/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8eu + qP/Hm5D/x4Jx/8dkS//HZEv/x2RL/8dkS//HZEv/x2RL/wACCP8AAgj/AAII/5aQjv///////////+Cx + pf+LSDfOAAAARQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgj/AAII/5aQjv8AAAAAAAAAAAAA + AAAAAAAMAAAAW69YQue1gHP/lpaW/8PDw//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x66o/8eV + if/HfGr/x2pS/8dkS//HZEv/x2RL/8dkS//HZEv/x2RL/8dkS//HZEv/x2RL/wACCP8AAgj/AAII/5aQ + jv////////////Xq5//PalH/LRYRjwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgj/AAII/5aQ + jv8AAAAAAAAAAAAAAAIAAAAvWi0hsMFuWv+Tk5P/ra2t/8fHx//Hx8f/xsC//8auqP/GlYn/xpWJ/8Z8 + av/GZEv/xmRL/8ZkS//GZEv/xmRL/8ZkS//GZEv/xmRL/8dkS//HZEv/x2RL/8dkS//HZEv/x2RL/wAC + CP8AAgj/AAII/5aQjv/8/Pz////////////appn/qFdC4gAAAFQAAAAKAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAgj/AAII/5aQjv8AAAAAAAAAAAAAAAoAAABZr1dB86CDe/+WkI7/wKGZ/8aPgf/GfGr/xmRL/8Zk + S//GZEv/xmRL/8ZkS//GZEv/qG5g/4p2dP+ReHT/omBQ/6dUP/+nVD//q1ZA/7ZcRf+2XEX/xmRL/8Zj + S//GY0v/xmNL/wACCP8AAgj/AAII/5aQjv+WkI7//v7+////////////03xm/1csIaIAAAAlAAAAAAAA + AAAAAAAAAAAAAAACCP8AAgj/AAII/5aQjv8AAAAAAAAAAAAAAA42GxRvv2BI/75pU//GZEv/xmRL/8Zk + S//GZEv/xmRL/8ZkS//GZEv/xmRL/7BsW/9mlKT/WZ20/1ibsf9hqcH/bbzW/3iktP+FU0j/iUQz/4lE + M/+JRDP/iUQz/4lEM/+USTf/mEs5/6NRPf8AAgj/AAII/wACCP+WkI7/+/v7////////////5sO6/6pX + Q+IAAABPAAAABwAAAAAAAAAAAAAAAAACCP8AAgj/AAII/5aQjv8AAAAAAAAAAAAAAAYAAABAfj8vyMZj + S//GY0v/xmNL/8ZjS//GY0v/xmNL/8ZjS//GY0v/tFpE/2mXp/9qt9D/Z7TN/2awyf+D0Ob/qvH8/5rq + +/9+yuH/gWFb/4lEM/+JRDP/iUQz/4lEM/+JRDP/iUQz/4lEM/8AAgj/AAII/wACCP+WkI7/lpCO//7+ + /v///////////8t/bPssFhGUAAAAIgAAAAEAAAAAAAII/wACCP8AAgj/AAII/wAAAAAAAAAAAAAAAAAA + AAAAAAARAAAAWYRCMtbFY0v/xWNL/8VjS//GY0v/xmNL/8ZjS//AYEj/dFtX/5He8f+W5/n/fdHr/4PT + 7P/F/f//9v///+f///+N4/f/caa4/4lEM/+JRDP/iUQz/4lEM/+JRDP/iUQz/4lEM/+JRDP/AAII/wAC + CP8AAgj/lpCO/5aQjv+WkI7//////+zOxv+zXEbnAAAAWAAAAAsAAgj/AAII/wACCP8AAgj/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAGurVkHuxWNL/8VjS//FY0v/xWNL/8VjS/+hUT3/allX/938 + ///r////muz7/4bW8f/I/P///f///8z+//+F3PX/ZbDJ/4lEM/+JRDP/iUQz/4lEM/+JRDP/iUQz/4lE + M/+JRDP/iUQz/wACCP8AAgj/AAII/wACCP+WkI7/lpCO/5aQjv+WkI7/lpCO/wACCP8AAgj/AAII/wAC + CP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACUsFhCOvF5H+sVjSv/FY0r/xWNK/8Vj + Sv+DQjH/aEY//8jr8P/x////m+v6/3zM5/+Z4/P/qO/5/47i9f9wwNv/W5So/4hEM/+IRDP/iEQz/4hE + M/+JRDP/iUQz/4lEM/+JRDP/jEU0/5xNOv8AAgj/AAII/wACCP8AAgj/AAII/wACCP8AAgj/AAII/wAC + CP8AAgj/AAII/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAA5VywhssVj + Sv/FY0r/xWNK/8VjSv99Py//ZjMm/3B9g/+S3vD/e8zm/2ezzf9jq8T/aLPM/2Ksxf9Xma//cFpW/4hE + M/+IRDP/l0s4/5dLOP+fTzv/p1M+/7ZbRP/CYUj/xmNK/8ZjSv/GY0r/xmNK/wACCP8AAgj/AAII/wAC + CP8AAgj/AAII/wACCP8AAAAuAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAUIVCMtTFY0r/xWNK/8VjSv+bTjr/ZjMm/2YzJv9ie4X/YKe//1qetf9Pi5//UI2h/1KA + kP+UaWD/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8Zj + Sv/NmYz/9vb2//7+/v//////79fR/7leSO8AAABhAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAGmsVkDtxWNK/8VjSv/FY0r/lUs4/2s2KP9mMyb/XFJR/2lr + bv9cZGn/fF9Z/7tiS/+kgnj/rJSN/59PO/+6XUX/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8Zj + Sv/GY0r/xmNK/8ZjSv/IZEr/6NvY//z8/P///////////+Oikv9OJx6rAAAALgAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACIXCwiEslhD9sViSv/FYkr/xWJK/8Vj + Sv/FY0r/xWNK/8VjSv/FY0r/xWNK/8VjSv9/enX/zPP6/6XJ0P+EXFP/iEQz/59PO/+yWUL/xmNK/8Zj + Sv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/zXxn//Ly8v/+/v7///////Ti3f/GZU30AAAAZwAA + ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAA0WSwhr8Vi + Sv/FYkr/xWJK/8ViSv/FYkr/xWJK/8ViSv/FY0r/xWNK/8VjSv9tU03/q+35//v////B8vr/hZWb/4hE + M/+IRDP/j0c1/6dTPv++X0f/xmNK/8ZjSv/GY0r/xmNK/8ZjSv/GY0r/xmNK/965r//8/Pz///////// + ///cj3z/cjosugAAADMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAToZCMtHEYkr/xWJK/8ViSv/FYkr/xWJK/8ViSv/FYkr/xWJK/8VjSv9mMyb/mN3r/8z1 + /P//////5P3//43K2P+BbGn/iEQz/4hEM/+IRDP/m006/7JZQv/GY0r/xmNK/8ZjSv/GY0r/xmNK/8x8 + Z//09PT//v7+///////w2NL/x2VN9QAAAHIAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAF+NRjXdxGJK/8ViSv/FYkr/xWJK/8ViSv/FYkr/xWJK/8Vi + Sv9rNSj/fYyO/4jb8//L9vz//f////X////M9vz/mMrS/3+Gi/+GSz3/iEQz/4hEM/+LRTT/l0s4/65X + Qf/CYUj/xmNK/8ZjSv/gwLn/+vr6////////////6LSo/5lNOtAAAABAAAAABQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAB1sllD9MRiSv/EYkr/xWJK/8Vi + Sv/FYkr/xWJK/8ViSv99Pi//ak9J/4vf+P+C1e7/yPj9//7/////////9P///7r1/f+I0eP/foWK/4ZL + Pf+IRDP/iEQz/4hEM/+LRTT/n087/7ZbRP/Ia1T/7efm//7+/v//////+/Xz/9p2Xv8AAAB2AAAAEwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAwWy0iqsRi + Sv/EYkr/xGJK/8ViSv/FYkr/xWJK/8ViSv+bTTr/ZjMm/3Wktf9+0+//gdPt/9H7/v/8//////////3/ + ///m////tPX9/4XF1v+AdHT/iEQz/4hEM/+IRDP/iEQz/4hEM/+USTf/yp+U//j4+P///////////+az + p/9uNyq/AAAAOAAAAAMAAAAAAAAAAAAAAAAAAAAAlpCO/5aQjv+WkI7/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAKAAAAR2EwJMDEYkn/xGJK/5aQjv+WkI7/lpCO/8ViSv+/X0f/cjgq/2c7MP9upLf/dsnl/3/R + 6v+s7fr/5v7///7//////////f///+b+//+18/v/i8zb/4J3dv+IRDP/iEQz/4hEM/+IRDP/jk4+/93I + w//+/v7///////v18//Tc1v5HA4KeQAAABYAAAAAAAAAAAAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAFaPRzXaAAII/wACCP8AAgj/lpCO/8ViSv/FYkr/rVZB/2cz + Jv9mOi//Z5ut/3HD3v92yOP/kN/z/9X7/v/7///////////////9////3v7//5vr+f98oa//hks9/4hE + M/+IRDP/iEQz/6x7bv/4+Pj////////////ptaj/jEc2zAAAAEIAAAAFAAAAAAAAAAAAAgj/AAII/wAC + CP+WkI7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAABwAAII/wACCP8AAgj/lpCO/8Vi + Sv/FYkr/xWJK/5ZKOP9nMyb/Zjku/2Sfs/9svNf/cMHc/4TT6/+28/z/7v////7//////////////9/+ + //+X6/z/eLDE/4ZLPf+IRDP/iEQz/4tFM//m29n//f39///////79fP/03Nb+jAYEowAAAAeAAAAAAAA + AAAAAgj/AAII/wACCP+WkI7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAqAAII/wAC + CP8AAgj/lpCO/8ViSv/FYkr/xWJK/8ViSv+nUz7/ikQz/2U5Lv9ia3H/Y52x/2q40/9zw93/jtrt/8z3 + /f/3//////////z////F/f//h+D4/3aktP+HQzL/iEQz/4hEM/+ncGP/9fX1//7+/v//////672y/65Y + Qt4AAABEAAAABQAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAHAAII/wACCP8AAgj/lpCO/8RiSf+5XEX/iHBt/5RpYP+nZlf/tVpE/6FQPP94PC3/ZzMn/2Bo + bf9gorf/aLXP/3XE3v+h6vf/4P7///n////U////mO/+/3XL5/97bW3/h0My/4hEM/+JRDP/zrGq//v7 + +////////////91/aP8AAABLAAAACQAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAII/wACCP8AAgj/lpCO/8RiSf+HaWD/ic7i/2Kpwf9gpr3/X6W8/22K + lf98bGr/bUQ7/0kkG/9KKyP/UW14/2Ksxf9quNH/iNfs/777/v+/////le7+/3jO6/9qpbn/h0My/4hE + M/+IRDP/lVhJ/+7p6P//////8vLy+y8lIpgAAAArAAAAAwAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAAA + AAAAAAAAAAAAAJaQjv+WkI7/AAAAAAAAAAAAAAAAAAII/wACCP8AAgj/lpCO/6dTPv9qR0D/2Pn9/33O + 5/9zv9j/fMjh/4fV6/96yOH/XaG4/0FzhP8vUl7/S3+Q/3K3zP9mssv/Z7TN/4DR6P+Z7/3/ieH6/3XL + 5/9mssz/fVJJ/4dDMv+IRDP/iEQz/76akP/8/Pz/mpqa0gAAAEgAAAAHAAAAAAAAAAAAAgj/AAII/wAC + CP+WkI7/AAAAAAAAAAAAAAAAAAII/wACCP+WkI7/lpCO/wAAAAAAAAAAAAII/wACCP8AAgj/lpCO/3o9 + LfpoNCf/0ODj/7T2/v+F1/L/kN/4/7v+//+l8Pv/aK7G/12ht/95x+D/m+f3/9T6/P+a3u7/a7nT/2i0 + zv94yeX/ec3q/2/C3v9ircb/eVVN/4dDMv+HQzL/iEQz/4lEM//w6uj/YmJipAAAACAAAAAAAAAAAAAA + AAAAAgj/AAII/wACCP+WkI7/AAAAAAAAAAAAAgj/AAII/wACCP8AAgj/lpCO/wAAAAAAAAAAAAII/wAC + CP8AAgj/lpCO/zUaFLhoNCf/nqiq/+L///+V6/3/j+H7/7z+//+o8fz/dMDa/4PV7v+o8/3/4/////7/ + ///v/v//jNzx/2i1z/9ptc//br/a/2q51P9fnbL/hkMy/4dDMv+HQzL/h0My/4hEM/+7mI//AAAAiQAA + ABUAAAAAAAAAAAAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAAAAAAAAgj/AAII/wACCP8AAgj/lpCO/5aQ + jv8AAAAAAAII/wACCP8AAgj/lpCO/wAAAE9AIBjNcFRN/8P1+/+i9v//iN36/5vs/f+W6P3/h9v3/6Dz + /v/S/////f/////////4////ou37/2q50/9gqcH/ZrPM/2Ksxf9rcnb/hkMy/4ZDMv+HQzL/h0My/4dD + Mv+JRDP/KRQPqgAAACgAAAABAAAAAAAAAAAAAgj/AAII/wACCP+WkI7/AAAAAAACCP8AAgj/AAII/wAC + CP8AAgj/AAII/5aQjv+WkI7/AAII/wACCP8AAgj/lpCO/wAAABIAAABfSiUb32x5f/+D2PH/ftTx/3zR + 7f+C1/P/i+L8/6j6///L////5v///+H///+3+P7/f9Tv/2Svyf9bn7b/XaO6/1yNnf+CRjf/hkMy/4ZD + Mv+GQzL/h0My/4dDMv+IRDP/czkq4wAAAEQAAAAIAAAAAAAAAAAAAgj/AAII/wACCP+WkI7/AAII/wAC + CP8AAgj/lpCO/wACCP8AAgj/AAII/wACCP+WkI7/AAII/wACCP8AAgj/lpCO/wAAAAAAAAAeGQwJhHA3 + KflhYGL/abDH/2/C3f90yeX/fdPw/4ri+f+W7fz/mu/8/47k+P96zur/arnU/1qetP9Uk6j/TIaZ/GJH + Qu5+Py/qfj8v6n8/L+h1OivhUikez1QqH8tqNSfIdjsstEwmHEoAAAAIAAAAAAAAAAAAAgj/AAII/wAC + CP8AAgj/AAII/wACCP8AAgj/AAAAAAAAAAAAAgj/AAII/wACCP+WkI7/AAII/wACCP8AAgj/lpCO/wAA + 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 + U/+pxcn/s8HD/4xuZ/+bTTn/rldB/75fR//FYkn/xmNK/8ZjSv/GY0r/yW5W//Hp5v/+/v7/6cO5/V0z + KKoAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkTCQdSqFM/68RiSv/EYkr/xGJK/8Ri + Sv/EYkr/plZC/4yrsP/g+f3/0eXo/4iIiP+ITT//lEo3/6RRPf+9Xkb/xmNK/8ZjSv/GY0r/3rKm//v7 + +//36eb/v3lo6wAAAEMAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkfDwtunk475sRi + Sv/EYkr/xGJK/8ViSv+pVD//dGJd/5bh9f/Y9vz/7/3+/8Pl6v+OmZz/hWNc/4hFNf+PRzX/plM+/7Va + Q//IdmL/69nU//7+/v/z29X/dDwusAAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AB5QJx6ZxGJK/8RiSv/EYkr/xGJK/7NZQ/91QDP/fcHX/5Db8f/p/f7/+////9z3+/+u2uH/hImM/4ZO + Qf+IRDP/jUY0/5xOO//Flor/+/v7//78/P+vdmjiGAwJVQAAAAEAAAAAAAIIHE1LTcZ0cHD/lpCOVQAA + AAAAAAAAAAAAAgAAACVmMya5kkk4+2RgYf+FgH//w2FJ/5lMOf9oUEv/b6a6/4TT6v+57fj/9P7+//3/ + ///j+/7/s+Xu/4iKiv+GT0P/iEQz/4pIN//cyMP//v7+//HTy/50Qze3AAAAGQAAAAEAAghVAAII/zIx + NP+WkI5VAAAAAAAAAAAAAAAAAAAAAw8HBU4PCQvbAAII/2RgYf/EYkr/v19I/3s9Lv9mTUj/arLJ/3bH + 4P+u5/X/5vz+//7////3/v//tOv0/4KlsP+HRzf/iEQz/7KGev/39fT/+/Ty/86NffEVCghUAAAABwAC + CFUAAgj/MjE0/5aQjlUAAAAAAAAAAAAAAAAAAAAAAAAACwABBbQAAgj/ZGBh/8NhSf+2ZFH/sGBN/51Q + Pf9zST//Zm91/2imu/96xtz/vez1/+v8/v/q/v//oe37/3qRmv+GSDn/j009/8+0rv/9/f3/9uHc/35D + NLMAAAAcAAIIVQACCP8yMTT/lpCOVQAAAAAAAAAAAAAAAAAAAAAAAAABAAEGqwACCP9kYGH/tWJN/42W + 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 + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.vb new file mode 100644 index 0000000..e3e7690 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmMsgBox.vb @@ -0,0 +1,26 @@ +Public Class frmMsgBox + + Private Sub btnYes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnYes.Click + Me.DialogResult = Windows.Forms.DialogResult.Yes + Me.Close() + End Sub + + Private Sub btnno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnno.Click + Me.DialogResult = Windows.Forms.DialogResult.No + Me.Close() + End Sub + + Private Sub btnAbbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbbruch.Click + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub frmMsgBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + End Sub + + Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.designer.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.designer.vb new file mode 100644 index 0000000..64c5e76 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.designer.vb @@ -0,0 +1,106 @@ + _ +Partial Class frmSplash + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSplash)) + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.lblVersion = New System.Windows.Forms.Label() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.lblversiondatum = New System.Windows.Forms.Label() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.PictureBox1.ErrorImage = CType(resources.GetObject("PictureBox1.ErrorImage"), System.Drawing.Image) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(0, 0) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(463, 334) + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'Timer1 + ' + Me.Timer1.Enabled = True + Me.Timer1.Interval = 3000 + ' + 'lblVersion + ' + Me.lblVersion.BackColor = System.Drawing.Color.White + Me.lblVersion.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVersion.Location = New System.Drawing.Point(3, 0) + Me.lblVersion.Name = "lblVersion" + Me.lblVersion.Size = New System.Drawing.Size(197, 24) + Me.lblVersion.TabIndex = 1 + Me.lblVersion.Text = "Version " + Me.lblVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.lblversiondatum) + Me.Panel1.Controls.Add(Me.lblVersion) + Me.Panel1.Location = New System.Drawing.Point(246, 252) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(195, 48) + Me.Panel1.TabIndex = 2 + ' + 'lblversiondatum + ' + Me.lblversiondatum.BackColor = System.Drawing.Color.White + Me.lblversiondatum.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblversiondatum.Location = New System.Drawing.Point(0, 24) + Me.lblversiondatum.Name = "lblversiondatum" + Me.lblversiondatum.Size = New System.Drawing.Size(200, 24) + Me.lblversiondatum.TabIndex = 2 + Me.lblversiondatum.Text = "Version " + Me.lblversiondatum.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'frmSplash + ' + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None + Me.ClientSize = New System.Drawing.Size(463, 334) + Me.ControlBox = False + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.PictureBox1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None + Me.Name = "frmSplash" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "frmSplash" + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents Timer1 As System.Windows.Forms.Timer + Friend WithEvents lblVersion As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents lblversiondatum As System.Windows.Forms.Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.resx b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.resx new file mode 100644 index 0000000..43d13a4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.resx @@ -0,0 +1,1942 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + /9j/4AAQSkZJRgABAQEASABIAAD/7gAOQWRvYmUAZAAAAAAB/+ETWkV4aWYAAE1NACoAAAAIAAcBEgAD + AAAAAQABAAABGgAFAAAAAQAAAGIBGwAFAAAAAQAAAGoBKAADAAAAAQACAAABMQACAAAAHgAAAHIBMgAC + AAAAFAAAAJCHaQAEAAAAAQAAAKQAAADEAEgAAAABAAAASAAAAAEAAEFkb2JlIFBob3Rvc2hvcCBDUzYg + KFdpbmRvd3MpADIwMTY6MDE6MjggMDg6MTM6MDAAAAKgAgAEAAAAAQAAAcmgAwAEAAAAAQAAAREAAAAA + AAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABEgEbAAUAAAABAAABGgEoAAMAAAABAAIAAAIBAAQAAAAB + AAABIgICAAQAAAABAAASMAAAAAAAAABIAAAAAQAAAEgAAAAB/9j/7QAMQWRvYmVfQ00AAf/uAA5BZG9i + ZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAGAAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEB + AQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUH + BggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNU + ZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3 + EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPEl + BhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdH + V2d3h5ent8f/2gAMAwEAAhEDEQA/APVUkkklKSSVXO6n0/p1fq52RXjs7b3AE/1W/SckBegUTWpbSS5b + I/xjfV+oxUL8jzYyB/4M6tBr/wAZnRXOh+Pks8TtY6P82xSexl/cl9jEeYwg1xx+169JY/Tvrb9X+ouF + ePltba7iq2a3E/yRZt3f2FsJhiYmiCD4skZCQuJBHhqpJJJBKkkkDHzcPJsvqx7mW2Yr/TyGMcCWPgP2 + Pj6LtrklJ0kkklKSSSSUpJJJJSkkNl9Nj7K67GvfS4Nta0glji1trW2NH0HOreyz3fmIiSn/0PVUklyf + 18+sb+m4jenYj9mZltJc9vNdX0XPb+6+3+br/tp0IGchEblbknGETOWwa/1p+vYxLH4HRy1+Q2W3ZR9z + GH9ypv8AhbW/9t1rz/IyL8m52RlWuuud9Kyw7nH7/wDqWq10jonUesX/AGfp9O/aQLLXaVVz/pbf/Rbf + 0v8AIXpH1d+pfTejbci39bzx/h3j2sP/AHWq/wAH/wAZ/Pfy/wAxXuLFy4oeqf8Azv8A0FzeHPzUrPox + 9P3f/Qnlvq99Qc7P25PVN2FinUVcXvHwd/R2f1/03/B1/wA4uj+sn1Ow8nojaOl0NpyMGbMZjdN8j9LS + 9x+m6/b/ADln+G9NaGX159uRZ0/olQz82slt1hO3Gx3D/uXkNndZr/RMf1Mj/if5xFwMhmJezpmd1D7b + 1S/feW7Q3awR9CmoO+z4zf8ABfaLN9n+msVeWbKZCZNVrGH9jchy+GMDACxLSUj/ABfGtHDUaeBXQfV/ + 65dT6O9tVrnZeDw6l5lzR/wFjv8Az2/9H/xavfX/AOr/ANhzf2rjN/Vc136YDhl513f1Mn6f/H+p/pa1 + ySvDgzYwSLB/5pcyXucvlIBII+yUX23pvUsPqeIzMw7BZTZ34II+kx7fzHtVpeR/VT6w2dD6i1z3H7Dk + ENymdh2bkN/l1fn/APBL1trg4BzTIIkEdwVnZ8JxSreJ+Uury+cZoXtIaSCPJtfTjW3V1OvsrY57KWQH + PLRubUzftbvs+h7lxWP9X/rH02p5te609Swbqs6zpzAy+vKmzqFeRvyMnbkWPyMvqNFb6Psvvto/mmen + 9m6H6zday+j04V2LQMkXZPp5FcEv9BlOTm5T8doczdkMqxP0Vf8AhP5tVMT612XX9WuOOLOm4VdF2HZW + 6tr7qrH5OLflOtyb6MNuN6uFbbRZ61e/E/WP8LWomZ57K6T1CzpTG1dNsAbfkHHxW0WNxbt9NLKrMrpv + 7RGV0uz7Q2yrDyPtHo4uy/Ntqo+1Vq6zp3Wj9ZG25dGS2z7TTbj5NLRcGYwpqbdgu6hbl1eliMt+0syq + LML1suz9cp9a/wDmdir65YWTXjOwsPKzbcsZG2mgVOLfsjq6cn1LTkNxfpXM9K2vIspu/wAFZ+kq9QmR + 9bumY7unucyw4/VGU2Y2RupaCL3NrqH2a2+vPs/nafV9DDu9L1f0n+ESU8vX0nqI6fkMOLlNp9XFdZea + C6699T7nZFfV+nuzrP2pTtdX9tzOn3Y/2223+byMfH/R2HfV/qmZ0zIfdg24+TR0qsdMpZkWAVZldmc+ + t9Q+0v8ATyNjsKxvqW3/AGX+ifabK/V39C762YDMoVWUXsxDZfS3qLmsGObMVlt2Y3+d+1fofsuSz1Ps + vpWPof6T3qtj/XzpGRTbZXTeX1tx7GUN9J9ljMq1uHjvrZTkWbHeu9nq0ZLqMmr8+lJTmdQ6D1HFfm4+ + Dj2/sgZOPkOxwTeLmCi9uX+r2ZNNuTuzfsduXj2Xs+1+nZ7Mr9JVfH/m/nZeJXU+jJfRX07MOMyxxpLM + l1/q9Oqbj/arnV/Z6f6B61tn2allXqejct3E+teNkZVWM7Cy8c2ZDsN77m1BteS1tl/2az077Xvc/Hq9 + au7HZfifpav1j1f0ars+vvRX03XNZc5tVQyKQwV2Puqc+qgW000XWW1e/Jxv0GczEyv0/wDMfz3ppSL6 + u4GRj9ezMrqGFa3NzKaLRnQDXDcfFx8mix1dmxmR9rpsd6fpfQ/SMXUrn7/rVa22imnpmS+92YcLJxS7 + HFrHfZX9SrLHfavsr/Uq9N/9I/m/X/w/p1P6BJT/AP/R9UXmOBVgfWr63ZJ6he9ldjnHGqZp6rKva2n1 + f8F+ib63s/nP0v6SteidXuNHSsy5v0q6LHD4hjivFaLbaH1XUvNd1Ra+uwctc33NcrfKQMhkIPDKuGJ7 + W0udyiJxiQ4o3xSj5PtLf2d0nEGPRW2mqmt9leNS2XubX7rfSpZ+kuf7vdt9+96ybm9R6rS/I6rYei9F + aNzsfeK8ixnP6/lNdtwaXN+lj49nrf6XJ/waL0frFXV+k/tnFxW3dTqqdS+kbWuFg2vdjNvs+hRa/wBO + 36X83/win1LB6bVc/q/Xsr1MahwdjY9xAx6SGxuZQP6Vluf6npWW+pb/AIPGrUABjIg/Nf8Aelxf1f8A + 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 + c2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB + AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA + t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA + AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv + dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 + aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBD + b25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT + pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAe + ACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy + ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFg + AWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJU + Al0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW + A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUr + BToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ + BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk + CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwS + DCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l + D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj + EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaP + FrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs + GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ + JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrP + KwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zES + MUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfX + OBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8h + P2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bw + RzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J + T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4Fgv + WH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi + YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un + a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+ + dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFr + gc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x + jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQ + mfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL + pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl + tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf + wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8 + 0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC9 + 4UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAA + AYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAA + AkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA + A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAA + BDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRl + c2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB + AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA + t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA + AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv + dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 + aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBD + b25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT + pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAe + ACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy + ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFg + AWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJU + Al0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW + A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUr + BToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ + BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk + CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwS + DCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l + D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj + EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaP + FrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs + GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ + JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrP + KwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zES + MUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfX + OBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8h + P2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bw + RzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J + T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4Fgv + WH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi + YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un + a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+ + dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFr + gc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x + jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQ + mfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL + pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl + tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf + wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8 + 0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC9 + 4UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl + 8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///9sAQwAB + AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMD + AwMD/9sAQwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD + AwMDAwMDAwMDAwMD/8IAEQgBEQHJAwERAAIRAQMRAf/EAB8AAQACAgIDAQEAAAAAAAAAAAAJCgcIBgsB + AgUEA//EADMQAAEDBAICAgECAwcFAAAAAAYFBwgBAwQJAAIQIFAKETAxIRQWQHCAEhU5OiITIzga/8QA + HQEBAAICAwEBAAAAAAAAAAAAAAcIBgkBBAUCA//EAE4RAAEEAgECBAMGAgUGCQ0BAAMBAgQFBgcREggA + IRMJMRQVECBBIiMWUFEwMkIzF2FxkbZ4CkCBUiQ0JXYYuHCA8KFyQ7O0tSY2d4h5/8QASBIAAgECAwYC + CAMFBQYFBQAAAQIDEQQhMQUAQVESIgZhMhAgcYFCUhMHUGIjkaFyFBWxgjNDFsHRosJTJHCA8JJj4fGy + JSb/2gAMAwEAAhADEAAAAL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPyGFOfnRjMsB0jza + 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 + + + + 17, 17 + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.vb b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.vb new file mode 100644 index 0000000..f2da9c3 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Diverse Formulare/frmSplash.vb @@ -0,0 +1,15 @@ +Public Class frmSplash + + Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick + Me.Close() + End Sub + + Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click + + End Sub + + Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Me.lblVersion.Text = "Version " & Globals.clsapplication.sVersion.Value + Me.lblVersiondatum.text = Globals.Versionsdatum + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/ISI_Uebersicht/clsISIUebersicht.vb b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/clsISIUebersicht.vb new file mode 100644 index 0000000..03ddee5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/clsISIUebersicht.vb @@ -0,0 +1,412 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Imports DropDownControls + +Public Class clsISIUebersicht + Dim SpaltenTitel As New Utils.Tabellenspalte + Dim daten As New DataTable + + Public Sub Get_Data(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Typ As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_isidata" + sqlcmd.Parameters.Add(New SqlParameter("@typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Typ)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Dim status As New clsStatus + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschritt", ds.Tables(0)) + + + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + +End Class + +Public Class IsiTree +#Region "Deklarationen" + + Dim treedata As New DataSet + + Dim TreeaufbauSuche As Boolean = False + Dim TreeaufbauNr As Integer = 0 + Dim FoundNode As Integer = 0 + Dim Searchstring As String = "" + Public Treesearch As New AdvTree.AdvTree + +#End Region + + + +#Region "Tree" + + Public Sub Load_Treeview(ByRef tree As DevComponents.AdvTree.AdvTree) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata("") + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", + oDS.Tables(0).Columns("id"), + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + + End Sub + + Public Function Load_Treedata(ByVal datatype As String) As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_Isi_Struktur" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = datatype + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + 'MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + + + + Protected Function GetAllNodes(ByVal treestruktur As DevComponents.AdvTree.AdvTree) As List(Of TreeNode) + + Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)() + + ' start recursion for each root node of the treeview + For i As Integer = 0 To treestruktur.Nodes.Count - 1 + GetAllNodes(treestruktur.Nodes(i), allNodes) + Next + + Return allNodes + + End Function + + Protected Sub GetAllNodes(ByVal subRoot As DevComponents.AdvTree.Node, ByVal allNodes As List(Of TreeNode)) + + ' check for null (this can be removed since within th + If (subRoot Is Nothing) Then + Exit Sub + End If + + ' add subroot + Dim r As DataRow + r = treedata_for_search.NewRow + r.Item(0) = subRoot.Tag + Try + r.Item(1) = subRoot.Parent.Tag + Catch + r.Item(1) = 0 + End Try + + r.Item(2) = subRoot.Text + r.Item(3) = subRoot.ImageIndex + treedata_for_search.Rows.Add(r) + 'allNodes.Add(subRoot) + ' add all it's children + For i As Integer = 0 To subRoot.Nodes.Count - 1 + GetAllNodes(subRoot.Nodes(i), allNodes) + Next + + + End Sub + + + ''' + ''' Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As DevComponents.AdvTree.AdvTree) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New DevComponents.AdvTree.Node + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New DevComponents.AdvTree.Node + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree(oChildRow, oChildNode) + Next oChildRow + End Sub + Public Function FindNode(ByVal _nodeCollection As AdvTree.NodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As AdvTree.Node + Dim tmpNode As AdvTree.Node + For Each _child As AdvTree.Node In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + Public Function Init_Search() + FoundNode = 0 + Searchstring = "" + Me.Treesearch.Nodes.Clear() + End Function + + Public Function SearchNode(ByRef tree As AdvTree.AdvTree, ByVal SearchString As String) As AdvTree.Node + 'Return tree.FindNodeByCellText(SearchString) + + Me.Treesearch.Nodes.Clear() + For Each dr As DataRow In treedata_for_search.Rows + 'InStr(UCase(SearchString), UCase(dr.Item("Bezeichnung"))) + If InStr(UCase(dr.Item("Bezeichnung")), UCase(SearchString)) > 0 Or InStr(UCase(dr.Item("ErweiterteSuche")), UCase(SearchString)) > 0 Then + Dim tn As New AdvTree.Node + tn.Text = dr.Item("Bezeichnung") + tn.Tag = dr.Item("id") + Treesearch.Nodes.Add(tn) + End If + Next + Return FindFirst(tree) + End Function + + Public Function FindFirst(ByRef Tree As AdvTree.AdvTree) As AdvTree.Node + Try + If Me.Treesearch.Nodes.Count > 0 Then Me.Treesearch.SelectedNode = Me.Treesearch.Nodes(0) + Return FindNode(Tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch + End Try + End Function + + + + Public Function FindNextNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.NextNode + If Treesearch.SelectedNode Is Nothing Then + Return FindFirst(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + + End Try + End Function + + Public Function FindPrevNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.PrevNode + If Treesearch.SelectedNode Is Nothing Then + Return FindLastNode(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + End Function + + Public Function FindLastNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.Nodes(Treesearch.Nodes.Count - 1) + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + + End Function + + + + +#End Region + +#Region "ComboboxTree" + + Public Sub Load_ComboboxTree(ByRef tree As Object) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata("") + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", + oDS.Tables(0).Columns("id"), + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView1(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + + End Sub + + Private Sub LoadTreeView1(ByVal oDS As DataSet, ByRef oTreeview As Object) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New ComboTreeNode + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree1(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree1(ByVal oDataRow As DataRow, ByRef oNode As ComboTreeNode) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New ComboTreeNode + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree1(oChildRow, oChildNode) + Next oChildRow + End Sub + + Public Function ComboboxTree_FindNode(ByVal _nodeCollection As ComboTreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As ComboTreeNode + Dim tmpNode As ComboTreeNode + For Each _child As ComboTreeNode In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = ComboboxTree_FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + +#End Region +End Class + diff --git a/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb new file mode 100644 index 0000000..5370772 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb @@ -0,0 +1,1968 @@ + +Partial Class frmISI + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmISI)) + Me.txtKurzbeschreibungResultat = New System.Windows.Forms.TextBox() + Me.txtBeschreibungResultat = New System.Windows.Forms.TextBox() + Me.GrpBeschreibung = New System.Windows.Forms.GroupBox() + Me.SplitContainerResultat = New System.Windows.Forms.SplitContainer() + Me.GrpResultatDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteResultat = New ThemenDokumente.Dokumente() + Me.GrpKurzbeschreibung = New System.Windows.Forms.GroupBox() + Me.SplitContainerFindings = New System.Windows.Forms.SplitContainer() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.GrpDokumenteFindings = New System.Windows.Forms.GroupBox() + Me.DokumenteFindings = New ThemenDokumente.Dokumente() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.txtfindingbeschreibung = New System.Windows.Forms.TextBox() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.lblMassnahmeBeschreibung = New System.Windows.Forms.Label() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.txtfindingbezeichnung = New System.Windows.Forms.TextBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.lblMassnahmeBezeichnung = New System.Windows.Forms.Label() + Me.C1Findings = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.DokumenteMassnahmen = New ThemenDokumente.Dokumente() + Me.Panel5 = New System.Windows.Forms.Panel() + Me.SplitContainer3 = New System.Windows.Forms.SplitContainer() + Me.txtMassnahmebeschreibung = New System.Windows.Forms.TextBox() + Me.Panel6 = New System.Windows.Forms.Panel() + Me.Label1 = New System.Windows.Forms.Label() + Me.txtMassnahmeResultat = New System.Windows.Forms.TextBox() + Me.Panel9 = New System.Windows.Forms.Panel() + Me.Label3 = New System.Windows.Forms.Label() + Me.Panel7 = New System.Windows.Forms.Panel() + Me.txtmassnahmebezeichnung = New System.Windows.Forms.TextBox() + Me.Panel8 = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.C1Massnahmen = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.txtDefinitionBemerkung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblDefinitionBemerkung = New System.Windows.Forms.Label() + Me.txtDefinitionBeschreibung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblDefinitionBeschreibung = New System.Windows.Forms.Label() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.txtDefinitionBezeichnung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.Panel10 = New System.Windows.Forms.Panel() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.lblDefinitionBezeichnung = New System.Windows.Forms.Label() + Me.txtStruktur = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblStruktur = New System.Windows.Forms.Label() + Me.C1Vorgaben = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ImageListeMassnahmen = New System.Windows.Forms.ImageList(Me.components) + Me.C1History = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuPruefschritt = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.AnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WeiterleitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AbschliessenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ZurückweisenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AssessmentZuteilenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.GrpDefinitionDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteDefinition = New ThemenDokumente.Dokumente() + Me.GrpDefinition = New System.Windows.Forms.GroupBox() + Me.ImageListFindings = New System.Windows.Forms.ImageList(Me.components) + Me.tsbtnFindingDelete = New System.Windows.Forms.ToolStripButton() + Me.tsbtnPruefschrittbearbeiten = New System.Windows.Forms.ToolStripButton() + Me.tsbtnNeuesFinding = New System.Windows.Forms.ToolStripButton() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.tsbtnAssessmentAnzeigen = New System.Windows.Forms.ToolStripButton() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.Node1 = New DevComponents.AdvTree.Node() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.TreeUebersicht = New DevComponents.AdvTree.AdvTree() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.PnlNotiz = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.GrpNotiz = New System.Windows.Forms.GroupBox() + Me.txtnotiz = New System.Windows.Forms.TextBox() + Me.C1Notiz = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.PnlVerantwortlichkeitTermin = New System.Windows.Forms.Panel() + Me.GrpTermine = New System.Windows.Forms.GroupBox() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.txtZugewiesen = New System.Windows.Forms.TextBox() + Me.lblZugeweisen = New System.Windows.Forms.Label() + Me.txtTermin = New System.Windows.Forms.TextBox() + Me.lblTermin = New System.Windows.Forms.Label() + Me.Verantwortung = New System.Windows.Forms.GroupBox() + Me.txtVerantwortungPlan = New System.Windows.Forms.TextBox() + Me.lblVerantwortungPlan = New System.Windows.Forms.Label() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblInBearbeitung = New System.Windows.Forms.Label() + Me.txtAktuellVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblVerantwortungIsi = New System.Windows.Forms.Label() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.Panel11 = New System.Windows.Forms.Panel() + Me.GrpVorgabe = New System.Windows.Forms.GroupBox() + Me.tsbtnAktualisieren = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.GrpBeschreibung.SuspendLayout() + CType(Me.SplitContainerResultat, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerResultat.Panel1.SuspendLayout() + Me.SplitContainerResultat.Panel2.SuspendLayout() + Me.SplitContainerResultat.SuspendLayout() + Me.GrpResultatDokumente.SuspendLayout() + Me.GrpKurzbeschreibung.SuspendLayout() + CType(Me.SplitContainerFindings, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerFindings.Panel1.SuspendLayout() + Me.SplitContainerFindings.Panel2.SuspendLayout() + Me.SplitContainerFindings.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GrpDokumenteFindings.SuspendLayout() + Me.Panel4.SuspendLayout() + Me.Panel3.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.Panel1.SuspendLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox5.SuspendLayout() + Me.Panel5.SuspendLayout() + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer3.Panel1.SuspendLayout() + Me.SplitContainer3.Panel2.SuspendLayout() + Me.SplitContainer3.SuspendLayout() + Me.Panel6.SuspendLayout() + Me.Panel9.SuspendLayout() + Me.Panel7.SuspendLayout() + Me.Panel8.SuspendLayout() + Me.GroupBox3.SuspendLayout() + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage4.SuspendLayout() + Me.Panel10.SuspendLayout() + CType(Me.C1Vorgaben, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.C1History, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuPruefschritt.SuspendLayout() + Me.TabPage5.SuspendLayout() + Me.GrpDefinitionDokumente.SuspendLayout() + Me.GrpDefinition.SuspendLayout() + Me.ToolStrip2.SuspendLayout() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GrpStatus.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.PnlNotiz.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.GrpNotiz.SuspendLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).BeginInit() + Me.PnlVerantwortlichkeitTermin.SuspendLayout() + Me.GrpTermine.SuspendLayout() + Me.Verantwortung.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.Panel11.SuspendLayout() + Me.GrpVorgabe.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'txtKurzbeschreibungResultat + ' + Me.txtKurzbeschreibungResultat.BackColor = System.Drawing.Color.White + Me.txtKurzbeschreibungResultat.Dock = System.Windows.Forms.DockStyle.Bottom + Me.txtKurzbeschreibungResultat.Location = New System.Drawing.Point(3, 13) + Me.txtKurzbeschreibungResultat.Multiline = True + Me.txtKurzbeschreibungResultat.Name = "txtKurzbeschreibungResultat" + Me.txtKurzbeschreibungResultat.ReadOnly = True + Me.txtKurzbeschreibungResultat.Size = New System.Drawing.Size(366, 100) + Me.txtKurzbeschreibungResultat.TabIndex = 4 + ' + 'txtBeschreibungResultat + ' + Me.txtBeschreibungResultat.BackColor = System.Drawing.Color.White + Me.txtBeschreibungResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtBeschreibungResultat.Location = New System.Drawing.Point(3, 16) + Me.txtBeschreibungResultat.Multiline = True + Me.txtBeschreibungResultat.Name = "txtBeschreibungResultat" + Me.txtBeschreibungResultat.ReadOnly = True + Me.txtBeschreibungResultat.Size = New System.Drawing.Size(366, 127) + Me.txtBeschreibungResultat.TabIndex = 3 + ' + 'GrpBeschreibung + ' + Me.GrpBeschreibung.Controls.Add(Me.txtBeschreibungResultat) + Me.GrpBeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpBeschreibung.Location = New System.Drawing.Point(0, 116) + Me.GrpBeschreibung.Name = "GrpBeschreibung" + Me.GrpBeschreibung.Size = New System.Drawing.Size(372, 146) + Me.GrpBeschreibung.TabIndex = 7 + Me.GrpBeschreibung.TabStop = False + Me.GrpBeschreibung.Text = "Beschreibung" + ' + 'SplitContainerResultat + ' + Me.SplitContainerResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerResultat.Location = New System.Drawing.Point(0, 0) + Me.SplitContainerResultat.Name = "SplitContainerResultat" + ' + 'SplitContainerResultat.Panel1 + ' + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpResultatDokumente) + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpBeschreibung) + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpKurzbeschreibung) + ' + 'SplitContainerResultat.Panel2 + ' + Me.SplitContainerResultat.Panel2.Controls.Add(Me.SplitContainerFindings) + Me.SplitContainerResultat.Size = New System.Drawing.Size(1124, 361) + Me.SplitContainerResultat.SplitterDistance = 372 + Me.SplitContainerResultat.TabIndex = 2 + ' + 'GrpResultatDokumente + ' + Me.GrpResultatDokumente.Controls.Add(Me.DokumenteResultat) + Me.GrpResultatDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpResultatDokumente.Location = New System.Drawing.Point(0, 262) + Me.GrpResultatDokumente.Name = "GrpResultatDokumente" + Me.GrpResultatDokumente.Size = New System.Drawing.Size(372, 99) + Me.GrpResultatDokumente.TabIndex = 18 + Me.GrpResultatDokumente.TabStop = False + Me.GrpResultatDokumente.Text = "Dokumente" + ' + 'DokumenteResultat + ' + Me.DokumenteResultat.ConnectionString = Nothing + Me.DokumenteResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteResultat.Doktype = 0 + Me.DokumenteResultat.Location = New System.Drawing.Point(3, 16) + Me.DokumenteResultat.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteResultat.Mitarbeiternr = 0 + Me.DokumenteResultat.Name = "DokumenteResultat" + Me.DokumenteResultat.Pruefschrittnr = 0 + Me.DokumenteResultat.Size = New System.Drawing.Size(366, 80) + Me.DokumenteResultat.TabIndex = 34 + Me.DokumenteResultat.TempFilePath = Nothing + Me.DokumenteResultat.ThemaNr = 0 + ' + 'GrpKurzbeschreibung + ' + Me.GrpKurzbeschreibung.Controls.Add(Me.txtKurzbeschreibungResultat) + Me.GrpKurzbeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpKurzbeschreibung.Location = New System.Drawing.Point(0, 0) + Me.GrpKurzbeschreibung.Name = "GrpKurzbeschreibung" + Me.GrpKurzbeschreibung.Size = New System.Drawing.Size(372, 116) + Me.GrpKurzbeschreibung.TabIndex = 6 + Me.GrpKurzbeschreibung.TabStop = False + Me.GrpKurzbeschreibung.Text = "Kurzbeschreibung" + ' + 'SplitContainerFindings + ' + Me.SplitContainerFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerFindings.Location = New System.Drawing.Point(0, 0) + Me.SplitContainerFindings.Name = "SplitContainerFindings" + ' + 'SplitContainerFindings.Panel1 + ' + Me.SplitContainerFindings.Panel1.Controls.Add(Me.GroupBox2) + ' + 'SplitContainerFindings.Panel2 + ' + Me.SplitContainerFindings.Panel2.Controls.Add(Me.GroupBox5) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel5) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel7) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel8) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.GroupBox3) + Me.SplitContainerFindings.Size = New System.Drawing.Size(748, 361) + Me.SplitContainerFindings.SplitterDistance = 370 + Me.SplitContainerFindings.TabIndex = 0 + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.GrpDokumenteFindings) + Me.GroupBox2.Controls.Add(Me.Panel4) + Me.GroupBox2.Controls.Add(Me.Panel3) + Me.GroupBox2.Controls.Add(Me.Panel2) + Me.GroupBox2.Controls.Add(Me.Panel1) + Me.GroupBox2.Controls.Add(Me.C1Findings) + Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox2.Location = New System.Drawing.Point(0, 0) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(370, 361) + Me.GroupBox2.TabIndex = 0 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "FestStellung" + ' + 'GrpDokumenteFindings + ' + Me.GrpDokumenteFindings.Controls.Add(Me.DokumenteFindings) + Me.GrpDokumenteFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumenteFindings.Location = New System.Drawing.Point(3, 262) + Me.GrpDokumenteFindings.Name = "GrpDokumenteFindings" + Me.GrpDokumenteFindings.Size = New System.Drawing.Size(364, 96) + Me.GrpDokumenteFindings.TabIndex = 17 + Me.GrpDokumenteFindings.TabStop = False + Me.GrpDokumenteFindings.Text = "Dokumente" + ' + 'DokumenteFindings + ' + Me.DokumenteFindings.ConnectionString = Nothing + Me.DokumenteFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteFindings.Doktype = 0 + Me.DokumenteFindings.Location = New System.Drawing.Point(3, 16) + Me.DokumenteFindings.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteFindings.Mitarbeiternr = 0 + Me.DokumenteFindings.Name = "DokumenteFindings" + Me.DokumenteFindings.Pruefschrittnr = 0 + Me.DokumenteFindings.Size = New System.Drawing.Size(358, 77) + Me.DokumenteFindings.TabIndex = 34 + Me.DokumenteFindings.TempFilePath = Nothing + Me.DokumenteFindings.ThemaNr = 0 + ' + 'Panel4 + ' + Me.Panel4.Controls.Add(Me.txtfindingbeschreibung) + Me.Panel4.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel4.Location = New System.Drawing.Point(3, 193) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(364, 69) + Me.Panel4.TabIndex = 16 + ' + 'txtfindingbeschreibung + ' + Me.txtfindingbeschreibung.BackColor = System.Drawing.Color.White + Me.txtfindingbeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtfindingbeschreibung.Location = New System.Drawing.Point(0, 0) + Me.txtfindingbeschreibung.Multiline = True + Me.txtfindingbeschreibung.Name = "txtfindingbeschreibung" + Me.txtfindingbeschreibung.ReadOnly = True + Me.txtfindingbeschreibung.Size = New System.Drawing.Size(364, 69) + Me.txtfindingbeschreibung.TabIndex = 19 + ' + 'Panel3 + ' + Me.Panel3.Controls.Add(Me.lblMassnahmeBeschreibung) + Me.Panel3.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel3.Location = New System.Drawing.Point(3, 172) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(364, 21) + Me.Panel3.TabIndex = 15 + ' + 'lblMassnahmeBeschreibung + ' + Me.lblMassnahmeBeschreibung.AutoSize = True + Me.lblMassnahmeBeschreibung.Location = New System.Drawing.Point(3, 3) + Me.lblMassnahmeBeschreibung.Name = "lblMassnahmeBeschreibung" + Me.lblMassnahmeBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblMassnahmeBeschreibung.TabIndex = 17 + Me.lblMassnahmeBeschreibung.Text = "Beschreibung" + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.txtfindingbezeichnung) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel2.Location = New System.Drawing.Point(3, 149) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(364, 23) + Me.Panel2.TabIndex = 14 + ' + 'txtfindingbezeichnung + ' + Me.txtfindingbezeichnung.BackColor = System.Drawing.Color.White + Me.txtfindingbezeichnung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtfindingbezeichnung.Location = New System.Drawing.Point(0, 0) + Me.txtfindingbezeichnung.Name = "txtfindingbezeichnung" + Me.txtfindingbezeichnung.ReadOnly = True + Me.txtfindingbezeichnung.Size = New System.Drawing.Size(364, 20) + Me.txtfindingbezeichnung.TabIndex = 18 + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.lblMassnahmeBezeichnung) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(3, 126) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(364, 23) + Me.Panel1.TabIndex = 13 + ' + 'lblMassnahmeBezeichnung + ' + Me.lblMassnahmeBezeichnung.AutoSize = True + Me.lblMassnahmeBezeichnung.Location = New System.Drawing.Point(3, 3) + Me.lblMassnahmeBezeichnung.Name = "lblMassnahmeBezeichnung" + Me.lblMassnahmeBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblMassnahmeBezeichnung.TabIndex = 16 + Me.lblMassnahmeBezeichnung.Text = "Bezeichnung" + ' + 'C1Findings + ' + Me.C1Findings.AllowUpdate = False + Me.C1Findings.AlternatingRows = True + Me.C1Findings.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1Findings.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Findings.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Findings.FilterBar = True + Me.C1Findings.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Findings.Images.Add(CType(resources.GetObject("C1Findings.Images"), System.Drawing.Image)) + Me.C1Findings.Location = New System.Drawing.Point(3, 16) + Me.C1Findings.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Findings.Name = "C1Findings" + Me.C1Findings.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Findings.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Findings.PreviewInfo.ZoomFactor = 75.0R + Me.C1Findings.PrintInfo.PageSettings = CType(resources.GetObject("C1Findings.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Findings.Size = New System.Drawing.Size(364, 110) + Me.C1Findings.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Findings.TabIndex = 12 + Me.C1Findings.Text = "C1TrueDBGrid1" + Me.C1Findings.UseCompatibleTextRendering = True + Me.C1Findings.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Findings.PropBag = resources.GetString("C1Findings.PropBag") + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.DokumenteMassnahmen) + Me.GroupBox5.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox5.Location = New System.Drawing.Point(0, 262) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(374, 99) + Me.GroupBox5.TabIndex = 21 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "Dokumente" + ' + 'DokumenteMassnahmen + ' + Me.DokumenteMassnahmen.ConnectionString = Nothing + Me.DokumenteMassnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteMassnahmen.Doktype = 0 + Me.DokumenteMassnahmen.Location = New System.Drawing.Point(3, 16) + Me.DokumenteMassnahmen.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteMassnahmen.Mitarbeiternr = 0 + Me.DokumenteMassnahmen.Name = "DokumenteMassnahmen" + Me.DokumenteMassnahmen.Pruefschrittnr = 0 + Me.DokumenteMassnahmen.Size = New System.Drawing.Size(368, 80) + Me.DokumenteMassnahmen.TabIndex = 34 + Me.DokumenteMassnahmen.TempFilePath = Nothing + Me.DokumenteMassnahmen.ThemaNr = 0 + ' + 'Panel5 + ' + Me.Panel5.Controls.Add(Me.SplitContainer3) + Me.Panel5.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel5.Location = New System.Drawing.Point(0, 172) + Me.Panel5.Name = "Panel5" + Me.Panel5.Size = New System.Drawing.Size(374, 90) + Me.Panel5.TabIndex = 20 + ' + 'SplitContainer3 + ' + Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer3.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer3.Name = "SplitContainer3" + ' + 'SplitContainer3.Panel1 + ' + Me.SplitContainer3.Panel1.Controls.Add(Me.txtMassnahmebeschreibung) + Me.SplitContainer3.Panel1.Controls.Add(Me.Panel6) + ' + 'SplitContainer3.Panel2 + ' + Me.SplitContainer3.Panel2.Controls.Add(Me.txtMassnahmeResultat) + Me.SplitContainer3.Panel2.Controls.Add(Me.Panel9) + Me.SplitContainer3.Size = New System.Drawing.Size(374, 90) + Me.SplitContainer3.SplitterDistance = 185 + Me.SplitContainer3.TabIndex = 0 + ' + 'txtMassnahmebeschreibung + ' + Me.txtMassnahmebeschreibung.BackColor = System.Drawing.Color.White + Me.txtMassnahmebeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtMassnahmebeschreibung.Location = New System.Drawing.Point(0, 21) + Me.txtMassnahmebeschreibung.Multiline = True + Me.txtMassnahmebeschreibung.Name = "txtMassnahmebeschreibung" + Me.txtMassnahmebeschreibung.ReadOnly = True + Me.txtMassnahmebeschreibung.Size = New System.Drawing.Size(185, 69) + Me.txtMassnahmebeschreibung.TabIndex = 19 + ' + 'Panel6 + ' + Me.Panel6.Controls.Add(Me.Label1) + Me.Panel6.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel6.Location = New System.Drawing.Point(0, 0) + Me.Panel6.Name = "Panel6" + Me.Panel6.Size = New System.Drawing.Size(185, 21) + Me.Panel6.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(3, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(72, 13) + Me.Label1.TabIndex = 17 + Me.Label1.Text = "Beschreibung" + ' + 'txtMassnahmeResultat + ' + Me.txtMassnahmeResultat.BackColor = System.Drawing.Color.White + Me.txtMassnahmeResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtMassnahmeResultat.Location = New System.Drawing.Point(0, 21) + Me.txtMassnahmeResultat.Multiline = True + Me.txtMassnahmeResultat.Name = "txtMassnahmeResultat" + Me.txtMassnahmeResultat.ReadOnly = True + Me.txtMassnahmeResultat.Size = New System.Drawing.Size(185, 69) + Me.txtMassnahmeResultat.TabIndex = 20 + ' + 'Panel9 + ' + Me.Panel9.Controls.Add(Me.Label3) + Me.Panel9.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel9.Location = New System.Drawing.Point(0, 0) + Me.Panel9.Name = "Panel9" + Me.Panel9.Size = New System.Drawing.Size(185, 21) + Me.Panel9.TabIndex = 0 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(3, 3) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(46, 13) + Me.Label3.TabIndex = 18 + Me.Label3.Text = "Resultat" + ' + 'Panel7 + ' + Me.Panel7.Controls.Add(Me.txtmassnahmebezeichnung) + Me.Panel7.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel7.Location = New System.Drawing.Point(0, 149) + Me.Panel7.Name = "Panel7" + Me.Panel7.Size = New System.Drawing.Size(374, 23) + Me.Panel7.TabIndex = 18 + ' + 'txtmassnahmebezeichnung + ' + Me.txtmassnahmebezeichnung.BackColor = System.Drawing.Color.White + Me.txtmassnahmebezeichnung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtmassnahmebezeichnung.Location = New System.Drawing.Point(0, 0) + Me.txtmassnahmebezeichnung.Name = "txtmassnahmebezeichnung" + Me.txtmassnahmebezeichnung.ReadOnly = True + Me.txtmassnahmebezeichnung.Size = New System.Drawing.Size(374, 20) + Me.txtmassnahmebezeichnung.TabIndex = 18 + ' + 'Panel8 + ' + Me.Panel8.Controls.Add(Me.Label2) + Me.Panel8.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel8.Location = New System.Drawing.Point(0, 129) + Me.Panel8.Name = "Panel8" + Me.Panel8.Size = New System.Drawing.Size(374, 20) + Me.Panel8.TabIndex = 17 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(3, 3) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(69, 13) + Me.Label2.TabIndex = 16 + Me.Label2.Text = "Bezeichnung" + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.C1Massnahmen) + Me.GroupBox3.Dock = System.Windows.Forms.DockStyle.Top + Me.GroupBox3.Location = New System.Drawing.Point(0, 0) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(374, 129) + Me.GroupBox3.TabIndex = 0 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Massnahmen" + ' + 'C1Massnahmen + ' + Me.C1Massnahmen.AllowUpdate = False + Me.C1Massnahmen.AlternatingRows = True + Me.C1Massnahmen.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1Massnahmen.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Massnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Massnahmen.FilterBar = True + Me.C1Massnahmen.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Massnahmen.Images.Add(CType(resources.GetObject("C1Massnahmen.Images"), System.Drawing.Image)) + Me.C1Massnahmen.Location = New System.Drawing.Point(3, 16) + Me.C1Massnahmen.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Massnahmen.Name = "C1Massnahmen" + Me.C1Massnahmen.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Massnahmen.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Massnahmen.PreviewInfo.ZoomFactor = 75.0R + Me.C1Massnahmen.PrintInfo.PageSettings = CType(resources.GetObject("C1Massnahmen.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Massnahmen.Size = New System.Drawing.Size(368, 110) + Me.C1Massnahmen.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Massnahmen.TabIndex = 12 + Me.C1Massnahmen.Text = "C1TrueDBGrid1" + Me.C1Massnahmen.UseCompatibleTextRendering = True + Me.C1Massnahmen.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Massnahmen.PropBag = resources.GetString("C1Massnahmen.PropBag") + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.SplitContainerResultat) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Size = New System.Drawing.Size(1124, 361) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Resultat / Massnahmen" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.BackColor = System.Drawing.Color.White + Me.txtMassnahmen.Location = New System.Drawing.Point(92, 236) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.ReadOnly = True + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 61) + Me.txtMassnahmen.TabIndex = 57 + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.BackColor = System.Drawing.Color.White + Me.txtHilfsmittel.Location = New System.Drawing.Point(92, 166) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.ReadOnly = True + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 64) + Me.txtHilfsmittel.TabIndex = 67 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(8, 93) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 59 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(7, 166) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 68 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.BackColor = System.Drawing.Color.White + Me.txtPruefgegenstand.Location = New System.Drawing.Point(92, 93) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 67) + Me.txtPruefgegenstand.TabIndex = 56 + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.BackColor = System.Drawing.Color.White + Me.txtBezeichnung.Location = New System.Drawing.Point(93, 9) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 54 + ' + 'txtDefinitionBemerkung + ' + ' + ' + ' + Me.txtDefinitionBemerkung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBemerkung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBemerkung.Location = New System.Drawing.Point(83, 143) + Me.txtDefinitionBemerkung.Multiline = True + Me.txtDefinitionBemerkung.Name = "txtDefinitionBemerkung" + Me.txtDefinitionBemerkung.PreventEnterBeep = True + Me.txtDefinitionBemerkung.ReadOnly = True + Me.txtDefinitionBemerkung.Size = New System.Drawing.Size(305, 70) + Me.txtDefinitionBemerkung.TabIndex = 22 + ' + 'lblDefinitionBemerkung + ' + Me.lblDefinitionBemerkung.AutoSize = True + Me.lblDefinitionBemerkung.Location = New System.Drawing.Point(8, 145) + Me.lblDefinitionBemerkung.Name = "lblDefinitionBemerkung" + Me.lblDefinitionBemerkung.Size = New System.Drawing.Size(73, 13) + Me.lblDefinitionBemerkung.TabIndex = 21 + Me.lblDefinitionBemerkung.Text = "Bemerkungen" + ' + 'txtDefinitionBeschreibung + ' + ' + ' + ' + Me.txtDefinitionBeschreibung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBeschreibung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBeschreibung.Location = New System.Drawing.Point(83, 67) + Me.txtDefinitionBeschreibung.Multiline = True + Me.txtDefinitionBeschreibung.Name = "txtDefinitionBeschreibung" + Me.txtDefinitionBeschreibung.PreventEnterBeep = True + Me.txtDefinitionBeschreibung.ReadOnly = True + Me.txtDefinitionBeschreibung.Size = New System.Drawing.Size(305, 70) + Me.txtDefinitionBeschreibung.TabIndex = 20 + ' + 'lblDefinitionBeschreibung + ' + Me.lblDefinitionBeschreibung.AutoSize = True + Me.lblDefinitionBeschreibung.Location = New System.Drawing.Point(8, 69) + Me.lblDefinitionBeschreibung.Name = "lblDefinitionBeschreibung" + Me.lblDefinitionBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblDefinitionBeschreibung.TabIndex = 19 + Me.lblDefinitionBeschreibung.Text = "Beschreibung" + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(6, 237) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 60 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(5, 11) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 66 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(7, 263) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 61 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(5, 44) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 65 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtEreignisse + ' + Me.txtEreignisse.BackColor = System.Drawing.Color.White + Me.txtEreignisse.Location = New System.Drawing.Point(92, 299) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.ReadOnly = True + Me.txtEreignisse.Size = New System.Drawing.Size(427, 67) + Me.txtEreignisse.TabIndex = 58 + ' + 'txtDefinitionBezeichnung + ' + ' + ' + ' + Me.txtDefinitionBezeichnung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBezeichnung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBezeichnung.Location = New System.Drawing.Point(83, 40) + Me.txtDefinitionBezeichnung.Name = "txtDefinitionBezeichnung" + Me.txtDefinitionBezeichnung.PreventEnterBeep = True + Me.txtDefinitionBezeichnung.ReadOnly = True + Me.txtDefinitionBezeichnung.Size = New System.Drawing.Size(305, 20) + Me.txtDefinitionBezeichnung.TabIndex = 18 + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.BackColor = System.Drawing.Color.White + Me.txtBeschreibung.Location = New System.Drawing.Point(93, 31) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 56) + Me.txtBeschreibung.TabIndex = 55 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(5, 31) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 64 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(5, 299) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(59, 13) + Me.lblEreignisse2.TabIndex = 63 + Me.lblEreignisse2.Text = "Reprotinng" + ' + 'Panel10 + ' + Me.Panel10.Controls.Add(Me.txtMassnahmen) + Me.Panel10.Controls.Add(Me.txtHilfsmittel) + Me.Panel10.Controls.Add(Me.lblPruefgegenstand) + Me.Panel10.Controls.Add(Me.lblHilfsmittel) + Me.Panel10.Controls.Add(Me.txtPruefgegenstand) + Me.Panel10.Controls.Add(Me.txtBezeichnung) + Me.Panel10.Controls.Add(Me.lblMassnahmen1) + Me.Panel10.Controls.Add(Me.lblBezeichnung) + Me.Panel10.Controls.Add(Me.lblEreignisse) + Me.Panel10.Controls.Add(Me.lblKontrollaktivität) + Me.Panel10.Controls.Add(Me.txtEreignisse) + Me.Panel10.Controls.Add(Me.txtBeschreibung) + Me.Panel10.Controls.Add(Me.lblMassnahmen2) + Me.Panel10.Controls.Add(Me.lblBeschreibung) + Me.Panel10.Controls.Add(Me.lblEreignisse2) + Me.Panel10.Dock = System.Windows.Forms.DockStyle.Left + Me.Panel10.Location = New System.Drawing.Point(2, 2) + Me.Panel10.Name = "Panel10" + Me.Panel10.Size = New System.Drawing.Size(540, 357) + Me.Panel10.TabIndex = 69 + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(7, 250) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 62 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'lblDefinitionBezeichnung + ' + Me.lblDefinitionBezeichnung.AutoSize = True + Me.lblDefinitionBezeichnung.Location = New System.Drawing.Point(8, 42) + Me.lblDefinitionBezeichnung.Name = "lblDefinitionBezeichnung" + Me.lblDefinitionBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblDefinitionBezeichnung.TabIndex = 17 + Me.lblDefinitionBezeichnung.Text = "Bezeichnung" + ' + 'txtStruktur + ' + ' + ' + ' + Me.txtStruktur.Border.Class = "TextBoxBorder" + Me.txtStruktur.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtStruktur.Location = New System.Drawing.Point(83, 14) + Me.txtStruktur.Name = "txtStruktur" + Me.txtStruktur.PreventEnterBeep = True + Me.txtStruktur.ReadOnly = True + Me.txtStruktur.Size = New System.Drawing.Size(305, 20) + Me.txtStruktur.TabIndex = 16 + ' + 'lblStruktur + ' + Me.lblStruktur.AutoSize = True + Me.lblStruktur.Location = New System.Drawing.Point(8, 16) + Me.lblStruktur.Name = "lblStruktur" + Me.lblStruktur.Size = New System.Drawing.Size(44, 13) + Me.lblStruktur.TabIndex = 15 + Me.lblStruktur.Text = "Struktur" + ' + 'C1Vorgaben + ' + Me.C1Vorgaben.AllowUpdate = False + Me.C1Vorgaben.AlternatingRows = True + Me.C1Vorgaben.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1Vorgaben.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Vorgaben.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Vorgaben.FilterBar = True + Me.C1Vorgaben.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Vorgaben.Images.Add(CType(resources.GetObject("C1Vorgaben.Images"), System.Drawing.Image)) + Me.C1Vorgaben.Location = New System.Drawing.Point(3, 16) + Me.C1Vorgaben.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Vorgaben.Name = "C1Vorgaben" + Me.C1Vorgaben.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Vorgaben.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Vorgaben.PreviewInfo.ZoomFactor = 75.0R + Me.C1Vorgaben.PrintInfo.PageSettings = CType(resources.GetObject("C1Vorgaben.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Vorgaben.Size = New System.Drawing.Size(574, 120) + Me.C1Vorgaben.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Vorgaben.TabIndex = 11 + Me.C1Vorgaben.Text = "C1TrueDBGrid1" + Me.C1Vorgaben.UseCompatibleTextRendering = True + Me.C1Vorgaben.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Vorgaben.PropBag = resources.GetString("C1Vorgaben.PropBag") + ' + 'ImageListeMassnahmen + ' + Me.ImageListeMassnahmen.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit + Me.ImageListeMassnahmen.ImageSize = New System.Drawing.Size(16, 16) + Me.ImageListeMassnahmen.TransparentColor = System.Drawing.Color.Transparent + ' + 'C1History + ' + Me.C1History.AllowUpdate = False + Me.C1History.AlternatingRows = True + Me.C1History.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1History.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1History.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1History.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1History.FilterBar = True + Me.C1History.GroupByCaption = "Drag a column header here to group by that column" + Me.C1History.Images.Add(CType(resources.GetObject("C1History.Images"), System.Drawing.Image)) + Me.C1History.Location = New System.Drawing.Point(0, 0) + Me.C1History.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1History.Name = "C1History" + Me.C1History.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1History.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1History.PreviewInfo.ZoomFactor = 75.0R + Me.C1History.PrintInfo.PageSettings = CType(resources.GetObject("C1History.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1History.Size = New System.Drawing.Size(1124, 361) + Me.C1History.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1History.TabIndex = 11 + Me.C1History.Text = "C1TrueDBGrid1" + Me.C1History.UseCompatibleTextRendering = True + Me.C1History.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1History.PropBag = resources.GetString("C1History.PropBag") + ' + 'ctxMenuPruefschritt + ' + Me.ctxMenuPruefschritt.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenToolStripMenuItem, Me.BearbeitenToolStripMenuItem, Me.WeiterleitenToolStripMenuItem, Me.AbschliessenToolStripMenuItem, Me.ZurückweisenToolStripMenuItem, Me.AssessmentZuteilenToolStripMenuItem}) + Me.ctxMenuPruefschritt.Name = "ctxMenuPruefschritt" + Me.ctxMenuPruefschritt.Size = New System.Drawing.Size(181, 136) + ' + 'AnzeigenToolStripMenuItem + ' + Me.AnzeigenToolStripMenuItem.Name = "AnzeigenToolStripMenuItem" + Me.AnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AnzeigenToolStripMenuItem.Text = "Anzeigen" + ' + 'BearbeitenToolStripMenuItem + ' + Me.BearbeitenToolStripMenuItem.Name = "BearbeitenToolStripMenuItem" + Me.BearbeitenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.BearbeitenToolStripMenuItem.Text = "Bearbeiten" + ' + 'WeiterleitenToolStripMenuItem + ' + Me.WeiterleitenToolStripMenuItem.Name = "WeiterleitenToolStripMenuItem" + Me.WeiterleitenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.WeiterleitenToolStripMenuItem.Text = "Weiterleiten" + ' + 'AbschliessenToolStripMenuItem + ' + Me.AbschliessenToolStripMenuItem.Name = "AbschliessenToolStripMenuItem" + Me.AbschliessenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AbschliessenToolStripMenuItem.Text = "Abschliessen" + ' + 'ZurückweisenToolStripMenuItem + ' + Me.ZurückweisenToolStripMenuItem.Name = "ZurückweisenToolStripMenuItem" + Me.ZurückweisenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ZurückweisenToolStripMenuItem.Text = "Zurückweisen" + ' + 'AssessmentZuteilenToolStripMenuItem + ' + Me.AssessmentZuteilenToolStripMenuItem.Name = "AssessmentZuteilenToolStripMenuItem" + Me.AssessmentZuteilenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AssessmentZuteilenToolStripMenuItem.Text = "Assessment zuteilen" + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.C1History) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Size = New System.Drawing.Size(1124, 361) + Me.TabPage5.TabIndex = 4 + Me.TabPage5.Text = "History" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'GrpDefinitionDokumente + ' + Me.GrpDefinitionDokumente.Controls.Add(Me.DokumenteDefinition) + Me.GrpDefinitionDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDefinitionDokumente.Location = New System.Drawing.Point(394, 139) + Me.GrpDefinitionDokumente.Name = "GrpDefinitionDokumente" + Me.GrpDefinitionDokumente.Size = New System.Drawing.Size(186, 218) + Me.GrpDefinitionDokumente.TabIndex = 14 + Me.GrpDefinitionDokumente.TabStop = False + Me.GrpDefinitionDokumente.Text = "Dokumente" + ' + 'DokumenteDefinition + ' + Me.DokumenteDefinition.ConnectionString = Nothing + Me.DokumenteDefinition.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteDefinition.Doktype = 0 + Me.DokumenteDefinition.Location = New System.Drawing.Point(3, 16) + Me.DokumenteDefinition.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteDefinition.Mitarbeiternr = 0 + Me.DokumenteDefinition.Name = "DokumenteDefinition" + Me.DokumenteDefinition.Pruefschrittnr = 0 + Me.DokumenteDefinition.Size = New System.Drawing.Size(180, 199) + Me.DokumenteDefinition.TabIndex = 35 + Me.DokumenteDefinition.TempFilePath = Nothing + Me.DokumenteDefinition.ThemaNr = 0 + ' + 'GrpDefinition + ' + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBemerkung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBemerkung) + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBeschreibung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBeschreibung) + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBezeichnung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBezeichnung) + Me.GrpDefinition.Controls.Add(Me.txtStruktur) + Me.GrpDefinition.Controls.Add(Me.lblStruktur) + Me.GrpDefinition.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpDefinition.Location = New System.Drawing.Point(0, 139) + Me.GrpDefinition.Name = "GrpDefinition" + Me.GrpDefinition.Size = New System.Drawing.Size(394, 218) + Me.GrpDefinition.TabIndex = 13 + Me.GrpDefinition.TabStop = False + Me.GrpDefinition.Text = "Definition" + ' + 'ImageListFindings + ' + Me.ImageListFindings.ImageStream = CType(resources.GetObject("ImageListFindings.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageListFindings.TransparentColor = System.Drawing.Color.Transparent + Me.ImageListFindings.Images.SetKeyName(0, "Keine.png") + Me.ImageListFindings.Images.SetKeyName(1, "Tief.png") + Me.ImageListFindings.Images.SetKeyName(2, "Mittel.png") + Me.ImageListFindings.Images.SetKeyName(3, "Hoch.png") + ' + 'tsbtnFindingDelete + ' + Me.tsbtnFindingDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingDelete.Image = CType(resources.GetObject("tsbtnFindingDelete.Image"), System.Drawing.Image) + Me.tsbtnFindingDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingDelete.Name = "tsbtnFindingDelete" + Me.tsbtnFindingDelete.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingDelete.Text = "Finding löschen" + Me.tsbtnFindingDelete.Visible = False + ' + 'tsbtnPruefschrittbearbeiten + ' + Me.tsbtnPruefschrittbearbeiten.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnPruefschrittbearbeiten.Image = CType(resources.GetObject("tsbtnPruefschrittbearbeiten.Image"), System.Drawing.Image) + Me.tsbtnPruefschrittbearbeiten.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnPruefschrittbearbeiten.Name = "tsbtnPruefschrittbearbeiten" + Me.tsbtnPruefschrittbearbeiten.Size = New System.Drawing.Size(23, 22) + Me.tsbtnPruefschrittbearbeiten.Text = "Assessment bearbeiten" + Me.tsbtnPruefschrittbearbeiten.Visible = False + ' + 'tsbtnNeuesFinding + ' + Me.tsbtnNeuesFinding.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnNeuesFinding.Image = CType(resources.GetObject("tsbtnNeuesFinding.Image"), System.Drawing.Image) + Me.tsbtnNeuesFinding.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnNeuesFinding.Name = "tsbtnNeuesFinding" + Me.tsbtnNeuesFinding.Size = New System.Drawing.Size(23, 22) + Me.tsbtnNeuesFinding.Text = "Neues Finding erfassen" + Me.tsbtnNeuesFinding.Visible = False + ' + 'ToolStrip2 + ' + Me.ToolStrip2.AllowDrop = True + Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnNeuesFinding, Me.tsbtnPruefschrittbearbeiten, Me.tsbtnFindingDelete, Me.ToolStripButton3, Me.tsbtnAssessmentAnzeigen}) + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(896, 25) + Me.ToolStrip2.TabIndex = 11 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "Dokument anzeigen" + Me.ToolStripButton3.Visible = False + ' + 'tsbtnAssessmentAnzeigen + ' + Me.tsbtnAssessmentAnzeigen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnAssessmentAnzeigen.Image = CType(resources.GetObject("tsbtnAssessmentAnzeigen.Image"), System.Drawing.Image) + Me.tsbtnAssessmentAnzeigen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnAssessmentAnzeigen.Name = "tsbtnAssessmentAnzeigen" + Me.tsbtnAssessmentAnzeigen.Size = New System.Drawing.Size(23, 22) + Me.tsbtnAssessmentAnzeigen.Text = "Assessment anzeigen" + Me.tsbtnAssessmentAnzeigen.Visible = False + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "New-icon.png") + Me.ImageList1.Images.SetKeyName(1, "progress.png") + Me.ImageList1.Images.SetKeyName(2, "VeriISI.png") + Me.ImageList1.Images.SetKeyName(3, "Massnahmen.png") + Me.ImageList1.Images.SetKeyName(4, "ok.png") + Me.ImageList1.Images.SetKeyName(5, "Status-offline_16.png") + ' + 'TreeUebersicht + ' + Me.TreeUebersicht.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeUebersicht.AllowExternalDrop = False + Me.TreeUebersicht.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeUebersicht.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeUebersicht.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeUebersicht.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeUebersicht.DragDropEnabled = False + Me.TreeUebersicht.DragDropNodeCopyEnabled = False + Me.TreeUebersicht.ImageList = Me.ImageList1 + Me.TreeUebersicht.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeUebersicht.Location = New System.Drawing.Point(2, 16) + Me.TreeUebersicht.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.TreeUebersicht.Name = "TreeUebersicht" + Me.TreeUebersicht.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeUebersicht.NodesConnector = Me.NodeConnector1 + Me.TreeUebersicht.NodeStyle = Me.ElementStyle1 + Me.TreeUebersicht.PathSeparator = ";" + Me.TreeUebersicht.Size = New System.Drawing.Size(228, 225) + Me.TreeUebersicht.Styles.Add(Me.ElementStyle1) + Me.TreeUebersicht.TabIndex = 0 + Me.TreeUebersicht.Text = "AdvTree1" + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.TreeUebersicht) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpStatus.Location = New System.Drawing.Point(0, 0) + Me.GrpStatus.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Size = New System.Drawing.Size(232, 244) + Me.GrpStatus.TabIndex = 0 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Status" + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.GrpStatus) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.C1Daten) + Me.SplitContainer2.Panel2.Controls.Add(Me.ToolStrip2) + Me.SplitContainer2.Size = New System.Drawing.Size(1132, 244) + Me.SplitContainer2.SplitterDistance = 232 + Me.SplitContainer2.TabIndex = 0 + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(896, 219) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 10 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.UseCompatibleTextRendering = True + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.TabControl1) + Me.SplitContainer1.Size = New System.Drawing.Size(1132, 635) + Me.SplitContainer1.SplitterDistance = 244 + Me.SplitContainer1.TabIndex = 14 + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(0, 0) + Me.TabControl1.Margin = New System.Windows.Forms.Padding(2) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1132, 387) + Me.TabControl1.TabIndex = 15 + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.PnlNotiz) + Me.TabPage3.Controls.Add(Me.PnlVerantwortlichkeitTermin) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(1124, 361) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Allgemein" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'PnlNotiz + ' + Me.PnlNotiz.Controls.Add(Me.GroupBox1) + Me.PnlNotiz.Controls.Add(Me.GrpNotiz) + Me.PnlNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.PnlNotiz.Location = New System.Drawing.Point(283, 0) + Me.PnlNotiz.Name = "PnlNotiz" + Me.PnlNotiz.Size = New System.Drawing.Size(841, 361) + Me.PnlNotiz.TabIndex = 3 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(408, 0) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Size = New System.Drawing.Size(433, 361) + Me.GroupBox1.TabIndex = 15 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(2, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(429, 342) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'GrpNotiz + ' + Me.GrpNotiz.Controls.Add(Me.txtnotiz) + Me.GrpNotiz.Controls.Add(Me.C1Notiz) + Me.GrpNotiz.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpNotiz.Location = New System.Drawing.Point(0, 0) + Me.GrpNotiz.Name = "GrpNotiz" + Me.GrpNotiz.Size = New System.Drawing.Size(408, 361) + Me.GrpNotiz.TabIndex = 0 + Me.GrpNotiz.TabStop = False + Me.GrpNotiz.Text = "Notizen" + ' + 'txtnotiz + ' + Me.txtnotiz.BackColor = System.Drawing.Color.White + Me.txtnotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtnotiz.Location = New System.Drawing.Point(3, 148) + Me.txtnotiz.Multiline = True + Me.txtnotiz.Name = "txtnotiz" + Me.txtnotiz.ReadOnly = True + Me.txtnotiz.Size = New System.Drawing.Size(402, 210) + Me.txtnotiz.TabIndex = 1 + ' + 'C1Notiz + ' + Me.C1Notiz.AllowUpdate = False + Me.C1Notiz.AlternatingRows = True + Me.C1Notiz.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1Notiz.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Notiz.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Notiz.FilterBar = True + Me.C1Notiz.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Notiz.Images.Add(CType(resources.GetObject("C1Notiz.Images"), System.Drawing.Image)) + Me.C1Notiz.Location = New System.Drawing.Point(3, 16) + Me.C1Notiz.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Notiz.Name = "C1Notiz" + Me.C1Notiz.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Notiz.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Notiz.PreviewInfo.ZoomFactor = 75.0R + Me.C1Notiz.PrintInfo.PageSettings = CType(resources.GetObject("C1Notiz.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Notiz.Size = New System.Drawing.Size(402, 132) + Me.C1Notiz.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Notiz.TabIndex = 11 + Me.C1Notiz.Text = "C1TrueDBGrid1" + Me.C1Notiz.UseCompatibleTextRendering = True + Me.C1Notiz.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Notiz.PropBag = resources.GetString("C1Notiz.PropBag") + ' + 'PnlVerantwortlichkeitTermin + ' + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpTermine) + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.Verantwortung) + Me.PnlVerantwortlichkeitTermin.Dock = System.Windows.Forms.DockStyle.Left + Me.PnlVerantwortlichkeitTermin.Location = New System.Drawing.Point(0, 0) + Me.PnlVerantwortlichkeitTermin.Name = "PnlVerantwortlichkeitTermin" + Me.PnlVerantwortlichkeitTermin.Size = New System.Drawing.Size(283, 361) + Me.PnlVerantwortlichkeitTermin.TabIndex = 2 + ' + 'GrpTermine + ' + Me.GrpTermine.Controls.Add(Me.txtMutierer) + Me.GrpTermine.Controls.Add(Me.txtErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutierer) + Me.GrpTermine.Controls.Add(Me.txtMutiertam) + Me.GrpTermine.Controls.Add(Me.lblErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutiertam) + Me.GrpTermine.Controls.Add(Me.txtZugewiesen) + Me.GrpTermine.Controls.Add(Me.lblZugeweisen) + Me.GrpTermine.Controls.Add(Me.txtTermin) + Me.GrpTermine.Controls.Add(Me.lblTermin) + Me.GrpTermine.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpTermine.Location = New System.Drawing.Point(0, 136) + Me.GrpTermine.Name = "GrpTermine" + Me.GrpTermine.Size = New System.Drawing.Size(283, 159) + Me.GrpTermine.TabIndex = 1 + Me.GrpTermine.TabStop = False + Me.GrpTermine.Text = "Termine" + ' + 'txtMutierer + ' + Me.txtMutierer.BackColor = System.Drawing.Color.White + Me.txtMutierer.Location = New System.Drawing.Point(114, 130) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 50 + ' + 'txtErstelltam + ' + Me.txtErstelltam.BackColor = System.Drawing.Color.White + Me.txtErstelltam.Location = New System.Drawing.Point(114, 79) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 48 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(9, 133) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 47 + Me.lblMutierer.Text = "Mutierer" + ' + 'txtMutiertam + ' + Me.txtMutiertam.BackColor = System.Drawing.Color.White + Me.txtMutiertam.Location = New System.Drawing.Point(114, 105) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 49 + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(9, 82) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 45 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(9, 108) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 46 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'txtZugewiesen + ' + Me.txtZugewiesen.BackColor = System.Drawing.Color.White + Me.txtZugewiesen.Location = New System.Drawing.Point(114, 49) + Me.txtZugewiesen.Name = "txtZugewiesen" + Me.txtZugewiesen.ReadOnly = True + Me.txtZugewiesen.Size = New System.Drawing.Size(159, 20) + Me.txtZugewiesen.TabIndex = 8 + ' + 'lblZugeweisen + ' + Me.lblZugeweisen.AutoSize = True + Me.lblZugeweisen.Location = New System.Drawing.Point(6, 52) + Me.lblZugeweisen.Name = "lblZugeweisen" + Me.lblZugeweisen.Size = New System.Drawing.Size(65, 13) + Me.lblZugeweisen.TabIndex = 7 + Me.lblZugeweisen.Text = "Zugewiesen" + ' + 'txtTermin + ' + Me.txtTermin.BackColor = System.Drawing.Color.White + Me.txtTermin.Location = New System.Drawing.Point(114, 23) + Me.txtTermin.Name = "txtTermin" + Me.txtTermin.ReadOnly = True + Me.txtTermin.Size = New System.Drawing.Size(159, 20) + Me.txtTermin.TabIndex = 6 + ' + 'lblTermin + ' + Me.lblTermin.AutoSize = True + Me.lblTermin.Location = New System.Drawing.Point(6, 26) + Me.lblTermin.Name = "lblTermin" + Me.lblTermin.Size = New System.Drawing.Size(39, 13) + Me.lblTermin.TabIndex = 6 + Me.lblTermin.Text = "Termin" + ' + 'Verantwortung + ' + Me.Verantwortung.Controls.Add(Me.txtVerantwortungPlan) + Me.Verantwortung.Controls.Add(Me.lblVerantwortungPlan) + Me.Verantwortung.Controls.Add(Me.txtVerantwortungISI) + Me.Verantwortung.Controls.Add(Me.lblVerantwortlich) + Me.Verantwortung.Controls.Add(Me.txtVerantwortlich) + Me.Verantwortung.Controls.Add(Me.lblInBearbeitung) + Me.Verantwortung.Controls.Add(Me.txtAktuellVerantwortlich) + Me.Verantwortung.Controls.Add(Me.lblVerantwortungIsi) + Me.Verantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.Verantwortung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Verantwortung.Location = New System.Drawing.Point(0, 0) + Me.Verantwortung.Name = "Verantwortung" + Me.Verantwortung.Size = New System.Drawing.Size(283, 136) + Me.Verantwortung.TabIndex = 0 + Me.Verantwortung.TabStop = False + Me.Verantwortung.Text = "Verantwortlichkeiten" + ' + 'txtVerantwortungPlan + ' + Me.txtVerantwortungPlan.BackColor = System.Drawing.Color.White + Me.txtVerantwortungPlan.Location = New System.Drawing.Point(114, 100) + Me.txtVerantwortungPlan.Name = "txtVerantwortungPlan" + Me.txtVerantwortungPlan.ReadOnly = True + Me.txtVerantwortungPlan.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungPlan.TabIndex = 7 + ' + 'lblVerantwortungPlan + ' + Me.lblVerantwortungPlan.AutoSize = True + Me.lblVerantwortungPlan.Location = New System.Drawing.Point(6, 106) + Me.lblVerantwortungPlan.Name = "lblVerantwortungPlan" + Me.lblVerantwortungPlan.Size = New System.Drawing.Size(46, 13) + Me.lblVerantwortungPlan.TabIndex = 6 + Me.lblVerantwortungPlan.Text = "Planung" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.BackColor = System.Drawing.Color.White + Me.txtVerantwortungISI.Location = New System.Drawing.Point(114, 74) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungISI.TabIndex = 5 + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 26) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(104, 13) + Me.lblVerantwortlich.TabIndex = 0 + Me.lblVerantwortlich.Text = "Hauptverantwortung" + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtVerantwortlich.Location = New System.Drawing.Point(114, 23) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortlich.TabIndex = 3 + ' + 'lblInBearbeitung + ' + Me.lblInBearbeitung.AutoSize = True + Me.lblInBearbeitung.Location = New System.Drawing.Point(6, 51) + Me.lblInBearbeitung.Name = "lblInBearbeitung" + Me.lblInBearbeitung.Size = New System.Drawing.Size(93, 13) + Me.lblInBearbeitung.TabIndex = 1 + Me.lblInBearbeitung.Text = "In Bearbeitung bei" + ' + 'txtAktuellVerantwortlich + ' + Me.txtAktuellVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtAktuellVerantwortlich.Location = New System.Drawing.Point(114, 48) + Me.txtAktuellVerantwortlich.Name = "txtAktuellVerantwortlich" + Me.txtAktuellVerantwortlich.ReadOnly = True + Me.txtAktuellVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtAktuellVerantwortlich.TabIndex = 4 + ' + 'lblVerantwortungIsi + ' + Me.lblVerantwortungIsi.AutoSize = True + Me.lblVerantwortungIsi.Location = New System.Drawing.Point(6, 80) + Me.lblVerantwortungIsi.Name = "lblVerantwortungIsi" + Me.lblVerantwortungIsi.Size = New System.Drawing.Size(48, 13) + Me.lblVerantwortungIsi.TabIndex = 2 + Me.lblVerantwortungIsi.Text = "Kontrolle" + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.Panel11) + Me.TabPage1.Controls.Add(Me.Panel10) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage1.Size = New System.Drawing.Size(1124, 361) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Definitionen für das Assessment" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'Panel11 + ' + Me.Panel11.Controls.Add(Me.GrpDefinitionDokumente) + Me.Panel11.Controls.Add(Me.GrpDefinition) + Me.Panel11.Controls.Add(Me.GrpVorgabe) + Me.Panel11.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel11.Location = New System.Drawing.Point(542, 2) + Me.Panel11.Name = "Panel11" + Me.Panel11.Size = New System.Drawing.Size(580, 357) + Me.Panel11.TabIndex = 70 + ' + 'GrpVorgabe + ' + Me.GrpVorgabe.Controls.Add(Me.C1Vorgaben) + Me.GrpVorgabe.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVorgabe.Location = New System.Drawing.Point(0, 0) + Me.GrpVorgabe.Name = "GrpVorgabe" + Me.GrpVorgabe.Size = New System.Drawing.Size(580, 139) + Me.GrpVorgabe.TabIndex = 12 + Me.GrpVorgabe.TabStop = False + Me.GrpVorgabe.Text = "Vorgaben" + ' + 'tsbtnAktualisieren + ' + Me.tsbtnAktualisieren.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnAktualisieren.Image = CType(resources.GetObject("tsbtnAktualisieren.Image"), System.Drawing.Image) + Me.tsbtnAktualisieren.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnAktualisieren.Name = "tsbtnAktualisieren" + Me.tsbtnAktualisieren.Size = New System.Drawing.Size(23, 22) + Me.tsbtnAktualisieren.Text = "Aktualisieren" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben, Me.tsbtnAktualisieren}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(1132, 25) + Me.ToolStrip1.TabIndex = 13 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1132, 24) + Me.MenuStrip1.TabIndex = 12 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'frmISI + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1132, 684) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmISI" + Me.Text = "Assessment-Übersicht" + Me.GrpBeschreibung.ResumeLayout(False) + Me.GrpBeschreibung.PerformLayout() + Me.SplitContainerResultat.Panel1.ResumeLayout(False) + Me.SplitContainerResultat.Panel2.ResumeLayout(False) + CType(Me.SplitContainerResultat, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerResultat.ResumeLayout(False) + Me.GrpResultatDokumente.ResumeLayout(False) + Me.GrpKurzbeschreibung.ResumeLayout(False) + Me.GrpKurzbeschreibung.PerformLayout() + Me.SplitContainerFindings.Panel1.ResumeLayout(False) + Me.SplitContainerFindings.Panel2.ResumeLayout(False) + CType(Me.SplitContainerFindings, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerFindings.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.GrpDokumenteFindings.ResumeLayout(False) + Me.Panel4.ResumeLayout(False) + Me.Panel4.PerformLayout() + Me.Panel3.ResumeLayout(False) + Me.Panel3.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox5.ResumeLayout(False) + Me.Panel5.ResumeLayout(False) + Me.SplitContainer3.Panel1.ResumeLayout(False) + Me.SplitContainer3.Panel1.PerformLayout() + Me.SplitContainer3.Panel2.ResumeLayout(False) + Me.SplitContainer3.Panel2.PerformLayout() + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer3.ResumeLayout(False) + Me.Panel6.ResumeLayout(False) + Me.Panel6.PerformLayout() + Me.Panel9.ResumeLayout(False) + Me.Panel9.PerformLayout() + Me.Panel7.ResumeLayout(False) + Me.Panel7.PerformLayout() + Me.Panel8.ResumeLayout(False) + Me.Panel8.PerformLayout() + Me.GroupBox3.ResumeLayout(False) + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage4.ResumeLayout(False) + Me.Panel10.ResumeLayout(False) + Me.Panel10.PerformLayout() + CType(Me.C1Vorgaben, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.C1History, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuPruefschritt.ResumeLayout(False) + Me.TabPage5.ResumeLayout(False) + Me.GrpDefinitionDokumente.ResumeLayout(False) + Me.GrpDefinition.ResumeLayout(False) + Me.GrpDefinition.PerformLayout() + Me.ToolStrip2.ResumeLayout(False) + Me.ToolStrip2.PerformLayout() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).EndInit() + Me.GrpStatus.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.Panel2.PerformLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.TabControl1.ResumeLayout(False) + Me.TabPage3.ResumeLayout(False) + Me.PnlNotiz.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GrpNotiz.ResumeLayout(False) + Me.GrpNotiz.PerformLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).EndInit() + Me.PnlVerantwortlichkeitTermin.ResumeLayout(False) + Me.GrpTermine.ResumeLayout(False) + Me.GrpTermine.PerformLayout() + Me.Verantwortung.ResumeLayout(False) + Me.Verantwortung.PerformLayout() + Me.TabPage1.ResumeLayout(False) + Me.Panel11.ResumeLayout(False) + Me.GrpVorgabe.ResumeLayout(False) + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents txtKurzbeschreibungResultat As TextBox + Friend WithEvents txtBeschreibungResultat As TextBox + Friend WithEvents GrpBeschreibung As GroupBox + Friend WithEvents SplitContainerResultat As SplitContainer + Friend WithEvents GrpKurzbeschreibung As GroupBox + Friend WithEvents SplitContainerFindings As SplitContainer + Friend WithEvents GroupBox2 As GroupBox + Friend WithEvents GrpDokumenteFindings As GroupBox + Friend WithEvents DokumenteFindings As ThemenDokumente.Dokumente + Friend WithEvents Panel4 As Panel + Friend WithEvents txtfindingbeschreibung As TextBox + Friend WithEvents Panel3 As Panel + Friend WithEvents lblMassnahmeBeschreibung As Label + Friend WithEvents Panel2 As Panel + Friend WithEvents txtfindingbezeichnung As TextBox + Friend WithEvents Panel1 As Panel + Friend WithEvents lblMassnahmeBezeichnung As Label + Friend WithEvents C1Findings As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents GroupBox5 As GroupBox + Friend WithEvents DokumenteMassnahmen As ThemenDokumente.Dokumente + Friend WithEvents Panel5 As Panel + Friend WithEvents SplitContainer3 As SplitContainer + Friend WithEvents txtMassnahmebeschreibung As TextBox + Friend WithEvents Panel6 As Panel + Friend WithEvents Label1 As Label + Friend WithEvents txtMassnahmeResultat As TextBox + Friend WithEvents Panel9 As Panel + Friend WithEvents Label3 As Label + Friend WithEvents Panel7 As Panel + Friend WithEvents txtmassnahmebezeichnung As TextBox + Friend WithEvents Panel8 As Panel + Friend WithEvents Label2 As Label + Friend WithEvents GroupBox3 As GroupBox + Friend WithEvents C1Massnahmen As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents TabPage4 As TabPage + Friend WithEvents txtMassnahmen As TextBox + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents lblHilfsmittel As Label + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents txtDefinitionBemerkung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblDefinitionBemerkung As Label + Friend WithEvents txtDefinitionBeschreibung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblDefinitionBeschreibung As Label + Friend WithEvents lblMassnahmen1 As Label + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblEreignisse As Label + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtEreignisse As TextBox + Friend WithEvents txtDefinitionBezeichnung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblEreignisse2 As Label + Friend WithEvents Panel10 As Panel + Friend WithEvents lblMassnahmen2 As Label + Friend WithEvents lblDefinitionBezeichnung As Label + Friend WithEvents txtStruktur As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblStruktur As Label + Friend WithEvents C1Vorgaben As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ImageListeMassnahmen As ImageList + Friend WithEvents C1History As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ctxMenuPruefschritt As ContextMenuStrip + Friend WithEvents AnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents WeiterleitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AbschliessenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ZurückweisenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents TabPage5 As TabPage + Friend WithEvents GrpDefinitionDokumente As GroupBox + Friend WithEvents DokumenteDefinition As ThemenDokumente.Dokumente + Friend WithEvents GrpDefinition As GroupBox + Friend WithEvents ImageListFindings As ImageList + Friend WithEvents tsbtnFindingDelete As ToolStripButton + Friend WithEvents tsbtnPruefschrittbearbeiten As ToolStripButton + Friend WithEvents tsbtnNeuesFinding As ToolStripButton + Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents ImageList1 As ImageList + Friend WithEvents TreeUebersicht As DevComponents.AdvTree.AdvTree + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents SplitContainer2 As SplitContainer + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents SplitContainer1 As SplitContainer + Friend WithEvents TabControl1 As TabControl + Friend WithEvents TabPage3 As TabPage + Friend WithEvents PnlNotiz As Panel + Friend WithEvents GroupBox1 As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents GrpNotiz As GroupBox + Friend WithEvents txtnotiz As TextBox + Friend WithEvents C1Notiz As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents PnlVerantwortlichkeitTermin As Panel + Friend WithEvents GrpTermine As GroupBox + Friend WithEvents txtMutierer As TextBox + Friend WithEvents txtErstelltam As TextBox + Friend WithEvents lblMutierer As Label + Friend WithEvents txtMutiertam As TextBox + Friend WithEvents lblErstelltam As Label + Friend WithEvents lblMutiertam As Label + Friend WithEvents txtZugewiesen As TextBox + Friend WithEvents lblZugeweisen As Label + Friend WithEvents txtTermin As TextBox + Friend WithEvents lblTermin As Label + Friend WithEvents Verantwortung As GroupBox + Friend WithEvents txtVerantwortungPlan As TextBox + Friend WithEvents lblVerantwortungPlan As Label + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents lblInBearbeitung As Label + Friend WithEvents txtAktuellVerantwortlich As TextBox + Friend WithEvents lblVerantwortungIsi As Label + Friend WithEvents TabPage1 As TabPage + Friend WithEvents Panel11 As Panel + Friend WithEvents GrpVorgabe As GroupBox + Friend WithEvents tsbtnAktualisieren As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents tsbtnAssessmentAnzeigen As ToolStripButton + Friend WithEvents AssessmentZuteilenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents GrpResultatDokumente As GroupBox + Friend WithEvents DokumenteResultat As ThemenDokumente.Dokumente +End Class diff --git a/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.resx b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.resx new file mode 100644 index 0000000..55809c8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.resx @@ -0,0 +1,4305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 362, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 362, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 366, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 366, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 572, 118</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 572, 118</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 17, 56 + + + 199, 56 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 1122, 359</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 1122, 359</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 360, 56 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE + CwAAAk1TRnQBSQFMAgEBBAEAAegBAQHoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACwAB/wLs + AfQMAAH/AsIB/wwAAf8CegH/DAAB/wJHAf8LAAH/AesB/wH0AW0B9AoAAf8BwgKeAcIB/woAAf8BdQJT + AXUB/woAAf8BRwL5AUcB/wkAAf8B6wH/AgAB9AFtAfQIAAH/AcIEngHCAf8IAAH/AXUEUwF1Af8IAAH/ + AUcE+QFHAf8HAAH/AesB/wQAAfQBbQH0BgAB/wHCBp4BwgH/BgAB/wF1BlMBdQH/BgAB/wFHBvkBRwH/ + BQAB/wHrAf8GAAH0AW0B9AQAAf8BwgOeAsIDngHCAf8EAAH/AXUIUwF1Af8EAAH/AUcD+QKUA/kBRwH/ + AwAB/wHrAf8IAAH0AW0B9AIAAf8BwgOeAcIC/wHCA54BwgH/AgAB/wF1BVMCegNTAXUB/wIAAf8BRwT5 + Av8E+QFHAf8BAAH/AesB/woAAfQBbQH0Af8BwgOeAcIB/wIAAf8BwgOeAcIC/wF1BlMBmgH/AZoDUwF1 + Av8BRwX5Av8F+QFHAf8B7AH/DAAB9AHsAcIEngLCAf8BAALCBJ4BwgF6A1MBGgT/AQAB/wGaA1MBegFH + BvkC/wb5AUcB7wH/DAAB9AHqAcIGngL/Bp4BwgF6A1MBGgH2Av8CAAH/AZoDUwF6AUcE+QFHAZQBAAH/ + AZQBRwT5AUcB9AGSAf8KAAH0ARMB8wH/AcIFngL/BZ4BwgL/AXUGUwGaAf8BmgNTAXUC/wFHA/kBRwH/ + AgAB/wEXA/kBRwH/AQAB9AHsAf8IAAH0ARMB8wIAAf8BwgSeAv8EngHCAf8CAAH/AXUFUwJ6A1MBdQH/ + AgAB/wFHA/kB4wL/ARYD+QFHAf8DAAH0AewB/wYAAfQBEwHzBAAB/wHCA54CwgOeAcIB/wQAAf8BdQhT + AXUB/wQAAf8BRwP5AhYD+QFHAf8FAAH0AewB/wQAAfQBEwHzBgAB/wHCBp4BwgH/BgAB/wF1BlMBdQH/ + BgAB/wFHBvkBRwH/BwAB9AHsAf8CAAH0ARMB8wgAAf8BwgSeAcIB/wgAAf8BdQRTAXUB/wgAAf8BRwT5 + AUcB/wkAAfQB7AH/AfQBEwHzCgAB/wHCAp4BwgH/CgAB/wF1AlMBdQH/CgAB/wFHAvkBRwH/CwAB9AHs + ARIB8wwAAf8CwgH/DAAB/wJ6Af8MAAH/AkcB/wYAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEB + BgABARYAA/+BAAH8AT8B/AE/AfwBPwH8AT8B+AEfAfgBHwH4AR8B+AEfAfEBjwHwAQ8B8AEPAfABDwHj + AccB4AEHAeABBwHgAQcBxwHjAcABAwHAAQMBwAEDAY8B8QGAAQEBgAEBAYABAQEfAfgBAQGABAABPwH8 + AQABgAEAAUACAAE/AfwDAAHAAQEBAAEfAfgEAAEBAYABjwHxAYABAQGAAQEBgAEBAccB4wHAAQMBwAED + AcABAwHjAccB4AEHAeABBwHgAQcB8QGPAfABDwHwAQ8B8AEPAfgBHwH4AR8B+AEfAfgBHwH8AT8B/AE/ + AfwBPwH8AT8L + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJASURBVDhPfZNLSxtRFMdn5Suah0oChhiJmlGj8RGfiKIi + gouAEPULuMlSxe+Rrbt8hKEWGfJobNq5k0ZaJ7Vgq90ILW5auiiFLv8955oJiU37hwPDPfd3/ufMvVex + VTk4SF0mEprmcrmrS39JCwbdpZ0dzdjeTlWXHvUhmUw/nJ7i7e4uspGIxRurqZqqsPXp5ATG4iJyo6Np + mWBnCScSMNfXIVZXoatqQ5EafHwMMTcHY2ZGRkZVUwq3zc42LJaXYSwtQQ+HZZEafHQEEYtBTE3VQh8a + 0hSemduuh435eRizs9BDIasUj1u3h4cwydGcnIQZjaJEwblal/zBbdfDggB2+ZhMojQ9LaE3FOWJiUbY + lixCbdfD7ChGRmAMDEAEgzApss1gW7IIbTDIqRgIoOB04iXFK7cboqcHus/3b5jFSbG1ZVnxOF50dkr4 + tccDs7cXZa8XWb///+5Fgiv7+8gTeFEHX/p8eNfXh/f9/cgHAs3nL25sWJW9PeTIuUBRdLlk22WCr/x+ + XNP8N6EQboeHUXx6AgxbBGccDuQ6OnDR1SXdeeYctc3ON4OD+KyquI9E8IX+kajeE8XY3NSu6CLp7e3I + tLUhT0V4dt3rlRs4uO27cBj34+N4oCP9RrfxOx13SVU1pbCwkDpvbYXe0oIsFeGfd97d3TCn7JLa/krH + yuBPunC/VlZQiUYfH9WZw5G2Czx7AtviNZMu2w96SL/X1nAXiz0+JltnTmfqucejNYNtca48NqZd286K + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwqMyLpCsL + +sAwJRlBBNLozoYSXhQFc7Su7CLoC7sY9e6zzdq7d2tOt9pWrG5C0EJyrRFOa2+buc1dtJH79wyey97N + fvDnPM85/3PO8zAbwS+Tud62tV2n1/9juqfn/l2GgaGuDgG5/OMbhaKelqpTmn/YORePwn3zNu6QIeMS + CZ43NmJGJuumlsr8nr2Wykx2IBl9jNiCgPHdMtyrqQEvld6gFnHWY3r2l/80kq5WLJkZLPtPIPojhZea + oW/UIk4prj+VCamQdCvJADmWJqRIedvx3b4J8dlnrdT2b6JezWYheLkgkM3pqWNIOLZhZaqLDFLgj1+i + oTZx1ueGA4JHiZXpk+QF+8nmDqR8R5Hz7ohQizil6FV12tuJn55DWA2qIJAvrL7uwyPtvtIne30ttYlT + nH+QEDztyL+/gtTkEWRDF5Am20uhveeopTKFz0+QWeCQmbmF7Ktesv0siqHDE7RcmbGxixIIHHJfXmBt + MYh8IoB8pHuNlqvT3LxTeb6vC9mvbhSECFCM2XPLH7bTcnWaWlrObNlai10NDXx68V0TTW+McDi8R6vV + jup0Oj1rNqsMhqcDFotl0Ol0jpTFcdwgkZroEs/z/S6X67jP51PQdoZxOBwHrFZrL2kaMBqNQyaTaYTE + URK1ZdFzOTdMpGZZtt9msx1kGIb5C97VJAwLMG7cAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + 510, 56 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX + dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz + vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n + 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb + o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg + Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml + mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY + FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 + wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb + MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ + 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABYAAAAVCAYAAABCIB6VAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADISURBVEhL3ZHbDcMgDEXL5ozACIzAOPmp1EkgupVuZIxx + UKL0ox9HIX6cGOf1eW/tCf5IHGNsIYQOxHLOZr1mEJdSDhEkEhnXfZpBzMlqrV9kDh/lTc7knZhNlpTw + Rqi18qQTc5KZlHAt+IiVB4PYKyYUe+v4ndgr5l4pXl4Ffx7fU0rdGflLPw/oJpwJpHiyZnkVgBMBNOId + 8PoSTz6ICSezRFZM90/FgJMCnBlfkbtiD0su85fFQMtl7pYYSLmM3xbPeEi8tR3qh8dT9QHgwAAAAABJ + RU5ErkJggg== + + + + 617, 56 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC6 + DQAAAk1TRnQBSQFMAgEBBgEAAdgBAgHYAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAf8BBwJyAZIB8wH/ + CAAB/wH0AfECvAHxAfQB/ycAAf8BcgIuAy8CLgHzBQAB/wH0AQcC7wIHAu8BBwH0Af8kAAH/Bi4DLwEu + AQcDAAH/AfMB7wEHAbwB8AS8AQcB7wHzAf8iAAH/BS4GLwEuAfMCAAH0Ae8BvAjwAbwB7wH0IgABvAQu + ASgILwEAAf8BBwG8CvABvAEHAf8hAAMuAS8DKAFXAlYELwL0Ae8B8ArxAfAB7wH0IAAB/wIuAS8DKAIv + A1cBVgIvAe8B8QEHDPEBBwHxIAAB/wEuAi8BKAEuAXkBVwJWAXkCVwFWAS8BcwHwAbwM8QG8AfAgAAH/ + Ai8CVwJ5AZkBeQJXAXkCVwFQARwB8AG8AvIB8QnyAbwB8CEAAS8BNgFXAnkBmQKfAXkBVwFWAXgBVwFQ + AfAB8gG8DPIBvAHyIQABUQE2AVcBeQGZAZ8BGgEbAcIBeQFXAS4BVwFWAf8B9AEHDPIBBwH0IQAB/wE2 + AVcBeQGZAZ8BwgIbAZ8BeAF5AVcBHAEAAf8B8AHxAfMI8gHzAfEB8AH/IgABBwE2AnkBnwEaAcIBGgGf + AZkBeAFXAwAB9AEHAfII8wHyAQcB9CQAAbwBWAF5AZkDnwGZAXkBeAH/BAAB9AG8AfEG8wHxAbwB9CYA + Af8GeQHxBwAB/wHwAbwB8ALxAfABvAHwAf8qAAL/CwAB/wH0AfMC8gHzAfQB/ysAAfQBUgsAAfQFeAFQ + AQcIAAH0BJEBkAGLAbsIAAH/BeMBbwG2CAABMQF5AQACMQEaAfQBMQEbBgABmQR4AVEEUAH0BQABtASR + AYsBkQOLAfQFAAGUBeMEbwH0BgAIUgEbBQAFeAdQAfQDAAG0BZEB/wGRBIsB9AMAARYE4wdvAfQCAAH0 + AfMBGwhSAXQC8wIAAQgEeAFQAQgB/wZQAgABvASRAYsC/wH0AZEEiwIAARoE4wGTAv8BGgVvAgABGg1S + AgADeAGZAf8BmAEbAQgCGwH/A1ABBwEAA5EBtQG0AYsBtAH/AZEB/wG8A4sBuwEABOMB/wRvAfMBkwNv + AZMCAAxTAfMBAAEbBHgB/wGZA/8BmQEbBFAB8gORAf8DiwG7AZEBiwH0AZEDiwHzA+MB9AZvAfMEbwEA + Af8BUwHDAVMBwwF6AsMBUwF6A1MBGgEAAZkDeAFQAXgB/wF4AVAB8wH/ARsEUAG1ApEBtAG8B4sB/wOL + AZQD4wEbAZMF/wFvARoDbwGZAlMB/wGaAf8BmgJTAZoB9gIaAlMBUgN4ARsB/wEIAfMDUAH/AQgB/wNQ + A5EBuwG1B4sB/wOLA+MBFgKTBRsBbwH/A28BAAF6AVMB/wGaAf8BmgFSAVMB9gGaARoB/wJTAfQEeAEb + AZkB/wJQAXgB/wEbAZkCUAF4A5ECuweLAf8BiwGQAZEBFgPjAbYBbwH0A/8CbwH/Am8B4wIAAVMBeQFT + AXkBUwN5AlMBdQFTAgABCAR4AQgC/wHzAf8BmQGYAVABUQJ4AbsDkQH/BosBkQH0A5EBGgPjAf8CbwL/ + A28BkwPjAQAB/wxTAXkBAAH/A3gBmQH/AQgBmQEIAXgC/wR4Af8DkQG7AfMBiwH/AbUCiwH/BJEB/wPj + AZQBGgVvAf8E4wEAAXoNUwIABHgBmQF4ARsB/wFQAXgBmQN4AfQBAASRAbsB/wHyAf8BkQGQBJEB9AEA + BOMBlAH/AbYBkwEbAfQE4wH/BAAIUwEbBAAB/wZ4ARsFeAGZAgAB/wWRAbQB/wG0BJEBtAIAAf8G4wEW + BeMBlAUAAlMBegVTARsFAAH0C3gEAAH0BJEB/wWRAbQEAAH0CuMBFgYAAXoCAAF6AVMB/wEAAfMB9AYA + Af8IeAEIBgAB/wiRAbwGAAH/COMBGgsAARoMAAH/AQgCeAGZARsKAAH/AbsCkQG1AfIKAAH/ARoBFgHj + AZQB8wUAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH4AQ8B8AEPBAAB4AEH + AcABAwQAAcABAwGAAQEEAAGAAQEBgAEBBAABgAEBBgABgB8AAYAHAAGABwABgAEBBgABwAEDAYABAQQA + AeABAwHAAQMEAAHwAQ8B4AEHBAAB/gF/AfABDwQAAf4BfwHwAQ8B8AEPAfABDwHyAQcB4AEDAeABAwHg + AQMB8AEHAcABAQHAAQEBwAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABwAEBBgABgAEB + DgABgAcAAcABAwYAAYABAQYAAYABAQGAAQABgAEAAYABAAHwAQcBgAEBAYABAQGAAQEB8AEHAcABAwHA + AQMBwAEDAfYBJwHgAQcB4AEHAeABBwH/AX8B+AEfAfgBHwH4AR8L + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 894, 217</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 894, 217</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 400, 130</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 400, 130</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + 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 + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + 727, 56 + + + 834, 56 + + + + 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 + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/f393/r6+t/y8vLf6urr3+Pk + 5d/Z2trf0dHQ39DOzN/NysLfysK038a7pN/BsZHfu6Z937aca9+ylFzfrotQ36uFRt+pgj7fpoA436h+ + Nt+lfTTfpX4136aBOd+pgz3fq4hG362MTd+wklrfuJxs37ulfd/CsZTfxrym38zFut/Qzcjfy8vK39PS + 0t/e4ODf5ubo3+zs7N/29vbf/Pz83/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/f39tP7+/s7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7/+/v7//Hx8f/p6er/4ODg/9bW1v/Qz8z/zMi//8e9qv/CsZL/uaJ3/7KTW/+rhkP/pXwx/6B0 + Iv+dbxf/nGsR/5ppC/+aZwn/mWYH/5llBf+ZZQT/mmUE/5llBP+ZZQT/mWUE/5llBf+ZZgb/mWcJ/5po + C/+daxH/nm4X/6F2Jf+nfjL/rIhI/7SYY/+5pHv/wrSZ/8rCsv/Qy8T/0dDP/9na2v/l5eb/6urr//T0 + 9f/8/fz//v////////////////////7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////9/f3O/v7+zv// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7+ + /v////////////7//////////v////7//v/9/v3/+fn5/+zs7f/h4eL/1dbW/8/Pyv/Lxbf/w7Wa/7mi + dP+uj1P/pX41/6ByH/+caxH/mmcJ/5llBP+ZZQL/mWQB/5hkAf+ZZQH/mWUB/5lmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZAD/mGUA/5llAP+ZZAD/mGUB/5llAv+ZZQX/mmcL/5xs + Ev+hdST/qII//7KUW/+6pX3/xrmk/9DMwv/T0tD/2NnZ/+Xl5v/t7u//+Pj4//79/f////////////7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////39/c7+/v7O//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+///////+//7//v////7////6+/v/8/X0/+rq + 6v/g4OD/0dDN/8zGuf/DtZj/t55u/6uHRf+hdSP/nGwQ/5lnB/+YZQP/mWUB/5hmAf+YZgD/mWYA/5lm + Af+ZZgH/mWUB/5llAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5ll + AP+ZZQD/mWYA/5lmAP+ZZgD/mWYB/5hmAf+ZZQH/mWUB/5hlAv+YZQX/mmcJ/51tE/+jeSz/ro1T/7yn + fv/Hu6T/zMjB/9DPz//b3Nz/6+vr//n5+f/9/v3//v/+/////v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////f39zv7+ + /s7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////7////7/Pz/8fLy/+Di4v/W1tb/z8vG/8i9qv+5pHz/rIpK/6F2Jv+bag//mWYF/5hl + Af+YZgD/mWYB/5lmAf+aZgD/mWYB/5lmAP+ZZgD/mWcB/5pmAf+aZgH/mmYA/5pmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lm + AP+ZZgH/mWYA/5lmAf+ZZQH/l2UA/5hlAv+ZZgf/nG0W/6R8Mf+yk1n/v62J/8bAsf/Pzsv/3t/g/+jp + 6f/29vX//f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f3O/v7+zv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////9/f3/9PT1/+bm5//S09L/y8jA/8O1 + m/+0mmf/pX4z/51tFf+aZwb/mGUC/5hlAf+YZgH/mGYB/5lmAf+aZgD/mmYB/5lmAf+ZZgH/mWYB/5lm + Af+ZZgH/mWUA/5pmAP+aZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5hm + Af+YZQH/mGUD/5pnCv+fchv/qYZA/7ijdv/Gvar/y8vH/9vb3P/m5eb/9/f3//7+/v////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////39 + /c7+/v7O//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///9/f3/+/v7/+3u7//X19f/z8rB/8Gzlv+ylF7/pHgq/5tqDv+YZQP/mGQB/5llAP+ZZgD/mWYB/5lm + Af+ZZgH/mWYB/5pmAP+aZgH/mWYB/5lmAP+ZZgH/mWYB/5pmAP+ZZgD/mWUA/5lmAP+YZQH/mWUA/5hm + AP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZgD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/mWYA/5pmAf+ZZgH/mGUA/5lkAf+ZZQT/nG0T/6eB + N/+2nW//xryo/8vJxf/Y2dj/6+zs//r6+v/+/v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39zv7+/s7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+///////////////+//7/+vr6/+np6f/g3+H/0c7I/8K0mv+zlV7/oncm/5po + DP+YZAL/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5lmAf+ZZgD/mWUB/5poCP+baQ3/mWUE/5llAf+ZZgH/mGYB/5lmAf+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQH/mWYE/51sEf+mgDb/uKF0/8nAr//U09H/4eHi/+/w + 8P/5+fn//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///9/f3O/v7+zv////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v////7+/v/+/v7/+/z7//Lz + 8//i4uL/0M/L/8a7qP+0mmj/pHou/5tqDf+ZZgL/mWUB/5lmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAf+bagv/qohG/7SY + Zf+lfTT/mmgN/5dlAv+ZZQH/mGYA/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mGUB/5hmBP+dbhb/q4dD/8Csh//PyL3/09TS/+Tl5f/4+Pn//v7+///////////////+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////39/c7+/v7O//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/////v7+//f39//k5eX/1dXV/8rEuf+9qIP/qIM9/5xsEP+ZZQP/mGUB/5lm + Af+aZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+ZZgH/mWcE/6eBN//Nwan/39zU/83Apf+xklb/nnEc/5llBP+ZZQD/mWYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/mWYB/5hlAf+ZZgf/n3Ig/7CR + WP/Et53/zszH/9zb3f/t7e7/+/v7///+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f39zv7+/s7///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////3+/f/y8/P/3t7f/9LP + zP/EuaH/sJJX/59yH/+ZZgb/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZwD/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fcRn/xK+H/+3r + 5//5+vr/8fHv/97Xyv/ArIL/p4A3/5tqD/+YZAL/mWYB/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pm + Af+ZZgD/mGYA/5hmAf+ZZgH/mWYB/5llAf+YZQP/mmgM/6V8Mv+4oXX/ycK1/9PR0P/m5eb/+vn6//7+ + /v////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////9/f3O/v7+zv////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f3/8PDw/9nZ2f/OyL//vKiC/6Z/NP+bagz/mGUC/5lmAf+ZZgH/mWYA/5lm + AP+ZZQD/mWYA/5lmAP+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZgD/mWYA/5lmAP+YZQH/mmkK/7KUWP/h29D/+/r6///////+/v7/+vn6/+zq5P/Ux7D/tJdh/6Bz + If+ZZgf/mGUB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZgD/mWYA/5lmAf+ZZQH/mWYB/5hm + Af+ZZQH/mWUD/55wGP+wkFT/x7mg/9TRzv/m5uf/9/f3//39/f////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////39/c7+/v7O//////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v//+vv7/+vr7P/W1dT/yb+u/7OX + Yf+gcx7/mWYE/5llAP+aZgD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnAP+ZZgH/mWYB/5lmBP+lfC7/0cSp//b1 + 9P/+/v7//////////////////f79//X08//i3dD/xrKM/6mEPv+caxD/mmUC/5hlAf+ZZgH/mWYA/5lm + Af+aZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWcB/5lmAP+ZZQD/mGUB/5ppDP+nfzj/vamF/9HN + xv/d3N3/7Ozt//z9/f///////v7+//7///////////////////////////////////////////////// + /////////////////////////////////////////////////////////f39zv7+/s7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//j4+f/l5eb/09HN/8S3nf+sikn/nWwP/5llAv+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + Af+ZZgH/mWYB/5lmAf+ZZQH/nm8X/76off/o5uH//Pz8///////////////////////+/////v7+//v8 + +//t6+f/1825/7mdaP+idiT/mWcI/5llAf+aZQH/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYB/5pmAf+aZgD/mWUB/5lmBv+hdCL/tpxs/8vEtv/U1dX/7Ozt//r5+v////7///7+//// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f3O/v7+zv////////////////////////////////////////////////// + //////////////////////////////////////////////7+/f/19vb/4ODh/9DMyP+/rYv/poA3/5tp + Cv+ZZQH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5tpCf+vj1H/3NbI//j5 + +P/+/v7////////////+/////////////////////v////z8/f/3+Pf/5OHW/8u6mv+tiUj/m2sT/5dk + A/+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWYA/5hmAP+ZZgD/mGYB/5hl + Av+cbhj/sZJb/8a8qf/S0dH/5uXm//v7+/////7///////////////////////////////////////// + //////////////////////////////////////////////////////////////39/c7+/v7O//////// + //////////////////////////////////////////////////////////////////////////////// + ///9/f3/8vLx/93c3P/OysL/u6V7/6N4J/+aZwb/mWUB/5lmAf+ZZgH/mWYA/5llAP+aZgH/mmYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgH/mWYB/5hmAf+ZZgP/pXws/9DDqP/x8u///f79/////////////////////////v////////// + ///+/////v////7//v/8/Pv/8e/t/9XKuP+4nWz/ongo/5pnB/+YZQH/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mmYB/5pmAf+ZZgH/mWYB/5lmAP+YZgH/mWYB/5hlAv+caxD/rYpK/8e7o//T0s//6enp//v7 + +//+//////////////////////////////////////////////////////////////////////////// + /////////////////////////f39zv7+/s7///////////////////////////////////////////// + /////////////////////////////////////////f7+/+/v7//Z2tn/zcm//7igcv+fdB7/mWYC/5ll + AP+ZZQD/mWUB/5lmAP+ZZgD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/55vFf++pnj/6+rj//39 + /f/////////////////////////////////////////////////////////////////9/f7/9PPz/+Tg + 2P/Mu5z/r45M/51tFf+ZZQT/mGUB/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5lmAf+ZZgH/mWYA/5lm + AP+ZZgH/mWYB/5llAf+baQv/qYQ+/8O1mf/V09D/5ubm//b39v/+//7////////////+//////////// + ///////////////////////////////////////////////////////////////////9/f3O/v7+zv// + //////////////////////////////////////////////////////////////////////7///////7/ + /v/09fT/29zc/87Jvv+1nWv/n3Ia/5lmAv+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5hmAP+aaAf/so9O/+DZyv/5+fn///////////////////////////////////////// + ///////////////////////////////////+/v7/+/v7//Py8P/b1MP/u6Fz/6N6Lf+aaAr/mGUC/5lm + Af+aZgD/mmYA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAj/p4E6/8S0 + lv/Rz8v/4ODh//r7+v/+//7////+//7///////////////////////////////////////////////// + //////////////////////////////39/c7+/v7O//////////////////////////////////////// + ///////////////////////////////////+/v7/8/T0/9vc3P/Lx7z/tp1s/55xGv+YZgL/mGYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6R7Kf/NvaD/8/Lx//7+ + /v////////////////////////////////////////////////////////////////////////////// + /////////v/+//j49//n5N3/ybud/6+OUP+ecBj/mWYD/5lmAP+aZgD/mWUA/5llAP+ZZQD/mmYB/5pm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+aZwn/pn82/8Gwk//Qz8z/5eXm//v8/P////////////// + /////////////////////////////////////////////////////////////////////////f39zv7+ + /s7///////////////////////////////////////////////////////////////////////////r6 + +v/d3t7/y8e//7efb/+fchz/mGYD/5lmAf+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5hlAP+cbhL/vqZ1/+nn4f/7/Pz///////////////////////////////////////// + //////////////////////////////////////////////////////7//v7+//v8/P/u7uz/3dbG/76n + ef+nfjL/m2kM/5hlAv+ZZQH/mWYA/5pmAP+aZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hm + Af+ZaAj/p4A3/8Gzl//R0M7/6+vs//79/f////////////////////////////////////////////// + ///////////////////////////////////9/f3O/v7+zv////////////////////////////////// + ///////////////////////////////////8/Pz/6uvr/9DMxf+5oXX/n3Id/5hmA/+ZZgD/mWYB/5lm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcF/62KRf/c1cT/+fj3//7/ + /v////////////////////////////////////////////////////////////////////////////// + /////////////////////////v////39/v/5+fn/6efh/9HEq/+wkFf/nnAb/5llBv+ZZQH/mmYA/5ll + AP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYB/5llAP+aaAj/qYM9/8O2nv/V1NP/8fHx//7+ + /v////////////////////////////////////////////////////////////////////////////39 + /c7+/v7O///////////////////////////////////////////////////////////+/////Pz9/+vq + 6//S0cz/u6iC/6F1Iv+YZQL/mWUB/5lmAP+ZZgD/mWYB/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYB/5lmAv+jeCT/ybiX//Lx7//+/f7///////////////////////7+///9/f3//v7+//// + ///////////////////////////////////////////////////////////////////////////////+ + ///9/f3/8vHw/9rSxv++qX//qIE4/5xqDv+ZZQH/mWYA/5lmAP+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lm + Af+ZZgH/mWUA/5llAf+baAr/q4lH/8W7qP/Y2Nf/9fb2///+/v////////////////////////////// + /////////////////////////////////////////f39zv7+/s7///////////////////////////// + //////////////7////+//////7+//z8/P/s7e3/1NPQ/76vkP+key7/mmYE/5llAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/nG0P/7yhbv/p5d7/+/v8//// + /v////////////7+///6+vr/8fHs/+fk2//t7Ob/+vr7//7///////////////7//////////v////7/ + /////////////////////////////////////////////////v/9/fz/9/b2/+nm4f/Xy7T/tplf/6J2 + If+ZZgb/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+bag7/sJFW/8nC + s//d3d3/+Pj4//////////////////////////////////////////////////////////////////// + ///9/f3O/v7+zv/////////////////////////////////////////////////////+/f3/8fDx/9jY + 2P/Gu6f/qYM+/5tnB/+ZZgH/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+YZgD/mWUA/5toBv+rhkD/18y6//j49v/+/v///v7+//////////7//P39/+jn4P/IuZb/tJph/8m6 + l//x8e7//f7+//7+///+/////v7+//7////+/////v7///////////////////////////////////// + //////////////7+///9//7//Pz8//f39f/k3dP/yriW/6mEQP+cag//mGUC/5lmAf+aZgH/mWYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+ebxb/tZxq/83IwP/k5eT/+/v7///////+/v7///////// + //////////////////////////////////////////////39/c7+/v7O//////////////////////// + /////////////////////////v/+//X19f/b29v/zMW4/66PVP+cagz/mWYA/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZQL/oXQf/8i2k//v7ev//f39//7/ + ///9//7////+///////9/f3/5uPZ/8Cviv+ph0P/uJti/+vp4v/8/f3/+/z7//b29v/39/b/+vz7//7+ + /v////7///////7///////////////////////////////////////////////7+/////v7//v7+//v7 + +v/v7ur/0cax/7aZZP+hdiP/mWgG/5hlAf+ZZgH/mmUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/5hl + Av+hdSD/vamD/8/Oyv/p6ur//f39//////////////////////////////////////////////////// + /////////f39zv7+/s7///////////////////////////////////////////7//v/8/Pz/4+Tk/8/M + xf+4nnD/nm8W/5lmAf+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5trDf+2mWL/5eHX//v7+//+//7//v////7//v///////v////3+/v/39/b/5uTg/8Cs + gf+0l13/6OPZ//z8/P/v7un/08my/9HGrP/k4tr/9/f3//79/v///////v////////////////////// + /////////////////////////////////////////v////z8/f/z8vL/4t3T/8m3lP+siEP/m2sR/5ll + A/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmBf+mfzT/w7ee/9PT0v/v7+///v7+//// + ///////////////////////////////////////////////////9/f3O/v7+zv////////////////// + /////////////////////////f79//T09P/X19T/v6+P/6N3Jv+ZZgL/mWYA/5lmAP+ZZgD/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mGYA/5lmAP+aZwT/qYM4/9LGsv/29vX//v7+//7/ + /v///////v///////////////v/+//7+/v/39/b/1865/9HFpv/x8Ov/+vr6/9zTv/+siUT/pHsw/7qk + df/a08X/9fPy//39/f/+/v///v////////////////////////////////////////////////////// + //////////////7+/v/6+/r/8fDs/9fOuv+4nGv/o3gq/5lnCf+YZQH/mGUA/5lmAP+ZZgD/mWUA/5lm + AP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lm + Af+ZZgH/mWUB/5tpCv+ujlD/ycO2/9ra2//39/f///////////////////////////////////////// + //////////////39/c7+/v7O///////////////////////////////////////////29vf/397f/8rB + r/+phUH/mmcG/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmYA/5hm + AP+YZgD/mWUB/6ByHP/Er4j/7Orn//39/f////////////////////////////////////////////39 + /P/08/D/9fTx//z8+//5+fj/1Mqz/6aAOP+YZgv/nW4Z/7GRVv/RxKv/6efh//j39//9/f3//v////// + ///////////////////////////////////////////////////////////////////9/f7/9vb0/+Xh + 2P/It5j/r4xM/51tFP+ZZQP/mWUB/5lmAP+ZZgD/mGYA/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55wF/+4onX/zszI/+vr + 6//9/f3//////////////////////////////////////////////////f39zv7+/s7///////////// + //////////////7+/v//////+/v7/+Xl5v/PzMX/tJpn/5xsEP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYB/5llAf+cagz/tJZd/9/Zz//6+vr///////7/ + //////////////7+/v/////////////+//////7///////7////+/v///v7+//39/P/r6eH/ybmV/66K + RP+dbBP/mmgP/6Z+NP++qH3/2NLE//Hw7//9/f3//v/+//7///////////////////////////////// + /////////////////////////////////////v7/+/v7/+/t7P/d1MP/u6Jx/6V8Lf+ZZwn/mWQC/5ll + AP+ZZgD/mGUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mmYB/5llAP+aZgH/mWYD/6V9Mf/FuJ7/2NfX//Hx8v/+/v7///////////////////////// + ///////////////////9/f3O/v7+zv////////////////////////////////7+/v/v7+//1dTT/8Gx + k/+jdyX/mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lm + Af+ZZgH/mmYE/6qCOP/XzLX/9fX1//7+///////////////////////////////////////////+//// + //////////////////////////////v8+//u7en/2tG7/7qgaf+kein/mWcL/55uGP+ujk//zsGi/+zp + 4v/4+fj//v7+///////////////////////////////////////////////////////////////+//7/ + ///+//7//v7+//j49//o5t//z8Gl/66MTv+ebhn/mGUE/5hlAf+ZZQD/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+aZgH/mWUA/5pmAf+ZZQH/mmgL/7CS + Wf/NyL3/3d7f//f4+P////////////////////////////////////////////39/c7+/v7O//////// + ///////////////////+////+vr6/+Dg4f/Mxrn/rItL/5poCP+YZgH/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5hmAf+ecBn/wayE/+7t6f/9/v3//v////// + /////////v7+//z7+//39/X/9vXz//r6+f/+/v7////////////////////////////+//////7///39 + /f/39vX/5eLY/82+nf+ujEn/nm4W/5poDf+lfDD/v6h7/9/Yyv/y8O///Pz8//////////////////// + /////////////////////////////////////////v///////v///////v7+//z9/P/w7+z/2NDA/72l + ef+nfjP/mmgK/5llAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAf+ZZQH/n3Id/72rh//R0c//7u7v//39/f////////////// + /////////////////////////f39zv7+/s7///////////////////////////z9/f/t7e3/09LO/7ql + ff+dcBj/mWUB/5llAP+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+YZgD/m2kJ/7CQUv/b1cn/+fn5//////////////////7////5+Pj/49/U/8/Bo//Lupn/49/V//v7 + +////////v///////////////v///////////v////////7+/v/7+/v/8fDt/9zUwf++pnP/pXss/5pn + DP+fbhr/spJV/8q8nv/p5t//9/b3//7+/v///////v////////////////////////////////////// + //////////////////////////////39/f/39/f/6ubg/9XGq/+xkFP/nnAY/5lmBf+ZZQH/mWYA/5ll + AP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lm + AP+YZgX/qodD/8jAsP/c3N3/9/f3///////////////////////////////////////9/f3O/v7+zv// + ///////////////////+////9/j3/97e3//Iv67/p4I7/5lnBf+aZgH/mmYB/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmA/+lfC7/zb+k//Hx7//+/v7///////// + /////////v////X08v/Nwqn/sJNY/6eCO//Pwqb/+Pj3/////v/+/v///v////7///////////////// + //////////////7////+/v7/+fn4/+bi2v/OwJ//sI9N/55vF/+aZwz/pHss/72mdv/Z0sD/8/Pw//v7 + /P/+//7//////////v////////////////////////////////////////////////////////////7+ + /v/9/f3/9vXz/93Xyf++qYD/pn82/5tpDv+YZAL/mWYB/5lmAf+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAf+ebxb/uqR6/9HQzP/t7e7//v7+//7/ + //////////////////////////////39/c7+/v7O/////////////////v/+//7+/v/u7u7/1NLO/7mg + dP+cbRL/mWYA/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + Af+ZZgH/n3AX/72nev/o5d///Pz8///////////////////////+/v//+vr6/+jl3v/IvaP/qYdF/8e1 + kP/09fL//f39//n5+P/4+Pb/+vv7//7+/v///v///////////v/+///////////////+/v//+/v7//Py + 7//d18b/wqx//6V8MP+ZZw7/nG0X/6+OTv/OwKP/5uPb//b29f/9/f3//v7+//////////7///////// + ///////////////////////////////////////////////////+/v7/+fn5/+nm4f/Nwan/s5Vb/6Bz + Hf+ZZwT/mWUA/5llAP+aZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYA/5llBP+ogjv/x7+s/+Dh4f/6+/v//////////v///////////////////////f39zv7+ + /s7////////////////+////+/v8/+Dh4f/Iv6z/p4A3/5pmBP+aZgH/mmYB/5lmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5ppCf+xkVL/3tjK//n5+f///v7///////// + ///////////////////+//7/+/z8/+Tg2P+8p3r/z8Kn//X18//19fT/3dbF/9HEpf/f2cr/8vLv//v7 + /P/+/////v///////////////////////////////v7+//n6+f/r6OH/zcCi/7KTVP+ebxn/mmcN/6R6 + Lf+6onH/1c68/+/v7f/8/Pz//v/+//7//v/+//7///////////////////////////////////////// + /////////////////////v///Pz8//Lz8f/h287/xrKL/6qEPP+bag7/mGQD/5llAf+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/mWUB/51tFP+3oXX/0c/L/+3t + 7f/9/f3////////////////////////////9/f3O/v7+zv////////////////7+/v/y8/P/2djV/7ii + dv+cbRH/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQP/pHsr/87ApP/z8/H//v7+///////////////////////////////////////+//7/9vbz/+fi + 1v/t7eb/+/v7/+zp4v+6oG3/oncp/7GTVf/OwaT/6+ji//r6+v/+/v/////////////+/////v////// + /////////v/+//z8/P/y8e//3dfG/72pe/+nfzH/mmgM/51tFf+si0r/zL+f/+jm3v/3+Pj//v7+//7/ + ///////////////////////////////////////////////////////////////////+/////v7+//r6 + +f/v7er/08i0/7aaZf+hdSX/mWYH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mmYB/5lmAf+ZZgH/mWYD/6iDOv/JwK//2Nna//X19v/+//////////////////////////39 + /c7+/v7O////////////////+/v7/+Pj4//Lw7T/qIM9/5hnBP+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/51uE/+7o3P/6ujh//z8/f/+/////v////7/ + //////////////7////////////////////9/f3//f38//z9/f/9/f3/6ufh/7qicf+dcB3/mmgQ/6Z9 + M//GsIf/4drN//X08v/9/P3//v7+//////////////////////////////////7+/v/4+Pj/6eji/9HF + qf+0lln/n3If/5lnD/+iey7/u6V2/9rTw//v7+z/+/v7//7+/v////////////////////////////// + /////////////////////////////////////////v/+//3+/f/19fT/5N7U/8Wzj/+siEP/nWwR/5ll + Av+ZZQH/mWYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/nW4V/7yn + gP/V1NL/7O3t//7+/v///////////////////////f39zv7+/s7////////////////19fX/2NfV/7yo + g/+ebhb/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lm + Af+aaQj/roxL/9rRwv/4+Pj//v/+//7//////////v////7////+//7//v////////////////////// + //////////////7+///29vX/3NbJ/76qfv+mfzL/m2kO/59xGv+xklP/0sWn/+nm3//5+fn////+//7/ + ///////////////////////////////////8/Pz/9PTy/+Ldz//BrIP/pn81/5ppD/+cbRf/rIpK/8i4 + mP/k4dj/9PX0//79/v////////////////////////////////////////////////////////////// + //////////////7+/v/6+vr/7+7q/9rQvP+6oG7/pHor/5lnCP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lm + Af+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgX/q4lH/87IvP/n5+j//Pz9//////////////////// + ///9/f3O/v7+zv///////////f39/+jo6P/NyL7/q4pL/5lmBv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aZgD/mWYD/6J5KP/Kupz/8vHu//39/f/9//7//v////// + /v/9/v7/+/z8//r6+v/7+vr//f39//////////////////////////////////3+/v/3+Pf/6eji/83C + pv+zlFj/nnEd/5poEP+mfjX/v6p//9/Yyf/08/H//f39//7//v/+//////////////////////////// + ///9//7/+/r6/+nl4f/Ow6j/tZhd/6B0IP+ZZwz/oncn/7ifa//Xz7v/8/Lv//z8/P/+/v7//v////7/ + //////////////////////////////////////////////////////////////7////9/v7/9/f2/+jk + 3f/Lupz/q4hG/5xsFP+ZZgT/mWUB/5lmAf+ZZgD/mWUA/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + Af+ecx7/vq6Q/9jY1//29vb///////////////////////39/c7+/v7O///////////19fb/2djY/7+x + lP+fdCD/mWUB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5pl + Af+dbRL/uaFv/+Xi2//7+/v////+///+/////////v7+//X08//i3dL/2M64/93XyP/09PP///////// + //////////////////////////////7//v/7/Pz/8fHv/+Dazf/DroX/p4I3/5pqEf+ecBz/sI9R/8/B + pP/u6+T/+Pj3//3+/v////////////////////////////7//v/+/v///Pz8//Pz8f/k39T/xrWN/6iD + O/+baRL/nGsW/6+NTf/LvZ3/6eXd//j4+P/8/f7///////////////////////////////////////// + ///////////////////////////////////+/////Pz8/+3s6v/VzLr/uqBx/6R7K/+aaAj/mGUB/5lm + Af+ZZgD/mGYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUB/5toCv+ylV7/zMnC/+jo6f/+/v7///////// + /////////f39zv7+/s7//////v3+/+rr6//Qzsr/sphl/5pqCv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mmgG/6qIQ//Vzrv/9vb2//7+/v////////7///// + ///8/f3/5eLb/7ypgP+ph0T/uaBu/+nn3//+/v7////////////////////////+/////v////////// + ///+/v7/+fn5/+/t5v/Rxqv/sJRX/51wG/+aaA3/pn0w/8Krfv/b08P/7/Ds//z8/P////////////// + ///////////////+//////7//v7+//r7+//s6uX/08mx/7WZYf+gcyD/mmgO/6J4KP++pXP/19C8/+/u + 6//8/Pz///////////////////////////////////////////////////////7///////////////// + /////////fz9//b29f/o5d7/z7+h/62LTP+ebhb/mWUE/5hlAf+aZgD/mGYA/5llAP+aZgH/mmYB/5ll + AP+aZgD/mmYC/6V9Mv/Fu6r/3d7e//r5+f/////////////////9/f3O/f79zv7//v/8+/z/5OTk/8nB + sf+ngDj/mWYD/5lmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWUA/5lmAP+ZZgD/mWUB/5lm + A/+gdiP/xbST/+/t6v/9/f3///////////////////////39/f/r6uX/z8ax/7GWYf+tjEv/4tvO//39 + /f/+/v7//f39//39/f/+/v7//v/+/////////////////////v/+/////v79//Ly8f/a1cj/wKuB/6mD + PP+baxP/nW4b/6+OUf/Mvp//6+jh//n5+P/+/v7//////////////////////////v///////v////z8 + /P/29PT/39vP/8WyjP+phT7/m2oS/5xsFf+riEP/ybiU/+Tg1v/49/b//f39//7///////////////// + /////////////////////////////////////////////////////////v/+//39/f/z8u//2tHB/7yl + d/+kejD/mWgL/5hlAf+YZQH/mWYA/5pmAf+aZgH/mWYA/5hmAP+YZgH/nW4U/72pg//V1NP/8vLy//// + //////////////39/c7+/v7O//////f39//Y2Nf/vq2N/55xGv+YZQH/mWYB/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/5lmAP+ZZgH/nW0Q/7idav/i3tb/+/r7//7///////////////// + /////////v/+//v7+//x8e//zL+h/7SZX//m39L//fz9//f29f/p5dz/5+Pa//Ly8f/8/Pz//v/+//// + /////////////////////////f7+//f3+P/r6OP/18y1/7SYX/+eciD/mmgP/6V8L//Bqn3/29PD//Py + 7//7+/z//v7+///////////////////+//////////////7+/v/5+vr/7ezo/9XMtv+5n2v/oXUm/5ln + Dv+gdCX/uZ5o/9bNtv/t6+j/+fr6//7+/v////////////////////////////////////////////// + //////////////////////////////7+/v/5+Pj/5+Pc/8y+ov+xkFP/n3EZ/5pmBf+ZZgH/mWYB/5lm + Af+ZZgD/mGYA/5lnAf+aaAf/ro9V/83Kw//q6+z//v7+/////////////f39zv79/s7+/v7/8PHw/9TS + zf+zl2L/m2kK/5lmAP+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgD/mWUA/5pn + Bf+siEL/3dXD//j4+P/+/v7//////////////////////////////////v7///v7+//n5Nj/1My1/+/u + 6v/6+vv/493R/7uhbP+0mWH/0MSq/+rp4//4+fj//v7+///////+/////v///////////v///v/+//z9 + /f/29vX/39rN/8OxiP+ngzr/m2sS/51vGP+ujk3/zr+h/+bk3P/49/j//v7+//7//////v/////+//// + ///+/////v////7+/v/9/f3/9/f2/+Tg1v/DsY3/qIVA/5trE/+baxL/qIQ9/8Wyjf/e29D/8/Py//z9 + /P/9//7////////+//////////////////////////////////////////////////////////////7+ + /v/7+/v/8/Lv/97Yyf/CrYT/pnww/5lnBf+YZgH/mWYB/5lmAf+ZZgD/mWYB/5llAv+kfDD/x7yp/9/f + 3//7+/v////////////9/f3O/v79zv39/f/l5eX/zMO3/6iDPP+ZZgP/mmYA/5lmAP+aZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgL/onUh/8m3lP/z8e///v7+//////////////////// + ///////////////////+/////v7+//j5+P/29vT/+/38//n6+v/Xzrn/qII5/5trEv+ngDb/wKuA/97Y + y//z8vH/+/v7///+//////////////////////////////7+/v/5+fr/7Orl/9DHsf+4nGb/oHMi/5po + D/+key//vaZ5/9nUxP/x8e///P38//7//v///////////////v///////v////7////+/v7/+vr6/+np + 5f/SyrT/vKRx/6N6K/+ZZw7/oXQj/7SYYf/Sx7D/7Ork//r6+v/+/v7////+///+/v////////////// + //////////////////////////////////////////////7////+/v7/+fn5/+Lf2f+2nGr/m2sN/5lm + AP+ZZwD/mWYB/5hmAf+YZgH/mWYB/59wF/+9qof/09TS//Ly8/////////////39/c7+/v7O+fn5/+Hf + 4P/Bs5f/n3Qe/5lmAf+ZZgD/mWYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5xr + Dv+3m2T/5eHY//v7+/////////////////////////////////////////////7//v/+/////v////// + /v/+/////Pz9/+ro3//Kupr/sI9Q/51uGf+fcR//s5Vb/87Cp//m5N7/9/f4//7+/v////////////// + //////////////7//v/8/Pz/9fX0/+Lf0//Gs4z/qYQ8/5tqEv+dbxr/ro9Q/87CpP/s6uP/+Pj4//7+ + /v////7//v/////////+/////v////7////+/////P39//b19f/q597/y7qa/62KSf+cbRf/m2oU/6iC + PP/DsIf/5uLW//X08//7/Pz//v////////////////////////////////////////////////////// + ///////////////////5+fj/29XH/62MTP+ZaAf/mWUA/5hmAP+ZZgD/mWYA/5hmAP+ZZgD/mmgI/7SY + ZP/T0Mv/7e3t/////////////f39zv39/c7x8fL/1dPR/7egdP+baw3/mWYA/5lmAP+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/mmYB/5lmAf+aZwX/qoQ7/9jOuP/29fX//v7+///////////////////+ + ///+/v///v7+//7+/v/////////////////////////+///////+/v7/+vv7//Lx8P/c1cX/u6Ny/6R6 + Lv+bahX/pH0y/7ymef/a08T/9PTy//z9/P/+//////////7//////////v////7////9/v7/+fv6//Hv + 6v/Sx7D/sphf/6B0Iv+aahH/pn4z/7+pfP/d1sf/8fDv//v8/P///v////////7//v////////////// + /////////v7+//v7+//u7er/18+8/7mhb/+ieiv/mmgO/6BzHv+4nWP/0MWs/+fm4f/4+fj//f7+//// + ///////////////////////////////////////////////////+/////f39/+3q5P/Bqn7/nnAX/5lm + Af+ZZQD/mWYA/5lmAP+ZZgD/mWYB/5lmAP+ZZgP/qoZC/87Iu//q6ur//v3+///////9/f3O/f38zu7u + 7//Szsf/rY9S/5lnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYC/59z + Hf/Cr4j/8O7q//7+/v/////////////////+/v7/+Pf3//Lw7P/u6+T/9/f0//7+/v////////////7/ + /v/////////////////+/////v7+//j39//p5dz/yruc/6yKTP+cbhr/nW8Z/6+PUf/Qw6T/6eff//j5 + +P/9/v7//////////////////v////7////+/////f3+//Tz8//f29H/xbWQ/6yKRv+baxb/nW8b/7CR + Uf/KvZ7/5+Xf//f39//+/v7///////////////////////////////////////39/f/29vX/4+DY/8m7 + nP+ti0v/nW0X/5pqEf+mgTn/wKyE/+Hc0f/5+fj///////////////////////////////////////// + //////////////3+/v/09PP/1civ/6d/MP+ZZwP/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5ll + Av+idyf/w7mj/+Li4//8+/z//v////39/c78/PvO6+vr/83Gt/+lfzT/mWYC/5llAP+aZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+baQz/tJZd/+Hc0f/6+vr///////////////////////n5 + +P/c2Mr/xLOL/76mdv/d1ML/+vn5/////////v/////+///////+/////v////7////+/////v/+//v8 + /P/v7uz/2dLC/7ukd/+jei7/m2sV/6V8Mv+/qX7/29TF//Hw7v/7/Pz//v7///////////7//v////7/ + ///////////+//r5+f/w7ur/2dC7/7abZf+hdiT/mWgO/6N6Lf+8p3j/2tPD//T08v/8/Pz//v7+//// + //////////////////////////////3+/v/7+/v/8O/s/9nSwf+9pnj/o3sw/5loEP+gdCX/xLOM//Dv + 6//+/v7/////////////////////////////////////////////////9/j4/9vXyv+yk1f/nGkK/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/mWUA/5xtFf+8qYb/1tXU//b29v///////f39zvr4 + +s7f397/xLad/6BzH/+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6d/ + Nv/PxK3/9PTz//7+/v//////////////////////9vb1/9LNu/+4o3T/poE5/8q2kf/19fT//v////39 + /f/6+fn/+vr6//z9/f/+//////////7///////////////3+/v/3+Pf/5uTe/8zApP+vkVX/nnAe/55w + Hf+ujU3/zr+h/+fk3P/4+Pf//v7+/////////////f////7//////////v7+//7+/v/29vX/49/U/8m2 + kv+phD7/nGsT/5xvGf+xklX/0saq/+bk3f/29vb//v3+/////////////////////////////v////7/ + ///9/v7/+fn4/+fk3f/OwaL/sJFT/6uGQf/PwaH/9PTx//////////////////////////////////// + //////////////39/f/q6OT/val//55xGP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hm + Af+ZZgH/m2oM/7WcbP/T0s//8vPz///////9/f3O9/f4zt3c2/+8qIH/nWwR/5llAP+ZZQD/mmYB/5pm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ecRr/v6yC/+ro5P/8/f3///////////////////////// + ///8/Pz/8fDu/9zXyv+ylVr/w6+D//Py8P/+/v3/9PPx/9zUw//Z0b3/6+nk//r6+v/+/f7//v/+//// + ///////////////+///8/Pz/8vLw/9/Yyf+/qX7/pX0y/5xrE/+key3/uqNy/9vTwf/v7+z/+/v7///+ + //////////////////////////////7+/v/7+/v/7uzp/9bMuP+5n2v/oHUm/5tqEv+lfjH/uaJ0/9bO + vP/x8O3//f39/////////////////////////////v////7////+/v7/+/v8//Tz8f/d18r/29O+//Dt + 5//8/Pz////////////////////////////////////////////+/v7/9/f2/9XJsv+mfzT/mWYE/5lm + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYA/5lmAf+ZZwX/rY1R/87LxP/p6ur//v7+//39 + /c7y8/PO2tnW/7WaaP+aaAn/mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/m2oL/7SW + W//f2s7/+Pn5//7////////////////////////////////////9/f3/7+3p/8m7mv/TybH/9/f1//v7 + +v/i28z/tJVX/6qGQf/FtI//49/V//T08v/8/f3//v7///////////////////7+/v/9/f3/+/r6/+nm + 4f/Sxqz/s5Zc/55yH/+cbhz/rotN/8i5mf/i39f/9vb1//7+/v///////v////7//////////v////7/ + ///9/f3/9vb1/+Tf1f/KuJT/qoU//5trEv+dbRb/rIpI/82+n//q5+D/9/f3//3+/f/+//////////// + ///+/////////////////////v7+//v7+//8+/r//f39//////////////////////////////////// + //////////////n6+v/i3tP/tphg/5xqC/+ZZQH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZQD/mmUA/5llAv+ngjr/ycO0/+Hh4f/7/Pz//f39zuvr687S0Mn/rY5T/5pnBP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAf+ZZgD/mWYB/5lmBP+nfjL/1Mmv//f39f/9/v7///////////////////////// + ///////////////////5+Pj/6eji//Dv7P/8/Pz/+fn4/9jOtf+qhDz/mmkT/6F2J/+2m2X/1Muz//Dv + 6v/7+/r//v/+/////////////v/+/////////////Pz8//X18//f2s3/xLKL/6eBO/+aahb/oHcp/7ad + af/Yzrr/8/Lu//v7+//9/v///v///////////////////////////v//+/v7//Lw6//UyrT/tptl/6J1 + Jf+aaBD/pHou/7uldv/Z0sH/7+7r//r7+//////////+//////////////////////////////////// + ///////////////////////////////////////////////////9/f3/6+rm/8Guh/+gcxz/mmYB/5lm + Af+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6N5K//EuaX/4ODg//r6 + +v/9/f3O4uLizsvFuv+phD//mmYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgH/nnAY/8Gr + gf/r6eT//f39//7+/////v///v/////////////////////////////////////////8/Pz//v79//// + /v/7+/r/7Onh/87Aov+wk1v/nnIg/5trE/+qhj7/xrWO/+Tg1P/29vX//Pz9//7////+//////////// + ///+/////f7+//n5+f/t7Of/zsKq/7CTWf+ecR3/m2wW/6yJRv/Kupj/5uLZ//b29f/8/f3//v////7/ + /////////////////////////v7+//X29P/j3tT/xbOQ/6qHQ/+baxT/nG4Z/6yNTP/Jupn/5OHa//b2 + 9v/+/v7///////7///////////////////////////////////////////////////////////////// + /////////v7+//T08v/RyLL/qII5/5lnBf+ZZgD/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQH/n3Ie/8CymP/g4OH/+vr6//39/c7g3uDOyL+u/6V8MP+ZZgL/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+aZgH/mWYA/5tpCv+wj1L/3dfK//n4+f/+/////v7///////////////////7+ + /v/+/v7////////////+/////v////7+///+//////7///7+/v/8/fz/8vLx/9zYzf+/rYf/poI8/5ts + Fv+hdSb/uZ9q/9TJs//p6OP/+fr5//3+/v/+/////////////////////v7///38/f/x8vH/3djN/7+s + g/+ngTn/nGsX/6J3Kv+7onH/1My3/+7u6v/6+/v//v7//////////////////////////////v7+//r5 + +f/t6+f/2M64/7mfaf+jdyf/m2gO/6N5Kv+5oG//2NC+//Py7//7/Pz//v7+/////v////////////// + ///////////////////////////////////////////////////7/Pv/497V/7OYYP+baw3/mWUB/5lm + AP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+cbRP/vauH/9ra + 2f/29vX//f39ztvb287GuqP/oXYk/5llAf+ZZQD/mWUA/5llAP+ZZQD/mGUB/5BfEP99Uy7/Z0RS/1Y5 + cP9NM4D/VDdz/2dEU/98UjD/jl4T/5hkAv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAP+ZZgP/o3os/8q7 + of/w7+3//f79////////////8vL//6Sj///W1vr/9vX0//f29f/8/Pz//v/+//7//////////v////7/ + ///+/v///f3//+bn//+2tv3/h4j5/3Jw6P+Gfbr/oIZw/6F2K/+cbBf/qII6/76qgf/W0c7/29v4/9/e + /v/f3///39///9/f///f3///4+P///r5/v/5+Pn/6ujk/9PIsf+2mmT/oHUl/51tGP+phUD/x7aR/+Dc + 0/+0s/j/tbX///z8///////////////////+/////v7+//3+/f/r6vX/ysbd/62cm/+Rbk7/hlos/4lf + Nf+dgm3/wbev/+bk3P/29/b//f39///////x8f//xsb//5KS//+Dg///oqL//9jY///6+v////////// + /////////f7+//Dv7f/GtZL/oHQf/5llAv+PXxD/Xj9i/4RYI/+ZZgD/mGYA/5llAP+ZZQD/mWUA/5dk + A/9tSEn/cEpF/5hlAv+aZgH/mmYB/5xrDv+5o3n/1dTT//Ly8v/9/f3O2dnZzsW3mv+fchr/mWUB/5ll + AP+ZZQD/mWUB/41dFP9jQVr/MyKr/xQN3v8XD9j/Kxy3/z0omv9CK5H/OCWi/yQYw/8vH7D/WTtq/4da + Hf+YZQL/mWYA/5lmAP+YZgD/mWYB/55vFv++p3n/6eXg//z8/P////////////////+/v/7/Hh7//3Fs + 3f/Ku6D/08et/+/t6v/8/f3//v/////////+/////v////r6//+7u///RUX//xMT//8FBf//AQH//w0N + /P8yLuj/dmah/6F+Q/+caxX/nnEd/5J5bf9RStT/LCv4/yAg//8gIP//Jib//0hI//94eP//7e3///7+ + /v/8/f3/9fX0/+bh1f/Esov/qoU//5xsFf+gdSP/p45u/z465f87O/7/4eL7//3+/v////////////// + ///////////+/8fH/v9ZWv3/KSj3/xYS6v8UDuL/GRHZ/zEjuv9uVHn/uqN3/9fQv//x8O//0tP+/2Bg + //8bG///Bgb//wEB//8MDP//LS3//4yM///p6f///v////7//v/39vb/2M+9/6qGQP+ZZwX/mWUB/3JM + QP8SDOL/Uzd1/5dkA/+ZZgD/mWUA/5llAP+ZZQD/ilsa/yQYw/8vIK//j14R/5pmAf+aZgD/m2kL/7Wd + bv/Pz83/8PDw//39/c7T1NLOwrKS/51uFP+ZZQH/mWUA/5hkAv96UTP/MyGp/wkG8P8KB+7/OSag/3JL + QP+MXRX/lGIJ/5ViB/+PXxD/elEz/0Qtjv8RC+L/Jxq9/25JSP+WZAf/mWYA/5lmAf+baAj/r41M/+DY + yv/7+vr/////////////////+Pj//3Jy//8CAv//KCHc/5Z3VP+tjUz/3tjK//v7/P/+/////v7+//z9 + /f/8/P7/u7v//ysq//8BAf//AgL//xcX//9HRv//V1f//0FB//8lJPf/bGXF/6qRbP+gdij/mGgZ/5Rv + Q/9dTqj/Bwb5/wAA//9LS///1NT+/+7u///9/f////////////////7//Pz7/+3s5//Xzrr/tp1o/6F4 + Kv9xT1b/Dgvs/w4O/f+dnOn/8vLy//z8/P///v////////////////7/9/j//+Pk//94eP//Bgb//wEB + //9JQ9f/lnpk/5ZoHv+dbhn/t55p/8G/2/9GRv3/AwP//wAA//8ODv//Ozv//1ZW//9JSf//Jyf//2Ji + ///j4v///Pv7/+jj2/+3nWn/m2wP/5llAf+WZAT/TTN//wIC+/8nGr3/i1wX/5llAP+ZZQD/mWUA/5ll + AP9pRVD/Cgfv/xAL5P93Tzj/mWUA/5llAP+aZwj/spZj/9TSz//z8/P//f39ztLS0c69qof/nW0S/5hm + AP+YZAL/dU08/yIXxv8BAf3/DAjr/1Q3c/+PXhH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/kmAM/1Y5 + b/8MCOv/Egzi/10+Y/+UYwf/mWYC/6R6Kv/MvaD/8/Hv//7+/v/////////////////c3P//MDD//wAA + //8LCvn/eGaY/6mHRP/Zz7r/+vr6//3+/f/z9PH/5uTb/9fW7P9DQ/3/AQH//wMD//9CQv//t7f//+vr + ///x8f//5+j+/7Gw//9aWvv/p6TZ/8i5mv+qiUn/nG0Z/3tWSf8PC+r/AAD//3Z29//4+Pn//v7+//7/ + /v/////////////+/////////f39//X19f/k39f/xbae/0s+tf8BAf3/AgL9/0tF0//HvrT/6Ofg//n5 + +f/+/v7//////////////v///////7S0//8REf//CQn//4+N8P/Yz7z/vKRz/6qFP/+7p4b/Z2Xs/wUF + //8BAf//Jib//5qa///l5f//8fH//+3s///Dw///Zmb//5qb/v/r6+v/ybiZ/6J3JP+ZZQL/mWYB/4xd + Fv8nGr3/AAD//wsI7P9sR0v/mWUA/5llAP+ZZQD/kmAM/zomn/8BAf7/AwL6/1E1ef+XZAP/mWUA/5pn + Bv+wkVn/0M7H//Dw8P/9/f3Oz8/Nzruogf+dbRH/mGYB/39UK/8kGML/AQH9/wUD9/9MMoD/kmAM/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/kWAN/0Yviv8EAvn/EAvj/2tHTf+bbBT/uqJy/+jk + 3v/7+/v//v///////////////f3//5WV//8JCf//CQn//zY2/v9PSNL/sZ17/+Ldzv/8/Pz/+fr5/93W + w/+7o3D/hHiy/w0M/P8AAP//MTH//83N///9/v///v/////////+/////v3//+bm///r7Pv/7+7s/9nR + vv+6oXD/g2Na/xAL6f8AAP//Zl/P/+Hazf/y8fD/+/v7//7+///+//7//////////////////v7+//z8 + +//LyvD/IyP2/wAA//8eFtb/JRzO/4hsZ/+/rIP/4t3R//Pz8v/8/P3//v7///7////+////t7f//xMS + //8KCv//nJ3+//j49//p5d3/2NG9/7q42f8kJPz/AAD//xcX//+qqv//+/v///////////////////// + ///v8P//4eH5/9vTwv+riEP/mmcG/5lmAP+aZgD/ckxA/w4J6P8BAf3/EAvk/0Irkf+TYQn/mWUA/5ll + AP95UDX/Egzh/wAA/v8UDd//Lh6z/4xcFv+ZZQD/mmcG/66PVP/Oy8T/7e3t//z8/M7MycjOuaV9/5xs + EP+SYQz/PyqW/wIB/P8AAP7/Jxq+/4dZHf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/flQs/xcQ2P8BAP7/JxvC/5l8Yv/b08P/9/f2//7+/v/////////////////s7P//TEz//wAA + //8wMP//trb+/0dH9v+uq9f/8vLv//39/v/z8vD/yLeS/51zKP9IM5b/AQH//wYG/f+Dg/X/+Pj8//// + ///+//////////////////7//v////7+/v/9/f3/+fn4/+bi2/+nn77/FBP1/wAA//9SPZb/s5Zb/8y/ + pP/l4t3/9/j3//7+/v////////////7//////////Pz+/5GS/v8ICP//Cwv9/3Rrvf9RR8D/UTaC/51w + J/+0l2D/0MSs/+3s6P/4+Pj//v/+//////+3t///ExP//woK//+dnv///v////z8/P/6+vn/pKT7/w0N + //8BAf//XFz///Hx///////////////////+/////v////z9/P/q5+D/vqV0/51sEf+ZZgH/mWYB/5dl + A/9ONHz/AgL7/wsH7P9QNXn/Khy4/39ULP+ZZQD/lmME/0wzgP8DAvr/CAXy/1M3df8uHrL/cUtC/5ll + AP+aZwX/rY1Q/83Kw//w8PD//f39zs/OzM67pn3/mmsP/3VOOv8RC+L/AAD//wgF8v9hQF3/mGQB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+TYwn/PimY/wAA/v8GBfn/e3XS//Hw + 7//+/v7//////////////////v///7m5//8WFv//AgL//3Jz///x8v//dHT+/3p6/P/39/3///7///b1 + 9f/Xzrz/rJJq/zstsv8AAP//EhDy/6CVsv/n49v/9vX1//z9/P/+//////////7////+/////v////// + ////////+/z8/8XE9v8YGP7/AAD//043jf+baxT/o3sv/7qkdf/b1MP/9fTx//z8/P/+//////////// + ///o6P//RET//wAA//8zM/3/zs3r/6Kg3/82LM3/jWU8/5trE/+ngDf/wq2E/93Wx//19PL//Pz8/7e2 + /v8SE///Cgr//52e///+//////////////+Jif//AwP//woK//+amv///v7///////////////////7/ + ///+/v7/8vHv/8/Aov+keij/mWUC/5lmAf+ZZgH/jF0W/ykbu/8AAP//IhbH/4NWJf9AKpT/Vjlv/5dk + A/+HWR7/IRbH/wAA//8hFsf/hFci/0cvif9IMIj/lmMF/5lmBP+tjE3/zsnD/+/w8P/8/f3Ozs3Mzr2o + gf+ZahL/TjN9/wMC+/8AAP//HBPP/4VYIv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mmYA/5lmAf9bPGf/BQT2/wAA//9KSvv/7Oz9///////////////////////19v//amr//wIC + //8ZGf//wMD///////+7u///SEj//9zc/////////f39//X08//U0dP/Skbj/wAA//8dFNT/kWtB/7md + av/UyrX/7Orm//r6+v/+/////v////7/////////////////////////zMz//xoa//8AAP//X1W//66O + T/+dbxr/nW4Z/7CQUf/OwKP/6eXf//f49//9/v3//v///7Gx//8SEv//BAT//3t7///4+P3/5OX5/05N + 9/94aqz/ro5O/51uGv+fcB3/sZFW/87Bpv/o5t//sLD4/xIS//8KCv//np7//////////////////4SE + //8BAf//Fhb//8DA//////////////////////////7///f49//Y0MD/roxL/5toCP+ZZQD/mWUA/5ll + AP9yS0D/Dgno/wEB/f9HL4r/lmMG/2hFUf80Iqn/jFwW/2FAXf8IBfL/AwL7/0wygP+WYwT/a0dN/ysc + tv+JWhv/mWYF/62MTv/QzMX/7Ozt//v8/M7Ly8nOuqeB/5NnIP8yIaz/AAD//wAA//86Jp7/k2EK/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mmYA/3BKRf8MCOz/AAD//x8f + ///T0////////////////////v7+/9DQ/f8mJv//AAD//1BQ///u7v///////+zs//9TU///lJT///39 + ///+/////v39//T0+f9tbvv/AQH//xMN4v9HL4v/XkF3/25bmP+HgMn/qaju/7u7/P/Ly/7/2tr+//Lz + ///////////////////MzP//Ghr//wAA//91dPL/29PG/7ulef+kfDL/mmsV/6R7Mf++p3v/2NLB//Hw + 7v/w8Pz/YmL//wEB//8bG///w8T+/////v/9/f7/kJD+/05M9P/Kw8b/vKR1/6Z7L/+bahb/o3wz/7ym + ev+Xkcv/EBD8/woK//+dnv///v//////////////pKT//wwM//8NDf//Zmb//4+P//+env//oaH//7S0 + //+4uP3/ubjq/56Lkf+RZib/mGUC/5llAP+ZZQD/l2QE/00zf/8CAvv/Cwfs/21ISf+ZZQD/iFoc/y4e + sv9lQlf/MiGs/wAA/v8RDOL/eFA3/5llAP+GWR//KBq9/2tGTf+aZwX/rY1Q/87Kw//t7e3//Pz8zs/P + zs68qob/jWMt/x0Tz/8AAP//AQH+/00zgP+YZAL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgL/fVhE/xAM6v8AAP//ExP//7q6//////////////7+/v/y8PH/f37w/wYG + //8KCv//mZj+//7+/////////f3//46O//9GRv//5OX///7//v///////v7+/56e/v8LC///CQn9/z07 + 6v9DOcX/PCyr/z0rpv9HObf/Mi3i/xsb/v8iIv//kJH///z8/////////////8zM//8aGv//AAD//3h4 + /v/29fj/6OXg/87Bp/+wklj/nXEf/51uGv+tjEz/zLyd/7Wy3/8dHf3/AQH//1ZW///v7////v7///7/ + ///Oz/7/MzP//62s9//o5dz/z7+h/7CQU/+dcBz/nG8Z/3hfdf8NC/P/Cgr//5yc/f/+//////////// + ///MzP//Hh7//wUF//87O///XV3//2Ji//9jY///Z2f+/01N+/8cG/r/FBDs/z0pmv+RYA7/mWUA/5ll + AP+MXBb/Jxq9/wAA//8gFcr/iFob/5llAP+XYwT/TjR8/yAVyf8LB+3/AAD+/zYkpf+RYA3/mWUA/5Ri + CP9AKpX/QiuS/5VkDv+ukFf/zMrE/+/v7//9/f3O1tbWzsGwjv+KYTT/Ew3f/wAA//8FBPb/XT5l/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xrDv+PdXf/FBL0/wAA + //8MDP//pKT//////////////Pz8/83K3f8uLOz/AAD//yko+P/W1vj/////////////////zc3//yws + //+lpf///v3///////////7/29v//zU1//8SEv7/oaDr/8fAu/+rlHP/mHA0/5NlIv9mS3T/Cgf0/wEB + //90dPv/+fn9////////////zMz//xoa//8AAP//PDz//93e/v/7/Pz/8/Lw/9vVzv+8qH//pHwy/5tr + FP+fdy//Wk2w/wQE/v8LC/7/nJz8//39/v////////////Ly//9YWP//YGD//+/w/P/z8u//4drK/7yo + ev+jfC7/b0xV/wsI7v8JCf7/mpr6/////v////////////Hx//9eXv//Bwf//4OD///w8P//8vL///Ly + ///r7Pj/s6/c/xcW9/8AAP//Lh+y/45fEf+ZZQD/mWUA/3BKRP8NCer/AQH+/0Mtj/+VYgf/mWUA/5ll + AP94Tzf/EQvj/wAA//8IBfL/Y0Fa/5llAf+ZZQD/mWUA/18/X/8hFsj/g1gs/7KVYP/OzMn/8O/w//39 + /c7R0tPOw7WY/45mNv8aEdP/AAD//wYE9f9fP2H/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZgH/mmYB/5lmAf+ZZgX/qYQ9/5+Wu/8VFfz/AAD//wwM//+kpP/////////////7+/z/mJfu/wsL + +/8BAf7/W1Xc/+no6//+/v7////+//7////v7///UVH//0pK///o6P////////7+/v/7+///m5z//xYW + //9vcP3/6efy/+Lc0//IuJX/q4lI/1Y8f/8EA/n/DQv0/42Gx//s6uT/+/r6//7+/v/Cwv//Fxf//wAA + //8pKf//cnL//87O///LzP//e3v7/42L4v/Et6T/sJJZ/4pjQP8hF87/AAD//yMh8P/Cv93/9vb1//7+ + /v////7//f7//5ST//8iIf//vLz///3+/v/6+vn/5+Te/8i7ov9uXJv/BwX1/woK//+bm/z///////// + /////////v7//8XF//8pKf//R0b//+Xl/////////Pz8/+nm4v+TiLb/Dgzz/wMC+v9NM4D/lmMF/5ll + AP+WYwb/Ri6M/wEB/f8JB+//aUZQ/5llAP+ZZQD/mWUA/5BfD/80Iqn/AAD+/yEWx/+IWh3/mWUA/5ll + AP+ZZQD/fFIx/xUO2/9bPnH/tZtt/9XS0f/y8fL//f39ztPT1M7Dt6D/l3A1/y0etP8AAP//AwL6/1Y5 + cf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/6FzHv/JtpH/np3r/w8P + /v8AAP//FBT//7q6///+/v//8PD//76+/v84OP7/AQH//wQD+/9oYND/4uDt//z8/f/7+/r/8vP1/9fX + +/9QUP//DQ3//4WG///h4v//+vr////////x8f//hYX//yoq//+YmP7/6ur6/+jm7f+ooMr/JyHg/wMD + +/85J6j/mnVG/8SviP/X0c3/raz3/1ZW//8HB///AAD//25u//9wcP//ICH//xoa//8GBv//JCT+/8TE + 8P+9ttD/VUvK/wUE+f8AAP//KyPO/52Ki//WzcD/8vDt//n6+//s7f7/kJD//w4N//9KSv//zc3///Pz + /v/l5fz/fHvy/ygn8v8BAf7/Cgr//52d/v//////////////////////+vr//6Sk//8yMv//enr//+Tk + ///s6/P/s6vB/z00zf8DAvv/JRnA/4BWKf+YZgH/kF8P/25IR/8ZEdX/AAD//wsH7f9iQVr/j14R/5hk + Af+ZZQD/mGUB/18/X/8KBu//TDKB/5ZjBP+ZZQD/mGQC/45eE/9qRk7/DQnp/yMZzv+RgaD/0dDb//X0 + 9f/9/f3O29vbzsa8qf+geDL/Ri+L/wEB/f8AAP//Ry+I/5dkA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZgH/mWYB/5lmAv+cawz/tpli/+Ld1P+Dg/v/BAT//wAA//8iIv//19f///j4//+UlP//Ojr//yIi + //8fIP//Hx/+/zEw+P+Dgvv/7+/6/+jl3P+vpbX/SkXg/yMi9f8eHv3/Kyv+/1pa///U1f/////////+ + ///z8///oaD//01N//9jY/7/YWH+/ywr/f8dHf3/WVTc/5d6ZP+cbhn/n3Ee/6aHWP93bLT/WFXm/zg4 + +v8YGP7/hIX//9/f//9jY///FBT//wYG//9BQf//paX+/05O/f8nJ/7/Hh79/xsa9/8bF+P/OSq1/5J2 + a//IuJb/2tfa/39/9/80NP7/ISH//yMj//9DQ///pKT//+fn//+TlP//Zmb//zc3//8fH///oaL///7/ + ////////////////////////+vr//7++//9bW///WFj9/2Nh9f8sKen/EAvn/zAhrv95UTb/l2UC/5Rj + B/9ZO2r/IhfG/xQN3f8TDd//FA3d/yIWx/9QNXn/kmAM/5llAP+ZZQD/hlkf/z0pmP95UDX/mWUA/5ll + AP+PXhL/Ri+J/yIXxv8UDt3/Fg/g/y4r5/+Sku7/9fX5//39/c7h4eHOzMW4/6eBO/9uSUj/DQnp/wAA + //8wIK7/j18Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mmYE/6iBN//XzLb/5ub0/1FR + /v8AAP//AQH//1hZ///y8v///f3//+rq///f3///39///93e/v/b3Pv/29v6/+fm/v/39vf/0saq/6B7 + Ov+SbUb/p5OM/8K80P/S0e//3t78//X1///////////////////8/P//4uL//6+v/v+JiP//kZD+/8LC + /P/i4uz/2tPB/7ujcf+keyz/m2oV/6R8NP+1oH3/xb3G/7i37//Nzv3//v/+/+7u//+xsf//k5P//9DQ + ///w8P//3+D//97e/v/X2Pj/xsTe/6ueoP+WeFv/lmcg/6F3Kv+3nWz/vrS3/8/O6v/a2vr/39///9/f + ///t7f///v7///7+///29/7/5eX//8PE/v/Z2f///v///////////////////////////////f7//+rp + /v+vrev/aVqt/1M4e/9sSEv/jF0V/5llAv+ZZgD/mGUC/4xdFf+GWCD/hlgg/4ZYIP+GWCD/hlgg/4tc + GP+XZAP/mWUA/5llAP+YZAL/kF8P/5dkBP+ZZQD/mWUA/5djBP+IWhz/hlgg/4ZZIP+LZDj/qJui/9PS + 5P/6+vr//f39zt7e4M7Mx8D/rItM/49fFv8zIar/AQH+/xEM4v95UDX/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYB/5hmAf+fcRj/w6+G/+7s6P+6uv3/GRn//wAA//8SEv//qKj///7+//////////////// + //////////////7////+/v7///7+//r5+P/Xzbf/r49S/59wHP+fciL/spRb/8zApv/o5eD/+vn5//7+ + /v/+///////////////////////////////+/////v/+//39/f/5+fn/6OXe/9DDqP+vj1P/nW0c/51v + Hv+tjVH/zsCk/+zq4//3+Pf//v79/////////////////////v/+/////v////39/v/5+fn/6+rl/9TK + s/+2m2f/oHQk/5tsFf+rhkH/xbOO/+Ld0v/49/b//f39//////////////////7////+/////v////// + ///////////////////////////////////9/v7/8/Py/9TIsP+ngDT/mWYE/5lmAP+ZZgH/mWYB/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6J4J//Ct6L/4eHh//z8/P/9/f3O6OjpztPPy/+wlV//mmgJ/3FK + Qv8SDOH/AwL6/0Qtjf+TYQv/mWYA/5hmAP+ZZgD/mWUA/5llAf+ZZQH/m2kK/7GSVv/g2c3/6Of6/1lZ + //8CAv//AwP//15f///t7f7//f3+//7+/v/9/v7//v////7+/////////////////////////f39//Hw + 7f/e18j/vqd5/6J4Lf+bahX/o3wx/72pff/i3M7/8vLw//v8/P/9//7//////////////v////////// + //////////////7//v/8/Pz/8/Lw/9fRwf+6pHb/pX0y/5trE/+lfC//vqh5/9jRv//u7ev/+/v7//// + /v////7//v/+///////+/////v/////////+/f7/+Pf1/+Xg1f/Es43/q4hD/5xsFv+gdCP/uJxn/9bM + tv/r6+b/+fn5//7+/v///////v7///Ly///z8////v7////////+//////////////////////////n5 + +P/d2Mz/sZRa/5tqC/+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mGYA/5hmAP+ZZgL/poE4/8bB + sv/g4eH//f39//39/c729fXO3dvY/7mid/+cag//lWIG/1o7af8MCOr/Dgno/2RCWf+VZAX/mGcA/5hm + AP+ZZQD/mWUB/5hnA/+mfjD/0cSr/+bm8f+Ghv7/Dg7//wMD//9GRv//0dP8//Lx7//r5uD/7Ojj//X1 + 9P/9/v7//v///////////////////////////////v7+//r5+P/m49v/yrqb/66MTP+dbhj/nXEc/7KU + WP/NwKT/6ebf//b39v/9/v7//v/////////////////////////////////////////9/f3/9fX2/+bk + 3f/Sxqn/spNW/51wHP+cbhr/q4pL/8m6m//q5+D/+fj4//7+/v////7////+//7///////////////// + ////////+/v7/+/u6v/Y0Lv/t51q/6R4Lf+dbBn/qIM+/8Gth//e2c//9/f3//7+///Jyf//XV3//2Nj + ///V1f///////////////////v/////////+/v3/7uzn/8Gth/+fcxz/mWYC/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAP+ZZgD/mGYB/5lnBP+tjU7/0c3G/+bo6P/+/v7//f39zvb29s7Y2dj/vq+Q/59x + Gv+ZZQD/kmEL/1s8Z/8WD9r/Fw/Z/1w+ZP+OXxL/mGYB/5pmAf+ZZQH/nnAY/7umfv/HxuL/d3j9/xMT + //8ICf//Tk7//9HR///y8fD/z8as/7ieav+9pXn/4dzR//z8/P////////////////////////////// + ///+/////v7+//v6+//y8O3/2dHA/7umd/+jezD/m2sV/6R8Mv+8pXf/29XF//Hw7//8+/z///7///7/ + //////////////////////////////7+///+/v7/+/z8//b29f/e2cr/vql+/6V+N/+aaRb/pHow/76n + ef/Y0b//8vHv//r6+v/+//7//////////////////////////////////f39//X19P/m4tn/y7qa/62K + Sf+cbRf/oHYl/8e3kv/09PD/9vb//2xs//8CAv//AwP//35+///8/P/////+///////+/////v7+//f2 + 9v/a0Lr/qYQ7/5lnBP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAP+ZZgH/mmkK/7Sa + af/V1NH/9fb1//7////9/f3O9/b3ztra2v/Fu6X/o3oq/5llAf+ZZQD/lmMG/3RNP/82I6b/GRHV/zUj + pv9cPmT/dE09/3pROP95X3b/bmfY/zMz+/8QEP//MTH//4mK///k5P///f7+//Lx7v/Owqf/rpFX/6aB + Of/SyLH/+Pj4///////////////////////////////////////+//////7///7+/v/39/f/6ebg/82/ + o/+wkVb/nXAf/5xuG/+vjk//ybuc/+jk3f/49/f//f39/////////////////////////////v////// + /////////v7+//n5+f/q6OL/zsKo/7GUWf+fch//nW4X/6yKR//JuZj/5N/W//j49//+/v7///////// + ///////////////////+/////v7+//v8/P/x8O3/3NO//7mgbv+xklL/0sit//f49v/6+v//h4f//wwM + //8REf//nJz///7+//////////////7////8/Pz/5eHY/7aZZP+caw7/mGYA/5hlAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAP+dbRT/vauI/9XV1f/4+Pj///////39/c77+/vO5+fn/8zH + u/+phkL/mWYE/5lmAP+aZgH/mWUB/5BfEP90TT7/TjR9/zonnv8wILD/KB/Q/y4r7/9ERP3/ZGT//5eX + ///a2v//+vr////////9//7/+/r6/+/u6v/Nwqr/qIQ+/8i3l//09PP//v7+//v7+v/29fP/9/f2//39 + /f////////////7////+/v7//////////v/8/Pz/8/Pw/93Xyf/ArIH/poA1/5prE/+ieSv/u6Rz/9jQ + vv/t7en/+vr6//////////////////////////////////////////////////z8/P/x8vD/4NrN/8Ct + hP+phDz/m2sW/6F3Kf+4n23/1867//Dv6//8/Pz//////////////////////////////////v7///7+ + /v/4+Pf/6OXe/+Te0v/v7ur//P39///////q6v//nJz//6Cg///w8P///////////////////f39/+/t + 6v/JuJT/oXQg/5pmAv+YZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGUB/6F2 + JP/Gu6T/39/f//r6+v/+/////P39zv39/c7v8PD/z83J/7KXYv+aaQn/mWYA/5pmAP+ZZgH/mGYB/5lm + Af+XZAT/kWAO/49lKv+ql4//09Dr/+jo/f/19f7//v7///////////////////7//////v///P39/+Xf + 1P+5n23/zb6j//b18//7+/v/6OXb/83An//TybP/6efi//n5+f/+/v7////////+//////////////// + ///+////+fj4/+3r5f/PxKn/s5dd/6ByIf+bbBn/q4lJ/8W2lP/k4Nf/+fj4//3+/v/+/v////////// + ///////////+//////////////////7+/v/6+/r/7Ovm/9bLtf+zl2H/oHQm/5xsGP+phkP/x7eU/+Pg + 1v/09fT//Pz8//7//v////////////7////+/v/////+///////9/f3//f39//7+/v////////////// + //////////////////////////////7+/v/19fT/1Mq3/6mFP/+ZZwb/mmYB/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQH/mWYB/5lmAP+ZZgT/qIVA/83Hu//s7Oz//v7+///////9/f3O/f39zvHz + 8v/Z2dj/vqqF/51uFP+ZZQH/mWYA/5lmAf+ZZgH/mmYB/5lmAP+aaQb/rIpJ/9rSwv/49/f///////// + ///////////////////////////////////+/v7/8/Hw/+Lc0f/o5N//+/r6//X18//Nvp3/pHwt/6aA + Nv+/qX//4dvO//T08v/8/Pz//v/////////////////////////+/v7//f39//Pz8f/j39P/wa2F/6V/ + OP+baxb/oXYm/7uhbv/d1cL/8O7s//v8/P/+/v7///////////////7///////////////////////// + ///9/f3/9PPy/+Ld0v/Es43/qYQ9/5trFf+gdiT/tZpl/9DHsf/p6OP/+vv6//7//v/////////////+ + /////////v///////////////////////////////////////////////////////////////Pz7/+Pg + 2P+3nWn/nGsP/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5po + CP+ymGP/09HM//Dw8P////////////39/c79/v7O9/n4/+Li4v/HvKj/onos/5hmAv+ZZgH/mWYB/5hm + AP+ZZgD/mWYD/6N6KP/Ju5z/8fDu//7+/v////////////////////////////////////////////// + ///9/f3//Pv8//v8/P/+/v//9PPx/8u7mv+lfDD/mWcO/55wHv+zlVv/zcKo/+fm4P/39/f//f3+//// + /////////////////////////v7+//n6+v/p5+L/z8Sr/7GUW/+fch//nW4X/6yKR//JuJX/5N/W//X1 + 9P/9/v7//v/+/////v/////////////////////////////////+/v7/+vv6/+zr5//Z0Lr/tZpl/6B0 + I/+caxf/poI9/8Szj//l4tj/9vb0//79/v////////7///////////////////////////////////// + //////////////////////////////39/v/y8O7/yrmX/6J3I/+ZZQL/mWUB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+YZgH/nW8W/76rif/e3t3/+Pj4/////////////f39zv3+ + /s78/f3/5OTl/8zHvv+tjE7/mWcG/5lmAf+ZZgH/mGYA/5hlAf+cbRL/vqd3/+vo4f/8/Pz///////// + /////////////////////////////////////////////////////////v////7////7+/r/6eXe/8y+ + oP+wkVT/nnEd/5ppEv+kfjT/u6h7/9jTxf/w7+7//fz8/////////////////////////////v7///z8 + /P/z8/H/3NjL/8KviP+phD//nGwY/6J2KP+3nGj/18+7/+3s5//7+/v//v/+//////////////////// + ///////////////////+//7//f39//j39//h3tT/w7OO/6iGQv+baxj/onUm/7abY//Wy7P/7uzo//n5 + +f/+/v7//v//////////////////////////////////////////////////////////////9vf3/9jQ + vf+tiUP/mWcG/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/5lm + Af+kfC7/yb+t/+Dg4f/7+/v////////////9/f3O/v7+zv7////w8fH/09LQ/7iid/+cbBH/mGYB/5lm + AP+ZZgH/mmcE/6mGPv/X0L//+Pj5//7///////////////////////////////////////////////// + ///////////////////+/////v////7////7+/z/8PDu/93YyP/BrYH/qII3/5tqD/+dbxn/rY9Q/8m8 + nv/q5t//+vr5//7+/v////////////////////////////7+/f/4+fn/7uzo/9nPu/+3nGj/oHQm/5xs + GP+qhkH/xLGK/+bg1f/29fT//Pz8//7//////////////////////////////////////////v7+//v7 + +v/t6+f/0cq0/7edav+hdyf/m2sT/6qEPP/Crob/4NvN//X18//9/f7///////////////////////// + //////////////////////////////z8/P/m49v/uaBu/5xsEf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcG/66QVP/Szsf/6+vr//39/f////////////39 + /c7+/v7O//////n5+v/d3d7/w7ee/6J4J/+ZZgL/mmYB/5lmAf+aZwX/q4tJ/9XOv//18/L//Pv8//7+ + ///+/////v////7///////////////////////////////////////////////////////////////// + ///9/v7/+fn4/+vp4//Wy7H/tJdc/59xHv+ZaA//pHsv/76oev/c1cT/8vLv//r7+//+///////////+ + ///////////+///+///+/v7/+Pj2/+Le0v/HtpL/qYVA/5xsFf+gdCH/tppj/9LGr//p6OP/+Pn4///+ + /v////7////+///////+//////////////////////////39/f/09PT/5ODX/8u7mf+tikj/nGwY/55w + If+2nGj/4dzP//v7+//////////////////////////////////+///////////////+/v3/8fHv/8q6 + nP+jeCf/mWYD/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+cbhT/vKqF/9va2P/19fX//////////////////f39zv7+/s7//////f39/+np6v/Ry8D/rYxM/5pm + Bf+ZZgH/mWYB/5llAf+dcBb/s5RZ/9DDqP/q5+H/+Pj4//3+/v/9/v////////////////////////// + /////////////////////////////////////////////////////////f39//f29P/f2s3/wq+G/6iC + O/+baRP/nW4Z/66PUf/NwKP/5OLa//j4+P/8/f3//v////////////////////7////+/v7/+vr6/+/u + 6f/Uy7b/uqFu/6F2J/+baxb/poE7/76shf/g28//9vXz//z8/P////7///////////////////////// + //////////////7//v/8/Pv/8vLv/9jQv/+5oXD/o3sz/66NT//j3c3//fz8//////////////////// + //////////////7////+/////v////n5+P/b08P/roxL/5pnCP+YZgH/mWYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUC/6R9Mv/Jv63/5OPk//j5+f////////////// + ///9/f3O/v7+zv/////+/v7/7+/w/9TU0v+5pXz/nG0U/5hmAf+ZZgH/mWYB/5hmAv+baQ3/p340/8Cq + gP/a08X/8fHw//z8/P////////7///////////////////////////////////////////////////// + /////////////////////////v7+//n5+f/s6uT/08ev/7aaYv+fdCD/mmkP/6J6K/+6o3D/2NG//+/t + 6v/7+/v//v7+//////////////////////////7//P39//b29v/n5Nv/x7aU/6uIR/+cbRn/nnEg/7WX + Xv/Sxq3/7Ork//r6+f/9/v7////////////////////////////////////////////9/v3/9vf2/+fk + 3f/PxKn/0cat/+/u6v/8/v7//v/////////////////////////////////////////8/fz/7+vk/72k + df+dbRP/mWYB/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+aaAr/sZZg/9HOx//s7Oz//v7+//////////////////39/c7+/v7O///////////29vb/2dnZ/8W7 + p/+lfTH/mGUD/5hmAf+YZgH/mWYB/5llAf+ZZgX/nnAZ/7CPUf/Ov6P/6OPc//j5+P/9/f7///////// + //////////////////////////////////////////////////////////////////////////7///z8 + /f/19fX/49/T/8W1j/+siUT/m2sU/5xtFv+riUf/x7aV/+Le1P/09PP//f39//7///////////////7/ + ///+/////v////v7+//u7er/1867/7uicP+ieCv/nGwT/6Z/Nv/BroP/3NbI//Dw7v/7/Pz///////// + //////////////////////////////7////+/////Pz8//b19P/19fT/+/v8//7+/v////////////// + /////////////////////////v7+//Dw7v/OwKP/pXws/5lmA/+ZZwD/mWYB/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/59zHv/AsZP/2tva//j4+P////////////// + /////////f39zv7+/s7///////////39/f/q6ur/zsvF/7OYY/+bagv/mGYB/5hmAf+ZZwD/mWYB/5hm + Af+ZZQH/m2kK/6R7LP+9pHX/3NTE/+/u6//7+/v///////////////////////////////////////// + /////////////////////////////////////////v////7+/v/7+/v/8O7r/9fOuf+5oW//o3gp/5po + EP+gdif/tZtn/9PKtP/s6uf/+vv7//7//////////v////7//v/+//////////z9/f/29vX/6OTc/8q8 + nf+xkFL/nW8b/55xIP+vj1X/yr2h/+nm4P/6+vr//v7+//////////////////7//////////v////3/ + ///////////////////////////+//////////////////////////////////7+/v/29/f/2dLE/66M + Tf+baAj/mWYB/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgX/qohG/9HLwP/m5+f//P38///////////////////////9/f3O/v7+zv////////////7///X1 + 9f/Y2dn/w7SZ/6J2I/+YZQH/mWYB/5lmAf+ZZgH/mWYB/5hmAf+YZgH/mWYE/55uGP+ujU7/ybiZ/+Pf + 1v/3+Pb//v7+/////////////v////7////+//7///////////////////////////////////////// + ///////////////////9/f3/9fX0/+bj2f/KuZb/sIxH/5xtFP+aaxP/qYU+/8a0j//n49n/9vb0//39 + /f/+//7//v///////////////v////7////8/Pz/8vLw/+DZyv+7pXf/o3ow/5tpFf+jejD/wKl9/97X + yP/y8e7//Pz7//7+/v/+/v///v7//////////v7//v///////v////////////////////////////// + /////////////////////////Pz9/+vo5P+/p3v/nW8V/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llAP+aZgD/mWUA/55uFP+5pX7/1dTS//Hx8f/+/v7///////// + //////////////39/c7+/v7O/////////////////Pz8/+Hi4//Kxbz/ro9S/5poCP+ZZgD/mWYB/5lm + Af+ZZgH/mWYB/5llAf+ZZQH/mGUC/5pnCf+jeCj/uJ9s/93UwP/z8e7/+/z7//7//v///////v////7/ + /v/+///////////////////////////////////////////////////////////////+/v7/+vz7//Hx + 7v/e1cL/uqFu/6N5Kv+baBD/oXYm/7mea//WzLf/7+3p//j5+f/9/v3///////////////////////// + ////////+fn4/+bk2//LvZ//rY1P/55vGv+fbxr/ro5Q/829n//m4tn/9/f2//7+/v////////////7/ + ///+//////////////////////////////////////////////////////////3+/v/z8/H/0cSq/6Z/ + MP+YZgP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgD/mWYA/5lm + AP+aZgT/qIM8/8vEtP/e39//+fj5/////////////////////////////f39zv7+/s7///////////// + //////7/8PDw/9HRz/+8rIv/n3Me/5hmAf+ZZgH/mWcB/5lmAP+ZZgH/mGYB/5lmAP+ZZgH/mWYA/5lm + A/+cbRL/rotI/8q5l//o5Nv/9vb0//39/f///////v/+/////v////////////////////////////// + ///////////////////////////////////+/////f7+//j49v/m4tn/yryc/7CQUv+ebxv/m2oU/6yH + Q//Es43/3NfL//Hy8P/8/f3//v/////////////////////////+/v//+/z8//Dv7f/b1sf/wayB/6Z8 + Mv+daxf/pHkv/7mjdP/Y0cD/8fDt//z9/f/+//7//v////////////////////////////////////// + /////////////////////v//+fr6/9zWyf+wkVP/m2oK/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lnAf+ZZgH/mWYB/5xtEv+4o3b/1dPP/+jo6f/9/v7///////// + ///////////////////9/f3O/v7+zv/////////////////////8/Pz/5ubm/87Ivv+tjE//mmcI/5lm + Af+ZZgH/mWYA/5lmAf+ZZgH/mGYA/5hlAf+YZgD/mWYA/5llAf+ZZwj/o3gp/7ugb//Yzbn/8O7r//v7 + +v/+/v////////////////////////////////////////////////////////////////////////// + ///////////+//v7+//w8Oz/3tfH/7+pev+mfzD/m2oP/55yHv+vlFr/zcSq/+3r5v/6+vn//v7+//// + /////////////////////////f39//n5+f/r6eP/0cWq/7KTWf+dcB7/nG0a/6uKSP/Ju5r/6ube//f2 + 9f/9/v7//v////////////////////////////////////////////////////38/f/s6eT/v6l//55w + GP+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lm + Af+ZZgT/p4E4/8i/rv/g3+D/9vf3//7///////////////////////////////39/c7+/v7O//////// + ///////////////////y8vP/19bV/8Cwj/+gdCL/mGYD/5lmAf+ZZgD/mWYA/5lmAP+ZZgD/mmUB/5lm + Af+ZZgD/mWYA/5lmAf+ZZQP/nGsR/62IQ//Hs4//497S//X19f/8/f3///////////////////////// + //////////////////////////////////////////////////////////////7+/v/5+fn/6+ni/9TI + q/+xklT/nm8b/5lqEv+mgTr/w7CH/9/ZzP/08/H//Pz8//7+///////////////////+/////v7+//39 + /f/09PL/2tXG/7une/+lfjT/m2wT/6J5K/+8pXT/4NvO//r7+v////7///////////////////////// + ///////////////////+////9fTz/9HErP+mfjP/mWYE/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWUB/51uFP+5pHn/1dPR/+/v8P/+/v7////+//// + /////////////////////////f39zv7+/s7///////////////////////////j5+f/d3t//zci+/7GT + Wv+aaAv/mGYB/5lmAf+ZZgH/mWUA/5llAP+aZQD/mmUA/5llAP+aZgH/mmYB/5pmAf+ZZQH/mWYF/6B0 + Hv+3mWH/08ew/+zp5v/5+fn//f7+//7//////////v////7///////////////////////////////// + //////////////////////////////7////9/f3/9fTy/9zWx//Aq4H/p4E5/5trFP+dcR7/s5Vb/87C + qP/p5+H/+fj5//79/f////7//v/+//7////+//7///////3+/v/39/j/5uTf/9LHsP+4nGT/n3Mk/6mF + Qf/a0r//+vv6///////+//////////////////////////////////////////z9/P/i3ND/spVa/5tq + C/+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lm + Af+ZZwX/qodD/8rCsv/f3+D/+/v7///////////////////////////////////////9/f3O/v7+zv// + /////////////////////////v7+//Hy8//V1tX/w7Wa/6J5Kf+YZgL/mGYB/5lmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUD/5xqD/+ogjv/wq2G/97YzP/y8/L/+/39//7/ + ///+/////v////////////////////////////////////////////////////////////////////// + ///+/v7/+fn4/+rn4v/UyK//tpph/6B1Iv+bahD/pH0w/7+qfP/c1cb/8fDu//r7+//9//7///////// + ///+//////////7//v/7/Pz/9vX0/+Pe0v/Ht5T/zr6f/+zq5P/8/f3///////////////////////// + ///////////////////9/f3/8O7q/8Wxif+fcxv/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+ZZgD/mWYB/6BzHf+9rIr/1tXS/+3t7f/+/v7///////// + //////////////////////////////39/c7+/v7O/////////////////////////////////Pz8/+Tk + 5f/Rzcj/tpxq/5xsEP+YZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+aZgH/mWUA/5lm + AP+ZZgH/mGUB/5hmBf+fcRv/s5RZ/87Cqf/p5+H/+fn5//39/f/+//////////////////////////// + ///////////////////////////////////////////////////+/v7//Pz8//f29f/h3dL/x7WQ/6qE + P/+bahL/nm8c/6+RVP/Ow6f/5uXf//X39f/9/v3////+//7//////////v////7//v/+/v7/+vr6//Ly + 7//19PH/+vz7//7//v////7//////////////////////////////////v3+//Hy8f/Qxq//qYI5/5pn + Bf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mmYB/5lm + Af+baQv/sJJZ/87KwP/n5+b//Pz8/////////////////////////////////////////////f39zv7+ + /s7////////////////////////////////+/v7/9fX1/9ra2//Hvav/qYRB/5hmB/+YZgH/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+aZgH/mmYB/5pmAf+ZZQD/mWYA/5hnAf+YZgH/mGYA/5hmAf+aaQv/pX4y/7+p + ff/a08X/8O/t//v7+//+/v7///////7+/v////////////////////////////////////////////// + /////////////////////////v/+//r7+//v7er/1Mmy/7idZ/+hdSf/mWoS/6V+Mv+6pnj/1c+9/+/u + 6//8/Pz//v7+//////////////////7////+/////v7///7+/v/+//7//v/+//////////////////// + ///////////////////6+vr/3djP/7GUXf+aagz/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+aZgH/mWYD/6V8Mf/GuaH/3d3c//f39/////////////// + ///////////////////////////////////9/f3O/v7+zv////////////////////////////////// + ///+/v7/7u7u/9bV0v+/rYv/oHQh/5hlAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5ll + AP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5hmAP+YZgX/nnAb/6+OUv/Ku5//5+Pc//n5+P/+/v7///////// + /////////////////////////////////////////////////////////////////////////v7///z8 + /f/19vP/5eHW/8q5lf+ti0f/nW0U/5xuFv+rikf/ybqa/+nm3v/39/b//f7+/////////////v////// + ///////////////////+/////v///////////////////////////////v7+//Dv7P/Gs4//oHMe/5hm + Af+aZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5ll + Af+ecBf/uqN5/9HOyv/o6Oj//f39//////////////////////////////////////////////////39 + /c7+/v7O///////////////////////////////////////////4+fn/3d3f/8zIwP+zl2H/nGoP/5hl + AP+YZgD/mGYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lm + Af+ZZAL/mmcK/6N5K/+8o3T/4djI//Lx7//8/Pz//v///////////v/////+//7///////////////// + ///////////////////////////////////////////////////7+/v/8vHu/9jQvf+2n2r/oXcn/5pp + EP+jeS3/u6Ny/9nSwP/v7uz/+vr7//7+///+///////////////////////////////+//////////7+ + ///+/////v7///7+///39vb/2M26/6qFQP+aZwX/mGYB/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAf+ZZgH/m2oK/66PU//Mxbr/4ODh//r5+v////////////// + /////////////////////////////////////////f39zv7+/s7///////////////////////////// + //////////////7+/v/w8PD/1NXU/8a8qv+qhkD/mmcH/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgH/mWUD/55uFf+ykFL/zL2f/+rm + 3v/39vX//f7+//////////////////////////////////////////////////////////////////// + ///////////////////+/f7/9fb2/+Hf1v/GuJf/rY1M/51uGf+cbBf/rYtL/8a3lv/l4tr/9vf3//7+ + /v/+///////////////////////////////////////////////+//7/+/v7/+Pf1v+1mmT/m2sP/5lm + Af+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYA/5pn + Bf+mfzX/w7ig/9jY1//y8vL//v7+//7///////////////////////////////////////////////// + ///9/f3O/v7+zv////////////////////////////////////////////7///39/f/r7Oz/0tLQ/8Cv + kP+keSr/mWYD/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+YZgH/mGYB/5lmAP+ZZgH/mGUB/5lnCv+key7/u6Fy/9vSwf/w8O3/+/z7/////v////////////// + ///////////////////////////////////////////////////////////////////9////+vv7/+/v + 7P/c1cL/vaZ0/6R8Lf+aahD/oXcn/7ymdv/i39T/+vv7//7///////////////////////////////// + //////////////39/f/t6+j/xbOR/6B1If+ZZgL/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQL/oXUi/7yqhv/U08//7e3t//39/f///////v////// + //////////////////////////////////////////////39/c7+/v7O//////////////////////// + /////////////////////////v7///z9/f/n5+j/zsvF/7qjd/+fcBr/mWUC/5llAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+aZgH/mmYA/5lmAf+YZgD/mGUB/5hl + A/+dbRT/r4xK/8e3lf/l4db/9PX0//z8/f/+//////////////////////////////////////////// + /////////////////////////v////7////+/////f7+//n4+P/q6N//zsGj/66OT/+ecR7/r49O/+Hb + zf/7/Pv//v/////////////////////////////////////+///+//7/9/f2/9TMuf+phkD/mWgG/5hm + Af+YZgH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/55u + Ff+2nGz/z8rF/+fo6P/7/Pz///////7////+//////////////////////////////////////////// + /////////f39zv7+/s7////////////////////////////////////////////////+/////v////r5 + +v/h4uL/ysW5/7SXYf+cbBL/mWUB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAf+aZwf/oXYk/7mdaf/TybX/7evo//n6 + +v/+/v7///////////////////////////////////////////////////////////////////////7/ + /////////v////39/f/y8e//29TF/8Oxiv/LvqD/7u7p//3+/v////////////////////////////// + /////////v////39/f/p5d7/uaBt/5xsEf+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlAP+bag//sZJZ/8rDuP/d3d7/9/f3//7+/v////7//v/+//// + ///////////////////////////////////////////////////9/f3O/v7+zv////////////////// + //////////////////////////////////////////////j4+P/c3Nv/x76v/6+OUf+aag3/mGUB/5hm + Af+aZQD/mWYA/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+YZQP/nGsS/6qFQf/CsIz/4N3S//f39v/8/f3//v/+///+///+//////////// + //////////////////////////////////////////////////////////////7+/v/5+fn/8e/r//Dv + 7P/7+/v////////////+/v7////////////////////////////+/v3/8vHu/8y9nv+jeSb/mWYC/5ll + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+ZZgD/mGYB/5lmAP+ZZQH/mmkK/6uJ + SP/Ivqz/19fX//Hx8v/+/v7///////////////////////////////////////////////////////// + //////////////39/c7+/v7O//////////////////////////////////////////////////////// + //////////7///T09P/Y19f/xrql/6qIRP+baQr/mGUB/5pmAf+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYH/6B0 + IP+3mmT/18y2/+7s5//6+/r//f7+///////+//////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + /////////v////n4+P/b0sH/rIpH/5ppB/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAP+ZZgD/mWYB/5lnCf+ogz3/xrqi/9bW1P/s7e3//f39//////////////////// + /////////////////////////////////////////////////////////f39zv7+/s7///////////// + /////////////////////////////////////////////////////////f7+/+/v7//U0tH/w7ad/6iD + PP+ZaAn/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+XZgH/mGUC/5xrDv+pgzv/xbGK/+Dbz//y8e///P38//7/ + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////8/Pz/5+Xe/7ykdP+dbhL/mWcA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pmAf+ZZwf/pX82/8K0 + l//W1tP/6enq//v7+//+//////////////////////////////////////////////////////////// + ///////////////////9/f3O/v7+zv////////////////////////////////////////////////// + /////////////////////////P38/+rq6v/Qz83/wrSZ/6eDO/+aaAn/mGUB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hm + Af+ZZgH/mWUA/5hmBv+gcx//spNb/83Apv/p5+H/+vv6//7+/v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f39//X08f/NvqD/o3op/5lmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+YZgD/mmgG/6V+MP++r5D/0c/N/+nq6v/7+/v//v////7///////////////// + //////////////////////////////////////////////////////////////39/c7+/v7O//////// + ////////////////////////////////////////////////////////////////////////+/v6/+Xm + 5v/Pzsz/wLKW/6iDPv+ZaAr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYA/5lmAP+ZZgD/mGYA/5hlAf+aaQz/pX4x/8Gr + f//j3c//8/Lw//39/f////////////////////////////////////////////////////////////// + //////////////////////////////////////////////7+/v/6+fn/4NjK/7GOTv+aaAj/mGYA/5hm + AP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5hoB/+mfjP/v66O/8/N + y//k5OT/+vr6/////v////////////////////////////////////////////////////////////// + /////////////////////////f39zv7+/s7///////////////////////////////////////////// + ////////////////////////////////////////+vr6/+Pj4//Qz83/w7Wb/6mGQf+aaAv/mGUB/5ll + Af+YZgD/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgT/n3Eb/7OTVv/PwaX/6ebf//f39//+/v7///////// + ///+//7///7////////+///////////////////////////////////////////////////////////+ + ////////+/z8/+vn4v/Cqn3/nm8U/5lmAf+ZZQD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWYA/5lm + AP+ZZgH/mWYA/5lmAf+ZaAn/poE5/7+vkf/S0M3/5+jo//v7+/////////////////////////////// + ///////////////////////////////////////////////////////////////////9/f3O/v7+zv// + //////////////////////////////////////////////////////////////////////////////// + ////////+/v7/+vs7f/T09H/xruj/6yLSv+baxD/mWUB/5lmAP+ZZwH/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYA/5hm + AP+ZZQL/m2gL/6Z8Mv+9pXn/3NXG//Lx7v/8/Pz//v7+/////////////v////7///////////////// + //////////////////////////////////////////////7+/v/x8O//y72i/6R8Lf+YZgP/mWYA/5pm + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5hmAf+YZQH/mmoN/6mGQ//BtJn/0tHN/+3t + 7f/8/f3//v////////////////////////////////////////////////////////////////////// + //////////////////////////////39/c7+/v7O//////////////////////////////////////// + /////////////////////////////////////////////////////////Pv8/+jo6P/U1NP/yb+s/7GT + Wv+dbhf/mGUD/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5lmAP+ZZQH/mWUE/55uGP+wjlD/y7uc/+jl + 3v/19vX//f39/////v////////////////////////////////////////////////////////////// + ///+////+vr5/9zVyf+ujlD/mmkJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mmYB/5pm + Af+ZZgH/mGUC/5xsEv+tjVD/xLml/9PS0P/o6un/+/v8//////////////////////////////////// + /////////////////////////////////////////////////////////////////////////f39zv7+ + /s7///////////////////////////////////////////////////////////////////////////// + /////////////////////v//+/v6/+nq6f/X19b/ysS2/7Sca/+gdSL/mWYF/5lmAf+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lm + AP+ZZgD/mWYA/5lmAP+YZgH/mWUB/5pnCf+leiv/u6Jx/9bNuv/u7Or/+vr6//7///////////////// + //////////////////////////////////////////////39/P/w7uj/wayB/55vFv+ZZQH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+aZgH/mWUB/5lmBP+fcx7/s5dk/8jBsP/X19b/7e3s//z8 + +//+//////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f3O/v7+zv////////////////////////////////// + ///////////////////////////////////////////////////////////////////+//7//P38/+/v + 8P/e3t//0c3F/7uogf+mfjT/mmkK/5hlAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWcA/5lmAf+ZZgD/mWUB/5lm + A/+cbRT/rYhI/8W0lP/m4tj/+fn4//3+/v////////////////////////////////////////////// + ///+/v7/8/Px/9PGrv+ogDT/mmYD/5llAP+ZZQH/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5ll + Af+aaAf/pHwv/7mlfP/Lx73/2tzc//Hx8f/9/f3////////+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////39 + /c7+/v7O//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f3+//n5+f/l5ef/zcrI/8S2nP+ujk//nW4X/5hl + A/+YZQH/mWYA/5lmAf+YZgH/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUB/5llAf+ZZgD/mWUA/5llAP+ZZgD/mWUA/5hlAf+ZZwj/oXYm/7yhbv/Z0Lz/7Ovm//j5 + +f/9/v////////////////7///////////////7///////n5+f/f2c//spNX/5tpCv+ZZgH/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lm + AP+YZgH/mWYB/5hmAP+ZZgD/mWYB/5llAf+ZZQL/nW0S/6uJR//AspX/zMvH/9/g4P/19vX//v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39zv7+/s7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////r6+v/o5+f/1dTU/8zEtP+5oXH/o3or/5poCf+YZQH/mGYA/5lmAf+ZZgH/mWYA/5lm + AP+ZZwH/mGYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5hmAP+ZZQP/nWwQ/6qGQP/CsIv/3djO//Lz8v/8/f3//v////7//v/+/////v////7/ + ///8/f3/6unk/8Gshf+fchv/mWYC/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/mmYB/5lmAf+ZZQH/mmgJ/6J3 + Jv+0m2r/xr+u/9XW0//j5eX/9/n4//7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///9/f3O/v7+zv////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//v7+//q6uv/2tna/8/M + xv/Bs5b/rYxO/51uGv+YZQX/mGUB/5hmAf+ZZgD/mWYA/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYB/5lmAf+ZZQH/mWYH/6Bz + Iv+0lmH/0MSu/+zq5//6+/r//f7+//7////+//7//v7///X09P/Tx7H/p4E2/5pnBP+YZgH/mGYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+YZgH/mWYB/5lmAf+ZZQH/mWcE/55vGf+sikz/v7CR/8zJwv/f397/9fX1//z8/P////7//v////7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////39/c7+/v7O//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+//z9/f/29vb/5ubm/9LS0v/Nxbn/u6V+/6eBPP+baxP/mWUE/5hl + AP+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pmAf+ZZgH/mWYA/5pmAP+ZZQH/mGQD/5tqD/+ngTj/xLCI/+Pd0f/08/L//f39//7+ + /v/8+/z/5N/W/7SYX/+bagz/mWUB/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlAf+ZZQH/mWUD/5xsEP+nfzX/uqR6/8nA + sv/U09L/4uLj//j5+f////7///7///7//v/+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f39zv7+/s7///////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v////7/ + ///8/Pz/8vLy/+Hh4v/T0M3/yL2p/7aca/+lfDD/m2oO/5hlA/+ZZQD/mGUB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgD/mWYA/5lm + Af+ZZgD/mWUA/5lnBf+hcx7/tJVd/9LGrf/s6eP/9/f3/+3s6P/GtJD/oXQe/5llAf+ZZgD/mWYA/5lm + AP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+YZQD/mGUD/5tqDP+kfC//tZtp/8e7pf/S0Mz/3N3d/+vr7P/6+vr//v///////////////v////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////9/f3O/v7+zv////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7/+Pj4/+bm6P/X19j/z8zF/8S3 + nv+0mGP/pXwv/5trEP+ZZQT/mWUB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYA/5hlAv+aaQ//p4A5/8Cq + gf/Z0sT/zMKs/6iDPf+aZwX/mWYB/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYA/5lm + Af+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5hmAP+YZQH/mGUD/5trDv+key//tJdi/8W4n//NysT/2NjX/+fn + 6P/5+fn//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////39/c7+/v7O//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////Pz8//X29f/i4+T/0dHS/8zJw//FuKH/tpto/6h/Nv+dbRf/mWYI/5hl + Av+YZgD/mWYB/5lmAf+YZgD/mWYB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/mWYA/5hlAf+YZQT/nnEa/6uJR/+phUH/m2oN/5llAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAf+ZZgH/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgL/mWcH/51u + Fv+mfzf/tZto/8W5n//Rzcb/2dnY/+bm5//39/f//f39//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////f39zv7+/s7///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7//v/+//v7 + +v/y8vL/5ufo/9rb2//T0sz/xbum/7qlev+siUr/oHQk/5poDf+ZZQT/mGUB/5hlAf+ZZgH/mWYB/5pm + Af+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+aZgH/mmYB/5ll + AP+YZQH/mWcF/5pmBv+YZgH/mWYB/5llAP+aZgH/mmYB/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5lm + Af+ZZgH/mGUB/5hlAf+ZZgT/m2kN/6B0I/+riUn/uqV8/8i+qv/Qzcn/29va/+vs7P/29vf/+/z8//7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f3O/v7+zv////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+///+/v/8/f3/9/j4/+bn5//V19f/1NTR/83F + uP/CspP/tppp/6eBPP+gcRz/nGoM/5llBv+ZZQL/mWUB/5llAf+ZZQD/mWYA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5pmAf+aZgH/mWYA/5lmAP+aZgD/mWYA/5hmAf+ZZgH/mWUA/5pm + Af+aZgH/mWUA/5lmAf+ZZgH/mGYB/5hlAf+YZQD/mGUC/5lmBf+aag7/n3Me/6mEPv+3m2j/wbKV/8vF + uP/R0M3/3d3d/+rr6//4+Pf//v3+///+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////39/c7+/v7O//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v//+/v8//b39//t7+//3Nzd/9TU1P/V083/yMCw/76tjv+2m2n/rIhH/6N3 + K/+ebRT/m2gJ/5llBv+ZZQL/mWUB/5lkAf+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/mWUA/5lm + AP+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/mWUA/5llAP+YZAD/mWUB/5llA/+ZZgX/mmgL/5xu + Ff+ieSv/rIlH/7WcbP/AsJH/yMCw/9HOx//W1tX/4ODg/+/v8P/4+fn//f7+//7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f39zv7+/s7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////3+ + /v/5+fn/7+/w/+zt7f/h4eL/0tLT/8zLx//Mxbj/xrmh/7yngP+0l2D/q4hI/6N7Lv+gch//nGwW/5lo + C/+ZZwj/mWUF/5llBP+ZZAL/mWUC/5llAv+ZZQL/mWUC/5hlAf+YZQH/mWUC/5llA/+ZZgP/mWYE/5pm + Bf+ZZwn/m2oO/5xuFf+gdCL/pn00/6yISf+0mWX/vKmD/8a6ov/Kxbj/0M7M/9jZ2P/c3d3/7Ozs//Pz + 8//6+vr//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////9/f3O/v7+zv// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7//v7+//z8+//x8vP/5ubo/9zd + 3v/a2tn/09LR/9DOyP/Nx7v/xb2p/8Gxkv+9qIL/tZtq/7KUW/+tikz/q4VA/6d/N/+mfDD/o3kr/6J4 + Kf+idyf/oncn/6N4Kf+kfC7/pn4z/6eBOv+rh0X/r45Q/7KUXv+3nnD/vamF/8Kzl//Ivq3/y8W8/9LQ + y//V1NP/3dzc/+Pk5P/r7O3/9PX1//r6+v/+/v7///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////39/c7+/v7O//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////7+/v////////////7////9/f3/+fn5//j49//y8vL/6+vs/+zt7v/h4eL/1NXV/9fW + 1f/Pzsv/0s7I/8rFvP/Mxrj/x7+u/8i+q//FuqX/xbii/8e6o//EuKD/xbii/8a8p//Hvqz/ycKz/83I + vP/OysD/0c7I/9LQzv/W1dX/29zb/+Li4v/i4uP/6enq//Dx8P/39/f//f39//7+/v////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////f39zv7+ + /s7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v////7/ + ///+//7///////7////9/v7//v7+//r5+v/09fX/9PP0/+/v7//u7u//6Ojp/+np6v/j4uP/4OHi/9zc + 3f/Z2tr/4+Pk/+Li4//b29v/3Nzc/93e3//j5eX/5ubn/+nq6v/s7u7/7u/u//Ly8v/5+fr/+/z8//z9 + /P/8/f3//f7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f3O/v7+zv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v////////////////////3///////////////7/ + //////////////7//v/+/v7//v7+//z8/P/6+/v/+fn5//b39//6+/v/+/v7//j5+P/5+vn/+vr6//v8 + /P/8/fz//f7+//7+/v/+//////////////////////////7////+//////////////////////7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////39 + /c7+/v7O//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v////////////////////////////////////////////////////////////////////// + /////////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39zv39/af+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+ + /s79/f2nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoAAAAYAAAAMAAAAABACAAAAAAAICUAAAAAAAAAAAAAAAAAAAAAAAA/f39uf7+ + /t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+ + /t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39 + /d76+vre8vLz3ujo6N7e3t7e1NPP3s3Jwt7Jv6/ew7SY3ryngN60mWfero5R3qmFQd6mfTfepHkt3qN3 + Kd6hdyfeoXgo3qR5LN6lfjTep4I83q2KTt60lmHeu6V93sKzl97KwrDeysa/3tXU0t7h39/e6Ojo3vT0 + 9N76+vre/f393v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+ + /t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+ + /t7+/v7e/v7+3v7+/t7+/v63/f391P////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7///////7/ + ///+/////v////7////9/f3/9fb2/+np6v/c3Nz/1NHM/8rCsv/AsZL/tZxt/62KS/+ley//oHEc/5xr + EP+aZwn/mWcG/5llA/+ZZQP/mWUC/5llAv+ZZQH/mWUB/5lkAf+ZZQL/mGUD/5llBf+aZwj/nGsQ/59x + Gv+kei//q4lH/7Wcbf/BsJH/yMCx/9XTzv/d3d3/6enp//X29v/7/Pz//v7+///////+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7///////7//v/+/v7/+vr6//Hy8v/n5ub/1NPP/8rCsf+9q4f/sJFW/6R8 + Lf+dbhX/mmgI/5lmA/+YZgH/mGYA/5llAf+ZZQD/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5hmAf+YZQH/mWYD/5lnCf+dbRX/pHor/7CQWP+/rIn/ysKy/9PQ + zf/e39//8fHw//z8/P/+/v3//v/+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7S/f391P////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+//v8+//t7u7/3Nzb/9DL + w//DtJr/spZg/6R8L/+cbBH/mWYE/5hmAf+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mmYA/5ll + AP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5lmAP+ZZgD/mWYA/5lm + AP+ZZQH/mGUB/5lmBP+cbBL/pHww/7OWX//Aspb/z8zE/9/f3//u7+7/+vr6///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///9/f3/8/Pz/+Df3v/Nyb7/vqyL/62LS/+ecRz/mmYH/5lmAf+YZQD/mGUB/5lmAf+aZgD/mWYB/5lm + AP+YZgH/mWYB/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgD/mGYA/5hmAf+ZZgD/mWYB/5hmAP+ZZgD/mGUB/5lnB/+fcRr/rItK/72r + iv/OysD/2tra//Dw8P/8/Pz///////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7S/f391P// + //////////////////////////////////////////////////////////////////////////////// + /////////v////7//////////v7+//T09P/m5ub/08/H/7+tjP+riET/nW4W/5lmBP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/5tpCv+ZZgX/mWUB/5lm + Af+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQH/mWYE/55uFf+riEb/vq6O/9HOxv/k5OT/9PT0//39/P////7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////// + /////////////////////////////////////////v/+//7+/v/4+fn/6urr/9XTz//Dtp3/rYxP/55v + GP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + Af+ZZQH/oHQe/7iebv+ujlH/nG0U/5llAv+ZZgD/mWYA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgT/n3Aa/7CR + Vv/HuqP/1NPP/+vr6//6+vv///////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + /////////////////////////////////////////////////////////////////////////f7+//Lz + 8//d3Nz/y8S2/7adbf+hdiX/mWcG/5hlAf+ZZgD/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+bagv/vaRz/+jl3//j3dP/wa2D/6R8Lv+aZwj/mWUB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAP+ZZgH/mWYA/5pnCP+ieCn/t6Bz/8vFuf/d3Nz/9PP0//7+/v////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7S/f391P////////////////////////////////////////////////////////////////// + ///////////////////9/f3/7u/u/9bU0f/DtJn/qYZB/5trDv+ZZgL/mWYA/5lmAP+ZZQD/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUA/5lmA/+rh0D/4drM//z8 + /P/8/Pz/8vHt/9fMtv+0lVz/nm8Y/5hmA/+ZZQD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgH/mWUA/5lmAf+YZQH/nGsP/6yK + SP/Ft57/2tjW//Ly8v/8/Pz///////////////////////////////////////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + //////////////////////////////////////7//v////r7+//p6en/0c3F/7qid/+hdiP/mWYE/5ll + AP+aZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZgH/mWUB/6ByHP/MvJ3/9/f2//7+///////////+//r6+f/o5Nv/x7SP/6iBN/+baAn/mGUB/5lm + AP+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5lnBv+jeSr/u6aA/9TQyv/l5eb/+vv7//7+/v/+/v7///////// + ///////////////////////////////////////////////////////////////////+/v7S/f391P// + ///////////////////////////////////////////////////////////////////+/v7/+Pn5/+Pj + 4//Mxbf/spRe/55tE/+ZZgH/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/m2kK/7mdaf/r6eL//f39///////+//////////7/ + ///9/v3/8/Lw/9zUwf+4nGX/oHId/5llBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQL/nm8X/7SZ + Zv/Lxrr/4eHh//j4+P///v7///////////////////////////////////////////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////// + //////////////7+/v/29fX/397d/8i+qv+siUj/m2kL/5llAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5hmAP+ZZgL/qoQ7/93W + xv/6+/r///////////////////7////////+/////v7+//v7+v/s6eL/yLaV/6iCPP+baQv/mGUB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+aZgH/mWYA/5hmAP+YZgD/mGUB/5trDv+vj1L/ysKy/+Hg4P/5+fn//v////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + /////////////////////////////////////////v/+//T19P/b29n/xbqj/6iDO/+aZwb/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAf+gcxr/zLuZ//f39P///v7///////////////////////////////////////// + ///+/f7/8/Lw/93Uxf+8oW3/oHMf/5lmBP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/rIhF/8m/ + q//g4N//9fX1//7//v///////v/+//////////////////////////////////////////////////// + ///+/v7S/f391P/////////////////////////////////////////////////////+/v7/9/f3/93d + 2//FuqH/poA2/5lnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCf+5nGT/7erk//7+/v////////////// + //////////////////////////////////////////7+//v8+//t6uT/zLyd/6qGQv+baw7/mWYB/5pm + AP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmgH/6mEQP/Gu6b/3dzc//j4+P/+//7//v////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + //////////////7////7+/v/3t7d/8S5o/+ngTj/mWcF/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6mC + Nv/d1cP/+vr7//////////////////////////////////////////////////////////////7///// + /v/+/f3/9fX0/93XyP+8o3L/onYk/5lnBf+ZZQH/mWYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lnB/+phD//xryp/+Hh + 4f/7+/v////////////////////////////////////////////////////////////+/v7S/f391P// + //////////////////////////////////////////////38/f/p6en/yb6r/6iCO/+ZZwX/mWYA/5lm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/nm8V/8m3kv/19PL//v7+//////////////////////////////////// + /////////////////////////v///////////////v////v8+//u7ej/0cKo/6yJSP+caxH/mWUC/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5llAP+aZwf/q4hF/8nBsv/o5+j//P39//////////////////////////////////// + ///////////////////+/v7S/f391P/////////////////////////////+//7//////v///P39/+vq + 6//Lxbf/q4pJ/5pnB/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aaAf/tphe/+rm3v/9/f3//v////// + ///9/f3/+Pj2//X18v/8/Pz//v/////////+//////////7//////////v////////////////////7+ + /v/+/v7/9fX0/97Yy//Bqn3/pXoq/5toBv+ZZgD/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gJ/66PVP/Nx73/7e7u//7+ + /v/////////////////////////////////////////////////+/v7S/f391P////////////////// + //////////////7////+/f3/7u7u/9LOx/+xlV7/nGoL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lm + Av+mfS//2c+6//v7+v/+/v7///////7+/v/v7ur/zb+f/8WzjP/t6+T//f7+//7+///+/v7//v////7+ + /v///v/////////////////////////+/////////v7+//v7+//y8e3/18qz/7OTV/+dbRP/mGUC/5lm + Af+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5xrD/+0m2j/09DK//Pz9P///////v7+//////////////////////////////////// + ///+/v7S/f391P////////////////////////////7///7//v/z9PT/19XS/7qke/+dbhT/mWYB/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mGUA/51uEv/FsYn/8/Lv//7+/v/9//7////+//7+/v/t6+T/w7KO/62N + TP/h2cn/+/z7//T08//x7+v/+Pn5//7+/v///////v/////////////////////////////////////+ + /v/+/v7/+vr5/+Tf1f/Cq4P/pXwv/5loB/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hlAf+fcRn/vKqF/9nZ1v/3+Pj///////// + ///////////////////////////////////+/v7S/f391P///////////////////////////v/+//z8 + /P/i4uH/w7Wa/6J3Jf+YZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlAP+ZZQD/mmgG/7GQUv/m4tn//f39//7/ + ///+//////////7////7+/v/6ebg/8GtgP/j3c7/+Pf2/9HEp/+6oW7/1cu2//Py8P/+/v7//v////7/ + /////////////////////////////////////////v////z8/P/x7+z/2M64/7OTWP+ebxf/mGUD/5hl + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lm + Af+ZZQP/pXwu/8S6pP/g4eD//Pz7///////////////////////////////////////+/v7S/f391P// + /////////////////////////v7+/+3t7v/Qyr3/qYZC/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hl + AP+ZZQL/pHop/9TIsf/4+Pj//v/////////+//////////7//////v//+fj3/+3q4v/49/X/8/Lu/7yk + c/+cbBX/pn41/8m3k//q5t//+fn5//3+/v/////////+//////////////////////////////////// + ///+/v7/+vr5/+bi2f/GsY3/qIA2/5poCP+ZZQH/mWUA/5hmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/62OT//OycD/8PDw//7+/v////////////// + ///////////////////+/v7S/f391P//////////////////////////9fX0/9bV0v+2nW7/m2oN/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+YZgH/mGYB/5llAf+dbRH/wauB//Du7P/+/v7//v/////////+/v7////////+ + //////7//v////7+/v/+/v7/+/r5/97Xxf+5nmb/oHIe/59xHv+1mGD/1c25//Tz8P/9/v3//v////// + //////////////////////////////////////////////39/f/z8fD/29G+/7ebYv+fcRv/mWUD/5ll + AP+YZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/51t + E/+8p3//2tnX//b29//////////////////////////////////+/v7S/f391P////////////////// + ///8/Pz/4+Pj/8S4n/+idiP/mGYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5pnBf+xj07/6OPY//z9 + /f////////////7+/v/9/Pz//Pz7//7+/f///////v///////////////v/+//r6+v/r6eD/zLuX/6uG + P/+dbBT/pn80/8i1j//q5t7/+vn5//7+///////////////////////////////////////////+//7/ + /v///v7/+vr5/+vo4P/HtZL/qII7/5ppDP+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUB/5llAP+ZZQD/mWUA/5lmAv+lfTH/yMCt/+Xm5v/9/f3///////////////////////// + ///+/v7S/f391P////////////////7+/v/y8vL/0s7G/62OUP+aZwX/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mGYB/6J3I//Owaj/+Pj3//7//v///////v7+//Hw7P/a0Lv/18y1//Py7////////v/+//// + ///+/////v/////+///9/f3/9vXz/9/Xxv+8omz/oXQh/59wHP+2mWH/1824//Py7//9/f3///////// + /////////////////////////////////v///v///v/+//39/f/z8vD/3dTD/7ufav+fchz/mWYE/5ll + AP+ZZQD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mWUA/5lmAP+aaQj/s5hk/9TS + zv/09PT////////////+///////////////+/v7S/f391P///////////v////v7+//h4eD/v66O/55w + Fv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/nGsN/7ykdP/t6+f//v7+/////////////f7+/+Xg + 1v+5o3T/ro9R/+Xg1P/+/v7//v7+//7+/v/+///////////////+/////v7+//z8+//s6eL/z8Cf/62J + RP+dbRX/pn4y/8Sxif/p5dv/+fn4//7+/v/+/v7///////////////////////////////////////// + ///+/v7//Pz7/+zq4//Ku5v/qoVB/5tpDf+ZZQH/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZQH/oXYj/8S5oP/m5ub//f3+//7////////////////////+/v7S/f391P// + /////////v/+//Pz8//SzcT/q4hG/5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZwT/rotH/+Db + zv/8/Pz//////////////////v7+//j49v/b1cb/tZpm/+Hby//5+fn/6+jf/+vn3f/3+Pb//f3+//7/ + /v/+///////////////9/f3/9/b1/+Ldzf+9pHP/oXYm/55vG/+0llz/1cu0//Dv7P/8/f3//v////7/ + /v////////////////////////////////////////////3+/v/09PL/3dbG/7yjcf+idiL/mWYE/5ll + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmcH/7GUW//V083/9vb3//7/ + ///////////////////+/v7S/f391P///////////f39/+fo5//AsI//nW4V/5llAf+ZZgH/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAf+hdSD/0MKm//j49//+//////////////////////////7//v/19PD/4NnH//Hx + 7P/v7ef/vKNx/7GRU//Qw6f/8O7q//z9/f////////////7//////////v////z8+//t7Ob/z8Kj/62L + R/+dbRX/pHww/8OwiP/o5dv/+fr5//7+/v////////////////////////////////////////////// + ///+/v//+/z7/+/t6P/Qwqb/ropJ/5xrEf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgH/mWUB/6B1If/EuKD/4uHi//z8/P/+//7////////////+/v7S/f391P//////////9fb2/9XR + yv+tjEz/mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWUB/5xqDP+6oW//7+3o//7+/v/+/////v////7/ + /v/+//7////////////+/v3//f38//39/f/v7ef/uqJx/55xHf+jeCj/w6yA/+Te0f/5+Pf//v3+//// + ///+///////////////+/v7/9vb1/+Lcz//AqXv/o3gq/51wHP+ylVv/1sy2//Hw7P/8/Pz///////7/ + //////////////////////////////////////////////7//v/39/b/4tvO/8Cpe/+keSj/mmcG/5ll + Af+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mmYA/5poB/+0mGT/2NbS//b29v////////////// + ///+/v7S/f391P/////+/v7/6urp/8S1nf+fcRr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcE/6uG + QP/f18n/+/v7//7//v///v7//v7+//39/f/9/f3//v7+///////////////////////7+/v/5uTb/8a0 + jv+ngDX/nW4Z/6+MS//SxKj/8O7p//z8/f/+//7//v////////////////////z8/P/x7+v/z8Kn/66N + S/+dbxj/pHsv/8Gtg//j39P/+vr5//7+/v/+//////////////////////////////////////////// + ///+////+/v8//Lw7P/VyLD/sZFU/5xsE/+YZQL/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5ll + Af+jeir/ysGx/+7u7v/////////////////+/v7S/f391P/////39/j/19XS/7GVX/+aZwX/mmUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZQH/oHMd/8u7nP/29fT//v7+///////+/v7/8/Lw/+Lczv/i3M//+Pf2//// + //////////////7//////////P38//Ly7//a0b7/t5tj/59yIP+ieCn/vqZ2/+Te0P/4+Pb//f7+//// + //////////////7+/v/+/v7/9vb2/+Te0//EroP/o3or/51uGv+zlFj/1823//Ty8P/8/P3///////// + //////////////////////////////////////7///////7+/v/5+fj/4t3S/8CpgP+lfC3/mmcG/5ll + Af+ZZQD/mGYA/5llAP+ZZQD/mWUA/5llAP+bag3/uaN6/9zb2f/7+/v////////////+/v7S/Pz81P7+ + /v/t7e7/ysKz/6N7LP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+baQr/t5xn/+ro4f/+/f3//v7////+ + ///9/f3/3tnN/7SbZ/+1mWP/7Ori//////////////////7+///+/v////////7+/v/6+/r/7Ong/8a2 + kf+mgDb/nW4X/7CMS//PwaT/7evl//z8/P////////////7//////v/////+//39/f/w7+v/1Miv/7CP + Uf+ebxn/pXwv/8Swhv/k4NT/+fn4//7+/v/////////////////////////////////+//7///////7/ + /////////Pz8//Hw7P/Zzbb/sZFV/55uFv+YZQP/mWYA/5lmAP+aZgH/mmYB/5lmAP+ZZgP/qodE/9HM + xf/z8/P////////////+/v7S/f391P39/f/j4uL/vKqI/5xsEP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5llAP+ZZgD/mWUA/5lm + A/+ogjn/2tHB//v6+v/////////////////+/v3/8O/s/9DGr/+ylVr/6OLW//z9/f/19fP/9fTy//v8 + /P/+//7//////////v////7//v39//Hx7//Z0L3/up9q/59zIv+hdSf/vqV1/+Lczv/39/X//v7+//// + /////v/////+///////+/v7/+fj3/+Tf1P/CroT/pX0x/51vGv+wj1H/1ciu//Hv6v/7/Pz//v7+//// + /v///////////////////////////////////////////////v/6+fn/5uHX/8Ovif+mfTP/mmgI/5ll + Af+ZZgH/mWYB/5hmAP+ZZgH/oHMd/8W5ov/p6er//v7+///////+/v7S/f391Pn5+f/Z19P/r5BW/5ln + BP+ZZgD/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5hmAf+ZZgD/mWUB/59yGv/OvZz/9vX0//7+/v///////////////////////f7+/+/t + 5//Rx6v/8O7p//Lw7f/KuJT/w6+G/+Pe0v/3+Pb//v7+//7////+//////////7+/v/6+vr/7Oni/8m5 + lf+phDz/nW8Z/6yKRv/QwaP/7uvm//z8/P/+//////7////////+/////v7+//z8/f/z8e7/1sy0/7CR + Vf+dbxr/o3kq/7+oev/g28//9vf1//3+/f/+//////7///////////////////////////////////// + /////////f38//Lx7f/Zz7v/t5lg/51tEv+YZgH/mGYB/5lmAP+ZZgD/mmgJ/7egdP/d3Nv/+/v7//// + ///+/v7S/f391PLy8v/Nxrj/pHst/5llAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgD/m2kJ/7ibZP/u6uT//v7+//7/ + /////////////////////////v/+//z8+//39/X/+/38/+zq4v+1mF//oHMf/6+OTv/Sxqv/7+3o//v7 + +//+/////////////////////f7+//T08v/b1MP/uqBs/6BzIf+hdif/vKR1/9/azP/4+Pf//v7+//// + //////7////+//7////+/v7/+Pj3/+Le1P/HtI7/p4A2/51uGf+tjEv/z8Km/+/s5//8/fz//v7+//// + /v///////////////////////////////////////v/+//7+/v/5+fn/2NDB/6V+Mf+ZZgH/mWYA/5hm + Af+YZgH/mWYC/6yJSP/Rzcf/9PT0///////+/v7S+/z81Ojo6P/BspT/nG4S/5lmAP+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lm + Af+aZgL/qIE2/9vSwP/7+/v///7//////////////////////////////v/+///+//////7//v7///j4 + +P/i3M//wKl7/6N5LP+kei//vaZ5/9/ZzP/39/b//v7+///////+///////+//7+/v/6+/r/7Ori/8y8 + mv+ohDz/nW8a/62LSf/Sxan/7+3o//v7+//+//7//v7///7//v/+/////v////z9/P/18/H/2M65/7SW + Xv+ecR7/oXcn/8Gpef/i3M7/9PXz//3+/v////////////////////////////////////////////// + /v/19PH/x7OO/51vFP+ZZQD/mGYA/5lmAP+YZgD/mWYA/6J3Jv/Mw7L/7+/v///////+/v7S+vr61ODe + 3v+1nW3/mmgH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAf+ebxb/x7SO//b18//////////////////6+fn/8/Ds//Tz + 7v/9/f3///////7//v////////////7+///8/P3/8O7p/9LEqP+tikv/nnEe/6yKSP/SxKf/7+3o//v8 + +//+/v////////7////+/////f7+//X18//a08L/uqFu/6J2J/+idyn/vaZ2/9/Zy//29vX//v7+//// + ///+///////////////+/v7/+fn5/+bi2v/FtI//p4A3/51vGf+riUf/zcCi//Hv6//+/v7///////// + /////////////////////////v////r6+v/e1ML/qIEz/5lmAv+ZZQD/mWUA/5llAP+ZZgD/mWYA/51t + Ev+/sJH/6Ojo//3+/v/9/f3S9/b21NvX0v+rikn/mWYC/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+0lVv/6OXc//39 + /f////////////z8/P/f28//v6p9/8i0jf/08u////7///7+/v/+/v7//v////7////+/v///v/+//f3 + 9v/g29D/vqd8/6N6Lv+ieCv/vqZ4/9/Zy//29vX//f7+///////+/////v7///7//v/7+/v/7+zm/82/ + n/+rh0L/nG4Y/6yKR//OwaT/8e/q//v7+//+/////////////////////v7///z9/f/z8vD/2tG+/7eb + Zf+fcyH/qII7/93WxP/9/f3//////////////////////////////////f39/+fk3f+1mWD/m2kI/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5poB/+1m2z/3NvZ//v7+//+/v7S8fHx1M/Iu/+key3/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYC/6V9L//VzLb/+fr5//////////////////38/P/l49r/wrKM/7SWW//s6eD//f39//Px + 7v/s6eH/9/b1//7+/v////7///////7////8/Pz/7+7q/9PIsP+wkVT/n3Mg/62JRv/OwKH/7evl//v7 + +//+/////v///////v///////v7+//X29P/f2Mj/uqBu/6F1Jf+jeSv/v6h4/9zVx//29fT//v7+//// + //////////7///7////+/v7/+vr6/+vn4P/LvJr/x7SM/+3q4v/+/v7///////////////////////// + ////////9vX0/8i3lP+ecBf/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYA/5lmA/+tjE//1tTP//j4 + +P/+/v7S7O7u1Mm9qP+fcRr/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/8Wxif/x8e7//v7+//////////////////// + ///8/Pz/5N7T/8a1kP/v7ef/+Pf2/8/An/+zllr/0sWr/+/t6f/8/Pv///7////+/////////v3+//n5 + +P/l4NX/xK+G/6V9Mv+hdyn/u6Fx/9zVxf/09PL//v7+//7////+///////+//7+///7+/v/7erl/86/ + oP+sh0H/nW8Y/6mGQf/Ov6H/7+3o//z7+//+/v7////+//7+/////v7//v7///39/v/39/b/9/bz//39 + /f/////////////////////////////////7+/r/3tbG/6qEOv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWUA/5hlAf+mfzT/zci9//Hx8f/+/f7S4uLj1L+vj/+caw7/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+aaAb/s5NW/+rm + 3P/9/f3////////////////////////////+////9/b1/+7t6P/7+/r/9PPv/8WvhP+gdCX/pHot/7+o + ev/k39H/+Pj3//7+/v/+/////v/+///////8/Pz/8vLv/9fNuP+ylFz/nnEh/6iEPv/Lupn/7uvk//v7 + +//+/v7//v/////+/////////v7+//j39f/e18b/up9t/6F0Jf+hdib/u6Ny/93XyP/19fP//v7+//// + /v/+//////////////////////////////////////////////////////////79/f/q6OL/t5xm/5tq + Cv+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+hdSP/yL+u/+7u7//9/f3S2tnY1Lih + d/+aaQj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5lmAv+leyv/1su1//n5+P/+/v///v/////////////////////////+/////v7///7+ + /v///v7/+/v7/+zp4f/Ku57/qodF/55xHv+vjk7/1Miu/+7s5//7/Pv//v/+//7////+/////f7+//r5 + +f/k4Nf/wa2G/6R8Mf+hdSb/up9t/97Wxf/z9PH//f7+///////////////////////7+/v/6+jj/829 + nv+rh0P/nXAa/6uHQv/MvJ3/7Onj//z8/P/+/v7///////////////////////////////////////// + /////////v////b18//Ju5r/oHMc/5llAf+ZZgD/mGYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+dbxb/xLef/+zs6//9/f3S19bT1LKXY/+ZZwX/mWUA/5llAP+ZZQD/lmME/4haHP90TT3/ZUJX/2JB + W/9wSkT/glYm/5NhCv+ZZQD/mWUA/5llAP+ZZQD/mmYA/51sEP+/qH7/7+7r//3+/v//////5uf//8fG + /f/09PX/+fj3//79/f/+/v////////7////+/v//+fn+/9TV/f+jpPT/iILN/5R+fv+fdTH/o3ou/7uj + c//Y0sv/3t76/+Dg/v/g4P//4OD+/+Hh///09P3/8fDt/9XMt/+0l1//oHQk/6mEPv/JuZb/4d3g/729 + /f/09P/////////////+//7//f39//Px9P/IwM3/oYh3/4pgNf+OZ0D/rJiO/9vW0P/29vT//v39//n5 + ///V1f//qan//6ur///W1v//+vr//////////////Pz8/+DZy/+qhT7/mWYD/31ULv+BVif/mWUA/5ll + AP+ZZQD/mWUA/4lbGv93Tjn/mGQC/5llAf+cbA//v6+O/+Tk5P/8/PzS1tPO1LCRVf+ZZQL/mWUA/5hk + Av+BVSj/STCF/yEVyf8oGrz/RC2N/1Q3c/9OM3z/NiSl/zsnnP9uSUf/lGIJ/5lmAP+YZQD/mmgF/7GQ + UP/l39X//Pz8///////9/f//j4/+/zQy8f+zo53/08Wp//b18//+//////////7////y8v//i4z//yQk + //8KCv//DQ3+/yMi8/9ZTbr/mnlQ/55wHf+WdlL/X1XB/ywq9/8hIf//Pj7//39////g4P///v7+//n6 + +f/r597/xrSO/6iCOf+gdCP/i3SD/yYl9/+3uPn//P39//7////+/////////+7u/v+Kiv3/NDP0/xUQ + 5f8hGNP/UDuV/5p7XP/Nv6L/4+Lu/4GC/v8iIv//CAj//w8P//8tLf//hoX//+vr///+/v7/7+zo/7yj + cf+aagv/k2IJ/zkloP89KZj/lWIH/5llAP+ZZQD/mGQC/1I2df8nGb//jFwW/5llAP+baQr/uqaB/+Dg + 4P/8/PzSzszG1KyLS/+ZZQH/l2QD/25JR/8eFMz/DAjr/0oxg/+FWCD/lmMF/5hkAv+XYwT/iVsa/080 + e/8XD9j/SzKC/45fEv+ZZQH/o3kn/9THrv/6+vn////////////s7P//QUH//wgH+f9xXYr/s5de/+3r + 5P/+/v7/+Pj3//Ly8/+Vlf3/Dw///woK//9UVP//n5///6Oj/v9ravz/aGPZ/7Kdf/+jejH/lmwx/zos + uv8CAv//hoX7//b2/v/9/f7//////////v/+/v7/8/Px/9rSwP+1m2z/Sjee/wQD/P9eW+T/4t/c//j5 + +P/+/v7///////7+///29v//enr//wQE//9YVOb/tJ57/6N5Lf+ylmH/fHnm/wsM//8MDP//WVn//6Gh + //+hoP//ZWX//4GB/v/t7fX/0MKl/6F1IP+ZZgH/glYm/xYO2v8WD9n/gVUo/5llAP+ZZQD/jFwW/yUY + wf8KB+7/cEpE/5llAP+aZwf/uKB1/+Li4f/8/PzSzMjA1KqIRP+YZgL/dE09/xgQ1v8FBPb/TjN9/5Jh + C/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5JhC/9JMIX/CAXx/0gwhf+WaBf/v6h7//Du6v/9/v7///////// + //+0tP//EBD//xwc/v9QSNH/t6OE//Hu6P/6+vn/2tK8/7Gim/8sK/P/BAT//2xs///s7P///v7+//7/ + ///19f//y8z9/+bl6//TyLD/ro5X/0Uzof8CAv7/h4DU/+7r5v/6+vr//v7+/////////////v7///r6 + +v/OzOf/JSPw/wsI8f8tI8z/nIV9/9fOuf/z8vD//f39//7////9/v//kZH//wcH//98fPz/7uzo/9fM + tP+6ssH/KCf6/wYG//93d///7+/////////+////8/P//8vM/f/b1dH/rIlF/5lnBP+ZZgH/YUBd/wUD + 9v8NCen/Wzxn/5hkAv+ZZQH/aEVR/wgF8v8MCOv/STCF/5ZjBf+aZwb/tZxs/93d2//7+/vSyMS71KmG + QP+NXhT/LB21/wEA/f8pG7r/i1wX/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+DWCT/GRHV/w0J + 6v9/aYf/497S//v7+//+//////////f3//9jY///Bwf//4eH/v9ubvj/tLPi//r5+f/19PL/wq2C/3hX + Wv8KCPL/Hh74/8nI8f/9/f3//v/+///////+//7//v/+//3+/v/6+fn/4t7Y/1xY3v8BAf3/Z06A/7qg + b//a0sL/9fTy//7+/v///////v7///39/v+bnP7/CAj//0lF5v9tY8D/YEN1/6V/O//FsYv/6OTc//n5 + +P/9/v7/kZL//wcH//9+fv///P3+//v7+v+wsfv/DAz//yoq///c3P/////////////+/////v7+//Lw + 7P/Bqnv/nGsN/5lmAf+UYwj/OCWh/wUD+P9GLor/PimX/45eEv+TYQr/NiSk/wQD+f9HL4f/PSiZ/4ha + HP+aZwX/tJlo/97d3P/8/PzSzMe/1KmFQf9rSEv/CQbw/wUD9v9gQF7/mWUB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+VZAb/Oyec/wEB/f9RT+//8fD4/////////////////9DR/v8gIP//JCT//9bW + //+rq///goL+//r6///6+vr/4dvO/4N2rP8HBvj/MSfK/7umiv/j3tP/9vf2//7+/v/+/////v////// + ////////+fn9/2xs/f8BAf7/aVKH/59zIf+ogz3/y7ua/+zp4v/6+/r//v7+/+/u/v9JSf//DAz//6am + +v/Kye7/TkbO/5p2R/+gdCL/s5NY/9fLtP/w7+z/j4/8/wcH//9+fv///f7///////+fn///AwP//1pa + ///29v/////////////+////9/f2/9LFrP+keSX/mWUB/5llAP+CViX/Fw/Z/xQN3v99Ui//SzGC/3BL + Q/96UTP/EQvi/xUO2/9+Uyz/SzGB/2lFUP+aZgX/s5ln/97d3P/6+/rSyMW+1KiFR/9JMYX/AQD+/xQN + 3v+BVSj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/Vjlw/wMC+/8lJf//3Nz///// + ////////+/v+/4OE/v8FBf//aWn///j4///k5P//Xl7//9vb///+//7/+/v6/7Oz9P8ODv7/JBjF/2dJ + a/+BbZP/op7V/8LB+P/R0f7/4OH+//r6////////+/v//25u//8CAv//iobf/8Owiv+lfjb/oHUm/7me + a//b08H/9PTy/7q6/f8TE///Njb//+Xl/v/39/7/cXH6/5SNzP+6oW//o3Yo/6V7Mv+/q4P/fHjc/wcH + /v9+fv///f7///////+wsP//Cwv//0ZG//+mpv//tbX//729///Gxv7/vbrg/5t+Y/+YZQn/mWUA/5hk + Af9hQF3/BQP3/zQiqP+SYQr/bklH/0gwhf9JMIb/AwL7/z0pmP+UYgj/bEdK/0Uui/+WZAz/s5lo/93c + 2//6+vrSzcrC1KeHT/8xIa//AAD//yIWx/+OXhL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgT/Z0tw/wQD+v8UFP//xMT////////9/f3/19Xs/zEx+P8QEP7/t7f9///////7+///fX3//46P + ///8/P7//////93d/v8qKv//Gxv5/15Y0v9WRJ3/VD2L/1JDsP8kIvT/MjL//8/P/v//////+/v//25u + //8CAv//jo/9//Hw7v/Yz7v/tJlh/59zI/+ogjv/wrGW/1xa7v8FBf//goL///v7///+/v//sLD+/19f + /P/h3uT/0MCh/62KSP+ecR//XkmN/wUF/P98ff3//f7+///////W1v//IiL//ycn//94eP//hIT//4eH + /v9tbfj/IB/2/yMZzP+BVSj/mWUA/5RhCf83JKP/BAP4/1w8Zv+ZZQH/jV0U/zIhrP8OCej/Cgbu/25I + SP+ZZQD/h1kd/zIiqv+EWSv/tJxv/93d3P/8/PzS0M7K1KqMWP8sHrb/AAD//y0etP+SYAz/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+gcx7/e2yt/wUF/f8NDf//trb////////7+/v/k5Hm/wgH + +/83NvH/4+P0/////v//////vLz//0hI///i4v///v/+//n5/v9/f///KSn9/8LA6P/Mv6r/rY1T/4Zg + Qf8XEN7/GRj2/8bF6//8/Pz/+vr+/2xs//8AAP//RUX//9TU/v/q6vr/tbLf/7Ohjf+mfzj/hGBJ/xgT + 5v8XFvr/wL/z//39/f//////4+P//0VF//+8vP7/9/f2/+HbzP+5oXL/WUOP/wUE+/98fPv//f3+//// + ///4+P//dXX//zEx///b2///+/v///X1+P+zrdH/FBL1/xgQ1/+EVyP/mWUA/39UKv8UDd3/Ewzg/35T + Lf+ZZQD/mGQC/1M3dP8DAvr/Jxq+/41dE/+ZZQD/lGII/z0omf9dQG3/uaN8/+Df4P/8/PzS0M7M1K6T + Y/8/Kpv/AAD+/ygavP+RXw7/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYB/5tqCv+7oG7/fXvn/wQE + //8UFP//xMT///j4///MzP7/PDz8/wEB/v9QTN3/5ePv//z8/P/09ff/wMH8/yUl//+AgP//5+f///39 + ///m5f//YF///25v/f/e3fb/1tHW/2pet/8JB/P/RjOi/7Wdef/a08z/tLP5/zc3//8CAv//Z2j//1JS + //8/P///Ghr+/4OC7/+8s8H/TUC9/wMC+/8kHt7/q5+p/+nm3//5+Pn/3+D+/0ZG//9PT///2Nj///Hx + +/+ioOj/LSrp/wQD/v9+fv7//v7/////////////4OD//1ZW//9+fv7/5+f9/9bT4P9iWcb/CQfy/0sy + g/+UYgj/jV0U/0wygP8DAvn/HBPQ/39ULP+XYwT/mWUA/31SLv8WDtr/Vjlv/5hkAv+YZAL/i1wY/zsn + nP8mHMr/oZOn/+Li5//8/P3S19bT1LWcb/9dP2z/BAP5/xsS0v+KWxn/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZgD/mmYD/6uFPf/Z0sj/X1/7/wEB//8oKP//3t7//9XV//9ra///SUn//0VF/f9TU/j/rKz7/+7s + 6f+2qaj/WVDI/0A+7v9OTvz/jY3///Pz/////v7/6Of//4yL//9ubv7/Wlr9/zk4/P9pZ+P/oIVn/59y + IP+ifkT/gnSl/2Nh5f89Pfv/qan+/7Oz//88PP//JSX//5OT/v9/f/3/TEz9/0A/9v85MtX/W0WO/66S + af/Pxr3/hYTx/01N/f9KSv//dHT//9ra//+4uf//fn7//0hI//+Skv///f7//////////////v7//+Tj + //+Jif//amn4/0lE4v8kGsv/TjR8/41eE/+UYgf/XD1l/zEhrf8qHLn/LR6z/0kwhf+JWxr/mWUA/5Rh + Cf9bPGb/hFcj/5llAP+QXw//UjZ3/zEhrf8uIL3/WFTb/9LS8f/9/f3S2drZ1Lyog/+EWjH/GRDW/wwH + 7P9yTD//mWUA/5llAP+ZZQD/mWUA/5llAP+YZgH/oHEZ/827mv/U0/T/LCz+/wIC//9mZv//9/f///z8 + ///39///9vb///X1/f/09Pz/+fn+/+fj1v+sjE3/nXMu/7Wddv/Vzsf/7u3z//38/v////////////v7 + ///l5f//0ND//93e/v/y8vj/5uPX/8SwiP+mfjb/n3Qo/7OZbP/Mw8T/6en0//v8/f/m5v//2dn+//f3 + /v/39///9fX+/+zt9P/Tzsf/tJtx/6B2Kf+mfzb/v6uK/93Z2P/y8vn/9vb+//39////////+/z+//Dx + ///u7v7//v////////////////////7//v/19fr/wLa9/4RgS/+GWR//lmMG/5lmAP+YZQD/lWMG/5Ri + CP+UYgj/lGII/5RiCP+YZAL/mWUA/5llAP+XZAP/mGUB/5llAP+YZQH/lWIH/5RiCf+abyX/wLar/+7u + 8P/9/f3S4ODg1MGzl/+abRf/UjZ1/wYE9P9AKpT/lGEJ/5lmAP+ZZgD/mWUA/5llAf+aaAj/tplh/+fi + 4f+Fhf3/Bgb//yIj///Gx/7//f3+//7+/v/+/v///v7+/////////////v7+//X08f/Yzbj/s5Ra/55y + Iv+phkL/y72e/+7s5v/7+/v//v/+/////////v////////7//////////f39//Py8P/Vy7b/sZNZ/59z + Iv+qhT//y7uZ/+jl3f/6+vn////+/////v///////v////7+///7+/v/7uvk/8y8nP+riEP/n3Mh/7KT + WP/Yzrf/8fDs//z8/P//////+/v///Dw///8/P////////////////////////39/P/l4dn/spRY/5po + B/+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+YZgD/mGYA/5hmAP+jfC3/ycO2//Dx8f/9/f7S7u7v1MvCr/+hdCL/jV0T/zwnm/8QC+T/YUBd/5Rk + B/+YZgD/mWUA/5lmAv+ngDT/1czA/6en+v8dHf//Ghr//5+g/f/q6ef/4tnM/+rm3//7+/v//v////// + //////////////7+///7+vn/5eDW/8Othf+kfTH/oXcn/7mgbv/d1cT/9PTx//39/v///v////////// + //////////////7+/v/39/f/5uPa/8m4kf+mfzb/n3Mk/7WYZP/e1cT/9fTy//39/f////7//v////// + /////////v7+//b19P/g2sr/vKJz/6N5LP+lfTP/wKuD/+nn4P/7+/7/n5///0hI//+trf///f3////+ + ///+//7////+//b18v/Fso3/nm8V/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAv+qh0T/1dLM//X29v/+/f7S7u7u1MzI + vv+ngTf/mWUB/4xcFv9NMn//IRbJ/040fP9+VC3/jl4T/5BlJf+di5j/dHPy/yMj//83N///rKz///Pz + +P/SyK//ro9S/8Ovif/19fP///////////////////////7////+/v///fz9//Lw7P/VzLb/s5Vb/6Bz + JP+pgz//yrqZ/+rn4P/7+/r//v7+//////////////////7+///+/v7//f7+//X08f/Yz7v/tJdh/6B0 + JP+pgz3/yLaS/+jk3P/6+vr//v///////////////////////v/7+/v/7u3n/9HDpf+sikj/q4lF/+Lc + zf/09f7/WFj//wMD//9qav//+/v///7//v/+//7/+/v7/9zTwP+ogTX/mGYC/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYA/5ln + Bf+yl2P/29vZ//z8/P/+/v7S9fX11NfV0P+ukFT/mWYD/5lmAf+VYwj/eVE1/080e/8+KZf/Piqb/z4y + w/9IRvL/V1f+/5eX///h4P///P3///v8/P/r6OH/wKyE/7aaZP/u7Of//f39//n59//49/b//f39//7/ + ///+//////7+//7+/v/6+vn/6OTc/8a0j/+ngTn/n3Qj/7abZP/a0b7/8vHv//39/f////////////7/ + //////////////7+///6+vr/5+Tc/8i3kv+phD3/oHQj/7SXX//Zz7v/9PPw//7+/v////////////// + ///+/////f7+//j49v/j3dH/3NTA//Pz8P/9/v//w8P//3R0///Nzf///v7////////9/f3/6+jh/7ea + Y/+baAj/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5tqDf+9q4f/4+Pi//39/f/9/v7S+vv71N/f3v+5o3r/m2kK/5lm + AP+ZZgH/mWYB/5dlA/+QYA//lnJH/8K6y//k5Pz/9fX+//7+///////////////////8/Pz/3tbF/8Wx + jf/x7ur/9vXz/9PGqv/KuZf/5uLY//r6+f/+/v7///7//////////////f39//T08P/a0r7/t5xm/59z + JP+mgDn/xLKN/+rm3v/7+vr//v7+/////////////v/+/////////////f3+//X18v/e1sX/uJ1r/6B1 + J/+lfjX/xbOM/+Xi2f/39/f//v/+//7+/v/+/v7//v7//////v/9/f3//f38//7+//////////////39 + /////////v////7+///09PL/x7aT/55xGf+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYA/6B0H//Ivqn/8PDw//// + ///+/v7S+/z81Onq6v/Hu6P/nnEa/5lmAf+YZgD/mWYA/5lmAP+dbxL/w66G//Lx7v/+/v7///////// + ///////////////////+/v7/9/b0//Du6//6+vr/7Oni/7OUWP+ecBz/spRZ/9fNuP/x8Oz//Pz8//7+ + //////////////7+/v/6+vr/6+jh/8a1kv+ngjz/n3Mh/7ibY//a0Lz/8/Lv//z9/f/+//7////+//// + ///////////////////7+vr/6+ni/8y8m/+rhkH/n3Ih/7GSV//TybL/8/Pv//z9/f///v///v7///// + //////////////////////////////////////////////v7+//d1cT/qYI5/5lmA/+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mGYC/6iDPf/U0Mf/9vb2///////+/v7S/P391PHx8f/Oyb//p4I7/5lmAv+ZZgH/mGYA/5lo + Bv+zlVf/6OXb//39/f////////////////////////////////////////7///7+/v/+////9fTx/9PF + rf+vj1D/nnAc/6R9M//ArYT/4t7U//j49//////////////////+/////f39//Pz8P/Y0L7/t5xn/6F2 + J/+nfzj/xbGM/+fk2v/5+vj//v/+/////////////v7+//7+/v///////f39//j29f/e18b/uJ9s/6B1 + KP+mfjX/xLGI/+jj2P/49/f//v7+/////////////////////////////////////////////f7+/+vp + 4/+5nmf/mmkK/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWcG/7Waaf/d29n/+/v7///////9/f3S/f391Pn6 + +v/Z2Nb/s5lm/5poB/+YZgD/mWYB/6B0Hf/Ow6r/+fj4/////////////v/+//////////////////// + //////////////7////+/////v7+//f39v/k4NP/xLCF/6Z+Mf+dbxr/ro9R/9PHrv/z8e3//f38//// + /////////v7///7//v/6+vr/7erk/86+oP+qhkP/oHMj/7KSV//YzbX/8vDs//z8/P////////////// + ///+//////////7////7+/v/6uji/8q9n/+siEb/n3Mg/7GRVP/Tx6//8/Lv//7+/v////////////// + ////////////////////////9vX0/8u7m/+fchv/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/nW8W/8O1 + mP/p6Oj//v7+///////+/v7S/f391P7+/v/o6Oj/xLWY/59wF/+ZZgH/mWYB/51wFv/AqoD/5+LZ//n4 + +P/9/v7//v7+//7////////////////////////////////////////////////////9/fz/8/Lv/9nO + t/+ylFn/nXAd/6R6Lv/BrIH/5ODU//f39v/+/v7///7//////v///v///v7+//X18//f2Mf/uqBt/6J3 + KP+lfDL/wKuC/+Ld0v/5+fj//v7+///////+/////////////////////f3+//b29P/i3M7/vKR2/6J3 + LP+sikr/5uDU//7+/v///////////////////////v////7////8/Pv/4NjJ/6uFP/+ZZwP/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgL/poE4/9PNw//y8vP////////////+/v7S/f391P7+/v/x8fH/z8rA/6eD + PP+YZgL/mWYB/5lmAv+ebxb/s5NY/9TJs//w7+z//Pz9///+//////////////////////////////// + //////////////////////////////n5+P/n4tj/xrKL/6d/NP+dcBv/ro5O/9HFqv/u7Oj//Pz7//7+ + /v///////v/+//7//v/7+/v/7evm/8/Ao/+riEf/nnIh/7CPUv/VybD/8fDr//z8/P////////////// + /////////v////7////8/Pz/7uzn/9HGrP/JuZb/8O7p//7//v////////////////////////////7+ + /v/x7+n/vKFu/5xqDP+YZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAj/tZ1u/93c2f/6+vr///////// + ///+/v7S/f391P/////4+Pj/2dfW/7efcv+aaQr/mGYB/5hmAP+ZZgH/mmgI/6R6LP/Cq4H/5N7T//j4 + 9//+/v7////////////////////////////////////////////////////////////8/P3/9PPw/9nR + vP+4nGX/n3Ih/6J3Kf+8pHX/3tjK//X18//9/v3//v7+//7////+//7//f7+//b29f/f2Mv/vqZ3/6N5 + Kv+kei3/v6p9/9/azf/29vX//v7+///////////////+//7////+/////v7+//n5+P/29vT//Pz8//7/ + /////////////////////////v7+//X29P/OwKL/onYg/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+gdCD/x72n/+vr6//+/v7////////////+/v7S/f391P/////+/v7/6urr/8i+q/+jeCf/mGUB/5lm + AP+ZZgH/mGYB/5lmAf+dbRH/sI9R/9LErP/u6+f//Pz8//////////////////7//v////7///////// + ///////////////////+/////v7+//r6+v/q5t//y7qZ/6qEPf+dbxn/qodE/8u9nv/u7ef/+/z8//7/ + /v/+//7//v////7//v/7/Pz/8O7p/9TIrv+wj1D/nnEi/6yISv/Qw6f/8O7p//z8/P/+/v7//v7///7/ + ///+/v7//v///////v///////////////////////////////////////Pz8/9/ZzP+rh0P/mmYD/5ll + AP+ZZQD/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmBP+tjlL/19XP//b29v/////////////////+/v7S/f391P// + ////////9vb2/9PRzf+xlV3/mmcG/5lmAP+ZZgH/mWYA/5llAP+ZZQH/mWYG/6J4J/+8pXb/5d7R//j3 + 9v/+/v7//v/+//7//v/+//7////////////////////////////////////////////9/f3/9fXy/+HY + xv+5nmn/oHQi/6F1Jv++pXX/4dnL//X19P/8/f3//v///////////////v7+//r5+P/i3dD/vqd7/6N5 + Lf+jeCn/vaR1/+DZyv/29fP//v79///////+//7//v////////////////////////////////////// + ///+/v7/7+7p/7+oeP+baw3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/55wF//CspT/4uLh//z8 + /P/////////////////+/v7S/f391P///////////f39/+Pj4v/Ctp3/n3Qg/5llAf+ZZgH/mWYA/5lm + Af+YZgD/mWYB/5lmAf+caw//r4xK/9LEqP/u7Of//Pz7//7+/v////7///////////////////////// + /////////////////////v///v////v8+//r6OH/zL2d/62JR/+dbxv/rIlF/8i6mf/n5d7/+vv7//// + /////////v7+///////8/Pz/7+3p/9XKsv+xkVT/oHIi/6uHRv/LvZ//7evl//z8/P/+//7///////// + ///////////////////+/v7////////+///4+Pf/z8Km/6J3I/+ZZgL/mGYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + Af+ZZgH/mWcE/6uKSP/SzsX/7+/v//7////////////////////+/v7S/f391P////////////////f2 + 9//X1ND/sZRb/5pnCP+ZZgH/mWYA/5llAf+YZgD/mWYB/5lmAP+ZZgD/mWYF/6N3Jv++pHT/4NnK//f2 + 9f/9/f7////////////////////////////////////////////+/v////////7//v/+/f7/9vb0/+Ha + y//AqHb/oncm/55zIf+1nGf/3dbE//X08v/9/f3//////////////v///v7+//n5+P/m4tf/wKyC/6N7 + MP+gdiX/uqJv/+Hayv/5+fj///////////////////////////////////////38/P/j3dH/rYtJ/5pn + Bf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/nnAX/8CwkP/j4uP/+/v7//7//v////////////// + ///+/v7S/f391P////////////////z8/P/h4uL/xbqj/6J3J/+YZgH/mWYB/5llAP+ZZQD/mmUA/5ll + AP+ZZQD/mmYB/5plAf+bag3/q4Y//829nf/r6OL/+vv6//7+/v////7//v////////////////////// + /////////v///////////////v////z8/P/x7+r/z8Kk/66MTP+ecB3/qIM9/8m4lv/o5d3/+vr6//7+ + /v/+/v7//v/+//7////8/f3/7u3q/9PJsf+2mF7/oXYp/8Ouhf/19fL///////////////////////// + ///+//7//v////Px7f/AqX3/nGwP/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5llAP+aZgH/mWUA/5lmAP+aZwX/ro5Q/9LP + x//09PT////////////////////////////+/v7S/f391P/////////////////////09fb/1dTR/7Wb + av+aaQr/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/6BzHv+4nGj/29LB//Pz + 8f/9/f7//v/////////////////////////////////////////////////////////+/v7/9/f2/+Pe + 0f/CrYH/pHwv/59yH/+1mWD/2M+8//Ly8P/7/fz///////7///////7//v7+//n5+f/p5tz/0MGl/+Lb + zP/6+/r//////////////////////////////v7/+fn4/9bKsf+jeSj/mWYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAf+hdSL/xLif/+Tk4//8/Pz////////////////////////////+/v7S/f391P// + ///////////////////9/f3/5+fo/8rBsv+mgDb/mGYD/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5ll + AP+ZZgD/mGYB/5hmAf+aaQr/qII5/8e1kf/o5N3/+fj4//7+/v///////v7+//7+/v////////////// + /////////////////////////v7///39/f/x8Oz/1suz/7GQVP+ecR7/poE5/8W1kP/j4dj/+Pj3//7+ + /v/+/////v/+//7//v/9/f3/+vn5//z8+//+//7////+///////////////////////8/Pz/4dzS/6+O + T/+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWYB/5tqC/+2nGv/29nV//j4+P////////////// + ///////////////////+/v7S/f391P//////////////////////////+vn6/93c2/+/rYr/nW8Y/5ll + Af+ZZQD/mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mGYA/5lmAP+YZgD/mGYD/55wGv+0ll7/1su4//Px + 7//+/v7//v////////////////////////////////////////////////////7////+/v7/+Pj3/+fi + 1//Gson/p4A0/59yHf+wklb/1cu1//Py7v/8/f3///////7////+///////////////+/v7//v////// + ///////////////////z8vD/wqyE/5xtEf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWYD/6iD + PP/LxLb/6+rq//7+/v/////////////////////////////////+/v7S/f391P////////////////// + /////////v7+/+3t7v/PzMX/sZNb/5poCf+YZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYB/5lmAf+aaAj/pX0w/8izjf/p5dz/+fr5//7+/v///v///v/+//////////////////// + //////////////////////////////39/f/08/D/1864/7KVWv+ech7/pX0z/8Ovh//l4Nb/+Pf4//7+ + /v////////////////////////////7+///+/////v7///r5+f/XzLf/pnwu/5lmAv+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mGYA/5hmAP+ZZgH/n3Qe/8Gxk//f39//+/v6//////////////////////////////////// + ///+/v7S/f391P////////////////////////////////v7+//j5OP/yL+v/6iCOv+ZZgT/mWYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAP+ZZgD/mWYC/59vGP+0lVv/18y2//Lx + 7v/8/fz//v/+///////////////////////////////////////////////////////+/v7/+fn5/+Xj + 2f/ItpD/qII5/55xHv+wkVP/1s23//X18//+/v7//////////////////////////v///////fz8/+bh + 2P+xklb/mmgH/5lmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5hmAP+cbA//tZ5u/9bU0P/09PT//v7+//7/ + ///////////////////////////////////+/v7S/f391P////////////////////////////////7+ + ///6+vr/3t7d/8GxlP+idiP/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZQD/mWYB/5hlAf+ZZwj/pnwv/8Svhv/k39T/+Pf2//3+/v/+//////////////////////////// + ///////////////////+/////v////39/f/19PH/3dTA/7ebZP+gdCX/uqFt//Du6f/+/v7///////// + //////////////7+///+/v7/8vHv/8KviP+dbxT/mGYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5po + CP+ujVD/z8rA//Dw8P/+/v7////////////////////////////////////////////+/v7S/f391P// + ///////////////////////////////////+////9vf3/9fX0v+6pHz/nm8Y/5hlAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWYC/5xtEv+wj1D/0cSr/+7t + 6P/8/fz////////////////////////////////////////////+///////////////+////+/v7/+rn + 4P/PwqX/2NC7//j49//////////////////////////////+///7+/v/29K+/6Z+Mf+ZZgL/mWYA/5lm + AP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYE/6mDPf/Jv67/5eXl//z8/P////7////+//////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////Pz + 8//Tz8n/tZtq/5xsEf+YZQH/mmUA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZwb/ongo/72nef/k39L/+Pf2//7+/v/+//////////////////////////// + //////////////////////////////7+/v/6+fj/+vr5//7+/v////////////////////////////39 + /f/q5t7/tphg/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgP/pHwv/8W5n//e3t3/+fn5//// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + //////////////////////////////3+/v/t7u7/z8nA/7GVXf+baw7/mWYB/5lmAP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYC/5xsEP+vjEv/0sSo/+3r + 5f/7+/v//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////T08v/JuJP/n3EX/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + A/+hdyf/wbKT/9zc2v/19fX//v////////////////////////////////////////////////////// + ///+/v7S/f391P/////////////////////////////////////////////////////8/fz/6Ofn/8vF + u/+wk1r/m2sP/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgH/mWYA/5lmAf+YZgX/oXYk/7qgb//e18f/9/f2//7+/v////////////////////////////// + ///////////////////////////////////////////////////+/v7/+/v7/97Vw/+ogTb/mWYC/5hm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mGYC/6J3I/+8q4r/2NbU//T19f/+/v7//v////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + ////////////////////////+/v7/+Pj4//KxLn/sZRd/5xrD/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mGUB/5tqDP+siEH/z7+g/+3p + 4//7+/r///////////////////////////////////////////////////////////////////////// + ///9/v7/7urk/7ueZ/+baQn/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/ongn/72siv/X1tP/8vPz//7+ + /v/////////////////////////////////////////////////////////////////+/v7S/f391P// + //////////////////////////////////////////////////////////////v7+//p6en/zsq//7WZ + Zf+dbhX/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mGYA/5hmAP+ZZgT/oXMf/7mea//c1MT/9fXz//39/v/+//////////7///////////////// + ///////////////////////////+//7//v/09PL/ybiY/6BzG/+YZgD/mmYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgH/mGYA/5ln + Bf+kfDD/v7CS/9va1//19vb//v////////////////////////////////////////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////// + ///////////////+///8/Pz/5+fn/9DNxv+5onf/n3Me/5hmA/+ZZgH/mWUB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mWUB/5tpC/+qgzz/yriU/+nm + 3f/5+fn//v7+///+/////////////////////////////////////////v////z8/P/d1sb/qII6/5lm + A/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pm + Af+ZZQD/mWUA/5pmAf+ZZgH/mmgJ/6iEP//Dt6D/2trZ//T19f///v////////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + ////////////////////////////////////////////////////////+/v7/+vs7P/V087/vq2L/6R8 + MP+ZZwb/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZgD/mWYA/5hmAP+ZZQP/n3Ia/7WYYf/Xzbn/8/Pw//3+/v////////////////////////////// + /////////v7+/+/s5/+9o2//m2kJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+cbRL/r5FX/8jAsP/g4N//9/f3//7+ + /v////////////////////////////////////////////////////////////////////////////// + ///+/v7S/f391P////////////////////////////////////////////////////////////////// + //////////////39/f/19fX/3dzb/8S4o/+tjE3/nGsR/5hlAf+ZZgD/mWYB/5hmAP+ZZgD/mWUA/5lm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5llAP+ZZQD/mWUB/5poCv+mfTT/ybaR/+jk + 2//4+Pf//v7+//7///////7///7///7////+////9vX1/829oP+hdB7/mWYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAf+ZZgH/mWYA/5lmAP+ZZQH/mmcE/6F2 + I/+3oXX/zMnA/+bm5//6+vr////////////+//////////////////////////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + ////////////////////////////////////////////////////////+Pf3/+Hg4f/OyL3/uaF0/6J4 + Jv+ZZgb/mGUB/5hmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5hmAP+ZZQL/nm8W/7GTV//SxrD/7+/r//z9/f/+//7//v////7////7/Pz/39jK/6uH + Qv+ZZwT/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hm + AP+ZZQH/mWYB/5lmAv+cbBH/qodF/8G0mf/Y19P/6+zt//z8/P/+//////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7S/f391P// + //////////////////////////////////////////////////////////////////////////////// + ///////////+//n5+f/q6ur/1tXR/8S3n/+ujVH/nW4Y/5hlBP+YZgD/mWYA/5llAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/5lnCP+kei7/wKuB/+bh + 1//4+Pj//v7+//7+/v/w7en/vKR0/5xrDP+YZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlAf+ZZgH/mmgI/6R6Lf+5oXf/zMa7/+Hh4P/5+fj//v7+//7/ + ///+//////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////// + //////////////////////////////////////////////7////9/v7/9fX2/+Xl5f/RzMT/vquI/6mE + Pv+cbBH/mGYD/5hlAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + Af+ZZgD/mWYA/5llAP+YZQL/nW0S/7KQUv/Ux6//8e7q//b19P/Sxav/o3cj/5llAf+ZZgD/mWYA/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5pnBv+hdSP/spZg/8i9 + qf/X1tP/6enp//r7+/////7//v7///7//v////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+//z8/P/t7e3/29ra/8rEt/+6pX3/qYM9/51sE/+ZZgT/mWUB/5lmAf+ZZgH/mWYA/5lm + AP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYB/5lmB/+jeCv/vqd8/87C + q/+siUf/mmcF/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/mWYA/5lmAP+YZgH/mWYB/5hl + Af+ZaAn/oXUj/7KTXP/Et5//09HM/+Xk5P/39/j//v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7S/f391P////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7/+fn5/+fo6P/Z2df/zce7/76q + hf+siUr/n3If/5loCf+ZZQL/mGYA/5llAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYA/5llAP+YZQH/m2sP/6F2Iv+aaQr/mWUB/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lm + AP+ZZgD/mWYA/5lmAf+ZZgT/nGwR/6V9Mv+1m2n/xbmj/9bUzv/m5ub/9PT0//39/f////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7///////79/f/5+vr/7/Dw/9rb2v/QzMT/xLec/7Waaf+mfzf/nm4W/5pnCf+ZZQP/mWUB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUA/5lmAf+ZZgD/mWYA/5lmAf+YZgD/mWUA/5pm + Af+aZgH/mWUA/5lmAP+ZZgD/mGUA/5hlAv+ZZgX/m2sO/6J3Jv+vjU//vKmE/8nCsv/Y1tP/5+fn//f3 + 9//9/f3//v////7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7S/f391P// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v///////f7+//n5+v/x8vL/4ODg/9nX + 1P/Nx7v/v7CT/7aca/+rhkX/onUj/5xsEv+aaAj/mWUE/5hlAf+ZZQD/mWUA/5llAP+YZQH/mWUA/5ll + AP+ZZQD/mGYA/5lmAf+ZZgH/mWYA/5llAP+ZZQH/mWUC/5pnBv+bag3/nnEb/6V/NP+wklj/vKiD/8e9 + qf/Tz8j/3d3b/+vs7P/4+Pj//f79//7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7S/f391P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/////Pz8//f39//w8fH/3+Dg/9XU0v/QzML/x7yp/7+ujf+1nG7/r45S/6eC + PP+keSv/oHMg/59vGP+dbRP/nGsR/5xrEP+baw//nGsQ/51tE/+ebxf/oHMe/6N4J/+mfzb/rIpK/7SY + ZP+7p4H/xbig/87Huv/V0s7/3t7e/+jp6f/19PX/+/v7//7+/v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7S/f391P////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////P38//b2 + 9v/y8vH/6urr/+bm5v/e3dz/0tHM/8/Kwf/MxLX/xrum/8S2nP/BsJL/vqyL/7+siv++q4j/vqyK/8Cw + kP/CtZr/yLym/8rBsP/OyL3/09DK/9rZ1v/e3t7/5uXm/+3t7v/39/j//Pz8//7+/v////7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7S/f391P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v////7//v////7//v7+//3+/v/7+vv/9fb2//Pz8//x8fH/7Ozt/+rq + 6//l5eb/4OHh/+Pj4//n5+f/4eHg/+Li4v/n5+j/6uvr/+7v7//x8fL/9fX1//r6+//8/Pz//P39//3+ + /v////////7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////+/v7S/f391P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + /////////v////////////////////7+/v/9/v7//f39//z9/f/+/v3//P38//39/f/+/v7//v7+//7/ + //////////////7//////////v////7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7S/f39sf39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39 + /dX9/f3V/f391f39/dX+/v6vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAA + AAAAAAAAAAAAAP7+/r3+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f+/v73/Ly8t/l5OPf1tPL38m+q9+9q4nftJlm36uJ + SN+lfTHfoXUj36BxG9+ecBnfnnAa36BzHt+ieCnfqYI737GSWd+6pHzfw7ae39PNw9/g3tzf7u7u3/n5 + +d/9/f3f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/r3+/v7Y//////////////////////////////////////// + //////////////////////////////////////////////7+/v/4+fn/7u7t/9rX0P/Hu6T/t55u/6mE + Pv+gdB7/m2sN/5pnBf+ZZQL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgP/mmgJ/55v + Fv+mfTL/sZNb/8OylP/UzsL/5OPi//X29v/9/v3///////////////////////////////////////// + ///////////////////////////////////////////////////+/v7Y/v7+2P////////////////// + /////////////////////////////////////////////////////////v7+//r6+v/o6Of/0cu//7yn + gf+phD//nm8W/5lnBf+ZZgH/mWYA/5hmAP+ZZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5lmAf+ZZgD/mWYB/5lmA/+baw7/pHsu/7SaZv/KwKz/4d/c//T09P/+/v7///////// + /////////////////////////////////////////////////////////////////////////v7+2P7+ + /tj//////////////////////////////////////////////////////////////////////Pz8/+7u + 7f/Wz8P/uaJ2/6R7Lv+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwX/mmgI/5ll + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/oHMc/7CT + Wv/Jv6v/5uXi//f39//+/v7///////////////////////////////////////////////////////// + //////////////7+/tj+/v7Y//////////////////////////////////////////////////////// + ///9/v7/8/T0/9zZ0/+/rIr/pn4z/5ppCf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+aZwT/sI9P/8Cpfv+keir/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZwT/oXUh/7ieb//TzcH/7u3u//z8/P////////////////////////////// + ///////////////////////////////////+/v7Y/v7+2P////////////////////////////////// + ///////////////////9/f3/7O3r/87FtP+uj1P/nGwR/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQH/pXsp/+DWxP/39vT/3tXB/7WWW/+dbRL/mWYB/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+aaAj/p4E4/8S1mf/l5OH/+vr6//// + /////////////////////////////////////////////////////////v7+2P7+/tj///////////// + ///////////////////////////////////7+/v/5uXj/8Szlf+lfC3/mmcE/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/nGsN/8ezi//5+Pf///////7+/f/w7uf/zLqX/6h/ + Mf+aaAb/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + Av+fchv/uqJ2/9rX0P/29vb//v7+//////////////////////////////////////////////////7+ + /tj+/v7Y///////////////////////////////////////////5+fn/4N3Z/7ule/+fcRr/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcD/7OSUv/t6uP//v/+//// + /////////v////r6+P/k3Mz/uJpk/55vFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5trDf+xk1r/1c/E//X19P////////////////////////////// + ///////////////////+/v7Y/v7+2P///////////////////////////////////v/5+fn/3NrU/7ee + bv+dbRD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6R5 + JP/e077//v79/////////////////////////////v7+//Hv6v/RwKD/qYE3/5poB/+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/62MTP/TzL//8vLy//7/ + /v///////////////////////////////////////v7+2P7+/tj///////////////////////////// + ///7/Pz/3tzX/7aebf+cbA7/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5xrC//HsYb/+Pj2////////////////////////////////////////////+/r5/+Td + 0P+8oWz/oHIZ/5llAv+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+aaAb/rIlI/9LMv//29vb///////////////////////////////////////7+/tj+/v7Y//////// + ///////////////////9/f3/5+bi/7qjd/+cbA//mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+xjkr/7eng//7//v///////f39//7+/v////////////// + ///////////////////9/v7/9PLu/9LDp/+rhT7/m2kJ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5poBv+ujVD/2dTL//r6+v////////////////////////////// + ///+/v7Y/v7+2P/////////////////////9/v7/6+rp/8Cvjf+ecBf/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+idR//2s62//z8/P////7/9vXy/9jN + tP/o49b//f7+//7+/v/+//////7////////////////////+///6+vr/6ePX/8Oqe/+hdB//mWYC/5lm + AP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2kJ/7SYZP/h3tn//Pz8//// + /////////////////////////v7+2P7+/tj////////////////+////8/Py/8vArP+jeCf/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wql7//b1 + 8//+//7//v/+//Xz8P/HtpH/0sSl//b18v/k3s//8vHs//7+/v////////////////////////////7+ + /v/29fL/1smw/6+MSP+cagv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+dbRH/vaqF/+no5//+/v7///////////////////////7+/tj+/v7Y////////////////+vv7/9vX + z/+riEb/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lm + AP+ZZgL/rYhB/+nj2f/+/v7////////////+/v7/7+zk/+zo3v/n4dT/rIlF/7ugbv/n4dT/+vr6//7/ + //////////////////////////////z8/P/r5t3/w6yA/6N3JP+ZZgP/mWUA/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/mWUB/6J4Jf/Kwa3/9fX1///////////////////////+/v7Y/v7+2P// + /////////v7+/+jn5f+6o3j/m2oK/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgH/oXMb/9bIrv/8/Pv///////////////////////7+/v/+/v7/9vTx/8++ + nP+qhDv/q4ZB/9HCpP/08+7//v7+/////////////////////////////v7+//f29P/b0br/spBR/5xq + Dv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgP/ro5R/9za1P/7/Pz///////// + /////////v7+2P7+/tj///////////b29v/OxbL/onck/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmkH/72jcP/19PH///////z8+//o4tb/5+HU//z8 + /P/+/////v////7+///6+vn/5N3O/7yfav+ley7/vaJw/+Xe0f/7+/r///////////////////////// + //////7//f38/+zo4P/Is4v/pHko/5lnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5xt + Ef/Ar47/7u7t//////////////////7+/tj+/v7Y//////3+/v/l4+D/spZf/5pnBP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6qEOv/l39L//v7+//// + ///5+fj/z8Kl/8Crf//39vP/+fn4//z8/P////////////7+/v/z8ez/0sOj/6yHQv+qhT//0cKj//Lw + 7P/9/f3////////////////////////////+/v7/+fn3/93TwP+zlFj/nW0Q/5lmAf+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/qIM7/9jUy//8/Pz////////////+/v7Y/v7+2P/////4+fn/zsSv/6Bz + HP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/59w + Fv/SxKb/+/v6///////////////+//Lw6//c07//8O7p/8i0jP/Txaj/9fPv//7+/v///////v7///v7 + +v/m4NL/vKNv/6V8L/+5nWn/5N7Q//r6+f/+///////////////////////////////9/f3/7+zm/8y5 + lf+mfTD/mmcG/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5xrDP+/rIj/7e3t//7+/v///////v7+2P7+ + /tj/////6ejm/7SZZf+ZZwP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWYA/5poBv+6n2n/8/Lt//7////+//7//v/+///////+/v7//f38//Tz7//Aqn3/pn0y/7+l + c//o4dT/+/v6//7//////////v7+//Tz7//Vx6r/rIlG/6qGQP/Pv5//8e/q//7+/v////////////// + ///////////////////5+fj/4dnJ/7mcZP+ebxX/mWYC/5lmAP+ZZgD/mWYA/5lmAP+ZZQH/qYU//9zZ + 0v/8/f3///////7+/tj+/v7Y+vr6/9PLvf+ieCb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogTT/5N3P//39/f/+//7/8vDr/+nk2P/6+vn///////// + ///+/v7/8/Lu/9PFqP+uikf/rIhF/9PEpv/18+///v7+////////////+/v7/+bh1f/BqXn/pX0x/7md + aP/l3s//+vr5//7///////////////////////////////3+/v/z8Oz/zr2d/6mBNv+aaAf/mWYB/5lm + Af+ZZQD/mWUA/51tEv/Ft53/9PT1///////+/v7Y/f792PDw7/+9qYP/mmkI/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhP/zbya//r6+f///v///f38/9rS + wP+5oG7/7uvi//39/f/9/f3//v7////////8/Pv/6OPW/7yjcv+nfzT/vKFv/+Xf0f/7+/r///////// + ///+/v7/9vXx/9bIrv+ujEr/q4Y//869m//y8Or//v79/////////////////////////////v////r6 + +f/m39D/up5q/59wGP+ZZgL/mWYB/5lmAf+ZZgP/spVf/+fl5P/+/v7//v7+2P39/djj4d3/rItK/5lm + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+aZwX/upxk//Hv + 6v/////////////////29vP/1Miu/+/s5f/g1sP/18yy//Tz7//+/v7///////7+/v/08+//1smu/66L + Sf+siEP/0cKj//Px7f/+/v7///////7////7+/v/6uXb/8Gqff+lfTP/uJpi/9/Yxv/5+Pf//v////// + /////////////////////////v7+//Px7f/Sw6X/qoQ7/5lnBP+ZZgH/mWYB/6R7LP/W0cb//Pz8//7+ + /tj6+vrY1My9/6F1If+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZgH/p34v/+TczP/+/v7//////////////////v7+//r6+P/6+vn/0MCg/6qFP/++pXX/5d/T//v7 + +v////////////v7+//o49j/wal7/6Z/NP+7oW7/5uDT//v7+v/+//7///////7+/v/19PH/2c62/7GQ + Uf+ogjv/yriT//Hu6P/9/f3////////////////////////////+////+fj3/8Wxiv+bagn/mWYA/5hm + AP+dbRD/xrid//X19f/+/v7Y8/Pz2MSzlP+bagv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/nW0Q/8y5lf/6+vj///////z7+v/08u3/+/r5/////////////v////f3 + 9f/c0br/spFW/6yJR//Sw6X/9PLu//3+/v/+/////f7+//b18v/VyK7/r45O/62JRv/RwqT/8vHt//7+ + /v/+//////////39/P/r593/w66D/6d/Nf+1mF7/3tbE//z7+////////////////////////v7+/+ni + 1v+rhTv/mWYB/5llAP+ZZgD/mWcE/7igcv/v7u7//f792Ozq6di3nWv/mmYD/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcE/7SVWf/w7ef////////////p5t3/wKyA/+Tc + y//9/f3/+vr5//39/f/+/////f38/+zo4P/FsIn/qoVA/7yicP/l3tD/+vr6//7////+/////Pz7/+vn + 3P/Cq33/pn82/7uib//m4NP/+vr5/////////////v7+//f29P/b0bv/s5RY/7+mdv/29vL///////// + //////////////Tz7/+9o3D/m2kH/5llAP+ZZQD/mWYA/5lmAf+sikr/4+He//39/dji4NzYrIlH/5ll + Af+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6V7Kv/e1cL//f39//// + ////////+Pj2/9PHrP/h2cb/8e3m/8m2kP/g2Mf/+fn3///+///+/v//+Pf1/97UwP+1l13/rIlH/8+/ + oP/x7+r//v7+//7////+/v7/9vXy/9jMtP+wj0//q4dB/8+/n//08u3//v7+///////+/////f38//Dt + 5v/v6+L//f79//////////////////z8+//Xya7/oHIa/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/pHwt/9jT + yv/7+/vY1c/G2KV8L/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5xs + Dv/Jto7/+fn3//7////////////////////29vP/+Pj2/+3o3v+2mWH/qoVA/827l//x7+n//f39//7/ + /v/9/f3/7+3m/8m3k/+phD//uZ1n/+Tdzf/5+fn//v/////////9/Pz/6ubb/8Gpff+nfzb/uqBs/+Lc + zf/7+vn//v////////////////////////////////////7+/v/o49j/rIhB/5lmAv+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/6ByG//QyLj/+fn52M3Ds9igdB//mWUA/5llAP+RYA3/flMs/3NMP/94Tzb/h1ke/5Zj + Bf+ZZQD/mWUA/5pnA/+xkVH/7erj//7+///h4f//6+r3//v6+f/+/v///v////7+///t7fz/trPl/49+ + lv+ceEf/t5pj/9nQw//f3/r/39///9/f///q6fb/3dXC/7aZYv+siEb/zLuZ/9za6//n5/////////7+ + /v/19PL/xrq1/5V0Vv+VdFj/w7e2//Lw7f/8/P3/4eH//76+///S0v//+Pj////////39vT/wal6/5Vm + Ev+EWCP/mGUB/5llAP+WYwT/g1Yl/5dkBP+dbRD/yb2l//X19djIvKXYnnAV/5ZjBP9vSUb/NSOn/0Ir + kf9jQln/aUVP/080ev9OM37/hlkh/5llAf+keCX/3dK+//39/f/29v//Y2L9/35xs//Wya//+/z8//39 + /f/g4P7/V1f//yEh//8+Pvv/V1DU/5B0af+eekT/aVmp/ygn+f9zc/7/2dn///39/f/x7+j/zLuY/6qH + Rv9eTqv/d3b3//b2+P/+//7//f3+/8TE/P9BPu//LSXT/31jdP+7pHv/qaft/zEy//8qKv//Tk7//42N + ///t7fz/2c22/6F1H/91Tjz/MiGr/45eEf+ZZQD/gVUo/y0etP+GWCD/m2oL/8O0l//z9PTYwbSZ2Jxt + E/9nRFL/Fg/a/040ff+RXw7/mWUA/5llAP+SYAv/TzR7/ywetf+HXSz/xq+F//j39f//////zs7//yIi + //9KQs//w7Sg//j49v/b08L/bWji/xsb//+kpP//6On//9bW//+7uez/zLyf/49yZv8XEuj/o5/h//j3 + 9v/+/v7///////r5+P/Nx9P/KSTj/zIr2P+3qan/7+3m//39/f/7+///ZWX//1FR+P/Vyrr/t6ee/zEw + 9P9CQv//zs7//+np///Cwv//zsrg/7CNSf+YZgT/TDN//xAL5P9yS0H/mGQB/1Q3c/8NCej/Z0NU/5to + CP/Aroz/8vLy2L+vk9iKYS3/HRTO/ykbuf+OXRP/mWUA/5llAP+ZZQD/mWUA/4hbG/8eFM3/VUq+/+nl + 4v/+/v7//Pz//4GB//84OP//kpH5/7287v/39vT/uqaM/yohzf9RTeP/6+nr//39/f///////v7+//r6 + +f/FweH/HRry/3thd//FsYn/7eri//39/f/+/v//p6f+/yQk+/9+edX/dVl3/7WXX//e1ML/9fX2/2ho + /v9ZWf//9/j9/7+/+v8ZGf//r6/////////+////+Pf1/8exhv+cawv/jl8R/yYZwP85JqD/WTtq/4lb + Gv8kGMP/Oiae/1U4cv+WZQ7/v6uH//Ly8tjAsZXYaktk/wcF8/9ZO2v/mWUB/5llAP+ZZQD/mWUA/5ll + AP+WZAX/OSag/ykp/f/h4f7//////+Pj/v80NP//hIT//9ra//+Skv//+Pj+/+Ti6/85N/P/QjGs/5WC + l/++uuP/1NT9/+fo///+/v//19f//yIh/f+Pga7/rIlH/7OUWv/b0bz/7Ov0/1JS//9dXv//5OT8/3lz + 3P+tkm//qoRA/8OvjP9bWOn/WVn///n5///Bwf//ICD//56e///Kyv//0NH+/722zP+cci//mWUA/3VN + PP8UDd3/cUpE/10+Y/9UN3P/Ew3f/3RNPf9aO2n/g1gu/76riP/w8PDYw7ad2FU+jP8HBfL/cEtE/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmkK/0w6pP8UFP//zMz///z8/P+Ylu//ISH7/83N/P/5+v//hYX//9TU + ///7+/7/cnL//0A97v+Bcqn/c1l4/z00z/9dXfz/9fX9/9fX//8gIP//l5f6/+Pd0/+2nXX/qIM+/5WE + nP8eHfv/rq79//3+//+amv7/rqzt/9PDpv+qiEn/QzSt/1hY/v/5+f//4uL//zg4//9+fv//sLD+/5ST + 8/8nI+z/ZURY/5hkAv9MMoH/IhbG/4xdFf94Tzf/GBDX/y4esv+RYA3/cEpE/2NEZf+/ro//8vLz2Ma8 + qNhdRof/CQbv/3NMP/+ZZQD/mWUA/5llAP+ZZgD/mWYC/6uHRf9XUt//FBT//8rK///Z2f3/Pj75/zUz + 7v/i4fP/9vb5/46O/f90dP//6+z//9bW//9mZf3/wL3o/6+gpv8sIs7/YFCu/9jPxP+npvn/Fxf//2Ji + //91dv7/XVvw/6iaq/9DNbf/HBnt/7qzzv/19PT/sLD+/1xc///d3fr/vrjV/y8p3v9ZWP7/+fn///39 + //+hof//goL//+Li+f+SjNX/HxfX/3hQNv+AVSn/HhTN/zUjpv+QXw//kWAO/zEgrv9fP2D/l2QD/3VO + PP81JrP/r6W0//T09djNxrjYfF1j/w4J6P9jQVr/mWUA/5llAP+ZZQD/mWYA/6FzHP/Iu7D/Pj78/y4u + ///f3///s7P//4KD/v+IiPr/1NT3/8S1p/91ZKX/e3fm/8fH/f/9/f//2dn//52d//98fPz/iIbs/6+X + ef+lgEH/jHiQ/3Vx4/+/wP3/iIj//3V1//+xsfz/g4P6/29p1v+IbXL/vKaD/5mU3P+Dg/z/uLj//9nZ + //+bm/7/n5////v8////////+fn//769/f+Aetv/TTqc/29KRv+TYgn/a0dN/040fP9WOHD/g1cl/5ll + Af97UTH/jFwW/5NhCv9nRFT/VDuG/5iT0P/09frY1dDJ2J57Q/80Iqj/OCWi/5NhC/+ZZgD/mWUA/5pp + B/++pHL/q6nx/xcX//+Cgv7/+vr9//7+/v/+/////v7+//v7+v/Wya7/ropJ/7OVXP/d08D/+Pj2//7/ + /v/8/f//+Pn///z8/v/08u3/0cKl/6yJSP+yk1n/2tC8//X08//7+/7///////7+/v/19PH/18uy/7CP + Uf+wjlD/18uy//X08f/+/v7/9PT///P0///////////////////u6+X/sZJa/5ZkCP+ZZQH/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6F2Iv/SzL//+vr62OLh3diujlD/gFQs/zAg + rv9aPGn/j2AP/5hlBP+kfz3/q6XV/z4+/v9iYv//1tPf/9XIr//y8Ov//v//////////////+/v6/+Td + zv+7oG3/qoVA/8eyi//s6eH//fz8//////////////////r5+f/m4dT/vaRz/6iDPv/GsIj/7eng//z8 + /P////////////z8/P/r5tz/xK2D/6qFQf/Gs4z/8O/2/3Nz//97e///+fn////////6+vj/zLmV/51t + EP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ngjn/39zV//z8 + /Njo6OjYuKBz/5pnBf+IWh3/WTtq/1I2d/9dQXT/ZlzG/2Rk/P+gn///7e7+/+nl3P+5oG//4NfG//z8 + +//5+Pb//f39//7////+/f3/8/Lt/9LDp/+ujEv/spNW/9rPuf/29fP//v/////////+/////v7+//Ty + 7//Txan/r41N/7GRVP/Yzbb/9/b0//7+/////////v7+//f39P/c0bv/2Myy//X1+f+Njf//lJT///v7 + ///9/f3/49rL/6d+L/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZgL/sZRc/+no5v/9/f3Y8/T02Ma4nf+cbA//mWYA/5hlAv+SYxT/qZKA/93c9f/09P///v7///// + ///8/Pz/39XE/+nj2f/o4tT/wKl6/97Vwv/5+Pf//v/+///////8+/v/6OLW/7+neP+ogz3/w6yC/+3o + 3//8/Pz//////////v///////Pz7/+nk2f/AqXz/qYM+/8Krfv/o49n//Pz7//7+///+/////v79//39 + /f///////Pz///z8////////8e/q/7eaYf+aZwX/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmkI/8Ctif/09PT//f7+2Pn6+tjWz8T/o3kp/5lmAf+ZZgH/qYM2/+Xe + 0P/+/v7///////////////////////38/P/8/f3/5+LV/7OUWP+ogTn/xrOM/+zp4f/9/f3///////7+ + /v/08+//08Wq/6+NTv+ykVT/18u0//b18v/+/v7////////////+/v7/9vXx/9jLsv+ujk//r45Q/9fL + sf/29PH//v7+////////////////////////////+vr5/8++nP+ebxP/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/59yG//Qx7X/+vr6//39/dj9/f3Y5eTi/7CS + V/+ZZgL/mmgG/76neP/29PL//v7//////////////////////////////v////39/P/t6+L/yreQ/6iC + Of+xkVX/3dK9//j39f/+/v7////+//v7+//r5tv/wqt+/6mEPv/CqXz/6OPY//v7+/////7///////// + ///8/Pz/6eTb/8Otgv+qhD//wal+//Lv6v///////////////////////v7+/+Tdzv+ogDT/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+qiET/4d/Z//79 + /v/+/v7Y/v7+2PPz8//DspL/m2sN/5lmAv+keSf/yLSN/+3p4v/8/f3///////////////////////// + /////////v/+//r5+P/f1sP/tphf/6eBOP/EsIb/6+fe//z8/P///////v7+//b18v/YzbX/sJBT/62M + Tf/Vx6z/9fPw//7+/v////////////7+///49vT/2c+5/8OthP/w7ub//////////////////v/+//Xz + 7v+8n2n/mmgG/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+baQj/vKiA//Dw7////////v7+2P7+/tj7+vr/1dDG/6V9Mf+YZgH/mWYB/5xsDv+ykVH/3NC7//f2 + 9P////7//////////////////////////////////f39//Hu6P/NvJr/qoVA/6+OT//WyrL/9vXy//7+ + /v/+//7//Pz8/+rn3v/Fr4X/qoVA/72jdP/l39L//Pv7///////+/////v////z9/f/4+Pb//f39//// + //////////////v7+v/RwaP/n3EW/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/onck/9PMvf/6+/r///////7+/tj+/v7Y//7//+rp6P+3oHL/mmgH/5lm + Af+ZZgD/mWYD/6N3Jf/DrIH/7ejf//39/P/+/////v/+////////////////////////////+vn4/+Td + zf+7n2j/pn41/8Orf//q5tz/+/v7//7////+////+fj2/9zSvf+yklf/rYpI/9LCpP/z8Ov//v7+//// + /v////////////////////////////7+/v/n4dT/qoQ6/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmcE/7OYY//n5eP//v7+///////+/v7Y/v7+2P// + ///4+Pj/0Mi5/6J4J/+ZZgH/mWYA/5lmAP+ZZgH/m2sL/7COTP/azbb/9vXy//7+/v////////////// + ///////////////////+/v7/8/Dr/9HCo/+tiUX/r41M/9LFqv/19PD//v7+///////9/Pz/7eni/8m1 + jv+qhED/uZ9s/+Tez//7+/r////////////////////////////18+//vaNv/5ppB/+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6B0Hf/Mwq7/9fX1//// + /////////v7+2P7+/tj//////v7+/+fn5f+4oHL/mmkI/5lmAP+ZZgD/mWYA/5llAP+aZgP/onUg/8Gp + ef/p49n/+/z7///////////////////////////////////////7+/r/6OLV/72kcv+mgDf/vqZ2/+fh + 1P/7+/r////+//7+/v/4+Pb/29K+/7aYX/+yk1j/6ubc///////////////////////8/Pz/1cer/6By + Gf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5po + Bf+0mGP/5uXi//7+/v////////////7+/tj+/v7Y///////////4+Pj/083A/6V+Mv+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+baQr/rIdB/9PFqf/08u7//f7+//////////////////////////////////7+ + /v/08+//1smv/6+NTf+siEX/0cOm//Lx7f/9/v3//v////39/P/w7uj/4NbE//b28v////////////// + ///+/v7/6OPY/62IQf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAf+keir/0cm5//f49//////////////////+/v7Y/v7+2P///////////v7+/+3t + 7P/Br47/nG0S/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+fchn/u6Fu/+Td0P/7+/r//v////// + /////////////////////////v////z8/P/q5dr/w6x//6iCOv+5n2r/5N3O//r6+f///////v////7+ + /v/+//7/////////////////9/Xz/7+meP+baQj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+caw3/vamD/+3s6////////////////////////v7+2P7+ + /tj////////////////8+/v/3NnV/7CTWv+aZwX/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5po + B/+qgjj/0sKk//Px7P/+/v7//////////////////////////////////v7+//f29P/YzbX/sJBR/6uH + Q//Ovp7/8vDs//7+/v///////////////////////Pz8/9jLs/+hdR//mWYA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+aZwT/ro9S/93a0//7+/v///////// + //////////////7+/tj+/v7Y//////////////////////b29v/Sy73/p4E3/5lmAv+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/55wF/+6nmf/49zM//r5+P/+//////////////////////////// + /////////Pz8/+zp4P/Hsoj/qYQ9/8/AoP/7/Pv//////////////////v7+/+rl3P+ti0b/mWYC/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/pn4y/9HJ + uf/39/b//v/////////////////////////+/v7Y/v7+2P/////////////////////+////8fLx/8i8 + o/+idyX/mWUB/5llAP+ZZgD/mWUA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mmcF/6d/Mv/LuZb/8O7o//3+ + /f/////////////////////////////////+////+Pj1/+HZyP/o5Nn//v7+//////////////////j3 + 9f/FroP/m2oK/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZQH/oXUh/8a4n//v7+///v7+/////////////////////////////v7+2P7+/tj///////////// + //////////////7+/v/s7Or/wbGR/59zHP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgH/nG0S/7eZXv/g18X/+Pj2//7////////////////////////////////////+/v7//v7+//// + //////////////39/f/b0Lr/o3ci/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/n3Ea/8Gwjf/o6Ob//f79//////////////////////////////////7+ + /tj+/v7Y/////////////////////////////////f39/+bk4v++rIn/n3Md/5llAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZwT/pXsr/8i0jP/w7OX//f39//////////////////// + //////////////////////////////7////v6+P/spBP/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nnEY/7ypg//l5OH//Pz8//////////////////// + ///////////////////+/v7Y/v7+2P/////////////////////////////////////8/Pz/5uXj/8Gw + kP+hdiL/mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+cbA//tJNU/9zR + vf/49/X//v7+///////////////////////////////////////49/X/x7KK/5xsDf+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/oHQf/76sif/n5eP//Pz8//// + /////////////////////////////////////////v7+2P7+/tj///////////////////////////// + //////////////39/f/n5+X/xrme/6V+Mv+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mGYA/5lmBP+keCb/xa+E/+rm3f/8/Pz////////////////////////////9/f3/39XB/6N4 + Jv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/pHwu/8S1 + mf/o5+X//P39//////////////////////////////////////////////////7+/tj+/v7Y//////// + /////////////////////////////////////////f39/+/v7v/Px7f/rY1P/5trDf+ZZQD/mWUA/5ll + AP+ZZgD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWUA/5tqDP+vi0r/2s62//X08v/+/v7///////// + ////////7+vl/7WVV/+aZwP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5ll + AP+bagv/rItK/8zDsf/t7e3//v39//////////////////////////////////////////////////// + ///+/v7Y/v7+2P//////////////////////////////////////////////////////////9PT0/9nV + zv+7pnz/oncm/5lmBf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1 + IP++pnj/5+PX//v8+//+////+fn4/8m2kf+dbQ//mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgD/mWYB/5lnBP+idyT/uaN4/9vXz//09PT//v7+//////////////////////////////////// + /////////////////////////v7+2P7+/tj///////////////////////////////////////////// + //////////////7////6+vr/6ejm/87Esv+xk1v/n3EZ/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgH/mmkJ/62IQv/Vx6z/9PLu/+HYyP+mfS3/mWYB/5lmAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYD/59xGP+wklj/zMGu/+bl5P/7+/v//v////7///////////////// + //////////////////////////////////////////////7+/tj+/v7Y//////////////////////// + //////////////////////////////////////////////7+/v/19PT/393Z/8a5oP+wkVb/oHId/5ln + Bv+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/n3Ic/7mdaP+vjk//mmcF/5ll + AP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAf+ZZwb/n3Md/6+QVf/Iu6L/4N7a//X19f/+/v7///////// + ///////////////////////////////////////////////////////////////////+/v7Y/v7+2P// + //////////////////////////////////////////////////////////////////////////////39 + /P/z8/L/4uDc/8rArP+3nm//pn41/51tEv+aZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+ZZwT/mWcE/5lmAP+aZgH/mWUA/5hmAP+YZgH/mWcF/51uE/+ngDb/t55u/8zCrv/i4Nz/9fX1//39 + /f////////////////////////////////////////////////////////////////////////////// + /////////v7+2P7+/tj///////////////////////////////////////////////////////////// + //////////////////////////////39/f/29vb/5+bl/9nVzP/FuJ//uJ9y/6yIRf+jeCj/nm8V/5tp + C/+aZwb/mmYE/5lmA/+ZZgL/mWYD/5lnBP+baAb/m2oM/55vFv+jeSr/q4lI/7igcv/HuqL/2NPK/+no + 5v/39/f//f7+//////////////////////////////////////////////////////////////////// + //////////////////////////////7+/tj+/v7Y//////////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v/8/Pz/8/Pz/+np + 6P/g3dn/1tHF/8q/qv/CsZL/vKZ+/7iecP+0mmj/tZlm/7Wbaf+4oHP/vqmC/8Ozlf/Mwa3/1c/F/9/d + 2f/r6+r/9fX2//z8/P////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7Y/v7+2P////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7//f7+//v7/P/39/j/9PT0//Hx8f/t7ez/6eno/+zs6//p6ej/7O3s//Dx + 8P/09PT/+Pj4//v7+//8/f3//v/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+2P7+ + /rf+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+ + /tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P3+ + /tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+ + /tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+ + /tj+/v7Y/v7+2P7+/rcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEA + IAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAD+/v6//v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/z8/N/y8/Lf4uDa383Est+8qYPfsZJZ36aANt+hdCHfnW4V35xs + Ed+cbBLfnnAZ36N4KN+riETftZtr38W2mt/Z0sjf6+ro3/j4+N/9/f3f/v7+3/7+/t/+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/r/+/v7a//////////////////////// + ///////////////////////////////////8/Pz/7u7s/9nRxP+/qoL/qodD/59zG/+baQn/mWYC/5lm + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcE/5xsEP+keiz/s5dh/8m8ov/k4dv/9vf2//7+ + /v////////////////////////////////////////////////////////////7+/tr+/v7a//////// + /////////////////////////////////////////f7+//Py8f/Y0MD/tpxr/6J3Jf+aaAb/mWUB/5ll + AP+ZZQD/mWUA/5llAP+aaAf/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/5xt + EP+qh0L/xbWW/+bj3v/5+fn///////////////////////////////////////////////////////7+ + /tr+/v7a///////////////////////////////////////////5+fn/4d3W/72nfv+ieCb/mmcE/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xqCf++pHH/vaNw/6ByGP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgH/nG0P/6+OT//QxbH/8O/u//7+/v////////////////////////////// + //////////////7+/tr+/v7a/////////////////////////////////v/+//X19P/Tyrf/rIpH/5tq + Cf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/7CNSP/w7OT/+Pbz/9nMsv+uiUP/m2kI/5lm + Af+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdSH/wKuE/+fl4f/7/Pz///////// + //////////////////////////////7+/tr+/v7a///////////////////////////+/v7/8O/u/8m6 + nf+kein/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/oXQd/9zQuf/+/v3///////39 + /f/u6uD/xa2A/6F0Hv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/nGsO/7SY + Yv/f29P/+/v7//////////////////////////////////7+/tr+/v7a//////////////////////7/ + /v/v7+3/w7OR/6BzG/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/xq5///r5 + 9///////////////////////+fj2/97Su/+xjUv/m2oK/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5toB/+wkFP/3NfN//v7+/////////////////////////////7+/tr+/v7a//////// + //////////////T08//GtZb/n3Ia/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + Af+vikH/7urg//////////////////////////////////3+/f/v7OT/yLKJ/6N3I/+ZZgP/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAb/r49S/+Hd1f/9/f3///////////////////////7+ + /tr+/v7a////////////////9/f3/87Cq/+idSH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/6ByGP/azbP//f39//n49v/i28n/9/by//7+/v/+////////////////////+vn4/+DW + wv+2lVf/nGsN/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7WZZP/p5+P//v7+//// + //////////////7+/tr+/v7a///////////8/Pz/29XI/6iBN/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mmgF/8Cmc//49/T//v/+//j39P/PwaH/6uTY/93Tvv/s593//f39//// + //////////////7+/v/y8Or/zLmT/6V7Kv+ZZgP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xs + D//ArYj/8vHw//////////////////7+/tr+/v7a//////7////r6uf/tZli/5pnBP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/q4U6/+vl2v////////////7//v/39vP/9fPv/8Or + ff+ykFL/2cyz//j39P//////////////////////+/v6/+Tby/+4mV//nW0Q/5llAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+idyT/08q5//v6+/////////////7+/tr+/v7a//////j4+P/KvKH/nm8T/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/1sep//39/P/6+ff/6uTY//r5 + 9//+/////v////Xz7v/SwqD/sI1L/8Orff/s593//f39//////////////////7+/v/18u3/0L6d/6h/ + Mf+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/sJJX/+jn4//+//////////7+/tr+/v7a/v/+/+bj + 3f+riET/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+8oGn/9vTx//// + ///18/D/ybiV/+vn3P/y7+j/+vr4//7////8/Pv/6OHT/76kcP+ykFL/2Mqw//f28//+//7///////// + /////////Pz7/+fg0f+7nmf/nm8U/5lmAf+ZZQD/mWUA/5llAP+ZZQD/nW8T/8u+pf/5+vn///////7+ + /tr+/v7a+vr6/8q7nv+cbA7/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6iA + Mv/p4tX//v////7////+/v7/8/Hr/+/s5P+8o3D/yrWN//Lu5//+/v7///////b18f/Uxaf/sY9P/8Gp + ev/r5tv//f38//////////////////7+/v/29PH/1MWn/6uEOf+aaAb/mWUA/5llAP+ZZQD/mWYC/6+O + UP/p5+P///////7+/tr+/v7a6+nm/66NTv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/nW4R/9LBoP/8/Pv/+vn4/+7q4f/8+/r///////z8/P/k3Mz/u59p/7eYXv/g1cD/+vr4//// + ///9/fz/6uPX/8Cndv+xkFH/18qu//j39P///////////////////////f38/+vl2v+/pHL/oHEY/5lm + Af+ZZgD/mWUA/59wGP/SyLT//Pz8//7+/tr8/Pza1cy7/59yGv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+aZwT/uJth//Xy7v//////8fDr/8a0kP/v6+P/+Pbz//z8/P/+/v7/9fLt/86+ + m/+xkFH/yLOK//Dt5f/+/v3//v/+//j28//XyK3/spJU/8Cnd//q5Nj//Pz8//////////////////7/ + ///49vP/2cqw/6yHQP+aaQf/mWYB/5pnBP+5oXP/9PPz//7+/tr29fXawKuD/5poBf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+nfi3/5+DQ//7+/v///////v7+/+3q4f/u6+P/w6x//9XH + qv/29PH//v7+//z7+//m39D/vKFt/7aXXf/e077/+vn4/////v/8/fz/6+bc/8Gqe/+xkFL/08Sm//b1 + 8f/+/v7//////////////////f39/+zn3f+0lFf/mWYC/5lmAf+ogjr/5eLc//3+/drr6Obaro1N/5lm + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51sDv/PvZn//Pz7//z8+//29PD//f39//// + /v/7+/r/4dfE/7ibZf++pHT/6eLV//z8/P/+/v7/9fPv/9HBoP+xklT/yLSM/+/s5P/9/v3//v////n3 + 9f/ZzbT/s5NW/76kcf/o49f//v7+/////////////////+7p4P+tiD//mWYB/5lmAP+fcRj/1s28//z8 + /Nre2MzapHop/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7WWWP/z8ev///////Dt + 5//KuZX/8/Dp//Ty7f/6+vj//f79//Dt5//Lt5P/tZZb/9PDpf/18+///v7+//z8+//o4dP/vaNw/7aY + X//e077/+vn3///////9/f3/7eng/8axh//Uxab//f38////////////+fj2/8OrfP+baQf/mWUA/5ll + AP+aaQj/xbWV//f3+drPxK/anm8V/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/pXon/+Pb + yf/+/v7///////z8/P/m4NP/8e7o/8Stgf/Jto//8e7n//3+/v/7+vn/4trI/7ugbP+8onD/5t/Q//v8 + +//+/v7/9vTw/9PDpP+xj1H/x7KJ/+/r4//9/f3///////v6+f/7+vj////////////9/v3/3NC5/6F0 + HP+ZZQD/mWUA/5llAP+ZZgL/uaFy//Ly8trCsZHam2oK/5hlAf+NXRT/fVMu/35TLf+KWxj/l2QD/5ll + AP+cawv/yraP//r6+v/l5f3/9fT2//7+/v/9/v7/9vb8/7y10/+Senf/sZVn/9rQv//g4Pr/39/+/+Lf + 6//Mupj/tZVb/9C/nv/f3u//9/f///z8+//k3dL/pox0/56Db//Ty8v/+Pj3/+fn///Kyv//5+f///7+ + ///w7OT/rotK/4lcG/+YZAL/mGUB/4pbGf+WYwX/sZJY/+3t69q7p33al2UK/2ZDVf8/KpX/ZkRU/3ZO + O/9dPWT/XD1l/5JhD/+0k1L/8u/p/+7u//9cWvT/p5ii//Ty7f/z8/b/iYn9/z4+//9paPX/gHKy/6WH + Xv9mVan/T077/9bW/f/7+/r/5d3N/7eedf9TScb/srDs//v7+f/3+P7/lZT1/zgx1v+Yf3r/r6S5/0ZG + /v9YWP//g4P//9TT+P/IsYb/jGAi/zonnf+KWxr/jl4R/zsnnf+DVib/rIlH/+jn5Nq2n3HabkpN/yEW + yP93Tzj/mGUB/5llAP+TYQv/QiyQ/11Hjf/e1MT//v7+/7m5//87Ov3/kInQ//Du6f+woab/LSrs/7W0 + 9//4+f7/6On8/+Xg2v+LfrT/RT3S/9jOvf/5+Pb//v7+/8nH8/8yMO3/bV6s/8q4nP/z8Or/vr7+/1JS + /f/i3d//a2jo/2Nj///v7///8vL+/9HGwv+jdyH/bEhK/yAVyv9wSUX/bUhJ/yAVyf9qRk//qYQ//+bl + 4Nqxm3jaNiWq/z8qlv+WYwT/mWUA/5llAP+ZZQD/a0dN/zAu7//k4/v/+Pj+/2dn/v+Rkf//qan+/+Xl + +/+7ttv/Lifb/5mJqf/Myer/3t/+//r6//+trf3/Rj7U/7CSXv/GsIb/6+fg/4KB/f91dfz/paDk/56E + eP+6nWn/o5rJ/1NT/f/y8v//YmL//4SE///V1f//0c/w/6iJX/+XZAX/Qy2O/1A1ef9hQFz/NySj/1M3 + c/9iQFz/o4BI/+bk39qunIzaIxnL/1k7av+ZZQD/mWUA/5llAP+ZZgH/f15Z/yEf9v/R0f//zMv2/zo5 + 9v/W1vv/yMj//7Cw///p6f7/VFP5/4l+vv97Zov/Qj3n/9jW9f+rq///QkL9/8jD3/+qlIP/oYZv/zk1 + 6v/Av/j/2Nj+/5mX8P/Rwqf/gGmD/09N9v/19f//mpr//29v///BwPr/YF3r/1c7dP+IWhz/KBq8/3pQ + M/9pRVD/HxTL/4JWJv9pRVD/j3Vz/+fm4tq4qZXaMSO6/1U4cf+ZZQD/mWUA/5lmAP+idR7/kYW8/yYm + /v/Ly///g4P9/1FQ9v/X1u//r6jT/2Zl8//Z2f7/xsb//56d+P+Ae93/Y1a5/7GYev97dNT/XFz7/3R1 + //9ravX/f3nZ/z454f+nl6b/xMDe/2ho/f/Dw/z/i4nv/2tr/f/39///7u7//5+f/v+fmuX/Sjuw/3hQ + Nv9iQF3/Lh6y/3lQNf+JWxr/XD1l/5JgDf9cPWf/ZFi3/+Lh7trJvKTaY0dx/zglof+SYQv/mWUA/5tp + B/+9pH7/ZGP3/11e/v/w8P3/7u7//+3t/v/u7Oz/uJ97/6ySdP/f2NH/+/v7/+7u///f4P7/7Onr/827 + mf+rjFr/wbCg/+Ti7P/o6P7/7u/+/+Hf7P/Dr5H/rpBe/8a5sP/t7PP/8vP//+Lj///9/f///////+zq + 6/+fgWX/jV4V/5hlAv+QXw7/jl4S/5NhCv+YZQH/lmME/5hkAv+QYBH/rJV4/+/v8trXz8LamnEv/1E2 + eP9dPmP/hlkf/5JvTP+Df+D/XV3//8fE4v/Ux63/+Pj2///////+/v7/8/Dq/826l/+0lVv/0L+f//Ty + 7f/+/v7///////v6+v/k3cz/u6Bt/7yhb//k3c3/+/v6///////6+ff/39S//7mdZ//TxKf/u7v9/3Rz + ///29////Pz7/8+9mP+cbA7/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQb/xLKQ//f3 + 99rk4d3aqoZA/5RjCP98UjH/c1Ne/5SM0f+4uP7/7Oz///Xz8P/Ovp//8Ozl/+Pbyf/z8Or//v7+//v7 + +v/k3Mz/vKJv/7ugbf/j28v//Pv6//7////+/v7/9PLt/9HAoP+0lVz/zryZ//Lw6v/+/v7//v3+//Pw + 6v/x7ub/6Oj+/83N///8/P7/5d3O/6d9Lf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ecBX/1Mu4//z8/Nrw8PDauKBw/5lnA/+aaAb/wKd0//j39P/////////////+/v/49vT/8/Hs/72k + cv+4m2T/4NfF//v6+f/+/v7/9PLt/8+/nv+0lVv/zrya//Pw6v/+/v7///////z8+//n4NL/vaRy/7md + aP/j2sf/+/r5///////////////////////18+//uZth/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ngDT/5uLb//39/dr6+vrazsGp/51tEf+ebxP/1cer//r6+f/+//////////// + /////////v7+//Lv6f/Ou5f/r45P/8u3kf/x7uf//f3+//z8+v/o4dP/vqV0/7qeaP/g18X/+/r5//// + ///+/v7/9fPv/9PEpv+1ll3/2Myz//7+/f////////////z8/P/SwaD/nW4R/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+4nmz/8/Py//7+/tr9/f3a49/Z/6eCOP+ZZwP/pXoo/8q2 + j//x7uf//v7+///////////////////////8+/r/5NvL/7ufav+2mWD/3dO+//n49//+/v7/9vTw/9PE + p/+0llv/y7eR//Dt5v/+/v7///////z8/P/r5tr/6uXa//7+/v///////v7//+ni1P+pgTL/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Qxa///Pz8//7+/tr+/v7a9fT0/72o + gP+aaAf/mWYB/5xrDP+zkVH/39S///v6+P/+/////////////////////v7+//Xz7v/SwaD/sY9Q/8ey + if/v7OP//f39//z9/P/r5dj/wKh6/7eaY//e1L7/+fn3//7////+////////////////////9/Xy/7yg + af+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6yKR//o5uH///////7+ + /tr+/v7a/f39/9vVyf+keyz/mWYB/5lmAP+ZZgL/o3ci/8iyh//w7OP//v39//////////////////// + ///8/Pv/5+DS/7+lc/+0llv/2s+3//n49v/+/v7/9vXy/9jKr/+0lVz/x7KJ//Lv6P////////////// + ///9/fz/1cWn/55vFP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nG0O/8i5 + m//4+Pj///////7+/tr+/v7a//////Ly8f++qYH/mmoJ/5llAP+ZZQD/mWYB/5xpCf+wjEj/28+3//j4 + 9f/+//////////////////////////f18v/Vxqn/s5RY/8StgP/s6N7//P38//39/P/r5tv/ybWO/+bf + z/////7////////////r5dr/q4Q4/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZgL/ro1M/+fk3/////7///////7+/tr+/v7a//////39/f/h3NT/qYZA/5llAf+ZZQD/mWUA/5ll + AP+ZZgL/oHMb/8Kpef/r5tz//f39///////////////////////9/fz/6+bb/8Orff+zlVr/1smv//j2 + 8//+/v7/+/v6//39/P////////////j39P++pHH/mmgG/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+hcx3/0caw//v7+v////////////7+/tr+/v7a///////////39/f/zL+o/6Bz + HP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5poB/+thz//2cuw//j28/////7///////////////////////n3 + 9f/YzLP/tJZa/8Gpe//t6uD//v/+/////////////f39/9jKr/+gchj/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5tqCv+9pnv/8PDu//////////////////7+/tr+/v7a//////// + ///+////8fDu/7+qgf+cbA7/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/oHEY/7+kcP/p49b//f38//// + ///////////////////9/f3/7urh/8m1jf/g2MT//v7+////////////7ejf/6yHP/+ZZgH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcE/7GRVv/m4t3//f79//////////////////7+ + /tr+/v7a/////////////////v7+/+ro4/+2nGr/m2oK/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5po + Bf+pgjf/1MWm//X07//+//7///////////////////////z7+v/8/Pv////////////5+Pb/w6t7/5tp + B/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwP/q4hD/9zWy//7+/z///////// + //////////////7+/tr+/v7a//////////////////////39/f/j4Nr/tJlk/5tqC/+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5lmAP+ZZgH/nm8T/7qdZf/o4NH//Pz7//////////////////////////////////79 + /f/d0bn/oXQb/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+phT//19DB//r6 + +v////////////////////////////7+/tr+/v7a///////////////////////////8/f3/5eLc/7if + cP+dbhH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+ofjD/0L6b//Tx7P/+/v7///////// + /////////////+/r4v+vjEb/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmkH/62M + TP/Z08b/+vr6//////////////////////////////////7+/tr+/v7a//////////////////////// + /////////f39/+vp5v/CsIz/onck/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/nWwP/7aX + W//k28r/+vr5////////////+vn3/8ewhP+bagj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + Af+ebhP/tpxq/+Dc1P/7+/v///////////////////////////////////////7+/tr+/v7a//////// + //////////////////////////////7+/v/y8fD/0ce0/66NT/+caw//mWYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5pnA/+leij/ybWP//Lv6P/9/f3/39S//6J2IP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+YZgD/mmkI/6eBN//Ht5r/7Ovn//z9/f////////////////////////////////////////////7+ + /tr+/v7a////////////////////////////////////////////////+vr6/+bj3v/Es5P/qYM9/5xr + Df+ZZgH/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/nGsM/7OSU//Xya//so9N/5lmAv+ZZQD/mWUA/5ll + AP+ZZQD/mWUB/5poCP+keyz/vKZ8/93Yzv/29vX//v7+//////////////////////////////////// + //////////////7+/tr+/v7a//////////////////////////////////////////////////////7+ + /v/19fX/4t/X/8a3mP+vjlL/oHQf/5tpCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5lmAv+ebhP/mmgH/5ll + AP+ZZQD/mGYB/5poBv+fcRf/qoZC/8Cth//d18v/8/Py//39/f////////////////////////////// + //////////////////////////////7+/tr+/v7a//////////////////////////////////////// + /////////////////////////v7+//f4+P/q6OX/1s/A/8Kxj/+0lmD/qIM8/6J3Jf+fcRn/nm4S/51t + Ef+dbhP/n3EY/6J2I/+ngDf/sZJX/8Crhf/SyLb/5uPe//b29f/9/v3///////////////////////// + //////////////////////////////////////////////7+/tr+/v7a//////////////////////// + ///////////////////////////////////////////////////+/v7//f39//b39//x8O//5uTf/93Y + zf/Xzr7/0cez/9HFsP/QxrH/1c29/9zWy//l4tz/7u3r//b29v/8/Pz///////////////////////// + //////////////////////////////////////////////////////////////7+/tr+/v67/v7+2/7+ + /tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+ + /tv+/v7b/f7+2/39/dv9/f3b+/v72/v7+9v7+/vb/Pz82/39/dv9/v7b/v7+2/7+/tv+/v7b/v7+2/7+ + /tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+ + /rsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAKAAAAFAAAAABACAAAAAAAEAaAAAAAAAAAAAAAAAA + AAAAAAAA////wP7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/8/fzf8/Py3+Db + 0t/Jup7ftZtp36mEPt+hdSLfnW0U35xrDt+caxDfnnAW36R6Kt+tjE3fvKZ+39LItd/p5uLf+Pj43/3+ + /t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f////wP7+/tv///////////// + //////////////////////////////7+/v/y8fD/1869/7qhcf+lfjH/nG0P/5pnA/+ZZgD/mWYA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poBv+fchr/rIpH/8WzkP/j39f/+Pj4//////////////////// + //////////////////////////////7+/tv+/v7b/////////////////////////////////v////f3 + 9v/d1sj/uJxp/6B0Hf+aZgP/mWUA/5llAP+ZZQD/mWUA/59wFf+pgTX/m2kJ/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+baQn/p4A2/8e1lf/q6OP//Pz8//////////////////////////////////// + ///+/v7b/v7+2////////////////////////////v7+//Du6//HtZT/pHsr/5pnBP+ZZgD/mWUA/5ll + AP+ZZQD/mWUA/5poBv/FrX7/7ejf/8myiP+jdyL/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lm + AP+caw7/sJBU/9vTxP/5+fj//////////////////////////////////v7+2/7+/tv///////////// + /////////f39/+jl3/+6oG//nW0R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+uiUH/7+rh//// + ///7+/n/4tjF/7STU/+cawv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnA/+lfS//zsGp//b1 + 9P////////////////////////////7+/tv+/v7b/////////////////v7+/+bj3P+zl17/m2kI/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+gchj/3c+1//7+/v////////////7+/v/z8Or/zbmS/6V6 + J/+aZgP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Ku53/9fX0//////////////////// + ///+/v7b/v7+2////////////v7+/+3q5f+2mWP/mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+aaAX/w6h1//r49v/8/Pr//Pz7//////////////////z7+v/l3Mv/t5hc/51tD/+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQH/oXQf/87Bp//5+fn//////////////////v7+2/7+/tv///////////Py + 8P+/qX7/nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/rIU5/+3o3f/+/v7/4trJ/+HZ + x//08u3/+vn3/////////////v7+//Xz7v/SwJ7/p34v/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + Af+lfCz/2tLC//z8/P////////////7+/tv+/v7b//////v7+//RxK3/n3EZ/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZgD/nm8T/9fIq//9/f3///////b07//u6uH/y7iR/8exh//v7OP//v7+//// + /////////fz8/+nh0/+8nmf/nm4S/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6+PUP/q5+L///////// + ///+/v7b/v7+2/7////n49z/q4dB/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcE/76i + a//49/T/+Pfz/+/r4v/+/v3//v7+//Hs5P/Js4j/uJph/97Ruv/6+ff////////////+//7/+Pby/9XF + pv+qgjb/mmcE/5llAP+ZZQD/mWUA/5llAP+cawz/xbOQ//j4+P///////v7+2/7+/tv6+fn/xbOP/5tq + Cf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6mBMv/p49b///////Hv6P/Ux6z/7uvh//Ht + 5f/9/v3/+/r4/+DVv/+6nWX/xrCF/+7q4P/+/v3////////////9/f3/6+XZ/7+kcP+fcRb/mWUB/5ll + AP+ZZQD/mWUA/6d/NP/k39b//v7+//7+/tv+/v7b6eXf/6mDOv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/51uEP/Uw6L//f38//39/f/+/v3/+Pf0/97Tvf+6nWb/3M+2//n49v/+/v7/8u7n/8u3 + kP+4m2P/28+2//r59v/////////////////59/X/2cux/66IP/+aaAb/mWYA/5lmAP+baQj/xbKO//n6 + +f/+/v7b+/v7282+ov+cawz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+5nGH/9vTw//n4 + 9v/Zz7j/9vTv//7+/v/7+/r/5NvI/7yhbf/Gr4P/7une//7+/f/7+/n/4tnF/7ufav/HsIX/7urf//7+ + /f////////////3+/f/u6eD/xKt7/6BzGv+ZZgH/mWUB/6uIQ//s6uX//v7+2/Ly79u1mGD/mWYB/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ofi3/6ODR///////9/Pz/5N3O/+nk2P/Vx6r/8u/n//3+ + /f/08ev/z72a/7mcZf/azbP/+fj1//7+/v/z8Or/zbqW/7ibY//YzLH/+ff0//////////////////r5 + 9//c0Lj/qYE0/5lmAf+fcRf/1868//39/dvk3tbbpX0u/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+dbA3/0b6a//z8+//49/T/+/r4//7+/v/39fH/z7yZ/7yicP/g1sH/+/r4//v7+v/l3cz/vaNw/8aw + hP/t6N7//f79//v7+v/k3Mr/vKFt/8Ssf//u6d//////////////////8Ozj/62IPv+ZZgD/mmgF/8Sw + iv/5+fnb0sey255vE/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/t5dZ//Xz7f/9/f3/3NO//+Xd + zf/w7OP/9/Xx//v7+f/j2sj/v6V1/8u3kP/w7OX//f39//Xz7f/Rv57/up1n/9rNs//5+PX//v7+//Ty + 7P/SwqH/39W///7+/v//////+/r5/8avgv+baQf/mWUA/5lmAf+zllz/8vHv28Kvi9ubaAf/mWUA/5hk + Af+YZAL/mWUA/5llAP+ZZQD/pXom/+Xdy//9/v7///////f28//z8ev/zr2d/8Cnev/p4tX//Pz7//Ty + 7P/Rv5//u6Bu/97Tvf/5+ff//Pv7/+bezv++o3H/xK6B/+zn3P/+/f3//f39//v7/f///////v7+/9/U + v/+hdR//mWUA/5llAP+ZZQH/qYQ9/+rn4du3n27blmQI/3VNPP9hQF7/akZO/25ISP+KWxn/nGsL/824 + kf/09Pr/qafx/+Lc2f/9/f3/4eH+/3x79P9uYbf/noRv/66frP+Ojfj/zMz7/+Xczf/AqHn/rZuc/728 + 9//9/f3/6OXu/3xsr/+BbZj/0cfB/6Ki/P98fP//wcH//+/r6P+vjlH/a0dO/5JgDP+GWR//dEw+/6R7 + K//h3dPbsJVg22JBXf89KJn/hlgg/5RiCP97UTP/RC2P/6SHav/08ev/0ND//0RC8f+0q8H/5+LZ/2Vh + 3/97evz/0dH+/8jE4f+xn5j/QDjW/8/J2v/8+/v/9PLv/3dv0/9YUM//1Mm+//b19v98fP//k43c/5+V + v/9MTPz/xcX//8zL+v/BrIz/il4n/ywdtf96UTP/WDps/0Aqlf+cciv/3tfL26OKc9spHLv/cUtD/5ll + AP+ZZQD/l2QD/0UukP+PjO///Pz+/4aG/v+Njf7/s7P7/+Tg5P9KRNr/kYS6/9LQ7f/n5/7/5eX6/01J + 5f+qkHX/0cCg/9/c7f9bWv7/oZ3n/5uEhf/Gr4b/dnHi/66u//+fn/7/c3P//9vb///Kw9X/oXYp/2hF + Uv9CLJH/YkFb/zUip/9gP1//i2dF/93WyduZiI/bJBjF/4VYIv+ZZQD/mWUA/5tpCf9ZR53/bm7//9vb + +v9MS/b/19f6/6mp/v/W1v//i4v8/4F4y/92ZKH/a2bj/9jW9f9ISP7/qaXj/6KOjv97aaH/Z2Xx/+Tk + +/+WlPH/ybqq/1dJtv+trf7/zMz//3Nz//+5uPX/TETR/39VLP9AKpX/a0dM/2A/X/9AKpX/glYm/29V + ef/d19HbrZqR2y8htf9+Uy3/mWUA/5lmAf+tikr/WVXn/4eH//+6uv//hYT6/9XR4f+QgrL/p6Tq/+jn + /v+1tPz/kI7t/5+Oof+jjIP/e3XZ/5iY/P+Uk/j/i4jt/4R3tv+7qp//jovr/8zL/P+bmvn/zs7///v7 + ///FxPv/in6//2ZHYP+BVif/UDV5/3dPOP+JWxr/gFQq/4JWJv9nUY3/1tPm28e3nNtkRmj/Vjlv/5Jh + DP+dcB3/n5S8/1RU/f/Lx+P/9/bz//7+///29fD/zbqX/72jcv/h2MT/+fn5//v7///49vT/18mv/7qg + bf/Uxar/9fPy//39/v/y7uf/zLmU/7+ldf/m4NL/xMX+/9zc///+//7/5d3N/6N5Kv+YZQH/mWUA/5ll + AP+ZZQD/mWUA/5llAP+YZgD/roxM/+3s6tvWzr3bnHEj/3RNPv9qSFX/gnGk/5eW+f/X1/z/2c23/+Tc + zP/y7ub/+fj2//v7+f/j2cf/vqV0/8u3kf/x7eX//v7+//39/f/s59z/xrCF/8Kqff/o4tT//Pz8//v7 + +f/k3Mr/5+DT/7S0///T0///9vTv/7maXv+aZgP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7yk + df/29vbb6Obg26qGP/+ZZgH/rIhE/+vm5P/9/f////////n49f/z8ez/ybWN/8Sugv/s59z//f39//Tx + 7P/OvJr/vaNw/9/Uvv/6+vf///////n49v/bz7f/u6Bt/9PDpP/29O///v7+/////////////f38/9LA + nv+dbA7/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDP/Qwqj//Pz82/b19du+pnn/mmgG/7yg + av/z8Or//v7+/////////////v/+//Tx7P/Qv5z/uJtj/9nLsP/49/T//Pv6/+bezv/Ap3f/yLOL/+/r + 4f/+/v7//v7+/+7q4P/Js4v/zLmV//v6+f///////////+ni1P+ofi7/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+lfCz/5eDX//7+/tv8/Pzb1827/59yGf+cbAz/tZRV/+PZxv/7+/n///////// + /////////Pz7/+bezv+/pnX/wqp7/+rk1//9/fz/9fPu/9LCo/+9om//2s62//n49v/+////+vn3//Lu + 5//+/v3///////f18v+8n2b/mmcD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgL/uZ9s//b1 + 9P/+/v7b/v7+2+/t6/+xklX/mWYC/5lmAv+jeCP/y7aM//Pv6P/+/v7/////////////////9vXw/9TE + pP+5nGb/1cao//b18f/9/Pz/6OHT/8Kpe//Gr4X/7ejd//3+/f////////////39/f/Vxab/nm4R/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oHMa/9fNu//9/f3//v7+2/7+/tv8/Pz/0saw/55x + F/+ZZQD/mWUA/5xqCv+zkEz/39S+//r6+P/////////////////9/fz/6+TX/8Kqe//AqHj/6ODS//z8 + +//39fH/1Mao/8eyif/39fH////////////s5tn/qoI0/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mmcD/7ebZP/y8e////////7+/tv+/v7b//////Hv7f+3nGj/mmcE/5llAP+ZZQD/mWYB/6F1 + Hf/FrX//7+vi//7+/v/////////////////49/P/2cuv/7qeaP/QwJ//9fPu//z9/P/39fH//f39//// + ///59/T/vqNu/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6R6Kf/d1sf//v7+//// + ///+/v7b/v7+2//////+/v7/3tjN/6eBNf+ZZgH/mWUA/5llAP+ZZQD/mmkH/6+KQ//cz7b/+fj2//// + //////////////7+/f/t6N3/xa+D/7+mdf/s6N3////////////9/f3/2Mmu/59wFf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEP/HtpT/+Pf3/////////////v7+2/7+/tv///////////r6 + +v/Rxa3/oXUg/5llAP+ZZQD/mWUA/5lmAP+ZZgH/oHIY/8Gndf/t6N3//f79//////////////////r5 + 9v/g1sH/7ejd////////////7une/6yGPP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5tp + CP+5n27/8O7r//////////////////7+/tv+/v7b////////////////9/b1/8i4mf+fchv/mWUA/5ll + AP+ZZQD/mWUA/5llAP+aaAb/rIU7/9fIq//49/T/////////////////////////////////+vn2/8Oq + eP+aaAX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ppB/+zll3/6Obf//7+/v////////////// + ///+/v7b/v7+2//////////////////////08/L/ybmb/6F2If+ZZgH/mWUA/5llAP+ZZQD/mWUA/5ll + Af+ecBP/vqJs/+rj1v/9/fz//////////////////v7+/9zPtv+hcxj/mWUA/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/5trC/+1mWP/5+Tc//3+/f///////////////////////v7+2/7+/tv///////////// + //////////////X19P/SxrD/qII5/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pnBP+pgDL/08Kh//b0 + 8P/+//7///////Dr4/+vikP/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/59xGf++qH7/6+nk//7+ + /v////////////////////////////7+/tv+/v7b////////////////////////////////+vr6/+Da + 0P+4nmv/n3EZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEP+4ml//59/P//j39f/GroD/m2kH/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/m2sL/6uIQ//QxKz/8/Px//7+/v////////////////////////////// + ///+/v7b/v7+2//////////////////////////////////////+/v7/8fDu/9LHsv+ylFr/oHIc/5pn + Bf+ZZgD/mWUA/5llAP+ZZQD/mWcD/6Z8K/++pHH/oXQc/5llAP+ZZgD/mWYA/5lmAv+cbA//qYQ9/8a0 + kv/n5N3/+/v7/////////////////////////////////////////////v7+2/7+/tv///////////// + ///////////////////////////////////8/Pz/7+7s/9jPvv++qH3/q4dD/6F0H/+caw3/mmcF/5lm + A/+ZZgL/mmcF/5poBf+bagr/nnEX/6Z/NP+2m2X/zsGn/+jm3//6+vn//v////////////////////// + //////////////////////////////7+/tv+/v7b//////////////////////////////////////// + ///////////////////9/f3/9/f3/+vp5f/e18v/0MOr/8azkf+/qX//vaZ5/76nfP/EsYv/zL6i/9jQ + wP/n5N3/9PTz//z8/P////////////////////////////////////////////////////////////// + ///+/v7b/v7+vP7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+ + /tv+/v7b/f392/z8/Nv6+vrb+Pj42/j29tv2+Pbb+fn52/v7+9v9/f3b/f7+2/7+/tv+/v7b/v7+2/7+ + /tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+vAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAP7+/sH+/v7f/v7+3/7+ + /t/+/v7f/v7+3/7+/t/+/v7f/f393/Tz8d/c1cbfwq2I362MTd+jeCbfnW0T35tqC9+bagzfnnAV36V8 + MN+zlV3fy7ud3+Xh2N/4+Pjf/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7B/v7+3P// + /////////////////////////v/+//b29P/a0L3/tpli/6J2If+aaQf/mWYB/5lmAP+baQj/mWYC/5ll + AP+ZZQD/mWYA/5lmAv+caw3/pn4x/8GrgP/l4NX/+/v6//////////////////////////////////7+ + /tz+/v7c//////////////////////39/f/n49r/vKNy/6BzG/+ZZgL/mWUA/5llAP+ZZQD/oHEW/8y4 + kf+4mFr/nWwN/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmgF/6Z/Mf/Lupv/8/Hv//7+/v////////////// + /////////v7+3P7+/tz////////////////8+/v/3dTC/6yIQv+aaAX/mWUA/5llAP+ZZQD/mWUA/5po + Bf/DqXX/+vn3//b07//TwZ3/p30t/5pmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEP+7oW//7Oji//7+ + /v/////////////////+/v7c/v7+3P///////////Pz8/9nPu/+mfi//mWYB/5llAP+ZZQD/mWUA/5ll + AP+ZZQD/rYY6/+/q3/////////////39/P/q4tT/vJ5k/55uEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5tp + B/+1l1z/6ufg//7///////////////7+/tz+/v7c//////3+/f/h2cv/p4Az/5lmAf+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/59vE//ay67/+vr4/+/r4v/9/fz//v/////////49vP/1sam/6uCNf+aZwT/mWUA/5ll + AP+ZZQD/mWUA/5toBv+4nGf/8e/r/////////////v7+3P7+/tz/////7uvl/7CPT/+ZZgL/mWUA/5ll + AP+ZZQD/mWUA/5llAP+aZwP/v6Nr//n49f/6+vf/49vJ/97TvP/i18P/+/v5///////+/v3/7efb/8Cl + b/+fcBT/mWUA/5llAP+ZZQD/mWUA/5xrDP/Gs43/+fn4///////+/v7c/v7+3Pr6+f/Gsov/m2oJ/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6mBMv/s5tn/9/Xx//f08P/9/f3/7OXY/8Wtf//OupP/8+/n//7+ + /v//////+vj1/9rMsP+thjz/mmgF/5llAP+ZZQD/mWUA/6N4Jf/f18j//v7+//7+/tz+/v7c5uHW/6V8 + LP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebQ//1cWk//39/f/u6uD/49zM/+Xdy//49/P/+Pby/9fI + qv/BqHf/4NbA//v7+f///////v7+//Dq4P/Eq3r/oXMZ/5llAf+ZZQD/mmYD/7qfav/29vT//v7+3Pr6 + +tzGsor/mmgG/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7udYv/39fH/9PLs//z7+f/49/T/0b+d/8ew + hf/s5dj//Pz7/+zl2P/HsIX/zLiS//Lu5v/+/v7///////v6+P/f07v/sIxF/5tpB/+ZZQD/onYh/+Ha + zf/+/v7c7evl3KuHQP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+nfSz/6eLS//39/P/g2Mb/6+XZ/+/q + 4P/6+vj/4tjF/8Orff/Yyaz/+Pby//n39P/ZzLD/wql6/9/Uvf/6+vf///////7+/v/y7ub/yLGE/6By + GP+aaAX/xrKM//v6+tzZz7vcn3EX/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwN/9PAnP/7+vn/+ff0//z8 + +//u6d//x7GI/9jKrv/49vL/8/Dp/9C+mv/HsYb/6+TX//z8+//t6N3/yLOJ/8u2j//y7+f///////// + ///w7OP/q4Q4/5lmAP+xkFD/8vHu3MayjNybaAb/mWUA/5llAP+ZZQD/mWUA/5lmAv+4mFr/9vTv//b0 + 8P/f1cH/6+XZ//Ht5P/08ez/08Ok/8m0i//q49X/+vr4/+Tbyf/ErH//18ir//j28v/5+PX/3tO8/+rj + 1f///////Pz6/8q0iP+baQf/mWUA/6R7Kv/m4NfctZpj3JdkBP+KWxn/hlgg/45eEv+YZQH/pXol/+Xc + zf/s6/r/+/r5//f29v/Gvcn/p5CE/9rOvv/g3/b/1s7R/8Wwh//Wx6v/5+bz//Pw6//Itpz/sJuQ/+Tf + 3v/r6/3/2Nj+//f3///j2cX/mnAv/5dkA/+QXw7/nG8c/9nRv9yqiVHcY0Fb/18+Yf+AVCr/aEVS/3VR + Sf/OupT/4OD7/3Fs4f/d19b/wb3o/2ho/f+cmOf/sZ+a/2hcwf+2tPD/9fLu/8e5sv9nYNT/29be/+Tj + +P9jXt//qpuo/2po8v+Wlv//xsPs/7GQV/9PNXz/glYm/1E1eP+FXDf/0sav3I51ddw5JaH/j14R/5ll + AP+LXBj/Sz66/+Ph8f+lpf7/h4b7/8/N8f+Kg9T/f3fO/9jV7//s7Pn/gHzp/5yJl//d0Ln/sK/2/3h2 + 7/+gjpn/yLim/3Fv8//Cwfr/bm7+/9zc/v+9q6D/h1wt/0Erk/9fP2D/QCqU/3dTS//QwqncgG+a3EMt + j/+YZAL/mWUA/5ltI/9IQNb/w8P9/2dm9//My/f/oqL7/7+//f+Be9n/b2G5/6We1/96eff/iobo/5qJ + oP9bUs7/vrvr/52b8f+2qbb/Y17h/97e//+Kiv//n53w/11GiP9gP2D/XD1l/1s8Z/9pRVD/aEll/8W8 + wtyfjY3cRS6N/5FgDf+baQj/o42K/1xb+f/W1vz/w8T9/9jR1P+gjpv/3trh/9ra/f/CwPL/xLOi/5+L + k/+4s9//xsX6/7m26v+5pZP/raC1/9nY9P/Bwf7/+Pj//+Dd7/+Qdnj/h1of/3xSMP+DVyT/j18Q/5Bf + Dv+EX0T/zsjS3MWyk9x2UEb/bEhL/4lqY/+Lh+n/u7jq/97Uwf/5+Pb/+vn3/+HXw//Fr4X/3NC4//n4 + 9f/7+/n/4tnF/8Wvhf/cz7f/+fj1//Tx6//UxKb/3NXQ/6Sk///08/z/0sCc/5xsDP+ZZQD/mWUA/5ll + AP+ZZQD/mWUA/6Z/Mf/o5d7c29HA3J9yG/+Zbyf/z8bK//Pz///8+/v/7+zk/9fJrf/Tw6L/9fLt//Pw + 6f/Qvpz/y7eQ/+3o3f/9/f3/9PDq/9HAn//JtY7/7efc//z8+//8/Pz/9/f//+nh0/+nfSv/mWUA/5ll + AP+ZZQD/mWUA/5llAP+ZZQD/tphe//X189zu7ejcrotH/6d+Lf/k2sf//Pz7////////////9vTu/9TD + o//ErH//5d3M//n49f/k28n/xrCG/9nMsv/59/P//Pz6/+Xcy//Nupf/9fPu///////49vL/vJ1i/5pm + Av+ZZQD/mWUA/5llAP+ZZQD/mWUA/5tpCf/Ovp///Pz83Pr6+tzItZL/m2oJ/6V6Jv/OuZL/9fLs//7/ + /v///////f38/+ni0//Gr4T/0L6c//Pw6v/08ev/08Ok/8izi//r5Nf//f38//r59//+/f3//v79/9XE + pP+ebQ//mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/pn0u/+jk2//+/v7c/v7+3Ojj2/+ngDT/mWYA/5xr + Cv+1k1H/49nF//z7+v////////////j28v/Yyq3/w6x+/+PZxf/5+Pb/59/P/8axh//i2MT//v/+//// + ///s5tj/qYAx/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5ppBv/DroP/+vn5//7+/tz+/v7c+/v6/8q4 + l/+cawz/mWUA/5lmAf+jdh//ybKG//Lu5////v7///////7+/f/s5tr/ybSK/827l//x7eX/9vTv//Pw + 6f//////+ff0/76ia/+aZwP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/qoQ6/+nl3P///////v7+3P7+ + /tz/////8O3p/7SWW/+aZwP/mWUA/5llAP+baQj/sY1H/+DUvP/7+vj////////////6+PX/28+1/8Wv + g//u6d////////7+/v/Yyaz/nm8S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/59yGf/Uxq3//Pz8//// + ///+/v7c/v7+3P/////+/v7/5eDU/6uHQP+ZZgL/mWUA/5llAP+ZZQH/oXMa/8WsfP/w6+L//v7+//// + ///+/v7/8+/n//f18f//////7+ne/6yFOP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbQ//xbGL//f3 + 9f////////////7+/tz+/v7c///////////9/f3/39fI/6uGP/+aZwP/mWUA/5llAP+ZZQD/mmgG/62I + Pv/czrP/+vn2//////////////////r59//DqHT/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW4R/8Ks + gf/08u///////////////////v7+3P7+/tz////////////////9/f3/493R/7KTVv+bagr/mWUA/5ll + AP+ZZQD/mWYB/59wFf/BpXH/7efc//7+/f/+/v7/3M+0/6BxFf+ZZQD/mWUA/5llAP+ZZQD/mWYC/6J3 + Iv/Jt5X/9fPx///////////////////////+/v7c/v7+3P/////////////////////+/v7/7uvm/8ay + jP+keir/mmcF/5llAP+ZZQD/mWUA/5pnBP+qgjX/18eo/+vk2P+uiD//mWYA/5llAP+ZZQD/mWUB/51t + EP+xkVP/29LA//n5+P////////////////////////////7+/tz+/v7c//////////////////////// + ////////+vn5/+Lc0P/Bqn//qIA1/51tEP+aZgP/mWUA/5llAP+ebhH/qYEz/5toBv+ZZgH/mmkH/6F1 + Hv+yk1b/08Wr//Hv6//+/f7//////////////////////////////////v7+3P7+/tz///////////// + //////////////////////////////n5+f/r5+D/1cmz/8Otg/+1llz/rYpG/6uFPv+sh0H/sZBR/7uh + b//Mu5z/4drM//Ty8P/9/f3////////////////////////////////////////////+/v7c/v7+vv7+ + /tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz9/f3c+vr63PX189zx7+zc7uzn3O7t + 6tzz8u/c+Pj43Pv8/Nz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+ + /r4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAYAAAAMAAAAAEAIAAAAAAAYAkAAAAAAAAAAAAAAAAAAAAAAAD////A/v7+3v7+ + /t7+/v7e/v7+3v7+/t708/He2s+73rqgbt6mfzLenm8U3ptpCd6baQren3EZ3qmFPt7CrIHe4tvM3vn5 + 9t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8D+/v7d////////////////+/v6/+DXxv+2mF3/n3EX/5lm + A/+ZZQD/pXol/6d9K/+aZwP/mWUA/5llAP+aaAX/o3gj/8Goef/r5tz//v39//////////////////7+ + /tz+/v7d///////////49vT/zbuY/6N3Iv+ZZgH/mWUA/5llAP+fcBL/28yu/+3m2f/Ao2z/n28S/5ll + AP+ZZQD/mWUA/5pnBP+rhTv/3NG8//z8+/////////////7+/tz+/v7d//////n49v/Hson/nm4R/5ll + AP+ZZQD/mWUA/5pnA//CpW7/+vj1//7//v/6+fb/28uu/6yFOP+aZwT/mWUA/5llAP+ZZQH/pHkm/9nM + tf/9/f3///////7+/tz+/v7d/Pz8/9HBov+ebxP/mWUA/5llAP+ZZQD/mWUA/6qCMv/u6Nv/7ene/+3o + 3f/29O7//v7+//Dr4P/Eqnf/oHEW/5llAP+ZZQD/mWUA/6Z9Lf/j3M3//v7+//7+/tz+/v7d5+HU/6Z8 + K/+ZZQD/mWUA/5llAP+ZZQD/nm0P/9jHp//39PD/+ff0/+ni0//NuZL/597N//38+//7+vj/39K4/7CK + Qf+baAb/mWUA/5lmAv+1lVj/9PPv//7+/tz6+fjdwad2/5pnA/+ZZQD/mWUA/5llAP+aZgL/vZ9k//j3 + 8//v7OP/5NzK/+rj1P/y7eT/08Kh/9XGp//18uz//v7+//Pu5f/IsIH/onQb/5llAf+dbQ//1smv//39 + /dzm4NXdpXoo/5llAP+ZZQD/mWUA/5llAP+ofiv/6+PV/+3p3v/08ev/8e3k/9PCof/Zyq7/9PHq/+Xb + yP/OupX/5t3L//z8+v/8+/r/49fB/7OPSv+baQj/tZZa//X189zNupndm2kI/5llAP+ZZQD/mWUA/51s + DP/Uwp7/+fj0//f18v/l3Mv/18ir//Hs5P/i2MT/z7yY/+nh0v/y7+f/1cWm/9XFpv/39O///////+zl + 2P+nfSr/o3gj/+bf0ty3mWDdmWUB/5llAf+ZZQD/mWYC/7qaW//39fD/7eje/+fg0f/p4dP/6ODQ/9HA + n//k28n/8Ovi/9TEpP/Yyq3/9PHr/+nh0v/z7+j//fz7/864jv+baQj/nGsN/9TGqtykgUTddk46/3hP + N/97UTL/oHcv/9vSz//Bvun/7+3w/6Og6f+cjav/s6e7/7u46v/Zy7P/tqu9/97b7v/Bt8n/n5Kz/7Wy + 6/+zs///29LL/4hmUf+HWR7/fVQ1/8ayjNx5X3rdXz9g/5ViB/9yTEP/mI3E/8C/+/+QjvL/v7rf/3dx + 2v/OzO//s67f/5GFu//h2dD/hIHs/6KVt/+0q8j/nJnu/3179v/Ix/X/p4lk/1E2ev9aO2j/Wjxt/7um + i9xqWaDdcktB/5lmAf+HZln/hYP1/5ST+f+5tuz/uLb0/5qW5f+FfMn/oprS/4SA5/+Wi73/iYLX/66q + 4v+jmsz/srH3/66u/f+Lgcz/bUtT/10+Y/9lQlf/ck1F/6qcsdyZg4LdaEVS/5FoLv+KgMj/trPn/+jn + 9//g2dX/xbSh/+Hb2v/n5PH/0cS0/8Kyqf/d2eb/3dfa/8W0ov/QzOX/19f//+Tc0v+YcDT/kmAM/5Bf + D/+WYwX/lWcV/8m8sNzGs43dkGQh/7Ohn//g4Pz/7urk/+Pax//i2MP/7unf/9XFp//cz7b/9vTv/+vl + 1//RwaD/49nF//Xy7P/v7vX/6Oby/7ucXv+ZZgL/mWUA/5llAP+ZZQD/onch/+Xe0Nzi2svdpXwr/824 + jf/39fD///////j18P/Zy6//0sKh/+3o3P/k2sf/0cCf/+rj1f/39PD/39O9//Hs4//+/v3/1sSh/51s + Df+ZZQD/mWUA/5llAP+ZZQD/tJRV//X08tz29fPduZxj/51sDf+4mFj/6N/N//39/P/+/f3/6+TX/9C9 + mv/f1L7/7+rh/9bHqv/azLL/+ff0//7+/v/s5df/qX8t/5llAP+ZZQD/mWUA/5llAP+cbA3/1MWp//39 + /dz9/v3d4NfF/6F1Hv+ZZgL/pXkj/865kP/18uz///////n38//d0Lf/0cCf/+zm2v/q49X/9/Xx//n4 + 9P++oWf/mmYC/5llAP+ZZQD/mWUA/5lmAf+zkVH/9PHt//7+/tz+/v7d+vr5/8eyif+cawr/mWUA/5tq + CP+1kk7/5NnE//z8+v/+/v3/7und/9TEpf/y7+f//v7+/9nIqf+ebhD/mWUA/5llAP+ZZQD/mWUA/6R5 + Jv/h2Mb//v7+//7+/tz+/v7d//////Ty7v+8om7/m2kJ/5llAP+ZZQH/o3Ud/8qzhf/07+f//v7+//z7 + +v/9/Pv/7+nd/6uDNP+ZZQD/mWUA/5llAP+ZZQD/oXUe/9XGq//8/Pv///////7+/tz+/v7d//////// + ///y8Ov/wap7/55vE/+ZZQD/mWUA/5tpBv+xjET/4NO7//v6+f/7+ff/wqZw/5pnA/+ZZQD/mWUA/5lm + Av+mfi7/1smv//v7+v////////////7+/tz+/v7d////////////////+Pf1/9XHrP+siEH/nGsM/5ll + Af+ZZQH/oXIY/8Wrev/TwZ3/n3AT/5llAP+ZZgL/oHIZ/7qdZv/m39H//f38//////////////////7+ + /tz+/v7d//////////////////////79/f/w7ef/08Wp/7iaYP+ofzL/oXMc/6ByGf+jeCT/o3gj/62I + Qf/Cqnv/4NfF//j39f////////////////////////////7+/tz////A/v7+3v7+/t7+/v7e/v7+3v7+ + /t7+/v7e/f393vj29d7t6uLe49vN3t3UwN7e1sTe5uHV3vLw6977+vre/v7+3v7+/t7+/v7e/v7+3v7+ + /t7+/v7e/v7+3v7+/r8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAAACgA + AAABACAAAAAAAJAGAAAAAAAAAAAAAAAAAAAAAAAA/v7+wf7+/t7+/v7e/v7+3vz8/N7q5Nrex7KJ3quG + Pt6ecBbem2kJ3ptpCd6fchver41L3s69nd7w7OXe/f393v7+/t7+/v7e/v7+3v///8D+/v7e//////// + ///39fL/z76b/6h/MP+baAb/mWUA/6mAL/+8nmL/n3AT/5llAP+ZZQD/nGoL/66KRP/bzrf/+/r5//// + /////////v7+3P7+/t7/////9PHs/7+lcf+dbA3/mWUA/5llAP+ebxD/28ut//r59v/dz7P/roc8/5pn + BP+ZZQD/mWUA/6BzGv/Nupb/+vn3///////+/v7c/v7+3vj39P/BqHb/m2kI/5llAP+ZZQD/mmYC/8Cj + af/z8On/9PHq//v6+P/y7eP/x617/6FyGP+ZZQD/mWUA/59vE//SwaD//fz8//7+/tz9/f3e1cap/55u + EP+ZZQD/mWUA/5llAP+pgC7/6+PU//b07//q49X/1san//Hs4v/7+vj/4dW8/7KMRf+baAb/mWUA/6V6 + J//m39D//v7+3PHt5t6tiED/mWUA/5llAP+ZZQD/nWwN/9bFov/39fH/6ePW/+Taxv/t5tn/1san/+LX + wf/6+fb/9PDo/8u0h/+jdR3/mmcD/76jb//6+fjc1MWn3pxsDP+ZZQD/mWUA/5lmAv+8nWD/9fLs/+vm + 2v/t6Nz/4tjD/9fHqf/s5tn/4tjD/9bGqP/w6+D//Pv6/+Xaxf+xjET/pXon/+jj1ty4nGLemWUB/5ll + AP+ZZQD/p3wo/+rh0f/w7OP/8e3k/97Su//d0bn/6+TX/9jKrf/h1sH/7ujc/9nLr//z7+b/+/n3/7+i + aP+cawv/0sKj3KR+Pt6DVyT/hlgg/5VmFv/MuJr/4d/w/+bj7P+uo73/yr/A/8jA0//Wx63/087c/9vR + xv+3qrb/08/q/9TU+//Wybj/kWYq/4pcG/+/qH3cdFl23nJLQf+HWR//fGeU/8XC8P+fne3/paDe/56a + 5f+8ttv/k4nJ/9XO0f+Ggdz/w7i//5GM5P+MivD/u7fp/5BxZf9ZO2v/Vzpu/6+WfdxnU5beg1ck/5lt + JP94cNb/qKf6/7Wx5f+3tO3/mpTa/6OZyP+Mh9z/mpHM/6Ka0/+xqdP/p6Tt/7+++v+Jear/akdU/21I + SP9wSkX/oo+c3JyCdd55Uz//m4eZ/7az5//p5eX/5d7W/9PFrf/j3Nb/6ePc/9DCrv/d1c7/5N3U/9jO + xv/Pz/z/3dC7/5ttHP+VYgf/l2ME/5hnCv/JuJzcyraQ3qeBPf/n4uP/+/r6/+zl2f/Wx6n/6OHS/93R + uv/d0bn/8u7l/+HXwv/f073/+/r4//Ds5/+xi0L/mWUA/5llAP+ZZQD/oXQc/+Tcy9zp4tXeqIEz/7qa + Wv/q4c///f38//Pv5//Zyq7/39O8/+ff0P/Yya3/6eHT//b07v/7+vj/yrKC/5toBv+ZZQD/mWUA/5ll + Af+3l1n/+PXz3Pv7+t7Gr4T/m2kH/6Z6Jf/QvJP/9/Tu//z7+f/n3sz/1sep/+fg0P/n3s7/+/r3/+PY + wv+idBv/mWUA/5llAP+ZZQD/oHIX/97SvP/+/v7c/v7+3vDs5f+xjkr/mWYC/5xqCf+2lFH/5tvH//38 + +//18uz/3tK6//Xy7P/18uv/s5BK/5llAf+ZZQD/mWUA/5tqCP/FroD/+vn4//7+/tz+/v7e///+/+fg + 0v+tiED/mmYD/5llAf+jdh7/zLWJ//Xx6f/+/v3//Pz6/863jP+baQf/mWUA/5llAP+cagr/vqNt//Ty + 7f///////v7+3P7+/t7//////v7+/+vl2v+5nGL/nW4Q/5llAP+baQf/so5G/+HVvv/k2cT/pHcg/5ll + AP+ZZgL/o3ch/8m0i//18+/////////////+/v7c/v7+3v////////////////f18v/Zy7L/t5db/6R5 + Jf+dbRD/o3ch/6mBM/+fcBb/qYEz/8Gndv/l3c3//Pv6//////////////////7+/tz+/v7B/v7+3v7+ + /t7+/v7e/v7+3v7+/t749vTe6uPX3tvOt97TxKbe1cap3t/Vwt7u6+Pe+/v63v7+/t7+/v7e/v7+3v7+ + /t7+/v7e////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAA + AAAAAAAAAAAAAP7+/sL+/v7f/v7+3/j289/Zy7Dfs5JS36FzHN+dbRHfm2kJ36J1IN+4mmDf4NS+3/r6 + +N/+/v7f/v7+3/7+/sL+/v7e//////Ds4/++oWr/nm8S/5llAf+rgjH/1sSg/7GLQv+baAX/mWYB/6F0 + G//HsIL/9vPu///////+/v7e/v7+3vHt5f+1k1L/mmcE/5llAP+ebQ7/2Mel//n39P/z7+X/yrKD/6J0 + G/+ZZQH/m2kI/8Ckb//39fH//v7+3vn49t7CqHX/mmcF/5llAP+aZgL/vqBk//Pv5//s5tr/4dbA//by + 7P/k2cP/tJBL/5tpB/+cawv/0L2Z//z8+97h1sLeoXMa/5llAP+ZZQD/qH4r/+nh0P/w7OT/49jE/+fe + zP/czrT/7OXY//Tx6f/PuY7/pHgh/6mBMv/t6N3evqNv3plmAv+ZZQD/nWwM/9XCnP/08ez/597O/+Xb + yf/d0Lf/5dzJ/+LXwv/g1b//+Pby/+LVvf+leST/0sCf3qV/Od6OXhL/k2IL/7iXW//s6Of/3tnc/9LI + xP/Sx8D/3tTD/9zSx//TyL7/3NbZ/+fl8f/Nupz/lmcT/7ida951V2jegFQq/3pZWf+7tNf/sq/q/5uX + 5P+2r9X/npbS/8W8zf+noNP/qqLR/5eT6v+1rtj/fF5o/2A/Xv+cgXLebVSC3o9hHP+EcZv/r674/7m0 + 3v+0r+L/raXS/5yTzP+ooNT/sKfM/66p4P/DwfP/i3OE/3BLRv92Tjv/nIR/3qWIZt6cfmr/y8fo/+ji + 2//j2sn/3dG8/+fe0P/k28v/3tO//+jg0//k4vH/z72f/5xrDf+YZAH/mWcE/8eyiN7Rv53etpRS/+rh + 0P/59vL/49jE/9/TvP/i18P/4NXA/+vk1v/x7eT/7eXX/6h+K/+ZZQD/mWUA/6J0HP/k28ne8ezl3q+L + RP+meyX/0b2V//bz7f/w6+D/3dG4/+PYxf/o4dH/+fby/76gZP+aZgL/mWUA/5pmA/+/o23/+fj13v39 + /d7f0rv/onYf/5xqCf+3lFH/59zI//n38v/o4ND/9/Xw/9nIp/+ebQ7/mWUA/5llAf+shTr/7efb//7+ + /t7+/v7e/fz7/9jJrf+leyf/mmYC/6R2Hv/Ntor/9fHq/+/p3P+rgjH/mWUA/5pnBP+uiD//5t3M//7+ + /v/+/v7e/v7+3v/////9/fz/597O/7yeZf+jdiD/nW0O/7OOSP+4llX/nW0O/6d9LP/Grn//7+rh//7+ + /v///////v7+3v7+/sH+/v7e/v7+3v39/d75+PXe5t7P3tLCod7HsIbeybSM3tbJrd7s5tze+/v63v7+ + /t7+/v7e/v7+3v7+/sEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.vb b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.vb new file mode 100644 index 0000000..00d5be1 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/ISI_Uebersicht/frmISI.vb @@ -0,0 +1,713 @@ +Imports DevComponents.AdvTree +Imports System.ComponentModel +Imports C1.Win.C1TrueDBGrid + +Public Class frmISI + + Dim clsisiTree As New IsiTree + Dim clsisi As New clsISIUebersicht + + + + +#Region "Deklarationen" + + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim Pruefschritt As New clsPruefschritt + Dim Pruefschrittresultat As New clsPruefschrittResultat + Dim Pruefschrttmassnahme As New clsPruefschrittMassnahme + Dim Pruefschrittfinding As New clsFinding + Dim OnRefreshAll As Boolean = False + + +#End Region + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.StatusImages + Me.TreeUebersicht.ImageList = Me.ImageList1 + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub frmPruefschrittUebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Refresh_Tree() + sec.Set_Form_Security(Me) + If Me.AssessmentZuteilenToolStripMenuItem.Enabled = False Or Me.AssessmentZuteilenToolStripMenuItem.Visible = False Then Me.DokumenteAllgemein.Show_Toolbar = False + ' Refresh_All() + End Sub + + Sub Refresh_Tree() + Try + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + clsisiTree.Load_Treeview(Me.TreeUebersicht) + Me.TreeUebersicht.ExpandAll() + Me.TreeUebersicht.SelectedNode = Me.TreeUebersicht.Nodes(0) + Catch ex As Exception + Finally + Me.Cursor = Cursors.Default + Application.DoEvents() + End Try + + End Sub + + Sub Load_Status() + + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + 'Me.DokumenteAllgemein.Doktype = 1 + 'Me.DokumenteAllgemein.ThemaNr = 0 + Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Me.DokumenteFindings.Show_Toolbar = False + Me.DokumenteFindings.ConnectionString = Globals.sConnectionString + Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteFindings.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Me.DokumenteMassnahmen.Show_Toolbar = False + Me.DokumenteMassnahmen.ConnectionString = Globals.sConnectionString + Me.DokumenteMassnahmen.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteMassnahmen.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + + Me.TreeUebersicht.Nodes.Clear() + Dim i As Integer = 0 + For Each r As DataRow In Pruefschritt.Pruefschrittstatus.Rows + Dim tn As New DevComponents.AdvTree.Node + tn.Text = r("Bezeichnung") + tn.Tag = r(0) + tn.ImageIndex = i + i = i + 1 + Me.TreeUebersicht.Nodes.Add(tn) + Next + + End Sub + + Private Sub TreeUebersicht_AfterNodeSelect(sender As Object, e As AdvTreeNodeEventArgs) Handles TreeUebersicht.AfterNodeSelect + Try + Refresh_All() + + Catch ex As Exception + + End Try + + + End Sub + + Private Sub C1Daten_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Daten.RowColChange + refresh_all_Details() + + Dim cps As New clsPruefschritt + + Try + cps.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then + Me.tsbtnAssessmentAnzeigen.Visible = True + Me.tsbtnPruefschrittbearbeiten.Visible = False + + Else + Me.tsbtnAssessmentAnzeigen.Visible = False + Me.tsbtnPruefschrittbearbeiten.Visible = True + + + End If + If cps.iStatusnr = 6 Then + Me.AssessmentZuteilenToolStripMenuItem.Visible = False + Else + Me.AssessmentZuteilenToolStripMenuItem.Visible = True + End If + Catch + Finally + cps.dispose() + End Try + + End Sub + Sub refresh_all_Details() + If OnRefreshAll Then Exit Sub + Me.DokumenteAllgemein.Init() + Me.C1Findings.DataSource = Nothing + Me.C1Massnahmen.DataSource = Nothing + Me.C1Notiz.DataSource = Nothing + Me.DokumenteAllgemein.Pruefschrittnr = -1 + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Pruefschrittnr").Value + 'refresh_all_Details() + + Catch + End Try + Try + Refresh_Dokumente_Resultat() + Refresh_notizen() + Refresh_History() + Refresh_Resultat() + Refresh_Vorgaben() + + Catch + End Try + Refresh_Details() + + End Sub + + Sub Refresh_Vorgaben() + Me.Pruefschritt.Get_Vorgaben(Me.C1Vorgaben, Me.C1Daten.Columns("Pruefplannr").Value) + + End Sub + + Sub Refresh_notizen() + Dim notizen As New clsPruefschrittNotiz + Try + notizen.Get_Eintraege(Me.C1Notiz, Me.C1Daten.Columns("Pruefschrittnr").Value) + Catch + End Try + + End Sub + + Sub Refresh_History() + Dim history As New clsHistory + Try + history.Get_Eintraege(Me.C1History, Me.C1Daten.Columns("Pruefschrittnr").Value) + Catch + End Try + + End Sub + + Sub Refresh_Resultat() + Try + Pruefschrittresultat.Get_Data(Me.C1Daten.Columns("Pruefschrittnr").Value) + Me.txtKurzbeschreibungResultat.Text = Pruefschrittresultat.sKurzbeschreibung.Value + Me.txtBeschreibungResultat.Text = Pruefschrittresultat.sBeschreibung.Value + Catch + End Try + Refresh_Findings() + Refresh_All_Findings() + + End Sub + + Sub Refresh_Findings() + Try + Refresh_Finding_Dokumente() + Me.Pruefschrittfinding.Get_Eintraege(Me.C1Findings, Me.Pruefschrittresultat.iPruefSchrittResultatNr.Value, ImageListFindings) + Catch + End Try + + Refresh_Massnahmen() + End Sub + + Sub Refresh_Massnahmen() + Try + DokumenteMassnahmen.Init() + Me.Pruefschrttmassnahme.Get_Eintraege(Me.C1Massnahmen, Me.C1Findings.Columns("Pruefschrittresultatnr").Value, Me.ImageListFindings) + Catch + End Try + + End Sub + Sub Refresh_All(Optional key As Integer = 0) + Me.OnRefreshAll = True + + + clsisi.Get_Data(C1Daten, Me.TreeUebersicht.SelectedNode.Tag) + If C1Daten.Splits(0).Rows.Count = 0 Then + Me.tsbtnAssessmentAnzeigen.Visible = False + Me.tsbtnPruefschrittbearbeiten.Visible = False + End If + Me.OnRefreshAll = False + refresh_all_Details() + + End Sub + + + Sub Refresh_Details() + Try + Me.txtBezeichnung.Text = "" + Me.txtBeschreibung.Text = "" + Me.txtPruefgegenstand.Text = "" + Me.txtMassnahmen.Text = "" + Me.txtEreignisse.Text = "" + Me.txtHilfsmittel.Text = "" + Me.txtVerantwortlich.Text = "" + Me.txtVerantwortungISI.Text = "" + Me.txtAktuellVerantwortlich.Text = "" + Me.txtTermin.Text = "" + Me.txtZugewiesen.Text = "" + Me.txtErstelltam.Text = "" + Me.txtMutiertam.Text = "" + Me.txtMutierer.Text = "" + + Me.txtBezeichnung.Text = Me.C1Daten.Columns("Bezeichnung").Value + Me.txtBeschreibung.Text = Me.C1Daten.Columns("Beschreibung").Value + Me.txtPruefgegenstand.Text = Me.C1Daten.Columns("Pruefgegenstand").Value + Me.txtMassnahmen.Text = Me.C1Daten.Columns("Massnahmen").Value + Me.txtEreignisse.Text = Me.C1Daten.Columns("Ergebnisse").Value + Me.txtHilfsmittel.Text = Me.C1Daten.Columns("Hilfsmittel").Value + + Me.txtVerantwortlich.Text = Me.C1Daten.Columns("Hauptverantwortung").Value + Me.txtVerantwortungPlan.Text = Me.C1Daten.Columns("VerantwortungPlan").Value + Me.txtAktuellVerantwortlich.Text = Me.C1Daten.Columns("aktuell_verantwortlich").Value + Me.txtVerantwortungISI.Text = Me.C1Daten.Columns("Verantwortung_isi").Value + Me.txtZugewiesen.Text = Me.C1Daten.Columns("Zugewiesen").Value + Me.txtErstelltam.Text = Me.C1Daten.Columns("erstellt_am").Value + Me.txtMutiertam.Text = Me.C1Daten.Columns("mutiert_am").Value + Me.txtMutierer.Text = Me.C1Daten.Columns("mutierer").Value + + Me.txtTermin.Text = Me.C1Daten.Columns("Termin").Value + Catch ex As Exception + 'MsgBox(ex.Message) + End Try + + End Sub + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub WeiterleitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WeiterleitenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("Pruefschrittnr").Value) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("Pruefschrittnr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Dim save_verantworlich As Integer + Me.Pruefschritt.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + save_verantworlich = Me.Pruefschritt.iAktueller_Verantwortlicher.Value + Me.Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Me.Pruefschritt.Save_Data() + If save_verantworlich <> Me.Pruefschritt.iAktueller_Verantwortlicher.Value Then + Pruefschritt.Insert_Message(1, Me.Pruefschritt.iPruefschrittNr.Value, Me.Pruefschritt.iAktueller_Verantwortlicher.Value, save_verantworlich, f.txtNotiz.Text) + End If + + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles tsbtnAktualisieren.Click + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + Refresh_Tree() + Me.TreeUebersicht.SelectedNode = tn + tn.Dispose() + Refresh_All() + End Sub + + Private Sub C1Notiz_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Notiz.RowColChange + Me.txtnotiz.Text = "" + Try + Me.txtnotiz.Text = Me.C1Notiz.Columns("Notiz").Value + Catch ex As Exception + + End Try + End Sub + + Private Sub BearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BearbeitenToolStripMenuItem.Click + Dim f As New PruefschrittDetailsBearbeitung + f.Pruefschrittnr = C1Daten.Columns("Pruefschrittnr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + Dim cps As New clsPruefschritt + + cps.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + If cps.bDurchfuehrung_ISI.Value = True Then + If cps.Is_IsiMitarbeiter(Globals.clsmitarbeiter.iMitarbeiternr) = True Then + If cps.iStatusnr = 6 Then f.IsReadonly = True + Else + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then f.IsReadonly = True + End If + Else + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then f.IsReadonly = True + End If + 'If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then f.IsReadonly = True + f.Show() + + End Sub + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + BearbeitenToolStripMenuItem_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub tsbtnFindingBearbeiten_Click(sender As Object, e As EventArgs) Handles tsbtnPruefschrittbearbeiten.Click + Try + Me.C1Daten_DoubleClick(sender, e) + Catch + End Try + + End Sub + + Private Sub evh_pruefschrittresultat_closed(handler As Integer, key As Integer) Handles evh.pruefschrittresultat_closed + Try + If Me.Handle = handler Then + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + Refresh_Tree() + Me.TreeUebersicht.SelectedNode = tn + Refresh_All(key) + End If + Catch + End Try + End Sub + + Private Sub evh_Pruefschrittresultat_saved(handler As Integer, key As Integer) Handles evh.Pruefschrittresultat_saved + Try + If Me.Handle = handler Then + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + Refresh_Tree() + Me.TreeUebersicht.SelectedNode = tn + Refresh_All(key) + End If + Catch + End Try + End Sub + + Private Sub ctxMenuPruefschritt_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuPruefschritt.Opening + + If Me.C1Daten.Splits(0).Rows.Count < 1 Then + Me.ctxMenuPruefschritt.Visible = False + Else + Me.ctxMenuPruefschritt.Visible = True + End If + + Me.BearbeitenToolStripMenuItem.Visible = False + Me.WeiterleitenToolStripMenuItem.Visible = False + Me.AbschliessenToolStripMenuItem.Visible = False + Me.ZurückweisenToolStripMenuItem.Visible = False + + Select Case Me.TreeUebersicht.SelectedNode.Tag + Case 1, 2, 3 + If Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + Me.BearbeitenToolStripMenuItem.Visible = True + Me.WeiterleitenToolStripMenuItem.Visible = True + End If + + Case 4 + + Case 5 + If Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + Me.BearbeitenToolStripMenuItem.Visible = True + Me.ZurückweisenToolStripMenuItem.Visible = True + End If + + Case 6 + + End Select + + 'Me.BearbeitenToolStripMenuItem.Enabled = False + 'Me.WeiterleitenToolStripMenuItem.Enabled = False + 'Me.AbschliessenToolStripMenuItem.Enabled = False + 'Me.WeiterleitenToolStripMenuItem.Visible = True + + + ''Prüfung abgeschlossen + 'If Me.TreeUebersicht.SelectedNode.Tag < 4 Or Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + ' Me.BearbeitenToolStripMenuItem.Enabled = True + ' Me.WeiterleitenToolStripMenuItem.Enabled = True + ' Me.AbschliessenToolStripMenuItem.Enabled = True + 'End If + + 'If Me.TreeUebersicht.SelectedNode.Tag = 5 Then + ' Me.ZurückweisenToolStripMenuItem.Visible = True + ' Me.WeiterleitenToolStripMenuItem.Visible = False + 'End If + + End Sub + + Private Sub AnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnzeigenToolStripMenuItem.Click + Dim f As New PruefschrittDetailsBearbeitung + f.Pruefschrittnr = C1Daten.Columns("Pruefschrittnr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + f.IsReadonly = True + f.Show() + End Sub + + Private Sub AbschliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbschliessenToolStripMenuItem.Click + If MsgBox("Ist das Assessment definitiv abgeschlossen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Pruefschritt.Get_Data(Me.C1Daten.Columns("PruefschrittNr").Value) + + Me.Pruefschritt.iStatusnr = 6 + Me.Pruefschritt.Save_Data() + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 2, Globals.clsmitarbeiter.iMitarbeiternr.Value, "") + History.Dispose() + + Me.Refresh_All() + End If + + End Sub + + Private Sub C1Findings_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Findings.RowColChange + Refresh_All_Findings() + End Sub + + Sub Refresh_All_Findings() + Refresh_Finding_Dokumente() + Me.txtfindingbezeichnung.Text = "" + Me.txtfindingbeschreibung.Text = "" + Try + Me.txtfindingbeschreibung.Text = Me.C1Findings.Columns("Beschreibung").Value + Me.txtfindingbezeichnung.Text = Me.C1Findings.Columns("Bezeichnung").Value + Catch + End Try + Refresh_MassnahmenFinding() + End Sub + + Sub Refresh_Dokumente_Resultat() + + Try + Me.DokumenteResultat.Show_Toolbar = False + Me.DokumenteResultat.ConnectionString = Globals.sConnectionString + Me.DokumenteResultat.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteResultat.Init() + + Me.DokumenteResultat.Doktype = 4 + Me.DokumenteResultat.ThemaNr = Me.C1Daten.Columns("Pruefschrittnr").Value + Me.DokumenteResultat.Refresh_Dokumente() + Me.DokumenteResultat.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteResultat.Init() + Me.DokumenteResultat.Show_Toolbar = False + End Try + End Sub + Sub Refresh_Finding_Dokumente() + If Me.C1Findings.Splits(0).Rows.Count < 1 Then + Me.DokumenteFindings.Init() + + + Exit Sub + End If + Try + Me.DokumenteFindings.Show_Toolbar = False + Me.DokumenteFindings.ConnectionString = Globals.sConnectionString + Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteFindings.Init() + + Me.DokumenteFindings.Doktype = 5 + Me.DokumenteFindings.ThemaNr = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + Me.DokumenteFindings.Refresh_Dokumente() + Me.DokumenteFindings.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteFindings.Init() + Me.DokumenteFindings.Show_Toolbar = False + End Try + End Sub + + Sub Refresh_MassnahmenFinding() + Me.C1Massnahmen.DataSource = Nothing + If Me.C1Findings.Splits(0).Rows.Count > 0 Then + Try + Dim Massnahmen As New clsPruefschrittMassnahme + Massnahmen.Get_Eintraege(Me.C1Massnahmen, Me.C1Findings.Columns("Pruefschrittfindingnr").Value, Me.ImageListeMassnahmen) + Refresh_Massnahmen_Dokument() + Catch + End Try + + End If + + + End Sub + + Sub Refresh_Massnahmen_Dokument() + + + If Me.C1Massnahmen.Splits(0).Rows.Count < 1 Then + Me.DokumenteMassnahmen.Init() + + Exit Sub + End If + Try + Me.DokumenteMassnahmen.Show_Toolbar = False + Me.DokumenteMassnahmen.ConnectionString = Globals.sConnectionString + Me.DokumenteMassnahmen.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteMassnahmen.Init() + + Me.DokumenteMassnahmen.Doktype = 6 + Me.DokumenteMassnahmen.ThemaNr = Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value + Me.DokumenteMassnahmen.Refresh_Dokumente() + Me.DokumenteMassnahmen.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteMassnahmen.Init() + Me.DokumenteMassnahmen.Show_Toolbar = False + End Try + End Sub + + Private Sub C1Massnahmen_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Massnahmen.RowColChange + Me.txtmassnahmebezeichnung.Text = "" + Me.txtMassnahmebeschreibung.Text = "" + Me.txtMassnahmeResultat.Text = "" + + Try + Me.txtmassnahmebezeichnung.Text = Me.C1Massnahmen.Columns("Kurzbeschreibung").Value + Me.txtMassnahmebeschreibung.Text = Me.C1Massnahmen.Columns("Beschreibung").Value + Me.txtMassnahmeResultat.Text = Me.C1Massnahmen.Columns("MassnahmeResultat").Value + Catch + End Try + + + End Sub + + Private Sub C1Vorgaben_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Vorgaben.RowColChange + Try + Me.txtStruktur.Text = Me.C1Vorgaben.Columns("Struktur").Value + Me.txtDefinitionBezeichnung.Text = Me.C1Vorgaben.Columns("Bezeichnung").Value + Me.txtDefinitionBeschreibung.Text = Me.C1Vorgaben.Columns("Definition").Value + Me.txtDefinitionBemerkung.Text = Me.C1Vorgaben.Columns("Bemerkungen").Value + Catch + End Try + + Try + Me.DokumenteDefinition.Show_Toolbar = True + Me.DokumenteDefinition.ConnectionString = Globals.sConnectionString + Me.DokumenteDefinition.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteDefinition.Doktype = 2 + Try + Me.DokumenteDefinition.ThemaNr = C1Vorgaben.Columns("VorgabeDefinitionNr").Value + Catch + Me.DokumenteDefinition.ThemaNr = -1 + End Try + + Me.DokumenteDefinition.Refresh() + Me.DokumenteDefinition.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch + End Try + End Sub + + Private Sub ZurückweisenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZurückweisenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("Pruefschrittnr").Value, Me.C1Daten.Columns("Verantwortungnr").Value, True) + f.Text = "Assessment zurückweisen" + f.btnok.Text = "Zurückweisen" + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("Pruefschrittnr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Me.Pruefschritt.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + Me.Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Me.Pruefschritt.Save_Data() + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + Refresh_Tree() + Me.TreeUebersicht.SelectedNode = tn + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub tsbtnAssessmentAnzeigen_Click(sender As Object, e As EventArgs) Handles tsbtnAssessmentAnzeigen.Click + Try + Me.C1Daten_DoubleClick(sender, e) + Catch + End Try + + End Sub + + Private Sub AssessmentZuteilenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AssessmentZuteilenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("Pruefschrittnr").Value) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("Pruefschrittnr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Dim save_verantworlich As Integer + Me.Pruefschritt.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + save_verantworlich = Me.Pruefschritt.iAktueller_Verantwortlicher.Value + Me.Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Pruefschritt.Save_Data() + If save_verantworlich <> Me.Pruefschritt.iAktueller_Verantwortlicher.Value Then + Pruefschritt.Insert_Message(1, Me.Pruefschritt.iPruefschrittNr.Value, Me.Pruefschritt.iAktueller_Verantwortlicher.Value, save_verantworlich, f.txtNotiz.Text) + End If + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + Refresh_Tree() + Me.TreeUebersicht.SelectedNode = tn + 'Refresh_All(key) + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + Private Sub C1Daten_Click(sender As Object, e As EventArgs) Handles C1Daten.Click + Try + refresh_all_Details() + + Dim cps As New clsPruefschritt + + Try + cps.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then + Me.tsbtnAssessmentAnzeigen.Visible = True + Me.tsbtnPruefschrittbearbeiten.Visible = False + + Else + Me.tsbtnAssessmentAnzeigen.Visible = False + Me.tsbtnPruefschrittbearbeiten.Visible = True + + + End If + If cps.iStatusnr = 6 Then + Me.AssessmentZuteilenToolStripMenuItem.Visible = False + Else + Me.AssessmentZuteilenToolStripMenuItem.Visible = True + End If + Catch + Finally + cps.dispose() + End Try + Catch + End Try + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Kategorie/clsKategorie.vb b/SW/20211125/AssessmentMgmt/Kategorie/clsKategorie.vb new file mode 100644 index 0000000..274fc16 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Kategorie/clsKategorie.vb @@ -0,0 +1,534 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Imports DropDownControls + +Public Class clsKategorie + Inherits DB.clsKategorie + + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + End Sub + + + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iKategorienr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Kategorie") + db.Dispose() + Me.iKategorienr = New SqlInt32(CType(newkey, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.sBeschreibung_Lang = New SqlString(CType("", String)) + + Me.iParentid = New SqlInt32(CType(0, Int32)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iKategorienr.Value + End Function + + + +End Class + + +Public Class clsKategorieTree + +#Region "Deklarationen" + + Dim treedata As New DataSet + + Dim TreeaufbauSuche As Boolean = False + Dim TreeaufbauNr As Integer = 0 + Dim FoundNode As Integer = 0 + Dim Searchstring As String = "" + Public Treesearch As New AdvTree.AdvTree + +#End Region + + + +#Region "Tree" + + Public Sub Load_Treeview(ByRef tree As DevComponents.AdvTree.AdvTree) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata("") + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", _ + oDS.Tables(0).Columns("id"), _ + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + + End Sub + + Public Function Load_Treedata(ByVal datatype As String) As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_finma_struktur" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = datatype + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + 'MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + + + + Protected Function GetAllNodes(ByVal treestruktur As DevComponents.AdvTree.AdvTree) As List(Of TreeNode) + + Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)() + + ' start recursion for each root node of the treeview + For i As Integer = 0 To treestruktur.Nodes.Count - 1 + GetAllNodes(treestruktur.Nodes(i), allNodes) + Next + + Return allNodes + + End Function + + Protected Sub GetAllNodes(ByVal subRoot As DevComponents.AdvTree.Node, ByVal allNodes As List(Of TreeNode)) + + ' check for null (this can be removed since within th + If (subRoot Is Nothing) Then + Exit Sub + End If + + ' add subroot + Dim r As DataRow + r = treedata_for_search.NewRow + r.Item(0) = subRoot.Tag + Try + r.Item(1) = subRoot.Parent.Tag + Catch + r.Item(1) = 0 + End Try + + r.Item(2) = subRoot.Text + r.Item(3) = subRoot.ImageIndex + treedata_for_search.Rows.Add(r) + 'allNodes.Add(subRoot) + ' add all it's children + For i As Integer = 0 To subRoot.Nodes.Count - 1 + GetAllNodes(subRoot.Nodes(i), allNodes) + Next + + + End Sub + + + ''' + ''' Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As DevComponents.AdvTree.AdvTree) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New DevComponents.AdvTree.Node + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New DevComponents.AdvTree.Node + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree(oChildRow, oChildNode) + Next oChildRow + End Sub + Public Function FindNode(ByVal _nodeCollection As AdvTree.NodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As AdvTree.Node + Dim tmpNode As AdvTree.Node + For Each _child As AdvTree.Node In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + Public Function Init_Search() + FoundNode = 0 + Searchstring = "" + Me.Treesearch.Nodes.Clear() + End Function + + Public Function SearchNode(ByRef tree As AdvTree.AdvTree, ByVal SearchString As String) As AdvTree.Node + 'Return tree.FindNodeByCellText(SearchString) + + Me.Treesearch.Nodes.Clear() + For Each dr As DataRow In treedata_for_search.Rows + 'InStr(UCase(SearchString), UCase(dr.Item("Bezeichnung"))) + If InStr(UCase(dr.Item("Bezeichnung")), UCase(SearchString)) > 0 Or InStr(UCase(dr.Item("ErweiterteSuche")), UCase(SearchString)) > 0 Then + Dim tn As New AdvTree.Node + tn.Text = dr.Item("Bezeichnung") + tn.Tag = dr.Item("id") + Treesearch.Nodes.Add(tn) + End If + Next + Return FindFirst(tree) + End Function + + Public Function FindFirst(ByRef Tree As AdvTree.AdvTree) As AdvTree.Node + Try + If Me.Treesearch.Nodes.Count > 0 Then Me.Treesearch.SelectedNode = Me.Treesearch.Nodes(0) + Return FindNode(Tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch + End Try + End Function + + + + Public Function FindNextNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.NextNode + If Treesearch.SelectedNode Is Nothing Then + Return FindFirst(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + + End Try + End Function + + Public Function FindPrevNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.PrevNode + If Treesearch.SelectedNode Is Nothing Then + Return FindLastNode(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + End Function + + Public Function FindLastNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.Nodes(Treesearch.Nodes.Count - 1) + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + + End Function + + + + +#End Region + +#Region "ComboboxTree" + + Public Sub Load_ComboboxTree(ByRef tree As Object) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata("") + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", _ + oDS.Tables(0).Columns("id"), _ + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView1(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + + End Sub + + Private Sub LoadTreeView1(ByVal oDS As DataSet, ByRef oTreeview As Object) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New ComboTreeNode + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree1(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree1(ByVal oDataRow As DataRow, ByRef oNode As ComboTreeNode) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New ComboTreeNode + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree1(oChildRow, oChildNode) + Next oChildRow + End Sub + + Public Function ComboboxTree_FindNode(ByVal _nodeCollection As ComboTreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As ComboTreeNode + Dim tmpNode As ComboTreeNode + For Each _child As ComboTreeNode In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = ComboboxTree_FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + +#End Region + +End Class + + diff --git a/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.Designer.vb b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.Designer.vb new file mode 100644 index 0000000..381d0dd --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.Designer.vb @@ -0,0 +1,297 @@ + _ +Partial Class frmKategorie + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmKategorie)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.txtKategorie = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.lblkategorie1 = New System.Windows.Forms.Label() + Me.lblkategorie2 = New System.Windows.Forms.Label() + Me.btnSave = New System.Windows.Forms.Button() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.txtStrukturNr = New System.Windows.Forms.TextBox() + Me.lblStrukturNr = New System.Windows.Forms.Label() + Me.TreeKategorie = New DevComponents.AdvTree.AdvTree() + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.chkroot = New System.Windows.Forms.CheckBox() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + CType(Me.TreeKategorie, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(466, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neue Kategorie" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(466, 24) + Me.MenuStrip1.TabIndex = 5 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(22, 88) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(52, 13) + Me.lblBezeichnung.TabIndex = 7 + Me.lblBezeichnung.Text = "Kategorie" + ' + 'txtKategorie + ' + Me.txtKategorie.Location = New System.Drawing.Point(97, 85) + Me.txtKategorie.Name = "txtKategorie" + Me.txtKategorie.Size = New System.Drawing.Size(349, 20) + Me.txtKategorie.TabIndex = 1 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(22, 111) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(69, 13) + Me.lblBeschreibung.TabIndex = 9 + Me.lblBeschreibung.Text = "Bezeichnung" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(97, 111) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(349, 84) + Me.txtBeschreibung.TabIndex = 2 + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "Finma.jpg") + ' + 'lblkategorie1 + ' + Me.lblkategorie1.AutoSize = True + Me.lblkategorie1.Location = New System.Drawing.Point(22, 201) + Me.lblkategorie1.Name = "lblkategorie1" + Me.lblkategorie1.Size = New System.Drawing.Size(41, 13) + Me.lblkategorie1.TabIndex = 12 + Me.lblkategorie1.Text = "Parent-" + ' + 'lblkategorie2 + ' + Me.lblkategorie2.AutoSize = True + Me.lblkategorie2.Location = New System.Drawing.Point(22, 214) + Me.lblkategorie2.Name = "lblkategorie2" + Me.lblkategorie2.Size = New System.Drawing.Size(45, 13) + Me.lblkategorie2.TabIndex = 13 + Me.lblkategorie2.Text = "Element" + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(96, 549) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 5 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(371, 549) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 6 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'txtStrukturNr + ' + Me.txtStrukturNr.Location = New System.Drawing.Point(96, 59) + Me.txtStrukturNr.Name = "txtStrukturNr" + Me.txtStrukturNr.Size = New System.Drawing.Size(99, 20) + Me.txtStrukturNr.TabIndex = 0 + ' + 'lblStrukturNr + ' + Me.lblStrukturNr.AutoSize = True + Me.lblStrukturNr.Location = New System.Drawing.Point(22, 62) + Me.lblStrukturNr.Name = "lblStrukturNr" + Me.lblStrukturNr.Size = New System.Drawing.Size(68, 13) + Me.lblStrukturNr.TabIndex = 17 + Me.lblStrukturNr.Text = "Kat.-Nummer" + ' + 'TreeKategorie + ' + Me.TreeKategorie.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeKategorie.AllowDrop = True + Me.TreeKategorie.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeKategorie.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeKategorie.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeKategorie.ImageList = Me.ImageList1 + Me.TreeKategorie.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeKategorie.Location = New System.Drawing.Point(97, 201) + Me.TreeKategorie.Name = "TreeKategorie" + Me.TreeKategorie.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeKategorie.NodesConnector = Me.NodeConnector1 + Me.TreeKategorie.NodeStyle = Me.ElementStyle1 + Me.TreeKategorie.PathSeparator = ";" + Me.TreeKategorie.Size = New System.Drawing.Size(349, 296) + Me.TreeKategorie.Styles.Add(Me.ElementStyle1) + Me.TreeKategorie.TabIndex = 3 + Me.TreeKategorie.Text = "AdvTree1" + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'chkroot + ' + Me.chkroot.AutoSize = True + Me.chkroot.Location = New System.Drawing.Point(97, 503) + Me.chkroot.Name = "chkroot" + Me.chkroot.Size = New System.Drawing.Size(156, 17) + Me.chkroot.TabIndex = 4 + Me.chkroot.Text = "Struktur auf oberster Ebene" + Me.chkroot.UseVisualStyleBackColor = True + ' + 'frmKategorie + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(466, 584) + Me.Controls.Add(Me.chkroot) + Me.Controls.Add(Me.TreeKategorie) + Me.Controls.Add(Me.txtStrukturNr) + Me.Controls.Add(Me.lblStrukturNr) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.lblkategorie2) + Me.Controls.Add(Me.lblkategorie1) + Me.Controls.Add(Me.txtBeschreibung) + Me.Controls.Add(Me.lblBeschreibung) + Me.Controls.Add(Me.txtKategorie) + Me.Controls.Add(Me.lblBezeichnung) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "frmKategorie" + Me.Text = "Kategorie" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + CType(Me.TreeKategorie, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents lblBezeichnung As System.Windows.Forms.Label + Friend WithEvents txtKategorie As System.Windows.Forms.TextBox + Friend WithEvents lblBeschreibung As System.Windows.Forms.Label + Friend WithEvents txtBeschreibung As System.Windows.Forms.TextBox + Friend WithEvents lblkategorie1 As System.Windows.Forms.Label + Friend WithEvents lblkategorie2 As System.Windows.Forms.Label + Friend WithEvents btnSave As System.Windows.Forms.Button + Friend WithEvents btnAbbruch As System.Windows.Forms.Button + Friend WithEvents txtStrukturNr As System.Windows.Forms.TextBox + Friend WithEvents lblStrukturNr As System.Windows.Forms.Label + Friend WithEvents ImageList1 As System.Windows.Forms.ImageList + Friend WithEvents TreeKategorie As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents chkroot As System.Windows.Forms.CheckBox +End Class diff --git a/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.resx b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.resx new file mode 100644 index 0000000..b1e68be --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.resx @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 349, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLfS1NhGMdfCPoDuummi+i6qxYmpYjb3Obx + 7MzN1dY5Z9tJV86Min5Blpb90LQsC63QYSoWRaVWiln2Q9HIUMxCrBXpRXRRRBFEFwWfjhqLXdYDH3if + F94P7/d5X/E/9fn1UHB2Zvxn294s/mwt1NWKvO7Oyjy6j84hJek6InGt3M6j+E4+TfXzcfIO394Mcnm/ + NVXQVSGzKt3OmnU20jP/krbOykpLBt8T/SS6DzHW6OdL4jFXDzpSBZ1lMllWJza7hN3hSmLNcZKWYeNV + W4SxJp3R80E+vbzLjcO5qQJHvUCqXkSu3YfkUpBy3UiSjMslk2mVmGo1GL0Y4klDkA9jXfNR/xwVwnZC + kPjQjtOU5GVruJ0BFMmPInuR3R6yHW5exMOMNOoM1m9kZvgKvVXKgsBWLZicbaZ1UJBVJbDXCZznBHLZ + UrxKEE++n5w8H+NNGoNndb73LWd6oIW7NV6Eq1bw9F0V8RFB87C5flvEs3cRJt6H5yXrPWEKCoJIngDP + zqs8PKPxo38FL3sbGajzLwgeJPYQHxfExwQtLwStU4LnXyM4zgqCBUVsCIRwF2iMNAQYOB2keY+Tia4T + PK4PzEew2M0IPdObaU8IsucinBQ4zgjyy5ehq1FU3cAXNBiq93Pv1HpuVio8vVLBcIOaHKIlp0bQ/daH + 87TACOzC0EoxwsUYRpSIUUggFOVhnZe+Wh891V6GLu1m9EIo5RktTvPKSu1iosZ2okUlFEWL5yk00TbF + uF/roacqn1vHPPQ3xhhvjqQIRFvpWraUlFIS20HJ1m1JYiaFxdu5VyNz+7hC51E3t0+FmGwpROi6jq6F + 0LQwqjqHuVY1s1eTqGa/YaPOvliAjgrF/IEy14/kM9W+eWGI/0qZnra/7sDqX687YqkR/qGWmKwSQlh+ + A0B2wmtIPksZAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + 456, 17 + + + 571, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAG + CAAAAk1TRnQBSQFMAwEBAAFoAQABaAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA + AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA + AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm + AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ + AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm + AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz + AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm + AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm + AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA + ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm + AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm + ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm + AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA + AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ + AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz + AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/ + AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA + AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM + AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm + ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ + AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ + ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM + ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm + AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM + AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA + AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA + ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7 + Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BAAHjARcE4wYWApMBGgH/ + MAAGRgFpA28CFgGOApMB9jAAARcERgEXBG8DFgKTAfYwAAVGARcEbwMWApMB9jAABkYEbwQWAZMB/zAA + BUYBTAEXA28DFgKTAf8wAARGAWkBRgFMA28DFgKTAf8wAAJGAW8BvQEWBG8EFgFvAZMB/zAAAkYBbwHz + AZQFbwMWAW8BkwH2MAABbwK9AfQCvQEWBG8CFgFvAZMB9jAAAW8BlAG9AfQCvQEWBG8BFgFvARYBkwH2 + MAACRgFvAb0BlAZvAxYBkwH2MAADRgGUARYCRgNvAeMBbwEWAY4BkwH/MAAGRgEXAWkCbwEWAW8BFgFv + AZMB/zAACEYEbwEWAW8BkwH0MAABFwZGAm8CFgFvAhYBkwH0MAABQgFNAT4HAAE+AwABKAMAAUADAAEQ + AwABAQEAAQEFAAGAFwAD/4EACw== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.vb b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.vb new file mode 100644 index 0000000..049a19c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Kategorie/frmKategorie.vb @@ -0,0 +1,99 @@ +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class frmKategorie + + Dim Kategorie As New clsKategorie + Dim KategorieTree As New clsKategorieTree + + Dim m_kategorienr As Integer + Property Kategorienr As Integer + Get + Return m_kategorienr + End Get + Set(value As Integer) + m_kategorienr = value + + End Set + End Property + + Dim m_parent As Integer + Property ParentID As Integer + Get + Return m_parent + End Get + Set(value As Integer) + m_parent = value + End Set + End Property + + Private Sub frmKategorie_Load(sender As Object, e As EventArgs) Handles MyBase.Load + KategorieTree.Load_Treeview(Me.TreeKategorie) + If m_kategorienr <> 0 Then + Kategorie.Get_Data(Me.m_kategorienr) + Get_Data() + Else + Me.TreeKategorie.SelectedNode = KategorieTree.FindNode(Me.TreeKategorie.Nodes, Me.ParentID, Me.ParentID) + Me.txtStrukturNr.Text = "" + Me.txtKategorie.Text = "" + Me.txtBeschreibung.Text = "" + + + End If + + + End Sub + + Private Sub Get_Data() + Me.txtStrukturNr.Text = Kategorie.sBeschreibung.Value.ToString + If Kategorie.sBeschreibung_Lang.IsNull Then + Me.txtBeschreibung.Text = "" + Else + Me.txtBeschreibung.Text = Kategorie.sBeschreibung_Lang.Value.ToString + End If + Me.txtKategorie.Text = Kategorie.sBezeichnung.Value.ToString + Me.TreeKategorie.SelectedNode = KategorieTree.FindNode(Me.TreeKategorie.Nodes, Me.Kategorienr, Me.Kategorienr) + If Not IsNothing(Me.TreeKategorie.SelectedNode.Parent) Then + Me.TreeKategorie.SelectedNode = Me.TreeKategorie.SelectedNode.Parent + End If + + End Sub + + Private Sub Save_Data() + If Me.Kategorienr = 0 Then + Me.Kategorienr = Kategorie.Add_New + Kategorie.Get_Data(Me.Kategorienr) + End If + Kategorie.sBeschreibung = New SqlString(CType(Me.txtStrukturNr.Text, String)) + Kategorie.sBeschreibung_Lang = New SqlString(CType(Me.txtBeschreibung.Text, String)) + Kategorie.sBezeichnung = New SqlString(CType(Me.txtKategorie.Text, String)) + If Me.Kategorienr = Me.TreeKategorie.SelectedNode.Tag Then + 'keine Änderung + Else + Kategorie.iParentid = New SqlInt32(Me.TreeKategorie.SelectedNode.Tag) + End If + If chkroot.Checked = True Then + Kategorie.iParentid = New SqlInt32(CType(0, Int32)) + End If + Kategorie.Save_Data() + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + Save_Data() + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + btnAbbruch_Click(sender, e) + End Sub + + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Klassen/FilterClass.vb b/SW/20211125/AssessmentMgmt/Klassen/FilterClass.vb new file mode 100644 index 0000000..83b8087 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/FilterClass.vb @@ -0,0 +1,37 @@ +Public Class FilterClass + + Dim m_columname As String + Dim m_filtervalue As String + Property Columname() As String + Get + Return m_columname + End Get + Set(ByVal value As String) + m_columname = value + End Set + End Property + + Property FilterValue() As String + Get + Return m_filtervalue + End Get + Set(ByVal value As String) + m_filtervalue = value + End Set + End Property + + Sub New(ByVal columname As String, ByVal filtervalue As String) + MyBase.New() + Me.Columname = columname + Me.FilterValue = filtervalue + End Sub + + Sub New() + MyBase.New() + End Sub + Public Sub add(ByVal columname As String, ByVal filtervalue As String) + Me.Columname = columname + Me.FilterValue = filtervalue + End Sub +End Class + diff --git a/SW/20211125/AssessmentMgmt/Klassen/MyDocMgmt.vb b/SW/20211125/AssessmentMgmt/Klassen/MyDocMgmt.vb new file mode 100644 index 0000000..6d738d5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/MyDocMgmt.vb @@ -0,0 +1,427 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Diagnostics + +''' +''' Namesace TKB.VV.Utils fasst die Utility-Klassen fr die Vertragsverwaltung +''' zusammen. +''' +''' yes +''' +''' +''' +''' +''' +''' +''' +''' +Namespace TKB.VV.Utils + ''' + ''' Klasse fr das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + ''' + ''' + ''' Es werden folgende Datebanktabellen bercksichtigt: + ''' + ''' + ''' Dokument Attribut DocImage + ''' + ''' Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + ''' Vertragsbersicht|Vertragselemente + ''' + ''' yes + Public Class MyDocMgmt + ''' + ''' Grid-Layoutfile speichern + ''' + ''' C1Truedbgrind, von welchem das Layout gespeichert werden soll + ''' Nummer des Grids: 1=Vertragsbersicht... + ''' + ''' + Public Function Save_LayoutFile(ByRef c1data As C1TrueDBGrid, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + Dim filename As String = Globals.clsapplication.sTmp_filepath + Trim(Str(Profilnr)) + Trim(Str(GridNo)) + ".lyt" + c1data.SaveLayout(filename) + + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from profil where profilnr = " & Str(Profilnr), Connection) + 'mitarbeiternr=" + Str(Globals.clsmitarbeiter.iMitarbeiternr.Value) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "profil") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Profil sepeichern + myRow = ds.Tables(0).NewRow + myRow.Item(1) = Globals.clsmitarbeiter.iMitarbeiternr.Value + myRow.Item(2) = "" + Select Case GridNo + Case 1 + myRow.Item(3) = mydata + End Select + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "profil") + Else + myRow = ds.Tables(0).Rows(0) + Select Case GridNo + Case 1 + myRow.Item(3) = mydata + End Select + DA.Update(ds, "profil") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return True + + End Function + + Private Function Get_Layoutfile_from_db(ByVal filename As String, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + 'Exit Function + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("Select * From profil where profilnr=" & Str(Profilnr), connection) + 'mitarbeiternr=" + Str(Globals.clsmitarbeiter.iMitarbeiternr.Value) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) + Dim ds As New DataSet() + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.Fill(ds, "docs") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Select Case GridNo + Case 1 + MyData = myRow.Item(3) + + End Select + + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Return True + Catch ex As Exception + Return False + End Try + CB = Nothing + ds = Nothing + da = Nothing + connection.Close() + connection = Nothing + Return True + End Function + + Public Function Get_Layout(ByRef c1data As C1TrueDBGrid, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + Dim filename As String = Globals.clsapplication.sTmp_filepath + Trim(Str(Profilnr)) + Trim(Str(GridNo)) + ".lyt" + If File.Exists(filename) Then + c1data.LoadLayout(filename) + Return True + End If + If Get_Layoutfile_from_db(filename, GridNo, Profilnr) Then + c1data.LoadLayout(filename) + Return True + End If + Return False + End Function + + ''' + ''' Dokument in der Tabelle Dokument speichern + ''' + ''' Nummer des Dokument-Datensatzes + ''' Zu speichender Dateiname + ''' + ''' + + Public Function Save_Document(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from dokument where dokumentnr =" + Str(dokumentnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "Dokument") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + Return False + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(16) = mydata + DA.Update(ds, "Dokument") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return True + End Function + + ''' + ''' Liest das Dokument aus der DB und speichert dieses unter einem temporren Filenamen ab + ''' + ''' + ''' + ''' + Public Function Get_Dokument(ByVal DokumentNr As Integer) As String + Dim Filename As String = Globals.clsapplication.sTmp_filepath + If Right(Filename, 1) <> "\" Then Filename = Filename + "\" + + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("Select * From Dokument where DokumentNr=" + Str(DokumentNr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) + Dim ds As New DataSet() + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.Fill(ds, "Dokument") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + MyData = myRow.Item(16) + + Dim K As Long + K = UBound(MyData) + Filename = Filename + myRow.Item(6) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical) + Return "" + Finally + connection.Close() + connection = Nothing + End Try + CB = Nothing + ds = Nothing + da = Nothing + Return Filename + End Function + + Public Function Show_Document(ByVal Dokumentnr As Integer) As Boolean + Dim tmpfilename As String = Me.Get_Dokument(Dokumentnr) + If tmpfilename <> "" Then + OpenSystemFile(tmpfilename) + Return True + End If + Return False + End Function + + Public Function OpenSystemFile(ByVal sFileName As String) As Boolean + If Len(sFileName) > 0 Then + System.Diagnostics.Process.Start(sFileName) + ' + ' ShellExecute(GetDesktopWindow(), vbNullString, sFileName, vbNullString, vbNullString, vbNormalFocus) + Return True + End If + End Function + + Public Function Save_RptDatei(ByVal Auswertungnr As Integer, ByVal AuswertungName As String) As String + Dim filename As String = AuswertungName + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from AuswertungRptDatei where AuswertungDateiNr = " & Str(Auswertungnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Datei speichern + myRow = ds.Tables(0).NewRow + myRow.Item(0) = Auswertungnr + myRow.Item(1) = AuswertungName + myRow.Item(2) = RptName(AuswertungName) + myRow.Item(3) = mydata + myRow.Item(4) = Now + myRow.Item(5) = Now + myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "RptFile") + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(1) = AuswertungName + myRow.Item(2) = RptName(AuswertungName) + myRow.Item(3) = mydata + myRow.Item(5) = Now + myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + DA.Update(ds, "RptFile") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return RptName(AuswertungName) + End Function + + Public Function RptName(ByVal path As String) As String + Dim i As Integer + Dim file As String = path + i = InStrRev(file.Trim, "\") + If i = 0 Then + Return file.Trim + Else + Return Right(file.Trim, Len(file.Trim) - i) + End If + End Function + + Public Function Get_RptDatei(ByVal Auswertungnr As String, Optional ByVal fname As String = "") As String + Dim connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from AuswertungRptDatei where AuswertungDateiNr = " & Str(Auswertungnr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim Filename As String = "" + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Filename = Globals.clsapplication.sTmp_filepath + "\" + myRow.Item(2).ToString + If fname <> "" Then + Filename = fname + End If + MyData = myRow.Item(3) + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Catch ex As Exception + Return "" + End Try + CB = Nothing + ds = Nothing + DA = Nothing + connection.Close() + connection = Nothing + Return filename + End Function + + Public Function Save_Architekturfile(ByVal Applikationnr As Integer, ByVal iFilename As String) + Dim filename As String = iFilename + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from ApplikationArchitektur where applikationnr = " & Str(Applikationnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Datei speichern + myRow = ds.Tables(0).NewRow + myRow.Item(0) = Applikationnr + myRow.Item(1) = mydata + ' myRow.Item(4) = Now + ' myRow.Item(5) = Now + ' myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "RptFile") + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(1) = mydata + ' myRow.Item(2) = RptName(AuswertungName) + ' myRow.Item(3) = mydata + ' myRow.Item(5) = Now + ' myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + DA.Update(ds, "RptFile") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + End Function + + Public Function Get_Architekturfile(ByVal Applikationnr As String, Optional ByVal fname As String = "") As String + Dim connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from ApplikationArchitektur where applikationnr = " & Str(Applikationnr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim Filename As String = "" + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Filename = Globals.clsapplication.sTmp_filepath + "\architekturfile.xml" + If fname <> "" Then + Filename = fname + End If + MyData = myRow.Item(1) + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Catch ex As Exception + Return "" + End Try + CB = Nothing + ds = Nothing + DA = Nothing + connection.Close() + connection = Nothing + Return Filename + End Function + + End Class + +End Namespace diff --git a/SW/20211125/AssessmentMgmt/Klassen/MyGenericEventHandler.vb b/SW/20211125/AssessmentMgmt/Klassen/MyGenericEventHandler.vb new file mode 100644 index 0000000..16d8f4a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/MyGenericEventHandler.vb @@ -0,0 +1,39 @@ +Public Class MyGenericEventHandler + + + Public Event Set_ToolTip(ByVal formname As String, ByVal ctlname As String) + + Public Event Pruefplandetail_Saved(ByVal handler As Integer, ByVal key As Integer) + Public Event Pruefplandetail_Closed(ByVal handler As Integer, ByVal key As Integer) + Public Event Pruefschrittresultat_saved(ByVal handler As Integer, ByVal key As Integer) + Public Event pruefschrittresultat_closed(ByVal handler As Integer, ByVal key As Integer) + Public Event MassnahmeplanDetail_Saveed(ByVal handler As Integer, ByVal key As Integer) + Public Event MassnahmeplanDetail_Closed(ByVal handler As Integer, ByVal key As Integer) + + Public Function Pruefplandetails_save(ByVal handler As Integer, key As Integer) + RaiseEvent Pruefplandetail_Saved(handler, key) + End Function + + Public Function Pruefplandetail_close(ByVal handler As Integer, key As Integer) + RaiseEvent Pruefplandetail_closed(handler, key) + + End Function + Public Function Edit_Tooltip(ByVal formname As String, ByVal ctlname As String) + RaiseEvent Set_ToolTip(formname, ctlname) + End Function + + Public Function PruefplanResultat_Save(ByVal handler As Integer, ByVal key As Integer) + RaiseEvent Pruefschrittresultat_saved(handler, key) + End Function + + Public Function pruefschrittResultat_Close(ByVal handler As Integer, ByVal key As Integer) + RaiseEvent pruefschrittresultat_closed(handler, key) + End Function + + Public Function massnahmeplandetail_save(ByVal handler As Integer, ByVal key As Integer) + RaiseEvent MassnahmeplanDetail_Saveed(handler, key) + End Function + Public Function massnahmeplandetail_close(ByVal handler As Integer, ByVal key As Integer) + RaiseEvent MassnahmeplanDetail_Closed(handler, key) + End Function +End Class diff --git a/SW/20211125/AssessmentMgmt/Klassen/MyMessage.vb b/SW/20211125/AssessmentMgmt/Klassen/MyMessage.vb new file mode 100644 index 0000000..f886e54 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/MyMessage.vb @@ -0,0 +1,228 @@ +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace Utils + ''' + ''' Standard-Messages in div. Formatenm + ''' + ''' + Public Class MyMessage +#Region "Deklarationen" + ''' + ''' Dataview Meldungstexte um Textelemente fr die Ausgabe zu suchen + ''' + ''' + Private meldungstexte As New DataView() +#End Region + +#Region "Dispose" + Sub dispose() + meldungstexte.Dispose() + End Sub +#End Region + +#Region "DBZugriffe" + ''' + ''' Meldungen aus der Datenbanklesen, sofern diese noch nicht ausgelesen worden sind. Nach dem ersten Lesen werden + ''' die Daten aus der Tabelle Meldungstexte ohne erneutem DB-Zugriff verwendet + ''' + ''' + ''' + ''' + Public Function Get_Meldungstext(ByVal i As Integer) As String + Dim meldungen As New DB.clsMeldungstexte + Dim res As Integer + meldungen.cpMainConnectionProvider = conn + If Me.meldungstexte.Count = 0 Then + Me.meldungstexte.Table = meldungen.SelectAll + End If + meldungstexte.Sort = "meldungstextnr" + res = meldungstexte.Find(i) + Try + Get_Meldungstext = Me.meldungstexte(res).Item(2) + Catch + Get_Meldungstext = "" + End Try + meldungen.Dispose() + End Function + + +#End Region +#Region "Meldungen" + ''' + ''' Standardmessage + ''' + ''' Messagenr + ''' Messagetyp + ''' + ''' + Public Function show_standardmessage(ByVal i As Integer, ByVal typ As MsgBoxStyle) As Integer + Me.ShowMyDialog(Get_Meldungstext(i), typ, MsgBoxStyle.OkOnly) + 'MsgBox(Get_Meldungstext(i), typ) + End Function + ''' + ''' Yes-No-Meldung + ''' + ''' Meldungsnr + ''' MsgboxResult + ''' + Public Function Show_MessageYesNo(ByVal i As Integer) As MsgBoxResult + Return Me.ShowMyDialog(Get_Meldungstext(i), MsgBoxStyle.Question, MsgBoxStyle.YesNo) + 'Show_MessageYesNo = MsgBox(Get_Meldungstext(i), MsgBoxStyle.YesNo + MsgBoxStyle.Question) + End Function + ''' + ''' Standard-Meldung, welcher 2 Strings als Parameter bergeben werden, damit diese im Meldungstext ersetzt werden knnen. + ''' Parameter im Meldungstext #1 oder #2 + ''' + ''' + ''' + ''' + ''' + ''' + ''' + Public Function show_standardmessage_ReplaceText(ByVal i As Integer, ByVal typ As MsgBoxStyle, ByVal Text1 As String, ByVal Text2 As String) As Integer + Dim s As String + s = Get_Meldungstext(i) + s = s.Replace("#1", Text1) + s = s.Replace("#2", Text2) + Return Me.ShowMyDialog(s, typ, MsgBoxStyle.OkOnly) + ' MsgBox(s, typ) + End Function + ''' + ''' Yes-No-Meldung, welcher 2 Strings als Parameter bergeben werden, damit diese im Meldungstext ersetzt werden knnen. + ''' Parameter im Meldungstext #1 oder #2 + ''' + ''' MeldungsNr + ''' erster Text zum ersetzen + ''' zweiter Text zum ersetzen + ''' + ''' + Public Function show_MessageYesNo_ReplaceText(ByVal i As Integer, ByVal Text1 As String, ByVal Text2 As String) As MsgBoxResult + Dim s As String + s = Get_Meldungstext(i) + s = s.Replace("#1", Text1) + s = s.Replace("#2", Text2) + Return Me.ShowMyDialog(s, MsgBoxStyle.Question, MsgBoxStyle.YesNo) + 'show_MessageYesNo_ReplaceText = MsgBox(s, MsgBoxStyle.YesNo + MsgBoxStyle.Question) + End Function + ''' + ''' Ausgabe der Meldung, welche bergeben wird. Als Option knnen 2 Texte zum Ersetzen bergeben werden. + ''' Parameter im Meldungstext #1 oder #2 + ''' + ''' Meldungstext + ''' erster Text zum ersetzen + ''' zweiter Text zum ersetzen + ''' + ''' + Public Function ReplaceTextinMSG(ByVal OrgText As String, ByVal Text1 As String, ByVal Text2 As String) As String + OrgText = OrgText.Replace("#1", Text1) + OrgText = OrgText.Replace("#2", Text2) + ReplaceTextinMSG = OrgText + End Function + + ''' + ''' Meldung Yes-No-Cancel + ''' + ''' + ''' + ''' + Public Function Show_MessageYesNoCancel(ByVal i As Integer) As MsgBoxResult + Return Me.ShowMyDialog(Get_Meldungstext(i), MsgBoxStyle.Question, MsgBoxStyle.YesNoCancel) + 'Show_MessageYesNoCancel = MsgBox(Get_Meldungstext(i), MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) + End Function + + + 'Private Function ShowMessage(ByVal profilnr As Integer, ByVal messagenr As Integer, ByVal fnkt As Integer, ByVal style As Integer) As Boolean + ' Dim scmCmdToExecute As SqlCommand = New SqlCommand() + ' Dim i As Integer + ' Dim dtToReturn As DataTable = New DataTable() + ' Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + ' scmCmdToExecute.CommandText = "dbo.sp_show_hinweismeldung" + ' scmCmdToExecute.CommandType = CommandType.StoredProcedure + ' scmCmdToExecute.Connection = conn.scoDBConnection + ' Try + ' scmCmdToExecute.Parameters.Add(New SqlParameter("@profilnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, profilnr)) + ' scmCmdToExecute.Parameters.Add(New SqlParameter("@hinweisnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, messagenr)) + ' scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, fnkt)) + ' scmCmdToExecute.Parameters.Add(New SqlParameter("@showit", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0)) + ' sdaAdapter.Fill(dtToReturn) + ' i = scmCmdToExecute.Parameters.Item("@showit").Value + ' If i <> 0 Then + ' ShowMessage = True + ' Else + ' ShowMessage = False + ' End If + ' Catch ex As Exception + ' ' // some error occured. Bubble it to caller and encapsulate Exception object + ' Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + ' Finally + ' scmCmdToExecute.Dispose() + ' sdaAdapter.Dispose() + ' End Try + 'End Function + ''' + ''' Zeig den eigenen Messagebox-Dialog + ''' + ''' + ''' + ''' + ''' + Public Function ShowMyDialog(ByVal msgtext As String, ByVal ImageStyle As MsgBoxStyle, ByVal Buttons As MsgBoxStyle) As MsgBoxResult + Dim f As New frmMsgBox + f.btnno.Visible = False + f.btnAbbruch.Visible = False + f.btnYes.Visible = False + f.btnOK.Visible = False + Select Case Buttons + Case MsgBoxStyle.OkCancel + f.btnYes.Visible = True + f.btnAbbruch.Visible = True + Case MsgBoxStyle.YesNo + f.btnYes.Visible = True + f.btnno.Visible = True + Case MsgBoxStyle.YesNoCancel + f.btnYes.Visible = True + f.btnno.Visible = True + f.btnAbbruch.Visible = True + Case MsgBoxStyle.OkOnly + f.btnOK.Visible = True + End Select + f.imgCritical.Visible = False + f.imgExclamation.Visible = False + f.imgInformation.Visible = False + f.imgQuestion.Visible = False + Select Case ImageStyle + Case MsgBoxStyle.Critical + f.imgCritical.Visible = True + Case MsgBoxStyle.Exclamation + f.imgExclamation.Visible = True + Case MsgBoxStyle.Information + f.imgInformation.Visible = True + Case MsgBoxStyle.Question + f.imgQuestion.Visible = True + End Select + f.txtmsg.Text = msgtext + 'f.btnYes.Visible = True + 'f.btnno.Visible = True + f.ShowDialog() + Select Case f.DialogResult + Case DialogResult.Abort, DialogResult.Cancel + Return MsgBoxResult.Cancel + Case DialogResult.No + Return MsgBoxResult.No + Case DialogResult.Yes + Return MsgBoxResult.Yes + Case Else + + End Select + End Function + + + + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/Klassen/MySecurity.vb b/SW/20211125/AssessmentMgmt/Klassen/MySecurity.vb new file mode 100644 index 0000000..69627df --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/MySecurity.vb @@ -0,0 +1,833 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Namespace Utils + ''' + ''' Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + ''' + ''' + + Public Class MySecurity + Dim tt As New TKB.VV.Utils.clsToolTips + Dim SecurityData As DataSet = Globals.SecurityDaten + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + Dim IntForm As Form + Dim ctlcol As New Collection + Dim formname As String = "" + + + + ''' + ''' Formularsecurity setzen + ''' + ''' Aktuelles Formular + ''' + ''' + Public Function Set_Form_Security(ByRef f As Form) + IntForm = f + formname = f.Name + 'Load form DB + Load_Data(f.Name) + 'Load FormObjects + Me.ctlcol.Clear() + formname = f.Name + For Each ctl As Control In f.Controls + Objectanalysis(ctl) + ' AddHandler ctl.HelpRequested, AddressOf Object_MouseDown + 'ctl.ContextMenuStrip = Globals.TTContextMenuStrip + 'AddHandler ctl.KeyDown, AddressOf Object_MouseDown + Next + Set_Security() + If Globals.Set_ToolTips = True Then + tt.Edit_ToolTips(f, ctlcol) + Else + tt.Set_ToolTips(f) + End If + End Function + + Public Function Set_Menu_Security(ByRef f As Form, ByRef menu As ToolStripMenuItem, ByVal Menuname As String) + IntForm = f + formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + formname = f.Name + Dim ctl As Object = menu + Dim typ As System.Type = ctl.GetType + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, Menuname, ctl.Name)) + + Set_Security() + 'If Globals.Set_ToolTips = True Then + ' tt.Edit_ToolTips(f, ctlcol) + 'Else + ' tt.Set_ToolTips(f) + 'End If + + End Function + + + Public Function Set_Form_Readonly(ByRef f As Form) + IntForm = f + Me.formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + For Each ctl As Control In f.Controls + Objectanalysis_readonly(ctl) + Next + End Function + Public Function Set_Form_Default(ByRef f As Form) + IntForm = f + Me.formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + For Each ctl As Control In f.Controls + Objectanalysis_default(ctl) + Next + End Function + + Private Function Objectanalysis_readonly(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis_readonly(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis_readonly(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis_readonly(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + + For Each ctl In tmptabpage.Controls + Objectanalysis_readonly(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis_readonly(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis_readonly(ctl) + Next + Case "textbox" + Dim x As TextBox = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "maskedtextbox" + Dim x As MaskedTextBox = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "combobox" + Dim x As ComboBox = ctl + x.Enabled = False + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + Case "checkbox" + Dim x As CheckBox = ctl + x.Enabled = False + Case "radiobutton" + Dim x As RadioButton = ctl + x.Enabled = False + Case "comboboxtree" + Dim x As Object = ctl + x.enabled = False + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + Case "richtextbox" + Dim x As Object = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "button" + Dim x As Button = ctl + x.Enabled = False + Case "listbox" + Dim x As Object = ctl + ctl.enabled = False + Case "checkedlistbox" + Dim x As Object = ctl + ctl.enabled = False + Case "datetimepicker" + Dim x As Object = ctl + ctl.enabled = False + + Case Else + End Select + End Function + + Private Function Objectanalysis_default(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis_default(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis_default(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis_default(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + For Each ctl In tmptabpage.Controls + Objectanalysis_default(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis_default(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis_default(ctl) + Next + Case "textbox" + Dim x As TextBox = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.Enabled = True + Case "maskedtextbox" + Dim x As MaskedTextBox = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.Enabled = True + Case "combobox" + Dim x As ComboBox = ctl + x.Enabled = True + x.BackColor = Color.White + x.ForeColor = Color.Black + + Case "checkbox" + Dim x As CheckBox = ctl + x.Enabled = True + Case "radiobutton" + Dim x As RadioButton = ctl + x.Enabled = True + Case "comboboxtree" + Dim x As Object = ctl + x.enabled = True + x.BackColor = Color.White + x.ForeColor = Color.Black + Case "richtextbox" + Dim x As Object = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.readonly = True + Case "button" + Dim x As Button = ctl + x.Enabled = True + Case "listbox" + Dim x As Object = ctl + ctl.enabled = True + Case "checkedlistbox" + Dim x As Object = ctl + ctl.enabled = True + Case "datetimepicker" + Dim x As Object = ctl + ctl.enabled = True + Case Else + End Select + End Function + + + + ''' + ''' Daten ab Datenbank laden + ''' + ''' + Private Sub Load_Data(ByVal Formname As String) + Try + 'xxx + If SecurityData.Tables.Count > 0 Then + SecurityData.Tables.Clear() + End If + ' Exit Sub + Catch ex As Exception + End Try + SecurityData.Tables.Clear() + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "dbo.my_security_get_data" + sqlcmd.Parameters.Add("@FormName", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) + sqlcmd.Parameters(0).Value = Formname + sqlcmd.Parameters(1).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(SecurityData, "SecurityTable") + Globals.SecurityDaten.Tables.Add(SecurityData.Tables(0).Copy) + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + ''' + ''' Prft die DB-Eintrge mit den Formcontrols und bei bereinstimmung werden die Security-Einstellungen gesetzt + ''' + ''' + Private Sub Set_Security() + Dim i As Integer + For i = 0 To Me.SecurityData.Tables(0).Rows.Count - 1 + Dim SecurityObject As String = Me.SecurityData.Tables(0).Rows(i).Item("SecurityObject") + Dim SecurityObjectitem As String = Me.SecurityData.Tables(0).Rows(i).Item("SecurityObjectItem") + Dim read_only As Boolean = Me.SecurityData.Tables(0).Rows(i).Item("readonly") + Dim invisible As Boolean = Me.SecurityData.Tables(0).Rows(i).Item("invisible") + Dim ii As Integer + For ii = 1 To ctlcol.Count + Dim secobj As MyFormControls = ctlcol(ii) + If secobj.MySecurityObject = SecurityObject And secobj.MySecurityObjectItem = SecurityObjectitem Then + Set_Preferences(secobj.MyControl, read_only, invisible, SecurityObjectitem) + End If + Next + Next + End Sub + + ''' + ''' Security-Einstellungen setzen + ''' + ''' Betroffenes Objeckt (Menuitem, Conrol usw.) + ''' Readonly ja/nein + ''' Sichtbar ja/nein + ''' Name des Unterobjektes - wird fr die Spalteneinstellungen von C1TruedbGrids verwendet + ''' + Private Sub Set_Preferences(ByRef obj As Object, ByVal read_only As Boolean, ByVal invisible As Boolean, ByVal SecurityObjectItem As String) + Dim objtype As System.Type = obj.GetType + Select Case LCase(objtype.Name) + Case "button" + Dim ctl As Button = obj + If read_only Then ctl.Enabled = False + If invisible Then + ctl.Visible = False + ctl.Enabled = False + End If + Case "toolstripmenuitem" + Dim ctl As ToolStripMenuItem = obj + If read_only Then ctl.Enabled = False + If invisible Then + ctl.Visible = False + ctl.Enabled = False + End If + Case "textbox", "label", "combobox", "checkbox", "toolstripbutton", "panel", "datetimepicker", "toolstrip" + If read_only Then obj.Enabled = False + If invisible Then obj.Visible = False + Case "richtextbox" + If read_only Then obj.Enabled = False + Try + obj.readonly = True + obj.enabled = True + Catch ex As Exception + End Try + If invisible Then obj.Visible = False + Case "tabpage" + If invisible Then + Dim tbp As TabPage = obj + For Each x As MyFormControls In Me.ctlcol + If x.MySecurityObject = tbp.Parent.Name Then + Dim tb As TabControl = x.MyControl + tb.TabPages.Remove(tbp) + Exit Sub + End If + Next + End If + '20100406 - TabPageHandling + If read_only Then + 'obj.enabled = False + For Each CTLX As Control In obj.CONTROLS + Me.Objectanalysis_readonly(CTLX) + Next + End If + + Case "c1truedbgrid" + Dim ctl As C1TrueDBGrid = obj + If SecurityObjectItem = "" Then + If read_only Then ctl.Enabled = False + If invisible Then obj.Visible = False + Else + If read_only Then ctl.Splits(0).DisplayColumns(SecurityObjectItem).Locked = True + If invisible Then ctl.Splits(0).DisplayColumns(SecurityObjectItem).Visible = False + End If + + End Select + End Sub + + +#Region "Read Objects from Form and save to Database" + Dim tmpmenuname As String + ''' + ''' Alle Controls des Formulars zusammensuchen und auf der DB speichern + ''' + ''' Betroffenes Formular + ''' + ''' + + Public Function List_Form_Controls(ByRef f As Form) + Me.ctlcol.Clear() + formname = f.Name + For Each ctl As Control In f.Controls + Objectanalysis(ctl) + Next + Dim i As Integer + For i = 1 To ctlcol.Count + Dim secobj As MyFormControls = ctlcol(i) + secobj.Write_Object_to_DB() + Next + End Function + + ''' + ''' Smtliche Controls vom Formular auslesen + ''' + ''' + ''' + ''' + Private Function Objectanalysis(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "menustrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + tmpmenuname = ctl.name + ReadMenu(ctl) + Case "contextmenustrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + tmpmenuname = ctl.name + ReadContextMenu(ctl) + Case "toolstrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptoolstrop As ToolStrip = ctl + Try + Dim ic As Integer + For ic = 0 To tmptoolstrop.Items.Count - 1 + Try + Dim subobj As ToolStripButton + subobj = tmptoolstrop.Items(ic) + ctlcol.Add(New MyFormControls(subobj, formname, typ.Name, ctl.Name, subobj.Name, 1)) + Catch ex As Exception + + End Try + + Next + 'For Each subobj As ToolStripButton In tmptoolstrop.Items + 'ctlcol.Add(New MyFormControls(subobj, formname, typ.Name, ctl.Name, subobj.Name, 1)) + 'Next + Catch + End Try + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + + For Each ctl In tmptabpage.Controls + Objectanalysis(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis(ctl) + Next + Case "c1truedbgrid" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As C1TrueDBGrid = ctl + Dim i As Integer + For i = 0 To ctrl.Columns.Count - 1 + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, ctrl.Columns(i).Caption, 0, ctrl.Columns(i).Caption)) + Next + Try + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + Catch ex As Exception + + End Try + For Each xctl As Object In ctrl.Controls + Objectanalysis(xctl) + Next + Case "advtree" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As DevComponents.AdvTree.AdvTree = ctl + Try + + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + + Catch ex As Exception + + End Try + + Case "treeview" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As TreeView = ctl + Try + + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + + Catch ex As Exception + + End Try + + Case Else + If ctl.name = "TreeStruktur" Then + End If + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + End Select + End Function + + ''' + ''' Auslesen von MenuItems + ''' + ''' + ''' + ''' + ''' + Dim level As Integer = 0 + Private Function ReadMenu(ByRef x As Object) + Dim tmpmnu As MenuStrip = x + level = 0 + For Each xx As Object In tmpmnu.Items + Dim objtype As System.Type = xx.GetType + If LCase(objtype.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(xx, formname, "menustrip", tmpmenuname, xx.Name, level)) + get_all_menus(xx) + End If + Next + End Function + ''' + ''' Auslesen von ContextMenuItems + ''' + ''' + ''' + ''' + ''' + + Private Function ReadContextMenu(ByRef x As Object) + Dim tmpmnu As ContextMenuStrip = x + level = 0 + Try + For Each xx As Object In tmpmnu.Items + Dim objtype As System.Type = xx.GetType + If LCase(objtype.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(xx, formname, "menustrip", tmpmenuname, xx.Name, level)) + get_all_menus(xx) + End If + ' ctlcol.Add(New MyFormControls(xx, formname, "contextmenustrip", tmpmenuname, xx.Name, level)) + ' get_all_menus(xx) + Next + Catch ex As Exception + End Try + End Function + ''' + ''' Auslesen von Menu-Subitems + ''' + ''' + ''' + ''' + Private Function get_all_menus(ByRef xx As ToolStripMenuItem) + level = level + 1 + For Each subobj As Object In xx.DropDownItems + If LCase(subobj.GetType.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(subobj, formname, "menustrip", tmpmenuname, subobj.Name, level)) + get_all_menus(subobj) + End If + Next + level = level - 1 + End Function + + + + ''' + ''' Prft, ob das Security-Objekt bereits auf der DB vorhanden ist + ''' + ''' Formular + ''' Objekttyp + ''' Objektname + ''' Objektitem + ''' + ''' + Private Function Objexists(ByVal securityform As String, ByVal securityobjecttype As String, ByVal securityobject As String, ByVal securityobjectitem As String) As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_security_check_entry]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@form", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityform)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objecttype", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobjecttype)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@object", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objectitem", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobjectitem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objexists", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + If scmCmdToExecute.Parameters("@objexists").Value > 0 Then + Return True + Else + Return False + End If + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + +#End Region + +#Region "ScreenDoku" + + Public Function Print_Screen(ByRef ctl As Control) + saveasbitmap(ctl, ctl.Name) + End Function + Public Function Generate_HTML() + saveasbitmap(Me.IntForm, "testform") + 'Exit Function + 'Dim x As MyFormControls + 'For Each x In ctlcol + ' Try + ' saveasbitmap(x.MyControl, x.MyFormname & "_" & x.MySecurityObject & "_" & x.MySecurityObjectItem) + ' If x.MySecurityObjecttype = "ToolStrip" And x.MySecurityObjectItem = "" Then + ' Dim gaga As ToolStrip = x.MyControl + ' For Each c As ToolStripButton In gaga.Items + ' Dim xxx As Control = CType(c, Control) + + ' xxx = CType(c, Control) + ' saveasbitmap(xxx, "xxx") + ' Next + ' End If + ' Catch ex As Exception + ' MsgBox(ex.Message) + ' End Try + 'Next + End Function + + Public Function saveasbitmap(ByRef ctl As Control, ByVal filename As String) + Dim g As Graphics = ctl.CreateGraphics + Dim b As New Bitmap(ctl.Width, ctl.Height) + ctl.DrawToBitmap(b, New Rectangle(0, 0, ctl.Width, ctl.Height)) + 'b.Save("E:\Software-Projekte\Vertragsverwaltung\Screens\" & filename & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg) + End Function + + +#End Region + + + End Class + ''' + ''' Klasse fr ein Control-Objekt + ''' + ''' + Public Class MyFormControls + + Public MyControl As Object + Public MyFormname As String + Public MySecurityObjecttype As String + Public MySecurityObject As String + Public MySecurityObjectItem As String + Public MyDescription As String + Public MyLevel As Integer + + ''' + ''' Neue Instanz erstellen + ''' + ''' Control-Objekt + ''' Betroffenes Formular + ''' Objekttyp + ''' Objektname + ''' Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + ''' + Sub New(ByVal ctl As Object, ByVal Formname As String, ByVal securityobjecttype As String, ByVal Securityobject As String, ByVal SecurityObjectItem As String, Optional ByVal level As Integer = 0, Optional ByVal desc As String = "") + MyControl = ctl + MySecurityObjecttype = securityobjecttype + MyFormname = Formname + MySecurityObject = Securityobject + MySecurityObjectItem = SecurityObjectItem + If desc = "" Then + MyDescription = Get_Description(ctl) + Else + MyDescription = desc + End If + Try + MyDescription = MyDescription.Replace("&", "") + Catch ex As Exception + End Try + MyLevel = level + End Sub + + Private Function Get_Description(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "menustrip", "toolstripmenuitem", "toolstrip", "toolstripbutton", "contextmenustrip", "tabpage", "c1truedbgrid", "label" + Return ctl.Text + Case Else + Return ctl.Name + End Select + + End Function + + ''' + ''' Schreibt einen Datnsatz in die Tabelle SecurityObjects + ''' + ''' + ''' + Public Function Write_Object_to_DB() + If Objexists() Then Exit Function + Dim sectbl As New DB.clsSecurityObject + Dim dbkey As New DB.clsMyKey_Tabelle + dbkey.cpMainConnectionProvider = Globals.conn + Dim newkey As Integer = dbkey.get_dbkey("SecurityObject") + + sectbl.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + sectbl.iSecurityObjectNr = New SqlInt32(CType(newkey, Int32)) + sectbl.sSecurityForm = New SqlString(CType(MyFormname, String)) + sectbl.sSecurityObjectType = New SqlString(CType(Me.MySecurityObjecttype, String)) + sectbl.sSecurityObject = New SqlString(CType(Me.MySecurityObject, String)) + sectbl.sSecurityObjectItem = New SqlString(CType(Me.MySecurityObjectItem, String)) + sectbl.bAktiv = New SqlBoolean(CType(True, Boolean)) + sectbl.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + sectbl.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + sectbl.sSecurityObjectDescriotion = New SqlString(CType(Me.MyDescription, String)) + sectbl.iLevel = New SqlInt32(CType(Me.MyLevel, Int32)) + sectbl.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + sectbl.iMandantnr = New SqlInt32(CType(Globals.clsmitarbeiter.iMandantnr.Value, Int32)) + sectbl.Insert() + conn.CloseConnection(True) + sectbl.Dispose() + dbkey.Dispose() + End Function + + + ''' + '''Prft, ob das Security-Objekt bereits auf der DB vorhanden ist + ''' + ''' + ''' + Private Function Objexists() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_security_check_entry]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@form", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MyFormname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objecttype", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObjecttype)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@object", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objectitem", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objexists", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + If scmCmdToExecute.Parameters("@objexists").Value > 0 Then + Return True + Else + Return False + End If + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + + + End Class + + Public Class ControlsCollection + Private Shared m_controls As Collection + Public Sub New(ByVal myForm As Form) + m_controls = New Collection + 'create a control walker to get + 'all controls on the form + Dim aControlWalker As New ControlWalker(myForm) + End Sub + 'This property returns the collection of all controls + 'on the form + ReadOnly Property Controls() As Collection + Get + Return m_controls + End Get + End Property + + Public Function FindControl(ByVal ctlname As String) As Boolean + Dim i As Integer + For i = 1 To Me.m_controls.Count + Dim ctl As Control = m_controls(i) + If UCase(ctl.Name) = UCase(ctlname) Then MsgBox("found") + Next + End Function + Private Class ControlWalker + ' This class recursively walks through all controls + ' in a container, and all containers contained in + ' this container, visiting all controls throughout + ' the hierarchy + Private mContainer As Object + Public Sub New(ByVal Container As Object) + Dim cControl As Control + If Container.haschildren Then + For Each cControl In Container.controls + 'add this control to the controls collection + m_controls.Add(cControl) + If cControl.HasChildren Then + 'This control has children, create another + 'ControlWalk go visit each of them + Dim cWalker As New ControlWalker(cControl) + End If + Next cControl + End If + End Sub + End Class + End Class +End Namespace diff --git a/SW/Dokumente_sik/Klassen/MySpalten.vb b/SW/20211125/AssessmentMgmt/Klassen/MySpalten.vb similarity index 100% rename from SW/Dokumente_sik/Klassen/MySpalten.vb rename to SW/20211125/AssessmentMgmt/Klassen/MySpalten.vb diff --git a/SW/20211125/AssessmentMgmt/Klassen/clsHistory.vb b/SW/20211125/AssessmentMgmt/Klassen/clsHistory.vb new file mode 100644 index 0000000..68540be --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/clsHistory.vb @@ -0,0 +1,192 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Public Class clsHistory + Inherits DB.clsPruefSchrittHistory + + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property + + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("PruefschrittHistory") + db.Dispose() + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.daEintragdatum = New SqlDateTime(CType(Now, DateTime)) + Me.iPruefSchrittHistoryNr = New SqlInt32(CType(newkey, Int32)) + Me.cpMainConnectionProvider = Globals.conn + + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefSchrittHistoryNr.Value + End Function + + Public Function Insert_History(pruefschrittnr As Integer, type As Integer, String1 As String, String2 As String) + Dim i As Integer = Me.Add_New() + Me.iPruefschrittNr = New SqlInt32(CType(pruefschrittnr, Int32)) + Select Case type + Case 0 + 'String1 = individuelle Beschreibung für den HistoryEintrag + Me.sBeschreibung = New SqlString(CType(String1, String)) + Case 1 + 'String1 = Mitarbeiternr Absender + 'String2 = Mitarbeiternr Empfänger + Dim ma As New clsMitarbeiter + String1 = ma.Get_Mitarbeitername(String1) + String2 = ma.Get_Mitarbeitername(String2) + ma.dispose() + Me.sBeschreibung = New SqlString(CType("Assessment zugeteilt von " + String1 + " zu " + String2, String)) + Case 2 + Dim ma As New clsMitarbeiter + String1 = ma.Get_Mitarbeitername(String1) + Me.sBeschreibung = New SqlString(CType("Assessment abgeschlossen von " + String1, String)) + End Select + Me.Save_Data() + End Function + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Pruefschrittnr As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefschritthistory" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Pruefschrittnr)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschritthistory", ds.Tables(0)) + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function +End Class diff --git a/SW/20211125/AssessmentMgmt/Klassen/clsMitarbeiter.vb b/SW/20211125/AssessmentMgmt/Klassen/clsMitarbeiter.vb new file mode 100644 index 0000000..5a02c2d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/clsMitarbeiter.vb @@ -0,0 +1,150 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Public Class clsMitarbeiter + Inherits DB.clsMitarbeiter + + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + Public VerantwortlichISIdaten As New DataTable + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property + + Sub New() + Mitarbeiterdaten = stammdaten.Get_Stammdaten("mitarbeiter", "bezeichnung") + VerantwortlichISIdaten = stammdaten.Get_Stammdaten("verantwortungisi", "bezeichnung") + End Sub + + Sub dispose() + Mitarbeiterdaten.Dispose() + VerantwortlichISIdaten.Dispose() + End Sub + Public Function Get_Mitarbeitername(ByVal nr As Integer) As String + Return Get_Mutierer(nr) + End Function + + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iMitarbeiternr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Mitarbeiter") + db.Dispose() + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.sName = New SqlString(CType("", String)) + Me.sVorname = New SqlString(CType("", String)) + Me.sTgnummer = New SqlString(CType("", String)) + Me.sEmail = New SqlString(CType("", String)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iMitarbeiternr.Value + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Klassen/clsStammdaten.vb b/SW/20211125/AssessmentMgmt/Klassen/clsStammdaten.vb new file mode 100644 index 0000000..00ca24a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/clsStammdaten.vb @@ -0,0 +1,42 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + + Public Class clsStammdaten + Public Function Get_Stammdaten(ByVal Tabelle As String, ByVal orderby As String) As DataTable + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim ds As New DataSet + selectcommand.CommandText = "sp_get_stammdaten" + selectcommand.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) + selectcommand.Parameters.Add("@Tabelle", SqlDbType.VarChar, 255) + selectcommand.Parameters.Add("@Orderby", SqlDbType.VarChar, 255) + selectcommand.Parameters(0).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + selectcommand.Parameters(1).Value = Tabelle + selectcommand.Parameters(2).Value = orderby + + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(ds) + Return ds.Tables(0) + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + ds.Dispose() + selectcommand.Dispose() + End Try + End Function + + + End Class +End Namespace + diff --git a/SW/20211125/AssessmentMgmt/Klassen/clsToolTips.vb b/SW/20211125/AssessmentMgmt/Klassen/clsToolTips.vb new file mode 100644 index 0000000..348c2f6 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Klassen/clsToolTips.vb @@ -0,0 +1,159 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Namespace TKB.VV.Utils + + Public Class clsToolTips + Public WithEvents MyTooltip As New ToolTip + Dim ToolTipData As DataSet = Globals.ToolTipDaten + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim l As New List(Of Control) + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + + Public Function Edit_ToolTips(ByRef frm As Form, ByRef ctlcol As Collection) + Me.Load_Data() + l.Clear() + Me.GetControl(frm, "*", l) + For Each s As Control In l + Try + MyTooltip.SetToolTip(s, frm.Name + "|" + s.Name) + MyTooltip.Tag = frm.Name + Catch ex As Exception + MsgBox(ex.Message) + End Try + Next + 'For Each ctl As Control In ctlcol + ' Try + ' MyTooltip.SetToolTip(ctl, "SetToolTip") + ' MyTooltip.Tag = frm.Name + "|" + ctl.Name + ' Catch ex As Exception + ' End Try + 'Next + End Function + Private Sub MyTooltip_Popup(ByVal sender As Object, ByVal e As System.Windows.Forms.PopupEventArgs) Handles MyTooltip.Popup + 'MsgBox(e.AssociatedControl.Name) + evh.Edit_Tooltip(MyTooltip.Tag, e.AssociatedControl.Name) + 'Dim s As String = MyTooltip.Tag + 'Dim sp() As String + 'sp = s.Split("|") + 'evh.Edit_Tooltip(sp(0), sp(1)) + + End Sub + + Public Function Set_ToolTips(ByRef frm As Form) + Me.Load_Data() + 'MyTooltip.ToolTipIcon = ToolTipIcon.Info + MyTooltip.IsBalloon = True + MyTooltip.UseFading = True + MyTooltip.UseAnimation = True + Dim dv As New DataView(ToolTipData.Tables(0), "Aktiv = 1 and (Formularname='" & frm.Name & "' or Formularname='Allgemein')", "", DataViewRowState.CurrentRows) + For Each dr As DataRowView In dv + l.Clear() + Me.GetControl(frm, dr.Item("Controlname"), l) + Try + For Each ctl As Control In l + Try + MyTooltip.SetToolTip(ctl, dr.Item("ToolTip")) + Catch + End Try + Next + Catch ex As Exception + End Try + Next + End Function + + + ''' + ''' Daten ab Datenbank laden + ''' + ''' + Private Sub Load_Data() + Try + If ToolTipData.Tables.Count < 1 Then + ToolTipData.Tables.Clear() + Else + Exit Sub + End If + Catch ex As Exception + End Try + ToolTipData.Tables.Clear() + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "dbo.my_tooltip_get_data" + 'sqlcmd.Parameters(1).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ToolTipData, "Tooltips") + Globals.SecurityDaten.Tables.Add(ToolTipData.Tables(0).Copy) + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + +#Region "Utils" + ''' + ''' Sucht in den Base-Controls smtliche Controls mit dem Namen in "Key" (Wildcards * mglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.Designer.vb b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.Designer.vb new file mode 100644 index 0000000..5604caa --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.Designer.vb @@ -0,0 +1,235 @@ + +Partial Class MassnahmeDetailBearbeitung + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(MassnahmeDetailBearbeitung)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.GrpResultate = New System.Windows.Forms.GroupBox() + Me.GrpBeschreibung = New System.Windows.Forms.GroupBox() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.btnPruefungabgeschlossen = New System.Windows.Forms.Button() + Me.cbboxStatus = New System.Windows.Forms.ComboBox() + Me.GrpDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.GrpResultate.SuspendLayout() + Me.GrpBeschreibung.SuspendLayout() + Me.GrpStatus.SuspendLayout() + Me.GrpDokumente.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(724, 24) + Me.MenuStrip1.TabIndex = 9 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(724, 25) + Me.ToolStrip1.TabIndex = 10 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + ' + 'GrpResultate + ' + Me.GrpResultate.Controls.Add(Me.GrpBeschreibung) + Me.GrpResultate.Controls.Add(Me.GrpStatus) + Me.GrpResultate.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpResultate.Location = New System.Drawing.Point(0, 49) + Me.GrpResultate.Name = "GrpResultate" + Me.GrpResultate.Size = New System.Drawing.Size(374, 435) + Me.GrpResultate.TabIndex = 11 + Me.GrpResultate.TabStop = False + Me.GrpResultate.Text = "Resultat der Prüfung" + ' + 'GrpBeschreibung + ' + Me.GrpBeschreibung.Controls.Add(Me.txtBeschreibung) + Me.GrpBeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpBeschreibung.Location = New System.Drawing.Point(3, 61) + Me.GrpBeschreibung.Name = "GrpBeschreibung" + Me.GrpBeschreibung.Size = New System.Drawing.Size(368, 371) + Me.GrpBeschreibung.TabIndex = 1 + Me.GrpBeschreibung.TabStop = False + Me.GrpBeschreibung.Text = "Beschreibung" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtBeschreibung.Location = New System.Drawing.Point(3, 16) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(362, 352) + Me.txtBeschreibung.TabIndex = 3 + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.btnPruefungabgeschlossen) + Me.GrpStatus.Controls.Add(Me.cbboxStatus) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpStatus.Location = New System.Drawing.Point(3, 16) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Size = New System.Drawing.Size(368, 45) + Me.GrpStatus.TabIndex = 3 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Status" + ' + 'btnPruefungabgeschlossen + ' + Me.btnPruefungabgeschlossen.Location = New System.Drawing.Point(9, 14) + Me.btnPruefungabgeschlossen.Name = "btnPruefungabgeschlossen" + Me.btnPruefungabgeschlossen.Size = New System.Drawing.Size(157, 23) + Me.btnPruefungabgeschlossen.TabIndex = 1 + Me.btnPruefungabgeschlossen.Text = "Prüfung abgeschlossen" + Me.btnPruefungabgeschlossen.UseVisualStyleBackColor = True + ' + 'cbboxStatus + ' + Me.cbboxStatus.FormattingEnabled = True + Me.cbboxStatus.Location = New System.Drawing.Point(10, 16) + Me.cbboxStatus.Name = "cbboxStatus" + Me.cbboxStatus.Size = New System.Drawing.Size(94, 21) + Me.cbboxStatus.TabIndex = 0 + Me.cbboxStatus.Visible = False + ' + 'GrpDokumente + ' + Me.GrpDokumente.Controls.Add(Me.DokumenteAllgemein) + Me.GrpDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumente.Location = New System.Drawing.Point(374, 49) + Me.GrpDokumente.Name = "GrpDokumente" + Me.GrpDokumente.Size = New System.Drawing.Size(350, 435) + Me.GrpDokumente.TabIndex = 12 + Me.GrpDokumente.TabStop = False + Me.GrpDokumente.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(344, 416) + Me.DokumenteAllgemein.TabIndex = 33 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'MassnahmeDetailBearbeitung + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(724, 484) + Me.Controls.Add(Me.GrpDokumente) + Me.Controls.Add(Me.GrpResultate) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "MassnahmeDetailBearbeitung" + Me.Text = "MassnahmeDetailBearbeitung" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.GrpResultate.ResumeLayout(False) + Me.GrpBeschreibung.ResumeLayout(False) + Me.GrpBeschreibung.PerformLayout() + Me.GrpStatus.ResumeLayout(False) + Me.GrpDokumente.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents GrpResultate As GroupBox + Friend WithEvents GrpBeschreibung As GroupBox + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents btnPruefungabgeschlossen As Button + Friend WithEvents cbboxStatus As ComboBox + Friend WithEvents GrpDokumente As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.resx b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.resx new file mode 100644 index 0000000..d1fee4b --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.resx @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 124, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKQSURBVDhPrY/JTxNRAIdf0kQPJoZ4MOFEUNwoWLbSllUg + KAFKy6JSFFDABUwQLxz4B0iaECImGA9owo14aCXFUFot2MJAC5zdN+hCaaEFSUQoP997DFSJRyf5kpnM + 7/veDPkvl06n22hpaoZlfAoL3hUs+lbhXlqFxx+CdzkMXyAMfyCE5WAI43YBba1teHC/Y0PUCWmob0Aj + xTE9hwX/2l8sLq/DHViHJ7gO38oPTLvmwQ67e/sORJ2Qm403wBCc89iO7Bwggq3tCH5tbePn5hY9ZJZv + bzW3RAP1166D8UZw4dtSaBdfCF8pX+jvfPau4pNnBR/dQdgcM3zLIqJOSF2tDgzLhAAv/dQ9PIE1+vns + N8L47g/z4Khtkm9ZRNQJuVJzGYwRqx1zH7yYp8y9Z3gwS3G9o7x1Y4bywjzBt3VXa6OB6soqMB49eQbD + 6ASGLQ6YXk1h5LUAE2XYOgmj2Y7nL214+Pgp37KIqBOiVVfgn1Roohx4V62tjAbUpWX4E025GlUaLR/V + 0NMY7JmJ6rLy/Y2oE1JSfBGM0kslsNlscLlcHKfTyWH3giAgS6GEQi7f34o6IYV5+WAUFxbBarUiPzcP + ykwFHA4H7HY7j46NjSE/JxfZqiwU0G3RhYJoIFupAiMvKxsWOkxPSUWyVAqz2QyTyQSDwYChoSGoaFSR + IUcOi9BDRJ2QjNS0TXlqGh8YjUacPpmAE/HxXBocHMTAwAD6+/shS0qGTJqEzLR0KGlI1AmJORpzL/lc + YiRdlsLHe1JfXx96enqg1+vR3d2NMzR8NuEUzidKWWiHqkd2C4Qck0gkpXFxcVVdXV1NVGjt7e1tp3TQ + QDt77uzsbIw9Hqs9JJFoGHRfQAg5/BslsRWFgJrRJAAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.vb b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.vb new file mode 100644 index 0000000..5a9b85e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/MassnahmeDetailBearbeitung.vb @@ -0,0 +1,280 @@ +Public Class MassnahmeDetailBearbeitung + + +#Region "Deklarationen" + + + Dim OnRefresh_Findings As Boolean = False + + Dim m_MassnahmeNr As Integer + Property Massnahmenr As Integer + Get + Return m_MassnahmeNr + End Get + Set(value As Integer) + m_MassnahmeNr = value + + End Set + End Property + + Dim m_handler As Integer + Property Handler As Integer + Get + Return m_handler + End Get + Set(value As Integer) + m_handler = value + End Set + End Property + + Dim m_readonly As Boolean + Property IsReadonly As Boolean + Get + Return m_readonly + End Get + Set(value As Boolean) + m_readonly = value + End Set + End Property + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim status As New clsStatus + + Dim massnahme As New clsMassnahme + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If Me.FormReadonly = True Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + save_data() + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function +#End Region + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + If TypeOf c Is DateTimePicker Then + Dim ctl As DateTimePicker = c + AddHandler ctl.ValueChanged, evh + End If + + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + If UCase(sender.name) = "TXTFINDINGBEZEICHNUNG" Or UCase(sender.NAME) = "TXTFINDINGBESCHREIBUNG" Then Exit Sub + If UCase(sender.name) = "TXTMASSNAHMEBEZEICHNUNG" Or UCase(sender.NAME) = "TXTMASSNAHMEBESCHREIBUNG" Then Exit Sub + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + Private Sub generalhandler() + Me.FormDataChanged = True + End Sub + + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function + + Private Sub MassnahmeDetailBearbeitung_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.massnahme.Get_Data(Me.Massnahmenr) + If massnahme.iAktueller_Verantwortlicher.Value <> Globals.clsmitarbeiter.iMitarbeiternr.Value Then Me.IsReadonly = True + Refresh_Details() + status.Get_Mögliche_Status(massnahme.iStatusNr, cbboxStatus) + AddChanges(Me) + If Me.IsReadonly = True Then + sec.Set_Form_Readonly(Me) + Me.DokumenteAllgemein.Show_Toolbar = False + End If + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 8 + Me.DokumenteAllgemein.ThemaNr = Me.Massnahmenr + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Me.DokumenteAllgemein.Refresh() + + End Sub + + Private Sub Refresh_Details() + Me.txtBeschreibung.Text = Me.massnahme.sMassnahmeResultat.Value + Me.DokumenteAllgemein.Refresh_Dokumente() + End Sub + + Private Sub TSBtnSave_Click(sender As Object, e As EventArgs) Handles TSBtnSave.Click + save_data + End Sub + + Private Sub Save_Data() + Me.massnahme.sMassnahmeResultat = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + Me.massnahme.Save_Data() + massnahme.Get_Data(Me.Massnahmenr) + If massnahme.iStatusNr.Value <> 2 Then + massnahme.iStatusNr = New SqlTypes.SqlInt32(CType(2, Int32)) + massnahme.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + massnahme.Save_Data() + End If + Me.FormDataChanged = False + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub btnPruefungabgeschlossen_Click(sender As Object, e As EventArgs) Handles btnPruefungabgeschlossen.Click + If MsgBox("Haben Sie die Prüfung abgeschlossen und das Resultat festgehlaten?", vbYesNo + vbQuestion) = vbYes Then + massnahme.Get_Data(Me.Massnahmenr) + massnahme.iStatusNr = New SqlTypes.SqlInt32(CType(8, Int32)) + massnahme.Save_Data() + + If massnahme.iVerantwortlichNr.Value = massnahme.iAktueller_Verantwortlicher.Value Then + massnahme.iStatusNr = New SqlTypes.SqlInt32(CType(3, Int32)) + Else + massnahme.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(massnahme.iVerantwortlichNr.Value, Int32)) + massnahme.iStatusNr = New SqlTypes.SqlInt32(CType(3, Int32)) + End If + massnahme.Save_Data() + Me.Close() + End If + End Sub +#End Region + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahme.vb b/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahme.vb new file mode 100644 index 0000000..0e94e33 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahme.vb @@ -0,0 +1,204 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class clsMassnahme + Inherits DB.clsMassnahme + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Public Status As DataTable + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + Status = stammdaten.Get_Stammdaten("pruefschrittstatus", "") + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Me.Status.Dispose() + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iMassnahmeNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Massnahme") + db.Dispose() + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iMassnahmeNr.Value + End Function + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Mitarbeiternr As Integer, ByRef tree As DevComponents.AdvTree.AdvTree) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_massnahmen" + sqlcmd.Parameters.Add(New SqlParameter("@manr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Mitarbeiternr)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Dim status As New clsStatus + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Massnahme", ds.Tables(0)) + + Dim intarray(Me.Status.Rows.Count) As Integer + For i As Integer = 1 To Me.Status.Rows.Count + intarray(i) = 0 + Next + For Each r As DataRow In ds.Tables(0).Rows + intarray(r.Item("StatusNr")) = intarray(r.Item("StatusNr")) + 1 + Next + + For Each n As DevComponents.AdvTree.Node In tree.Nodes + n.Text = n.Text + " (" + intarray(n.Tag).ToString + ")" + + Next + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + + +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahmeplan.vb b/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahmeplan.vb new file mode 100644 index 0000000..76ce468 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/clsMassnahmeplan.vb @@ -0,0 +1,466 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Imports DropDownControls + +Public Class clsMassnahmeplan + Inherits DB.clsMassnahmeplan + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Public Zeitpunkt As New DataTable + Public Periodizitaet As New DataTable + Public Prioritaet As New DataTable + Public VerantwortungISI As New DataTable + Public Verantwortung As New DataTable + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim Definition_Massnahmeplan As New DataTable + Dim clsDefinition_Massnahmeplan As New DB.clsDefinition_massnahmeplan + Public Terminierung As New DataTable + + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + Sub New() + MyBase.New() + Zeitpunkt = stammdaten.Get_Stammdaten("Zeitpunkt", "Beschreibung") + Periodizitaet = stammdaten.Get_Stammdaten("Periodizitaet", "Bezeichnung") + Prioritaet = stammdaten.Get_Stammdaten("Prioritaet", "Bezeichnung") + VerantwortungISI = stammdaten.Get_Stammdaten("VerantwortungIsi", "Bezeichnung") + Verantwortung = stammdaten.Get_Stammdaten("Verantwortung", "Bezeichnung") + Terminierung = stammdaten.Get_Stammdaten("Terminierung", "Bezeichnung") + End Sub + + + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.Zeitpunkt.Dispose() + Me.Periodizitaet.Dispose() + Me.Prioritaet.Dispose() + Me.VerantwortungISI.Dispose() + Me.Verantwortung.Dispose() + Me.stammdaten = Nothing + Me.Definition_Massnahmeplan.Dispose() + + + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iMassnahmeplanNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Massnahmeplan") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iMassnahmeplanNr = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("massnahmeplan") + db.Dispose() + Me.iMassnahmeplanNr = New SqlInt32(CType(newkey, Int32)) + Me.daGueltig_Bis = New SqlDateTime(CType("31.12.2099", DateTime)) + Me.iPrioritaetNr = New SqlInt32(CType(0, Int32)) + Me.iPeriodizitaetNr = New SqlInt32(CType(0, Int32)) + Me.iZeitpunktNr = New SqlInt32(CType(0, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.sPruefgegenstand = New SqlString(CType("", String)) + Me.sHilfsmittel = New SqlString(CType("", String)) + Me.sMassnahmen = New SqlString(CType("", String)) + Me.iVerantwortungISINr = New SqlInt32(CType(0, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daErstmals_am = New SqlDateTime(CType(DateAdd(DateInterval.Day, 1, Now), DateTime)) + Me.iTerminierungID = New SqlInt32(CType(0, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iMassnahmeplanNr.Value + End Function + + Public Function Get_massnahmeplan(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_massnahmenplan" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "massnahmeplan", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Function + + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer, Optional Searchstring As String = "") + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_massnahmeplan" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.Parameters.Add(New SqlParameter("@Searchstring", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Searchstring)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "massnahmeplan", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Public Function Get_Definition_Massnahmeplan(ByVal Key As Integer, ByRef cb As CheckedListBox) + Me.Definition_Massnahmeplan.Rows.Clear() + Try + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_definition_Massnahmeplan" + sqlcmd.Parameters.Add(New SqlParameter("@massnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Me.Definition_Massnahmeplan) + + For Each r As DataRow In Definition_Massnahmeplan.Rows + cb.Items.Add(r.Item("Bezeichnung"), True) + Next + 'cb.DataSource = Definition_massnahmeplan + 'cb.ValueMember = "Definition_massnahmeplanNr" + 'cb.DisplayMember = "Bezeichnung" + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Public Function Add_new_Zuordnung(ByVal massnahmeplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef chkcb As CheckedListBox) + For Each r As DataRow In Me.Definition_Massnahmeplan.Rows + If r.Item(1) = DefinitionNr Then + MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation) + Exit Function + End If + Next + Dim dr As DataRow = Me.Definition_Massnahmeplan.NewRow + dr.Item(1) = DefinitionNr + dr.Item(2) = massnahmeplannr + dr.Item(3) = "31.12.2099" + dr.Item(4) = True + dr.Item(5) = Now + dr.Item(6) = Now + dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value + dr.Item(8) = nodetext + Me.Definition_Massnahmeplan.Rows.Add(dr) + chkcb.Items.Add(nodetext + " | " + dr.Item(3).ToString, True) + + End Function + + Public Function Get_Definition_massnahmeplan(ByVal Key As Integer, ByRef tree As AdvTree.AdvTree) + Me.Definition_Massnahmeplan.Rows.Clear() + Try + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_definition_massnahmeplan" + sqlcmd.Parameters.Add(New SqlParameter("@massnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Me.Definition_Massnahmeplan) + Set_Zuordnungnodes(Definition_Massnahmeplan, tree) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + Public Function Add_new_Zuordnung(ByVal Massnahmeplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef tree As AdvTree.AdvTree) + For Each r As DataRow In Me.Definition_Massnahmeplan.Rows + If r.Item(1) = DefinitionNr And (r(4) = True Or r(3) < Now) Then + MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation) + Exit Function + End If + Next + Dim dr As DataRow = Me.Definition_Massnahmeplan.NewRow + dr.Item(0) = Format(Now, "ddhhmmss") + dr.Item(1) = DefinitionNr + dr.Item(2) = Massnahmeplannr + dr.Item(3) = "31.12.2099" + dr.Item(4) = True + dr.Item(5) = Now + dr.Item(6) = Now + dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value + dr.Item(8) = nodetext + Me.Definition_Massnahmeplan.Rows.Add(dr) + + Set_Zuordnungnodes(Definition_Massnahmeplan, tree) + End Function + + Sub Set_Zuordnungnodes(data As DataTable, ByRef tree As AdvTree.AdvTree) + tree.Nodes.Clear() + For Each r As DataRow In data.Rows + Dim tn As New AdvTree.Node + tn.Tag = r(0) + tn.Text = r(8) + tree.Nodes.Add(tn) + Dim tn1 As New AdvTree.Node + tn1.Text = r(3) + tn1.Tag = r(4) + tn.Nodes.Add(tn1) + tn.ImageIndex = 0 + If r(3) < "31.12.2099" And r(3) > Now Then tn.ImageIndex = 3 + If r(3) < Now Then tn.ImageIndex = 2 + If r(4) = False Then tn.ImageIndex = 1 + + Next + + End Sub + + Public Sub Update_Zuordnung(ByVal ID As Integer, Aktiv As Boolean, gueltig As DateTime) + For Each r As DataRow In Me.Definition_Massnahmeplan.Rows + If r.Item(0) = ID Then + r(4) = Aktiv + r(3) = gueltig + End If + Next + End Sub + + Public Function Save_Definition_massnahmeplan(ByRef tree As AdvTree.AdvTree) + + clsDefinition_Massnahmeplan.sConnectionString = Globals.sConnectionString + For Each n As AdvTree.Node In tree.Nodes + For Each r As DataRow In Definition_Massnahmeplan.Rows + If r(0) = n.Tag Then + If r(0) > 100000 Then + clsDefinition_Massnahmeplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32)) + clsDefinition_Massnahmeplan.imassnahmeplanNr = New SqlInt32(CType(r(2), Int32)) + clsDefinition_Massnahmeplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime)) + clsDefinition_Massnahmeplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Massnahmeplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Massnahmeplan.bAktiv = New SqlBoolean(CType(True, Boolean)) + clsDefinition_Massnahmeplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + conn.OpenConnection() + clsDefinition_Massnahmeplan.Insert() + conn.CloseConnection(True) + Else + clsDefinition_Massnahmeplan.iDefinition_massnahmeplanNr = New SqlInt32(CType(r(0), Int32)) + clsDefinition_Massnahmeplan.cpMainConnectionProvider = Globals.conn + clsDefinition_Massnahmeplan.SelectOne() + Dim tn1 As New AdvTree.Node + tn1 = n.Nodes(0) + If tn1.Tag <> clsDefinition_Massnahmeplan.bAktiv.Value Or tn1.Text <> clsDefinition_Massnahmeplan.daGueltig_Bis.Value Then + clsDefinition_Massnahmeplan.iDefinition_massnahmeplanNr = New SqlInt32(CType(r(0), Int32)) + clsDefinition_Massnahmeplan.cpMainConnectionProvider = Globals.conn + clsDefinition_Massnahmeplan.SelectOne() + clsDefinition_Massnahmeplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32)) + clsDefinition_Massnahmeplan.imassnahmeplanNr = New SqlInt32(CType(r(2), Int32)) + clsDefinition_Massnahmeplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime)) + clsDefinition_Massnahmeplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Massnahmeplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Massnahmeplan.bAktiv = New SqlBoolean(CType(tn1.Tag, Boolean)) + clsDefinition_Massnahmeplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + conn.OpenConnection() + clsDefinition_Massnahmeplan.Update() + conn.CloseConnection(True) + End If + + + End If + End If + + Next + Next + + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.Designer.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.Designer.vb new file mode 100644 index 0000000..12515af --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.Designer.vb @@ -0,0 +1,995 @@ + _ +Partial Class frmMassnahmeplanDetail + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMassnahmeplanDetail)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.grpPruefgegenstand = New System.Windows.Forms.GroupBox() + Me.GrpStruktur = New System.Windows.Forms.GroupBox() + Me.TreeStruktur = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStripTree = New System.Windows.Forms.ToolStrip() + Me.tslabelFilter = New System.Windows.Forms.ToolStripLabel() + Me.tsCbxFilter = New System.Windows.Forms.ToolStripComboBox() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.lblSuche = New System.Windows.Forms.ToolStripLabel() + Me.tstxtSuche = New System.Windows.Forms.ToolStripTextBox() + Me.TSBtnSuche = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFirst = New System.Windows.Forms.ToolStripButton() + Me.TSBtnPrevious = New System.Windows.Forms.ToolStripButton() + Me.TSBtnNext = New System.Windows.Forms.ToolStripButton() + Me.TSBtnLast = New System.Windows.Forms.ToolStripButton() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.cbAktiv = New System.Windows.Forms.CheckBox() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.GrpLeft = New System.Windows.Forms.GroupBox() + Me.GrpPlanung = New System.Windows.Forms.GroupBox() + Me.cbboxTerminierung = New System.Windows.Forms.ComboBox() + Me.lblTerminierung = New System.Windows.Forms.Label() + Me.dtGueltigBis = New System.Windows.Forms.DateTimePicker() + Me.lblGueltigBis = New System.Windows.Forms.Label() + Me.dtErstmalsam = New System.Windows.Forms.DateTimePicker() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbboxZeitpunkt = New System.Windows.Forms.ComboBox() + Me.lblPrioritaet = New System.Windows.Forms.Label() + Me.lblZeitpunkt = New System.Windows.Forms.Label() + Me.cbboxPrioritaet = New System.Windows.Forms.ComboBox() + Me.lblPeriodizitaet = New System.Windows.Forms.Label() + Me.cbboxPeriodizitaet = New System.Windows.Forms.ComboBox() + Me.GrpVerantwortung = New System.Windows.Forms.GroupBox() + Me.cbboxVerantwortungISI = New System.Windows.Forms.ComboBox() + Me.cbboxVerantwortlich = New System.Windows.Forms.ComboBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.GrpDefinitionZuordnung = New System.Windows.Forms.GroupBox() + Me.TreeZuordnung = New DevComponents.AdvTree.AdvTree() + Me.ctxMenuZurodnung = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.EintragBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuerEintragHinzufügenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Node2 = New DevComponents.AdvTree.Node() + Me.NodeConnector2 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle2 = New DevComponents.DotNetBar.ElementStyle() + Me.btnNeueZuordnung = New System.Windows.Forms.Button() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + Me.grpPruefgegenstand.SuspendLayout() + Me.GrpStruktur.SuspendLayout() + CType(Me.TreeStruktur, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStripTree.SuspendLayout() + Me.GrpLeft.SuspendLayout() + Me.GrpPlanung.SuspendLayout() + Me.GrpVerantwortung.SuspendLayout() + Me.GrpDefinitionZuordnung.SuspendLayout() + CType(Me.TreeZuordnung, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuZurodnung.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(958, 25) + Me.ToolStrip1.TabIndex = 10 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(958, 24) + Me.MenuStrip1.TabIndex = 9 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'grpPruefgegenstand + ' + Me.grpPruefgegenstand.Controls.Add(Me.GrpStruktur) + Me.grpPruefgegenstand.Controls.Add(Me.txtHilfsmittel) + Me.grpPruefgegenstand.Controls.Add(Me.lblHilfsmittel) + Me.grpPruefgegenstand.Controls.Add(Me.txtBezeichnung) + Me.grpPruefgegenstand.Controls.Add(Me.lblBezeichnung) + Me.grpPruefgegenstand.Controls.Add(Me.lblKontrollaktivität) + Me.grpPruefgegenstand.Controls.Add(Me.txtBeschreibung) + Me.grpPruefgegenstand.Controls.Add(Me.lblBeschreibung) + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse2) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen2) + Me.grpPruefgegenstand.Controls.Add(Me.txtEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.txtMassnahmen) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen1) + Me.grpPruefgegenstand.Controls.Add(Me.txtPruefgegenstand) + Me.grpPruefgegenstand.Controls.Add(Me.lblPruefgegenstand) + Me.grpPruefgegenstand.Dock = System.Windows.Forms.DockStyle.Left + Me.grpPruefgegenstand.Location = New System.Drawing.Point(239, 49) + Me.grpPruefgegenstand.Name = "grpPruefgegenstand" + Me.grpPruefgegenstand.Size = New System.Drawing.Size(543, 573) + Me.grpPruefgegenstand.TabIndex = 0 + Me.grpPruefgegenstand.TabStop = False + Me.grpPruefgegenstand.Text = "Prüfgegenstand" + ' + 'GrpStruktur + ' + Me.GrpStruktur.Controls.Add(Me.TreeStruktur) + Me.GrpStruktur.Controls.Add(Me.ToolStripTree) + Me.GrpStruktur.Location = New System.Drawing.Point(327, 33) + Me.GrpStruktur.Name = "GrpStruktur" + Me.GrpStruktur.Size = New System.Drawing.Size(225, 208) + Me.GrpStruktur.TabIndex = 52 + Me.GrpStruktur.TabStop = False + Me.GrpStruktur.Text = "Struktur" + Me.GrpStruktur.Visible = False + ' + 'TreeStruktur + ' + Me.TreeStruktur.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeStruktur.AllowDrop = True + Me.TreeStruktur.AllowExternalDrop = False + Me.TreeStruktur.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeStruktur.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeStruktur.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeStruktur.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeStruktur.DragDropNodeCopyEnabled = False + Me.TreeStruktur.ImageList = Me.ImageList1 + Me.TreeStruktur.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeStruktur.Location = New System.Drawing.Point(3, 55) + Me.TreeStruktur.Name = "TreeStruktur" + Me.TreeStruktur.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeStruktur.NodesConnector = Me.NodeConnector1 + Me.TreeStruktur.NodeStyle = Me.ElementStyle1 + Me.TreeStruktur.PathSeparator = ";" + Me.TreeStruktur.Size = New System.Drawing.Size(219, 150) + Me.TreeStruktur.Styles.Add(Me.ElementStyle1) + Me.TreeStruktur.TabIndex = 3 + Me.TreeStruktur.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "No Title #6.png") + Me.ImageList1.Images.SetKeyName(1, "Abort.png") + Me.ImageList1.Images.SetKeyName(2, "Stop.png") + Me.ImageList1.Images.SetKeyName(3, "Restore.png") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStripTree + ' + Me.ToolStripTree.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ToolStripTree.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslabelFilter, Me.tsCbxFilter, Me.ToolStripSeparator1, Me.lblSuche, Me.tstxtSuche, Me.TSBtnSuche, Me.TSBtnFilterAufheben, Me.TSBtnFirst, Me.TSBtnPrevious, Me.TSBtnNext, Me.TSBtnLast}) + Me.ToolStripTree.Location = New System.Drawing.Point(3, 16) + Me.ToolStripTree.Name = "ToolStripTree" + Me.ToolStripTree.Size = New System.Drawing.Size(219, 39) + Me.ToolStripTree.TabIndex = 2 + Me.ToolStripTree.Text = "ToolStrip2" + ' + 'tslabelFilter + ' + Me.tslabelFilter.Name = "tslabelFilter" + Me.tslabelFilter.Size = New System.Drawing.Size(33, 36) + Me.tslabelFilter.Text = "Filter" + ' + 'tsCbxFilter + ' + Me.tsCbxFilter.Name = "tsCbxFilter" + Me.tsCbxFilter.Size = New System.Drawing.Size(75, 39) + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 39) + ' + 'lblSuche + ' + Me.lblSuche.Name = "lblSuche" + Me.lblSuche.Size = New System.Drawing.Size(46, 36) + Me.lblSuche.Text = "Suchen" + ' + 'tstxtSuche + ' + Me.tstxtSuche.Name = "tstxtSuche" + Me.tstxtSuche.Size = New System.Drawing.Size(52, 23) + ' + 'TSBtnSuche + ' + Me.TSBtnSuche.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSuche.Image = CType(resources.GetObject("TSBtnSuche.Image"), System.Drawing.Image) + Me.TSBtnSuche.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSuche.Name = "TSBtnSuche" + Me.TSBtnSuche.Size = New System.Drawing.Size(36, 36) + Me.TSBtnSuche.Text = "Suchen" + ' + 'TSBtnFilterAufheben + ' + Me.TSBtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFilterAufheben.Image = CType(resources.GetObject("TSBtnFilterAufheben.Image"), System.Drawing.Image) + Me.TSBtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFilterAufheben.Name = "TSBtnFilterAufheben" + Me.TSBtnFilterAufheben.Size = New System.Drawing.Size(36, 36) + Me.TSBtnFilterAufheben.Text = "Filter aufheben" + ' + 'TSBtnFirst + ' + Me.TSBtnFirst.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFirst.Image = CType(resources.GetObject("TSBtnFirst.Image"), System.Drawing.Image) + Me.TSBtnFirst.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFirst.Name = "TSBtnFirst" + Me.TSBtnFirst.Size = New System.Drawing.Size(36, 36) + Me.TSBtnFirst.Text = "Erster Datensatz" + ' + 'TSBtnPrevious + ' + Me.TSBtnPrevious.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnPrevious.Image = CType(resources.GetObject("TSBtnPrevious.Image"), System.Drawing.Image) + Me.TSBtnPrevious.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnPrevious.Name = "TSBtnPrevious" + Me.TSBtnPrevious.Size = New System.Drawing.Size(36, 36) + Me.TSBtnPrevious.Text = "Vorheriger Datensatz" + ' + 'TSBtnNext + ' + Me.TSBtnNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnNext.Image = CType(resources.GetObject("TSBtnNext.Image"), System.Drawing.Image) + Me.TSBtnNext.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnNext.Name = "TSBtnNext" + Me.TSBtnNext.Size = New System.Drawing.Size(36, 36) + Me.TSBtnNext.Text = "Nächster Datensatz" + ' + 'TSBtnLast + ' + Me.TSBtnLast.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnLast.Image = CType(resources.GetObject("TSBtnLast.Image"), System.Drawing.Image) + Me.TSBtnLast.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnLast.Name = "TSBtnLast" + Me.TSBtnLast.Size = New System.Drawing.Size(36, 36) + Me.TSBtnLast.Text = "Letzter Datensatz" + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.Location = New System.Drawing.Point(104, 263) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 96) + Me.txtHilfsmittel.TabIndex = 55 + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(15, 265) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 54 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.Location = New System.Drawing.Point(104, 30) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 0 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(16, 33) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 53 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(16, 75) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 51 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(104, 62) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 96) + Me.txtBeschreibung.TabIndex = 1 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(16, 62) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 49 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(14, 468) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(74, 13) + Me.lblEreignisse2.TabIndex = 34 + Me.lblEreignisse2.Text = "Info / Rapport" + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(15, 379) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 33 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'txtEreignisse + ' + Me.txtEreignisse.Location = New System.Drawing.Point(104, 465) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.Size = New System.Drawing.Size(427, 96) + Me.txtEreignisse.TabIndex = 4 + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(15, 392) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 31 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.Location = New System.Drawing.Point(104, 363) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 96) + Me.txtMassnahmen.TabIndex = 3 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(14, 366) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 29 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.Location = New System.Drawing.Point(104, 164) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 96) + Me.txtPruefgegenstand.TabIndex = 2 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(16, 164) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 27 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'cbAktiv + ' + Me.cbAktiv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbAktiv.AutoSize = True + Me.cbAktiv.Location = New System.Drawing.Point(65, 91) + Me.cbAktiv.Name = "cbAktiv" + Me.cbAktiv.Size = New System.Drawing.Size(15, 14) + Me.cbAktiv.TabIndex = 46 + Me.cbAktiv.UseVisualStyleBackColor = True + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(7, 91) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 45 + Me.lblAktiv.Text = "Aktiv" + ' + 'txtMutierer + ' + Me.txtMutierer.Location = New System.Drawing.Point(68, 63) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 44 + ' + 'txtMutiertam + ' + Me.txtMutiertam.Location = New System.Drawing.Point(68, 38) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 43 + ' + 'txtErstelltam + ' + Me.txtErstelltam.Location = New System.Drawing.Point(68, 12) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 42 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(7, 66) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 41 + Me.lblMutierer.Text = "Mutierer" + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(7, 15) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 39 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(7, 41) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 40 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'GrpLeft + ' + Me.GrpLeft.Controls.Add(Me.GrpPlanung) + Me.GrpLeft.Controls.Add(Me.GrpVerantwortung) + Me.GrpLeft.Controls.Add(Me.GrpDefinitionZuordnung) + Me.GrpLeft.Controls.Add(Me.Panel1) + Me.GrpLeft.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpLeft.Location = New System.Drawing.Point(0, 49) + Me.GrpLeft.Name = "GrpLeft" + Me.GrpLeft.Size = New System.Drawing.Size(239, 573) + Me.GrpLeft.TabIndex = 11 + Me.GrpLeft.TabStop = False + ' + 'GrpPlanung + ' + Me.GrpPlanung.Controls.Add(Me.cbboxTerminierung) + Me.GrpPlanung.Controls.Add(Me.lblTerminierung) + Me.GrpPlanung.Controls.Add(Me.dtGueltigBis) + Me.GrpPlanung.Controls.Add(Me.lblGueltigBis) + Me.GrpPlanung.Controls.Add(Me.dtErstmalsam) + Me.GrpPlanung.Controls.Add(Me.Label2) + Me.GrpPlanung.Controls.Add(Me.cbboxZeitpunkt) + Me.GrpPlanung.Controls.Add(Me.lblPrioritaet) + Me.GrpPlanung.Controls.Add(Me.lblZeitpunkt) + Me.GrpPlanung.Controls.Add(Me.cbboxPrioritaet) + Me.GrpPlanung.Controls.Add(Me.lblPeriodizitaet) + Me.GrpPlanung.Controls.Add(Me.cbboxPeriodizitaet) + Me.GrpPlanung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpPlanung.Location = New System.Drawing.Point(3, 253) + Me.GrpPlanung.Name = "GrpPlanung" + Me.GrpPlanung.Size = New System.Drawing.Size(233, 196) + Me.GrpPlanung.TabIndex = 2 + Me.GrpPlanung.TabStop = False + Me.GrpPlanung.Text = "Planung" + ' + 'cbboxTerminierung + ' + Me.cbboxTerminierung.FormattingEnabled = True + Me.cbboxTerminierung.Location = New System.Drawing.Point(68, 134) + Me.cbboxTerminierung.Name = "cbboxTerminierung" + Me.cbboxTerminierung.Size = New System.Drawing.Size(108, 21) + Me.cbboxTerminierung.TabIndex = 4 + ' + 'lblTerminierung + ' + Me.lblTerminierung.AutoSize = True + Me.lblTerminierung.Location = New System.Drawing.Point(6, 137) + Me.lblTerminierung.Name = "lblTerminierung" + Me.lblTerminierung.Size = New System.Drawing.Size(39, 13) + Me.lblTerminierung.TabIndex = 37 + Me.lblTerminierung.Text = "Termin" + ' + 'dtGueltigBis + ' + Me.dtGueltigBis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtGueltigBis.Location = New System.Drawing.Point(68, 160) + Me.dtGueltigBis.Name = "dtGueltigBis" + Me.dtGueltigBis.Size = New System.Drawing.Size(108, 20) + Me.dtGueltigBis.TabIndex = 5 + ' + 'lblGueltigBis + ' + Me.lblGueltigBis.AutoSize = True + Me.lblGueltigBis.Location = New System.Drawing.Point(6, 161) + Me.lblGueltigBis.Name = "lblGueltigBis" + Me.lblGueltigBis.Size = New System.Drawing.Size(50, 13) + Me.lblGueltigBis.TabIndex = 35 + Me.lblGueltigBis.Text = "Gültig bis" + ' + 'dtErstmalsam + ' + Me.dtErstmalsam.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtErstmalsam.Location = New System.Drawing.Point(69, 108) + Me.dtErstmalsam.Name = "dtErstmalsam" + Me.dtErstmalsam.Size = New System.Drawing.Size(108, 20) + Me.dtErstmalsam.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(6, 114) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(63, 13) + Me.Label2.TabIndex = 33 + Me.Label2.Text = "Erstmals am" + ' + 'cbboxZeitpunkt + ' + Me.cbboxZeitpunkt.FormattingEnabled = True + Me.cbboxZeitpunkt.Location = New System.Drawing.Point(69, 78) + Me.cbboxZeitpunkt.Name = "cbboxZeitpunkt" + Me.cbboxZeitpunkt.Size = New System.Drawing.Size(108, 21) + Me.cbboxZeitpunkt.TabIndex = 2 + ' + 'lblPrioritaet + ' + Me.lblPrioritaet.AutoSize = True + Me.lblPrioritaet.Location = New System.Drawing.Point(6, 25) + Me.lblPrioritaet.Name = "lblPrioritaet" + Me.lblPrioritaet.Size = New System.Drawing.Size(42, 13) + Me.lblPrioritaet.TabIndex = 27 + Me.lblPrioritaet.Text = "Priorität" + ' + 'lblZeitpunkt + ' + Me.lblZeitpunkt.AutoSize = True + Me.lblZeitpunkt.Location = New System.Drawing.Point(5, 81) + Me.lblZeitpunkt.Name = "lblZeitpunkt" + Me.lblZeitpunkt.Size = New System.Drawing.Size(52, 13) + Me.lblZeitpunkt.TabIndex = 31 + Me.lblZeitpunkt.Text = "Zeitpunkt" + ' + 'cbboxPrioritaet + ' + Me.cbboxPrioritaet.FormattingEnabled = True + Me.cbboxPrioritaet.Location = New System.Drawing.Point(69, 22) + Me.cbboxPrioritaet.Name = "cbboxPrioritaet" + Me.cbboxPrioritaet.Size = New System.Drawing.Size(108, 21) + Me.cbboxPrioritaet.TabIndex = 0 + ' + 'lblPeriodizitaet + ' + Me.lblPeriodizitaet.AutoSize = True + Me.lblPeriodizitaet.Location = New System.Drawing.Point(6, 53) + Me.lblPeriodizitaet.Name = "lblPeriodizitaet" + Me.lblPeriodizitaet.Size = New System.Drawing.Size(58, 13) + Me.lblPeriodizitaet.TabIndex = 29 + Me.lblPeriodizitaet.Text = "Periodizität" + ' + 'cbboxPeriodizitaet + ' + Me.cbboxPeriodizitaet.FormattingEnabled = True + Me.cbboxPeriodizitaet.Location = New System.Drawing.Point(69, 50) + Me.cbboxPeriodizitaet.Name = "cbboxPeriodizitaet" + Me.cbboxPeriodizitaet.Size = New System.Drawing.Size(108, 21) + Me.cbboxPeriodizitaet.TabIndex = 1 + ' + 'GrpVerantwortung + ' + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortungISI) + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.Label1) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlich) + Me.GrpVerantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVerantwortung.Location = New System.Drawing.Point(3, 170) + Me.GrpVerantwortung.Name = "GrpVerantwortung" + Me.GrpVerantwortung.Size = New System.Drawing.Size(233, 83) + Me.GrpVerantwortung.TabIndex = 1 + Me.GrpVerantwortung.TabStop = False + Me.GrpVerantwortung.Text = "Verantwortung" + ' + 'cbboxVerantwortungISI + ' + Me.cbboxVerantwortungISI.FormattingEnabled = True + Me.cbboxVerantwortungISI.Location = New System.Drawing.Point(102, 47) + Me.cbboxVerantwortungISI.Name = "cbboxVerantwortungISI" + Me.cbboxVerantwortungISI.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortungISI.TabIndex = 1 + ' + 'cbboxVerantwortlich + ' + Me.cbboxVerantwortlich.FormattingEnabled = True + Me.cbboxVerantwortlich.Location = New System.Drawing.Point(102, 14) + Me.cbboxVerantwortlich.Name = "cbboxVerantwortlich" + Me.cbboxVerantwortlich.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortlich.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(6, 50) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(92, 13) + Me.Label1.TabIndex = 34 + Me.Label1.Text = "Verantwortung ISI" + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 22) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(74, 13) + Me.lblVerantwortlich.TabIndex = 33 + Me.lblVerantwortlich.Text = "Verantwortlich" + ' + 'GrpDefinitionZuordnung + ' + Me.GrpDefinitionZuordnung.Controls.Add(Me.TreeZuordnung) + Me.GrpDefinitionZuordnung.Controls.Add(Me.btnNeueZuordnung) + Me.GrpDefinitionZuordnung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpDefinitionZuordnung.Location = New System.Drawing.Point(3, 16) + Me.GrpDefinitionZuordnung.Name = "GrpDefinitionZuordnung" + Me.GrpDefinitionZuordnung.Size = New System.Drawing.Size(233, 154) + Me.GrpDefinitionZuordnung.TabIndex = 0 + Me.GrpDefinitionZuordnung.TabStop = False + Me.GrpDefinitionZuordnung.Text = "Zuordnung" + ' + 'TreeZuordnung + ' + Me.TreeZuordnung.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeZuordnung.AllowDrop = True + Me.TreeZuordnung.AllowExternalDrop = False + Me.TreeZuordnung.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeZuordnung.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeZuordnung.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeZuordnung.ContextMenuStrip = Me.ctxMenuZurodnung + Me.TreeZuordnung.ImageList = Me.ImageList1 + Me.TreeZuordnung.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeZuordnung.Location = New System.Drawing.Point(6, 46) + Me.TreeZuordnung.Name = "TreeZuordnung" + Me.TreeZuordnung.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node2}) + Me.TreeZuordnung.NodesConnector = Me.NodeConnector2 + Me.TreeZuordnung.NodeStyle = Me.ElementStyle2 + Me.TreeZuordnung.PathSeparator = ";" + Me.TreeZuordnung.Size = New System.Drawing.Size(217, 100) + Me.TreeZuordnung.Styles.Add(Me.ElementStyle2) + Me.TreeZuordnung.TabIndex = 1 + Me.TreeZuordnung.Text = "AdvTree1" + ' + 'ctxMenuZurodnung + ' + Me.ctxMenuZurodnung.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuZurodnung.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.EintragBearbeitenToolStripMenuItem, Me.NeuerEintragHinzufügenToolStripMenuItem}) + Me.ctxMenuZurodnung.Name = "ctxMenuZurodnung" + Me.ctxMenuZurodnung.Size = New System.Drawing.Size(210, 48) + ' + 'EintragBearbeitenToolStripMenuItem + ' + Me.EintragBearbeitenToolStripMenuItem.Name = "EintragBearbeitenToolStripMenuItem" + Me.EintragBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.EintragBearbeitenToolStripMenuItem.Text = "Eintrag bearbeiten" + ' + 'NeuerEintragHinzufügenToolStripMenuItem + ' + Me.NeuerEintragHinzufügenToolStripMenuItem.Name = "NeuerEintragHinzufügenToolStripMenuItem" + Me.NeuerEintragHinzufügenToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.NeuerEintragHinzufügenToolStripMenuItem.Text = "Neuer Eintrag hinzufügen" + ' + 'Node2 + ' + Me.Node2.Expanded = True + Me.Node2.Name = "Node2" + Me.Node2.Text = "Node2" + ' + 'NodeConnector2 + ' + Me.NodeConnector2.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle2 + ' + Me.ElementStyle2.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle2.Name = "ElementStyle2" + Me.ElementStyle2.TextColor = System.Drawing.SystemColors.ControlText + ' + 'btnNeueZuordnung + ' + Me.btnNeueZuordnung.Location = New System.Drawing.Point(6, 17) + Me.btnNeueZuordnung.Name = "btnNeueZuordnung" + Me.btnNeueZuordnung.Size = New System.Drawing.Size(217, 23) + Me.btnNeueZuordnung.TabIndex = 0 + Me.btnNeueZuordnung.Text = "Struktur anzeigen" + Me.btnNeueZuordnung.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.txtMutierer) + Me.Panel1.Controls.Add(Me.txtErstelltam) + Me.Panel1.Controls.Add(Me.lblMutierer) + Me.Panel1.Controls.Add(Me.cbAktiv) + Me.Panel1.Controls.Add(Me.txtMutiertam) + Me.Panel1.Controls.Add(Me.lblErstelltam) + Me.Panel1.Controls.Add(Me.lblAktiv) + Me.Panel1.Controls.Add(Me.lblMutiertam) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel1.Location = New System.Drawing.Point(3, 458) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(233, 112) + Me.Panel1.TabIndex = 47 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(782, 49) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(176, 573) + Me.GroupBox1.TabIndex = 13 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(170, 554) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'frmMassnahmeplanDetail + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(958, 622) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.grpPruefgegenstand) + Me.Controls.Add(Me.GrpLeft) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "frmMassnahmeplanDetail" + Me.Text = "Massnahmeplan Detail" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.grpPruefgegenstand.ResumeLayout(False) + Me.grpPruefgegenstand.PerformLayout() + Me.GrpStruktur.ResumeLayout(False) + Me.GrpStruktur.PerformLayout() + CType(Me.TreeStruktur, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStripTree.ResumeLayout(False) + Me.ToolStripTree.PerformLayout() + Me.GrpLeft.ResumeLayout(False) + Me.GrpPlanung.ResumeLayout(False) + Me.GrpPlanung.PerformLayout() + Me.GrpVerantwortung.ResumeLayout(False) + Me.GrpVerantwortung.PerformLayout() + Me.GrpDefinitionZuordnung.ResumeLayout(False) + CType(Me.TreeZuordnung, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuZurodnung.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents grpPruefgegenstand As System.Windows.Forms.GroupBox + Friend WithEvents lblEreignisse2 As System.Windows.Forms.Label + Friend WithEvents lblMassnahmen2 As System.Windows.Forms.Label + Friend WithEvents txtEreignisse As System.Windows.Forms.TextBox + Friend WithEvents lblEreignisse As System.Windows.Forms.Label + Friend WithEvents txtMassnahmen As System.Windows.Forms.TextBox + Friend WithEvents lblMassnahmen1 As System.Windows.Forms.Label + Friend WithEvents txtPruefgegenstand As System.Windows.Forms.TextBox + Friend WithEvents lblPruefgegenstand As System.Windows.Forms.Label + Friend WithEvents GrpLeft As System.Windows.Forms.GroupBox + Friend WithEvents cbboxZeitpunkt As System.Windows.Forms.ComboBox + Friend WithEvents lblZeitpunkt As System.Windows.Forms.Label + Friend WithEvents cbboxPeriodizitaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPeriodizitaet As System.Windows.Forms.Label + Friend WithEvents cbboxPrioritaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPrioritaet As System.Windows.Forms.Label + Friend WithEvents GrpVerantwortung As System.Windows.Forms.GroupBox + Friend WithEvents cbboxVerantwortungISI As System.Windows.Forms.ComboBox + Friend WithEvents cbboxVerantwortlich As System.Windows.Forms.ComboBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents lblVerantwortlich As System.Windows.Forms.Label + Friend WithEvents GrpPlanung As System.Windows.Forms.GroupBox + Friend WithEvents cbAktiv As System.Windows.Forms.CheckBox + Friend WithEvents lblAktiv As System.Windows.Forms.Label + Friend WithEvents txtMutierer As System.Windows.Forms.TextBox + Friend WithEvents txtMutiertam As System.Windows.Forms.TextBox + Friend WithEvents txtErstelltam As System.Windows.Forms.TextBox + Friend WithEvents lblMutierer As System.Windows.Forms.Label + Friend WithEvents lblErstelltam As System.Windows.Forms.Label + Friend WithEvents lblMutiertam As System.Windows.Forms.Label + Friend WithEvents dtErstmalsam As System.Windows.Forms.DateTimePicker + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents lblKontrollaktivität As System.Windows.Forms.Label + Friend WithEvents txtBeschreibung As System.Windows.Forms.TextBox + Friend WithEvents lblBeschreibung As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents GrpStruktur As GroupBox + Friend WithEvents GrpDefinitionZuordnung As GroupBox + Friend WithEvents btnNeueZuordnung As Button + Friend WithEvents TreeStruktur As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ToolStripTree As ToolStrip + Friend WithEvents tslabelFilter As ToolStripLabel + Friend WithEvents tsCbxFilter As ToolStripComboBox + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents lblSuche As ToolStripLabel + Friend WithEvents tstxtSuche As ToolStripTextBox + Friend WithEvents TSBtnSuche As ToolStripButton + Friend WithEvents TSBtnFilterAufheben As ToolStripButton + Friend WithEvents TSBtnFirst As ToolStripButton + Friend WithEvents TSBtnPrevious As ToolStripButton + Friend WithEvents TSBtnNext As ToolStripButton + Friend WithEvents TSBtnLast As ToolStripButton + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents dtGueltigBis As DateTimePicker + Friend WithEvents lblGueltigBis As Label + Friend WithEvents TreeZuordnung As DevComponents.AdvTree.AdvTree + Friend WithEvents Node2 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector2 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle2 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ImageList1 As ImageList + Friend WithEvents cbboxTerminierung As ComboBox + Friend WithEvents lblTerminierung As Label + Friend WithEvents ctxMenuZurodnung As ContextMenuStrip + Friend WithEvents EintragBearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NeuerEintragHinzufügenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblHilfsmittel As Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.resx b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.resx new file mode 100644 index 0000000..1b1f870 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.resx @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 793, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKQSURBVDhPrY/JTxNRAIdf0kQPJoZ4MOFEUNwoWLbSllUg + KAFKy6JSFFDABUwQLxz4B0iaECImGA9owo14aCXFUFot2MJAC5zdN+hCaaEFSUQoP997DFSJRyf5kpnM + 7/veDPkvl06n22hpaoZlfAoL3hUs+lbhXlqFxx+CdzkMXyAMfyCE5WAI43YBba1teHC/Y0PUCWmob0Aj + xTE9hwX/2l8sLq/DHViHJ7gO38oPTLvmwQ67e/sORJ2Qm403wBCc89iO7Bwggq3tCH5tbePn5hY9ZJZv + bzW3RAP1166D8UZw4dtSaBdfCF8pX+jvfPau4pNnBR/dQdgcM3zLIqJOSF2tDgzLhAAv/dQ9PIE1+vns + N8L47g/z4Khtkm9ZRNQJuVJzGYwRqx1zH7yYp8y9Z3gwS3G9o7x1Y4bywjzBt3VXa6OB6soqMB49eQbD + 6ASGLQ6YXk1h5LUAE2XYOgmj2Y7nL214+Pgp37KIqBOiVVfgn1Roohx4V62tjAbUpWX4E025GlUaLR/V + 0NMY7JmJ6rLy/Y2oE1JSfBGM0kslsNlscLlcHKfTyWH3giAgS6GEQi7f34o6IYV5+WAUFxbBarUiPzcP + ykwFHA4H7HY7j46NjSE/JxfZqiwU0G3RhYJoIFupAiMvKxsWOkxPSUWyVAqz2QyTyQSDwYChoSGoaFSR + IUcOi9BDRJ2QjNS0TXlqGh8YjUacPpmAE/HxXBocHMTAwAD6+/shS0qGTJqEzLR0KGlI1AmJORpzL/lc + YiRdlsLHe1JfXx96enqg1+vR3d2NMzR8NuEUzidKWWiHqkd2C4Qck0gkpXFxcVVdXV1NVGjt7e1tp3TQ + QDt77uzsbIw9Hqs9JJFoGHRfQAg5/BslsRWFgJrRJAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + 900, 17 + + + 177, 56 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAm + CwAAAk1TRnQBSQFMAgEBBAEAAWABAAFgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACQAB/wEH + BHEBcgH0CAAB/wGTBEYBbwH0CAAB/wGTBEYBbwH0CAAB/wGZBFMBdAH0BwAB8QNyBnEB/wUAAfIJRgH/ + BQABGglGAf8FAAEbCFMBUgH/BAABCAOXAnIGcQH/AwABGgNMCEYB/wMAARoDTAhGAf8DAAEaAlkFUwGa + A1MB/wIAAfQElwEIAZcCcgVxAgAB9AIXAW8BGgFMBEYBvQNGAgAB9AIXAW8CTAhGAgAB/wRZCFMBUgIA + BJcBCAL/AZcCcgRxAfQBAAJvARcB9AH/AfMBTAJGAv8BlAJGAfQBAAJvAhcBbwJMB0YB9AEABlkEUwH2 + A1MB9AH/A5cBCAH/AfQC/wGXAnIDcQFyAf8EbwL/AfMBTAL/ARsDRgFvAf8DbwIXAW8CTAZGAW8B/whZ + AlMB/wNTAXQB8QKXAQgB/wH0ApcC/wGXA3ICcQEaAeMEbwT/Ab0FRgEaAeMCbweUARYBbwNGARsDWQX/ + AVkBUwH/AZoDUwEHAXgBlwH/AfQElwL/ApcCcgFxAQcC4wRvA/8BTAVGAQcC4wHzCf8DRgGZA1kE/wH2 + AVkBmgH/ARoDUwEIApgHlwL/ApcCcgEaA+MCbwT/AfMBTAEXA0YBGgLjARYBvQMaBL0BlANGARoDWQj/ + AZoDUwH0A5gBeAaXAv8ClwFyAfQBFgPjAv8BGwFvAv8B8wJMAkYB9AEWA+MEbwIXA0wCRgH0A1kI/wJZ + AlMB/wEIA5gBeAaXAf8ClwEHAf8BlAEWAeMB8wH/AfMDbwL/AZQCTAGTAf8BlAEWA+MEbwIXAW8CTAGT + Af8BmgJZAf8B9gX/AXoDWQGZAQABBwWYCJcB/wEAAZMCFgHjAb0B4wRvAZQBFwFvAUwB/wEAAZMCFgPj + BG8CFwFvAUwB/wEAAZkFWQGgAcMBmgVZAf8BAAH/AQgFmAF4BZcB8QIAAf8BlAMWAuMEbwIXAfICAAH/ + AZQDFgLjBG8CFwEaAgAB/wGaC1kBGwMAAf8BCAWYAXgClwGYAQgEAAH/AZQDFgPjA28BGgQAAf8BlAMW + A+MDbwEaBAAB/wGaCVkBGgUAAf8BBwEIBpgB9AYAAf8BkwG9AhYC4wEWAW8B9AYAAf8BkwG9AhYC4wEW + AW8B9AYAAf8BmQGgAXoDWQF6AVkB/wgAAf8B9AIIAfEB/woAAf8B9AEaAQcBGgH/CgAB/wH0ARoBBwEa + Af8KAAH/AfQBGgGZARsB/wUAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAHw + AQ8B8AEPAfABDwHwAQ8B4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGA + AQEBgAEAAYABAAGAAQABgDEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHA + AQMBwAEDAeABBwHgAQcB4AEHAeABBwH4AR8B+AEfAfgBHwH4AR8L + + + + 1015, 17 + + + + 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 + sQQvxQ+O+w0UG9zYwCvIHAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK5SURBVDhPfVJbSFRRFL13xqnMcfTOjHced5xH9lGSUVGQ + kRmFiUqkEFimTRlhiZVC2VhkgWbmA1LzUVIzSg+iHBs1SnEyK1EjP6JA+1A/+kmFPgI/QpjVOediZgxt + WGzO3Wuts8/elwsSCZwguRWbkicVSc4FxT6CLclT5JuH1HbJlOCh4wWpU5VSBPXlLmgr/dDXDkJX/QZC + WS/Cir1QJReCcJ4Trl6WLIVBIcWNh+fdg1T9GtZbb2GtHUD0zX5YKnohlb2E+VoPRJcX6pxGKMTYCaqR + pRzH84KlX8j3wFb/HjYitjUMwd4yCkfrRwZ74zAx88N0qRPGC08RkVUPPtLip1pqkB6+3yWL697B3jQC + BxUHAeUYL3ZAPPcIqxMLQLUcL9h8UkUfa5saMKO/EHdnBKWDU9jQMsy6s9YMQDz7ELoTreA1ko9bEbtn + 9s+ba8j7CYFmOzm7+r5ibv4XAoEAnB2fEF3lZzVTSSd0J+9DFbNzhgvfmx2gYgvpwnK9l+WM9g/48v0n + Ey7C+WQMUvkrxqED1eW2YlVcaoDTJB0N0Gmbr/YQdLP87cf8MjFFzoNRmK90wVxKOCRrnS0I3ZgW4NRb + 02boqkwlXhhdHQRebCvvRvfY9DKDbPcQjMXP2BDpJrRHGrHCFj/HhVjX+eieaVEsfAyxiIBmMqj06hf4 + PD3LDDKb5eHRWtTpNgiHGshP5fCxNeqPVbIO9KTwL0QyrIM3fDDnk3OeG/pTHna7evcZusYD1IBXmdb6 + DeflW3XH7/4X2uwmRGZUkdst/VRLDWgYVsZsnhALPIjKb4c2pxnC4YblyLrNckR6JZTi+nGiEWXpUuhD + 9FafJrWQtOlma6JGtF0tFWfWIWxHLvl5DF7C1cmS4JGo1BjalGvip0JtqQuhtpQFpWP7JB8mukktQaYs + Bsf9BvJ9y/Q7+ip/AAAAAElFTkSuQmCC + + + + + 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 + r8QPjvsNWSfc2bvcdIgAAAAASUVORK5CYII= + + + + 17, 56 + + + 89 + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.vb new file mode 100644 index 0000000..da5f901 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmenplanDetail.vb @@ -0,0 +1,489 @@ +Public Class frmMassnahmeplanDetail + +#Region "Deklarationen" + + Dim m_massnahmeplanhandler As Integer + Property massnahmeplanHandler As Integer + Get + Return m_massnahmeplanhandler + End Get + Set(value As Integer) + m_massnahmeplanhandler = value + End Set + End Property + + + Dim m_massnahmeplannr As Integer + Property massnahmeplannr As Integer + Get + Return m_massnahmeplannr + End Get + Set(value As Integer) + m_massnahmeplannr = value + End Set + End Property + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim massnahmeplan As New clsMassnahmeplan + Dim massnahmeplanStruktur As New clsPlanTree + + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + + If Me.FormReadonly = True Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + evh.massnahmeplandetail_close(Me.massnahmeplanHandler, Me.massnahmeplannr) + massnahmeplan.dispose() + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + Save_data() + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function +#End Region + + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + If TypeOf c Is DateTimePicker Then + Dim ctl As DateTimePicker = c + AddHandler ctl.ValueChanged, evh + End If + + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + Private Sub generalhandler() + Me.FormDataChanged = True + End Sub + + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + + +#Region "Formular" + + Sub New() + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.ImageList1 = Globals.GueltigImages + Me.TreeStruktur.ImageList = Globals.GueltigImages + Me.TreeZuordnung.ImageList = Globals.GueltigImages + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + + + Private Sub frmMassnahmeplanDetail_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 7 + Me.DokumenteAllgemein.ThemaNr = Me.massnahmeplannr + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Me.DokumenteAllgemein.Refresh() + + Me.cbboxPrioritaet.DataSource = massnahmeplan.Prioritaet + Me.cbboxPrioritaet.DisplayMember = "Bezeichnung" + Me.cbboxPrioritaet.ValueMember = "Prioritaetnr" + + Me.cbboxPeriodizitaet.DataSource = massnahmeplan.Periodizitaet + Me.cbboxPeriodizitaet.DisplayMember = "Bezeichnung" + Me.cbboxPeriodizitaet.ValueMember = "PeriodizitaetNr" + + Me.cbboxZeitpunkt.DataSource = massnahmeplan.Zeitpunkt + Me.cbboxZeitpunkt.DisplayMember = "Bezeichnung" + Me.cbboxZeitpunkt.ValueMember = "Zeitpunktnr" + + Me.cbboxVerantwortungISI.DataSource = massnahmeplan.VerantwortungISI + Me.cbboxVerantwortungISI.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortungISI.ValueMember = "VerantwortungISINr" + + Me.cbboxVerantwortlich.DataSource = massnahmeplan.Verantwortung + Me.cbboxVerantwortlich.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortlich.ValueMember = "Verantwortungnr" + + Me.cbboxTerminierung.DataSource = massnahmeplan.Terminierung + Me.cbboxTerminierung.DisplayMember = "Bezeichnung" + Me.cbboxTerminierung.ValueMember = "id" + If massnahmeplannr > 0 Then + massnahmeplan.Get_Definition_massnahmeplan(Me.massnahmeplannr, Me.TreeZuordnung) + + get_data() + Else + massnahmeplan.Get_Definition_massnahmeplan(Me.massnahmeplannr, Me.TreeZuordnung) + Me.dtGueltigBis.Value = "31.12.2099" + End If + Me.txtBezeichnung.SelectAll() + Me.txtBezeichnung.Focus() + AddChanges(Me) + + + End Sub + + + Private Sub get_data() + massnahmeplan.Get_Data(Me.massnahmeplannr) + Me.cbboxPeriodizitaet.SelectedValue = massnahmeplan.iPeriodizitaetNr.Value + Me.cbboxPrioritaet.SelectedValue = massnahmeplan.iPrioritaetNr.Value + Me.cbboxZeitpunkt.SelectedValue = massnahmeplan.iZeitpunktNr.Value + Me.dtErstmalsam.Value = massnahmeplan.daErstmals_am.Value + Me.cbboxVerantwortlich.SelectedValue = massnahmeplan.iVerantwortlichNr.Value + Me.cbboxVerantwortungISI.SelectedValue = massnahmeplan.iVerantwortungISINr.Value + Me.txtBeschreibung.Text = massnahmeplan.sBeschreibung.Value + Me.txtBezeichnung.Text = massnahmeplan.sBezeichnung.Value + Me.txtHilfsmittel.Text = massnahmeplan.sHilfsmittel.Value + 'Me.txtBezeichnung.Text = massnahmeplan.sBezeichnung.Value + 'Me.txtBeschreibung.Text = massnahmeplan.sBezeichnung.Value + Me.txtPruefgegenstand.Text = massnahmeplan.sPruefgegenstand.Value + Me.txtEreignisse.Text = massnahmeplan.sErgebnisse.Value + Me.txtMassnahmen.Text = massnahmeplan.sMassnahmen.Value + + Me.txtErstelltam.Text = massnahmeplan.daErstellt_am.ToSqlString + Me.txtMutiertam.Text = massnahmeplan.daMutiert_am + Me.txtMutierer.Text = massnahmeplan.MutiererText + Me.cbAktiv.Checked = massnahmeplan.bAktiv.Value + Me.dtGueltigBis.Value = massnahmeplan.daGueltig_Bis.Value + Me.cbAktiv.Checked = massnahmeplan.bAktiv.Value = True + Me.cbboxTerminierung.SelectedValue = massnahmeplan.iTerminierungID.Value + + + End Sub + Private Sub Update_Data() + massnahmeplan.iPeriodizitaetNr = New SqlTypes.SqlInt32(CType(Me.cbboxPeriodizitaet.SelectedValue, Int32)) + massnahmeplan.iPrioritaetNr = New SqlTypes.SqlInt32(CType(Me.cbboxPrioritaet.SelectedValue, Int32)) + massnahmeplan.iZeitpunktNr = New SqlTypes.SqlInt32(CType(Me.cbboxZeitpunkt.SelectedValue, Int32)) + massnahmeplan.iVerantwortlichNr = New SqlTypes.SqlInt32(CType(Me.cbboxVerantwortlich.SelectedValue, Int32)) + massnahmeplan.iVerantwortungISINr = New SqlTypes.SqlInt32(CType(Me.cbboxVerantwortungISI.SelectedValue, Int32)) + massnahmeplan.daErstmals_am = New SqlTypes.SqlDateTime(CType(Me.dtErstmalsam.Value, DateTime)) + + massnahmeplan.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + massnahmeplan.sPruefgegenstand = New SqlTypes.SqlString(CType(Me.txtPruefgegenstand.Text, String)) + massnahmeplan.sMassnahmen = New SqlTypes.SqlString(CType(Me.txtMassnahmen.Text, String)) + massnahmeplan.sErgebnisse = New SqlTypes.SqlString(CType(Me.txtEreignisse.Text, String)) + massnahmeplan.sHilfsmittel = New SqlTypes.SqlString(CType(Me.txtHilfsmittel.Text, String)) + massnahmeplan.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbAktiv.Checked = True, Boolean)) + massnahmeplan.sBezeichnung = New SqlTypes.SqlString(CType(Me.txtBezeichnung.Text, String)) + massnahmeplan.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbAktiv.Checked = True, Boolean)) + massnahmeplan.daGueltig_Bis = New SqlTypes.SqlDateTime(CType(Me.dtGueltigBis.Value, DateTime)) + massnahmeplan.iTerminierungID = New SqlTypes.SqlInt32(CType(Me.cbboxTerminierung.SelectedValue, Int32)) + + massnahmeplan.Save_Data() + + massnahmeplan.Save_Definition_massnahmeplan(Me.TreeZuordnung) + massnahmeplan.Get_Definition_massnahmeplan(Me.massnahmeplannr, Me.TreeZuordnung) + End Sub + +#End Region + +#Region "Toolbar" + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles TSBtnSave.Click + Save_data() + End Sub + + Sub Save_data() + DialogResult = Windows.Forms.DialogResult.OK + If Me.massnahmeplannr = 0 Then + Dim newkey As Integer = massnahmeplan.Add_New() + Me.massnahmeplannr = newkey + massnahmeplan.Get_Data(newkey) + Me.cbAktiv.Checked = True + Else + massnahmeplan.Get_Data(Me.massnahmeplannr) + End If + Update_Data() + evh.massnahmeplandetail_save(Me.massnahmeplanHandler, Me.massnahmeplannr) + FormDataChanged = False + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub tsCbxFilter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tsCbxFilter.SelectedIndexChanged + massnahmeplanStruktur.Load_Treeview(Me.TreeStruktur) + If tsCbxFilter.Text = "-- Alle --" Then Exit Sub + Try + For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.Nodes + If Trim(n.Text) <> Trim(tsCbxFilter.Text) Then + n.Remove() + End If + Next + Catch + End Try + + End Sub + + + + +#End Region + +#Region "Zuordnung" + + Private Sub btnNeueZuordnung_Click(sender As Object, e As EventArgs) Handles btnNeueZuordnung.Click + If Me.FormDataChanged = True Then Me.Save_data() + If Me.massnahmeplannr = 0 Then Me.Save_data() + + If Me.GrpStruktur.Visible = False Then + Me.GrpStruktur.Visible = True + Me.GrpStruktur.Dock = DockStyle.Fill + massnahmeplanStruktur.Load_Treeview(TreeStruktur) + massnahmeplanStruktur.Refresh_Filter(Me.tsCbxFilter) + Me.btnNeueZuordnung.Text = "Struktur verbergen" + Else + Me.GrpStruktur.Visible = False + End If + + End Sub +#End Region + +#Region "Tree" + + Private Sub TreeStruktur_DoubleClick(sender As Object, e As EventArgs) Handles TreeStruktur.DoubleClick + Try + If TreeStruktur.SelectedNode.Nodes.Count > 0 Then + MsgBox("Für die Zuordnung können nur Elemente der untersten Stufe (Definitionen) verwendet werden.", vbExclamation) + Exit Sub + End If + + Dim key As Integer = Me.TreeStruktur.SelectedNode.Tag / 1000000 + + ' massnahmeplan.Add_new_Zuordnung(Me.massnahmeplannr, key, Me.TreeStruktur.SelectedNode.Text, Me.chklbDefinitionZuordnung) + massnahmeplan.Add_new_Zuordnung(Me.massnahmeplannr, key, Me.TreeStruktur.SelectedNode.Text, Me.TreeZuordnung) + Me.FormDataChanged = True + Catch + End Try + + End Sub + + + Private Sub TreeZuordnung_DoubleClick(sender As Object, e As EventArgs) Handles TreeZuordnung.DoubleClick + If IsDate(Me.TreeZuordnung.SelectedNode.Text) Then + TreeZuordnung.SelectedNode = Me.TreeZuordnung.SelectedNode.Parent + End If + Dim f As New FrmDefinition_Pruefplan + f.Aktiv = TreeZuordnung.SelectedNode.Nodes(0).Tag + f.Gueltig_Bis = TreeZuordnung.SelectedNode.Nodes(0).Text + f.ShowDialog() + Dim save_date As String = TreeZuordnung.SelectedNode.Nodes(0).Text + Dim save_aktiv As String = TreeZuordnung.SelectedNode.Nodes(0).Tag + Dim TN As New DevComponents.AdvTree.Node + Dim DoSave As Boolean = True + TN = Me.TreeZuordnung.SelectedNode + + TreeZuordnung.SelectedNode.Nodes(0).Tag = f.Aktiv + TreeZuordnung.SelectedNode.Nodes(0).Text = f.Gueltig_Bis + TreeZuordnung.SelectedNode.ImageIndex = 0 + + + For Each n As DevComponents.AdvTree.Node In Me.TreeZuordnung.Nodes + If n.Tag <> Me.TreeZuordnung.SelectedNode.Tag Then + If n.Text = Me.TreeZuordnung.SelectedNode.Text Then + If (TreeZuordnung.SelectedNode.ImageIndex = 0 Or TreeZuordnung.SelectedNode.ImageIndex = 3) And n.ImageIndex <> 2 And n.ImageIndex <> 1 Then + MsgBox("Es können nicht 2 aktive Verbindungen hergestellt werden") + TreeZuordnung.SelectedNode.Nodes(0).Text = save_date + TreeZuordnung.SelectedNode.Nodes(0).Tag = save_aktiv + DoSave = False + Exit For + End If + End If + End If + Next + If TreeZuordnung.SelectedNode.Nodes(0).Text < "31.12.2099" And TreeZuordnung.SelectedNode.Text > Now.ToString Then TreeZuordnung.SelectedNode.ImageIndex = 3 + If TreeZuordnung.SelectedNode.Nodes(0).Text < Now Then TreeZuordnung.SelectedNode.ImageIndex = 2 + If TreeZuordnung.SelectedNode.Nodes(0).Tag = False Then TreeZuordnung.SelectedNode.ImageIndex = 1 + If DoSave Then + massnahmeplan.Update_Zuordnung(Me.TreeZuordnung.SelectedNode.Tag, f.Aktiv, f.Gueltig_Bis) + Me.FormDataChanged = True + End If + End Sub + + Private Sub TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click + Me.massnahmeplanStruktur.Init_Search() + Me.TreeStruktur.SelectedNode = massnahmeplanStruktur.SearchNode(Me.TreeStruktur, Trim(Me.tstxtSuche.Text)) + Me.TreeStruktur.SelectedNode.EnsureVisible() + End Sub + + Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click + Me.tstxtSuche.Text = "" + Me.massnahmeplanStruktur.Init_Search() + End Sub + + Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click + Me.TreeStruktur.SelectedNode = massnahmeplanStruktur.FindFirst(Me.TreeStruktur) + End Sub + + Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click + Me.TreeStruktur.SelectedNode = massnahmeplanStruktur.FindPrevNode(Me.TreeStruktur) + End Sub + + Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click + Me.TreeStruktur.SelectedNode = massnahmeplanStruktur.FindNextNode(Me.TreeStruktur) + End Sub + + Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click + Me.TreeStruktur.SelectedNode = massnahmeplanStruktur.FindLastNode(Me.TreeStruktur) + End Sub + + Private Sub EintragBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem.Click + Try + Me.TreeZuordnung_DoubleClick(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub NeuerEintragHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuerEintragHinzufügenToolStripMenuItem.Click + If btnNeueZuordnung.Text <> "Struktur verbergen" Then Me.btnNeueZuordnung_Click(sender, e) + End Sub + + +#End Region + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.Designer.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.Designer.vb new file mode 100644 index 0000000..9d3d7cb --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.Designer.vb @@ -0,0 +1,692 @@ + _ +Partial Class frmMassnahmeplan + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMassnahmeplan)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuDetails = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.DetailsAnzeigenBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeueDefinitionErfassenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() + Me.VorgabeAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.TSBtnAddNew = New System.Windows.Forms.ToolStripButton() + Me.TSBtnDelete = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSetSecurityObject = New System.Windows.Forms.ToolStripButton() + Me.tsbtnReport = New System.Windows.Forms.ToolStripButton() + Me.tsbtncopy1 = New System.Windows.Forms.ToolStripButton() + Me.tsbtnCopy2 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GrpDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.grpDetails = New System.Windows.Forms.GroupBox() + Me.txtGueltigbis = New System.Windows.Forms.TextBox() + Me.lblGueltigbis = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtZeitpunkt = New System.Windows.Forms.TextBox() + Me.lblZeitpunkt = New System.Windows.Forms.Label() + Me.txtPeriodizitaet = New System.Windows.Forms.TextBox() + Me.lblPeriodizitaet = New System.Windows.Forms.Label() + Me.txtPrioritaet = New System.Windows.Forms.TextBox() + Me.lblPrioritaet = New System.Windows.Forms.Label() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.DefinitionAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MassnahmeGenerierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuDetails.SuspendLayout() + Me.ToolStrip2.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.GrpDokumente.SuspendLayout() + Me.grpDetails.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(958, 24) + Me.MenuStrip1.TabIndex = 4 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.ToolStripButton3, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(958, 25) + Me.ToolStrip1.TabIndex = 5 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "ToolStripButton1" + Me.ToolStripButton3.Visible = False + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.C1Daten) + Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStrip2) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.Panel1) + Me.SplitContainer1.Size = New System.Drawing.Size(958, 537) + Me.SplitContainer1.SplitterDistance = 274 + Me.SplitContainer1.TabIndex = 6 + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuDetails + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(958, 249) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 9 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuDetails + ' + Me.ctxMenuDetails.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuDetails.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DetailsAnzeigenBearbeitenToolStripMenuItem, Me.NeueDefinitionErfassenToolStripMenuItem, Me.ToolStripMenuItem1, Me.VorgabeAnzeigenToolStripMenuItem, Me.MassnahmeGenerierenToolStripMenuItem}) + Me.ctxMenuDetails.Name = "ctxMenuDetails" + Me.ctxMenuDetails.Size = New System.Drawing.Size(227, 120) + ' + 'DetailsAnzeigenBearbeitenToolStripMenuItem + ' + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Name = "DetailsAnzeigenBearbeitenToolStripMenuItem" + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(226, 22) + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Text = "Details anzeigen / bearbeiten" + ' + 'NeueDefinitionErfassenToolStripMenuItem + ' + Me.NeueDefinitionErfassenToolStripMenuItem.Name = "NeueDefinitionErfassenToolStripMenuItem" + Me.NeueDefinitionErfassenToolStripMenuItem.Size = New System.Drawing.Size(226, 22) + Me.NeueDefinitionErfassenToolStripMenuItem.Text = "Neu Massnahme erfassen" + ' + 'ToolStripMenuItem1 + ' + Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" + Me.ToolStripMenuItem1.Size = New System.Drawing.Size(223, 6) + ' + 'VorgabeAnzeigenToolStripMenuItem + ' + Me.VorgabeAnzeigenToolStripMenuItem.Name = "VorgabeAnzeigenToolStripMenuItem" + Me.VorgabeAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(226, 22) + Me.VorgabeAnzeigenToolStripMenuItem.Text = "Vorgabe anzeigen" + ' + 'ToolStrip2 + ' + Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnSave, Me.TSBtnAddNew, Me.TSBtnDelete, Me.TSBtnSetSecurityObject, Me.tsbtnReport, Me.tsbtncopy1, Me.tsbtnCopy2, Me.ToolStripButton2}) + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(958, 25) + Me.ToolStrip2.TabIndex = 10 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + Me.TSBtnSave.Visible = False + ' + 'TSBtnAddNew + ' + Me.TSBtnAddNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnAddNew.Image = CType(resources.GetObject("TSBtnAddNew.Image"), System.Drawing.Image) + Me.TSBtnAddNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnAddNew.Name = "TSBtnAddNew" + Me.TSBtnAddNew.Size = New System.Drawing.Size(23, 22) + Me.TSBtnAddNew.Text = "Neu" + ' + 'TSBtnDelete + ' + Me.TSBtnDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnDelete.Image = CType(resources.GetObject("TSBtnDelete.Image"), System.Drawing.Image) + Me.TSBtnDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnDelete.Name = "TSBtnDelete" + Me.TSBtnDelete.Size = New System.Drawing.Size(23, 22) + Me.TSBtnDelete.Text = "Löschen" + ' + 'TSBtnSetSecurityObject + ' + Me.TSBtnSetSecurityObject.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSetSecurityObject.Image = CType(resources.GetObject("TSBtnSetSecurityObject.Image"), System.Drawing.Image) + Me.TSBtnSetSecurityObject.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSetSecurityObject.Name = "TSBtnSetSecurityObject" + Me.TSBtnSetSecurityObject.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSetSecurityObject.Text = "SecurityObjekte generieren" + Me.TSBtnSetSecurityObject.Visible = False + ' + 'tsbtnReport + ' + Me.tsbtnReport.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnReport.Image = CType(resources.GetObject("tsbtnReport.Image"), System.Drawing.Image) + Me.tsbtnReport.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnReport.Name = "tsbtnReport" + Me.tsbtnReport.Size = New System.Drawing.Size(23, 22) + Me.tsbtnReport.Text = "Auswertung" + Me.tsbtnReport.Visible = False + ' + 'tsbtncopy1 + ' + Me.tsbtncopy1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtncopy1.Image = CType(resources.GetObject("tsbtncopy1.Image"), System.Drawing.Image) + Me.tsbtncopy1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtncopy1.Name = "tsbtncopy1" + Me.tsbtncopy1.Size = New System.Drawing.Size(23, 22) + Me.tsbtncopy1.Text = "In Zwischenablage kopieren" + Me.tsbtncopy1.Visible = False + ' + 'tsbtnCopy2 + ' + Me.tsbtnCopy2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnCopy2.Image = CType(resources.GetObject("tsbtnCopy2.Image"), System.Drawing.Image) + Me.tsbtnCopy2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnCopy2.Name = "tsbtnCopy2" + Me.tsbtnCopy2.Size = New System.Drawing.Size(23, 22) + Me.tsbtnCopy2.Text = "In Zwischenablage kopieren" + Me.tsbtnCopy2.Visible = False + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "Bearbeiten" + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.GrpDokumente) + Me.Panel1.Controls.Add(Me.grpDetails) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(958, 404) + Me.Panel1.TabIndex = 0 + ' + 'GrpDokumente + ' + Me.GrpDokumente.Controls.Add(Me.DokumenteAllgemein) + Me.GrpDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumente.Location = New System.Drawing.Point(441, 0) + Me.GrpDokumente.Name = "GrpDokumente" + Me.GrpDokumente.Size = New System.Drawing.Size(517, 404) + Me.GrpDokumente.TabIndex = 69 + Me.GrpDokumente.TabStop = False + Me.GrpDokumente.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(511, 385) + Me.DokumenteAllgemein.TabIndex = 32 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'grpDetails + ' + Me.grpDetails.Controls.Add(Me.txtGueltigbis) + Me.grpDetails.Controls.Add(Me.lblGueltigbis) + Me.grpDetails.Controls.Add(Me.txtBezeichnung) + Me.grpDetails.Controls.Add(Me.lblBezeichnung) + Me.grpDetails.Controls.Add(Me.txtBeschreibung) + Me.grpDetails.Controls.Add(Me.lblKontrollaktivität) + Me.grpDetails.Controls.Add(Me.txtVerantwortungISI) + Me.grpDetails.Controls.Add(Me.txtVerantwortlich) + Me.grpDetails.Controls.Add(Me.Label1) + Me.grpDetails.Controls.Add(Me.lblVerantwortlich) + Me.grpDetails.Controls.Add(Me.txtZeitpunkt) + Me.grpDetails.Controls.Add(Me.lblZeitpunkt) + Me.grpDetails.Controls.Add(Me.txtPeriodizitaet) + Me.grpDetails.Controls.Add(Me.lblPeriodizitaet) + Me.grpDetails.Controls.Add(Me.txtPrioritaet) + Me.grpDetails.Controls.Add(Me.lblPrioritaet) + Me.grpDetails.Controls.Add(Me.lblPruefgegenstand) + Me.grpDetails.Controls.Add(Me.txtPruefgegenstand) + Me.grpDetails.Dock = System.Windows.Forms.DockStyle.Left + Me.grpDetails.Location = New System.Drawing.Point(0, 0) + Me.grpDetails.Name = "grpDetails" + Me.grpDetails.Size = New System.Drawing.Size(441, 404) + Me.grpDetails.TabIndex = 68 + Me.grpDetails.TabStop = False + Me.grpDetails.Text = "Details" + ' + 'txtGueltigbis + ' + Me.txtGueltigbis.Location = New System.Drawing.Point(106, 230) + Me.txtGueltigbis.Name = "txtGueltigbis" + Me.txtGueltigbis.ReadOnly = True + Me.txtGueltigbis.Size = New System.Drawing.Size(82, 20) + Me.txtGueltigbis.TabIndex = 84 + ' + 'lblGueltigbis + ' + Me.lblGueltigbis.AutoSize = True + Me.lblGueltigbis.Location = New System.Drawing.Point(7, 233) + Me.lblGueltigbis.Name = "lblGueltigbis" + Me.lblGueltigbis.Size = New System.Drawing.Size(50, 13) + Me.lblGueltigbis.TabIndex = 83 + Me.lblGueltigbis.Text = "Gültig bis" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.Location = New System.Drawing.Point(106, 13) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(319, 20) + Me.txtBezeichnung.TabIndex = 82 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(7, 16) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(72, 13) + Me.lblBezeichnung.TabIndex = 81 + Me.lblBezeichnung.Text = "Beschreibung" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(106, 45) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(320, 59) + Me.txtBeschreibung.TabIndex = 80 + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(7, 45) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(72, 13) + Me.lblKontrollaktivität.TabIndex = 79 + Me.lblKontrollaktivität.Text = "Beschreibung" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.Location = New System.Drawing.Point(301, 230) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(125, 20) + Me.txtVerantwortungISI.TabIndex = 78 + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.Location = New System.Drawing.Point(301, 204) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(125, 20) + Me.txtVerantwortlich.TabIndex = 77 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(203, 233) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(92, 13) + Me.Label1.TabIndex = 76 + Me.Label1.Text = "Verantwortung ISI" + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(202, 207) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(74, 13) + Me.lblVerantwortlich.TabIndex = 75 + Me.lblVerantwortlich.Text = "Verantwortlich" + ' + 'txtZeitpunkt + ' + Me.txtZeitpunkt.Location = New System.Drawing.Point(106, 204) + Me.txtZeitpunkt.Name = "txtZeitpunkt" + Me.txtZeitpunkt.ReadOnly = True + Me.txtZeitpunkt.Size = New System.Drawing.Size(82, 20) + Me.txtZeitpunkt.TabIndex = 74 + ' + 'lblZeitpunkt + ' + Me.lblZeitpunkt.AutoSize = True + Me.lblZeitpunkt.Location = New System.Drawing.Point(7, 181) + Me.lblZeitpunkt.Name = "lblZeitpunkt" + Me.lblZeitpunkt.Size = New System.Drawing.Size(52, 13) + Me.lblZeitpunkt.TabIndex = 73 + Me.lblZeitpunkt.Text = "Zeitpunkt" + ' + 'txtPeriodizitaet + ' + Me.txtPeriodizitaet.Location = New System.Drawing.Point(301, 178) + Me.txtPeriodizitaet.Name = "txtPeriodizitaet" + Me.txtPeriodizitaet.ReadOnly = True + Me.txtPeriodizitaet.Size = New System.Drawing.Size(125, 20) + Me.txtPeriodizitaet.TabIndex = 72 + ' + 'lblPeriodizitaet + ' + Me.lblPeriodizitaet.AutoSize = True + Me.lblPeriodizitaet.Location = New System.Drawing.Point(203, 181) + Me.lblPeriodizitaet.Name = "lblPeriodizitaet" + Me.lblPeriodizitaet.Size = New System.Drawing.Size(58, 13) + Me.lblPeriodizitaet.TabIndex = 71 + Me.lblPeriodizitaet.Text = "Periodizität" + ' + 'txtPrioritaet + ' + Me.txtPrioritaet.Location = New System.Drawing.Point(106, 178) + Me.txtPrioritaet.Name = "txtPrioritaet" + Me.txtPrioritaet.ReadOnly = True + Me.txtPrioritaet.Size = New System.Drawing.Size(82, 20) + Me.txtPrioritaet.TabIndex = 70 + ' + 'lblPrioritaet + ' + Me.lblPrioritaet.AutoSize = True + Me.lblPrioritaet.Location = New System.Drawing.Point(7, 207) + Me.lblPrioritaet.Name = "lblPrioritaet" + Me.lblPrioritaet.Size = New System.Drawing.Size(42, 13) + Me.lblPrioritaet.TabIndex = 69 + Me.lblPrioritaet.Text = "Priorität" + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(7, 110) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 68 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.Location = New System.Drawing.Point(106, 110) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(320, 59) + Me.txtPruefgegenstand.TabIndex = 66 + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "No Title #6.png") + Me.ImageList1.Images.SetKeyName(1, "Abort.png") + Me.ImageList1.Images.SetKeyName(2, "Stop.png") + Me.ImageList1.Images.SetKeyName(3, "Restore.png") + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DefinitionAnzeigenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(177, 26) + ' + 'DefinitionAnzeigenToolStripMenuItem + ' + Me.DefinitionAnzeigenToolStripMenuItem.Name = "DefinitionAnzeigenToolStripMenuItem" + Me.DefinitionAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(176, 22) + Me.DefinitionAnzeigenToolStripMenuItem.Text = "Definition anzeigen" + ' + 'MassnahmeGenerierenToolStripMenuItem + ' + Me.MassnahmeGenerierenToolStripMenuItem.Name = "MassnahmeGenerierenToolStripMenuItem" + Me.MassnahmeGenerierenToolStripMenuItem.Size = New System.Drawing.Size(226, 22) + Me.MassnahmeGenerierenToolStripMenuItem.Text = "Massnahme generieren" + ' + 'frmMassnahmeplan + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(958, 586) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "frmMassnahmeplan" + Me.Text = "Massnahmen" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuDetails.ResumeLayout(False) + Me.ToolStrip2.ResumeLayout(False) + Me.ToolStrip2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.GrpDokumente.ResumeLayout(False) + Me.grpDetails.ResumeLayout(False) + Me.grpDetails.PerformLayout() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents ctxMenuDetails As System.Windows.Forms.ContextMenuStrip + Friend WithEvents DetailsAnzeigenBearbeitenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeueDefinitionErfassenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents lblPrioritaet As Label + Friend WithEvents txtPrioritaet As TextBox + Friend WithEvents lblPeriodizitaet As Label + Friend WithEvents txtPeriodizitaet As TextBox + Friend WithEvents lblZeitpunkt As Label + Friend WithEvents txtZeitpunkt As TextBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents Label1 As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents grpDetails As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents GrpDokumente As GroupBox + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ToolStripButton2 As ToolStripButton + Friend WithEvents tsbtnCopy2 As ToolStripButton + Friend WithEvents tsbtncopy1 As ToolStripButton + Friend WithEvents tsbtnReport As ToolStripButton + Friend WithEvents TSBtnSetSecurityObject As ToolStripButton + Friend WithEvents TSBtnDelete As ToolStripButton + Friend WithEvents TSBtnAddNew As ToolStripButton + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents ImageList1 As ImageList + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents DefinitionAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripMenuItem1 As ToolStripSeparator + Friend WithEvents VorgabeAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents txtGueltigbis As TextBox + Friend WithEvents lblGueltigbis As Label + Friend WithEvents MassnahmeGenerierenToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.resx b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.resx new file mode 100644 index 0000000..73c8727 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.resx @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 234, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + 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 + + + + 492, 14 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 956, 247</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 956, 247</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 633, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKvSURBVDhPvY5bSJNhHMa/XFk3JgaVgQRBWOl3lWgnw4tA + xKLwwopCVBQty2zaTjZ7PW3aZvp52Oemm8aWqZubq0lqa31WTNQZik5J3Zzm+UKY1EVH/23jM1kHuusH + 78XzPv8fPNh/JYIbGs3tuv0mTBa2jf7yRq1W+w4ODSVZLJYao9FU3NraGuIpEOZztikyIEIQnMKiUtdi + G8MDT+oP+Xm6DYxGo/+odczS19f3yfiSemUwdDnatO1fpNL6S4cFQfi9t+nLaCTBiVDiOm/g4soFzSkT + FoVtpXUM6++3EBRFreh0umB3dq1hkLWyBpH4gTPk6v6Q0HSGLFri9yKD2v35KIshP5DocxeLxxge2Y3J + ZJpu0+kL6eiBw+H4s1i80wCwRchMiYkq8UviW3c4D2Zi2+mTTTQavUMubyig409GtbLwmW5N70KnCoTC + uKfHWbvqvKZvQJJSiUhUtZyZiXa6s0VVvs/+XP2QMmm+L+llsKCphikSfUyNiwjyCL/C4wn2stn5a8ws + JjH5rJnr6NB+WDYoYLFNAvPNFTCnug+zDcUwXMF5RCu/oxALGq2GJljpVMKilgQxMx1KbyTB+0YhzNYX + gKM2DwoQZ70nL+0ErWzSUYMCrU/Qt6V2KSyoq2C+qQyqbiVDbOQxGCU44JDkgr2SDZNlTOjJTW6mNW9G + FCV184/LYU5ZCrOKIpiRIYgJCwXVzctgK8+BsZLEr7381MoO7pUAWvHGLM7ZYyWQc6Yu3zWXD9PVXLBV + 3IEJURYMoLSuHnbCEfr071hE2dl2l2gnWDDlmjtYeG3iNTf5HF3/GzWK9x0syng3jK47zfyUHHemqz9j + s9lws9mMGwwGXKlU4iRJ4rJC/nkij3cGIQHufgKBGBcTBE7K5XhLixbvpih8fHwcX11dxX8ABQxYcg9+ + rfgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHHSURBVDhPfc9fa9NQGAbwfQPv/AS79Xv4FUq98MYbqV64 + P0Iv540iTJg3KwwHaQWROu3SNrPtXHPSRCptT7JBjbFLaekfKO1X2OP7hjopJ/bAj3PI+5wnycbftVgs + DubzuVwnmUw+XsbVxQEqwTqpVOomkUjEl0Rv8T5iUXv2X/svtrC7s3WTTqfVktlsJkfl57h+dXctzkwm + k9/La//WdDqV458WBo2jtTgTWzAejyUBO6y00fZDBL1rtL2ryGg0imZLasFgMJDD4RDs0WEZX2wP/q8A + LfcyQvNoxvr9vlrQ6/VkGIYw7A6evj3BbuYUPzouitX6rappgzNELQiCQBJU6g1ixToXDjjj+75a0O12 + JYF7eQXD6USf7XqrPJpxhqgFnudJAnb/5SccGzZM+zs+G9WI67rRjNFZLWi1WpIgfybw8PUHPDnI45to + 4KRcvaVXzsGZZrOpFjiOIwkuTPrfC4FaXdB5VV0IcEYIoRaYpikty8LpWRUF+uQ4+tcaOLNSkMlk7uRy + uXuFQuF9qVQKi8Xi0DCMWRyecUbX9Tzf4bsbmqZtZrPZB/Rgm+zReZ/2N7Qf0f6OLc/8jGd7ZJvvaJq2 + +QcsIGo4Kn9/QwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIYSURBVDhPjZNLbxJhFIaJunHhwoVrd8a40X+A8Q/ohoVL + 3FFhMTWEuJrKYLnMAMI0rTMU5DLTyzHVVuTS0gZakLZYTOuqJhrc6cKNcWUaTzwDH/lqQOOzmjlz3uc7 + ZzJj+xeiKJ5xOp2XPB7PNZ/vwU2Xy3WRPfo7drv9XLNZfn98vPO11+ueaE8lNApR1LUAArzoeL3eC6x1 + PA6H42y9Xv8FZhRhIYaw+ARhKYH5vILhcARfV6oNQRDOs3aOLAdvmWbKXVxbCh4d1b/HoyIqsoi0BqZT + 05jPyf1rSRIxk9E0FuN092qtwalxPPn5+YN1KiwnMRSaGkj06f4kVq3T2XjJYpxOu7oJhoJDyXB0RZZQ + VWf6ksz8QHL4bnuZxTi7jWIRCjJyyWB/bU7C2Vk/jR3CBK1l1d7u1QosxmlurT2HXATHSYajq3ESUG1/ + dyPNYpyt6koBsiGEXBghb4lOS2glkqgxElDtzU55jsU4m2XQ4VkQRyQGl6jWClRrN0sJFuOsv1pMQuYx + jkqslUhixlBVSEC1Rm1VZjFOacWIQJq+tr6E3vYYyUGr8qXbrqwbOf02i3FWIeuHlIQwT5L0UELTnJIE + AuIN1j4KGKmHoD/CPyQZktBKJt33Pu7/mJy8f4W1j5LVkgJoU5hNiPjpcPvbQatUqxYXIvpM/K7b7b5q + /ZmsdTw+QbiuhP13JibuXWal/8Bm+w1UaLTHl412eAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGSSURBVDhPjVPLasJAFM22u0KX1mWzsJv+lh+h31A/Qqhr + P8CNVqhUYzQRpa6kFKSal/ERH7f3DJkhk1rohcOEzD2PeRlcNwzzn7hn/CrTDwJaex5hDMKQwiiiaLOh + DRDHCtVqtZ5ytDI9z6fv1UoTiVhECsQpKpVKE/0ZIL1hBkzyfJ8wCiI3b7db2u12tN/vFezRSKXBXCpi + mIgsXNkxTomHw4GSJNEwSgWQRhNAVJDhCidJOB6PGhzHUWlgoARAhLMkS8LpdKLz+azguq4mrgQQR8bO + Ey+Xi8JkMlHzgBKQkaRyloh/4jQYY16CFAaUAMh5d5CxWfP5nCzLEhv41uspYUATkO4QwCS+F4sFTadT + do9oYA2ECfYLR62dwrX4aMCah8Mh9fvvYoOXy6VIYts2vTQaH8y9EwIJE/PxITpgcue1I+ZCvifdblf0 + tNvtr2Kx+AgySntM5XK5CRec+Ww2U6JwZyK1Wq3PUqn0BOLV4vtex3JAzCZardf0XKuNC4XCQ9r6Z+HJ + qkQ53DIyZRg/yW2pDIFIxosAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pdyuFRWVeJF1Z + 0AeGKckIIpBGdzaU8KIoeB2tK7sI+gC7GLXvNmufzelW24rZTQhaSK41wmntbTO3uYs28v33DJ7L3s1+ + 8Oc8zzn/c87zMJshwLKud21tN+n1/5ju6Xl4n2Ggq6tDUCb7+FYur6el6ggLjzvnEzF4bt/FPTJkXCLB + i8ZGzLJsN7VU5vfcjXR2sgOp2BPEF3mM72XxoKYGbqn0FrWIsxHX6n8FziLlasWyicFK4BRiP9J4pR76 + Ri3iCAntmWxYiZRHQQbIsDwhRdrXju+2LUjMPW+ltn8T86m38qGrRZ5szkydQNK+A6tTXWSQHH8CEjW1 + ibMxPxzkvQqsTp8mLzhINncg7T+OvG9XlFrEEWLXVRlfJ356j2AtpARPvrD2pg9e7oDwyVZfS23ilBYe + JXlvOwrvryE9eQy58CVkyHYhvP8CtVSm+PkpsotOZGfvIPe6l2w/j1L46AQtV2Zs7LIEvBP5Ly+xvhRC + IRlEIdq9TsvVaW7erbjY14XcVw+KfBQoxW35lQ87abk6TS0t57Ztr8WehgZ3ZmmmiaY3RyQS2cdx3KhG + o9HqTSalTvdswGw2DzocjpGynE7nIJGK6Irb7e53uVwn/X6/nLYzjN1uP2SxWHpJ04DBYBgyGo0jJI6S + yJVFz+XcMJFKr9f3W63WwwzDMH8BFZskKY4KBWEAAAAASUVORK5CYII= + + + + 740, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAm + CwAAAk1TRnQBSQFMAgEBBAEAAVABAQFQAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACQAB/wEH + BHEBcgH0CAAB/wGTBEYBbwH0CAAB/wGTBEYBbwH0CAAB/wGZBFMBdAH0BwAB8QNyBnEB/wUAAfIJRgH/ + BQABGglGAf8FAAEbCFMBUgH/BAABCAOXAnIGcQH/AwABGgNMCEYB/wMAARoDTAhGAf8DAAEaAlkFUwGa + A1MB/wIAAfQElwEIAZcCcgVxAgAB9AIXAW8BGgFMBEYBvQNGAgAB9AIXAW8CTAhGAgAB/wRZCFMBUgIA + BJcBCAL/AZcCcgRxAfQBAAJvARcB9AH/AfMBTAJGAv8BlAJGAfQBAAJvAhcBbwJMB0YB9AEABlkEUwH2 + A1MB9AH/A5cBCAH/AfQC/wGXAnIDcQFyAf8EbwL/AfMBTAL/ARsDRgFvAf8DbwIXAW8CTAZGAW8B/whZ + AlMB/wNTAXQB8QKXAQgB/wH0ApcC/wGXA3ICcQEaAeMEbwT/Ab0FRgEaAeMCbweUARYBbwNGARsDWQX/ + AVkBUwH/AZoDUwEHAXgBlwH/AfQElwL/ApcCcgFxAQcC4wRvA/8BTAVGAQcC4wHzCf8DRgGZA1kE/wH2 + AVkBmgH/ARoDUwEIApgHlwL/ApcCcgEaA+MCbwT/AfMBTAEXA0YBGgLjARYBvQMaBL0BlANGARoDWQj/ + AZoDUwH0A5gBeAaXAv8ClwFyAfQBFgPjAv8BGwFvAv8B8wJMAkYB9AEWA+MEbwIXA0wCRgH0A1kI/wJZ + AlMB/wEIA5gBeAaXAf8ClwEHAf8BlAEWAeMB8wH/AfMDbwL/AZQCTAGTAf8BlAEWA+MEbwIXAW8CTAGT + Af8BmgJZAf8B9gX/AXoDWQGZAQABBwWYCJcB/wEAAZMCFgHjAb0B4wRvAZQBFwFvAUwB/wEAAZMCFgPj + BG8CFwFvAUwB/wEAAZkFWQGgAcMBmgVZAf8BAAH/AQgFmAF4BZcB8QIAAf8BlAMWAuMEbwIXAfICAAH/ + AZQDFgLjBG8CFwEaAgAB/wGaC1kBGwMAAf8BCAWYAXgClwGYAQgEAAH/AZQDFgPjA28BGgQAAf8BlAMW + A+MDbwEaBAAB/wGaCVkBGgUAAf8BBwEIBpgB9AYAAf8BkwG9AhYC4wEWAW8B9AYAAf8BkwG9AhYC4wEW + AW8B9AYAAf8BmQGgAXoDWQF6AVkB/wgAAf8B9AIIAfEB/woAAf8B9AEaAQcBGgH/CgAB/wH0ARoBBwEa + Af8KAAH/AfQBGgGZARsB/wUAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAHw + AQ8B8AEPAfABDwHwAQ8B4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGA + AQEBgAEAAYABAAGAAQABgDEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHA + AQMBwAEDAeABBwHgAQcB4AEHAeABBwH4AR8B+AEfAfgBHwH4AR8L + + + + 341, 17 + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.vb new file mode 100644 index 0000000..195bd2d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeplan.vb @@ -0,0 +1,422 @@ +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class frmMassnahmeplan + +#Region "Deklarationen" + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Private Anzeige As Boolean = False + + Dim OnGetData As Boolean + + Dim c1bookmark + Dim c2bookmark + Dim massnahmeplan As New clsMassnahmeplan + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Me.FormReadonly = True + If Me.FormReadonly = True Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + massnahmeplan.dispose() + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function + +#End Region + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + +#Region "Form" + + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.GueltigImages + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub frmPPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Refresh_List() + End Sub + + Sub Refresh_List(Optional searchstring As String = "") + Me.massnahmeplan.Get_Eintraege(Me.C1Daten, 0, Me.tsTxtSearch.Text) + Dim bmp0 As New Bitmap(Me.ImageList1.Images(0)) + Dim bmp1 As New Bitmap(Me.ImageList1.Images(1)) + Dim bmp2 As New Bitmap(Me.ImageList1.Images(2)) + Dim bmp3 As New Bitmap(Me.ImageList1.Images(3)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + v0.DisplayValue = bmp0 + v0.Value = 0 + + v1.DisplayValue = bmp1 + v1.Value = 1 + + v2.DisplayValue = bmp2 + v2.Value = 2 + + v3.DisplayValue = bmp3 + v3.Value = 3 + + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v0) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v1) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v2) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v3) + Me.C1Daten.Columns("Icon").ValueItems.Translate = True + Me.C1Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + End Sub +#End Region + +#Region "C1Daten" + Private Sub C1Daten_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Daten.MouseDown + Me.C1Daten.Bookmark = Me.C1Daten.RowContaining(e.Y) + End Sub + + + Private Sub C1Daten_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1Daten.RowColChange + Refresh_Details() + End Sub + +#End Region + + Sub Refresh_Details() + Try + Me.txtPruefgegenstand.Text = "" + Me.txtPrioritaet.Text = "" + Me.txtPeriodizitaet.Text = "" + Me.txtZeitpunkt.Text = "" + Me.txtVerantwortlich.Text = "" + Me.txtVerantwortungISI.Text = "" + Me.txtBeschreibung.Text = "" + Me.txtBezeichnung.Text = "" + Me.txtGueltigbis.Text = "" + + Me.txtPruefgegenstand.Text = C1Daten.Columns("Pruefgegenstand").Value + Me.txtPeriodizitaet.Text = C1Daten.Columns("Periodizitaet").Value + Me.txtPrioritaet.Text = C1Daten.Columns("Prioritaet").Value + Me.txtZeitpunkt.Text = C1Daten.Columns("Zeitpunkt").Value + Me.txtVerantwortlich.Text = C1Daten.Columns("Verantwortung").Value + Me.txtVerantwortungISI.Text = C1Daten.Columns("Verantwortung_ISI").Value + Me.txtBeschreibung.Text = C1Daten.Columns("Beschreibung").Value + Me.txtBezeichnung.Text = C1Daten.Columns("Bezeichnung").Value + Me.txtGueltigbis.Text = C1Daten.Columns("Gueltig_bis").Value + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 7 + Me.DokumenteAllgemein.ThemaNr = C1Daten.Columns("massnahmeplannr").Value + Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + + Catch ex As Exception + 'MsgBox(ex.Message) + End Try + End Sub + + Private Sub TSBtnAddNew_Click(sender As Object, e As EventArgs) Handles TSBtnAddNew.Click + Dim f As New frmMassnahmeplanDetail() + f.massnahmeplanHandler = Me.Handle + f.MdiParent = Me.MdiParent + f.Show() + End Sub + + Private Sub DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DetailsAnzeigenBearbeitenToolStripMenuItem.Click + Try + c1bookmark = C1Daten.Bookmark + + + Dim f As New frmMassnahmeplanDetail + f.massnahmeplannr = Me.C1Daten.Columns("massnahmeplannr").Value + f.MdiParent = Me.MdiParent + f.massnahmeplanHandler = Me.Handle + f.Show() + + Catch ex As Exception + + End Try + + End Sub + + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub evh_Pruefplandetail_Saved(handler As Integer, key As Integer) Handles evh.MassnahmeplanDetail_Saveed, evh.MassnahmeplanDetail_Closed + Try + If handler = Me.Handle Then + Me.Refresh_List() + + For i = 0 To Me.C1Daten.Splits(0).Rows.Count - 1 + If C1Daten.Columns("massnahmeplannr").CellValue(i) = key Then + Me.C1Daten.Bookmark = i + Refresh_Details() + End If + Next + End If + Catch + End Try + + End Sub + + Private Sub tsBtnSearchStruktur_Definition_Click(sender As Object, e As EventArgs) Handles tsBtnSearchStruktur_Definition.Click + Refresh_List(Me.tsTxtSearch.Text) + End Sub + + Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles tsbtnFilterAufheben.Click + Me.tsTxtSearch.Text = "" + Refresh_List(Me.tsTxtSearch.Text) + End Sub + + Private Sub tsTxtSearch_KeyDown(sender As Object, e As KeyEventArgs) Handles tsTxtSearch.KeyDown + If e.KeyCode = Keys.Enter Then + tsBtnSearchStruktur_Definition_Click(sender, e) + End If + End Sub + + Private Sub DefinitionAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DefinitionAnzeigenToolStripMenuItem.Click + + Dim f As New frmVorgabeDefinition + f.Key = Me.C1Daten.Columns("VorgabeDefinitionNr").Value + + f.ShowDialog() + End Sub + + Private Sub NeueDefinitionErfassenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueDefinitionErfassenToolStripMenuItem.Click + TSBtnAddNew_Click(sender, e) + End Sub + + Private Sub VorgabeAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorgabeAnzeigenToolStripMenuItem.Click + Dim f As New frmVorgabe(Me.C1Daten.Columns("massnahmeplannr").Value, True) + f.MdiParent = Me.MdiParent + f.Show() + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e) + End Sub + + Private Sub TSBtnDelete_Click(sender As Object, e As EventArgs) Handles TSBtnDelete.Click + Try + Dim i As Integer = Me.massnahmeplan.Get_Data(Me.C1Daten.Columns("Massnahmeplannr").Value) + + If MsgBox("Massnahme löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Me.massnahmeplan.Get_Data(Me.C1Daten.Columns("massnahmeplannr").Value) + Me.massnahmeplan.Delete_Data() + Me.Refresh_List() + End If + Catch ex As Exception + End Try + + End Sub + + Private Sub MassnahmeGenerierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MassnahmeGenerierenToolStripMenuItem.Click + Generate_Action() + End Sub + + + Public Function Generate_Action() + + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + sqlcmd.CommandText = "generate_massnahme" + 'sqlcmd.CommandText = "generate_pruefschritt" + sqlcmd.Parameters.Add(New SqlParameter("@massnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.C1Daten.Columns("massnahmeplannr").Value)) + sqlcmd.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + sqlcmd.ExecuteNonQuery() + MsgBox("Generierung abgeschlossen") + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + +#Region "Toolbar" + +#End Region +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.Designer.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.Designer.vb new file mode 100644 index 0000000..85d8442 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.Designer.vb @@ -0,0 +1,1092 @@ + +Partial Class frmMassnahmenuebersicht + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMassnahmenuebersicht)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuPruefschritt = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.AnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WeiterleitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AbschliessenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.TreeUebersicht = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.tsbtnNeuesFinding = New System.Windows.Forms.ToolStripButton() + Me.tsbtnPruefschrittbearbeiten = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFindingDelete = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.PnlNotiz = New System.Windows.Forms.Panel() + Me.GrpNotiz = New System.Windows.Forms.GroupBox() + Me.txtnotiz = New System.Windows.Forms.TextBox() + Me.C1Notiz = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.PnlVerantwortlichkeitTermin = New System.Windows.Forms.Panel() + Me.GrpTermine = New System.Windows.Forms.GroupBox() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.txtZugewiesen = New System.Windows.Forms.TextBox() + Me.lblZugeweisen = New System.Windows.Forms.Label() + Me.txtTermin = New System.Windows.Forms.TextBox() + Me.lblTermin = New System.Windows.Forms.Label() + Me.GrpVerantwortung = New System.Windows.Forms.GroupBox() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblInBearbeitung = New System.Windows.Forms.Label() + Me.txtAktuellVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblVerantwortungIsi = New System.Windows.Forms.Label() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.C1History = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuPruefschritt.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + Me.GrpStatus.SuspendLayout() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStrip2.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.PnlNotiz.SuspendLayout() + Me.GrpNotiz.SuspendLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).BeginInit() + Me.PnlVerantwortlichkeitTermin.SuspendLayout() + Me.GrpTermine.SuspendLayout() + Me.GrpVerantwortung.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.TabPage5.SuspendLayout() + CType(Me.C1History, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1063, 24) + Me.MenuStrip1.TabIndex = 5 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben, Me.ToolStripButton2}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(1063, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "ToolStripButton2" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(839, 177) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 10 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuPruefschritt + ' + Me.ctxMenuPruefschritt.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenToolStripMenuItem, Me.BearbeitenToolStripMenuItem, Me.WeiterleitenToolStripMenuItem, Me.AbschliessenToolStripMenuItem}) + Me.ctxMenuPruefschritt.Name = "ctxMenuPruefschritt" + Me.ctxMenuPruefschritt.Size = New System.Drawing.Size(143, 92) + ' + 'AnzeigenToolStripMenuItem + ' + Me.AnzeigenToolStripMenuItem.Name = "AnzeigenToolStripMenuItem" + Me.AnzeigenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.AnzeigenToolStripMenuItem.Text = "Anzeigen" + ' + 'BearbeitenToolStripMenuItem + ' + Me.BearbeitenToolStripMenuItem.Name = "BearbeitenToolStripMenuItem" + Me.BearbeitenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.BearbeitenToolStripMenuItem.Text = "Bearbeiten" + ' + 'WeiterleitenToolStripMenuItem + ' + Me.WeiterleitenToolStripMenuItem.Name = "WeiterleitenToolStripMenuItem" + Me.WeiterleitenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.WeiterleitenToolStripMenuItem.Text = "Weiterleiten" + ' + 'AbschliessenToolStripMenuItem + ' + Me.AbschliessenToolStripMenuItem.Name = "AbschliessenToolStripMenuItem" + Me.AbschliessenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.AbschliessenToolStripMenuItem.Text = "Abschliessen" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.TabControl1) + Me.SplitContainer1.Size = New System.Drawing.Size(1063, 519) + Me.SplitContainer1.SplitterDistance = 202 + Me.SplitContainer1.TabIndex = 11 + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.GrpStatus) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.C1Daten) + Me.SplitContainer2.Panel2.Controls.Add(Me.ToolStrip2) + Me.SplitContainer2.Size = New System.Drawing.Size(1063, 202) + Me.SplitContainer2.SplitterDistance = 220 + Me.SplitContainer2.TabIndex = 0 + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.TreeUebersicht) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpStatus.Location = New System.Drawing.Point(0, 0) + Me.GrpStatus.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Size = New System.Drawing.Size(220, 202) + Me.GrpStatus.TabIndex = 0 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Status" + ' + 'TreeUebersicht + ' + Me.TreeUebersicht.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeUebersicht.AllowDrop = True + Me.TreeUebersicht.AllowExternalDrop = False + Me.TreeUebersicht.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeUebersicht.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeUebersicht.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeUebersicht.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeUebersicht.DragDropEnabled = False + Me.TreeUebersicht.DragDropNodeCopyEnabled = False + Me.TreeUebersicht.ImageList = Me.ImageList1 + Me.TreeUebersicht.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeUebersicht.Location = New System.Drawing.Point(2, 16) + Me.TreeUebersicht.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.TreeUebersicht.Name = "TreeUebersicht" + Me.TreeUebersicht.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeUebersicht.NodesConnector = Me.NodeConnector1 + Me.TreeUebersicht.NodeStyle = Me.ElementStyle1 + Me.TreeUebersicht.PathSeparator = ";" + Me.TreeUebersicht.Size = New System.Drawing.Size(216, 183) + Me.TreeUebersicht.Styles.Add(Me.ElementStyle1) + Me.TreeUebersicht.TabIndex = 0 + Me.TreeUebersicht.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "New-icon.png") + Me.ImageList1.Images.SetKeyName(1, "progress.png") + Me.ImageList1.Images.SetKeyName(2, "VeriISI.png") + Me.ImageList1.Images.SetKeyName(3, "Massnahmen.png") + Me.ImageList1.Images.SetKeyName(4, "ok.png") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStrip2 + ' + Me.ToolStrip2.AllowDrop = True + Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnNeuesFinding, Me.tsbtnPruefschrittbearbeiten, Me.tsbtnFindingDelete, Me.ToolStripButton3}) + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(839, 25) + Me.ToolStrip2.TabIndex = 11 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'tsbtnNeuesFinding + ' + Me.tsbtnNeuesFinding.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnNeuesFinding.Image = CType(resources.GetObject("tsbtnNeuesFinding.Image"), System.Drawing.Image) + Me.tsbtnNeuesFinding.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnNeuesFinding.Name = "tsbtnNeuesFinding" + Me.tsbtnNeuesFinding.Size = New System.Drawing.Size(23, 22) + Me.tsbtnNeuesFinding.Text = "Neues Finding erfassen" + Me.tsbtnNeuesFinding.Visible = False + ' + 'tsbtnPruefschrittbearbeiten + ' + Me.tsbtnPruefschrittbearbeiten.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnPruefschrittbearbeiten.Image = CType(resources.GetObject("tsbtnPruefschrittbearbeiten.Image"), System.Drawing.Image) + Me.tsbtnPruefschrittbearbeiten.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnPruefschrittbearbeiten.Name = "tsbtnPruefschrittbearbeiten" + Me.tsbtnPruefschrittbearbeiten.Size = New System.Drawing.Size(23, 22) + Me.tsbtnPruefschrittbearbeiten.Text = "Prüfschritt bearbeiten" + ' + 'tsbtnFindingDelete + ' + Me.tsbtnFindingDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingDelete.Image = CType(resources.GetObject("tsbtnFindingDelete.Image"), System.Drawing.Image) + Me.tsbtnFindingDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingDelete.Name = "tsbtnFindingDelete" + Me.tsbtnFindingDelete.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingDelete.Text = "Finding löschen" + Me.tsbtnFindingDelete.Visible = False + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "Dokument anzeigen" + Me.ToolStripButton3.Visible = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(0, 0) + Me.TabControl1.Margin = New System.Windows.Forms.Padding(2) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1063, 313) + Me.TabControl1.TabIndex = 15 + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.PnlNotiz) + Me.TabPage3.Controls.Add(Me.PnlVerantwortlichkeitTermin) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(1055, 287) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Allgemein" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'PnlNotiz + ' + Me.PnlNotiz.Controls.Add(Me.GrpNotiz) + Me.PnlNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.PnlNotiz.Location = New System.Drawing.Point(283, 0) + Me.PnlNotiz.Name = "PnlNotiz" + Me.PnlNotiz.Size = New System.Drawing.Size(772, 287) + Me.PnlNotiz.TabIndex = 3 + ' + 'GrpNotiz + ' + Me.GrpNotiz.Controls.Add(Me.txtnotiz) + Me.GrpNotiz.Controls.Add(Me.C1Notiz) + Me.GrpNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpNotiz.Location = New System.Drawing.Point(0, 0) + Me.GrpNotiz.Name = "GrpNotiz" + Me.GrpNotiz.Size = New System.Drawing.Size(772, 287) + Me.GrpNotiz.TabIndex = 0 + Me.GrpNotiz.TabStop = False + Me.GrpNotiz.Text = "Notizen" + ' + 'txtnotiz + ' + Me.txtnotiz.BackColor = System.Drawing.Color.White + Me.txtnotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtnotiz.Location = New System.Drawing.Point(3, 148) + Me.txtnotiz.Multiline = True + Me.txtnotiz.Name = "txtnotiz" + Me.txtnotiz.ReadOnly = True + Me.txtnotiz.Size = New System.Drawing.Size(766, 136) + Me.txtnotiz.TabIndex = 1 + ' + 'C1Notiz + ' + Me.C1Notiz.AllowUpdate = False + Me.C1Notiz.AlternatingRows = True + Me.C1Notiz.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Notiz.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Notiz.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Notiz.FilterBar = True + Me.C1Notiz.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Notiz.Images.Add(CType(resources.GetObject("C1Notiz.Images"), System.Drawing.Image)) + Me.C1Notiz.Location = New System.Drawing.Point(3, 16) + Me.C1Notiz.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Notiz.Name = "C1Notiz" + Me.C1Notiz.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Notiz.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Notiz.PreviewInfo.ZoomFactor = 75.0R + Me.C1Notiz.PrintInfo.PageSettings = CType(resources.GetObject("C1Notiz.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Notiz.Size = New System.Drawing.Size(766, 132) + Me.C1Notiz.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Notiz.TabIndex = 11 + Me.C1Notiz.Text = "C1TrueDBGrid1" + Me.C1Notiz.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Notiz.PropBag = resources.GetString("C1Notiz.PropBag") + ' + 'PnlVerantwortlichkeitTermin + ' + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpTermine) + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpVerantwortung) + Me.PnlVerantwortlichkeitTermin.Dock = System.Windows.Forms.DockStyle.Left + Me.PnlVerantwortlichkeitTermin.Location = New System.Drawing.Point(0, 0) + Me.PnlVerantwortlichkeitTermin.Name = "PnlVerantwortlichkeitTermin" + Me.PnlVerantwortlichkeitTermin.Size = New System.Drawing.Size(283, 287) + Me.PnlVerantwortlichkeitTermin.TabIndex = 2 + ' + 'GrpTermine + ' + Me.GrpTermine.Controls.Add(Me.txtMutierer) + Me.GrpTermine.Controls.Add(Me.txtErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutierer) + Me.GrpTermine.Controls.Add(Me.txtMutiertam) + Me.GrpTermine.Controls.Add(Me.lblErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutiertam) + Me.GrpTermine.Controls.Add(Me.txtZugewiesen) + Me.GrpTermine.Controls.Add(Me.lblZugeweisen) + Me.GrpTermine.Controls.Add(Me.txtTermin) + Me.GrpTermine.Controls.Add(Me.lblTermin) + Me.GrpTermine.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpTermine.Location = New System.Drawing.Point(0, 119) + Me.GrpTermine.Name = "GrpTermine" + Me.GrpTermine.Size = New System.Drawing.Size(283, 159) + Me.GrpTermine.TabIndex = 1 + Me.GrpTermine.TabStop = False + Me.GrpTermine.Text = "Termine" + ' + 'txtMutierer + ' + Me.txtMutierer.BackColor = System.Drawing.Color.White + Me.txtMutierer.Location = New System.Drawing.Point(114, 130) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 50 + ' + 'txtErstelltam + ' + Me.txtErstelltam.BackColor = System.Drawing.Color.White + Me.txtErstelltam.Location = New System.Drawing.Point(114, 79) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 48 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(8, 133) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 47 + Me.lblMutierer.Text = "Mutierer" + ' + 'txtMutiertam + ' + Me.txtMutiertam.BackColor = System.Drawing.Color.White + Me.txtMutiertam.Location = New System.Drawing.Point(114, 105) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 49 + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(8, 82) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 45 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(8, 108) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 46 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'txtZugewiesen + ' + Me.txtZugewiesen.BackColor = System.Drawing.Color.White + Me.txtZugewiesen.Location = New System.Drawing.Point(114, 49) + Me.txtZugewiesen.Name = "txtZugewiesen" + Me.txtZugewiesen.ReadOnly = True + Me.txtZugewiesen.Size = New System.Drawing.Size(159, 20) + Me.txtZugewiesen.TabIndex = 8 + ' + 'lblZugeweisen + ' + Me.lblZugeweisen.AutoSize = True + Me.lblZugeweisen.Location = New System.Drawing.Point(6, 52) + Me.lblZugeweisen.Name = "lblZugeweisen" + Me.lblZugeweisen.Size = New System.Drawing.Size(65, 13) + Me.lblZugeweisen.TabIndex = 7 + Me.lblZugeweisen.Text = "Zugewiesen" + ' + 'txtTermin + ' + Me.txtTermin.BackColor = System.Drawing.Color.White + Me.txtTermin.Location = New System.Drawing.Point(114, 23) + Me.txtTermin.Name = "txtTermin" + Me.txtTermin.ReadOnly = True + Me.txtTermin.Size = New System.Drawing.Size(159, 20) + Me.txtTermin.TabIndex = 6 + ' + 'lblTermin + ' + Me.lblTermin.AutoSize = True + Me.lblTermin.Location = New System.Drawing.Point(6, 26) + Me.lblTermin.Name = "lblTermin" + Me.lblTermin.Size = New System.Drawing.Size(39, 13) + Me.lblTermin.TabIndex = 6 + Me.lblTermin.Text = "Termin" + ' + 'GrpVerantwortung + ' + Me.GrpVerantwortung.Controls.Add(Me.txtVerantwortungISI) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.txtVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.lblInBearbeitung) + Me.GrpVerantwortung.Controls.Add(Me.txtAktuellVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortungIsi) + Me.GrpVerantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVerantwortung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GrpVerantwortung.Location = New System.Drawing.Point(0, 0) + Me.GrpVerantwortung.Name = "GrpVerantwortung" + Me.GrpVerantwortung.Size = New System.Drawing.Size(283, 119) + Me.GrpVerantwortung.TabIndex = 0 + Me.GrpVerantwortung.TabStop = False + Me.GrpVerantwortung.Text = "Verantwortlichkeiten" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.BackColor = System.Drawing.Color.White + Me.txtVerantwortungISI.Location = New System.Drawing.Point(114, 74) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungISI.TabIndex = 5 + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 26) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(104, 13) + Me.lblVerantwortlich.TabIndex = 0 + Me.lblVerantwortlich.Text = "Hauptverantwortung" + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtVerantwortlich.Location = New System.Drawing.Point(114, 23) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortlich.TabIndex = 3 + ' + 'lblInBearbeitung + ' + Me.lblInBearbeitung.AutoSize = True + Me.lblInBearbeitung.Location = New System.Drawing.Point(6, 51) + Me.lblInBearbeitung.Name = "lblInBearbeitung" + Me.lblInBearbeitung.Size = New System.Drawing.Size(93, 13) + Me.lblInBearbeitung.TabIndex = 1 + Me.lblInBearbeitung.Text = "In Bearbeitung bei" + ' + 'txtAktuellVerantwortlich + ' + Me.txtAktuellVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtAktuellVerantwortlich.Location = New System.Drawing.Point(114, 48) + Me.txtAktuellVerantwortlich.Name = "txtAktuellVerantwortlich" + Me.txtAktuellVerantwortlich.ReadOnly = True + Me.txtAktuellVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtAktuellVerantwortlich.TabIndex = 4 + ' + 'lblVerantwortungIsi + ' + Me.lblVerantwortungIsi.AutoSize = True + Me.lblVerantwortungIsi.Location = New System.Drawing.Point(6, 80) + Me.lblVerantwortungIsi.Name = "lblVerantwortungIsi" + Me.lblVerantwortungIsi.Size = New System.Drawing.Size(92, 13) + Me.lblVerantwortungIsi.TabIndex = 2 + Me.lblVerantwortungIsi.Text = "Verantwortung ISI" + ' + 'TabPage4 + ' + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Size = New System.Drawing.Size(1055, 287) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Resultat" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.txtHilfsmittel) + Me.TabPage1.Controls.Add(Me.lblHilfsmittel) + Me.TabPage1.Controls.Add(Me.txtBezeichnung) + Me.TabPage1.Controls.Add(Me.lblBezeichnung) + Me.TabPage1.Controls.Add(Me.lblKontrollaktivität) + Me.TabPage1.Controls.Add(Me.txtBeschreibung) + Me.TabPage1.Controls.Add(Me.lblBeschreibung) + Me.TabPage1.Controls.Add(Me.lblEreignisse2) + Me.TabPage1.Controls.Add(Me.lblMassnahmen2) + Me.TabPage1.Controls.Add(Me.txtEreignisse) + Me.TabPage1.Controls.Add(Me.lblEreignisse) + Me.TabPage1.Controls.Add(Me.txtMassnahmen) + Me.TabPage1.Controls.Add(Me.lblMassnahmen1) + Me.TabPage1.Controls.Add(Me.txtPruefgegenstand) + Me.TabPage1.Controls.Add(Me.lblPruefgegenstand) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage1.Size = New System.Drawing.Size(1055, 287) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Definition für die Massnahme" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.BackColor = System.Drawing.Color.White + Me.txtHilfsmittel.Location = New System.Drawing.Point(98, 188) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.ReadOnly = True + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 78) + Me.txtHilfsmittel.TabIndex = 67 + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(12, 188) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 68 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.BackColor = System.Drawing.Color.White + Me.txtBezeichnung.Location = New System.Drawing.Point(98, 9) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 54 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(10, 11) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 66 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(10, 44) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 65 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.BackColor = System.Drawing.Color.White + Me.txtBeschreibung.Location = New System.Drawing.Point(98, 31) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 70) + Me.txtBeschreibung.TabIndex = 55 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(10, 31) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 64 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(530, 133) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(74, 13) + Me.lblEreignisse2.TabIndex = 63 + Me.lblEreignisse2.Text = "Info / Rapport" + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(528, 21) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 62 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'txtEreignisse + ' + Me.txtEreignisse.BackColor = System.Drawing.Color.White + Me.txtEreignisse.Location = New System.Drawing.Point(617, 132) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.ReadOnly = True + Me.txtEreignisse.Size = New System.Drawing.Size(427, 96) + Me.txtEreignisse.TabIndex = 58 + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(528, 34) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 61 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.BackColor = System.Drawing.Color.White + Me.txtMassnahmen.Location = New System.Drawing.Point(617, 5) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.ReadOnly = True + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 96) + Me.txtMassnahmen.TabIndex = 57 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(527, 8) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 60 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.BackColor = System.Drawing.Color.White + Me.txtPruefgegenstand.Location = New System.Drawing.Point(98, 106) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 78) + Me.txtPruefgegenstand.TabIndex = 56 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(12, 106) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 59 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.GroupBox1) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage2.Size = New System.Drawing.Size(1055, 287) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Dokumente" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(2, 2) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Size = New System.Drawing.Size(1051, 283) + Me.GroupBox1.TabIndex = 14 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(2, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(1047, 264) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.C1History) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Size = New System.Drawing.Size(1055, 287) + Me.TabPage5.TabIndex = 4 + Me.TabPage5.Text = "History" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'C1History + ' + Me.C1History.AllowUpdate = False + Me.C1History.AlternatingRows = True + Me.C1History.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1History.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1History.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1History.FilterBar = True + Me.C1History.GroupByCaption = "Drag a column header here to group by that column" + Me.C1History.Images.Add(CType(resources.GetObject("C1History.Images"), System.Drawing.Image)) + Me.C1History.Location = New System.Drawing.Point(0, 0) + Me.C1History.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1History.Name = "C1History" + Me.C1History.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1History.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1History.PreviewInfo.ZoomFactor = 75.0R + Me.C1History.PrintInfo.PageSettings = CType(resources.GetObject("C1History.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1History.Size = New System.Drawing.Size(1055, 287) + Me.C1History.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1History.TabIndex = 11 + Me.C1History.Text = "C1TrueDBGrid1" + Me.C1History.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1History.PropBag = resources.GetString("C1History.PropBag") + ' + 'frmMassnahmenuebersicht + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1063, 568) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.Name = "frmMassnahmenuebersicht" + Me.Text = "Massnahmen" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuPruefschritt.ResumeLayout(False) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.Panel2.PerformLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + Me.GrpStatus.ResumeLayout(False) + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStrip2.ResumeLayout(False) + Me.ToolStrip2.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPage3.ResumeLayout(False) + Me.PnlNotiz.ResumeLayout(False) + Me.GrpNotiz.ResumeLayout(False) + Me.GrpNotiz.PerformLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).EndInit() + Me.PnlVerantwortlichkeitTermin.ResumeLayout(False) + Me.GrpTermine.ResumeLayout(False) + Me.GrpTermine.PerformLayout() + Me.GrpVerantwortung.ResumeLayout(False) + Me.GrpVerantwortung.PerformLayout() + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.TabPage5.ResumeLayout(False) + CType(Me.C1History, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents SplitContainer1 As SplitContainer + Friend WithEvents SplitContainer2 As SplitContainer + Friend WithEvents TreeUebersicht As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents ImageList1 As ImageList + Friend WithEvents GroupBox1 As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents TabControl1 As TabControl + Friend WithEvents TabPage1 As TabPage + Friend WithEvents TabPage2 As TabPage + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblEreignisse2 As Label + Friend WithEvents lblMassnahmen2 As Label + Friend WithEvents txtEreignisse As TextBox + Friend WithEvents lblEreignisse As Label + Friend WithEvents txtMassnahmen As TextBox + Friend WithEvents lblMassnahmen1 As Label + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblHilfsmittel As Label + Friend WithEvents TabPage3 As TabPage + Friend WithEvents GrpTermine As GroupBox + Friend WithEvents txtZugewiesen As TextBox + Friend WithEvents lblZugeweisen As Label + Friend WithEvents txtTermin As TextBox + Friend WithEvents lblTermin As Label + Friend WithEvents GrpVerantwortung As GroupBox + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents lblInBearbeitung As Label + Friend WithEvents txtAktuellVerantwortlich As TextBox + Friend WithEvents lblVerantwortungIsi As Label + Friend WithEvents PnlVerantwortlichkeitTermin As Panel + Friend WithEvents txtMutierer As TextBox + Friend WithEvents txtErstelltam As TextBox + Friend WithEvents lblMutierer As Label + Friend WithEvents txtMutiertam As TextBox + Friend WithEvents lblErstelltam As Label + Friend WithEvents lblMutiertam As Label + Friend WithEvents PnlNotiz As Panel + Friend WithEvents GrpNotiz As GroupBox + Friend WithEvents txtnotiz As TextBox + Friend WithEvents TabPage4 As TabPage + Friend WithEvents ctxMenuPruefschritt As ContextMenuStrip + Friend WithEvents BearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents WeiterleitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AbschliessenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripButton2 As ToolStripButton + Friend WithEvents C1Notiz As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents TabPage5 As TabPage + Friend WithEvents C1History As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents tsbtnNeuesFinding As ToolStripButton + Friend WithEvents tsbtnPruefschrittbearbeiten As ToolStripButton + Friend WithEvents tsbtnFindingDelete As ToolStripButton + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents AnzeigenToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.resx b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.resx new file mode 100644 index 0000000..fab3797 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.resx @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 242, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + 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 + + + + 349, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 837, 175</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 837, 175</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 132, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACk + DAAAAk1TRnQBSQFMAgEBBQEAAXABAQFwAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAf8BBwJyAZIB8wH/ + NwAB/wFyAi4DLwIuAfM1AAH/Bi4DLwEuAQczAAH/BS4GLwEuAfMyAAG8BC4BKAgvMgADLgEvAygBVwJW + BC8B9DAAAf8CLgEvAygCLwNXAVYCLwHvMAAB/wEuAi8BKAEuAXkBVwJWAXkCVwFWAS8BczAAAf8CLwJX + AnkBmQF5AlcBeQJXAVABHDEAAS8BNgFXAnkBmQKfAXkBVwFWAXgBVwFQAfAxAAFRATYBVwF5AZkBnwEa + ARsBwgF5AVcBLgFXAVYB/zEAAf8BNgFXAXkBmQGfAcICGwGfAXgBeQFXARwzAAEHATYCeQGfARoBwgEa + AZ8BmQF4AVc1AAG8AVgBeQGZA58BmQF5AXgB/zYAAf8GeQHxOwAC/z4AAfQBUgsAAfQFeAFQAQcIAAH0 + BJEBkAGLAbsIAAH/BeMBbwG2CAABMQF5AQACMQEaAfQBMQEbBgABmQR4AVEEUAH0BQABtASRAYsBkQOL + AfQFAAGUBeMEbwH0BgAIUgEbBQAFeAdQAfQDAAG0BZEB/wGRBIsB9AMAARYE4wdvAfQCAAH0AfMBGwhS + AXQC8wIAAQgEeAFQAQgB/wZQAgABvASRAYsC/wH0AZEEiwIAARoE4wGTAv8BGgVvAgABGg1SAgADeAGZ + Af8BmAEbAQgCGwH/A1ABBwEAA5EBtQG0AYsBtAH/AZEB/wG8A4sBuwEABOMB/wRvAfMBkwNvAZMCAAxT + AfMBAAEbBHgB/wGZA/8BmQEbBFAB8gORAf8DiwG7AZEBiwH0AZEDiwHzA+MB9AZvAfMEbwEAAf8BUwHD + AVMBwwF6AsMBUwF6A1MBGgEAAZkDeAFQAXgB/wF4AVAB8wH/ARsEUAG1ApEBtAG8B4sB/wOLAZQD4wEb + AZMF/wFvARoDbwGZAlMB/wGaAf8BmgJTAZoB9gIaAlMBUgN4ARsB/wEIAfMDUAH/AQgB/wNQA5EBuwG1 + B4sB/wOLA+MBFgKTBRsBbwH/A28BAAF6AVMB/wGaAf8BmgFSAVMB9gGaARoB/wJTAfQEeAEbAZkB/wJQ + AXgB/wEbAZkCUAF4A5ECuweLAf8BiwGQAZEBFgPjAbYBbwH0A/8CbwH/Am8B4wIAAVMBeQFTAXkBUwN5 + AlMBdQFTAgABCAR4AQgC/wHzAf8BmQGYAVABUQJ4AbsDkQH/BosBkQH0A5EBGgPjAf8CbwL/A28BkwPj + AQAB/wxTAXkBAAH/A3gBmQH/AQgBmQEIAXgC/wR4Af8DkQG7AfMBiwH/AbUCiwH/BJEB/wPjAZQBGgVv + Af8E4wEAAXoNUwIABHgBmQF4ARsB/wFQAXgBmQN4AfQBAASRAbsB/wHyAf8BkQGQBJEB9AEABOMBlAH/ + AbYBkwEbAfQE4wH/BAAIUwEbBAAB/wZ4ARsFeAGZAgAB/wWRAbQB/wG0BJEBtAIAAf8G4wEWBeMBlAUA + AlMBegVTARsFAAH0C3gEAAH0BJEB/wWRAbQEAAH0CuMBFgYAAXoCAAF6AVMB/wEAAfMB9AYAAf8IeAEI + BgAB/wiRAbwGAAH/COMBGgsAARoMAAH/AQgCeAGZARsKAAH/AbsCkQG1AfIKAAH/ARoBFgHjAZQB8wUA + AUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH4AQ8GAAHgAQcGAAHAAQMGAAGA + AQEGAAGAAQEGAAGAHwABgAcAAYAHAAGAAQEGAAHAAQMGAAHgAQMGAAHwAQ8GAAH+AX8GAAH+AX8B8AEP + AfABDwHwAQ8B8gEHAeABAwHgAQMB4AEDAfABBwHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEB + AYABAAGAAQABgAEAAcABAQYAAYABAQ4AAYAHAAHAAQMGAAGAAQEGAAGAAQEBgAEAAYABAAGAAQAB8AEH + AYABAQGAAQEBgAEBAfABBwHAAQMBwAEDAcABAwH2AScB4AEHAeABBwHgAQcB/wF/AfgBHwH4AR8B+AEf + Cw== + + + + 504, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX + dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz + vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n + 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb + o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg + Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml + mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY + FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 + wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb + MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ + 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 764, 130</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 764, 130</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 1053, 285</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 1053, 285</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.vb b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.vb new file mode 100644 index 0000000..b9799d5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmMassnahmeuebersicht.vb @@ -0,0 +1,289 @@ +Imports System.ComponentModel +Imports C1.Win.C1TrueDBGrid +Imports DevComponents.AdvTree + +Public Class frmMassnahmenuebersicht + +#Region "Deklarationen" + + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim Massnahme As New clsMassnahme + + +#End Region + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.StatusImages + Me.TreeUebersicht.ImageList = Me.ImageList1 + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub frmPruefschrittUebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Refresh_All() + End Sub + + + Sub Load_Status() + + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 7 + 'Me.DokumenteAllgemein.ThemaNr = 0 + 'Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + + Me.TreeUebersicht.Nodes.Clear() + Dim i As Integer = 0 + For Each r As DataRow In Massnahme.Status.Rows + Dim tn As New DevComponents.AdvTree.Node + tn.Text = r("Bezeichnung") + tn.Tag = r(0) + tn.ImageIndex = i + i = i + 1 + Me.TreeUebersicht.Nodes.Add(tn) + Next + + End Sub + + Private Sub TreeUebersicht_AfterNodeSelect(sender As Object, e As AdvTreeNodeEventArgs) Handles TreeUebersicht.AfterNodeSelect + Try + Me.C1Daten.Columns("StatusNr").FilterText = Me.TreeUebersicht.SelectedNode.Tag + Catch + End Try + Me.DokumenteAllgemein.Pruefschrittnr = -1 + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Massnahmenr").Value + + Catch + End Try + + + End Sub + + Private Sub C1Daten_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Daten.RowColChange + Me.DokumenteAllgemein.Init() + Me.C1Notiz.DataSource = Nothing + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Massnahmenr").Value + Refresh_notizen() + Refresh_History() + Catch + End Try + Refresh_Details() + + End Sub + + Sub Refresh_notizen() + Dim notizen As New clsPruefschrittNotiz + Try + notizen.Get_Eintraege(Me.C1Notiz, Me.C1Daten.Columns("Massnahmenr").Value) + Catch + End Try + + End Sub + + Sub Refresh_History() + Dim history As New clsHistory + Try + history.Get_Eintraege(Me.C1History, Me.C1Daten.Columns("Massnahmenr").Value) + Catch + End Try + + End Sub + + Sub Refresh_All() + Load_Status() + Massnahme.Get_Eintraege(Me.C1Daten, Globals.clsmitarbeiter.iMitarbeiternr, Me.TreeUebersicht) + Me.TreeUebersicht.SelectedNode = Me.TreeUebersicht.Nodes(0) + End Sub + + + Sub Refresh_Details() + Try + Me.txtBezeichnung.Text = "" + Me.txtBeschreibung.Text = "" + Me.txtPruefgegenstand.Text = "" + Me.txtMassnahmen.Text = "" + Me.txtEreignisse.Text = "" + Me.txtHilfsmittel.Text = "" + Me.txtVerantwortlich.Text = "" + Me.txtVerantwortungISI.Text = "" + Me.txtAktuellVerantwortlich.Text = "" + Me.txtTermin.Text = "" + Me.txtZugewiesen.Text = "" + Me.txtErstelltam.Text = "" + Me.txtMutiertam.Text = "" + Me.txtMutierer.Text = "" + + Me.txtBezeichnung.Text = Me.C1Daten.Columns("Bezeichnung").Value + Me.txtBeschreibung.Text = Me.C1Daten.Columns("Beschreibung").Value + Me.txtPruefgegenstand.Text = Me.C1Daten.Columns("Pruefgegenstand").Value + Me.txtMassnahmen.Text = Me.C1Daten.Columns("Massnahmen").Value + Me.txtEreignisse.Text = Me.C1Daten.Columns("Ergebnisse").Value + Me.txtHilfsmittel.Text = Me.C1Daten.Columns("Hilfsmittel").Value + + Me.txtVerantwortlich.Text = Me.C1Daten.Columns("Hauptverantwortung").Value + Me.txtAktuellVerantwortlich.Text = Me.C1Daten.Columns("aktuell_verantwortlich").Value + Me.txtVerantwortungISI.Text = Me.C1Daten.Columns("Verantwortung_isi").Value + Me.txtZugewiesen.Text = Me.C1Daten.Columns("Zugewiesen").Value + Me.txtErstelltam.Text = Me.C1Daten.Columns("erstellt_am").Value + Me.txtMutiertam.Text = Me.C1Daten.Columns("mutiert_am").Value + Me.txtMutierer.Text = Me.C1Daten.Columns("mutierer").Value + + Me.txtTermin.Text = Me.C1Daten.Columns("Termin").Value + Catch ex As Exception + 'MsgBox(ex.Message) + End Try + + End Sub + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub WeiterleitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WeiterleitenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("MassnahmeNr").Value) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("MassnahmeNr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("massnahmenr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Me.Massnahme.Get_Data(C1Daten.Columns("MassnahmeNr").Value) + Me.Massnahme.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Massnahme.iStatusNr = New SqlTypes.SqlInt32(CType(2, Int32)) + Me.Massnahme.Save_Data() + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + Refresh_All() + End Sub + + Private Sub C1Notiz_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Notiz.RowColChange + Me.txtnotiz.Text = "" + Try + Me.txtnotiz.Text = Me.C1Notiz.Columns("Notiz").Value + Catch ex As Exception + + End Try + End Sub + + Private Sub BearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BearbeitenToolStripMenuItem.Click + Dim f As New MassnahmeDetailBearbeitung + f.Massnahmenr = C1Daten.Columns("massnahmenr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + f.Show() + + End Sub + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + BearbeitenToolStripMenuItem_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub tsbtnFindingBearbeiten_Click(sender As Object, e As EventArgs) Handles tsbtnPruefschrittbearbeiten.Click + Try + Me.C1Daten_DoubleClick(sender, e) + Catch + End Try + + End Sub + + Private Sub evh_pruefschrittresultat_closed(handler As Integer, key As Integer) Handles evh.pruefschrittresultat_closed + Try + If Me.Handle = handler Then Refresh_All() + Catch + End Try + End Sub + + Private Sub evh_Pruefschrittresultat_saved(handler As Integer, key As Integer) Handles evh.Pruefschrittresultat_saved + Try + If Me.Handle = handler Then Refresh_All() + Catch + End Try + End Sub + + Private Sub ctxMenuPruefschritt_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuPruefschritt.Opening + If Me.C1Daten.Splits(0).Rows.Count < 1 Then + Me.ctxMenuPruefschritt.Visible = False + Else + Me.ctxMenuPruefschritt.Visible = True + End If + + Me.BearbeitenToolStripMenuItem.Enabled = False + Me.WeiterleitenToolStripMenuItem.Enabled = False + Me.AbschliessenToolStripMenuItem.Enabled = False + + + + 'Prüfung abgeschlossen + If Me.TreeUebersicht.SelectedNode.Tag < 4 Then + Me.BearbeitenToolStripMenuItem.Enabled = True + Me.WeiterleitenToolStripMenuItem.Enabled = True + Me.AbschliessenToolStripMenuItem.Enabled = True + End If + End Sub + + Private Sub AnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnzeigenToolStripMenuItem.Click + Dim f As New MassnahmeDetailBearbeitung + f.Massnahmenr = C1Daten.Columns("massnahmenr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + f.IsReadonly = True + f.Show() + End Sub + + Private Sub AbschliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbschliessenToolStripMenuItem.Click + If MsgBox("Ist die Massnahme definitiv abgeschlossen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Massnahme.Get_Data(Me.C1Daten.Columns("PruefschrittNr").Value) + Dim f As New frmWeitergabe(Me.Massnahme.iMassnahmeNr, Me.Massnahme.iVerantwortungIsINr) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + + Me.Massnahme.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Massnahme.iStatusNr = 5 + Me.Massnahme.Save_Data() + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("massnahmenr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + + Me.Refresh_All() + End If + End If + + End Sub + + Private Sub tsBtnSearchStruktur_Definition_Click(sender As Object, e As EventArgs) Handles tsBtnSearchStruktur_Definition.Click + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Massnahmen/frmPruefschrittUebersicht.Designer.vb.bak b/SW/20211125/AssessmentMgmt/Massnahmen/frmPruefschrittUebersicht.Designer.vb.bak new file mode 100644 index 0000000..6c8a661 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Massnahmen/frmPruefschrittUebersicht.Designer.vb.bak @@ -0,0 +1,1092 @@ + +Partial Class frmPruefschrittUebersicht + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPruefschrittUebersicht)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuPruefschritt = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.AnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WeiterleitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AbschliessenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.TreeUebersicht = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.tsbtnNeuesFinding = New System.Windows.Forms.ToolStripButton() + Me.tsbtnPruefschrittbearbeiten = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFindingDelete = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.PnlNotiz = New System.Windows.Forms.Panel() + Me.GrpNotiz = New System.Windows.Forms.GroupBox() + Me.txtnotiz = New System.Windows.Forms.TextBox() + Me.C1Notiz = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.PnlVerantwortlichkeitTermin = New System.Windows.Forms.Panel() + Me.GrpTermine = New System.Windows.Forms.GroupBox() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.txtZugewiesen = New System.Windows.Forms.TextBox() + Me.lblZugeweisen = New System.Windows.Forms.Label() + Me.txtTermin = New System.Windows.Forms.TextBox() + Me.lblTermin = New System.Windows.Forms.Label() + Me.GrpVerantwortung = New System.Windows.Forms.GroupBox() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblInBearbeitung = New System.Windows.Forms.Label() + Me.txtAktuellVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblVerantwortungIsi = New System.Windows.Forms.Label() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.C1History = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuPruefschritt.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + Me.GrpStatus.SuspendLayout() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStrip2.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.PnlNotiz.SuspendLayout() + Me.GrpNotiz.SuspendLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).BeginInit() + Me.PnlVerantwortlichkeitTermin.SuspendLayout() + Me.GrpTermine.SuspendLayout() + Me.GrpVerantwortung.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.TabPage5.SuspendLayout() + CType(Me.C1History, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1063, 24) + Me.MenuStrip1.TabIndex = 5 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben, Me.ToolStripButton2}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(1063, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "ToolStripButton2" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(839, 177) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 10 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuPruefschritt + ' + Me.ctxMenuPruefschritt.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenToolStripMenuItem, Me.BearbeitenToolStripMenuItem, Me.WeiterleitenToolStripMenuItem, Me.AbschliessenToolStripMenuItem}) + Me.ctxMenuPruefschritt.Name = "ctxMenuPruefschritt" + Me.ctxMenuPruefschritt.Size = New System.Drawing.Size(143, 92) + ' + 'AnzeigenToolStripMenuItem + ' + Me.AnzeigenToolStripMenuItem.Name = "AnzeigenToolStripMenuItem" + Me.AnzeigenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.AnzeigenToolStripMenuItem.Text = "Anzeigen" + ' + 'BearbeitenToolStripMenuItem + ' + Me.BearbeitenToolStripMenuItem.Name = "BearbeitenToolStripMenuItem" + Me.BearbeitenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.BearbeitenToolStripMenuItem.Text = "Bearbeiten" + ' + 'WeiterleitenToolStripMenuItem + ' + Me.WeiterleitenToolStripMenuItem.Name = "WeiterleitenToolStripMenuItem" + Me.WeiterleitenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.WeiterleitenToolStripMenuItem.Text = "Weiterleiten" + ' + 'AbschliessenToolStripMenuItem + ' + Me.AbschliessenToolStripMenuItem.Name = "AbschliessenToolStripMenuItem" + Me.AbschliessenToolStripMenuItem.Size = New System.Drawing.Size(142, 22) + Me.AbschliessenToolStripMenuItem.Text = "Abschliessen" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.TabControl1) + Me.SplitContainer1.Size = New System.Drawing.Size(1063, 519) + Me.SplitContainer1.SplitterDistance = 202 + Me.SplitContainer1.TabIndex = 11 + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.GrpStatus) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.C1Daten) + Me.SplitContainer2.Panel2.Controls.Add(Me.ToolStrip2) + Me.SplitContainer2.Size = New System.Drawing.Size(1063, 202) + Me.SplitContainer2.SplitterDistance = 220 + Me.SplitContainer2.TabIndex = 0 + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.TreeUebersicht) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpStatus.Location = New System.Drawing.Point(0, 0) + Me.GrpStatus.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Size = New System.Drawing.Size(220, 202) + Me.GrpStatus.TabIndex = 0 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Status" + ' + 'TreeUebersicht + ' + Me.TreeUebersicht.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeUebersicht.AllowDrop = True + Me.TreeUebersicht.AllowExternalDrop = False + Me.TreeUebersicht.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeUebersicht.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeUebersicht.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeUebersicht.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeUebersicht.DragDropEnabled = False + Me.TreeUebersicht.DragDropNodeCopyEnabled = False + Me.TreeUebersicht.ImageList = Me.ImageList1 + Me.TreeUebersicht.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeUebersicht.Location = New System.Drawing.Point(2, 16) + Me.TreeUebersicht.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.TreeUebersicht.Name = "TreeUebersicht" + Me.TreeUebersicht.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeUebersicht.NodesConnector = Me.NodeConnector1 + Me.TreeUebersicht.NodeStyle = Me.ElementStyle1 + Me.TreeUebersicht.PathSeparator = ";" + Me.TreeUebersicht.Size = New System.Drawing.Size(216, 183) + Me.TreeUebersicht.Styles.Add(Me.ElementStyle1) + Me.TreeUebersicht.TabIndex = 0 + Me.TreeUebersicht.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "New-icon.png") + Me.ImageList1.Images.SetKeyName(1, "progress.png") + Me.ImageList1.Images.SetKeyName(2, "VeriISI.png") + Me.ImageList1.Images.SetKeyName(3, "Massnahmen.png") + Me.ImageList1.Images.SetKeyName(4, "ok.png") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStrip2 + ' + Me.ToolStrip2.AllowDrop = True + Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnNeuesFinding, Me.tsbtnPruefschrittbearbeiten, Me.tsbtnFindingDelete, Me.ToolStripButton3}) + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(839, 25) + Me.ToolStrip2.TabIndex = 11 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'tsbtnNeuesFinding + ' + Me.tsbtnNeuesFinding.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnNeuesFinding.Image = CType(resources.GetObject("tsbtnNeuesFinding.Image"), System.Drawing.Image) + Me.tsbtnNeuesFinding.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnNeuesFinding.Name = "tsbtnNeuesFinding" + Me.tsbtnNeuesFinding.Size = New System.Drawing.Size(23, 22) + Me.tsbtnNeuesFinding.Text = "Neues Finding erfassen" + Me.tsbtnNeuesFinding.Visible = False + ' + 'tsbtnPruefschrittbearbeiten + ' + Me.tsbtnPruefschrittbearbeiten.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnPruefschrittbearbeiten.Image = CType(resources.GetObject("tsbtnPruefschrittbearbeiten.Image"), System.Drawing.Image) + Me.tsbtnPruefschrittbearbeiten.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnPruefschrittbearbeiten.Name = "tsbtnPruefschrittbearbeiten" + Me.tsbtnPruefschrittbearbeiten.Size = New System.Drawing.Size(23, 22) + Me.tsbtnPruefschrittbearbeiten.Text = "Prüfschritt bearbeiten" + ' + 'tsbtnFindingDelete + ' + Me.tsbtnFindingDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingDelete.Image = CType(resources.GetObject("tsbtnFindingDelete.Image"), System.Drawing.Image) + Me.tsbtnFindingDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingDelete.Name = "tsbtnFindingDelete" + Me.tsbtnFindingDelete.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingDelete.Text = "Finding löschen" + Me.tsbtnFindingDelete.Visible = False + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "Dokument anzeigen" + Me.ToolStripButton3.Visible = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(0, 0) + Me.TabControl1.Margin = New System.Windows.Forms.Padding(2) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1063, 313) + Me.TabControl1.TabIndex = 15 + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.PnlNotiz) + Me.TabPage3.Controls.Add(Me.PnlVerantwortlichkeitTermin) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(1055, 287) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Allgemein" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'PnlNotiz + ' + Me.PnlNotiz.Controls.Add(Me.GrpNotiz) + Me.PnlNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.PnlNotiz.Location = New System.Drawing.Point(283, 0) + Me.PnlNotiz.Name = "PnlNotiz" + Me.PnlNotiz.Size = New System.Drawing.Size(772, 287) + Me.PnlNotiz.TabIndex = 3 + ' + 'GrpNotiz + ' + Me.GrpNotiz.Controls.Add(Me.txtnotiz) + Me.GrpNotiz.Controls.Add(Me.C1Notiz) + Me.GrpNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpNotiz.Location = New System.Drawing.Point(0, 0) + Me.GrpNotiz.Name = "GrpNotiz" + Me.GrpNotiz.Size = New System.Drawing.Size(772, 287) + Me.GrpNotiz.TabIndex = 0 + Me.GrpNotiz.TabStop = False + Me.GrpNotiz.Text = "Notizen" + ' + 'txtnotiz + ' + Me.txtnotiz.BackColor = System.Drawing.Color.White + Me.txtnotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtnotiz.Location = New System.Drawing.Point(3, 148) + Me.txtnotiz.Multiline = True + Me.txtnotiz.Name = "txtnotiz" + Me.txtnotiz.ReadOnly = True + Me.txtnotiz.Size = New System.Drawing.Size(766, 136) + Me.txtnotiz.TabIndex = 1 + ' + 'C1Notiz + ' + Me.C1Notiz.AllowUpdate = False + Me.C1Notiz.AlternatingRows = True + Me.C1Notiz.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Notiz.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Notiz.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Notiz.FilterBar = True + Me.C1Notiz.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Notiz.Images.Add(CType(resources.GetObject("C1Notiz.Images"), System.Drawing.Image)) + Me.C1Notiz.Location = New System.Drawing.Point(3, 16) + Me.C1Notiz.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Notiz.Name = "C1Notiz" + Me.C1Notiz.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Notiz.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Notiz.PreviewInfo.ZoomFactor = 75.0R + Me.C1Notiz.PrintInfo.PageSettings = CType(resources.GetObject("C1Notiz.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Notiz.Size = New System.Drawing.Size(766, 132) + Me.C1Notiz.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Notiz.TabIndex = 11 + Me.C1Notiz.Text = "C1TrueDBGrid1" + Me.C1Notiz.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Notiz.PropBag = resources.GetString("C1Notiz.PropBag") + ' + 'PnlVerantwortlichkeitTermin + ' + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpTermine) + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpVerantwortung) + Me.PnlVerantwortlichkeitTermin.Dock = System.Windows.Forms.DockStyle.Left + Me.PnlVerantwortlichkeitTermin.Location = New System.Drawing.Point(0, 0) + Me.PnlVerantwortlichkeitTermin.Name = "PnlVerantwortlichkeitTermin" + Me.PnlVerantwortlichkeitTermin.Size = New System.Drawing.Size(283, 287) + Me.PnlVerantwortlichkeitTermin.TabIndex = 2 + ' + 'GrpTermine + ' + Me.GrpTermine.Controls.Add(Me.txtMutierer) + Me.GrpTermine.Controls.Add(Me.txtErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutierer) + Me.GrpTermine.Controls.Add(Me.txtMutiertam) + Me.GrpTermine.Controls.Add(Me.lblErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutiertam) + Me.GrpTermine.Controls.Add(Me.txtZugewiesen) + Me.GrpTermine.Controls.Add(Me.lblZugeweisen) + Me.GrpTermine.Controls.Add(Me.txtTermin) + Me.GrpTermine.Controls.Add(Me.lblTermin) + Me.GrpTermine.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpTermine.Location = New System.Drawing.Point(0, 119) + Me.GrpTermine.Name = "GrpTermine" + Me.GrpTermine.Size = New System.Drawing.Size(283, 159) + Me.GrpTermine.TabIndex = 1 + Me.GrpTermine.TabStop = False + Me.GrpTermine.Text = "Termine" + ' + 'txtMutierer + ' + Me.txtMutierer.BackColor = System.Drawing.Color.White + Me.txtMutierer.Location = New System.Drawing.Point(114, 130) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 50 + ' + 'txtErstelltam + ' + Me.txtErstelltam.BackColor = System.Drawing.Color.White + Me.txtErstelltam.Location = New System.Drawing.Point(114, 79) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 48 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(8, 133) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 47 + Me.lblMutierer.Text = "Mutierer" + ' + 'txtMutiertam + ' + Me.txtMutiertam.BackColor = System.Drawing.Color.White + Me.txtMutiertam.Location = New System.Drawing.Point(114, 105) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 49 + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(8, 82) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 45 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(8, 108) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 46 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'txtZugewiesen + ' + Me.txtZugewiesen.BackColor = System.Drawing.Color.White + Me.txtZugewiesen.Location = New System.Drawing.Point(114, 49) + Me.txtZugewiesen.Name = "txtZugewiesen" + Me.txtZugewiesen.ReadOnly = True + Me.txtZugewiesen.Size = New System.Drawing.Size(159, 20) + Me.txtZugewiesen.TabIndex = 8 + ' + 'lblZugeweisen + ' + Me.lblZugeweisen.AutoSize = True + Me.lblZugeweisen.Location = New System.Drawing.Point(6, 52) + Me.lblZugeweisen.Name = "lblZugeweisen" + Me.lblZugeweisen.Size = New System.Drawing.Size(65, 13) + Me.lblZugeweisen.TabIndex = 7 + Me.lblZugeweisen.Text = "Zugewiesen" + ' + 'txtTermin + ' + Me.txtTermin.BackColor = System.Drawing.Color.White + Me.txtTermin.Location = New System.Drawing.Point(114, 23) + Me.txtTermin.Name = "txtTermin" + Me.txtTermin.ReadOnly = True + Me.txtTermin.Size = New System.Drawing.Size(159, 20) + Me.txtTermin.TabIndex = 6 + ' + 'lblTermin + ' + Me.lblTermin.AutoSize = True + Me.lblTermin.Location = New System.Drawing.Point(6, 26) + Me.lblTermin.Name = "lblTermin" + Me.lblTermin.Size = New System.Drawing.Size(39, 13) + Me.lblTermin.TabIndex = 6 + Me.lblTermin.Text = "Termin" + ' + 'GrpVerantwortung + ' + Me.GrpVerantwortung.Controls.Add(Me.txtVerantwortungISI) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.txtVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.lblInBearbeitung) + Me.GrpVerantwortung.Controls.Add(Me.txtAktuellVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortungIsi) + Me.GrpVerantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVerantwortung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GrpVerantwortung.Location = New System.Drawing.Point(0, 0) + Me.GrpVerantwortung.Name = "GrpVerantwortung" + Me.GrpVerantwortung.Size = New System.Drawing.Size(283, 119) + Me.GrpVerantwortung.TabIndex = 0 + Me.GrpVerantwortung.TabStop = False + Me.GrpVerantwortung.Text = "Verantwortlichkeiten" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.BackColor = System.Drawing.Color.White + Me.txtVerantwortungISI.Location = New System.Drawing.Point(114, 74) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungISI.TabIndex = 5 + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 26) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(104, 13) + Me.lblVerantwortlich.TabIndex = 0 + Me.lblVerantwortlich.Text = "Hauptverantwortung" + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtVerantwortlich.Location = New System.Drawing.Point(114, 23) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortlich.TabIndex = 3 + ' + 'lblInBearbeitung + ' + Me.lblInBearbeitung.AutoSize = True + Me.lblInBearbeitung.Location = New System.Drawing.Point(6, 51) + Me.lblInBearbeitung.Name = "lblInBearbeitung" + Me.lblInBearbeitung.Size = New System.Drawing.Size(93, 13) + Me.lblInBearbeitung.TabIndex = 1 + Me.lblInBearbeitung.Text = "In Bearbeitung bei" + ' + 'txtAktuellVerantwortlich + ' + Me.txtAktuellVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtAktuellVerantwortlich.Location = New System.Drawing.Point(114, 48) + Me.txtAktuellVerantwortlich.Name = "txtAktuellVerantwortlich" + Me.txtAktuellVerantwortlich.ReadOnly = True + Me.txtAktuellVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtAktuellVerantwortlich.TabIndex = 4 + ' + 'lblVerantwortungIsi + ' + Me.lblVerantwortungIsi.AutoSize = True + Me.lblVerantwortungIsi.Location = New System.Drawing.Point(6, 80) + Me.lblVerantwortungIsi.Name = "lblVerantwortungIsi" + Me.lblVerantwortungIsi.Size = New System.Drawing.Size(92, 13) + Me.lblVerantwortungIsi.TabIndex = 2 + Me.lblVerantwortungIsi.Text = "Verantwortung ISI" + ' + 'TabPage4 + ' + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Size = New System.Drawing.Size(1055, 287) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Resultat / Massnahmen" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.txtHilfsmittel) + Me.TabPage1.Controls.Add(Me.lblHilfsmittel) + Me.TabPage1.Controls.Add(Me.txtBezeichnung) + Me.TabPage1.Controls.Add(Me.lblBezeichnung) + Me.TabPage1.Controls.Add(Me.lblKontrollaktivität) + Me.TabPage1.Controls.Add(Me.txtBeschreibung) + Me.TabPage1.Controls.Add(Me.lblBeschreibung) + Me.TabPage1.Controls.Add(Me.lblEreignisse2) + Me.TabPage1.Controls.Add(Me.lblMassnahmen2) + Me.TabPage1.Controls.Add(Me.txtEreignisse) + Me.TabPage1.Controls.Add(Me.lblEreignisse) + Me.TabPage1.Controls.Add(Me.txtMassnahmen) + Me.TabPage1.Controls.Add(Me.lblMassnahmen1) + Me.TabPage1.Controls.Add(Me.txtPruefgegenstand) + Me.TabPage1.Controls.Add(Me.lblPruefgegenstand) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage1.Size = New System.Drawing.Size(1055, 287) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Definitionen für den Prüfschritt" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.BackColor = System.Drawing.Color.White + Me.txtHilfsmittel.Location = New System.Drawing.Point(98, 188) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.ReadOnly = True + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 78) + Me.txtHilfsmittel.TabIndex = 67 + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(12, 188) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 68 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.BackColor = System.Drawing.Color.White + Me.txtBezeichnung.Location = New System.Drawing.Point(98, 9) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 54 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(10, 11) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 66 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(10, 44) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 65 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.BackColor = System.Drawing.Color.White + Me.txtBeschreibung.Location = New System.Drawing.Point(98, 31) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 70) + Me.txtBeschreibung.TabIndex = 55 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(10, 31) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 64 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(530, 133) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(74, 13) + Me.lblEreignisse2.TabIndex = 63 + Me.lblEreignisse2.Text = "Info / Rapport" + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(528, 21) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 62 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'txtEreignisse + ' + Me.txtEreignisse.BackColor = System.Drawing.Color.White + Me.txtEreignisse.Location = New System.Drawing.Point(617, 132) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.ReadOnly = True + Me.txtEreignisse.Size = New System.Drawing.Size(427, 96) + Me.txtEreignisse.TabIndex = 58 + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(528, 34) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 61 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.BackColor = System.Drawing.Color.White + Me.txtMassnahmen.Location = New System.Drawing.Point(617, 5) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.ReadOnly = True + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 96) + Me.txtMassnahmen.TabIndex = 57 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(527, 8) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 60 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.BackColor = System.Drawing.Color.White + Me.txtPruefgegenstand.Location = New System.Drawing.Point(98, 106) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 78) + Me.txtPruefgegenstand.TabIndex = 56 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(12, 106) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 59 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.GroupBox1) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage2.Size = New System.Drawing.Size(1055, 287) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Dokumente" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(2, 2) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Size = New System.Drawing.Size(1051, 283) + Me.GroupBox1.TabIndex = 14 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(2, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(1047, 264) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.C1History) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Size = New System.Drawing.Size(1055, 287) + Me.TabPage5.TabIndex = 4 + Me.TabPage5.Text = "History" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'C1History + ' + Me.C1History.AllowUpdate = False + Me.C1History.AlternatingRows = True + Me.C1History.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1History.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1History.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1History.FilterBar = True + Me.C1History.GroupByCaption = "Drag a column header here to group by that column" + Me.C1History.Images.Add(CType(resources.GetObject("C1History.Images"), System.Drawing.Image)) + Me.C1History.Location = New System.Drawing.Point(0, 0) + Me.C1History.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1History.Name = "C1History" + Me.C1History.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1History.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1History.PreviewInfo.ZoomFactor = 75.0R + Me.C1History.PrintInfo.PageSettings = CType(resources.GetObject("C1History.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1History.Size = New System.Drawing.Size(1055, 287) + Me.C1History.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1History.TabIndex = 11 + Me.C1History.Text = "C1TrueDBGrid1" + Me.C1History.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1History.PropBag = resources.GetString("C1History.PropBag") + ' + 'frmPruefschrittUebersicht + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1063, 568) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.Name = "frmPruefschrittUebersicht" + Me.Text = "Prüfschtitt-Übersicht" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuPruefschritt.ResumeLayout(False) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.Panel2.PerformLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + Me.GrpStatus.ResumeLayout(False) + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStrip2.ResumeLayout(False) + Me.ToolStrip2.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPage3.ResumeLayout(False) + Me.PnlNotiz.ResumeLayout(False) + Me.GrpNotiz.ResumeLayout(False) + Me.GrpNotiz.PerformLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).EndInit() + Me.PnlVerantwortlichkeitTermin.ResumeLayout(False) + Me.GrpTermine.ResumeLayout(False) + Me.GrpTermine.PerformLayout() + Me.GrpVerantwortung.ResumeLayout(False) + Me.GrpVerantwortung.PerformLayout() + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.TabPage5.ResumeLayout(False) + CType(Me.C1History, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents SplitContainer1 As SplitContainer + Friend WithEvents SplitContainer2 As SplitContainer + Friend WithEvents TreeUebersicht As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents ImageList1 As ImageList + Friend WithEvents GroupBox1 As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents TabControl1 As TabControl + Friend WithEvents TabPage1 As TabPage + Friend WithEvents TabPage2 As TabPage + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblEreignisse2 As Label + Friend WithEvents lblMassnahmen2 As Label + Friend WithEvents txtEreignisse As TextBox + Friend WithEvents lblEreignisse As Label + Friend WithEvents txtMassnahmen As TextBox + Friend WithEvents lblMassnahmen1 As Label + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblHilfsmittel As Label + Friend WithEvents TabPage3 As TabPage + Friend WithEvents GrpTermine As GroupBox + Friend WithEvents txtZugewiesen As TextBox + Friend WithEvents lblZugeweisen As Label + Friend WithEvents txtTermin As TextBox + Friend WithEvents lblTermin As Label + Friend WithEvents GrpVerantwortung As GroupBox + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents lblInBearbeitung As Label + Friend WithEvents txtAktuellVerantwortlich As TextBox + Friend WithEvents lblVerantwortungIsi As Label + Friend WithEvents PnlVerantwortlichkeitTermin As Panel + Friend WithEvents txtMutierer As TextBox + Friend WithEvents txtErstelltam As TextBox + Friend WithEvents lblMutierer As Label + Friend WithEvents txtMutiertam As TextBox + Friend WithEvents lblErstelltam As Label + Friend WithEvents lblMutiertam As Label + Friend WithEvents PnlNotiz As Panel + Friend WithEvents GrpNotiz As GroupBox + Friend WithEvents txtnotiz As TextBox + Friend WithEvents TabPage4 As TabPage + Friend WithEvents ctxMenuPruefschritt As ContextMenuStrip + Friend WithEvents BearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents WeiterleitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AbschliessenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripButton2 As ToolStripButton + Friend WithEvents C1Notiz As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents TabPage5 As TabPage + Friend WithEvents C1History As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents tsbtnNeuesFinding As ToolStripButton + Friend WithEvents tsbtnPruefschrittbearbeiten As ToolStripButton + Friend WithEvents tsbtnFindingDelete As ToolStripButton + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents AnzeigenToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Application.Designer.vb b/SW/20211125/AssessmentMgmt/My Project/Application.Designer.vb similarity index 57% rename from SW/WindowsApplication1/WindowsApplication1/My Project/Application.Designer.vb rename to SW/20211125/AssessmentMgmt/My Project/Application.Designer.vb index a407882..0cf0cd0 100644 --- a/SW/WindowsApplication1/WindowsApplication1/My Project/Application.Designer.vb +++ b/SW/20211125/AssessmentMgmt/My Project/Application.Designer.vb @@ -1,10 +1,10 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ @@ -14,10 +14,10 @@ Option Explicit On Namespace My - 'NOTE: This file is auto-generated; do not modify it directly. To make changes, - ' or if you encounter build errors in this file, go to the Project Designer - ' (go to Project Properties or double-click the My Project node in - ' Solution Explorer), and make changes on the Application tab. + 'HINWEIS: Diese Datei wird automatisch generiert. Ändern Sie sie nicht direkt. Zum Ändern + ' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer. + ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im + ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor. ' Partial Friend Class MyApplication @@ -32,7 +32,7 @@ Namespace My _ Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.WindowsApplication1.Form1 + Me.MainForm = Global.AssetMgmt.frmMain End Sub End Class End Namespace diff --git a/SW/20211125/AssessmentMgmt/My Project/Application.myapp b/SW/20211125/AssessmentMgmt/My Project/Application.myapp new file mode 100644 index 0000000..5907301 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + frmMain + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/My Project/AssemblyInfo.vb b/SW/20211125/AssessmentMgmt/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b821a42 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Allgemeine Informationen über eine Assembly werden über die folgenden +' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +' die mit einer Assembly verknüpft sind. + +' Die Werte der Assemblyattribute überprüfen + + + + + + + + + + +'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird + + +' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +' +' Hauptversion +' Nebenversion +' Buildnummer +' Revision +' +' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +' übernehmen, indem Sie "*" eingeben: +' + + + diff --git a/SW/20211125/AssessmentMgmt/My Project/Resources.Designer.vb b/SW/20211125/AssessmentMgmt/My Project/Resources.Designer.vb new file mode 100644 index 0000000..7edf372 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + ''' + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("AssetMgmt.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/SW/Dokumente_sik/My Project/Resources.resx b/SW/20211125/AssessmentMgmt/My Project/Resources.resx similarity index 100% rename from SW/Dokumente_sik/My Project/Resources.resx rename to SW/20211125/AssessmentMgmt/My Project/Resources.resx diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Settings.Designer.vb b/SW/20211125/AssessmentMgmt/My Project/Settings.Designer.vb similarity index 50% rename from SW/WindowsApplication1/WindowsApplication1/My Project/Settings.Designer.vb rename to SW/20211125/AssessmentMgmt/My Project/Settings.Designer.vb index 68fd41c..05f9176 100644 --- a/SW/WindowsApplication1/WindowsApplication1/My Project/Settings.Designer.vb +++ b/SW/20211125/AssessmentMgmt/My Project/Settings.Designer.vb @@ -1,10 +1,10 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ @@ -13,42 +13,42 @@ Option Explicit On Namespace My - - _ + + _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Funktion zum automatischen Speichern von My.Settings" #If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean + Private Shared addedHandler As Boolean - Private Shared addedHandlerLockObject As New Object + Private Shared addedHandlerLockObject As New Object - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub #End If #End Region - + Public Shared ReadOnly Property [Default]() As MySettings Get - + #If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If #End If Return defaultInstance End Get @@ -64,9 +64,9 @@ Namespace My Friend Module MySettingsProperty _ - Friend ReadOnly Property Settings() As Global.WindowsApplication1.My.MySettings + Friend ReadOnly Property Settings() As Global.AssetMgmt.My.MySettings Get - Return Global.WindowsApplication1.My.MySettings.Default + Return Global.AssetMgmt.My.MySettings.Default End Get End Property End Module diff --git a/SW/Dokumente_sik/My Project/Settings.settings b/SW/20211125/AssessmentMgmt/My Project/Settings.settings similarity index 100% rename from SW/Dokumente_sik/My Project/Settings.settings rename to SW/20211125/AssessmentMgmt/My Project/Settings.settings diff --git a/SW/20211125/AssessmentMgmt/My Project/licenses.licx b/SW/20211125/AssessmentMgmt/My Project/licenses.licx new file mode 100644 index 0000000..6e595ca --- /dev/null +++ b/SW/20211125/AssessmentMgmt/My Project/licenses.licx @@ -0,0 +1 @@ +C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20162.166, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da diff --git a/SW/20211125/AssessmentMgmt/My Project/licenses.licx.bak b/SW/20211125/AssessmentMgmt/My Project/licenses.licx.bak new file mode 100644 index 0000000..566afd9 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/My Project/licenses.licx.bak @@ -0,0 +1,4 @@ +C1.C1Pdf.C1PdfDocument, C1.C1Pdf.4, Version=4.0.20153.110, Culture=neutral, PublicKeyToken=79882d576c6336da +C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=79882d576c6336da +C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da +Telerik.WinControls.UI.RadPdfViewer, Telerik.WinControls.PdfViewer, Version=2017.1.221.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.Designer.vb new file mode 100644 index 0000000..075c502 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.Designer.vb @@ -0,0 +1,99 @@ + _ +Partial Class FrmDefinition_Pruefplan + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.dtGueltigBis = New System.Windows.Forms.DateTimePicker() + Me.lblGueltigBis = New System.Windows.Forms.Label() + Me.cbAktiv = New System.Windows.Forms.CheckBox() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.btnOK = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'dtGueltigBis + ' + Me.dtGueltigBis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtGueltigBis.Location = New System.Drawing.Point(85, 20) + Me.dtGueltigBis.Name = "dtGueltigBis" + Me.dtGueltigBis.Size = New System.Drawing.Size(108, 20) + Me.dtGueltigBis.TabIndex = 38 + ' + 'lblGueltigBis + ' + Me.lblGueltigBis.AutoSize = True + Me.lblGueltigBis.Location = New System.Drawing.Point(12, 23) + Me.lblGueltigBis.Name = "lblGueltigBis" + Me.lblGueltigBis.Size = New System.Drawing.Size(50, 13) + Me.lblGueltigBis.TabIndex = 37 + Me.lblGueltigBis.Text = "Gültig bis" + ' + 'cbAktiv + ' + Me.cbAktiv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbAktiv.AutoSize = True + Me.cbAktiv.Location = New System.Drawing.Point(87, 51) + Me.cbAktiv.Name = "cbAktiv" + Me.cbAktiv.Size = New System.Drawing.Size(15, 14) + Me.cbAktiv.TabIndex = 48 + Me.cbAktiv.UseVisualStyleBackColor = True + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(12, 52) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 47 + Me.lblAktiv.Text = "Aktiv" + ' + 'btnOK + ' + Me.btnOK.Location = New System.Drawing.Point(98, 99) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(75, 23) + Me.btnOK.TabIndex = 49 + Me.btnOK.Text = "OK" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'FrmDefinition_Pruefplan + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(293, 134) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.cbAktiv) + Me.Controls.Add(Me.lblAktiv) + Me.Controls.Add(Me.dtGueltigBis) + Me.Controls.Add(Me.lblGueltigBis) + Me.Name = "FrmDefinition_Pruefplan" + Me.Text = "Details Definition - Prüfplan" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents dtGueltigBis As DateTimePicker + Friend WithEvents lblGueltigBis As Label + Friend WithEvents cbAktiv As CheckBox + Friend WithEvents lblAktiv As Label + Friend WithEvents btnOK As Button +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.resx b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.vb b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.vb new file mode 100644 index 0000000..47f890d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/FrmDefinition_Pruefplan.vb @@ -0,0 +1,32 @@ +Public Class FrmDefinition_Pruefplan + + Dim m_aktiv As Boolean + Property Aktiv As Boolean + Get + Return m_aktiv + End Get + Set(value As Boolean) + m_aktiv = value + End Set + End Property + + Dim m_gueltig_bis As DateTime + Property Gueltig_Bis As DateTime + Get + Return m_gueltig_bis + End Get + Set(value As DateTime) + m_gueltig_bis = value + End Set + End Property + Private Sub FrmDefinition_Pruefplan_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.dtGueltigBis.Value = Me.Gueltig_Bis + Me.cbAktiv.Checked = Me.Aktiv = True + End Sub + + Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click + Me.Gueltig_Bis = Me.dtGueltigBis.Value + Me.Aktiv = Me.cbAktiv.Checked + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/clspruefplan.vb b/SW/20211125/AssessmentMgmt/Pruefplan/clspruefplan.vb new file mode 100644 index 0000000..5196590 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/clspruefplan.vb @@ -0,0 +1,762 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Imports DropDownControls + +Public Class clspruefplan + Inherits DB.clsPruefplan + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Public Zeitpunkt As New DataTable + Public Periodizitaet As New DataTable + Public Prioritaet As New DataTable + Public VerantwortungISI As New DataTable + Public VerantwortungPlan As New DataTable + Public Verantwortung As New DataTable + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim Definition_Pruefplan As New DataTable + Dim clsDefinition_Pruefplan As New DB.clsDefinition_Pruefplan + Public Terminierung As New DataTable + + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + Sub New() + MyBase.New() + Zeitpunkt = stammdaten.Get_Stammdaten("Zeitpunkt", "Beschreibung") + Periodizitaet = stammdaten.Get_Stammdaten("Periodizitaet", "Bezeichnung") + Prioritaet = stammdaten.Get_Stammdaten("Prioritaet", "Bezeichnung") + VerantwortungISI = stammdaten.Get_Stammdaten("VerantwortungIsi", "Bezeichnung") + Verantwortung = stammdaten.Get_Stammdaten("Verantwortung", "Bezeichnung") + Terminierung = stammdaten.Get_Stammdaten("Terminierung", "Bezeichnung") + VerantwortungPlan = stammdaten.Get_Stammdaten("VerantwortungIsi", "Bezeichnung") + End Sub + + + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.Zeitpunkt.Dispose() + Me.Periodizitaet.Dispose() + Me.Prioritaet.Dispose() + Me.VerantwortungISI.Dispose() + Me.Verantwortung.Dispose() + Me.stammdaten = Nothing + Me.Definition_Pruefplan.Dispose() + Me.VerantwortungPlan.Dispose() + + + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefplanNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Pruefplan") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefplanNr = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Pruefplan") + db.Dispose() + Me.iPruefplanNr = New SqlInt32(CType(newkey, Int32)) + Me.daGueltig_Bis = New SqlDateTime(CType("31.12.2099", DateTime)) + Me.iPrioritaetNr = New SqlInt32(CType(0, Int32)) + Me.iPeriodizitaetNr = New SqlInt32(CType(0, Int32)) + Me.iZeitpunktNr = New SqlInt32(CType(0, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.sPruefgegenstand = New SqlString(CType("", String)) + Me.sHilfsmittel = New SqlString(CType("", String)) + Me.sMassnahmen = New SqlString(CType("", String)) + Me.iVerantwortungISINr = New SqlInt32(CType(0, Int32)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daErstmals_am = New SqlDateTime(CType(DateAdd(DateInterval.Day, 1, Now), DateTime)) + Me.iTerminierungID = New SqlInt32(CType(0, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefplanNr.Value + End Function + + Public Function Get_Pruefplan(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefplan" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefplan", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Function + + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer, Optional Searchstring As String = "") + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefplan" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.Parameters.Add(New SqlParameter("@Searchstring", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Searchstring)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefplan", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Public Function Get_Definition_Pruefplan(ByVal Key As Integer, ByRef cb As CheckedListBox) + Me.Definition_Pruefplan.Rows.Clear() + Try + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_definition_pruefplan" + sqlcmd.Parameters.Add(New SqlParameter("@pruefplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Me.Definition_Pruefplan) + + For Each r As DataRow In Definition_Pruefplan.Rows + cb.Items.Add(r.Item("Bezeichnung"), True) + Next + 'cb.DataSource = Definition_Pruefplan + 'cb.ValueMember = "Definition_PruefplanNr" + 'cb.DisplayMember = "Bezeichnung" + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Public Function Add_new_Zuordnung(ByVal Pruefplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef chkcb As CheckedListBox) + For Each r As DataRow In Me.Definition_Pruefplan.Rows + If r.Item(1) = DefinitionNr Then + MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation) + Exit Function + End If + Next + Dim dr As DataRow = Me.Definition_Pruefplan.NewRow + dr.Item(1) = DefinitionNr + dr.Item(2) = Pruefplannr + dr.Item(3) = "31.12.2099" + dr.Item(4) = True + dr.Item(5) = Now + dr.Item(6) = Now + dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value + dr.Item(8) = nodetext + Me.Definition_Pruefplan.Rows.Add(dr) + chkcb.Items.Add(nodetext + " | " + dr.Item(3).ToString, True) + + End Function + + Public Function Get_Definition_Pruefplan(ByVal Key As Integer, ByRef tree As AdvTree.AdvTree) + Me.Definition_Pruefplan.Rows.Clear() + Try + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_definition_pruefplan" + sqlcmd.Parameters.Add(New SqlParameter("@pruefplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Me.Definition_Pruefplan) + Set_Zuordnungnodes(Definition_Pruefplan, tree) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + Public Function Add_new_Zuordnung(ByVal Pruefplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef tree As AdvTree.AdvTree) + For Each r As DataRow In Me.Definition_Pruefplan.Rows + If r.Item(1) = DefinitionNr And (r(4) = True Or r(3) < Now) Then + MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation) + Exit Function + End If + Next + Dim dr As DataRow = Me.Definition_Pruefplan.NewRow + dr.Item(0) = Format(Now, "ddhhmmss") + dr.Item(1) = DefinitionNr + dr.Item(2) = Pruefplannr + dr.Item(3) = "31.12.2099" + dr.Item(4) = True + dr.Item(5) = Now + dr.Item(6) = Now + dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value + dr.Item(8) = nodetext + Me.Definition_Pruefplan.Rows.Add(dr) + + Set_Zuordnungnodes(Definition_Pruefplan, tree) + End Function + + Sub Set_Zuordnungnodes(data As DataTable, ByRef tree As AdvTree.AdvTree) + tree.Nodes.Clear() + For Each r As DataRow In data.Rows + Dim tn As New AdvTree.Node + tn.Tag = r(0) + tn.Text = r(8) + tree.Nodes.Add(tn) + Dim tn1 As New AdvTree.Node + tn1.Text = r(3) + tn1.Tag = r(4) + tn.Nodes.Add(tn1) + tn.ImageIndex = 0 + If r(3) < "31.12.2099" And r(3) > Now Then tn.ImageIndex = 3 + If r(3) < Now Then tn.ImageIndex = 2 + If r(4) = False Then tn.ImageIndex = 1 + + Next + + End Sub + + Public Sub Update_Zuordnung(ByVal ID As Integer, Aktiv As Boolean, gueltig As DateTime) + For Each r As DataRow In Me.Definition_Pruefplan.Rows + If r.Item(0) = ID Then + r(4) = Aktiv + r(3) = gueltig + End If + Next + End Sub + + Public Function Save_Definition_Pruefplan(ByRef tree As AdvTree.AdvTree) + + clsDefinition_Pruefplan.sConnectionString = Globals.sConnectionString + For Each n As AdvTree.Node In tree.Nodes + For Each r As DataRow In Definition_Pruefplan.Rows + If r(0) = n.Tag Then + If r(0) > 100000 Then + clsDefinition_Pruefplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32)) + clsDefinition_Pruefplan.iPruefplanNr = New SqlInt32(CType(r(2), Int32)) + clsDefinition_Pruefplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime)) + clsDefinition_Pruefplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Pruefplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Pruefplan.bAktiv = New SqlBoolean(CType(True, Boolean)) + clsDefinition_Pruefplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + conn.OpenConnection() + clsDefinition_Pruefplan.Insert() + conn.CloseConnection(True) + Else + clsDefinition_Pruefplan.iDefinition_PruefplanNr = New SqlInt32(CType(r(0), Int32)) + clsDefinition_Pruefplan.cpMainConnectionProvider = Globals.conn + clsDefinition_Pruefplan.SelectOne() + Dim tn1 As New AdvTree.Node + tn1 = n.Nodes(0) + If tn1.Tag <> clsDefinition_Pruefplan.bAktiv.Value Or tn1.Text <> clsDefinition_Pruefplan.daGueltig_Bis.Value Then + clsDefinition_Pruefplan.iDefinition_PruefplanNr = New SqlInt32(CType(r(0), Int32)) + clsDefinition_Pruefplan.cpMainConnectionProvider = Globals.conn + clsDefinition_Pruefplan.SelectOne() + clsDefinition_Pruefplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32)) + clsDefinition_Pruefplan.iPruefplanNr = New SqlInt32(CType(r(2), Int32)) + clsDefinition_Pruefplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime)) + clsDefinition_Pruefplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Pruefplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + clsDefinition_Pruefplan.bAktiv = New SqlBoolean(CType(tn1.Tag, Boolean)) + clsDefinition_Pruefplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + conn.OpenConnection() + clsDefinition_Pruefplan.Update() + conn.CloseConnection(True) + End If + + + End If + End If + + Next + Next + + End Function + +End Class + +Public Class clsPlanTree + +#Region "Deklarationen" + + Dim treedata As New DataSet + + Dim TreeaufbauSuche As Boolean = False + Dim TreeaufbauNr As Integer = 0 + Dim FoundNode As Integer = 0 + Dim Searchstring As String = "" + Public Treesearch As New AdvTree.AdvTree + +#End Region + +#Region "Tree" + + Public Sub Load_Treeview(ByRef tree As DevComponents.AdvTree.AdvTree) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata("") + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", + oDS.Tables(0).Columns("id"), + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + + End Sub + + Public Function Load_Treedata(ByVal datatype As String) As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_PruefplanStruktur" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = datatype + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + + + + Protected Function GetAllNodes(ByVal treestruktur As DevComponents.AdvTree.AdvTree) As List(Of TreeNode) + + Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)() + + ' start recursion for each root node of the treeview + For i As Integer = 0 To treestruktur.Nodes.Count - 1 + GetAllNodes(treestruktur.Nodes(i), allNodes) + Next + + Return allNodes + + End Function + + Protected Sub GetAllNodes(ByVal subRoot As DevComponents.AdvTree.Node, ByVal allNodes As List(Of TreeNode)) + + ' check for null (this can be removed since within th + If (subRoot Is Nothing) Then + Exit Sub + End If + + ' add subroot + Dim r As DataRow + r = treedata_for_search.NewRow + r.Item(0) = subRoot.Tag + Try + r.Item(1) = subRoot.Parent.Tag + Catch + r.Item(1) = 0 + End Try + + r.Item(2) = subRoot.Text + r.Item(3) = subRoot.ImageIndex + treedata_for_search.Rows.Add(r) + 'allNodes.Add(subRoot) + ' add all it's children + For i As Integer = 0 To subRoot.Nodes.Count - 1 + GetAllNodes(subRoot.Nodes(i), allNodes) + Next + + + End Sub + + + ''' + ''' Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As DevComponents.AdvTree.AdvTree) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New DevComponents.AdvTree.Node + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New DevComponents.AdvTree.Node + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree(oChildRow, oChildNode) + Next oChildRow + End Sub + Public Function FindNode(ByVal _nodeCollection As AdvTree.NodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As AdvTree.Node + Dim tmpNode As AdvTree.Node + For Each _child As AdvTree.Node In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + Public Function Init_Search() + FoundNode = 0 + Searchstring = "" + Me.Treesearch.Nodes.Clear() + End Function + + Public Function SearchNode(ByRef tree As AdvTree.AdvTree, ByVal SearchString As String) As AdvTree.Node + 'Return tree.FindNodeByCellText(SearchString) + + Me.Treesearch.Nodes.Clear() + For Each dr As DataRow In treedata_for_search.Rows + 'InStr(UCase(SearchString), UCase(dr.Item("Bezeichnung"))) + If InStr(UCase(dr.Item("Bezeichnung")), UCase(SearchString)) > 0 Or InStr(UCase(dr.Item("ErweiterteSuche")), UCase(SearchString)) > 0 Then + Dim tn As New AdvTree.Node + tn.Text = dr.Item("Bezeichnung") + tn.Tag = dr.Item("id") + Treesearch.Nodes.Add(tn) + End If + Next + Return FindFirst(tree) + End Function + + Public Function FindFirst(ByRef Tree As AdvTree.AdvTree) As AdvTree.Node + Try + If Me.Treesearch.Nodes.Count > 0 Then Me.Treesearch.SelectedNode = Me.Treesearch.Nodes(0) + Return FindNode(Tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch + End Try + End Function + + + + Public Function FindNextNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.NextNode + If Treesearch.SelectedNode Is Nothing Then + Return FindFirst(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + + End Try + End Function + + Public Function FindPrevNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.PrevNode + If Treesearch.SelectedNode Is Nothing Then + Return FindLastNode(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + End Function + + Public Function FindLastNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.Nodes(Treesearch.Nodes.Count - 1) + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + + End Function + + + + +#End Region + + +#Region "ComboboxFilter" + Public Sub Refresh_Filter(ByRef cbx As ToolStripComboBox) + Dim s As String + s = cbx.SelectedText.ToString + cbx.Items.Clear() + cbx.Items.Add("-- Alle --") + For Each r As DataRow In treedata.Tables(0).Rows + Try + If r("Parentid") = 0 Then + cbx.Items.Add(r("bezeichnung")) + End If + Catch + End Try + + Next + If s <> "" Then cbx.Text = s + End Sub +#End Region + + + +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb new file mode 100644 index 0000000..228599f --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb @@ -0,0 +1,772 @@ + _ +Partial Class frmPPlan + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPPlan)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuDetails = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.DetailsAnzeigenBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeueDefinitionErfassenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() + Me.VorgabeAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PrüfschrittGenerierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripPruefplan = New System.Windows.Forms.ToolStrip() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.TSBtnAddNew = New System.Windows.Forms.ToolStripButton() + Me.TSBtnDelete = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSetSecurityObject = New System.Windows.Forms.ToolStripButton() + Me.tsbtnReport = New System.Windows.Forms.ToolStripButton() + Me.tsbtncopy1 = New System.Windows.Forms.ToolStripButton() + Me.tsbtnCopy2 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GrpDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.grpDetails = New System.Windows.Forms.GroupBox() + Me.cbSelbstkontrolle = New System.Windows.Forms.CheckBox() + Me.cbKeinMail = New System.Windows.Forms.CheckBox() + Me.lblSelbstkontrolle = New System.Windows.Forms.Label() + Me.lblKeinMail = New System.Windows.Forms.Label() + Me.txtVerantwortlichPlan = New System.Windows.Forms.TextBox() + Me.lblVerantwortlichPlan = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.txtGueltigbis = New System.Windows.Forms.TextBox() + Me.lblGueltigbis = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblVerantwortlichISI = New System.Windows.Forms.Label() + Me.lblVerantwortlichDurchführung = New System.Windows.Forms.Label() + Me.txtZeitpunkt = New System.Windows.Forms.TextBox() + Me.lblZeitpunkt = New System.Windows.Forms.Label() + Me.txtPeriodizitaet = New System.Windows.Forms.TextBox() + Me.lblPeriodizitaet = New System.Windows.Forms.Label() + Me.txtPrioritaet = New System.Windows.Forms.TextBox() + Me.lblPrioritaet = New System.Windows.Forms.Label() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.DefinitionAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuDetails.SuspendLayout() + Me.ToolStripPruefplan.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.GrpDokumente.SuspendLayout() + Me.grpDetails.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(958, 24) + Me.MenuStrip1.TabIndex = 4 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.ToolStripButton3, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(958, 25) + Me.ToolStrip1.TabIndex = 5 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "ToolStripButton1" + Me.ToolStripButton3.Visible = False + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.C1Daten) + Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStripPruefplan) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.Panel1) + Me.SplitContainer1.Size = New System.Drawing.Size(958, 623) + Me.SplitContainer1.SplitterDistance = 316 + Me.SplitContainer1.TabIndex = 6 + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuDetails + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(958, 291) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 9 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuDetails + ' + Me.ctxMenuDetails.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuDetails.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DetailsAnzeigenBearbeitenToolStripMenuItem, Me.NeueDefinitionErfassenToolStripMenuItem, Me.ToolStripMenuItem1, Me.VorgabeAnzeigenToolStripMenuItem, Me.PrüfschrittGenerierenToolStripMenuItem}) + Me.ctxMenuDetails.Name = "ctxMenuDetails" + Me.ctxMenuDetails.Size = New System.Drawing.Size(246, 98) + ' + 'DetailsAnzeigenBearbeitenToolStripMenuItem + ' + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Name = "DetailsAnzeigenBearbeitenToolStripMenuItem" + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(245, 22) + Me.DetailsAnzeigenBearbeitenToolStripMenuItem.Text = "Details anzeigen / bearbeiten" + ' + 'NeueDefinitionErfassenToolStripMenuItem + ' + Me.NeueDefinitionErfassenToolStripMenuItem.Name = "NeueDefinitionErfassenToolStripMenuItem" + Me.NeueDefinitionErfassenToolStripMenuItem.Size = New System.Drawing.Size(245, 22) + Me.NeueDefinitionErfassenToolStripMenuItem.Text = "Neuer Assessment-Plan erfassen" + ' + 'ToolStripMenuItem1 + ' + Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" + Me.ToolStripMenuItem1.Size = New System.Drawing.Size(242, 6) + ' + 'VorgabeAnzeigenToolStripMenuItem + ' + Me.VorgabeAnzeigenToolStripMenuItem.Name = "VorgabeAnzeigenToolStripMenuItem" + Me.VorgabeAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(245, 22) + Me.VorgabeAnzeigenToolStripMenuItem.Text = "Vorgabe anzeigen" + ' + 'PrüfschrittGenerierenToolStripMenuItem + ' + Me.PrüfschrittGenerierenToolStripMenuItem.Name = "PrüfschrittGenerierenToolStripMenuItem" + Me.PrüfschrittGenerierenToolStripMenuItem.Size = New System.Drawing.Size(245, 22) + Me.PrüfschrittGenerierenToolStripMenuItem.Text = "Assessment generieren" + ' + 'ToolStripPruefplan + ' + Me.ToolStripPruefplan.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnSave, Me.TSBtnAddNew, Me.TSBtnDelete, Me.TSBtnSetSecurityObject, Me.tsbtnReport, Me.tsbtncopy1, Me.tsbtnCopy2, Me.ToolStripButton2}) + Me.ToolStripPruefplan.Location = New System.Drawing.Point(0, 0) + Me.ToolStripPruefplan.Name = "ToolStripPruefplan" + Me.ToolStripPruefplan.Size = New System.Drawing.Size(958, 25) + Me.ToolStripPruefplan.TabIndex = 10 + Me.ToolStripPruefplan.Text = "ToolStrip2" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + Me.TSBtnSave.Visible = False + ' + 'TSBtnAddNew + ' + Me.TSBtnAddNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnAddNew.Image = CType(resources.GetObject("TSBtnAddNew.Image"), System.Drawing.Image) + Me.TSBtnAddNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnAddNew.Name = "TSBtnAddNew" + Me.TSBtnAddNew.Size = New System.Drawing.Size(23, 22) + Me.TSBtnAddNew.Text = "Neu" + ' + 'TSBtnDelete + ' + Me.TSBtnDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnDelete.Image = CType(resources.GetObject("TSBtnDelete.Image"), System.Drawing.Image) + Me.TSBtnDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnDelete.Name = "TSBtnDelete" + Me.TSBtnDelete.Size = New System.Drawing.Size(23, 22) + Me.TSBtnDelete.Text = "Löschen" + ' + 'TSBtnSetSecurityObject + ' + Me.TSBtnSetSecurityObject.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSetSecurityObject.Image = CType(resources.GetObject("TSBtnSetSecurityObject.Image"), System.Drawing.Image) + Me.TSBtnSetSecurityObject.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSetSecurityObject.Name = "TSBtnSetSecurityObject" + Me.TSBtnSetSecurityObject.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSetSecurityObject.Text = "SecurityObjekte generieren" + Me.TSBtnSetSecurityObject.Visible = False + ' + 'tsbtnReport + ' + Me.tsbtnReport.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnReport.Image = CType(resources.GetObject("tsbtnReport.Image"), System.Drawing.Image) + Me.tsbtnReport.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnReport.Name = "tsbtnReport" + Me.tsbtnReport.Size = New System.Drawing.Size(23, 22) + Me.tsbtnReport.Text = "Auswertung" + Me.tsbtnReport.Visible = False + ' + 'tsbtncopy1 + ' + Me.tsbtncopy1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtncopy1.Image = CType(resources.GetObject("tsbtncopy1.Image"), System.Drawing.Image) + Me.tsbtncopy1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtncopy1.Name = "tsbtncopy1" + Me.tsbtncopy1.Size = New System.Drawing.Size(23, 22) + Me.tsbtncopy1.Text = "In Zwischenablage kopieren" + Me.tsbtncopy1.Visible = False + ' + 'tsbtnCopy2 + ' + Me.tsbtnCopy2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnCopy2.Image = CType(resources.GetObject("tsbtnCopy2.Image"), System.Drawing.Image) + Me.tsbtnCopy2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnCopy2.Name = "tsbtnCopy2" + Me.tsbtnCopy2.Size = New System.Drawing.Size(23, 22) + Me.tsbtnCopy2.Text = "In Zwischenablage kopieren" + Me.tsbtnCopy2.Visible = False + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "Bearbeiten" + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.GrpDokumente) + Me.Panel1.Controls.Add(Me.grpDetails) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(958, 404) + Me.Panel1.TabIndex = 0 + ' + 'GrpDokumente + ' + Me.GrpDokumente.Controls.Add(Me.DokumenteAllgemein) + Me.GrpDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumente.Location = New System.Drawing.Point(484, 0) + Me.GrpDokumente.Name = "GrpDokumente" + Me.GrpDokumente.Size = New System.Drawing.Size(474, 404) + Me.GrpDokumente.TabIndex = 69 + Me.GrpDokumente.TabStop = False + Me.GrpDokumente.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(468, 385) + Me.DokumenteAllgemein.TabIndex = 32 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'grpDetails + ' + Me.grpDetails.Controls.Add(Me.cbSelbstkontrolle) + Me.grpDetails.Controls.Add(Me.cbKeinMail) + Me.grpDetails.Controls.Add(Me.lblSelbstkontrolle) + Me.grpDetails.Controls.Add(Me.lblKeinMail) + Me.grpDetails.Controls.Add(Me.txtVerantwortlichPlan) + Me.grpDetails.Controls.Add(Me.lblVerantwortlichPlan) + Me.grpDetails.Controls.Add(Me.Label2) + Me.grpDetails.Controls.Add(Me.txtGueltigbis) + Me.grpDetails.Controls.Add(Me.lblGueltigbis) + Me.grpDetails.Controls.Add(Me.txtBezeichnung) + Me.grpDetails.Controls.Add(Me.lblBezeichnung) + Me.grpDetails.Controls.Add(Me.txtBeschreibung) + Me.grpDetails.Controls.Add(Me.lblKontrollaktivität) + Me.grpDetails.Controls.Add(Me.txtVerantwortungISI) + Me.grpDetails.Controls.Add(Me.txtVerantwortlich) + Me.grpDetails.Controls.Add(Me.lblVerantwortlichISI) + Me.grpDetails.Controls.Add(Me.lblVerantwortlichDurchführung) + Me.grpDetails.Controls.Add(Me.txtZeitpunkt) + Me.grpDetails.Controls.Add(Me.lblZeitpunkt) + Me.grpDetails.Controls.Add(Me.txtPeriodizitaet) + Me.grpDetails.Controls.Add(Me.lblPeriodizitaet) + Me.grpDetails.Controls.Add(Me.txtPrioritaet) + Me.grpDetails.Controls.Add(Me.lblPrioritaet) + Me.grpDetails.Controls.Add(Me.lblPruefgegenstand) + Me.grpDetails.Controls.Add(Me.txtPruefgegenstand) + Me.grpDetails.Dock = System.Windows.Forms.DockStyle.Left + Me.grpDetails.Location = New System.Drawing.Point(0, 0) + Me.grpDetails.Name = "grpDetails" + Me.grpDetails.Size = New System.Drawing.Size(484, 404) + Me.grpDetails.TabIndex = 68 + Me.grpDetails.TabStop = False + Me.grpDetails.Text = "Details" + ' + 'cbSelbstkontrolle + ' + Me.cbSelbstkontrolle.AutoSize = True + Me.cbSelbstkontrolle.Enabled = False + Me.cbSelbstkontrolle.Location = New System.Drawing.Point(316, 281) + Me.cbSelbstkontrolle.Name = "cbSelbstkontrolle" + Me.cbSelbstkontrolle.Size = New System.Drawing.Size(15, 14) + Me.cbSelbstkontrolle.TabIndex = 91 + Me.cbSelbstkontrolle.UseVisualStyleBackColor = True + ' + 'cbKeinMail + ' + Me.cbKeinMail.AutoSize = True + Me.cbKeinMail.Enabled = False + Me.cbKeinMail.Location = New System.Drawing.Point(106, 280) + Me.cbKeinMail.Name = "cbKeinMail" + Me.cbKeinMail.Size = New System.Drawing.Size(15, 14) + Me.cbKeinMail.TabIndex = 90 + Me.cbKeinMail.UseVisualStyleBackColor = True + ' + 'lblSelbstkontrolle + ' + Me.lblSelbstkontrolle.AutoSize = True + Me.lblSelbstkontrolle.Location = New System.Drawing.Point(229, 281) + Me.lblSelbstkontrolle.Name = "lblSelbstkontrolle" + Me.lblSelbstkontrolle.Size = New System.Drawing.Size(76, 13) + Me.lblSelbstkontrolle.TabIndex = 89 + Me.lblSelbstkontrolle.Text = "Selbstkontrolle" + ' + 'lblKeinMail + ' + Me.lblKeinMail.AutoSize = True + Me.lblKeinMail.Location = New System.Drawing.Point(7, 281) + Me.lblKeinMail.Name = "lblKeinMail" + Me.lblKeinMail.Size = New System.Drawing.Size(50, 13) + Me.lblKeinMail.TabIndex = 88 + Me.lblKeinMail.Text = "Kein Mail" + ' + 'txtVerantwortlichPlan + ' + Me.txtVerantwortlichPlan.Location = New System.Drawing.Point(316, 204) + Me.txtVerantwortlichPlan.Name = "txtVerantwortlichPlan" + Me.txtVerantwortlichPlan.ReadOnly = True + Me.txtVerantwortlichPlan.Size = New System.Drawing.Size(125, 20) + Me.txtVerantwortlichPlan.TabIndex = 87 + ' + 'lblVerantwortlichPlan + ' + Me.lblVerantwortlichPlan.AutoSize = True + Me.lblVerantwortlichPlan.Location = New System.Drawing.Point(229, 207) + Me.lblVerantwortlichPlan.Name = "lblVerantwortlichPlan" + Me.lblVerantwortlichPlan.Size = New System.Drawing.Size(28, 13) + Me.lblVerantwortlichPlan.TabIndex = 86 + Me.lblVerantwortlichPlan.Text = "Plan" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(229, 181) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(74, 13) + Me.Label2.TabIndex = 85 + Me.Label2.Text = "Verantwortlich" + ' + 'txtGueltigbis + ' + Me.txtGueltigbis.Location = New System.Drawing.Point(106, 253) + Me.txtGueltigbis.Name = "txtGueltigbis" + Me.txtGueltigbis.ReadOnly = True + Me.txtGueltigbis.Size = New System.Drawing.Size(103, 20) + Me.txtGueltigbis.TabIndex = 84 + ' + 'lblGueltigbis + ' + Me.lblGueltigbis.AutoSize = True + Me.lblGueltigbis.Location = New System.Drawing.Point(9, 256) + Me.lblGueltigbis.Name = "lblGueltigbis" + Me.lblGueltigbis.Size = New System.Drawing.Size(50, 13) + Me.lblGueltigbis.TabIndex = 83 + Me.lblGueltigbis.Text = "Gültig bis" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.Location = New System.Drawing.Point(106, 13) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(354, 20) + Me.txtBezeichnung.TabIndex = 82 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(7, 16) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 81 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(106, 45) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(355, 59) + Me.txtBeschreibung.TabIndex = 80 + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(7, 45) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(72, 13) + Me.lblKontrollaktivität.TabIndex = 79 + Me.lblKontrollaktivität.Text = "Beschreibung" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.Location = New System.Drawing.Point(316, 253) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(125, 20) + Me.txtVerantwortungISI.TabIndex = 78 + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.Location = New System.Drawing.Point(316, 228) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(125, 20) + Me.txtVerantwortlich.TabIndex = 77 + ' + 'lblVerantwortlichISI + ' + Me.lblVerantwortlichISI.AutoSize = True + Me.lblVerantwortlichISI.Location = New System.Drawing.Point(229, 256) + Me.lblVerantwortlichISI.Name = "lblVerantwortlichISI" + Me.lblVerantwortlichISI.Size = New System.Drawing.Size(48, 13) + Me.lblVerantwortlichISI.TabIndex = 76 + Me.lblVerantwortlichISI.Text = "Kontrolle" + ' + 'lblVerantwortlichDurchführung + ' + Me.lblVerantwortlichDurchführung.AutoSize = True + Me.lblVerantwortlichDurchführung.Location = New System.Drawing.Point(229, 231) + Me.lblVerantwortlichDurchführung.Name = "lblVerantwortlichDurchführung" + Me.lblVerantwortlichDurchführung.Size = New System.Drawing.Size(72, 13) + Me.lblVerantwortlichDurchführung.TabIndex = 75 + Me.lblVerantwortlichDurchführung.Text = "Durchführung" + ' + 'txtZeitpunkt + ' + Me.txtZeitpunkt.Location = New System.Drawing.Point(106, 178) + Me.txtZeitpunkt.Name = "txtZeitpunkt" + Me.txtZeitpunkt.ReadOnly = True + Me.txtZeitpunkt.Size = New System.Drawing.Size(103, 20) + Me.txtZeitpunkt.TabIndex = 74 + ' + 'lblZeitpunkt + ' + Me.lblZeitpunkt.AutoSize = True + Me.lblZeitpunkt.Location = New System.Drawing.Point(7, 181) + Me.lblZeitpunkt.Name = "lblZeitpunkt" + Me.lblZeitpunkt.Size = New System.Drawing.Size(52, 13) + Me.lblZeitpunkt.TabIndex = 73 + Me.lblZeitpunkt.Text = "Zeitpunkt" + ' + 'txtPeriodizitaet + ' + Me.txtPeriodizitaet.Location = New System.Drawing.Point(106, 228) + Me.txtPeriodizitaet.Name = "txtPeriodizitaet" + Me.txtPeriodizitaet.ReadOnly = True + Me.txtPeriodizitaet.Size = New System.Drawing.Size(103, 20) + Me.txtPeriodizitaet.TabIndex = 72 + ' + 'lblPeriodizitaet + ' + Me.lblPeriodizitaet.AutoSize = True + Me.lblPeriodizitaet.Location = New System.Drawing.Point(8, 231) + Me.lblPeriodizitaet.Name = "lblPeriodizitaet" + Me.lblPeriodizitaet.Size = New System.Drawing.Size(58, 13) + Me.lblPeriodizitaet.TabIndex = 71 + Me.lblPeriodizitaet.Text = "Periodizität" + ' + 'txtPrioritaet + ' + Me.txtPrioritaet.Location = New System.Drawing.Point(106, 204) + Me.txtPrioritaet.Name = "txtPrioritaet" + Me.txtPrioritaet.ReadOnly = True + Me.txtPrioritaet.Size = New System.Drawing.Size(103, 20) + Me.txtPrioritaet.TabIndex = 70 + ' + 'lblPrioritaet + ' + Me.lblPrioritaet.AutoSize = True + Me.lblPrioritaet.Location = New System.Drawing.Point(7, 207) + Me.lblPrioritaet.Name = "lblPrioritaet" + Me.lblPrioritaet.Size = New System.Drawing.Size(42, 13) + Me.lblPrioritaet.TabIndex = 69 + Me.lblPrioritaet.Text = "Priorität" + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(7, 110) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 68 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.Location = New System.Drawing.Point(106, 110) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(355, 59) + Me.txtPruefgegenstand.TabIndex = 66 + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "No Title #6.png") + Me.ImageList1.Images.SetKeyName(1, "Abort.png") + Me.ImageList1.Images.SetKeyName(2, "Stop.png") + Me.ImageList1.Images.SetKeyName(3, "Restore.png") + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DefinitionAnzeigenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(181, 48) + ' + 'DefinitionAnzeigenToolStripMenuItem + ' + Me.DefinitionAnzeigenToolStripMenuItem.Name = "DefinitionAnzeigenToolStripMenuItem" + Me.DefinitionAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.DefinitionAnzeigenToolStripMenuItem.Text = "Definition anzeigen" + ' + 'frmPPlan + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(958, 672) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmPPlan" + Me.Text = "Assessment-Plan" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuDetails.ResumeLayout(False) + Me.ToolStripPruefplan.ResumeLayout(False) + Me.ToolStripPruefplan.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.GrpDokumente.ResumeLayout(False) + Me.grpDetails.ResumeLayout(False) + Me.grpDetails.PerformLayout() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents ctxMenuDetails As System.Windows.Forms.ContextMenuStrip + Friend WithEvents DetailsAnzeigenBearbeitenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeueDefinitionErfassenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents lblPrioritaet As Label + Friend WithEvents txtPrioritaet As TextBox + Friend WithEvents lblPeriodizitaet As Label + Friend WithEvents txtPeriodizitaet As TextBox + Friend WithEvents lblZeitpunkt As Label + Friend WithEvents txtZeitpunkt As TextBox + Friend WithEvents lblVerantwortlichDurchführung As Label + Friend WithEvents lblVerantwortlichISI As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents grpDetails As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents GrpDokumente As GroupBox + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ToolStripButton2 As ToolStripButton + Friend WithEvents tsbtnCopy2 As ToolStripButton + Friend WithEvents tsbtncopy1 As ToolStripButton + Friend WithEvents tsbtnReport As ToolStripButton + Friend WithEvents TSBtnSetSecurityObject As ToolStripButton + Friend WithEvents TSBtnDelete As ToolStripButton + Friend WithEvents TSBtnAddNew As ToolStripButton + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents ToolStripPruefplan As ToolStrip + Friend WithEvents ImageList1 As ImageList + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents DefinitionAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripMenuItem1 As ToolStripSeparator + Friend WithEvents VorgabeAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents txtGueltigbis As TextBox + Friend WithEvents lblGueltigbis As Label + Friend WithEvents PrüfschrittGenerierenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents Label2 As Label + Friend WithEvents txtVerantwortlichPlan As TextBox + Friend WithEvents lblVerantwortlichPlan As Label + Friend WithEvents cbSelbstkontrolle As CheckBox + Friend WithEvents cbKeinMail As CheckBox + Friend WithEvents lblSelbstkontrolle As Label + Friend WithEvents lblKeinMail As Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.resx b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.resx new file mode 100644 index 0000000..e33e1ad --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.resx @@ -0,0 +1,3949 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 234, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + 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 + + + + 498, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 956, 289</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 956, 289</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 633, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKuSURBVDhPvY5bSJNhHMa/XFk3JgaVgQRBWOl3lWgnw4tA + xKLwwopCVBQty2zaTjZ7PW3aZvp52Oemm8aWqZubq0lqa31WTNQZik5J3Zzm+UKY1EVH/23jM1kHuusH + 78XzPv8fPNh/JYIbGs3tuv0mTBa2jf7yRq1W+w4ODSVZLJYao9FU3NraGuIpEOZztikyIEIQnMKiUtdi + G8MDT+oP+Xm6DYxGo/+odczS19f3yfiSemUwdDnatO1fpNL6S4cFQfi9t+nLaCTBiVDiOm/g4soFzSkT + FoVtpXUM6++3EBRFreh0umB3dq1hkLWyBpH4gTPk6v6Q0HSGLFri9yKD2v35KIshP5DocxeLxxge2Y3J + ZJpu0+kL6eiBw+H4s1i80wCwRchMiYkq8UviW3c4D2Zi2+mTTTQavUMubyig409GtbLwmW5N70KnCoTC + uKfHWbvqvKZvQJJSiUhUtZyZiXa6s0VVvs/+XP2QMmm+L+llsKCphikSfUyNiwjyCL/C4wn2stn5a8ws + JjH5rJnr6NB+WDYoYLFNAvPNFTCnug+zDcUwXMF5RCu/oxALGq2GJljpVMKilgQxMx1KbyTB+0YhzNYX + gKM2DxDirPfkpZ2glU06alCg9Qn6ttQuhQV1Fcw3lUHVrWSIjTwGowQHHJJcsFeyYbKMCT25yc205s2I + oqRu/nE5zClLYVZRBDMyBDFhoaC6eRls5TkwVpL4tZefWtnBvRJAK96YxTl7rARyztTlu+byYbqaC7aK + OzAhyoIBlNbVw044Qp/+HYsoO9vuEu0EC6ZccwcLr0285iafo+t/o0bxvoNFGe+G0XWnmZ+S48509Wds + NhtuNptxg8GAK5VKnCRJXFbIP0/k8c4gJMDdTyAQ42KCwEm5HG9p0eLdFIWPj4/jq6ur+A8B4Fhw887l + sAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHHSURBVDhPfc9fa9NQGAbwfQPv/AS79Xv4FUq98MYbqV64 + P0Iv540iTJg3KwwHaQWROu3SNrPtXHPSRCptT7JBjbFLaekfKO1X2OP7hjopJ/bAj3PI+5wnycbftVgs + DubzuVwnmUw+XsbVxQEqwTqpVOomkUjEl0Rv8T5iUXv2X/svtrC7s3WTTqfVktlsJkfl57h+dXctzkwm + k9/La//WdDqV458WBo2jtTgTWzAejyUBO6y00fZDBL1rtL2ryGg0imZLasFgMJDD4RDs0WEZX2wP/q8A + LfcyQvNoxvr9vlrQ6/VkGIYw7A6evj3BbuYUPzouitX6rappgzNELQiCQBJU6g1ixToXDjjj+75a0O12 + JYF7eQXD6USf7XqrPJpxhqgFnudJAnb/5SccGzZM+zs+G9WI67rRjNFZLWi1WpIgfybw8PUHPDnI45to + 4KRcvaVXzsGZZrOpFjiOIwkuTPrfC4FaXdB5VV0IcEYIoRaYpikty8LpWRUF+uQ4+tcaOLNSkMlk7uRy + uXuFQuF9qVQKi8Xi0DCMWRyecUbX9Tzf4bsbmqZtZrPZB/Rgm+zReZ/2N7Qf0f6OLc/8jGd7ZJvvaJq2 + +QcsIGo4Kn9/QwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIMSURBVDhPjZNNbxJRFIZJ7caFCxeu3RnjRv8Bxj9QNyxc + 4o4WFlNDiKtLh+GjQz8AqTAzFLkp1TqmtRX5aGkDLUhbWkzrqiYa3OnCjXFlmp54Lly8jWDjk0zCnDnv + M+dkLpaLIIQM2e32ay6X65bH8+iuw+G4yh/9G6vVOlyrFT6cnOx8a7dbp5FZAoauQDRCwDRXmm63+wpv + HYzNZrtUqVTOaEoBOu8Hmg4CfRYCTfOB1zsBb4ulqiRJl3m7IBwO3ltcNJy5taXg8XHlR0Ah4JMJ4BoQ + jxHQknLnN7vSaU3jMUFrr1zvvjUAp7++fGRvpZnJP6F4lHQmYbVmc+M1jwmajdImNXzQk/RGZ1Ooargj + mXvSlRy9337JY4Ldai5HdRmEpLt/ZIbA9DSG5wiEcC1WO9grL/CYoLa19oomJ2CQpDe6GkAB1vZ3N+Z5 + TLBVWl6gCWxIeoFqTHRegiuhRPXjc6y92ykkeEywWTB1+hQb/pYYQqKyFbDWqOWjPCZYf/MiRnHPfglb + CSUpP6g+rGOtWl4N85ggv5xVaRwbLpAc1otfW43iepbqIzwmWDUzMsUDQ9mnYqIBEkUhd3h7P2bWeEzZ + YTkv4dOk8L79af/n+PjYDd7eT0aLSRT/MIkQgc9H298P6/lyKfdc1eOzD5xO5008SEO8dTAeSbo9NSnf + Hx19eJ2X/gOL5Tdo0KpaiRqTTgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGSSURBVDhPjVPLasJAFM22u0KX1mWzsJv+lh+h31A/Qqhr + P8CNVqhUYzQRpa6kFKSal/ERH7f3DJkhk1rohcOEzD2PeRlcNwzzn7hn/CrTDwJaex5hDMKQwiiiaLOh + DRDHCtVqtZ5ytDI9z6fv1UoTiVhECsQpKpVKE/0ZIL1hBkzyfJ8wCiI3b7db2u12tN/vFezRSKXBXCpi + mIgsXNkxTomHw4GSJNEwSgWQRhNAVJDhCidJOB6PGhzHUWlgoARAhLMkS8LpdKLz+azguq4mrgQQR8bO + Ey+Xi8JkMlHzgBKQkaRyloh/4jQYY16CFAaUAMh5d5CxWfP5nCzLEhv41uspYUATkO4QwCS+F4sFTadT + do9oYA2ECfYLR62dwrX4aMCah8Mh9fvvYoOXy6VIYts2vTQaH8y9EwIJE/PxITpgcue1I+ZCvifdblf0 + tNvtr2Kx+AgySntM5XK5CRec+Ww2U6JwZyK1Wq3PUqn0BOLV4vtex3JAzCZardf0XKuNC4XCQ9r6Z+HJ + qkQ53DIyZRg/yW2pDIFIxosAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwqMyLpCsL + +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1L7ba+2zOd1qWzG7CUELybc1wmnt7Z25zV20kfv3DJ7L3s1+ + 8Oc8zzn/c87zMJshKJO537W13aTX/2O6p+fhfYaBoa4OIbn841uFop6WqlNaeNw5n+DgvX0X98iQcYkE + LxobMSuTdVNLZX7P3RAykx1IcU8QX+QxvleGBzU18Eilt6hFnI243vgreBYpdyuWLQxWgqfA/RDwSjP0 + jVrEKSX0ZzIRFVJeJRkgx/KEFIK/Hd8dW5CYe95Kbf+G82u28uGrBZ5sTk+dQJLdgdWpLjJIgT9BiYba + xNmYHw7xPiVWp0+TFxwkmzsgBI4j598VoxZxStx1ddrfiZ++I1gLq8CTL6y96QOrPVD65KivpTZxiguP + kryvHfn31yBMHkM2cglpsr0U2X+BWipT+PwUmUUXMrN3kH3dS7afRzFydIKWKzM2dlkC3oXcl5dYXwoj + nwwhH+tep+XqNDfvVl7s60L2qxcFPgYU447cyoedtFydppaWc9u212JPQ4MnvTTTRNObIxqN7tNqtaM6 + nU5vtFhUBsOzAavVOuh0OkfKcrlcg0Rqoisej6ff7XafDAQCCtrOMCzLHrLZbL2kacBkMg2ZzeYREkdJ + 1JZFz+XcMJHaaDT22+32wwzDMH8BBKAkICW8visAAAAASUVORK5CYII= + + + + 740, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAm + CwAAAk1TRnQBSQFMAgEBBAEAAZgBAQGYAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACQAB/wEH + BHEBcgH0CAAB/wGTBEYBbwH0CAAB/wGTBEYBbwH0CAAB/wGZBFMBdAH0BwAB8QNyBnEB/wUAAfIJRgH/ + BQABGglGAf8FAAEbCFMBUgH/BAABCAOXAnIGcQH/AwABGgNMCEYB/wMAARoDTAhGAf8DAAEaAlkFUwGa + A1MB/wIAAfQElwEIAZcCcgVxAgAB9AIXAW8BGgFMBEYBvQNGAgAB9AIXAW8CTAhGAgAB/wRZCFMBUgIA + BJcBCAL/AZcCcgRxAfQBAAJvARcB9AH/AfMBTAJGAv8BlAJGAfQBAAJvAhcBbwJMB0YB9AEABlkEUwH2 + A1MB9AH/A5cBCAH/AfQC/wGXAnIDcQFyAf8EbwL/AfMBTAL/ARsDRgFvAf8DbwIXAW8CTAZGAW8B/whZ + AlMB/wNTAXQB8QKXAQgB/wH0ApcC/wGXA3ICcQEaAeMEbwT/Ab0FRgEaAeMCbweUARYBbwNGARsDWQX/ + AVkBUwH/AZoDUwEHAXgBlwH/AfQElwL/ApcCcgFxAQcC4wRvA/8BTAVGAQcC4wHzCf8DRgGZA1kE/wH2 + AVkBmgH/ARoDUwEIApgHlwL/ApcCcgEaA+MCbwT/AfMBTAEXA0YBGgLjARYBvQMaBL0BlANGARoDWQj/ + AZoDUwH0A5gBeAaXAv8ClwFyAfQBFgPjAv8BGwFvAv8B8wJMAkYB9AEWA+MEbwIXA0wCRgH0A1kI/wJZ + AlMB/wEIA5gBeAaXAf8ClwEHAf8BlAEWAeMB8wH/AfMDbwL/AZQCTAGTAf8BlAEWA+MEbwIXAW8CTAGT + Af8BmgJZAf8B9gX/AXoDWQGZAQABBwWYCJcB/wEAAZMCFgHjAb0B4wRvAZQBFwFvAUwB/wEAAZMCFgPj + BG8CFwFvAUwB/wEAAZkFWQGgAcMBmgVZAf8BAAH/AQgFmAF4BZcB8QIAAf8BlAMWAuMEbwIXAfICAAH/ + AZQDFgLjBG8CFwEaAgAB/wGaC1kBGwMAAf8BCAWYAXgClwGYAQgEAAH/AZQDFgPjA28BGgQAAf8BlAMW + A+MDbwEaBAAB/wGaCVkBGgUAAf8BBwEIBpgB9AYAAf8BkwG9AhYC4wEWAW8B9AYAAf8BkwG9AhYC4wEW + AW8B9AYAAf8BmQGgAXoDWQF6AVkB/wgAAf8B9AIIAfEB/woAAf8B9AEaAQcBGgH/CgAB/wH0ARoBBwEa + Af8KAAH/AfQBGgGZARsB/wUAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAHw + AQ8B8AEPAfABDwHwAQ8B4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGA + AQEBgAEAAYABAAGAAQABgDEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHA + AQMBwAEDAeABBwHgAQcB4AEHAeABBwH4AR8B+AEfAfgBHwH4AR8L + + + + 341, 17 + + + + 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 + X9fIWBTqTItGG5/ev8SSXqrGXlKtzX7a7NzUxAagz+iIW92ik90HqwxnFew8knnvD3gsd4GuN0JufZzc + dpbJ8tPmDtOfkAFpP+4jN59f6jObUoP30XVafI0doWfjZCbTlvNpzhJa8XgcATII/Bqp13u9n8bqD2Gw + Afj/AdlDAoEyFHaAAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAA + AAAAAP7+/rT+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.vb new file mode 100644 index 0000000..f1e3e06 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPPlan.vb @@ -0,0 +1,439 @@ +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class frmPPlan + + +#Region "Deklarationen" + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Private Anzeige As Boolean = False + + Dim OnGetData As Boolean + + Dim c1bookmark + Dim c2bookmark + Dim pruefplan As New clspruefplan + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Me.FormReadonly = True + If Me.FormReadonly = True Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + pruefplan.dispose() + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function + +#End Region + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + +#Region "Form" + + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.GueltigImages + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub frmPPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Refresh_List() + sec.Set_Form_Security(Me) + End Sub + + Sub Refresh_List(Optional searchstring As String = "") + Me.pruefplan.Get_Eintraege(Me.C1Daten, 0, Me.tsTxtSearch.Text) + Dim bmp0 As New Bitmap(Me.ImageList1.Images(0)) + Dim bmp1 As New Bitmap(Me.ImageList1.Images(1)) + Dim bmp2 As New Bitmap(Me.ImageList1.Images(2)) + Dim bmp3 As New Bitmap(Me.ImageList1.Images(3)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + v0.DisplayValue = bmp0 + v0.Value = 0 + + v1.DisplayValue = bmp1 + v1.Value = 1 + + v2.DisplayValue = bmp2 + v2.Value = 2 + + v3.DisplayValue = bmp3 + v3.Value = 3 + + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v0) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v1) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v2) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v3) + Me.C1Daten.Columns("Icon").ValueItems.Translate = True + Me.C1Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + + End Sub +#End Region + +#Region "C1Daten" + Private Sub C1Daten_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Daten.MouseDown + Me.C1Daten.Bookmark = Me.C1Daten.RowContaining(e.Y) + End Sub + + + Private Sub C1Daten_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1Daten.RowColChange + Refresh_Details() + End Sub + +#End Region + + Sub Refresh_Details() + Try + Me.txtPruefgegenstand.Text = "" + Me.txtPrioritaet.Text = "" + Me.txtPeriodizitaet.Text = "" + Me.txtZeitpunkt.Text = "" + Me.txtVerantwortlich.Text = "" + Me.txtVerantwortungISI.Text = "" + Me.txtBeschreibung.Text = "" + Me.txtBezeichnung.Text = "" + Me.txtGueltigbis.Text = "" + + Me.txtPruefgegenstand.Text = C1Daten.Columns("Pruefgegenstand").Value + Me.txtPeriodizitaet.Text = C1Daten.Columns("Periodizitaet").Value + Me.txtPrioritaet.Text = C1Daten.Columns("Prioritaet").Value + Me.txtZeitpunkt.Text = C1Daten.Columns("Zeitpunkt").Value + Me.txtVerantwortlich.Text = C1Daten.Columns("Verantwortung").Value + Me.txtVerantwortungISI.Text = C1Daten.Columns("Verantwortung_ISI").Value + Me.txtVerantwortlichPlan.Text = C1Daten.Columns("VerantwortungPlan").Value + Me.txtBeschreibung.Text = C1Daten.Columns("Beschreibung").Value + Me.txtBezeichnung.Text = C1Daten.Columns("Bezeichnung").Value + Me.txtGueltigbis.Text = C1Daten.Columns("Gueltig_bis").Value + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 3 + Me.DokumenteAllgemein.ThemaNr = C1Daten.Columns("PruefplanNr").Value + Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Me.cbKeinMail.Checked = C1Daten.Columns("Kein_Mailversand").Value = True + Me.cbSelbstkontrolle.Checked = C1Daten.Columns("Selbstkontrolle").Value = True + + + + Catch ex As Exception + 'MsgBox(ex.Message) + End Try + End Sub + + Private Sub TSBtnAddNew_Click(sender As Object, e As EventArgs) Handles TSBtnAddNew.Click + Dim f As New frmPruefplanDetail + f.MdiParent = Me.MdiParent + f.PruefplanHandler = Me.Handle + f.Show() + End Sub + + Private Sub DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DetailsAnzeigenBearbeitenToolStripMenuItem.Click + Try + c1bookmark = C1Daten.Bookmark + + + Dim f As New frmPruefplanDetail + f.Pruefplannr = Me.C1Daten.Columns("pruefplannr").Value + f.MdiParent = Me.MdiParent + f.PruefplanHandler = Me.Handle + 'If Me.ToolStripPruefplan.Visible = False Or Me.ToolStripPruefplan.Enabled = False Then + ' f.IsReadonly = True + 'End If + + f.Show() + Catch ex As Exception + + End Try + + End Sub + + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub evh_Pruefplandetail_Saved(handler As Integer, key As Integer) Handles evh.Pruefplandetail_Saved, evh.Pruefplandetail_Closed + Try + If handler = Me.Handle Then + Me.Refresh_List() + + For i = 0 To Me.C1Daten.Splits(0).Rows.Count - 1 + If C1Daten.Columns("PruefplanNr").CellValue(i) = key Then + Me.C1Daten.Bookmark = i + Refresh_Details() + End If + Next + End If + Catch + End Try + + End Sub + + Private Sub tsBtnSearchStruktur_Definition_Click(sender As Object, e As EventArgs) Handles tsBtnSearchStruktur_Definition.Click + Refresh_List(Me.tsTxtSearch.Text) + End Sub + + Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles tsbtnFilterAufheben.Click + Me.tsTxtSearch.Text = "" + Refresh_List(Me.tsTxtSearch.Text) + End Sub + + Private Sub tsTxtSearch_KeyDown(sender As Object, e As KeyEventArgs) Handles tsTxtSearch.KeyDown + If e.KeyCode = Keys.Enter Then + tsBtnSearchStruktur_Definition_Click(sender, e) + End If + End Sub + + Private Sub DefinitionAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DefinitionAnzeigenToolStripMenuItem.Click + + Dim f As New frmVorgabeDefinition + f.Key = Me.C1Daten.Columns("VorgabeDefinitionNr").Value + + f.ShowDialog() + End Sub + + Private Sub NeueDefinitionErfassenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueDefinitionErfassenToolStripMenuItem.Click + TSBtnAddNew_Click(sender, e) + End Sub + + Private Sub VorgabeAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorgabeAnzeigenToolStripMenuItem.Click + Dim f As New frmVorgabe(Me.C1Daten.Columns("Pruefplannr").Value) + f.MdiParent = Me.MdiParent + f.Show() + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e) + End Sub + + Private Sub TSBtnDelete_Click(sender As Object, e As EventArgs) Handles TSBtnDelete.Click + Try + Dim i As Integer = Me.pruefplan.Get_Data(Me.C1Daten.Columns("Pruefplannr").Value) + + If MsgBox("Prüfplaneintrag wirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Me.pruefplan.Get_Data(Me.C1Daten.Columns("Pruefplannr").Value) + Me.pruefplan.Delete_Data() + Me.Refresh_List() + End If + Catch ex As Exception + End Try + + + End Sub + + Private Sub PrüfschrittGenerierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PrüfschrittGenerierenToolStripMenuItem.Click + Generate_Action() + End Sub + + Public Function Generate_Action() + + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + 'sqlcmd.CommandText = "generate_massnahme" + sqlcmd.CommandText = "generate_pruefschritt" + sqlcmd.Parameters.Add(New SqlParameter("@pruefplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.C1Daten.Columns("Pruefplannr").Value)) + sqlcmd.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + sqlcmd.ExecuteNonQuery() + MsgBox("Generierung abgeschlossen") + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + + + + +#Region "Toolbar" + +#End Region +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.Designer.vb new file mode 100644 index 0000000..ae000cb --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.Designer.vb @@ -0,0 +1,476 @@ + _ +Partial Class frmPruefplan + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPruefplan)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TreeStammdaten = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.grpPruefgegenstand = New System.Windows.Forms.GroupBox() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.grpPlanung = New System.Windows.Forms.GroupBox() + Me.cbboxZeitpunkt = New System.Windows.Forms.ComboBox() + Me.lblZeitpunkt = New System.Windows.Forms.Label() + Me.cbboxPeriodizitaet = New System.Windows.Forms.ComboBox() + Me.lblPeriodizitaet = New System.Windows.Forms.Label() + Me.cbboxPrioritaet = New System.Windows.Forms.ComboBox() + Me.lblPrioritaet = New System.Windows.Forms.Label() + Me.GrpVerantwortung = New System.Windows.Forms.GroupBox() + Me.cbboxVerantwortungISI = New System.Windows.Forms.ComboBox() + Me.cbboxVerantwortlich = New System.Windows.Forms.ComboBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + CType(Me.TreeStammdaten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.grpPruefgegenstand.SuspendLayout() + Me.Panel3.SuspendLayout() + Me.grpPlanung.SuspendLayout() + Me.GrpVerantwortung.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(1017, 25) + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neu" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1017, 24) + Me.MenuStrip1.TabIndex = 3 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'TreeStammdaten + ' + Me.TreeStammdaten.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeStammdaten.AllowDrop = True + Me.TreeStammdaten.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeStammdaten.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeStammdaten.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeStammdaten.Dock = System.Windows.Forms.DockStyle.Left + Me.TreeStammdaten.ImageList = Me.ImageList1 + Me.TreeStammdaten.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeStammdaten.Location = New System.Drawing.Point(0, 49) + Me.TreeStammdaten.Name = "TreeStammdaten" + Me.TreeStammdaten.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeStammdaten.NodesConnector = Me.NodeConnector1 + Me.TreeStammdaten.NodeStyle = Me.ElementStyle1 + Me.TreeStammdaten.PathSeparator = ";" + Me.TreeStammdaten.Size = New System.Drawing.Size(323, 596) + Me.TreeStammdaten.Styles.Add(Me.ElementStyle1) + Me.TreeStammdaten.TabIndex = 5 + Me.TreeStammdaten.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "Finma.jpg") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.Panel2) + Me.Panel1.Controls.Add(Me.ToolStrip2) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel1.Location = New System.Drawing.Point(323, 49) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(694, 596) + Me.Panel1.TabIndex = 6 + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.grpPruefgegenstand) + Me.Panel2.Controls.Add(Me.Panel3) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Left + Me.Panel2.Location = New System.Drawing.Point(0, 25) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(682, 571) + Me.Panel2.TabIndex = 2 + ' + 'grpPruefgegenstand + ' + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse2) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen2) + Me.grpPruefgegenstand.Controls.Add(Me.txtEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.txtMassnahmen) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen1) + Me.grpPruefgegenstand.Controls.Add(Me.txtPruefgegenstand) + Me.grpPruefgegenstand.Controls.Add(Me.lblPruefgegenstand) + Me.grpPruefgegenstand.Dock = System.Windows.Forms.DockStyle.Fill + Me.grpPruefgegenstand.Location = New System.Drawing.Point(0, 118) + Me.grpPruefgegenstand.Name = "grpPruefgegenstand" + Me.grpPruefgegenstand.Size = New System.Drawing.Size(682, 453) + Me.grpPruefgegenstand.TabIndex = 1 + Me.grpPruefgegenstand.TabStop = False + Me.grpPruefgegenstand.Text = "Prüfgegenstand" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(8, 178) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(74, 13) + Me.lblEreignisse2.TabIndex = 34 + Me.lblEreignisse2.Text = "Info / Rapport" + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(9, 110) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 33 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'txtEreignisse + ' + Me.txtEreignisse.Location = New System.Drawing.Point(96, 165) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.Size = New System.Drawing.Size(275, 62) + Me.txtEreignisse.TabIndex = 32 + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(8, 165) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 31 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.Location = New System.Drawing.Point(96, 97) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.Size = New System.Drawing.Size(275, 62) + Me.txtMassnahmen.TabIndex = 30 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(8, 97) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 29 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.Location = New System.Drawing.Point(98, 29) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.Size = New System.Drawing.Size(275, 62) + Me.txtPruefgegenstand.TabIndex = 28 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(10, 29) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 27 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'Panel3 + ' + Me.Panel3.Controls.Add(Me.grpPlanung) + Me.Panel3.Controls.Add(Me.GrpVerantwortung) + Me.Panel3.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel3.Location = New System.Drawing.Point(0, 0) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(682, 118) + Me.Panel3.TabIndex = 0 + ' + 'grpPlanung + ' + Me.grpPlanung.Controls.Add(Me.cbboxZeitpunkt) + Me.grpPlanung.Controls.Add(Me.lblZeitpunkt) + Me.grpPlanung.Controls.Add(Me.cbboxPeriodizitaet) + Me.grpPlanung.Controls.Add(Me.lblPeriodizitaet) + Me.grpPlanung.Controls.Add(Me.cbboxPrioritaet) + Me.grpPlanung.Controls.Add(Me.lblPrioritaet) + Me.grpPlanung.Dock = System.Windows.Forms.DockStyle.Left + Me.grpPlanung.Location = New System.Drawing.Point(0, 0) + Me.grpPlanung.Name = "grpPlanung" + Me.grpPlanung.Size = New System.Drawing.Size(175, 118) + Me.grpPlanung.TabIndex = 0 + Me.grpPlanung.TabStop = False + Me.grpPlanung.Text = "Planung" + ' + 'cbboxZeitpunkt + ' + Me.cbboxZeitpunkt.FormattingEnabled = True + Me.cbboxZeitpunkt.Location = New System.Drawing.Point(70, 78) + Me.cbboxZeitpunkt.Name = "cbboxZeitpunkt" + Me.cbboxZeitpunkt.Size = New System.Drawing.Size(94, 21) + Me.cbboxZeitpunkt.TabIndex = 32 + ' + 'lblZeitpunkt + ' + Me.lblZeitpunkt.AutoSize = True + Me.lblZeitpunkt.Location = New System.Drawing.Point(6, 81) + Me.lblZeitpunkt.Name = "lblZeitpunkt" + Me.lblZeitpunkt.Size = New System.Drawing.Size(52, 13) + Me.lblZeitpunkt.TabIndex = 31 + Me.lblZeitpunkt.Text = "Zeitpunkt" + ' + 'cbboxPeriodizitaet + ' + Me.cbboxPeriodizitaet.FormattingEnabled = True + Me.cbboxPeriodizitaet.Location = New System.Drawing.Point(70, 50) + Me.cbboxPeriodizitaet.Name = "cbboxPeriodizitaet" + Me.cbboxPeriodizitaet.Size = New System.Drawing.Size(94, 21) + Me.cbboxPeriodizitaet.TabIndex = 30 + ' + 'lblPeriodizitaet + ' + Me.lblPeriodizitaet.AutoSize = True + Me.lblPeriodizitaet.Location = New System.Drawing.Point(7, 53) + Me.lblPeriodizitaet.Name = "lblPeriodizitaet" + Me.lblPeriodizitaet.Size = New System.Drawing.Size(58, 13) + Me.lblPeriodizitaet.TabIndex = 29 + Me.lblPeriodizitaet.Text = "Periodizität" + ' + 'cbboxPrioritaet + ' + Me.cbboxPrioritaet.FormattingEnabled = True + Me.cbboxPrioritaet.Location = New System.Drawing.Point(70, 22) + Me.cbboxPrioritaet.Name = "cbboxPrioritaet" + Me.cbboxPrioritaet.Size = New System.Drawing.Size(94, 21) + Me.cbboxPrioritaet.TabIndex = 28 + ' + 'lblPrioritaet + ' + Me.lblPrioritaet.AutoSize = True + Me.lblPrioritaet.Location = New System.Drawing.Point(7, 25) + Me.lblPrioritaet.Name = "lblPrioritaet" + Me.lblPrioritaet.Size = New System.Drawing.Size(42, 13) + Me.lblPrioritaet.TabIndex = 27 + Me.lblPrioritaet.Text = "Priorität" + ' + 'GrpVerantwortung + ' + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortungISI) + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortlich) + Me.GrpVerantwortung.Controls.Add(Me.Label1) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlich) + Me.GrpVerantwortung.Location = New System.Drawing.Point(177, 6) + Me.GrpVerantwortung.Name = "GrpVerantwortung" + Me.GrpVerantwortung.Size = New System.Drawing.Size(202, 109) + Me.GrpVerantwortung.TabIndex = 1 + Me.GrpVerantwortung.TabStop = False + Me.GrpVerantwortung.Text = "Verantwortung" + ' + 'cbboxVerantwortungISI + ' + Me.cbboxVerantwortungISI.FormattingEnabled = True + Me.cbboxVerantwortungISI.Location = New System.Drawing.Point(102, 47) + Me.cbboxVerantwortungISI.Name = "cbboxVerantwortungISI" + Me.cbboxVerantwortungISI.Size = New System.Drawing.Size(94, 21) + Me.cbboxVerantwortungISI.TabIndex = 35 + ' + 'cbboxVerantwortlich + ' + Me.cbboxVerantwortlich.FormattingEnabled = True + Me.cbboxVerantwortlich.Location = New System.Drawing.Point(102, 14) + Me.cbboxVerantwortlich.Name = "cbboxVerantwortlich" + Me.cbboxVerantwortlich.Size = New System.Drawing.Size(94, 21) + Me.cbboxVerantwortlich.TabIndex = 33 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(6, 50) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(92, 13) + Me.Label1.TabIndex = 34 + Me.Label1.Text = "Verantwortung ISI" + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 22) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(74, 13) + Me.lblVerantwortlich.TabIndex = 33 + Me.lblVerantwortlich.Text = "Verantwortlich" + ' + 'ToolStrip2 + ' + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(694, 25) + Me.ToolStrip2.TabIndex = 0 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'frmPruefplan + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1017, 645) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.TreeStammdaten) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "frmPruefplan" + Me.Text = "frmFinmaStammdaten" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + CType(Me.TreeStammdaten, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.grpPruefgegenstand.ResumeLayout(False) + Me.grpPruefgegenstand.PerformLayout() + Me.Panel3.ResumeLayout(False) + Me.grpPlanung.ResumeLayout(False) + Me.grpPlanung.PerformLayout() + Me.GrpVerantwortung.ResumeLayout(False) + Me.GrpVerantwortung.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TreeStammdaten As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ImageList1 As System.Windows.Forms.ImageList + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents grpPruefgegenstand As System.Windows.Forms.GroupBox + Friend WithEvents lblEreignisse2 As System.Windows.Forms.Label + Friend WithEvents lblMassnahmen2 As System.Windows.Forms.Label + Friend WithEvents txtEreignisse As System.Windows.Forms.TextBox + Friend WithEvents lblEreignisse As System.Windows.Forms.Label + Friend WithEvents txtMassnahmen As System.Windows.Forms.TextBox + Friend WithEvents lblMassnahmen1 As System.Windows.Forms.Label + Friend WithEvents txtPruefgegenstand As System.Windows.Forms.TextBox + Friend WithEvents lblPruefgegenstand As System.Windows.Forms.Label + Friend WithEvents Panel3 As System.Windows.Forms.Panel + Friend WithEvents grpPlanung As System.Windows.Forms.GroupBox + Friend WithEvents cbboxZeitpunkt As System.Windows.Forms.ComboBox + Friend WithEvents lblZeitpunkt As System.Windows.Forms.Label + Friend WithEvents cbboxPeriodizitaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPeriodizitaet As System.Windows.Forms.Label + Friend WithEvents cbboxPrioritaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPrioritaet As System.Windows.Forms.Label + Friend WithEvents GrpVerantwortung As System.Windows.Forms.GroupBox + Friend WithEvents cbboxVerantwortungISI As System.Windows.Forms.ComboBox + Friend WithEvents cbboxVerantwortlich As System.Windows.Forms.ComboBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents lblVerantwortlich As System.Windows.Forms.Label + Friend WithEvents ToolStrip2 As System.Windows.Forms.ToolStrip +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.resx b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.resx new file mode 100644 index 0000000..b13e3a4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.resx @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 127, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK1SURBVDhPnZLdS1NhHMcfCPoDuummi+i6KwcWlYjb3Obx + 7MzN1eY5Z9tJV86Mit5AS3v3rUwtrchhKhVFpVZGWfaiaKQoZiHWiuoivCiiCKSLgk9HjcUu6wcfeH4P + PB+e7+95xP/Ul9eDwZn34z879mTyZ2uhrlTm9nQdyqXnyBxSku7DElcr7DyO7+DzVB+fJm/z/c0Al8qs + qYLuSpm01XZWrbWxOuMv6WutrLSsYzbRR6LnAGMtfr4mnnBlvyNV0FUuk2l1YrNL2B2uJNZsJ+nrbLzq + iDB2XmfkTJDPL+9x/WBOqsDRKJCqF5Fj9yG5FKQcN5Ik43LJZFglptoNRs6FeNocZGasez7qn6NC2GoE + iZlOnKYkN0vD7QygSH4U2Yvs9pDlcPMiHma4RWegsYD3Q5e5U6UsCGzVgskPrbQPCDKrBPZ6gfOUQC5f + ilcJ4snzk53rY/y8xkCTzuzd5Uz3t3Gv1otw1QmevasiPixoHTLXb4sYfRdh4mN4XrLeEyY/P4jkCTB6 + RuVRg8aPvhW8vNNCf71/QfAwsZv4uCA+Jmh7IWifEjz/FsHRJAjmF7EhEMKdrzHcHKD/ZJDW3U4mumt4 + 0hiYj2CxmxF6pzfRmRBkzUU4LnA0CPIqlqGrUVTdwBc0GGz0c//Eem4cUnh2uZKhZjU5REt2raDnrQ/n + SYER2ImhlWKEizGMKBGjkEAoyqN6L3frfPRWexm8sIuRs6GUZ7Q4zSsrdYuJGtuIFpVQFC2ep9BE2xjj + QZ2H3qo8bh710NcSY7w1kiIQHaVr2FxSSklsOyVbtiaJmRQWb+N+rcytYwpdR9zcOhFisq0Qoes6uhZC + 08Ko6hzmWtXMXk2imv2GAp29sQAXKxXzB8pcO5zHVOemhSH+K+V6etnpfWt+vb4YS43wD7XEJE0IYfkN + WuDCfcAVxNMAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIPSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKgAV4rbN70Xmn5332lEWiA + ER4D6hmYzBdq2fiss7EPgGLLPjUn302WH7qulv/vuFLy33me3m37+doOPuss7D2A2GWdib3BImUrsH7h + Ak6T3BPJ//uuNv2feL3h/6Sbdf+n3Kr5330j73/H9cz/rdfS/3dez/3ffb3of9uVgv8NF/P+V57L/h+w + 1/U/Xxy7MoNYLqdFFVCg/3otUHPV/ym3K/5PvVP6v/1m3P+2m9H/W25G/O+6lfy/52bW//br6f8bLqf+ + rzyf/D/soPN/3hA2dQahDBaLiB2C/9MOCf/PPSn0v/CM0P+CM4L/a66Z/W+/4/O/9Y7n//LLOv/zT/P/ + zwPirOP8/5MO8P333coFNIBBnYHTiUFaMp5hs2wywzbFNIZtyulAGojTjkj87Hxg+7/9gdX/sM3iH0Bi + MAxSKx7PsIHPgkEIHA5AwIiC7RlYwg8xval7zPG/7jHXf/flTKBYQFUDwTgAMBoTzzG86XjF8B+EfdYw + kJ4Oci8IvFnwSf7//I/y/8M28pJuQNJe3TdzHnr8B+GAReokGsDAwCSVy7DDsI3hBgiLxTPMg4qTBFgY + VBjYwZiBgRkihA4YGADF/vNbfFD3FAAAAABJRU5ErkJggg== + + + + 234, 17 + + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAG + CAAAAk1TRnQBSQFMAwEBAAEwAQABMAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA + AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA + AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm + AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ + AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm + AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz + AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm + AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm + AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA + ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm + AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm + ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm + AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA + AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ + AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz + AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/ + AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA + AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM + AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm + ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ + AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ + ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM + ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm + AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM + AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA + AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA + ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7 + Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BAAHjARcE4wYWApMBGgH/ + MAAGRgFpA28CFgGOApMB9jAAARcERgEXBG8DFgKTAfYwAAVGARcEbwMWApMB9jAABkYEbwQWAZMB/zAA + BUYBTAEXA28DFgKTAf8wAARGAWkBRgFMA28DFgKTAf8wAAJGAW8BvQEWBG8EFgFvAZMB/zAAAkYBbwHz + AZQFbwMWAW8BkwH2MAABbwK9AfQCvQEWBG8CFgFvAZMB9jAAAW8BlAG9AfQCvQEWBG8BFgFvARYBkwH2 + MAACRgFvAb0BlAZvAxYBkwH2MAADRgGUARYCRgNvAeMBbwEWAY4BkwH/MAAGRgEXAWkCbwEWAW8BFgFv + AZMB/zAACEYEbwEWAW8BkwH0MAABFwZGAm8CFgFvAhYBkwH0MAABQgFNAT4HAAE+AwABKAMAAUADAAEQ + AwABAQEAAQEFAAGAFwAD/4EACw== + + + + 349, 17 + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.vb new file mode 100644 index 0000000..67623ab --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplan.vb @@ -0,0 +1,20 @@ +Public Class frmPruefplan + + Private Sub frmFinmaStammdaten_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim KategorieTree As New clsKategorieTree + KategorieTree.Load_Treeview(Me.TreeStammdaten) + + End Sub + + Private Sub TreeStammdaten_Click(sender As Object, e As EventArgs) Handles TreeStammdaten.Click + + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.Designer.vb new file mode 100644 index 0000000..7771df5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.Designer.vb @@ -0,0 +1,1154 @@ + _ +Partial Class frmPruefplanDetail + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPruefplanDetail)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.grpPruefgegenstand = New System.Windows.Forms.GroupBox() + Me.GrpStruktur = New System.Windows.Forms.GroupBox() + Me.TreeStruktur = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStripTree = New System.Windows.Forms.ToolStrip() + Me.tslabelFilter = New System.Windows.Forms.ToolStripLabel() + Me.tsCbxFilter = New System.Windows.Forms.ToolStripComboBox() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.lblSuche = New System.Windows.Forms.ToolStripLabel() + Me.tstxtSuche = New System.Windows.Forms.ToolStripTextBox() + Me.TSBtnSuche = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFirst = New System.Windows.Forms.ToolStripButton() + Me.TSBtnPrevious = New System.Windows.Forms.ToolStripButton() + Me.TSBtnNext = New System.Windows.Forms.ToolStripButton() + Me.TSBtnLast = New System.Windows.Forms.ToolStripButton() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.cbAktiv = New System.Windows.Forms.CheckBox() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.GrpLeft = New System.Windows.Forms.GroupBox() + Me.grpAssesmentTyp = New System.Windows.Forms.GroupBox() + Me.rbAssessmentTyp_Massen = New System.Windows.Forms.RadioButton() + Me.rbAssessmentTyp_Anzahl = New System.Windows.Forms.RadioButton() + Me.rbAssessmenttyp_Normal = New System.Windows.Forms.RadioButton() + Me.GrpPlanung = New System.Windows.Forms.GroupBox() + Me.cbKeinEMail = New System.Windows.Forms.CheckBox() + Me.lblKeinEMail = New System.Windows.Forms.Label() + Me.cbboxTerminierung = New System.Windows.Forms.ComboBox() + Me.lblTerminierung = New System.Windows.Forms.Label() + Me.dtGueltigBis = New System.Windows.Forms.DateTimePicker() + Me.lblGueltigBis = New System.Windows.Forms.Label() + Me.dtErstmalsam = New System.Windows.Forms.DateTimePicker() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbboxZeitpunkt = New System.Windows.Forms.ComboBox() + Me.lblPrioritaet = New System.Windows.Forms.Label() + Me.lblZeitpunkt = New System.Windows.Forms.Label() + Me.cbboxPrioritaet = New System.Windows.Forms.ComboBox() + Me.lblPeriodizitaet = New System.Windows.Forms.Label() + Me.cbboxPeriodizitaet = New System.Windows.Forms.ComboBox() + Me.GrpVerantwortung = New System.Windows.Forms.GroupBox() + Me.cbDurchfuerhung_ISI = New System.Windows.Forms.CheckBox() + Me.lblDurchfuehrung_ISI = New System.Windows.Forms.Label() + Me.cbSelbstkontrolle = New System.Windows.Forms.CheckBox() + Me.lblSelbstkontrolle = New System.Windows.Forms.Label() + Me.cbboxVerantwortungPlan = New System.Windows.Forms.ComboBox() + Me.lblVerantwortlichPlan = New System.Windows.Forms.Label() + Me.cbboxVerantwortungKontrolle = New System.Windows.Forms.ComboBox() + Me.cbboxVerantwortungDurchführung = New System.Windows.Forms.ComboBox() + Me.lblVerantwortlichKontrolle = New System.Windows.Forms.Label() + Me.lblVerantwortlichDurchführung = New System.Windows.Forms.Label() + Me.GrpDefinitionZuordnung = New System.Windows.Forms.GroupBox() + Me.TreeZuordnung = New DevComponents.AdvTree.AdvTree() + Me.ctxMenuZurodnung = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.EintragBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuerEintragHinzufügenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Node2 = New DevComponents.AdvTree.Node() + Me.NodeConnector2 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle2 = New DevComponents.DotNetBar.ElementStyle() + Me.btnNeueZuordnung = New System.Windows.Forms.Button() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + Me.grpPruefgegenstand.SuspendLayout() + Me.GrpStruktur.SuspendLayout() + CType(Me.TreeStruktur, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStripTree.SuspendLayout() + Me.GrpLeft.SuspendLayout() + Me.grpAssesmentTyp.SuspendLayout() + Me.GrpPlanung.SuspendLayout() + Me.GrpVerantwortung.SuspendLayout() + Me.GrpDefinitionZuordnung.SuspendLayout() + CType(Me.TreeZuordnung, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuZurodnung.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(958, 25) + Me.ToolStrip1.TabIndex = 10 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neu" + Me.ToolStripButton1.Visible = False + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(958, 24) + Me.MenuStrip1.TabIndex = 9 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'grpPruefgegenstand + ' + Me.grpPruefgegenstand.Controls.Add(Me.GrpStruktur) + Me.grpPruefgegenstand.Controls.Add(Me.txtHilfsmittel) + Me.grpPruefgegenstand.Controls.Add(Me.lblHilfsmittel) + Me.grpPruefgegenstand.Controls.Add(Me.txtBezeichnung) + Me.grpPruefgegenstand.Controls.Add(Me.lblBezeichnung) + Me.grpPruefgegenstand.Controls.Add(Me.lblKontrollaktivität) + Me.grpPruefgegenstand.Controls.Add(Me.txtBeschreibung) + Me.grpPruefgegenstand.Controls.Add(Me.lblBeschreibung) + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse2) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen2) + Me.grpPruefgegenstand.Controls.Add(Me.txtEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.lblEreignisse) + Me.grpPruefgegenstand.Controls.Add(Me.txtMassnahmen) + Me.grpPruefgegenstand.Controls.Add(Me.lblMassnahmen1) + Me.grpPruefgegenstand.Controls.Add(Me.txtPruefgegenstand) + Me.grpPruefgegenstand.Controls.Add(Me.lblPruefgegenstand) + Me.grpPruefgegenstand.Dock = System.Windows.Forms.DockStyle.Left + Me.grpPruefgegenstand.Location = New System.Drawing.Point(239, 49) + Me.grpPruefgegenstand.Name = "grpPruefgegenstand" + Me.grpPruefgegenstand.Size = New System.Drawing.Size(543, 681) + Me.grpPruefgegenstand.TabIndex = 0 + Me.grpPruefgegenstand.TabStop = False + Me.grpPruefgegenstand.Text = "Prüfgegenstand" + ' + 'GrpStruktur + ' + Me.GrpStruktur.Controls.Add(Me.TreeStruktur) + Me.GrpStruktur.Controls.Add(Me.ToolStripTree) + Me.GrpStruktur.Location = New System.Drawing.Point(327, 33) + Me.GrpStruktur.Name = "GrpStruktur" + Me.GrpStruktur.Size = New System.Drawing.Size(225, 208) + Me.GrpStruktur.TabIndex = 52 + Me.GrpStruktur.TabStop = False + Me.GrpStruktur.Text = "Struktur" + Me.GrpStruktur.Visible = False + ' + 'TreeStruktur + ' + Me.TreeStruktur.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeStruktur.AllowDrop = True + Me.TreeStruktur.AllowExternalDrop = False + Me.TreeStruktur.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeStruktur.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeStruktur.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeStruktur.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeStruktur.DragDropNodeCopyEnabled = False + Me.TreeStruktur.ImageList = Me.ImageList1 + Me.TreeStruktur.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeStruktur.Location = New System.Drawing.Point(3, 55) + Me.TreeStruktur.Name = "TreeStruktur" + Me.TreeStruktur.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeStruktur.NodesConnector = Me.NodeConnector1 + Me.TreeStruktur.NodeStyle = Me.ElementStyle1 + Me.TreeStruktur.PathSeparator = ";" + Me.TreeStruktur.Size = New System.Drawing.Size(219, 150) + Me.TreeStruktur.Styles.Add(Me.ElementStyle1) + Me.TreeStruktur.TabIndex = 3 + Me.TreeStruktur.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "No Title #6.png") + Me.ImageList1.Images.SetKeyName(1, "Abort.png") + Me.ImageList1.Images.SetKeyName(2, "Stop.png") + Me.ImageList1.Images.SetKeyName(3, "Restore.png") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStripTree + ' + Me.ToolStripTree.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ToolStripTree.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslabelFilter, Me.tsCbxFilter, Me.ToolStripSeparator1, Me.lblSuche, Me.tstxtSuche, Me.TSBtnSuche, Me.TSBtnFilterAufheben, Me.TSBtnFirst, Me.TSBtnPrevious, Me.TSBtnNext, Me.TSBtnLast}) + Me.ToolStripTree.Location = New System.Drawing.Point(3, 16) + Me.ToolStripTree.Name = "ToolStripTree" + Me.ToolStripTree.Size = New System.Drawing.Size(219, 39) + Me.ToolStripTree.TabIndex = 2 + Me.ToolStripTree.Text = "ToolStrip2" + ' + 'tslabelFilter + ' + Me.tslabelFilter.Name = "tslabelFilter" + Me.tslabelFilter.Size = New System.Drawing.Size(33, 36) + Me.tslabelFilter.Text = "Filter" + ' + 'tsCbxFilter + ' + Me.tsCbxFilter.Name = "tsCbxFilter" + Me.tsCbxFilter.Size = New System.Drawing.Size(75, 39) + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 39) + ' + 'lblSuche + ' + Me.lblSuche.Name = "lblSuche" + Me.lblSuche.Size = New System.Drawing.Size(46, 36) + Me.lblSuche.Text = "Suchen" + ' + 'tstxtSuche + ' + Me.tstxtSuche.Name = "tstxtSuche" + Me.tstxtSuche.Size = New System.Drawing.Size(52, 23) + ' + 'TSBtnSuche + ' + Me.TSBtnSuche.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSuche.Image = CType(resources.GetObject("TSBtnSuche.Image"), System.Drawing.Image) + Me.TSBtnSuche.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSuche.Name = "TSBtnSuche" + Me.TSBtnSuche.Size = New System.Drawing.Size(36, 36) + Me.TSBtnSuche.Text = "Suchen" + ' + 'TSBtnFilterAufheben + ' + Me.TSBtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFilterAufheben.Image = CType(resources.GetObject("TSBtnFilterAufheben.Image"), System.Drawing.Image) + Me.TSBtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFilterAufheben.Name = "TSBtnFilterAufheben" + Me.TSBtnFilterAufheben.Size = New System.Drawing.Size(36, 36) + Me.TSBtnFilterAufheben.Text = "Filter aufheben" + ' + 'TSBtnFirst + ' + Me.TSBtnFirst.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFirst.Image = CType(resources.GetObject("TSBtnFirst.Image"), System.Drawing.Image) + Me.TSBtnFirst.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFirst.Name = "TSBtnFirst" + Me.TSBtnFirst.Size = New System.Drawing.Size(36, 36) + Me.TSBtnFirst.Text = "Erster Datensatz" + ' + 'TSBtnPrevious + ' + Me.TSBtnPrevious.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnPrevious.Image = CType(resources.GetObject("TSBtnPrevious.Image"), System.Drawing.Image) + Me.TSBtnPrevious.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnPrevious.Name = "TSBtnPrevious" + Me.TSBtnPrevious.Size = New System.Drawing.Size(36, 36) + Me.TSBtnPrevious.Text = "Vorheriger Datensatz" + ' + 'TSBtnNext + ' + Me.TSBtnNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnNext.Image = CType(resources.GetObject("TSBtnNext.Image"), System.Drawing.Image) + Me.TSBtnNext.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnNext.Name = "TSBtnNext" + Me.TSBtnNext.Size = New System.Drawing.Size(36, 36) + Me.TSBtnNext.Text = "Nächster Datensatz" + ' + 'TSBtnLast + ' + Me.TSBtnLast.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnLast.Image = CType(resources.GetObject("TSBtnLast.Image"), System.Drawing.Image) + Me.TSBtnLast.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnLast.Name = "TSBtnLast" + Me.TSBtnLast.Size = New System.Drawing.Size(36, 36) + Me.TSBtnLast.Text = "Letzter Datensatz" + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.Location = New System.Drawing.Point(104, 263) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 96) + Me.txtHilfsmittel.TabIndex = 3 + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(15, 265) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 54 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.Location = New System.Drawing.Point(104, 30) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 0 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(16, 33) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 53 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(16, 75) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 51 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(104, 62) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 96) + Me.txtBeschreibung.TabIndex = 1 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(16, 62) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 49 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(14, 468) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(53, 13) + Me.lblEreignisse2.TabIndex = 34 + Me.lblEreignisse2.Text = "Reporting" + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(15, 379) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 33 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'txtEreignisse + ' + Me.txtEreignisse.Location = New System.Drawing.Point(104, 465) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.Size = New System.Drawing.Size(427, 96) + Me.txtEreignisse.TabIndex = 5 + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(15, 392) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 31 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.Location = New System.Drawing.Point(104, 363) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 96) + Me.txtMassnahmen.TabIndex = 4 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(14, 366) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 29 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.Location = New System.Drawing.Point(104, 164) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 96) + Me.txtPruefgegenstand.TabIndex = 2 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(16, 164) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 27 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'cbAktiv + ' + Me.cbAktiv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbAktiv.AutoSize = True + Me.cbAktiv.Location = New System.Drawing.Point(65, 91) + Me.cbAktiv.Name = "cbAktiv" + Me.cbAktiv.Size = New System.Drawing.Size(15, 14) + Me.cbAktiv.TabIndex = 46 + Me.cbAktiv.UseVisualStyleBackColor = True + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(7, 91) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 45 + Me.lblAktiv.Text = "Aktiv" + ' + 'txtMutierer + ' + Me.txtMutierer.Location = New System.Drawing.Point(68, 63) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 44 + ' + 'txtMutiertam + ' + Me.txtMutiertam.Location = New System.Drawing.Point(68, 38) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 43 + ' + 'txtErstelltam + ' + Me.txtErstelltam.Location = New System.Drawing.Point(68, 12) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 42 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(7, 66) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 41 + Me.lblMutierer.Text = "Mutierer" + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(7, 15) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 39 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(7, 41) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 40 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'GrpLeft + ' + Me.GrpLeft.Controls.Add(Me.grpAssesmentTyp) + Me.GrpLeft.Controls.Add(Me.GrpPlanung) + Me.GrpLeft.Controls.Add(Me.GrpVerantwortung) + Me.GrpLeft.Controls.Add(Me.GrpDefinitionZuordnung) + Me.GrpLeft.Controls.Add(Me.Panel1) + Me.GrpLeft.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpLeft.Location = New System.Drawing.Point(0, 49) + Me.GrpLeft.Name = "GrpLeft" + Me.GrpLeft.Size = New System.Drawing.Size(239, 681) + Me.GrpLeft.TabIndex = 11 + Me.GrpLeft.TabStop = False + ' + 'grpAssesmentTyp + ' + Me.grpAssesmentTyp.Controls.Add(Me.rbAssessmentTyp_Massen) + Me.grpAssesmentTyp.Controls.Add(Me.rbAssessmentTyp_Anzahl) + Me.grpAssesmentTyp.Controls.Add(Me.rbAssessmenttyp_Normal) + Me.grpAssesmentTyp.Dock = System.Windows.Forms.DockStyle.Top + Me.grpAssesmentTyp.Location = New System.Drawing.Point(3, 523) + Me.grpAssesmentTyp.Name = "grpAssesmentTyp" + Me.grpAssesmentTyp.Size = New System.Drawing.Size(233, 49) + Me.grpAssesmentTyp.TabIndex = 48 + Me.grpAssesmentTyp.TabStop = False + Me.grpAssesmentTyp.Text = "Assessment-Typ" + ' + 'rbAssessmentTyp_Massen + ' + Me.rbAssessmentTyp_Massen.AutoSize = True + Me.rbAssessmentTyp_Massen.Location = New System.Drawing.Point(154, 19) + Me.rbAssessmentTyp_Massen.Name = "rbAssessmentTyp_Massen" + Me.rbAssessmentTyp_Massen.Size = New System.Drawing.Size(62, 17) + Me.rbAssessmentTyp_Massen.TabIndex = 2 + Me.rbAssessmentTyp_Massen.Text = "Massen" + Me.rbAssessmentTyp_Massen.UseVisualStyleBackColor = True + ' + 'rbAssessmentTyp_Anzahl + ' + Me.rbAssessmentTyp_Anzahl.AutoSize = True + Me.rbAssessmentTyp_Anzahl.Location = New System.Drawing.Point(74, 19) + Me.rbAssessmentTyp_Anzahl.Name = "rbAssessmentTyp_Anzahl" + Me.rbAssessmentTyp_Anzahl.Size = New System.Drawing.Size(74, 17) + Me.rbAssessmentTyp_Anzahl.TabIndex = 1 + Me.rbAssessmentTyp_Anzahl.Text = "Mit Anzahl" + Me.rbAssessmentTyp_Anzahl.UseVisualStyleBackColor = True + ' + 'rbAssessmenttyp_Normal + ' + Me.rbAssessmenttyp_Normal.AutoSize = True + Me.rbAssessmenttyp_Normal.Checked = True + Me.rbAssessmenttyp_Normal.Location = New System.Drawing.Point(10, 19) + Me.rbAssessmenttyp_Normal.Name = "rbAssessmenttyp_Normal" + Me.rbAssessmenttyp_Normal.Size = New System.Drawing.Size(58, 17) + Me.rbAssessmenttyp_Normal.TabIndex = 0 + Me.rbAssessmenttyp_Normal.TabStop = True + Me.rbAssessmenttyp_Normal.Text = "Normal" + Me.rbAssessmenttyp_Normal.UseVisualStyleBackColor = True + ' + 'GrpPlanung + ' + Me.GrpPlanung.Controls.Add(Me.cbKeinEMail) + Me.GrpPlanung.Controls.Add(Me.lblKeinEMail) + Me.GrpPlanung.Controls.Add(Me.cbboxTerminierung) + Me.GrpPlanung.Controls.Add(Me.lblTerminierung) + Me.GrpPlanung.Controls.Add(Me.dtGueltigBis) + Me.GrpPlanung.Controls.Add(Me.lblGueltigBis) + Me.GrpPlanung.Controls.Add(Me.dtErstmalsam) + Me.GrpPlanung.Controls.Add(Me.Label2) + Me.GrpPlanung.Controls.Add(Me.cbboxZeitpunkt) + Me.GrpPlanung.Controls.Add(Me.lblPrioritaet) + Me.GrpPlanung.Controls.Add(Me.lblZeitpunkt) + Me.GrpPlanung.Controls.Add(Me.cbboxPrioritaet) + Me.GrpPlanung.Controls.Add(Me.lblPeriodizitaet) + Me.GrpPlanung.Controls.Add(Me.cbboxPeriodizitaet) + Me.GrpPlanung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpPlanung.Location = New System.Drawing.Point(3, 310) + Me.GrpPlanung.Name = "GrpPlanung" + Me.GrpPlanung.Size = New System.Drawing.Size(233, 213) + Me.GrpPlanung.TabIndex = 2 + Me.GrpPlanung.TabStop = False + Me.GrpPlanung.Text = "Planung" + ' + 'cbKeinEMail + ' + Me.cbKeinEMail.AutoSize = True + Me.cbKeinEMail.Location = New System.Drawing.Point(99, 183) + Me.cbKeinEMail.Name = "cbKeinEMail" + Me.cbKeinEMail.Size = New System.Drawing.Size(15, 14) + Me.cbKeinEMail.TabIndex = 38 + Me.cbKeinEMail.UseVisualStyleBackColor = True + ' + 'lblKeinEMail + ' + Me.lblKeinEMail.AutoSize = True + Me.lblKeinEMail.Location = New System.Drawing.Point(9, 184) + Me.lblKeinEMail.Name = "lblKeinEMail" + Me.lblKeinEMail.Size = New System.Drawing.Size(57, 13) + Me.lblKeinEMail.TabIndex = 38 + Me.lblKeinEMail.Text = "Kein EMail" + ' + 'cbboxTerminierung + ' + Me.cbboxTerminierung.FormattingEnabled = True + Me.cbboxTerminierung.Location = New System.Drawing.Point(98, 129) + Me.cbboxTerminierung.Name = "cbboxTerminierung" + Me.cbboxTerminierung.Size = New System.Drawing.Size(125, 21) + Me.cbboxTerminierung.TabIndex = 4 + ' + 'lblTerminierung + ' + Me.lblTerminierung.AutoSize = True + Me.lblTerminierung.Location = New System.Drawing.Point(6, 137) + Me.lblTerminierung.Name = "lblTerminierung" + Me.lblTerminierung.Size = New System.Drawing.Size(39, 13) + Me.lblTerminierung.TabIndex = 37 + Me.lblTerminierung.Text = "Termin" + ' + 'dtGueltigBis + ' + Me.dtGueltigBis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtGueltigBis.Location = New System.Drawing.Point(98, 155) + Me.dtGueltigBis.Name = "dtGueltigBis" + Me.dtGueltigBis.Size = New System.Drawing.Size(125, 20) + Me.dtGueltigBis.TabIndex = 5 + ' + 'lblGueltigBis + ' + Me.lblGueltigBis.AutoSize = True + Me.lblGueltigBis.Location = New System.Drawing.Point(9, 161) + Me.lblGueltigBis.Name = "lblGueltigBis" + Me.lblGueltigBis.Size = New System.Drawing.Size(50, 13) + Me.lblGueltigBis.TabIndex = 35 + Me.lblGueltigBis.Text = "Gültig bis" + ' + 'dtErstmalsam + ' + Me.dtErstmalsam.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtErstmalsam.Location = New System.Drawing.Point(99, 103) + Me.dtErstmalsam.Name = "dtErstmalsam" + Me.dtErstmalsam.Size = New System.Drawing.Size(125, 20) + Me.dtErstmalsam.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(6, 114) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(63, 13) + Me.Label2.TabIndex = 33 + Me.Label2.Text = "Erstmals am" + ' + 'cbboxZeitpunkt + ' + Me.cbboxZeitpunkt.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxZeitpunkt.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxZeitpunkt.FormattingEnabled = True + Me.cbboxZeitpunkt.Location = New System.Drawing.Point(99, 73) + Me.cbboxZeitpunkt.Name = "cbboxZeitpunkt" + Me.cbboxZeitpunkt.Size = New System.Drawing.Size(125, 21) + Me.cbboxZeitpunkt.TabIndex = 2 + ' + 'lblPrioritaet + ' + Me.lblPrioritaet.AutoSize = True + Me.lblPrioritaet.Location = New System.Drawing.Point(6, 25) + Me.lblPrioritaet.Name = "lblPrioritaet" + Me.lblPrioritaet.Size = New System.Drawing.Size(42, 13) + Me.lblPrioritaet.TabIndex = 27 + Me.lblPrioritaet.Text = "Priorität" + ' + 'lblZeitpunkt + ' + Me.lblZeitpunkt.AutoSize = True + Me.lblZeitpunkt.Location = New System.Drawing.Point(5, 81) + Me.lblZeitpunkt.Name = "lblZeitpunkt" + Me.lblZeitpunkt.Size = New System.Drawing.Size(52, 13) + Me.lblZeitpunkt.TabIndex = 31 + Me.lblZeitpunkt.Text = "Zeitpunkt" + ' + 'cbboxPrioritaet + ' + Me.cbboxPrioritaet.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxPrioritaet.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxPrioritaet.FormattingEnabled = True + Me.cbboxPrioritaet.Location = New System.Drawing.Point(99, 17) + Me.cbboxPrioritaet.Name = "cbboxPrioritaet" + Me.cbboxPrioritaet.Size = New System.Drawing.Size(125, 21) + Me.cbboxPrioritaet.TabIndex = 0 + ' + 'lblPeriodizitaet + ' + Me.lblPeriodizitaet.AutoSize = True + Me.lblPeriodizitaet.Location = New System.Drawing.Point(6, 53) + Me.lblPeriodizitaet.Name = "lblPeriodizitaet" + Me.lblPeriodizitaet.Size = New System.Drawing.Size(58, 13) + Me.lblPeriodizitaet.TabIndex = 29 + Me.lblPeriodizitaet.Text = "Periodizität" + ' + 'cbboxPeriodizitaet + ' + Me.cbboxPeriodizitaet.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxPeriodizitaet.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxPeriodizitaet.FormattingEnabled = True + Me.cbboxPeriodizitaet.Location = New System.Drawing.Point(99, 45) + Me.cbboxPeriodizitaet.Name = "cbboxPeriodizitaet" + Me.cbboxPeriodizitaet.Size = New System.Drawing.Size(125, 21) + Me.cbboxPeriodizitaet.TabIndex = 1 + ' + 'GrpVerantwortung + ' + Me.GrpVerantwortung.Controls.Add(Me.cbDurchfuerhung_ISI) + Me.GrpVerantwortung.Controls.Add(Me.lblDurchfuehrung_ISI) + Me.GrpVerantwortung.Controls.Add(Me.cbSelbstkontrolle) + Me.GrpVerantwortung.Controls.Add(Me.lblSelbstkontrolle) + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortungPlan) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlichPlan) + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortungKontrolle) + Me.GrpVerantwortung.Controls.Add(Me.cbboxVerantwortungDurchführung) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlichKontrolle) + Me.GrpVerantwortung.Controls.Add(Me.lblVerantwortlichDurchführung) + Me.GrpVerantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVerantwortung.Location = New System.Drawing.Point(3, 170) + Me.GrpVerantwortung.Name = "GrpVerantwortung" + Me.GrpVerantwortung.Size = New System.Drawing.Size(233, 140) + Me.GrpVerantwortung.TabIndex = 1 + Me.GrpVerantwortung.TabStop = False + Me.GrpVerantwortung.Text = "Verantwortung" + ' + 'cbDurchfuerhung_ISI + ' + Me.cbDurchfuerhung_ISI.AutoSize = True + Me.cbDurchfuerhung_ISI.Location = New System.Drawing.Point(98, 115) + Me.cbDurchfuerhung_ISI.Name = "cbDurchfuerhung_ISI" + Me.cbDurchfuerhung_ISI.Size = New System.Drawing.Size(15, 14) + Me.cbDurchfuerhung_ISI.TabIndex = 39 + Me.cbDurchfuerhung_ISI.UseVisualStyleBackColor = True + ' + 'lblDurchfuehrung_ISI + ' + Me.lblDurchfuehrung_ISI.AutoSize = True + Me.lblDurchfuehrung_ISI.Location = New System.Drawing.Point(8, 115) + Me.lblDurchfuehrung_ISI.Name = "lblDurchfuehrung_ISI" + Me.lblDurchfuehrung_ISI.Size = New System.Drawing.Size(58, 13) + Me.lblDurchfuehrung_ISI.TabIndex = 38 + Me.lblDurchfuehrung_ISI.Text = "Durchf. ISI" + ' + 'cbSelbstkontrolle + ' + Me.cbSelbstkontrolle.AutoSize = True + Me.cbSelbstkontrolle.Location = New System.Drawing.Point(98, 93) + Me.cbSelbstkontrolle.Name = "cbSelbstkontrolle" + Me.cbSelbstkontrolle.Size = New System.Drawing.Size(15, 14) + Me.cbSelbstkontrolle.TabIndex = 37 + Me.cbSelbstkontrolle.UseVisualStyleBackColor = True + ' + 'lblSelbstkontrolle + ' + Me.lblSelbstkontrolle.AutoSize = True + Me.lblSelbstkontrolle.Location = New System.Drawing.Point(7, 93) + Me.lblSelbstkontrolle.Name = "lblSelbstkontrolle" + Me.lblSelbstkontrolle.Size = New System.Drawing.Size(76, 13) + Me.lblSelbstkontrolle.TabIndex = 36 + Me.lblSelbstkontrolle.Text = "Selbstkontrolle" + ' + 'cbboxVerantwortungPlan + ' + Me.cbboxVerantwortungPlan.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxVerantwortungPlan.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxVerantwortungPlan.FormattingEnabled = True + Me.cbboxVerantwortungPlan.Location = New System.Drawing.Point(98, 10) + Me.cbboxVerantwortungPlan.Name = "cbboxVerantwortungPlan" + Me.cbboxVerantwortungPlan.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortungPlan.TabIndex = 0 + ' + 'lblVerantwortlichPlan + ' + Me.lblVerantwortlichPlan.AutoSize = True + Me.lblVerantwortlichPlan.Location = New System.Drawing.Point(6, 18) + Me.lblVerantwortlichPlan.Name = "lblVerantwortlichPlan" + Me.lblVerantwortlichPlan.Size = New System.Drawing.Size(28, 13) + Me.lblVerantwortlichPlan.TabIndex = 35 + Me.lblVerantwortlichPlan.Text = "Plan" + ' + 'cbboxVerantwortungKontrolle + ' + Me.cbboxVerantwortungKontrolle.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxVerantwortungKontrolle.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxVerantwortungKontrolle.FormattingEnabled = True + Me.cbboxVerantwortungKontrolle.Location = New System.Drawing.Point(98, 64) + Me.cbboxVerantwortungKontrolle.Name = "cbboxVerantwortungKontrolle" + Me.cbboxVerantwortungKontrolle.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortungKontrolle.TabIndex = 2 + ' + 'cbboxVerantwortungDurchführung + ' + Me.cbboxVerantwortungDurchführung.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxVerantwortungDurchführung.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxVerantwortungDurchführung.FormattingEnabled = True + Me.cbboxVerantwortungDurchführung.Location = New System.Drawing.Point(98, 37) + Me.cbboxVerantwortungDurchführung.Name = "cbboxVerantwortungDurchführung" + Me.cbboxVerantwortungDurchführung.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortungDurchführung.TabIndex = 1 + ' + 'lblVerantwortlichKontrolle + ' + Me.lblVerantwortlichKontrolle.AutoSize = True + Me.lblVerantwortlichKontrolle.Location = New System.Drawing.Point(6, 67) + Me.lblVerantwortlichKontrolle.Name = "lblVerantwortlichKontrolle" + Me.lblVerantwortlichKontrolle.Size = New System.Drawing.Size(48, 13) + Me.lblVerantwortlichKontrolle.TabIndex = 34 + Me.lblVerantwortlichKontrolle.Text = "Kontrolle" + ' + 'lblVerantwortlichDurchführung + ' + Me.lblVerantwortlichDurchführung.AutoSize = True + Me.lblVerantwortlichDurchführung.Location = New System.Drawing.Point(6, 40) + Me.lblVerantwortlichDurchführung.Name = "lblVerantwortlichDurchführung" + Me.lblVerantwortlichDurchführung.Size = New System.Drawing.Size(72, 13) + Me.lblVerantwortlichDurchführung.TabIndex = 33 + Me.lblVerantwortlichDurchführung.Text = "Durchführung" + ' + 'GrpDefinitionZuordnung + ' + Me.GrpDefinitionZuordnung.Controls.Add(Me.TreeZuordnung) + Me.GrpDefinitionZuordnung.Controls.Add(Me.btnNeueZuordnung) + Me.GrpDefinitionZuordnung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpDefinitionZuordnung.Location = New System.Drawing.Point(3, 16) + Me.GrpDefinitionZuordnung.Name = "GrpDefinitionZuordnung" + Me.GrpDefinitionZuordnung.Size = New System.Drawing.Size(233, 154) + Me.GrpDefinitionZuordnung.TabIndex = 0 + Me.GrpDefinitionZuordnung.TabStop = False + Me.GrpDefinitionZuordnung.Text = "Zuordnung" + ' + 'TreeZuordnung + ' + Me.TreeZuordnung.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeZuordnung.AllowDrop = True + Me.TreeZuordnung.AllowExternalDrop = False + Me.TreeZuordnung.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeZuordnung.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeZuordnung.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeZuordnung.ContextMenuStrip = Me.ctxMenuZurodnung + Me.TreeZuordnung.ImageList = Me.ImageList1 + Me.TreeZuordnung.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeZuordnung.Location = New System.Drawing.Point(6, 46) + Me.TreeZuordnung.Name = "TreeZuordnung" + Me.TreeZuordnung.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node2}) + Me.TreeZuordnung.NodesConnector = Me.NodeConnector2 + Me.TreeZuordnung.NodeStyle = Me.ElementStyle2 + Me.TreeZuordnung.PathSeparator = ";" + Me.TreeZuordnung.Size = New System.Drawing.Size(217, 100) + Me.TreeZuordnung.Styles.Add(Me.ElementStyle2) + Me.TreeZuordnung.TabIndex = 1 + Me.TreeZuordnung.Text = "AdvTree1" + ' + 'ctxMenuZurodnung + ' + Me.ctxMenuZurodnung.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuZurodnung.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.EintragBearbeitenToolStripMenuItem, Me.NeuerEintragHinzufügenToolStripMenuItem}) + Me.ctxMenuZurodnung.Name = "ctxMenuZurodnung" + Me.ctxMenuZurodnung.Size = New System.Drawing.Size(210, 48) + ' + 'EintragBearbeitenToolStripMenuItem + ' + Me.EintragBearbeitenToolStripMenuItem.Name = "EintragBearbeitenToolStripMenuItem" + Me.EintragBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.EintragBearbeitenToolStripMenuItem.Text = "Eintrag bearbeiten" + ' + 'NeuerEintragHinzufügenToolStripMenuItem + ' + Me.NeuerEintragHinzufügenToolStripMenuItem.Name = "NeuerEintragHinzufügenToolStripMenuItem" + Me.NeuerEintragHinzufügenToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.NeuerEintragHinzufügenToolStripMenuItem.Text = "Neuer Eintrag hinzufügen" + ' + 'Node2 + ' + Me.Node2.Expanded = True + Me.Node2.Name = "Node2" + Me.Node2.Text = "Node2" + ' + 'NodeConnector2 + ' + Me.NodeConnector2.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle2 + ' + Me.ElementStyle2.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle2.Name = "ElementStyle2" + Me.ElementStyle2.TextColor = System.Drawing.SystemColors.ControlText + ' + 'btnNeueZuordnung + ' + Me.btnNeueZuordnung.Location = New System.Drawing.Point(6, 17) + Me.btnNeueZuordnung.Name = "btnNeueZuordnung" + Me.btnNeueZuordnung.Size = New System.Drawing.Size(217, 23) + Me.btnNeueZuordnung.TabIndex = 0 + Me.btnNeueZuordnung.Text = "Struktur anzeigen" + Me.btnNeueZuordnung.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.txtMutierer) + Me.Panel1.Controls.Add(Me.txtErstelltam) + Me.Panel1.Controls.Add(Me.lblMutierer) + Me.Panel1.Controls.Add(Me.cbAktiv) + Me.Panel1.Controls.Add(Me.txtMutiertam) + Me.Panel1.Controls.Add(Me.lblErstelltam) + Me.Panel1.Controls.Add(Me.lblAktiv) + Me.Panel1.Controls.Add(Me.lblMutiertam) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel1.Location = New System.Drawing.Point(3, 568) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(233, 110) + Me.Panel1.TabIndex = 47 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(782, 49) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(176, 681) + Me.GroupBox1.TabIndex = 13 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(170, 662) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'frmPruefplanDetail + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(958, 730) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.grpPruefgegenstand) + Me.Controls.Add(Me.GrpLeft) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmPruefplanDetail" + Me.Text = "Assessment-Plan Detail" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.grpPruefgegenstand.ResumeLayout(False) + Me.grpPruefgegenstand.PerformLayout() + Me.GrpStruktur.ResumeLayout(False) + Me.GrpStruktur.PerformLayout() + CType(Me.TreeStruktur, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStripTree.ResumeLayout(False) + Me.ToolStripTree.PerformLayout() + Me.GrpLeft.ResumeLayout(False) + Me.grpAssesmentTyp.ResumeLayout(False) + Me.grpAssesmentTyp.PerformLayout() + Me.GrpPlanung.ResumeLayout(False) + Me.GrpPlanung.PerformLayout() + Me.GrpVerantwortung.ResumeLayout(False) + Me.GrpVerantwortung.PerformLayout() + Me.GrpDefinitionZuordnung.ResumeLayout(False) + CType(Me.TreeZuordnung, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuZurodnung.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents grpPruefgegenstand As System.Windows.Forms.GroupBox + Friend WithEvents lblEreignisse2 As System.Windows.Forms.Label + Friend WithEvents lblMassnahmen2 As System.Windows.Forms.Label + Friend WithEvents txtEreignisse As System.Windows.Forms.TextBox + Friend WithEvents lblEreignisse As System.Windows.Forms.Label + Friend WithEvents txtMassnahmen As System.Windows.Forms.TextBox + Friend WithEvents lblMassnahmen1 As System.Windows.Forms.Label + Friend WithEvents txtPruefgegenstand As System.Windows.Forms.TextBox + Friend WithEvents lblPruefgegenstand As System.Windows.Forms.Label + Friend WithEvents GrpLeft As System.Windows.Forms.GroupBox + Friend WithEvents cbboxZeitpunkt As System.Windows.Forms.ComboBox + Friend WithEvents lblZeitpunkt As System.Windows.Forms.Label + Friend WithEvents cbboxPeriodizitaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPeriodizitaet As System.Windows.Forms.Label + Friend WithEvents cbboxPrioritaet As System.Windows.Forms.ComboBox + Friend WithEvents lblPrioritaet As System.Windows.Forms.Label + Friend WithEvents GrpVerantwortung As System.Windows.Forms.GroupBox + Friend WithEvents cbboxVerantwortungKontrolle As System.Windows.Forms.ComboBox + Friend WithEvents cbboxVerantwortungDurchführung As System.Windows.Forms.ComboBox + Friend WithEvents lblVerantwortlichKontrolle As System.Windows.Forms.Label + Friend WithEvents lblVerantwortlichDurchführung As System.Windows.Forms.Label + Friend WithEvents GrpPlanung As System.Windows.Forms.GroupBox + Friend WithEvents cbAktiv As System.Windows.Forms.CheckBox + Friend WithEvents lblAktiv As System.Windows.Forms.Label + Friend WithEvents txtMutierer As System.Windows.Forms.TextBox + Friend WithEvents txtMutiertam As System.Windows.Forms.TextBox + Friend WithEvents txtErstelltam As System.Windows.Forms.TextBox + Friend WithEvents lblMutierer As System.Windows.Forms.Label + Friend WithEvents lblErstelltam As System.Windows.Forms.Label + Friend WithEvents lblMutiertam As System.Windows.Forms.Label + Friend WithEvents dtErstmalsam As System.Windows.Forms.DateTimePicker + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents lblKontrollaktivität As System.Windows.Forms.Label + Friend WithEvents txtBeschreibung As System.Windows.Forms.TextBox + Friend WithEvents lblBeschreibung As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents GrpStruktur As GroupBox + Friend WithEvents GrpDefinitionZuordnung As GroupBox + Friend WithEvents btnNeueZuordnung As Button + Friend WithEvents TreeStruktur As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ToolStripTree As ToolStrip + Friend WithEvents tslabelFilter As ToolStripLabel + Friend WithEvents tsCbxFilter As ToolStripComboBox + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents lblSuche As ToolStripLabel + Friend WithEvents tstxtSuche As ToolStripTextBox + Friend WithEvents TSBtnSuche As ToolStripButton + Friend WithEvents TSBtnFilterAufheben As ToolStripButton + Friend WithEvents TSBtnFirst As ToolStripButton + Friend WithEvents TSBtnPrevious As ToolStripButton + Friend WithEvents TSBtnNext As ToolStripButton + Friend WithEvents TSBtnLast As ToolStripButton + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents dtGueltigBis As DateTimePicker + Friend WithEvents lblGueltigBis As Label + Friend WithEvents TreeZuordnung As DevComponents.AdvTree.AdvTree + Friend WithEvents Node2 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector2 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle2 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ImageList1 As ImageList + Friend WithEvents cbboxTerminierung As ComboBox + Friend WithEvents lblTerminierung As Label + Friend WithEvents ctxMenuZurodnung As ContextMenuStrip + Friend WithEvents EintragBearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NeuerEintragHinzufügenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblHilfsmittel As Label + Friend WithEvents cbboxVerantwortungPlan As ComboBox + Friend WithEvents lblVerantwortlichPlan As Label + Friend WithEvents cbKeinEMail As CheckBox + Friend WithEvents lblKeinEMail As Label + Friend WithEvents cbSelbstkontrolle As CheckBox + Friend WithEvents lblSelbstkontrolle As Label + Friend WithEvents grpAssesmentTyp As GroupBox + Friend WithEvents rbAssessmentTyp_Massen As RadioButton + Friend WithEvents rbAssessmentTyp_Anzahl As RadioButton + Friend WithEvents rbAssessmenttyp_Normal As RadioButton + Friend WithEvents cbDurchfuerhung_ISI As CheckBox + Friend WithEvents lblDurchfuehrung_ISI As Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.resx b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.resx new file mode 100644 index 0000000..f67824e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.resx @@ -0,0 +1,3860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 793, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKQSURBVDhPrY/JTxNRAIdf0kQPJoZ4MOFEUNwoWLbSllUg + KAFKy6JSFFDABUwQLxz4B0iaECImGA9owo14aCXFUFot2MJAC5zdN+hCaaEFSUQoP997DFSJRyf5kpnM + 7/veDPkvl06n22hpaoZlfAoL3hUs+lbhXlqFxx+CdzkMXyAMfyCE5WAI43YBba1teHC/Y0PUCWmob0Aj + xTE9hwX/2l8sLq/DHViHJ7gO38oPTLvmwQ67e/sORJ2Qm403wBCc89iO7Bwggq3tCH5tbePn5hY9ZJZv + bzW3RAP1166D8UZw4dtSaBdfCF8pX+jvfPau4pNnBR/dQdgcM3zLIqJOSF2tDgzLhAAv/dQ9PIE1+vns + N8L47g/z4Khtkm9ZRNQJuVJzGYwRqx1zH7yYp8y9Z3gwS3G9o7x1Y4bywjzBt3VXa6OB6soqMB49eQbD + 6ASGLQ6YXk1h5LUAE2XYOgmj2Y7nL214+Pgp37KIqBOiVVfgn1Roohx4V62tjAbUpWX4E025GlUaLR/V + 0NMY7JmJ6rLy/Y2oE1JSfBGM0kslsNlscLlcHKfTyWH3giAgS6GEQi7f34o6IYV5+WAUFxbBarUiPzcP + ykwFHA4H7HY7j46NjSE/JxfZqiwU0G3RhYJoIFupAiMvKxsWOkxPSUWyVAqz2QyTyQSDwYChoSGoaFSR + IUcOi9BDRJ2QjNS0TXlqGh8YjUacPpmAE/HxXBocHMTAwAD6+/shS0qGTJqEzLR0KGlI1AmJORpzL/lc + YiRdlsLHe1JfXx96enqg1+vR3d2NMzR8NuEUzidKWWiHqkd2C4Qck0gkpXFxcVVdXV1NVGjt7e1tp3TQ + QDt77uzsbIw9Hqs9JJFoGHRfQAg5/BslsRWFgJrRJAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + 900, 17 + + + 177, 56 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAm + CwAAAk1TRnQBSQFMAgEBBAEAAbABAAGwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACQAB/wEH + BHEBcgH0CAAB/wGTBEYBbwH0CAAB/wGTBEYBbwH0CAAB/wGZBFMBdAH0BwAB8QNyBnEB/wUAAfIJRgH/ + BQABGglGAf8FAAEbCFMBUgH/BAABCAOXAnIGcQH/AwABGgNMCEYB/wMAARoDTAhGAf8DAAEaAlkFUwGa + A1MB/wIAAfQElwEIAZcCcgVxAgAB9AIXAW8BGgFMBEYBvQNGAgAB9AIXAW8CTAhGAgAB/wRZCFMBUgIA + BJcBCAL/AZcCcgRxAfQBAAJvARcB9AH/AfMBTAJGAv8BlAJGAfQBAAJvAhcBbwJMB0YB9AEABlkEUwH2 + A1MB9AH/A5cBCAH/AfQC/wGXAnIDcQFyAf8EbwL/AfMBTAL/ARsDRgFvAf8DbwIXAW8CTAZGAW8B/whZ + AlMB/wNTAXQB8QKXAQgB/wH0ApcC/wGXA3ICcQEaAeMEbwT/Ab0FRgEaAeMCbweUARYBbwNGARsDWQX/ + AVkBUwH/AZoDUwEHAXgBlwH/AfQElwL/ApcCcgFxAQcC4wRvA/8BTAVGAQcC4wHzCf8DRgGZA1kE/wH2 + AVkBmgH/ARoDUwEIApgHlwL/ApcCcgEaA+MCbwT/AfMBTAEXA0YBGgLjARYBvQMaBL0BlANGARoDWQj/ + AZoDUwH0A5gBeAaXAv8ClwFyAfQBFgPjAv8BGwFvAv8B8wJMAkYB9AEWA+MEbwIXA0wCRgH0A1kI/wJZ + AlMB/wEIA5gBeAaXAf8ClwEHAf8BlAEWAeMB8wH/AfMDbwL/AZQCTAGTAf8BlAEWA+MEbwIXAW8CTAGT + Af8BmgJZAf8B9gX/AXoDWQGZAQABBwWYCJcB/wEAAZMCFgHjAb0B4wRvAZQBFwFvAUwB/wEAAZMCFgPj + BG8CFwFvAUwB/wEAAZkFWQGgAcMBmgVZAf8BAAH/AQgFmAF4BZcB8QIAAf8BlAMWAuMEbwIXAfICAAH/ + AZQDFgLjBG8CFwEaAgAB/wGaC1kBGwMAAf8BCAWYAXgClwGYAQgEAAH/AZQDFgPjA28BGgQAAf8BlAMW + A+MDbwEaBAAB/wGaCVkBGgUAAf8BBwEIBpgB9AYAAf8BkwG9AhYC4wEWAW8B9AYAAf8BkwG9AhYC4wEW + AW8B9AYAAf8BmQGgAXoDWQF6AVkB/wgAAf8B9AIIAfEB/woAAf8B9AEaAQcBGgH/CgAB/wH0ARoBBwEa + Af8KAAH/AfQBGgGZARsB/wUAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAHw + AQ8B8AEPAfABDwHwAQ8B4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGA + AQEBgAEAAYABAAGAAQABgDEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHA + AQMBwAEDAeABBwHgAQcB4AEHAeABBwH4AR8B+AEfAfgBHwH4AR8L + + + + 1015, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACpSURBVFhH7ZLhCoQwDIP36Hu0vdl5DU7GbFx6KtyPfhBQ + 26aBWpIkEfhMYqh9YVRjtS+Maqz2hVGN1T6Z2RCqtULfZzC8M/0GMx2+d45QZCYMjFprzPCkvnwxIwMT + Qw1g6iG82i4ZKYCwcJYMjFcneDXAS5Lxhp+QzOoEDNQvTiMDg4ufkIG6BSfhZf4jwJ0T3A5gIstNjKMn + GPyENzyK4fWOSpIkcShlA/2ShGAugX0dAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEeSURBVFhH7ZJbEoMwCEVduktzZy0XIRKCkSbt9CdnPIyG + R+LotlhkedFlleUUo30NdlB22EiPB02sDlE5e4FnK0KvPg0aWR2kcvYCz0XkrSgYBc1FDLOiQMA9qzmV + sxNgQBEDrSgQcN/LfwyaGylU7vvORjnpGUOHerFON5XRmun5GB54HEd5My+FrlEPmeZ8I2LkAFG9mObx + AJBCdmM1DW/c+wSQwu8O8CSF0KjWmCZqZil0jXqMacJPQMFvhuDXuOfm06XhAfYnpOA3KvgcDn7z/6Sp + DoChVqkp+PzXDoAhGGhF7iy5sHmovVMHgBQqdR0FHq1Rg81hmmoYxJqxATXWc6kxB1X6YY+M9ITMDJrp + bZqhpNLM9i8Wf2Lb3g1pbK07+OH0AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK9SURBVDhPfVNtSFNRGL53OmHsQ93mds3pnUkR/VCIojDF + SoxULOpXmh+VEFb0IZmpQQlGmSnkx0yaTQ3SsnLOhHD50ZaSWX8KUSE/CiLQsj/9CFrep3PONjSyHng5 + 5z3v87z3vO97LrcKEjmlrkUWlzQjS8nzyHYTI3t6xmL/gY5X6+3y1EJJdbEH2spB6Gvc0Fe7EHrFCVVx + F+R7zkqE0025XskyDDLDhklNgQ0RN4Yg3nQjqmYIkVUDMF11IqLiKSLKe2Es6YIq1wKZIWaKarxSAl4t + 9GtPtkGsH4FY64a5YQTRTWOItr5hZm4cZcnCy7ohFD9CcFYdeLWx3yfn9qkzSn3iF4zMxKuYWDcM4cJj + GM60Q7njFKiW45WCg16TXlusHUbGg7coGZyGmSYkAr/l9Uwg0z5OSnsOw+l70OU3g1eSfgRt3LXgrzmq + egiuuUVQJDS/ZH5yyxhcHxYhSRLcZKVn4WV26I/ZIDfFz3Oa5ByJik3XnKRhfXDPfmUJ0myjuPP6I37+ + WmI+BY1RDm2o7qgVitikJU6TkivRBq253MvMPf2FkdtezbF1JWiM8S49gS6viSRIlzj55vR52oPwUjsE + MibX+3lGTqzuQ2nnGL59/8F8ChqjHOH8Q2izGxG0LnGBCwwTHXTOdDzGwg44xz+xejeVO5i/vug+rM53 + 8JBSBiY+s7Ow420IPVgPXiM42Bj1hyvZDWgg9lw79laQJhW0Mp8a3W8tbkd8WSfztdkWqHb6xkjAB4aZ + BoSiDu94jliJ3f6n0auHHKgiD0l4RsV+GAMi46YMp8hXT9yFNucWtJkNf1oWXesRsv86Agwxk0Sz/JR9 + 0PMaoyM4rVDSF7Swh8ISHbIQsYXUXAfl9nyJV+q6CPevn2klknhlaGvA2m2zCjHNoxBTPQHmLTO8QmMj + sQQvxQ+O+w0UG9zYwCvIHAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK5SURBVDhPfVJbSFRRFL13xqnMcfTOjHced5xH9lGSUVGQ + kRmFiUqkEFimTRlhiZVC2VhkgWbmA1LzUVIzSg+iHBs1SnEyK1EjP6JA+1A/+kmFPgI/QpjVOediZgxt + WGzO3Wuts8/elwsSCZwguRWbkicVSc4FxT6CLclT5JuH1HbJlOCh4wWpU5VSBPXlLmgr/dDXDkJX/QZC + WS/Cir1QJReCcJ4Trl6WLIVBIcWNh+fdg1T9GtZbb2GtHUD0zX5YKnohlb2E+VoPRJcX6pxGKMTYCaqR + pRzH84KlX8j3wFb/HjYitjUMwd4yCkfrRwZ74zAx88N0qRPGC08RkVUPPtLip1pqkB6+3yWL697B3jQC + BxUHAeUYL3ZAPPcIqxMLQLUcL9h8UkUfa5saMKO/EHdnBKWDU9jQMsy6s9YMQDz7ELoTreA1ko9bEbtn + 9s+ba8j7CYFmOzm7+r5ibv4XAoEAnB2fEF3lZzVTSSd0J+9DFbNzhgvfmx2gYgvpwnK9l+WM9g/48v0n + Ey7C+WQMUvkrxqED1eW2YlVcaoDTJB0N0Gmbr/YQdLP87cf8MjFFzoNRmK90wVxKOCRrnS0I3ZgW4NRb + 02boqkwlXhhdHQRebCvvRvfY9DKDbPcQjMXP2BDpJrRHGrHCFj/HhVjX+eieaVEsfAyxiIBmMqj06hf4 + PD3LDDKb5eHRWtTpNgiHGshP5fCxNeqPVbIO9KTwL0QyrIM3fDDnk3OeG/pTHna7evcZusYD1IBXmdb6 + DeflW3XH7/4X2uwmRGZUkdst/VRLDWgYVsZsnhALPIjKb4c2pxnC4YblyLrNckR6JZTi+nGiEWXpUuhD + 9FafJrWQtOlma6JGtF0tFWfWIWxHLvl5DF7C1cmS4JGo1BjalGvip0JtqQuhtpQFpWP7JB8mukktQaYs + Bsf9BvJ9y/Q7+ip/AAAAAElFTkSuQmCC + + + + + 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 + r8QPjvsNWSfc2bvcdIgAAAAASUVORK5CYII= + + + + 17, 56 + + + 25 + + + + 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 + X9fIWBTqTItGG5/ev8SSXqrGXlKtzX7a7NzUxAagz+iIW92ik90HqwxnFew8knnvD3gsd4GuN0JufZzc + dpbJ8tPmDtOfkAFpP+4jN59f6jObUoP30XVafI0doWfjZCbTlvNpzhJa8XgcATII/Bqp13u9n8bqD2Gw + Afj/AdlDAoEyFHaAAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAA + AAAAAP7+/rT+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb new file mode 100644 index 0000000..7ccf647 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb @@ -0,0 +1,570 @@ +Public Class frmPruefplanDetail + +#Region "Deklarationen" + + Dim m_pruefplanhandler As Integer + Property PruefplanHandler As Integer + Get + Return m_pruefplanhandler + End Get + Set(value As Integer) + m_pruefplanhandler = value + End Set + End Property + + + Dim m_Pruefplannr As Integer + Property Pruefplannr As Integer + Get + Return m_Pruefplannr + End Get + Set(value As Integer) + m_Pruefplannr = value + End Set + End Property + + Dim m_readonly As Boolean + Property IsReadonly As Boolean + Get + Return m_readonly + End Get + Set(value As Boolean) + m_readonly = value + End Set + End Property + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim Pruefplan As New clspruefplan + Dim PruefPlanStruktur As New clsPlanTree + + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + + If Me.FormReadonly = True Then Exit Sub + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + Pruefplan.dispose() + evh.Pruefplandetail_close(Me.PruefplanHandler, Me.Pruefplannr) + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + Save_data() + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function +#End Region + + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + If TypeOf c Is DateTimePicker Then + Dim ctl As DateTimePicker = c + AddHandler ctl.ValueChanged, evh + End If + + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + Private Sub generalhandler() + Me.FormDataChanged = True + End Sub + + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + + +#Region "Formular" + + Sub New() + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.ImageList1 = Globals.GueltigImages + Me.TreeStruktur.ImageList = Globals.GueltigImages + Me.TreeZuordnung.ImageList = Globals.GueltigImages + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + + Private Sub frmPruefplanDetail_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If Me.IsReadonly Then + Me.TSBtnSave.Visible = False + Me.DokumenteAllgemein.Show_Toolbar = False + Me.FormReadonly = True + End If + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 3 + Me.DokumenteAllgemein.ThemaNr = Me.Pruefplannr + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Me.DokumenteAllgemein.Refresh() + + Me.cbboxPrioritaet.DataSource = Pruefplan.Prioritaet + Me.cbboxPrioritaet.DisplayMember = "Bezeichnung" + Me.cbboxPrioritaet.ValueMember = "Prioritaetnr" + + Me.cbboxPeriodizitaet.DataSource = Pruefplan.Periodizitaet + Me.cbboxPeriodizitaet.DisplayMember = "Bezeichnung" + Me.cbboxPeriodizitaet.ValueMember = "PeriodizitaetNr" + + Me.cbboxZeitpunkt.DataSource = Pruefplan.Zeitpunkt + Me.cbboxZeitpunkt.DisplayMember = "Bezeichnung" + Me.cbboxZeitpunkt.ValueMember = "Zeitpunktnr" + + Me.cbboxVerantwortungKontrolle.DataSource = Pruefplan.VerantwortungISI + Me.cbboxVerantwortungKontrolle.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortungKontrolle.ValueMember = "VerantwortungISINr" + + Me.cbboxVerantwortungPlan.DataSource = Pruefplan.VerantwortungPlan + Me.cbboxVerantwortungPlan.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortungPlan.ValueMember = "VerantwortungISINr" + + Me.cbboxVerantwortungDurchführung.DataSource = Pruefplan.Verantwortung + Me.cbboxVerantwortungDurchführung.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortungDurchführung.ValueMember = "Verantwortungnr" + + Me.cbboxTerminierung.DataSource = Pruefplan.Terminierung + Me.cbboxTerminierung.DisplayMember = "Bezeichnung" + Me.cbboxTerminierung.ValueMember = "id" + If Pruefplannr > 0 Then + Pruefplan.Get_Definition_Pruefplan(Me.Pruefplannr, Me.TreeZuordnung) + + get_data() + Else + Pruefplan.Get_Definition_Pruefplan(Me.Pruefplannr, Me.TreeZuordnung) + Me.dtGueltigBis.Value = "31.12.2099" + End If + Me.txtBezeichnung.SelectAll() + Me.txtBezeichnung.Focus() + AddChanges(Me) + sec.Set_Form_Security(Me) + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then + Me.DokumenteAllgemein.Show_Toolbar = False + Me.FormReadonly = True + + End If + + End Sub + + + Private Sub get_data() + Pruefplan.Get_Data(Me.Pruefplannr) + Me.cbboxPeriodizitaet.SelectedValue = Pruefplan.iPeriodizitaetNr.Value + Me.cbboxPrioritaet.SelectedValue = Pruefplan.iPrioritaetNr.Value + Me.cbboxZeitpunkt.SelectedValue = Pruefplan.iZeitpunktNr.Value + Me.dtErstmalsam.Value = Pruefplan.daErstmals_am.Value + Me.cbboxVerantwortungDurchführung.SelectedValue = Pruefplan.iVerantwortlichNr.Value + Me.cbboxVerantwortungKontrolle.SelectedValue = Pruefplan.iVerantwortungISINr.Value + Me.cbboxVerantwortungPlan.SelectedValue = Pruefplan.iverantwortungplannr.value + Me.txtBeschreibung.Text = Pruefplan.sBeschreibung.Value + Me.txtBezeichnung.Text = Pruefplan.sBezeichnung.Value + Me.txtHilfsmittel.Text = Pruefplan.sHilfsmittel.Value + 'Me.txtBezeichnung.Text = Pruefplan.sBezeichnung.Value + 'Me.txtBeschreibung.Text = Pruefplan.sBezeichnung.Value + Me.txtPruefgegenstand.Text = Pruefplan.sPruefgegenstand.Value + Me.txtEreignisse.Text = Pruefplan.sErgebnisse.Value + Me.txtMassnahmen.Text = Pruefplan.sMassnahmen.Value + + Me.txtErstelltam.Text = Pruefplan.daErstellt_am.ToSqlString + Me.txtMutiertam.Text = Pruefplan.daMutiert_am + Me.txtMutierer.Text = Pruefplan.MutiererText + Me.cbAktiv.Checked = Pruefplan.bAktiv.Value + Me.dtGueltigBis.Value = Pruefplan.daGueltig_Bis.Value + Me.cbAktiv.Checked = Pruefplan.bAktiv.Value = True + Me.cbboxTerminierung.SelectedValue = Pruefplan.iTerminierungID.Value + + Me.cbSelbstkontrolle.Checked = Pruefplan.bSelbstkontrolle.Value = True + Me.cbKeinEMail.Checked = Pruefplan.bKein_Mailversand.Value = True + + Me.rbAssessmentTyp_Anzahl.Checked = False + Me.rbAssessmentTyp_Massen.Checked = False + Me.rbAssessmenttyp_Normal.Checked = False + Select Case Pruefplan.iAssessmentType.Value + Case 1 + Me.rbAssessmenttyp_Normal.Checked = True + Case 2 + Me.rbAssessmentTyp_Anzahl.Checked = True + Case 3 + Me.rbAssessmentTyp_Massen.Checked = True + End Select + Me.cbDurchfuerhung_ISI.Checked = Pruefplan.bDurchfuehrung_ISI.Value = True + + + End Sub + Private Sub Update_Data() + Pruefplan.iPeriodizitaetNr = New SqlTypes.SqlInt32(CType(Me.cbboxPeriodizitaet.SelectedValue, Int32)) + Pruefplan.iPrioritaetNr = New SqlTypes.SqlInt32(CType(Me.cbboxPrioritaet.SelectedValue, Int32)) + Pruefplan.iZeitpunktNr = New SqlTypes.SqlInt32(CType(Me.cbboxZeitpunkt.SelectedValue, Int32)) + Pruefplan.iVerantwortlichNr = New SqlTypes.SqlInt32(CType(Me.cbboxVerantwortungDurchführung.SelectedValue, Int32)) + Pruefplan.iVerantwortungISINr = New SqlTypes.SqlInt32(CType(Me.cbboxVerantwortungKontrolle.SelectedValue, Int32)) + Pruefplan.iverantwortungplannr = New SqlTypes.SqlInt64(CType(Me.cbboxVerantwortungPlan.SelectedValue, Int32)) + Pruefplan.daErstmals_am = New SqlTypes.SqlDateTime(CType(Me.dtErstmalsam.Value, DateTime)) + + Pruefplan.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + Pruefplan.sPruefgegenstand = New SqlTypes.SqlString(CType(Me.txtPruefgegenstand.Text, String)) + Pruefplan.sMassnahmen = New SqlTypes.SqlString(CType(Me.txtMassnahmen.Text, String)) + Pruefplan.sErgebnisse = New SqlTypes.SqlString(CType(Me.txtEreignisse.Text, String)) + Pruefplan.sHilfsmittel = New SqlTypes.SqlString(CType(Me.txtHilfsmittel.Text, String)) + Pruefplan.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbAktiv.Checked = True, Boolean)) + Pruefplan.sBezeichnung = New SqlTypes.SqlString(CType(Me.txtBezeichnung.Text, String)) + Pruefplan.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbAktiv.Checked = True, Boolean)) + Pruefplan.daGueltig_Bis = New SqlTypes.SqlDateTime(CType(Me.dtGueltigBis.Value, DateTime)) + Pruefplan.iTerminierungID = New SqlTypes.SqlInt32(CType(Me.cbboxTerminierung.SelectedValue, Int32)) + Pruefplan.bSelbstkontrolle = New SqlTypes.SqlBoolean(CType(Me.cbSelbstkontrolle.Checked, Boolean)) + Pruefplan.bKein_Mailversand = New SqlTypes.SqlBoolean(CType(Me.cbKeinEMail.Checked, Boolean)) + If rbAssessmenttyp_Normal.Checked Then Pruefplan.iAssessmentType = New SqlTypes.SqlInt32(CType(1, Int32)) + If rbAssessmentTyp_Anzahl.Checked Then Pruefplan.iAssessmentType = New SqlTypes.SqlInt32(CType(2, Int32)) + If rbAssessmentTyp_Massen.Checked Then Pruefplan.iAssessmentType = New SqlTypes.SqlInt32(CType(3, Int32)) + Pruefplan.bDurchfuehrung_ISI = New SqlTypes.SqlBoolean(CType(Me.cbDurchfuerhung_ISI.Checked, Boolean)) + + Pruefplan.Save_Data() + + Pruefplan.Save_Definition_Pruefplan(Me.TreeZuordnung) + Pruefplan.Get_Definition_Pruefplan(Me.Pruefplannr, Me.TreeZuordnung) + End Sub + +#End Region + +#Region "Toolbar" + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles TSBtnSave.Click + Save_data() + End Sub + + Sub Save_data() + DialogResult = Windows.Forms.DialogResult.OK + If Me.Pruefplannr = 0 Then + Dim newkey As Integer = Pruefplan.Add_New() + Me.Pruefplannr = newkey + Pruefplan.Get_Data(newkey) + Me.cbAktiv.Checked = True + Else + Pruefplan.Get_Data(Me.Pruefplannr) + End If + Update_Data() + evh.Pruefplandetails_save(Me.PruefplanHandler, Me.Pruefplannr) + FormDataChanged = False + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub tsCbxFilter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tsCbxFilter.SelectedIndexChanged + PruefPlanStruktur.Load_Treeview(Me.TreeStruktur) + If tsCbxFilter.Text = "-- Alle --" Then Exit Sub + Try + For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.Nodes + If Trim(n.Text) <> Trim(tsCbxFilter.Text) Then + n.Remove() + End If + Next + Catch + End Try + + End Sub + + + + +#End Region + +#Region "Zuordnung" + + Private Sub btnNeueZuordnung_Click(sender As Object, e As EventArgs) Handles btnNeueZuordnung.Click + If Me.FormDataChanged = True And Me.TSBtnSave.Visible = True And Me.TSBtnSave.Enabled = True Then Me.Save_data() + If Me.Pruefplannr = 0 Then Me.Save_data() + + If Me.GrpStruktur.Visible = False Then + Me.GrpStruktur.Visible = True + Me.GrpStruktur.Dock = DockStyle.Fill + PruefPlanStruktur.Load_Treeview(TreeStruktur) + PruefPlanStruktur.Refresh_Filter(Me.tsCbxFilter) + Me.btnNeueZuordnung.Text = "Struktur verbergen" + Else + Me.GrpStruktur.Visible = False + End If + + End Sub +#End Region + +#Region "Tree" + + Private Sub TreeStruktur_DoubleClick(sender As Object, e As EventArgs) Handles TreeStruktur.DoubleClick + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then Exit Sub + Try + If TreeStruktur.SelectedNode.Nodes.Count > 0 Then + MsgBox("Für die Zuordnung können nur Elemente der untersten Stufe (Definitionen) verwendet werden.", vbExclamation) + Exit Sub + End If + + Dim key As Integer = Me.TreeStruktur.SelectedNode.Tag / 1000000 + + ' Pruefplan.Add_new_Zuordnung(Me.Pruefplannr, key, Me.TreeStruktur.SelectedNode.Text, Me.chklbDefinitionZuordnung) + Pruefplan.Add_new_Zuordnung(Me.Pruefplannr, key, Me.TreeStruktur.SelectedNode.Text, Me.TreeZuordnung) + Me.FormDataChanged = True + Catch + End Try + + End Sub + + + Private Sub TreeZuordnung_DoubleClick(sender As Object, e As EventArgs) Handles TreeZuordnung.DoubleClick + If Me.TSBtnSave.Enabled = False Or Me.TSBtnSave.Visible = False Then Exit Sub + If IsDate(Me.TreeZuordnung.SelectedNode.Text) Then + TreeZuordnung.SelectedNode = Me.TreeZuordnung.SelectedNode.Parent + End If + Dim f As New FrmDefinition_Pruefplan + f.Aktiv = TreeZuordnung.SelectedNode.Nodes(0).Tag + f.Gueltig_Bis = TreeZuordnung.SelectedNode.Nodes(0).Text + f.ShowDialog() + Dim save_date As String = TreeZuordnung.SelectedNode.Nodes(0).Text + Dim save_aktiv As String = TreeZuordnung.SelectedNode.Nodes(0).Tag + Dim TN As New DevComponents.AdvTree.Node + Dim DoSave As Boolean = True + TN = Me.TreeZuordnung.SelectedNode + + TreeZuordnung.SelectedNode.Nodes(0).Tag = f.Aktiv + TreeZuordnung.SelectedNode.Nodes(0).Text = f.Gueltig_Bis + TreeZuordnung.SelectedNode.ImageIndex = 0 + + + For Each n As DevComponents.AdvTree.Node In Me.TreeZuordnung.Nodes + If n.Tag <> Me.TreeZuordnung.SelectedNode.Tag Then + If n.Text = Me.TreeZuordnung.SelectedNode.Text Then + If (TreeZuordnung.SelectedNode.ImageIndex = 0 Or TreeZuordnung.SelectedNode.ImageIndex = 3) And n.ImageIndex <> 2 And n.ImageIndex <> 1 Then + MsgBox("Es können nicht 2 aktive Verbindungen hergestellt werden") + TreeZuordnung.SelectedNode.Nodes(0).Text = save_date + TreeZuordnung.SelectedNode.Nodes(0).Tag = save_aktiv + DoSave = False + Exit For + End If + End If + End If + Next + If TreeZuordnung.SelectedNode.Nodes(0).Text < "31.12.2099" And TreeZuordnung.SelectedNode.Text > Now.ToString Then TreeZuordnung.SelectedNode.ImageIndex = 3 + If TreeZuordnung.SelectedNode.Nodes(0).Text < Now Then TreeZuordnung.SelectedNode.ImageIndex = 2 + If TreeZuordnung.SelectedNode.Nodes(0).Tag = False Then TreeZuordnung.SelectedNode.ImageIndex = 1 + If DoSave Then + Pruefplan.Update_Zuordnung(Me.TreeZuordnung.SelectedNode.Tag, f.Aktiv, f.Gueltig_Bis) + Me.FormDataChanged = True + End If + End Sub + + Private Sub TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click + Me.PruefPlanStruktur.Init_Search() + Me.TreeStruktur.SelectedNode = PruefPlanStruktur.SearchNode(Me.TreeStruktur, Trim(Me.tstxtSuche.Text)) + Me.TreeStruktur.SelectedNode.EnsureVisible() + End Sub + + Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click + Me.tstxtSuche.Text = "" + Me.PruefPlanStruktur.Init_Search() + End Sub + + Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click + Me.TreeStruktur.SelectedNode = PruefPlanStruktur.FindFirst(Me.TreeStruktur) + End Sub + + Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click + Me.TreeStruktur.SelectedNode = PruefPlanStruktur.FindPrevNode(Me.TreeStruktur) + End Sub + + Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click + Me.TreeStruktur.SelectedNode = PruefPlanStruktur.FindNextNode(Me.TreeStruktur) + End Sub + + Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click + Me.TreeStruktur.SelectedNode = PruefPlanStruktur.FindLastNode(Me.TreeStruktur) + End Sub + + Private Sub EintragBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem.Click + Try + Me.TreeZuordnung_DoubleClick(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub NeuerEintragHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuerEintragHinzufügenToolStripMenuItem.Click + If btnNeueZuordnung.Text <> "Struktur verbergen" Then Me.btnNeueZuordnung_Click(sender, e) + End Sub + + Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked + + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub cbSelbstkontrolle_CheckedChanged(sender As Object, e As EventArgs) Handles cbSelbstkontrolle.CheckedChanged + Dim SaveKontrolle As Integer + If Me.cbSelbstkontrolle.Checked Then + SaveKontrolle = Me.cbboxVerantwortungKontrolle.SelectedValue + End If + Select Case Me.cbSelbstkontrolle.CheckState + Case CheckState.Checked + Me.cbboxVerantwortungKontrolle.SelectedValue = Me.cbboxVerantwortungDurchführung.SelectedValue + Me.cbboxVerantwortungKontrolle.Enabled = False + Try + If Me.cbboxVerantwortungKontrolle.SelectedValue Is Nothing Then + MsgBox("Selbstkontrolle kann nur gewählt werden, sofern Verantworung-Durchführung ein ISI-Mitarbeiter ist.", vbExclamation) + Me.cbboxVerantwortungKontrolle.SelectedValue = SaveKontrolle + Me.cbSelbstkontrolle.Checked = False + End If + Catch ex As Exception + End Try + Case CheckState.Unchecked + Me.cbboxVerantwortungKontrolle.Enabled = True + End Select + + End Sub + + +#End Region + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.Designer.vb new file mode 100644 index 0000000..a404935 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.Designer.vb @@ -0,0 +1,267 @@ + +Partial Class FrmFinding + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmFinding)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.txtBezeichnung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.cbaktiv = New System.Windows.Forms.CheckBox() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.btnSave = New System.Windows.Forms.Button() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblkritikalitaet = New System.Windows.Forms.Label() + Me.lblAuswirkung = New System.Windows.Forms.Label() + Me.lblWichtigkeit = New System.Windows.Forms.Label() + Me.cbboxauswirkung = New System.Windows.Forms.ComboBox() + Me.cbboxkritikalitaet = New System.Windows.Forms.ComboBox() + Me.cbboxWichtigkeit = New System.Windows.Forms.ComboBox() + Me.Button1 = New System.Windows.Forms.Button() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(701, 25) + Me.ToolStrip1.TabIndex = 8 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neue Feststellung erfassen" + Me.ToolStripButton1.Visible = False + ' + 'txtBezeichnung + ' + ' + ' + ' + Me.txtBezeichnung.Border.Class = "TextBoxBorder" + Me.txtBezeichnung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtBezeichnung.Location = New System.Drawing.Point(89, 43) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.PreventEnterBeep = True + Me.txtBezeichnung.Size = New System.Drawing.Size(599, 20) + Me.txtBezeichnung.TabIndex = 0 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(13, 43) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 36 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(603, 208) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 35 + Me.lblAktiv.Text = "Aktiv" + ' + 'cbaktiv + ' + Me.cbaktiv.AutoSize = True + Me.cbaktiv.Location = New System.Drawing.Point(673, 207) + Me.cbaktiv.Name = "cbaktiv" + Me.cbaktiv.Size = New System.Drawing.Size(15, 14) + Me.cbaktiv.TabIndex = 5 + Me.cbaktiv.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(613, 304) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 7 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(13, 304) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 6 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(89, 69) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(599, 123) + Me.txtBeschreibung.TabIndex = 1 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(13, 72) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 34 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblkritikalitaet + ' + Me.lblkritikalitaet.AutoSize = True + Me.lblkritikalitaet.Location = New System.Drawing.Point(14, 207) + Me.lblkritikalitaet.Name = "lblkritikalitaet" + Me.lblkritikalitaet.Size = New System.Drawing.Size(52, 13) + Me.lblkritikalitaet.TabIndex = 37 + Me.lblkritikalitaet.Text = "Kritikalität" + ' + 'lblAuswirkung + ' + Me.lblAuswirkung.AutoSize = True + Me.lblAuswirkung.Location = New System.Drawing.Point(14, 264) + Me.lblAuswirkung.Name = "lblAuswirkung" + Me.lblAuswirkung.Size = New System.Drawing.Size(62, 13) + Me.lblAuswirkung.TabIndex = 38 + Me.lblAuswirkung.Text = "Auswirkung" + ' + 'lblWichtigkeit + ' + Me.lblWichtigkeit.AutoSize = True + Me.lblWichtigkeit.Location = New System.Drawing.Point(14, 237) + Me.lblWichtigkeit.Name = "lblWichtigkeit" + Me.lblWichtigkeit.Size = New System.Drawing.Size(60, 13) + Me.lblWichtigkeit.TabIndex = 39 + Me.lblWichtigkeit.Text = "Wichtigkeit" + ' + 'cbboxauswirkung + ' + Me.cbboxauswirkung.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxauswirkung.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxauswirkung.FormattingEnabled = True + Me.cbboxauswirkung.Location = New System.Drawing.Point(89, 261) + Me.cbboxauswirkung.Name = "cbboxauswirkung" + Me.cbboxauswirkung.Size = New System.Drawing.Size(121, 21) + Me.cbboxauswirkung.TabIndex = 4 + ' + 'cbboxkritikalitaet + ' + Me.cbboxkritikalitaet.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxkritikalitaet.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxkritikalitaet.FormattingEnabled = True + Me.cbboxkritikalitaet.Location = New System.Drawing.Point(89, 207) + Me.cbboxkritikalitaet.Name = "cbboxkritikalitaet" + Me.cbboxkritikalitaet.Size = New System.Drawing.Size(121, 21) + Me.cbboxkritikalitaet.TabIndex = 2 + ' + 'cbboxWichtigkeit + ' + Me.cbboxWichtigkeit.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxWichtigkeit.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxWichtigkeit.FormattingEnabled = True + Me.cbboxWichtigkeit.Location = New System.Drawing.Point(89, 234) + Me.cbboxWichtigkeit.Name = "cbboxWichtigkeit" + Me.cbboxWichtigkeit.Size = New System.Drawing.Size(121, 21) + Me.cbboxWichtigkeit.TabIndex = 3 + ' + 'Button1 + ' + Me.Button1.Image = CType(resources.GetObject("Button1.Image"), System.Drawing.Image) + Me.Button1.Location = New System.Drawing.Point(216, 202) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(47, 48) + Me.Button1.TabIndex = 40 + Me.Button1.UseVisualStyleBackColor = True + ' + 'FrmFinding + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(701, 338) + Me.Controls.Add(Me.Button1) + Me.Controls.Add(Me.cbboxWichtigkeit) + Me.Controls.Add(Me.cbboxauswirkung) + Me.Controls.Add(Me.cbboxkritikalitaet) + Me.Controls.Add(Me.lblWichtigkeit) + Me.Controls.Add(Me.lblAuswirkung) + Me.Controls.Add(Me.lblkritikalitaet) + Me.Controls.Add(Me.txtBezeichnung) + Me.Controls.Add(Me.lblBezeichnung) + Me.Controls.Add(Me.lblAktiv) + Me.Controls.Add(Me.cbaktiv) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.txtBeschreibung) + Me.Controls.Add(Me.lblBeschreibung) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "FrmFinding" + Me.Text = "Feststellung" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents txtBezeichnung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblAktiv As Label + Friend WithEvents cbaktiv As CheckBox + Friend WithEvents btnAbbruch As Button + Friend WithEvents btnSave As Button + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblkritikalitaet As Label + Friend WithEvents lblAuswirkung As Label + Friend WithEvents lblWichtigkeit As Label + Friend WithEvents cbboxauswirkung As ComboBox + Friend WithEvents cbboxkritikalitaet As ComboBox + Friend WithEvents cbboxWichtigkeit As ComboBox + Friend WithEvents Button1 As Button +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.resx new file mode 100644 index 0000000..c1a0354 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.resx @@ -0,0 +1,3527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + + /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg + JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAkACQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m6uorO3aaZsIOOBkk9gB3J9K47WvGbWRw0y23cRRqJJSPcn5 + V/I/WmeN9dNi74IzCAkQPeRhkn8FKj/gRrznRNX0611pr3W4GvIgjN5ZXdvk7Zzx69a9DCYNVYOrPZdF + uznrVuVqK3Ori+JLLL81zehc9ZUhkA/BVQ/rXb6H4nttXjj+eMl+EkjJKOf7vPKt/sn8M1zOmXHhnx5p + F7H/AGRFYyQnaHCqGXIyGDL6dxXlfhrXv7L1qIG4Itp2EcxHQDPDj3U4YfTHernhadSMvZpxlHo9SVVl + Frmd0z6Yoqppd017psE8gAkZcSAdnBw36g0V5h1HlnxTSSF5Zv4FuQ7H0DxIq/rE1eSSXj3EoQMUQnBx + 2HrX0x4s8PRa7p0kbRGTdGY5EBwzLnPy/wC0DyPxHevBLjwjqOgan57W/wBss4ZA3mqpK4BztcdUPsf1 + r2cvxUY0/ZvfocWIpNy5kbmr6ta2GnR6T4bnUW0kRE8yAhjngjnue5rlrfS2uLmG3hXMsrrGg9STgV0m + taofEU1tFp+mSiSMEbUHmOxOOOB0GP1rpfBXgu5e6F1dgCQAj5TkQg8HJHBfHAA+7nJ5wK2UoYehzS+J + 9L3bYcrnOy2PTdA50hJB92aWWZf915GYfoRRWjGixRrGihUUBVA7AUV4B2jqqXWl2V64knt1aQDAkGVc + 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 + mcG3QPznCM+bABDoiL8Q918cMCUCfZv5fQHPAeYB2cw5zMOcFvDkwETyBdLPEcwbss3bfBbw+LBA+AUs + YAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCAZwD/PyiHNsJETgDeAAAAAElF + TkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAERERAREREQETExMBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBExMTARISEgEQEBABDg4OAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBOzs7AxsbGwYdHR0HHh4eCSEhIQkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkjIyMJIyMjCSMjIwkjIyMJIyMjCSMj + IwkjIyMJIiIiCSIiIgkiIiIJISEhCR4eHggaGhoHKCgoBTIyMgMrKysBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdH + RwQSEhINAAAAGAAAACAAAAAjAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAjAAAAIQAA + AB0AAAAWAAAADyEhIQg/Pz8ENTU1AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4CExMTCgAAACIAAABAAAAAVgAAAFwAAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF0AAABaAAAAUgAAAEQAAAAwAAAAHQAAAA81NTUGPj4+AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERE + RAMAAAARAAAAOf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+ + /v/+/v7//f39//z8/P/8/Pz/+/v7//v7+//6+vr/+Pj4//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs + 7P3f39/1t7e31l9fX5oAAABLAAAALAAAABUSEhIJQ0NDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIBQAAABUAAABH//////r6+//29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//X19v/19fb/9fX2//X19v/09PX/9PT1//Pz9P/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//t7e7/6+vs/+rq6//o6On/5+fn/+Xl5v/j4+P/4ODh/8bGx+U2Njd7AAAANwAA + ABoTExMKRUVFBDc3NwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABOTk4FAAAAGAAAAEv/////9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X1 + 9v/19fb/9fX2//T09f/09PX/8/P0//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+zs7f/r6+z/6urr/+jo + 6f/n5+f/5OTl/+Hh4v/d3d7/19fY/9XV1fxxcXGgAAAAPwAAAB4TExMMR0dHBDg4OQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXVwUAAAAYAAAATP/////19fb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X19v/19fb/9PT1//T09f/z8/T/8/P0//Ly + 8//x8fL/8PDx/+/v8P/u7u//7e3u/+zs7f/q6uv/6Ojp/+jo6P/l5eb/4uLj/9/f4P/Z2dr/0tLT/9XV + 1f6RkZG8AAAARAAAACETExMMR0dIBDk5OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9fX2//X19v/09PX/9PT1//T09f/z8/T/8vLz//Hx8v/w8PH/7+/w/+7u7//t7e7/7Ozt/+rq + 6//p6er/6Ojo/+fn6P/k5OX/4ODh/9zc3f/W1tf/zc3O/9jY2f+fn6DJAAAARwAAACITExMNSUlJBDo6 + OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9fX2//X1 + 9v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//X19v/09PX/9PT1//Pz + 9P/y8vP/8vLz//Hx8v/w8PH/7+/w/+3t7v/s7O3/6+vs/+np6v/o6On/5+fo/+Xl5v/i4uP/39/g/9ra + 2//T09T/ycnK/9/f4P+hoaLOAwMDSQAAACMUFBQNSkpLBDs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//X19v/19fb/9fX2//X19f/09PX/8/P0//Pz9P/y8vP/8fHy//Hx8f/v7/D/7u7v/+3t + 7v/r6+z/6urr/+jo6f/n5+j/5ubn/+Pj5P/g4OH/3Nzd/9bW1//Ozs//ycnJ/+rq6v+oqKnTBwcITQAA + ACUAAAAONzc3BDs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////X1 + 9v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//X1 + 9f/09PT/9PT0//Pz8//y8vL/8fHx//Dw8P/v7+//7u7u/+3t7f/r6+v/6enp/+jo6P/n5+f/5OTl/+Li + 4//e3t//2trb/9PT1P/Jycr/3t7f/97e4P+wsLLYDQ0NUQAAACYAAAAPNzc3BTw8PAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/29vf/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Ly8//y8vL/8fHx/+/v + 8P/u7u//7e3u/+vr6//q6ur/6Ojo/+jo6P/m5ub/5OTk/+Hh4f/c3N3/1tbX/83Nzv/Ozs//6urr/9zc + 3v+5ubrcExMTVgAAACgAAAAQNzc4BTw8PQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//b2 + 9//19fb/9fX2//T09f/z8/T/8/P0//Ly8//x8fL/8PDx/+/v8P/t7e7/7Ozt/+rq6//p6er/6Ojo/+bm + 5v/k5OX/4uLi/97e3v/a2tr/0tLS/8fHx//w8PD/39/h/93d3//CwsPgGhoaWwAAACkAAAAQODg4BT4+ + PgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b29//19fb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//X19v/19fb/9PT1//T09f/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//s7O3/6+vs/+np6v/o6On/5+fn/+Xl5v/j4+T/39/g/9vb2//U1NX/ysrK/+jo + 6P/m5uf/39/h/93d3//KysvkICAgYQAAACsAAAAROTk5BT8/QAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9vb3//b29//29vf/9vb3//X19v/19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/19fb/9PT1//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+3t7v/r6+z/6urr/+jo + 6f/n5+f/5ubm/+Tk5f/h4eL/3d3e/9bW1//Nzc7/4ODg/+7u7//l5ef/39/h/93d3//Q0NHpJSUlZgAA + ACwAAAATOTk6BkBAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Pz + 9P/y8vP/8fHy//Dw8f/v7/D/7e3u/+zs7f/q6uv/6enq/+jo6P/m5ub/5OTl/+Hh4v/d3d7/2NjZ/8/P + 0P/W1tf/9PT0/+rq6//l5ef/39/h/9zc3v/U1NbtKSkpbAAAAC4AAAATOjo7B0FBQgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////b29//29vf/9vb3//b29//09PT/8/P0//Pz9P/09PX/9fX2//X19v/29vf/9vb3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/09PX/9PT1//T09f/z8/T/8/P0//Ly8//y8vP/8fHy//Dw8f/w8PH/7+/w/+3t7v/s7O3/6+vs/+np + 6v/o6On/5ubn/+Xl5f/k5OT/4eHi/93d3v/Y2Nn/z8/Q/8/P0P/4+Pj/7u7v/+rq6//l5ef/39/h/9vb + 3f/X19nwLS0tcAAAADAAAAAUOzs7B0JCQwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Ly + 8//x8fL/8fHy//T09f/19fX/9PT1//X19v/29vf/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/T09T/y8vL/8vLy//Ly8v/ysrK/8jI + yP/Gxsb/xcXG/8XFxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8XFxv/FxcX/xcXF/8TExf/ExMX/xMTE/8PD + xP/CwsP/wsLC/8HBwv/AwMH/v7/A/76+v/+9vb3/vLy8/7u7u/+6urr/uLi4/7a2t/+0tLX/sbGy/62t + rf+mpqf/p6eo//r6+//x8fL/7u7v/+rq6//l5ef/39/h/9ra3P/Z2dvzMDAwdQAAADEAAAAVOjo7B0FB + QgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBg + YAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9PT1//Hx8v/19fb/9vb3//b29v/29vb/9vb2//f3 + 9//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4/9bW1v/Q0NH/4eHi/+Dg4f/d3d7/1tbX/9DQ0f/Q0NH/0NDR/9DQ0f/Q0NH/0NDR/9DQ + 0f/Q0NH/0NDR/8/P0P/Pz9D/z8/Q/87Oz//Ozs//zc3O/83Nzv/Nzc3/zc3N/8zMzf/Ly8z/ysrL/8nJ + yv/Hx8j/xsbG/8XFxf/Dw8P/wMDB/76+vv+8vL3/uLi5/7Gxsv+pqar/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/39/h/9ra3P/a2tz2Nzc3ewAAADQAAAAWOjo6B0BAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/29vc/8fHyP/h4eL/4ODh/9zc + 3f/T09P/zMzN/8/P0P/R0dL/0tLS/9LS0v/S0tL/0tLS/9LS0//S0tP/0dHS/9HR0v/R0dL/0NDR/9DQ + 0P/Pz8//z8/P/87Oz//Ozs//zs7O/83Nzf/Ly8z/ysrL/8nJyv/Hx8n/xsbH/8XFxv/Dw8T/wMDB/76+ + vv+6urv/s7O0/6mpqv/19fX/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9nZ2//b29z4Pj4+gAAA + ADUAAAAXOTk6CD8/QAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Hx8f/v7/D/7Ozt/+/v7//x8fL/7+/w//Hx + 8v/z8/T/9PT1//T09f/19fb/9vb2//b29//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/Z2dr/ysrK/+Hh4f/h4eH/3d3e/9TU1P/Pz9D/1NTV/9jY2f/Z2dr/2dna/9nZ + 2v/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9jY2f/X19j/19fY/9bW1//W1tf/1dXW/9XV1v/U1NX/09PU/9LS + 0//R0dH/0NDQ/87Ozv/Nzc3/zMzN/8vLzP/Jycr/xcXG/8HBwv+6urv/sLCx//T09P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/39/h/9jY2//a2tv5QEBBgwAAADcAAAAXERERCT4+PwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b2 + 9//29vf/8PDx/+rq6//u7u//8/P0//Ly8//w8PH/7+/w//Hx8v/y8vL/9PT1//X19v/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4/9jY2P/f3+D/zMzN/+Hh + 4v/e3t//1tbX/9HR0v/U1NX/2dna/9vb3P/b29z/29vc/9vb3P/b29z/29vc/9vb3P/a2tv/2trb/9ra + 2//Z2dr/2dna/9jY2f/Y2Nn/19fY/9fX2P/W1tf/1dXW/9TU1f/T09T/0tLT/9DQ0f/Pz9D/zs7O/8zM + zP/Jycr/w8PF/729vv+0tLT/8/Pz//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9jY + 2v/X19r5Q0NDhgAAADgAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9/f3//f39//19fb/8/P0//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/+Pj4//j4+P/4+Pj/19fX/+Li4//Ly8v/4eHi/9/f4P/Z2dn/1NTU/9TU1f/Z2dn/3Nzd/93d + 3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Y2Nn/2NjZ/9jY + 2P/X19f/1dXW/9TU1f/T09T/0dHS/9DQ0f/Pz9D/zc3O/8rKy//Gxsb/vr6//7W1tf/z8/P/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9fX2f/W1tj6RUVGhwAAADkAAAAYERERCT09 + PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//f3 + 9//39/f/9/f3//b29//v7/D/9fX2//Ly8v/09PX/9PT1//X19v/09PT/9fX2//T09f/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/X19f/4uLj/8/P + z//d3d3/4ODg/9vb3P/X19j/1dXW/9fX2P/b29z/3d3e/93d3v/d3d7/3d3e/93d3v/d3d7/3Nzd/9zc + 3f/c3N3/29vc/9vb3P/a2tv/2trb/9nZ2v/Z2dr/2dnZ/9jY2P/X19f/1dXW/9TU1P/S0tP/0dHR/9DQ + 0f/Ozs//y8vM/8fHyP/AwMH/t7e3//T09P/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9bW2f/V1df6R0dIiQAAADoAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/8/Pz/+zs7P/n5+f/7+/v/+3t + 7f/v7+//7+/v//Dw8P/u7u7/8PDw//Ly8v/y8vL/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//f3 + 9//4+Pj/+Pj4//j4+P/4+Pj/+Pj4/9fX1//j4+P/4+Pj/8zMzP/g4OD/3Nzc/9nZ2f/W1tb/1tbW/9vb + 2//d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ + 2f/Z2dn/2NjY/9fX1//W1tb/1dXV/9PT0//S0tL/0dHR/8/Pz//Nzc3/yMjI/8HBwf+4uLj/9PT0//r6 + +v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/T09X6SUlJiwAA + ADkAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f3 + 9//39/f/9/f3//f39//y8vL/6Ojo//Hx8f/w8PD/9PT0//T09P/x8fH/8vLy//T09P/09PT/8fHx//Ly + 8v/19fX/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//b29v/4+Pj/+Pj4//j4+P/4+Pj/19fX/+Pj + 4//j4+P/y8vL/+Dg4P/d3d3/3d3d/9nZ2f/W1tb/2dnZ/93d3f/e3t7/3t7e/97e3v/e3t7/3t7e/93d + 3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9PT + 0//R0dH/0NDQ/87Ozv/Kysr/xMTE/7q6uv/19fX/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/S0tT7S0tMiwAAADgAAAAXNzc4Bz09PQIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/W1tb/5OTk/+Tk5P/W1tb/1tbW/97e3v/f39//3Nzc/9fX + 1//Y2Nj/3Nzc/93d3f/e3t7/3t7e/97e3v/e3t7/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/29vb/9vb + 2//a2tr/2tra/9ra2v/Z2dn/2NjY/9fX1//W1tb/1NTU/9PT0//R0dH/z8/P/8zMzP/Gxsb/vb29//b2 + 9v/7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV + 1//Pz9H6QEBBhQAAADYAAAAXNjY3Bzw8PQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///39/f/9/f3//f39//39/f/9PT0/+rq6v/v7+//7Ozs//Dw8P/v7+//8vLy//Dw8P/x8fH/8fHx//Pz + 8//09PT/9fX1//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//f39//39/f/9/f3/9bW + 1v/k5OT/5OTk/+Li4v/Jycn/3t7e/+Hh4f/f39//2dnZ/9fX1//b29v/3t7e/9/f3//f39//39/f/9/f + 3//e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ2f/Z2dn/2NjY/9bW + 1v/V1dX/1NTU/9LS0v/Q0ND/zs7O/8nJyf/AwMD/9/f3//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV1//Ly874NTU1fgAAADQAAAAWNjY3Bzs7 + PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f39//39/f/9/f3//f39//y8vL/6Ojo/+fn + 5//o6Oj/6urq/+3t7f/o6Oj/6+vr/+vr6//r6+v/7e3t/+/v7//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/9/f3//T09P/29vb/9fX1//X19f/29vb/1dXV/+Tk5P/k5OT/4+Pj/8vLy//f39//4uLi/+Li + 4v/c3Nz/19fX/9ra2v/d3d3/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/93d + 3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/19fX/9bW1v/V1dX/1NTU/9LS0v/Pz8//zMzM/8bG + xv/5+fn//Pz8//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9XV1//Hx8r1LCwsdwAAADEAAAAUNTU2Bjs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9/f3//f39//39/f/9/f3//Pz8//o6Oj/8fHx//b29v/29vb/9vb2//b29v/29vb/+Pj4//f3 + 9//x8fH/8vLy//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//X19f/29vb/9fX1//f3 + 9//X19f/4+Pj/+Tk5P/j4+P/2dnZ/9DQ0P/i4uL/4+Pj/97e3v/Y2Nj/2NjY/9zc3P/e3t7/39/f/9/f + 3//f39//3t7e/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9bW1v/V1dX/09PT/9HR0f/Ozs7/ysrK//b29v/4+Pj/9vb2//Pz8//x8fH/7+/v/+3t + 7f/q6ur/4+Pj/+bm5v/m5ub/7e3t//b29v/19fX/8vLz/+zs7f/l5ef/3t7g/9TU1v/CwsXyJiYmbwAA + AC8AAAASNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/7+/v/9zc3P/l5eX/5eXl/+Pj4//g4OD/ysrK/+Li + 4v/k5OT/4eHh/9vb2//Y2Nj/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f + 3//e3t7/3d3d/93d3f/c3Nz/29vb/9vb2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9DQ + 0P/Nzc3/ysrK/8bGxv/BwcH/vb29/7q6uv+3t7f/tbW1/7Ozs/+cnJz/q6ur/6urq/+vr6//rq6u/6Gh + of/CwsL/z8/P/9bW1v/l5eX/5+fo/9bW2P+9vcDuISEiaQAAACwAAAARNTU1BTs7OwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////f39//39/f/9/f3//f39//w8PD/6Ojo/+fn5//n5+f/6urq/+vr6//u7u7/6+vr/+zs + 7P/t7e3/8PDw//j4+P/19fX/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9PT0//Pz8//z8/P/9PT0//Pz + 8//k5OT/4eHh/+Li4v/k5OT/4+Pj/+Dg4P/MzMz/4eHh/+Xl5f/j4+P/3d3d/9jY2P/a2tr/3t7e/+Dg + 4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb + 2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9HR0f/Ozs7/y8vL/8nJyf/Gxsb/xMTE/8LC + wv+/v7//s7Oz/66urv+1tbX/ubm5/7y8vP+7u7v/q6ur/8HBwf/AwMD/v7+//7y8vP+9vb3/1tbW/+Pj + 5f+8vL7qHh4eYgAAACkAAAAPNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//Ly + 8v/k5OT/5+fn/+bm5v/r6+v/7e3t/+bm5v/p6en/6urq/+jo6P/z8/P/8fHx//T09P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/w8PD/8/Pz//Hx8f/09PT/8vLy/+Dg4P/j4+P/4eHh/+Xl5f/i4uL/39/f/97e + 3v/Pz8//5eXl/+Xl5f/g4OD/2dnZ/9nZ2f/d3d3/4ODg/+Hh4f/h4eH/4eHh/+Dg4P/g4OD/39/f/9/f + 3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/29vb/9nZ2f/Z2dn/19fX/9bW + 1v/V1dX/09PT/9LS0v/Q0ND/zs7O/8zMzP/Ly8v/ycnJ/8jIyP+wsLD/vr6+/729vf/Dw8P/xsbG/8XF + xf+4uLj/xcXF/83Nzf/Nzc3/ysrK/8XFxf/AwMD/vb29/9vb2//ExMXnGxscXQAAACYAAAAOSkpKBDs7 + OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9vb2/+fn5//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4/+/v7//w8PD/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//b29v/19fX/9vb2//f3 + 9//5+fn/4+Pj/+Tk5P/k5OT/5ubm/+Xl5f/h4eH/4eHh/9DQ0P/m5ub/5ubm/+Pj4//c3Nz/2NjY/9zc + 3P/f39//4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/d3d3/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9LS0v/R0dH/0NDQ/8/P + z//Ozs7/zMzM/7W1tf/Dw8P/xsbG/8vLy//MzMz/zMzM/8bGxv/Gxsb/1tbW/9bW1v/V1dX/0dHR/83N + zf/Hx8f/wMDA/8vLy//GxsflGhoaWAAAACQUFBQNSUlJAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+//b29v/29vb/9vb2//f3 + 9//39/f/9/f3//f39//29vb/9vb2//f39//39/f/9vb2//f39//29vb/9vb2//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/k5OT/5eXl/+bm5v/l5eX/4+Pj/+Dg + 4P/g4OD/1dXV/+Dg4P/l5eX/5OTk/97e3v/X19f/2tra/97e3v/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/f39//39/f/9/f3//f39//39/f/97e3v/f39//3t7e/97e3v/d3d3/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9TU1P/S0tL/0dHR/9HR0f/BwcH/wsLC/8jIyP/Nzc3/0dHR/9DQ + 0P/Pz8//zMzM/8jIyP/b29v/3d3d/9zc3P/a2tr/1tbW/9LS0v/Nzc3/xsbG/8fHx/+7u7vbBwcHSQAA + ABwpKSkIRUVFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz9/f3/9fX1//X19f/29vb/9vb2/+/v7//i4uL/2tra/+Hh4f/h4eH/5OTk/+fn + 5//k5OT/4+Pj/+Hh4f/o6Oj/6enp//Hx8f/19fX/9fX1//X19f/29vb/9vb2//b29v/v7+//6+vr/+zs + 7P/t7e3/7Ozs/9zc3P/d3d3/3t7e/+Dg4P/d3d3/29vb/93d3f/g4OD/0NDQ/+Pj4//j4+P/39/f/9jY + 2P/X19f/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e + 3v/e3t7/3t7e/97e3v/d3d3/3d3d/9zc3P/b29v/29vb/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9TU + 1P/T09P/0tLS/7u7u//Kysr/y8vL/9HR0f/U1NT/1NTU/9PT0//Q0ND/y8vL/97e3v/g4OD/4eHh/9/f + 3//e3t7/2tra/9bW1v/R0dH/zMzM/8rKyv+fn6DEAAAANwAAABJQUFAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPz8/P/09PT/9PT0//T0 + 9P/09PT/7Ozs/9fX1//n5+f/4+Pj/+vr6//s7Oz/4+Pj/+bm5v/p6en/6enp/+Li4v/o6Oj/7+/v//Pz + 8//z8/P/9PT0//T09P/09PT/9PT0/+/v7//p6en/5+fn/+vr6//t7e3/29vb/93d3f/Y2Nj/4ODg/97e + 3v/X19f/3Nzc/+Dg4P/Nzc3/4uLi/+Li4v/e3t7/2NjY/9XV1f/Y2Nj/29vb/9zc3P/d3d3/3d3d/93d + 3f/d3d3/3d3d/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc3P/b29v/29vb/9ra + 2v/a2tr/2tra/9nZ2f/Y2Nj/19fX/9bW1v/W1tb/1dXV/9TU1P/S0tL/u7u7/8vLy//Ozs7/1dXV/9bW + 1v/W1tb/1dXV/9PT0//Nzc3/4ODg/+Pj4//k5OT/4+Pj/+Li4v/g4OD/3d3d/9nZ2f/W1tb/0NDQ/9ra + 2v09PT5xAAAAISsrKwhCQkIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXl5eBQAAABgAAABM+fn5//Ly8v/y8vL/8vLy//Ly8v/y8vL/6Ojo//Hx8f/x8fH/8fHx//Hx + 8f/x8fH/8fHx//Dw8P/w8PD/7+/v/+7u7v/w8PD/8PDw//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+/v + 7//v7+//8PDw//Dw8P/c3Nz/39/f/97e3v/f3+D/3d3d/9ra2v/c3Nz/39/f/9fX1//X19f/4eHh/9/f + 3//Z2dn/0tLS/9LS0v/U1NT/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/19fX/9fX + 1//Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/X19f/19fX/9bW1v/W1tb/1tbW/9XV1f/V1dX/09PT/9LS + 0v/S0tL/0dHR/7+/v//Jycn/zMzM/9PT0//X19f/2NjY/9fX1//X19f/1dXV/87Ozv/h4eH/4+Pj/+bm + 5v/m5ub/5eXl/+Tk5P/i4uL/39/f/93d3f/a2tr/2tra/52dnb4AAAAwAAAADUtLSwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz39/f/8PDw//Dw + 8P/v7+//7+/v/+/v7//f39//6+vr/+Pj4//o6Oj/5+fn/+rq6v/l5eX/6enp/+Xl5f/n5+f/6urq/+nq + 6v/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/q6ur/6enp/+Xl5f/n5+f/6urq/9XV1f/a2tr/19fX/9vb + 2//Z2dn/1dXV/9fX1//b29v/29vb/8rKyv/d3d3/3d3d/9nZ2f/Q0ND/y8vL/8zMzP/Nzs7/zs7O/87O + zv/Ozs7/z8/P/9DQ0P/Pz8//z8/P/8/Pz//Q0ND/0NDQ/9DQ0P/R0dH/0tLS/9LS0v/S0tL/09PT/9LS + 0v/S0tL/0dHR/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/83Nzf/Nzc3/ubm5/8rKyv/Pz8//1tbW/9nZ + 2f/a2tr/2dnZ/9jY2P/W1tb/z8/P/+Pj4//l5eX/5+fn/+fn5//n5+f/5ubm/+Xl5f/k5OT/4uLi/+Dg + 4P/g4OD/zc3N5AAAADsAAAARVVVVAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPX19f/u7+//7u7u/+3t7v/t7e3/5eXl/9nZ2f/Nzc3/29vb/9fX + 1//a2tr/2tvb/9vb2//T1NT/2NjY/+Dg4P/b29v/6enq/+rq6v/q6ur/6urq/+rq6v/p6ur/6urq/+Xl + 5f/e3t7/4ODg/+Xm5v/b29v/z8/P/9LT0//T09P/19fX/9HR0f/Q0ND/0dHS/9TV1f/X19f/wsLD/7+/ + v/+/v7//vLy8/7W2tv+0tbX/tra2/7e3t/+4uLj/uLi5/7m5uf+5ubn/ubm5/7q7u/+6urv/urq6/7u7 + u/+7u7v/vLy8/729vf++vr7/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+7u7v/u7u7/7q6 + uv+5ubn/uLi4/7e3t/++vr7/0NDQ/9XV1f/a2tr/3Nzc/9vb2//b29v/2tra/9jY2P/Q0ND/5eXl/+fn + 5//p6en/6enp/+np6f/o6Oj/6Ojo/+bm5v/l5eX/5OTk/+Pj4//h4eL2AAAARAAAABReXl4EAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9fX1/+7u + 7v/t7e7/7e3t/+zt7f/k5OT/0dHR/+Li4v/e3t7/5ebm/+Xm5v/d3t7/4ODg/+Tl5f/h4uL/19fX/+Hh + 4f/k5eX/6erq/+np6v/p6en/6Onp/+jp6f/p6en/4uLj/97e3v/f4OD/39/f/+Tl5f/Nzc3/09PU/9LS + 0//W1tb/1dbW/83Nzf/T09T/19fY/9bX1//Fxsb/y8vM/8nKyv/IyMn/xcXG/8XFxf/HyMn/ycrK/8nJ + yv/Ly8v/y8vM/8zMzP/MzMz/zMzM/8zNzf/MzM3/zM3N/87Ozv/Pz8//0NDQ/9LS0v/S0tL/0tLS/9LS + 0v/S0tL/0dHR/9HR0f/R0dH/0dHR/9DQ0P/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8rKyv/Z2dn/2dnZ/9zc + 3P/e3t7/3d3d/9zc3P/b29v/2tra/9HR0f/m5ub/6enp/+vr6//r6+v/6urq/+rq6v/p6en/6enp/+jo + 6P/o6Oj/5ubm/+zs7P0AAABJAAAAFmVlZgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19fb/7e7v/+3t7v/s7e7/7O3u/+zs7f/s7O3/7Ozt/+zs + 7P/r6+z/6+vs/+rr6//q6+z/6+vs/+vr7P/q6+z/6uvr/+rr6//p6uv/6err/+nq6v/p6ur/6enq/+np + 6v/p6er/6enq/+np6v/p6er/6Onq/9LT1P/a29v/2tvb/9rb2//X2Nj/1NXW/9bW1//Z2dv/2tvc/8fI + yP/Nzs7/zc7O/8vMzP/HyMn/ycnK/8zNzv/Ozs//zs7P/83Oz//Oz8//zs/Q/8/P0P/Oz9D/zs/Q/87P + 0P/Pz8//0NDQ/9HR0f/T09P/1NTU/9XV1f/V1db/1dXV/9XV1f/V1dX/1NTV/9TU1P/U1NT/09PU/9PT + 0//T09P/0tLS/9HR0f/Q0ND/zc3N/9zc3f/b29v/3d3d/97e3//e3t//3t7e/93d3f/b29v/0dHR/+fn + 5//q6ur/7Ozs/+zs7P/s7Oz/6+vr/+vr6//q6ur/6urq/+np6v/o6On/8PDw/wAAAEsAAAAYampqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/t7vD/7e7v/+3u7//t7u//6Onq/9jZ2//h4eL/2tvc/+Dg4v/f4OH/5OXm/97f4f/g4eL/3uDh/+vs + 7f/k5eb/5ebo/+rr7f/q6+z/6uvs/+rr7P/q6+z/6uvs/+Hi4//j5OX/3t/g/+Lj5f/j5OX/zM3O/9bX + 2P/U1NX/2drb/9XX2P/Q0dP/1NXW/9bY2f/W19n/xcbH/8vMzf/Mzc//ysvN/8XGyf/HyMr/zM3P/83O + z//Mzc//zM3O/83Oz//Nz9D/zc/Q/83Oz//NztD/z8/Q/8/Q0P/Q0ND/0tLS/9PT1P/V1dX/1tbW/9bW + 1//W1tf/1tbX/9bW1v/W1tb/1dXW/9TU1f/U1NT/09PU/9PT1P/T09P/0tLT/9HR0v/MzMz/3Nzd/9vb + 3P/e3t7/4ODg/9/f4P/f3+D/3t7f/9zc3P/Q0ND/6enp/+zs7P/t7e7/7e3u/+zs7f/s7O3/6+vs/+vr + 7P/r6+z/6urr/+rq6//y8vL/AAAATAAAABhtbW0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3u8P/m5+j/1tfY/9PU + 1f/V1tf/2Nna/9vc3v/T1Nb/19jZ/9XW2P/V1tf/1tfY/9na3P/n6Or/6+zu/+vs7v/r7O3/6+3t/+vs + 7f/r7O3/5+jp/+Hi4//j5OX/4+Tl/9rb3P/Q0dP/19jZ/9XX2P/W19j/0dLT/87P0P/S1NX/1dXX/9bX + 2P/Exsf/y8zO/8nLzP/HyMr/wsTG/8XHyf/LzM3/y83O/8zNzv/Mzc//zM3O/8zOz//Mzs//zc7P/87P + 0P/Pz9H/0NDR/9HR0v/S0tP/1NTV/9bW1v/X19f/19fY/9jY2P/Y2Nj/19fX/9bW1//W1tb/1tbW/9XV + 1f/U1NX/1NTU/9PT1P/T09T/09PT/8zMzf/e3t7/3Nzc/97e3//g4OH/4eHh/+Dg4f/f3+D/3t7e/9HR + 0v/q6ur/7e3t/+/v7//u7u//7u7v/+3t7v/t7e7/7e3u/+zs7f/s7O3/7Ozt//Pz8/8AAABMAAAAGG5u + bgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7u/w/+7v8P/t7/D/7e7w/+jp6v/X2Nn/5Obm/+vs7f/r7e7/6+zu/+rr7P/q6+3/7O3v/+vs + 7f/n6Or/4ePk/+rr7f/r7O7/7O3u/+zt7v/r7e7/6+zt/+vs7f/j5Ob/4uPl/+Hi5P/k5uf/6evs/87P + 0f/X2Nr/1NbX/9na2//Z2tv/0tTV/9na3P/b3d//293f/8nKzP/P0dL/z9DR/83O0P/Ky83/y8zO/87Q + 0f/O0NH/zc/Q/8/Q0f/O0NH/z9DR/8/Q0f/P0NH/z9DR/8/Q0v/Q0dL/0tPU/9XV1f/W1tb/19fX/9fX + 2P/Y2Nj/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tf/1tbW/9bW1v/V1dX/1NTU/9PT1P/T09T/zc3O/97e + 3//d3d3/39/g/+Hh4v/h4eL/4eHh/+Dg4f/f3+D/0tLT/+vr6//t7e3/7+/v//Dw8P/v7/D/7+/w/+7u + 7//u7u//7u7v/+3t7v/t7e7/9fX1/wAAAEwAAAAYb29vBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7e/w/+3u8P/u7/D/7u/v/+7v + 7//t7u//7e7v/+3u8P/t7vD/7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/6+zu/+zt7v/r7e7/6+3u/+vs + 7f/r7O3/6+zt/+rs7f/q7O3/6uvt/+rr7f/q6+3/1NXW/93e3//c3t//2tze/9XX2f/W2Nr/2dvc/9zd + 3v/d3t//ycvN/9DR0v/Q0dL/zM7P/8fJyv/Lzc//z9HS/8/R0v/P0dL/z9HT/8/R0v/P0dL/z9HS/8/R + 0v/P0dL/z9DR/9DR0v/U1NX/1tbX/9fX2P/Y2Nn/2dnZ/9nZ2f/Z2dr/2dnZ/9nZ2f/Y2Nn/2NjY/9fX + 2P/W1tf/1tbX/9bW1v/V1db/1NTV/9TU1P/Nzc7/39/g/97e3//g4OD/4uLi/+Li4//i4uP/4eHh/+Dg + 4P/T09P/7Ozs/+7u7v/w8PD/8vLy//Hx8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u7//29vb/AAAATAAA + ABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb3/+7v8P/t7/D/7u/w/+7v8P/k5ef/19na/9XX2P/V19j/2drc/9na3P/f4OH/2tvd/9rb + 3P/b3N7/3+Dh/9/g4v/m6On/6+3u/+vt7v/r7O3/6+zt/+rs7f/q7O3/4uTm/9ze4P/f4OH/3+Dh/93e + 4P/Nz9D/0tTW/9PV1//W2Nn/z9HS/8/Q0v/S1NX/1dfY/9XW2P/Fx8j/yszO/8nLzf/Iycv/w8XH/8fJ + y//Mzs//ztDR/8zOz//MztD/zM3P/8zOz//Oz9D/zc7P/8zOz//Oz9H/0NDR/9PT1P/W1tb/2NjZ/9nZ + 2f/Z2dn/2dna/9nZ2v/Z2dr/2dna/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbX/9bW1v/W1tb/1dXW/87O + zv/g4OH/3t7f/+Hh4v/j4+P/4+Pk/+Li4//i4uP/4eHh/9TU1f/t7e7/7u7u//Hx8f/z8/P/8vLy//Ly + 8v/x8fL/8PDx//Dw8f/w8PH/8PDx//f39/8AAABMAAAAGHBwcQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+bn + 6f/T1NX/1tfZ/9XW1//b3N7/3d/g/9PU1f/W19n/2Nna/9PU1v/k5ef/2dvc/+Xn6P/r7O3/6+zt/+vs + 7f/q7O3/6uzu/+rs7f/h4uP/3d7g/9ja2//c3t//293e/8zOz//T1df/zc/Q/9bX2P/Q0dP/ztDR/9PU + 1v/U1df/1NbX/8LExf/Mzs//yMrL/8jJyv/Exsj/x8nL/8vMzv/O0NH/ysvN/8vNzv/Nz9D/y83O/8zO + z//Nz9D/zM3P/8/Q0f/Q0dL/09PT/9XW1v/Y2Nn/2dna/9nZ2v/a2tv/2tra/9nZ2v/Z2dr/2tra/9nZ + 2v/Z2dn/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tb/zs7O/+Hh4f/g4OD/4uLj/+Tk5f/k5OT/4+Pk/+Pj + 5P/i4uP/1NTV/+3t7v/v7/D/8vLy//Pz8//z8/P/8/Pz//Ly8//x8fL/8fHy//Hx8v/x8fL/+fn5/wAA + AEwAAAAYcXFxBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/u7/D/6uzt/9bX2f/o6ev/7O7v/+zu7//s7e//7O3v/+zt + 7//r7e7/6+zu/+Lk5f/l5uj/6+3t/+vt7f/r7O3/6uzt/+rs7v/q7O7/6uzt/+rr7f/k5ef/4uPl/+bo + 6v/l5+j/1dfY/9na3P/V19n/2tze/9jZ2//W2Nr/2dvd/9zd3//c3d//yMrL/9DR0//P0NL/zM3P/8nL + zP/KzM7/zc/R/87Q0v/O0NL/ztDS/8/R0v/P0dL/z9HT/9DR0//Q0dP/0dPT/9TU1P/W1tf/2NjZ/9nZ + 2v/a2tv/2trb/9vb3P/b29v/29vb/9ra2v/Z2dr/2dna/9nZ2f/Y2Nn/2NjZ/9jY2P/X19j/19fX/9bW + 1//Ozs//4uLj/+Dg4P/i4uP/5OTl/+Xl5v/l5eX/5OTk/+Pj5P/U1NX/7u7v//Dw8f/z8/T/9PT0//T0 + 9P/09PT/9PT0//Ly8//y8vP/8vLz//Ly8//6+vr/AAAATAAAABhxcXEFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+7v + 7//t7u//7O3v/+3u8P/s7e//7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/7O3u/+vt7v/r7e7/6+zt/+vs + 7f/q7O7/6uzu/+rs7v/q6+3/6uvt/+nr7P/p6+3/6ers/+Lj5P/Y2tv/3d7g/9ze4P/b3d7/09XX/9fZ + 2v/a29z/29ze/9jZ2v/Jy8z/zM3P/8nLzP/Exsf/v8HD/8bIyv/Jy8z/yszN/8rMzf/KzM7/yszO/8vM + zv/Lzc7/y83P/8zNz//Lzc7/zc7P/9PT1P/W1tb/19fX/9jY2P/Y2Nn/2NjZ/9jY2P/Y2Nj/19fY/9fX + 1//W1tb/1tbX/9bW1v/W1tb/1dXW/9XV1v/V1db/1tbW/8zMzf/h4eL/39/f/+Hh4f/j4+T/4+Pk/+Tk + 5f/k5OT/5OTk/9XV1v/v7/D/8PDx//Pz9P/19fX/9fX1//X19f/09PT/9PT0//Pz9P/z8/T/8/P0//v7 + +/8AAABMAAAAGHJycgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+Tl5v/S1NX/yMnK/9DR0//R0tP/09TW/9ja + 2//T1db/0tPU/87Q0f/R0tT/3+Hi/+Xm6P/r7O3/6uzu/+rs7v/q6+3/6uvt/+nr7f/h4+T/29ze/9TW + 1//f4eP/zs/R/9TV1//R09X/zM7P/9XX2P/NztD/zM3P/83P0f/MztD/xsjJ/76/wf/AwcP/u72//7q7 + vf+6vL3/vb/A/8DCxP/Dxcb/wMLD/8DBw/+/wcP/v8HC/8LExf/BwsT/wMLD/8TFx//Gx8j/yMnJ/8vL + zP/Q0ND/z8/P/8/Pz//R0dH/0NDQ/8/P0P/Q0NH/0tLS/9DQ0P/Q0ND/0NDQ/9DQ0f/Q0ND/0NDR/9DQ + 0P/Q0ND/x8fH/9zc3P/Z2dr/29vc/97e3v/g4OD/4uLj/+Li4//j4+P/1tbX/+vr7P/x8fL/9PT1//b2 + 9//19fX/9fX1//X19f/19fX/9PT1//T09f/z8/T/+/v7/wAAAEwAAAAYcnJyBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v + 8P/t7/D/4+Tl/8jJyv/c3d//19jZ/+Dh4//h4uT/1tfZ/9rb3P/d3+D/3t/g/+Di4//X2dr/5ebo/+rs + 7v/q7O7/6uzt/+rr7f/p6+3/6evt/+Hj5f/Z2tv/4OHj/9rb3f/T1db/1dfY/9LU1f/S1NX/1tja/9DS + 1P/Iycv/wsPE/8HDxP+3ubr/uLm6/72+v/+7vb7/ury+/7m6vP++v8D/wcLD/8PExv+9v8D/vr/B/8HC + w//AwcL/wMHD/8HDxf/BwsT/xcbH/8fIyv/MzM3/zs7P/9DQ0f/S0tL/0dHS/9HR0v/R0dH/0dHR/9HR + 0f/S0tL/z8/Q/8/Pz//Ozs//zs7O/83Nzv/Nzc7/zc3O/8zMzP/ExMX/1dXV/9TU1P/V1db/19fY/9jY + 2f/Z2dn/2trb/9vb3P/V1dX/4ODh/+/v8P/09PX/9vb3//b29//29vb/9vb2//b29v/19fX/9PT1//T0 + 9f/8/Pz/AAAATAAAABhycnMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3v8P/t7vD/4ePk/+3u7//s7e//7O3v/+zt + 7//t7u//7O7u/+zt7v/s7e7/6Onr/+nr7P/r7O7/6uzu/+rs7v/q7O3/6uvt/+nr7f/p6+3/6Orr/+fp + 6v/m6On/6Orr/9ze3//b3d7/3N7g/9rc3f/V19n/xMbI/7m7vf+8vsD/vsDC/7q7vf+7vb7/vsDB/77A + wv+9vsD/vL2//7/Awf/BwsT/wcPF/8DBw//AwcL/v8DC/77Awf+9v8D/vL7A/7y+v/+9vr//vr/B/8LC + w//ExMX/xcXF/8XFxf/Gxsb/xcXG/8XFxv/FxcX/xcXF/8TExf/ExMT/wsLD/8HBwv/BwcH/wMDA/7+/ + v/+/v7//v7+//7y8vP/BwcL/w8PD/8bGxv/R0dH/0NDR/83Nzv/MzMz/y8vM/8rKy//S0tL/6+vs//T0 + 9f/29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//39/f8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v + 8P/u7/D/7u/w/+zt7//Y2dv/6err/93f4P/k5ef/5OXm/+fp6v/h4+P/5+jp/+Hi4//q6+3/5+nq/+bn + 6f/q7O7/6uzt/+rr7f/p6+3/6evt/+rs7f/h4+T/4OLj/93f4P/h4uT/2dvc/9XX2f/Q0tT/ycvM/83O + 0P/Bw8X/t7m6/7a4uP+6vL7/tbe3/7e5uv+4ubv/tbe5/7S2t/+wsrP/uLq7/7u9vv+9v8D/vL7A/72+ + wP+8vr//vL7A/76/wf++v8H/vL6//72/wP++v8D/xMXG/8fIyP/Kysv/ysrK/8rKyv/Jycr/ycnJ/8nJ + yf/Jycn/yMjJ/8bGxv/Gxsf/xsbG/8TExf/CwsL/wsLD/8HBwf+/v8D/vr6+/76+v//Dw8P/wMDA/7u7 + vP+7u7v/vLy8/8DAwP/Gxsf/x8fI/83Nzv/r6+z/9PT1//b29//39/j/9/f4//f39//39/f/9vb2//b2 + 9v/19fb//f39/wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/t7vD/4+Tm/9PU1v/Excb/1tfZ/9LT + 1f/V19f/1tfY/9bY2f/NztD/09TW/+bo6v/d3+D/6evt/+rs7v/q7O3/6evt/+nr7f/q7O3/6uvs/+Hj + 5P/g4uP/293f/+Pl5v/Dxcb/v8HC/8jKy//Fx8j/ycvM/7y+v/+1t7n/s7W3/7a4uf+2uLr/tLa4/7a4 + uv+0trf/r7Gz/7Kztf+0tbf/tri6/7m7vP+3ubr/uLq7/7q7vf+6vL3/vL2//7u9vv+8vr//vb/A/8DB + wv/Cw8P/xcXF/8rKy//IyMn/yMjI/8nJyv/Hx8j/xMTE/8XFxf/Gxsf/wsLC/8DAwP/AwMH/vb29/7y8 + vP+8vLz/u7u7/7m5uf+4uLj/t7e4/7y8vf+9vb3/wMDA/8HBwv/CwsL/vLy9/7W1tv+1tbb/0tLS//Hx + 8v/19fb/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b29//+/v7/AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v + 8P/u7/H/7u/x/+3u8P/i5OX/y8zN/+Dh4//b3d7/5ufo/+bn6P/b3d7/3t/g/+Tm5//g4uP/3N7g/9/g + 4f/k5uf/6uzu/+rr7f/q6+3/6uzt/+rs7f/p6+z/4OHj/9vd3v/d3uD/293e/93f4P/Q0tP/1NbY/9LU + 1v/Z29z/1tja/83O0P/Jys3/0dLU/8zO0f/O0NL/0tTW/83P0v/O0NH/ycvM/83P0P/Q0tP/0dPU/8vO + z//Nz9D/z9HS/87Q0f/O0NL/0dLU/8/R0//U1db/1tfY/9zc3f/h4eH/4uLj/+Tk5f/h4eH/3t7e/9ra + 2//Z2dr/19fX/9jY2P/U1NT/09PU/9LS0v/T09P/0tLT/9TU1P/V1dX/1tbW/9fX1//W1tb/2NjY/9fX + 1//a2tr/2dnZ/9nZ2f/X19j/1tbX/9TU1P/w8PH/9vb3//f3+P/39/j/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//7+/v8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz09vb/7u/w/+7v8f/t7/D/7e/w/+3u8P/t7vD/7O7v/+zu + 7//t7u//7O7v/+zu7//s7e7/6+3v/+vt7//r7O7/6+zu/+rs7v/q7O3/6uzt/+rs7f/q7O3/6uvs/+rr + 7P/p6+z/6evs/+jq7P/m6Or/6Ors/9bY2f/g4uT/5Obn/+Tm5//i5Ob/3uDi/9fZ2//S1Nb/zM7Q/9HT + 1f/T1db/0dPV/87Q0v/P0dP/1dfY/9bY2f/W2Nn/1djZ/9TW2P/U1tf/1NbX/9PV1v/S1NX/0tPV/9PV + 1v/W19n/3N3d/+Hh4f/k5OT/5OTk/97e3//X19j/1tbW/9bW1v/W1tf/19fX/9jY2P/Y2Nn/2dna/9TU + 1P/Nzc7/zs7O/87Ozv/Nzc3/zc3N/87Ozv/e3t//5OTk/+fn6P/o6Oj/5+fn/+Tk5f/c3Nz/5ubn//b2 + 9//39/j/+Pj5//j4+f/4+Pn/+Pj5//f3+P/39/j/9/f3//f39//39/f//v7+/wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/u7/D/7u/x/+7v8P/t7vD/5+jq/9LU1f/d3uD/1NbX/93e3//b3d7/4eLj/9vc3f/c3d//29ze/+Dh + 4v/g4uT/5OXn/+rs7f/q7O3/6uzt/+rs7f/q7O3/6evs/+Hj5P/e4OL/3uDi/97g4v/c3d//19nb/8nL + zP/Y2tz/3uDh/97g4v/h4+X/1dfZ/83P0f/Hycv/ztDS/9TW1//R09T/z9HT/9DS1P/P0dP/0NLU/9HT + 1P/P0dP/0NLT/9LU1v/T1df/z9HT/9HT1f/Q0tP/0NLT/9TV1v/Y2Nn/2dra/9na2v/X19j/1dXW/9DQ + 0f/R0dL/zMzM/8zMzP/Ly8v/zc3N/87Ozv/Nzc7/09PT/9ra2v/b29v/29vc/9vb3P/b29v/2trb/+Tk + 5f/l5eb/6Ojo/+jo6f/m5uf/4+Pj/9vb2//19fX/+Pj4//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/+/v7/AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8f/u7/H/7u/w/+3v8P/k5ef/z9DS/8rM + zf/Nz9D/0tPU/9bX2f/Lzc7/z9DS/87P0f/Nzs//2Nrb/9bY2f/l5+j/6+3u/+vs7f/q7O3/6uzt/+nr + 7f/p6+z/2tzd/9ja3P/Q0tP/2tzd/9vd3v/X2dv/zc/Q/8bJyv/U1tf/1tjZ/9rc3f/P0dP/0NLU/8DC + xP/GyMr/yszO/8zO0P/Lzc7/ztHS/9LU1v/Q0tT/0NLT/8vNz//Jy83/yMrL/8fIyv/Excf/yczN/8vN + z//KzM3/zc7P/9fY2P/T09T/w8TE/7i4uf+5ubn/vLy8/8XFxf/Q0ND/1tbW/9PT1P/Y2Nn/2NjY/9jY + 2P/X19j/19fY/9fX1//Y2Nj/2dna/9vb2//b29v/5OTl/+Xl5v/o6Oj/5+fo/+Tk5f/Y2Nj/8vLy//f3 + 9//4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz19vb/7u/w/+7v8P/u7/D/7e/v/+Xm5//Q0tL/4ePk/+vs7f/r7O3/6+zt/+jq6//p6+z/6+3u/+nr + 7P/b3d7/3d/g/+nr7P/r7O3/6uzt/+rs7f/q6+3/6uvt/+nr7P/o6uv/6Onr/+fp6v/m6On/5+nq/+bo + 6v/n6er/2Nrb/9ve3//e4OL/4OLj/9ze3//a3N7/yczN/8vNzv/Q0tP/1NbY/9LU1f/U1tf/0NLT/9HT + 1P/Q0tP/ztDR/83P0P/O0NH/zc/Q/83P0P/KzM7/ycvN/8rMzf/O0NH/1tfY/9XW1v/FxcX/xMTE/7+/ + v//Hx8f/09PT/9XV1f/U1NT/0dHR/9TU1P/U1NT/1NTU/9TU1P/U1NT/09PT/9PT0//W1tb/2dnZ/9ra + 2v/l5eX/5eXl/+fn5//m5ub/3d3d/+jo6P/39/f/+Pj4//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+3v7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//s7u//7O3u/+zt7v/r7e7/6+zu/+vs7v/r7O3/6+zu/+vs7f/q7O3/6uzt/+rr + 7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq6//o6uv/5+nr/+jq6//o6uv/z9LT/93f4f/W2Nn/3uDh/93f + 4P/NztD/yszN/8vNzv/Q0tP/0dTV/9PV1v/T1db/0NLT/87Q0v/Q0tP/0tTV/9LU1f/R1NX/0tTV/9LU + 1f/S1Nb/09XW/9XW1//R0tL/2tra/87Ozv/Jycn/xMTE/8/Pz//Y2Nj/29vb/9vb2//a2tr/2tra/9ra + 2v/Z2dn/2dnZ/9jY2P/X19f/1NTU/9PT0//V1dX/2NjY/+Xl5f/k5OT/5eXl/+Tk5P/d3d3/9fX1//j4 + +P/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb2/+7v8P/u7/D/7u/v/+3u7//d3t//5ufo/9LT1P/Nzs//1tjZ/9na2//S1NX/ztDR/9nb + 3P/c3d7/3N7f/9ze3//U1tf/1tfZ/9ze3//e3+D/19na/9fZ2v/U1tf/5OXn/+jq7P/o6uv/6Orr/+jq + 7P/c3t//293f/9bZ2v/Y29z/zc/R/9DS0//R09T/1dfY/8vNz//Hycv/xcfJ/8HExf/Fx8n/w8XG/8LE + xf/Exsf/yMrM/8nLzf/MztD/zM7Q/8rMzf/Mzc7/zc/Q/83P0f/Mzs//0dLT/87P0P/Nzs7/zs7O/8HB + wf+8vLz/ycnJ/9HR0f/S0tL/09PT/9TU1P/S0tL/1NTU/9bW1v/V1dX/1NTU/9zc3P/a2tr/1dXV/9PT + 0//U1NT/4+Pj/+Li4v/i4uL/2dnZ//Pz8//39/f/+Pj4//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v8P/u7+//7e7v/9jZ + 2v/Iycr/0tTV/8HDxP/P0NH/2dvc/9HT1P/Nzs//zM7P/9PV1v/T1NX/0dLT/9LU1f/Mzs//19na/9jZ + 2v/W19n/ztDS/9TW1//j5eb/6ers/+jq6//p6+z/6Ors/9vd3//c3t//1djZ/93f4P/Q0tP/zdDR/8/R + 0//P0dP/ycvN/8jLzP/Fx8n/ury+/7u8vv+9v8H/vcDB/8HDxf/Mzs//ycvN/8vNz//Oz9H/yszO/8zO + z//Nz9D/z9HS/87Q0f/S1NX/z9DR/87Oz//Q0ND/xMTE/729vf/Ozs7/1dXV/9TU1P/V1dX/1tbW/9TU + 1P/W1tb/2dnZ/9nZ2f/X19f/1NTU/9zc3P/Z2dn/09PT/87Ozv/d3d3/39/f/9zc3P/p6en/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29v/u7/D/7u/w/+7v8P/t7+//5ebn/9PU1f/h4+T/7e7v/+3u7//s7u//7O7v/+zt + 7v/r7e7/6+zu/+zt7v/r7e7/6+zu/+vs7f/q7O3/6uzt/+nr7P/j5Ob/6evs/+nq7P/o6uv/6evs/+jq + 7P/o6uv/6Orr/+fp6//n6ev/5+nr/+bp6v/T1df/2dzd/9rc3v/Q09T/0tTV/8zOz/+7vb7/uLu8/7m7 + vP++wMH/xMbH/8jLzP/Iy8z/yczN/8zOz//Mz9D/zc/R/83P0f/O0NL/0NHT/9LU1f/Oz9D/0dLS/9HR + 0v/Dw8P/w8PD/87Ozv/X19f/19fX/9fX1//V1dX/1tbW/9XV1f/V1dX/1NTU/9TU1P/R0dH/zs7O/9bW + 1v/S0tL/yMjI/9bW1v/Z2dn/29vb//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8P/u7/D/7e/v/+3v + 7//t7u//7u/w/+3v7//s7u7/7e7v/+Dh4v/r7e7/7O3u/+vt7v/r7e7/6+3u/+rs7f/r7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+z/6Ors/+jq7P/p6+z/6Orr/+fp6//o6uv/5+nr/+fp6v/n6er/5+nq/+Lk + 5f/R1NX/2Nvc/8/S0//S1NX/yszO/8PGx/+3ubv/srS2/7S2t/+3ubr/uLq8/7q8vf+7vr//vb/A/7/B + w//Bw8X/wsXG/8TGx//GyMn/ycvL/8bHx//Jysr/ysrK/7y8vP+9vb3/ysrK/9DQ0P/Q0ND/0NDQ/8/P + z//Nzc3/zc3N/8zMzP/Ly8v/ysrK/8nJyf/FxcX/xMTE/8vLy//ExMT/09PT/8/Pz//w8PD/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7vDw/+7v8P/u7+//7e/v/9fY2f/Z29v/y83N/7i5uv/Jy8z/xsfI/87P + 0P/Mzc7/xMXG/9XX2P/Jy8z/z9DR/9TW1//n6er/6uzt/+rs7f/q6+3/6evs/+nr7P/a3N3/2tzd/9HS + 1P/a3N7/2Nrb/9fZ2v/T1df/19na/9vd3//d4OH/2tze/87R0v/MztD/xsnK/8fJy//Fx8n/xMfJ/7q8 + vv+3ubr/srS1/7K0tf+xs7T/sbK0/7Cys/+xs7X/ubu9/7u9vv+9v8H/v8LD/8PGx//Jysv/x8jJ/8vM + zP/MzMz/wMDA/8HBwf/Nzc3/0dHR/9HR0f/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8zMzP/Ly8v/y8vL/8rK + yv/Gxsb/ycnJ/8vLy//X19f/5ubm//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u8PD/7u/w/+7v + 8P/t7+//19jZ/8bHyP/Mzc7/0tPU/9na2//S1NX/3uDg/9vd3v/P0NH/2dvc/9rc3f/Z29z/3+Hi/+fo + 6v/q7O3/6uzt/+nr7P/p6+z/6evs/9bY2f/d3uD/2tzd/9vd3v/e4OH/3d/g/9nb3P/c3uD/293e/+Xn + 6f/e4OL/2t3e/87R0v/Hysv/x8rL/8vNz//JzM7/wsXH/8XHyf/Fx8n/xMbI/7/Bw/+/wcL/wMLE/77B + wv/AwsT/v8HD/77Awv+/wcP/wsTF/8jKy//Iycr/0NHR/9HR0f/Kysr/zc3N/9XV1f/Y2Nj/19fX/9fX + 1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1dXV/9TU1P/Q0ND/0NDQ/+Li4v/39/f/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7w8P/u7/D/7u/w/+3v7//q7Oz/3+Dh/+rs7f/t7u//7e7v/+3u + 7//s7u//6+zt/+nr7P/s7e7/6+3u/+vt7v/r7e7/6uzt/+rs7f/q7O3/6evs/+nr7P/p6+z/5+nq/+nr + 7P/n6Or/6Ors/+jq6//n6er/5ujp/+fp6v/m6er/5ujq/+Tm6P/l6On/4uTm/9HU1v/O0dL/zM7Q/8zO + 0P/O0dL/0NLU/9HT1f/R09X/0dPU/9DT1P/P0tP/ztHS/83P0P/Mzs//yszN/8fJy//HyMn/x8nK/8fI + yf/Ozs7/0dLS/9LS0v/a2tr/4ODg/+Li4v/h4eH/4eHh/+Dg4P/g4OD/4ODg/9/f3//e3t7/29vb/9nZ + 2f/a2tr/2tra/9ra2v/d3d3/+Pj4//n5+f/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7/Dw/+7v + 8P/u7/D/7u/v/+jq6v/r7e3/5OXm/9rc3P/l5uf/4uPk/+Tl5v/b3d3/4eLj/+Dh4v/f4eL/5Obn/+jq + 6//q7O3/6uzt/+rr7f/q6+3/6evs/+nr7f/o6uv/5ujp/+jq7P/o6uz/6Orr/+fp6//n6ev/5+nq/+bp + 6v/m6Or/5ujp/+bo6v/m6Or/5ejp/+Xo6f/l5+n/4+Xn/93f4f/a3d7/2Nvc/9XY2f/U19j/1djZ/9ja + 3P/Z293/2dvd/9nb3f/Z293/2Nrc/9fZ2v/X2dr/0tPT/9jY2P/d3d7/5OTk/+7u7v/v7+//7+/v//Dw + 8P/w8PD/8fHx//Ly8v/z8/P/8/Pz//T09P/39/f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//v8PD/7u/w/+7v8P/u7+//1tjY/8LDxP/Lzc3/wcLD/8HC + w//Hycn/zM3O/8jJyv/Iycr/0NLT/8nLzP/X2dr/6uzt/+vs7f/q7O3/6uzt/+rr7f/p6+z/6evt/+Tm + 6P/e4OH/6Ovs/+jq6//o6uv/5+nr/+fp6v/n6er/5ujq/+bo6v/m6er/5ujq/+Xo6f/l6On/5efp/+Xn + 6f/l5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/f4uT/2t3f/9ja3P/U19j/19nb/9nb3f/Z293/2tzd/9ze + 3//b3N3/5OXl/+fn5//s7Oz/9PT0//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+/w + 8f/u8PD/7u/w/+7v8P/Z2tr/zM3O/8/Q0f/X2dr/09TV/+Dh4v/k5eb/1tjY/+Lj5P/e4OH/3t/g/+Tl + 5v/n6er/6+3u/+rs7f/q7O3/6evs/+rs7f/q7O3/3N7f/9/h4v/p6+z/6Orr/+jq6//n6ev/5+nr/+bp + 6v/m6Or/5unq/+bp6v/m6Or/5ujq/+Xn6f/l5+n/5Ofo/+Tn6P/k5+j/5Obo/+Tm6P/j5uj/4+bn/+Tm + 6P/j5uj/4+bo/+Pm5//d3+H/2Nrc/9XX2P/a3N3/293e/+Lj5P/y8/P/9fb2//n5+f/6+vr/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19/f/7/Dx/+/w8P/u7/D/7u/w/+/w8f/u8PD/7u/w/+3v + 8P/t7+//7e7v/+zu7//s7u7/7O3u/+zu7//s7e7/6+3u/+vt7v/q7O3/6uzt/+rs7f/p6+3/6uzt/+nr + 7f/p6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5unq/+fp6//n6er/5ujq/+bo6f/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/4+bo/+Pm6P/j5uf/4+bn/+Pm5//j5uf/4+bn/+Pm5//j5uf/4uXm/9nb + 3f/U1tf/7O3u//T09f/4+fn/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPb3 + 9//v8PH/7/Dw/+7w8P/u7/D/7/Dx/9PU1f/n6On/0NHS/97g4P/c3d7/2Nna/9fY2v/W2Nj/3+Hi/+Dh + 4v/j5eb/6+3u/+vs7f/q7O3/6uzt/+rr7f/q7O3/6evt/+Di5P/j5eb/4ePk/+Pl5v/o6uv/4OPk/+fp + 6v/n6er/5+nr/+bp6v/m6Or/5ujp/+Xo6f/l5+n/5Ofp/+Tn6P/k5uj/5Obo/+Pm6P/j5uj/4+bn/+Pm + 5//j5ef/4+Xn/+Pm5//j5uf/4+bn/+Pm5//j5uj/5Obo/+Pl5v/s7u7/8/T0//n5+f/7+/v//Pz8//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9vf3/+/w8f/v8PH/7vDw/+7v8P/p6uv/vb6//8jJ + yv+3ubn/xcbH/8jJyv/Jysv/vr/A/8vMzf/LzM3/0NLT/+Xm5//r7e7/6+zt/+rs7f/q7O3/6uzt/+rs + 7f/R09X/0dPU/+Pl5v/Hycr/5Ofo/9XX2f/U1tf/5+nq/+fp6//n6er/5unq/+bo6v/l6On/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Ll5//j5ef/4+Xn/+Pl5//j5uf/4+bn/+Pm + 5//k5uj/5ujq/+zt7v/z9PT/+fn5//v7+//8/Pz/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7/Dx/+/w8f/u8PD/7vDw/9jZ2v/s7e7/19nZ/+vt7f/q7O3/6evr/+nq6//l5uf/6uzs/+rs + 7f/q7O3/6uvs/+vt7v/r7e3/6uzt/+rs7f/q7O3/6uzt/+fq6//a3N3/6evs/9nb3P/o6uz/5ujq/9vd + 3//n6ev/5+nr/+fp6v/m6er/5ujq/+Xo6f/l5+n/5efp/+Tn6P/k5+j/4+bo/+Pm5//j5uf/4+bn/+Pm + 5//j5uj/4+Xn/+Ll5//i5ef/4uXn/+Pl5//j5ef/4+bn/+Pm5//m6On/6+3u//Pz9P/4+fn/+/v7//z8 + /P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPb3+P/w8fH/7/Dx/+/w8f/v8PD/7u/w/+/w + 8f/u8PD/7u/w/+7v8P/t7/D/7e7v/+3u7//s7u//7e7v/+zu7//s7u7/6+3u/+vt7v/q7O3/6uzt/+rs + 7f/q7O3/5Obn/+nr7P/p6+z/6evs/+jq7P/o6uv/5+nr/+fp6//n6ev/5+nr/+bp6v/m6Or/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/j5uj/4+bo/+Pm6P/g4+X/3uHj/+Pm5//j5uf/4+bn/+Pl5//i5eb/4uXm/+Pl + 5//j5ef/4+bn/+bo6f/r7O3/8vPz//j5+f/7+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAA + ABgAAABM9vf4//Dx8f/v8fH/7/Dx/+/w8P/m5+j/xsfI/83Oz//W2Nj/09TV/+7v8P/t7+//7e7v/+zu + 7//t7u//7O7v/+zu7v/s7e7/6+3u/+rs7f/b3d7/3N7f/9fZ2v/Jy8z/0tXW/+Lk5f/d3+D/3+Lj/9XX + 2f/X2dv/19rb/9ja3P/Y2tz/2dvc/+Lk5v/b3t//2dvd/9jb3P/c3+D/3d/h/9/i5P/a3d//2t3e/93g + 4v/Y293/4+bn/+Pl5//j5ef/4+Xn/+Pl5//j5uf/4uXm/+Pl5//j5uf/5efp/+rs7f/y8/P/+Pj5//v7 + +//8/Pz//Pz8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz29/j/8PHy//Dx8f/v8PH/7/Dx/9TV + 1v/l5uf/w8TF/8HDw//Mzs7/7u/w/+3v7//t7u//7O7v/+3u7//s7u//7O7v/+zu7v/r7e7/6+3u/9DS + 0//U1tf/yszO/8fJyv/S1Nb/4ePk/9ze3//V19j/0tXW/9rd3v/U19j/1tja/9nc3f/V2Nn/4+Xn/9TX + 2P/b3t//1dfZ/9vd3//a3d7/4uXm/9rc3v/Z293/2t3f/9nc3v/i5ef/4uXn/+Pl5//i5ef/4uXn/+Pl + 5//j5uf/4uXm/+Pl5//l5+n/6uzt//Hy8//4+Pj/+vv7//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPb4+P/w8fL/8PHy//Dx8f/v8PH/5ebm/+vs7f/h4uP/6+zt/+bn6P/u7/D/7e/w/+3u + 7//s7u//7O7v/+zu7//s7u//7O7v/+zt7v/r7e7/4+Tl/+rs7f/l5+j/5ufo/+rs7f/p7O3/4+Xm/+Pl + 5v/o6uv/6Orr/+fq6//n6uv/5+nr/+fp6v/m6Or/4ePl/+Xn6f/h4+X/5Ofo/+Tn6f/k5uj/4+bo/+Pm + 5//j5ef/4+Xn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4+Xn/+Pl5//j5ef/4+Xn/+Xn6P/p6+z/8fLy//f4 + +P/6+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+/x8v/v8PL/7/Dx/+/w + 8f/v8PH/7u/w/+/w8f/u7/D/7u/w/+3v8P/u7/D/7e/w/+3u7//s7e//7O7v/+zt7//Y2tv/6+3u/+vt + 7v/r7O3/6+zt/+rs7f/q7O3/6evt/+nr7f/p6+z/6Orr/+jq6//m6Or/3eDh/+Di5P/d3+H/5ujq/+bo + 6v/m6On/5ejp/+Xn6f/k5uj/5Obo/+Pm5//j5uj/4+bn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4uXn/+Ll + 5//i5ef/4uXn/+Ll5//j5ef/5Ofo/+nr7P/w8fL/9/f4//r6+//7+/z/+/v8//v7+//7+/v/+/v7//v7 + +//7+/v/+vr7//r6+//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fr/+fn5//n5 + +f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz3+Pn/7/Hx/+/w8f/v8PH/7/Hx/+Di4v/Gx8j/tre4/7q8vP/Mzc7/z9DR/8nK + y//HyMn/x8nK/8bIyf+9v8D/0NLT/8LExf/f4eL/7O3u/+vt7v/r7O3/6uzt/+rs7f/p6+z/6evs/9DS + 1P/Q0tT/1tna/9ja2//O0NL/2dvc/9XX2f/P0tP/0tXW/9rd3//j5uf/2t3e/9jb3P/Z293/2Nvd/9ve + 4P/c3uD/4uXn/9ve4P/c3+D/3N/g/9jb3P/a3N7/2dzd/9nc3v/X2tz/2Nrc/+Pl5//k5+j/6evs//Dx + 8v/29/f/+vr6//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPf4+f/w8fH/7/Hx/+/w + 8f/v8PH/4OHi/7a3uP/Mzs7/3N3e/9PU1f/Mzc7/1dfX/8bHyP/Nzs//3N3e/9bX2P/O0NH/3N3e/9XX + 2P/s7e7/6+3u/+vt7v/q7O3/6uzt/+nr7P/p6+z/0tTU/9PW1//b3t//2tze/97g4f/b3d7/2tze/9ze + 3//c3uD/2dzd/+Xn6f/a3d7/3N7g/93f4f/d3+H/3N/g/97h4v/h5Ob/2t3e/9rd3//c3+D/3eDi/97g + 4v/Z3N7/2t3e/93g4v/d4OH/4+Xn/+Tm6P/o6uz/8PHx//b39//5+fn/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9///////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1eBQAAABgAAABM9/j5//Dx8v/w8fH/7/Dx/+/w8f/v8fH/3d/f/+7v8P/v8PH/7vDw/+7v + 8P/u7/D/7e/v/+7v8P/t7+//7e7v/+zu7//s7e7/6+3u/+vt7v/r7e7/6+3u/+vs7f/q7O3/6uzt/+nr + 7P/n6er/5Obn/+nr7P/o6uz/6Orr/+fp6//n6er/5+nq/+bp6v/m6er/5ujq/+Pm5//l5+n/5Ofo/+Tm + 6P/k5uj/4+bn/+Hk5v/e4eP/4OPk/+Ll5v/i5ef/4uXn/+Pl5//i5eb/4uXn/+Ll5//j5uf/5Obo/+jq + 6//v8PH/9vb2//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz3+fn/8PHy//Dx + 8f/w8fH/7/Dx/+/w8f/W2Nj/4ePj/+bn6P/b3N3/5+jp/9jZ2v/Nzs//4OHi/+Xm5//t7+//7e7v/+zu + 7//s7e7/6+3u/+vt7v/r7e7/6+3u/+Hi4//e3+H/09XW/+bo6f/d3+D/4ePk/9/h4v/i5Ob/5Obn/+Pl + 5//k5uf/4uTl/93g4f/j5uf/3d/g/+Ll5v/i5Ob/4eTm/+Hj5f/e4OL/3uHj/9/h4//b3uD/4uTm/+Ll + 5//j5uf/4uXn/+Ll5//j5ef/4+Xn/+Pm5//k5+j/6Orr/+/w8f/19vb/+fn5//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXgUAAAAYAAAATPj5+f/w8fL/8PHy//Dx8f/v8fH/1tjY/9bX2P++wMD/ysvM/8zN + zv+trq//ycvL/8jKyv/Mzs7/7O3u/+3v8P/t7u//7O7v/+zt7v/s7e7/6+3u/+zt7v/r7e7/1tjZ/8rM + zf/R09T/ztDR/8/R0v/W2Nn/zM7P/8rMzf/U1tf/2Nrb/9vd3//W2Nn/09XX/9fZ2//d3+H/1NfY/93f + 4f/W2Nr/2Nvc/9rd3v/a3N7/19rc/9ve4P/j5ef/4+Xn/+Ll5//i5ef/4+Xn/+Pm5//j5uf/4+bn/+Xn + 6P/o6uv/7u/w//X19v/5+fn/+vr7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39///////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+Pn6//Dx + 8v/v8PL/7/Dy/+/w8f/i5OX/x8jJ/9PU1v/S09T/19na/97g4f/k5eb/3N3e/97f4P/i4+T/7e7w/+zu + 7//s7e//7O7v/+zt7v/r7e7/6+3u/+vs7v/Nzs//1NbX/+Pl5v/f4eL/293e/9PU1v/d3+H/4OLk/9vd + 3v/d3+H/3N7g/9bZ2v/X2dv/2tze/+Di5P/U19j/3eDh/9nb3f/Z3N3/19nb/9bZ2//Z293/2t3f/+Pl + 5//j5uf/4+bn/+Pm5//j5uf/4+bo/+Tm6P/k5uj/5Obp/+jq6//u7/D/9fX1//n5+f/6+/v/+vr7//r6 + +//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABdXl4FAAAAGAAAAEz4+fr/8PHy/+/x8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+7w + 8f/u8PH/7u/x/+7v8P/u7/D/7u/w/+3v7//t7vD/7O7w/+zt7//s7e//7O7v/+zt7v/r7e7/6+3u/+rs + 7v/q7O7/6uzt/+rs7f/q7O3/6evs/+nr7P/o6uz/6Ors/+jq6//o6uv/5+rr/+fp6//m6er/5ujq/+Xo + 6v/l5+r/5efp/+Xn6f/k5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Pm6P/k5uj/4+bo/+Pm + 6P/k5+j/6Orr/+7v8P/09fX/+fn5//r6+v/6+vv/+vr7//r6+v/6+vr/+vr6//r6+v/6+vr/+fn6//n5 + +v/5+fr/+fn5//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9vb3//b29//29vf/9vb3//b29//29vb//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1eXgUAAAAYAAAATPn6 + +v/w8fP/8PHy/+/x8v/v8PL/3+Di/8rLzP/Z2tv/0dLU/9TV1v/R09T/3d7f/9rc3P/Mzc7/2dvc/9fZ + 2v/i5OX/7O7w/+zt7//s7e//7O3u/+zt7v/r7e7/293e/9TW2P/d3uD/09XW/9nb3P/q7O3/3N7f/9fZ + 2v/b3d7/3eDi/9XX2f/h4+T/5efp/+Hj5f/k5uj/5ujq/+bo6v/l5+r/5efq/+Xn6f/k5+n/5efp/+Tn + 6f/k5+j/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Xn6P/o6uv/7u/v//T19f/4+Pn/+fn6//r6 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+v/5+fr/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//b29v//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+fr6//Dx8v/w8fH/8PHx/+/w8f/P0NH/5+jp/8rL + zP+9vr//uru8/7i5uv/BwsP/w8TF/62vr//Bw8P/xcbH/+Tm5v/t7u//7O7v/+zt7v/s7e7/7O3u/+zt + 7v/Q0tP/6+zt/9DS0//a29z/xsjJ/9TW1//Mzs//6evs/9PV1v/W2Nn/0dPV/+fp6//i5Ob/2dvd/83P + 0P/i5OX/5ujq/+bo6v/m6On/5efp/+Xn6f/l5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tn6P/k5uj/5Ofo/+Tn + 6P/l5+n/5efp/+jq6//t7+//9PT0//f4+P/5+fn/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXl4FAAAAGAAA + AEz5+vr/8PHy//Dx8v/w8fH/8PHx/9vc3P/p6uv/4uPj/+rs7P/v8PH/7O3u/+vt7f/r7e3/6err/+3v + 7//s7e7/6+zt/+3v7//t7u//7O7v/+zt7v/s7e7/7O3u/9rb3P/r7e7/2dvc/9HS0//V19j/09TV/9LU + 1f/p6+z/5+nq/+Hj5P/T1db/5+nq/9ze3//f4eP/4+Xn/+fp6v/n6er/5ujq/+bo6v/m6Or/5ujq/+Xo + 6f/l6On/5efp/+Xn6f/l5+n/5efo/+Xn6P/l5+n/5efp/+Xn6f/m6On/6Orr/+zu7//y8/T/9/f4//n5 + +f/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPn6+//w8fH/8PHy//Dx8v/w8fH/8PHx/+/w + 8f/v8PH/7/Dx/+/x8f/v8PH/7/Dx/+7w8P/u7/D/7u/w/+7v8P/u7/D/7e/v/+3u7//t7u//7O7v/+zt + 7v/s7e7/7O3u/+vt7v/r7e7/6+zt/+rs7f/q6+z/6uvs/+rs7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq + 6//n6ev/5+nr/+fp6v/n6ev/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ejp/+Xo6f/l6On/5ejp/+Xn + 6f/l5+n/5efp/+Xn6f/o6er/7O3u//Lz9P/39/f/+fn5//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9fX1//X19f//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAA + ABgAAABM+fr7//Dx8f/w8fH/7/Dy/+/w8v/v8PH/1dbW/7m6vP/Nzs//0NHR/9LU1f/AwcL/vb6//9LU + 1f/W19j/7e/v/+3u7//t7vD/7O7v/+zt7//t7u//7O7u/+zt7v/r7e7/6+3u/+rs7v/q7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+3/6Ors/+jq7P/o6uz/6Orr/+jq6//o6uv/5+nr/+fp6v/m6er/5ujq/+bo + 6v/m6Or/5ujq/+bo6v/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/m6On/5ujp/+jp6//s7e7/8vP0//b2 + 9//4+Pn/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/4+Pj/+Pj4//f3 + +P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb2//b29v/29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fX/9fX1//////8AAABMAAAAGHNzdAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz5+vv/7/Dx//Dx8f/v8PH/7/Dy/9zd + 3//BwsT/zMzN/8XGyP/AwcL/vL2+/7u8vv+xsrP/zs/P/7/Awf/t7u//7e7v/+zu7//s7e//7O3v/+zt + 7v/s7e7/7O3u/+vt7f/r7O3/6+zu/+rs7f/q6+3/6uvt/+rs7f/q6+z/6evs/+nr7P/p6uz/6Ors/+jq + 7P/o6uz/5+nr/+jq6//n6ev/5+nr/+fp6//n6er/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ujp/+bo + 6f/m6On/5ujp/+bo6f/m6On/6Onr/+vt7//x8vT/9vb3//j4+f/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX1//X19f/09PX//////wAA + AEwAAAAYc3N0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPn5+v/u7/D/7+/w/+/v8P/u7/H/5ufo/9na3P/g4eL/7e7v/+3u7//t7u//7O7v/9/g + 4f/g4uP/09TV/+vt7f/r7O3/6+zt/+vs7f/q6+3/6uvt/+nr7P/q6+z/6uvs/+nr6//p6uv/6Ors/+jq + 6//o6ev/6Onr/+jq6//o6ur/5+nq/+fp6v/n6er/5+jq/+bo6v/m6Or/5ujq/+bo6v/m6Or/5ujp/+bo + 6f/m6On/5ujp/+bo6f/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+n/5efp/+bo6v/o6ev/7O3v//Hy + 8//29vb/+Pj4//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//X1 + 9v/19fb/9fX2//X19f/19fX/9PT1//T09f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+zt7//s7e7/7e3u/+zt + 7v/s7e7/6+zu/+vs7f/q6+z/6uvs/+rr7P/p6uv/6err/+nq6//o6ev/5+jp/+fo6f/W19j/5+jo/+fo + 6f/n6On/5ufo/+bn6P/l5+j/5ufo/+bn6P/l5uf/5ebn/+Tm5//k5ef/5OXn/9fY2f/k5ef/4+Xm/+Pl + 5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xn/+Pk5v/j5Ob/4+Tm/+Pl5//j5ef/4+Xn/+Pl + 5//j5ef/5Obo/+Tm6P/l5+j/5ujp/+jq6//t7u//8vPz//b29v/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//T09f/09PX/9PT1//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz19fb/6uvs/+rr7P/p6uv/6urr/8XGx/+ztLX/np+g/6anqP+8vb7/n6Cg/6ip + qf+4ubr/wMHB/7Cxsf+mp6j/uru8/7Cxsv+vr7D/pqeo/8DBwv+vsLH/uru8/6Giov/P0NL/4OLi/+Hi + 4v+vsLL/s7S2/72+v/+8vb7/tba3/7S1tv+ur7D/wMHC/72+v//e3+D/3t/g/97f4P/e3+D/3t/g/97f + 4P/e4OH/3+Dh/9/g4f/f4eL/3+Hj/+Di4//h4uT/4uPl/+Lk5f/j5eb/5Obn/+bn6P/n6er/6uvs/+/v + 8P/z9PT/9vf3//f3+P/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3 + +P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPT09P/p6en/6Ojp/+fo + 6P/m5+f/wsLD/52dnv+wsbH/zc7O/8XGxv+tra7/oKGh/6usrP+lp6f/wsPD/8LDw//Cw8P/wMDB/8zM + zf+3t7j/u7y8/8XFxv/Iycr/uLm6/8/Q0f/c3d3/1tfX/6qrrP+rrKz/x8jI/8vMzP+8vb3/xcbH/7/A + wf/Fxsf/y8zN/9na2//a29v/2tvc/9rb3P/b3Nz/293d/9zd3v/d3t7/3t/f/97g4P/f4OH/4eLj/+Lj + 5P/j5OX/5ebn/+bn6P/n6On/6Orr/+rs7P/t7u//8fHy//T19f/29vf/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9PT0//T09P/09PT/9PT0//T0 + 9P//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1dBQAAABgAAABM8/T0/+jo6v/n5+n/5ufo/+Xm5//g4eH/z8/Q/+Pk5f/j4+X/3N3e/9zc + 3v/c3d7/1dXW/8/P0P/f4OH/39/g/97e4P/d3t//3d7e/9jZ2f/c3d3/29zd/9vb3P/b29z/2trc/9ra + 3P/a2tv/z9DQ/9XW1v/Y2Nn/2Nna/9fY2v/Y2Nr/19jZ/9jZ2v/Z2tr/2trb/9rb2//a29z/29zd/9zd + 3v/d3t//3t/g/9/h4f/h4uP/4uPk/+Pl5f/l5uf/5ufo/+fo6f/o6uv/6evr/+rr7P/r7e3/7e7v//Dx + 8v/z9PT/9vb2//b39//39/j/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//X19f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz19fX/6enr/+jp + 6v/n6On/5ufo/+Xm5//Z2dr/y8zM/9jZ2v/Y2dr/4uLj/9XW1//Kysv/0NHR/9DR0f/Fxsf/zs7P/8rK + y//IyMn/ysvM/8PExP/Pz9D/1tfY/8PExf/Q0dL/0tPU/8nKy//R0dL/xcXG/9PT1P/T09T/29vc/9vc + 3f/c3N7/3N3e/9bX2P/R0tP/1NXW/8fHyP/Z2tr/1dbX/+Tl5v/l5uf/5ufo/+fo6f/o6er/6err/+rr + 7P/r7O3/7O3u/+zu7v/s7u//7e/v/+/w8f/w8fL/8/P0//X19v/29vf/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPj4+P/r7Oz/6uvs/+nq6//p6er/5ebn/7e3uP+oqan/t7i5/7q7 + vP/h4eL/tra3/6ipqf+2t7f/rKys/7Cxsf+jo6T/sLCx/6Kio/+7vLz/3d3f/7q6uv+xsrP/pqeo/6Sk + pP/Cw8P/tre4/6Giov/AwcH/tra3/8DBwv/e3+D/wMHC/9TV1f/j5OX/xsfI/8nKy//ExcX/xMXG/8zO + zv/Jy8v/6ers/+rr7P/r7O3/6+zu/+zt7v/s7u//7e7v/+3v8P/u7/D/7u/w/+7v8P/u8PH/8PHy//Lz + 9P/09Pb/9fb3//b3+P/39/f/9/f3//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8///////AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM+fr6/+3t + 7v/t7e7/7O3u/+vs7f/Ozs//u7u8/8nJyv/Jysv/oKCh/8rLy/+5ubr/xcbH/83Nzv/MzM3/09TU/8nJ + yf/Kysr/xsfH/9nZ2//g4eL/1dbX/9bX2P/HyMn/09TU/8nKyv/R0dL/zc3O/8vMzf/W19j/1NTV/+Tl + 5v/Nzs//5+jp/93e3//HyMn/xsfI/8nKy//Excb/ycrL/8jJyf/s7e//7O3v/+zu7//t7vD/7e/w/+7v + 8P/u7/H/7u/x/+7w8f/u8PH/7/Dx//Dx8v/y8/P/9PT1//X19v/29vf/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9f/19fX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/P/8vLz//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABeXl4FAAAAGAAAAEz7+/v/7u7w/+7u7//u7u//7e7v/+3t7//s7e7/6+zt/+rr + 7P/p6uv/6Onp/+fo6P/m5uj/5eXm/+Pj5f/i4uP/4OHi/93d3f/h4eL/4+Pk/+Tl5v/l5uf/5ufo/+bn + 6P/m5+n/5+jp/+jp6f/o6er/6erq/+nq6//p6uv/6evs/+rr7P/q6+3/6+zt/+zt7v/s7e7/7O3u/+zu + 7v/t7u//7e7v/+3v7//t7+//7e/v/+7v8P/u7/D/7vDw/+7w8P/u8PD/6uvs/+/w8f/w8fH/8fLz//P0 + 9P/19fX/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//Ly8//29vf/9vb2//b29v/29vb/9vb2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/P/8vLz//Ly8//y8vP//////wAAAEwAAAAYc3NzBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPv8 + /P/u7vD/7u7w/+3u8P/u7u//2dna/7u7vf/Jysv/uLm6/9PT1f/HyMj/tra3/9DQ0f/b3N3/xMTG/8DA + wf/Hx8j/q6ur/7m5uv/BwcH/09PU/87O0P/Oz9H/wMHB/9bX2P/p6uv/6err/8TFx//T1NX/2drb/9XW + 2P/Iycv/y8zN/9fY2f/Q0dP/3d7f/9vd3v/Y2tv/0dLT/9PU1v/Mzc//6+3u/93e3//u7/D/3d/g/9DR + 0v/a29z/2tvc/8zOz//P0dL/29zd/83Oz//X2Nn/29vc/97e3//e3t7/3d3e/+/v8P/i4uP/z8/P/9fX + 2P/e3t//xcXF/9zc3f/j4+P/9fX2/+Dg4P/U1NX/2NjZ/+Li4//X19j/3d3e/93d3v/i4uP/9PT1//T0 + 9f/09PX/8/P1//Pz9f/z8/X/8/P1//Pz9P/z8/T/8/P0//Pz9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//x8fP/8fHz//Hx8///////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXl5eBQAAABgAAABM/Pz8/+7u8P/u7vD/7u7w/+3u7//DxMX/rK2u/5WW + l/+8vL3/urq8/5SVlv+io6T/ra2u/6Kio/+ztLX/oqOj/7Cxsv+mpqf/ubm7/5ydnf+urrD/qKmq/7i5 + uv+bm5z/2drb/+nq7P/i4+T/t7i5/7e4uP+0tbb/v8DB/6mqq/+rrK3/wsPF/66vsP/Oz9H/xsfI/8XG + x/++v8H/sLGy/7Gys/+9v8D/vb6//9LU1f/Cw8X/r7Cx/72+v//GyMj/ra6v/8jJyv/Mzc//rKyt/8HB + wf+7vLz/yMjI/7CwsP+zs7P/6+vt/83Nzf+mpqf/v7+//8fHx//BwcL/sLCx/6Wlpf/Z2dn/xMTE/7+/ + v/+ysrP/vr6//7m5uv+7u7z/xsbH/8/Pz//09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx8v/x8fL/8fHy//////8AAABMAAAAGHNz + cwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAA + AEz8/f3/7+/w/+7v8P/u7vD/7u7v/9PT1P+3t7f/1NXW/+rr7P/c3N7/zs/P/8zMzf/AwcL/ubq7/+Dh + 4v/n5+j/5eXm/+Pk5f/j4+X/1tbX/+Lj5P/m5+j/6err/+Tk5f/n6On/6uvs/+rr7f/m5+j/6Onq/+fo + 6f/p6ur/5ebn/9TV1v/p6uv/6uvr/+zt7v/W19j/6uvs/+nq6//X2Nn/6+zt/+rs7f/Nz9D/7e/v/8rL + zP/Nz8//7O3v/+3u8P/p6uv/7e7v/+7v8P/s7e7/3N3e//Ly8//09PT/7u7v//Ly8//19fb/29vb/8/P + z//x8fH/8fHx//Hx8f/d3d7/zMzN//T09f/z8/P/2NjY//Hx8v/x8fL/8vLz//Hx8v/y8vL/29vb//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9fXwUAAAAYAAAATP39/f/u7u//7+/v/+7v8P/u7vD/7u7w/+7u + 7//t7u//7e7v/+7u7//t7u//7e7v/+3u7//s7e7/7O3u/+zs7f/q6+v/6Ojp/+fn6f/o6On/6err/+rq + 7P/q6+z/6uvs/+vs7P/r7Oz/5+jp/9jZ2v/Z2tv/2Nna/+vs7v/s7e7/7O3u/+zt7v/s7e//7e7v/+3u + 7//t7u//7e7v/+3u7//t7+//7u/w/+7v8P/u7/H/7u/x/+7v8f/u7/H/7u/x/+/w8f/w8fL/8vLz//Pz + 9P/09PX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly + 8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f//////AAAATAAA + ABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAA + ABgAAABM/f39/+7v8P/u7u//7+/v/+/v8P/Pz9D/1tbX/6OjpP+kpKX/qqqr/8fIyP/IyMr/s7O0/8zM + zf/l5eb/7Ozt/+rr7P/p6er/6Ojp/+np6v/q6uv/6uvs/+vr7f/U1db/uLm5/8PDxP/IyMn/rq6v/8fI + yf+0tbb/vL2+/7/AwP/P0NH/3+Dg/87P0P/Excb/xMXG/8HCw//R0tP/0NHR/+Tl5v+1trf/0tPV/8vM + zf/P0NH/09TU/8/Q0f++v7//yMnK//Hy8v/z8/P/9PT0//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz9/f7/7+/w/+7v8P/u7u//7u7v/8TE + xP+goKH/sbGy/5WWl/+mpqf/p6eo/7i4uf+fn6H/v7/A/+Tl5v/s7e7/6+vs/+np6v/o6er/6erq/+rr + 7P/r7Oz/6+zt/9PU1P+2t7j/wcLC/76+v/+6urv/u7y9/7u7vP+sra7/srKz/7W2t//b3N3/ysvM/7y9 + vv/DxMb/wMHC/8DBw//Fxsf/2Nna/6Chov+3uLn/xcbH/76/wf+6u7z/t7i5/7y9vv+1tbb/8fLz//Pz + 9P/z9PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/09PT/9PT0//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8PDx//Dw8f/w8PH//////wAA + AEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP7+/v/u7vD/7u7w/+7u8P/t7fD/3d3e/93d3v/X19n/7u7w/+3u7//t7e//7e3v/+3t + 7//t7u//7e3v/+zt7v/r6+3/6err/+np6//p6ev/6uvs/+vs7f/r7O3/6+zt/+vs7f/r7O7/6+zu/+vs + 7v/r7O7/7Ozu/+zt7v/t7e7/7e7v/+3u7//h4uP/7e7v/+3u7//t7u//7e7v/+3u8P/u7vD/1tfZ/+vs + 7v/u7vH/7u/x/+7v8f/u7/H/7/Dy//Hx8//y8vT/8/P1//Pz9f/z8/X/8/P1//Pz9f/z8/X/8/P0//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw + 8v/w8PL/8PDx//Dw8f/v7/H/7+/x/+/v8f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+/+7u7//u7vD/7u7w/+7u + 8P/t7fD/7e3w/+3t7//u7u//7u7w/+3u8P/t7e//7e3v/+3t7//s7e//7O3u/+vr7f/q6uz/6ers/+rq + 7P/q6+3/6+vt/+vs7f/r7O3/7Ozt/+zs7f/s7O7/6+zu/+zs7//s7e//7O3v/+zt7//s7e//7O3v/+3u + 7//t7u//7e7v/+3u8P/t7vD/7u7w/+7v8P/u7/D/7u/w/+7v8P/u7/D/7u/x/+/v8f/w8PL/8fHz//Ly + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly + 9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz+/v//7u7w/+7u7//u7vD/7u7w/+3u8P/t7vD/7e3w/+3t7//t7e//7e7v/+3u + 8P/t7fD/7e3v/+3t7//s7O7/6+zt/+vr7P/q6+z/6+vt/+vr7f/r7O7/6+zu/+vs7v/r7O7/7Ozu/+zt + 7v/s7e7/7O3u/+zt7//s7e//7O3v/+3t8P/t7fD/7e3w/+3u8P/t7vD/7e7w/+3u8P/t7vD/7u/w/+7v + 8P/u7/D/7u/w/+7v8f/v7/H/8PDy//Hx8v/y8vP/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly + 9P/y8vT/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8fHz//Hx + 8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx//Dw + 8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/D//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATP/////u7u//7u7v/+7u + 7//u7u//7u7v/+7u7//t7u//7e7v/+3t7//t7e7/7e3u/+3u7//t7u//7e3v/+zt7v/s7O3/6uvt/+vr + 7f/r6+z/7Ozt/+zs7v/s7O7/7Ozu/+zs7v/s7O7/7Ozu/+zt7v/s7e7/7e7u/+3u7v/t7u7/7e7v/+3u + 7//t7u//7e7v/+3u7//t7vD/7e7w/+7u8P/u7vD/7u/w/+7u8P/u7vD/7u/w/+7v8f/w8PL/8fHy//Hy + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f/w8PH/8PDx//Dw + 8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u + 7///////AAAATAAAABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAUlJTBQAAABYAAABK/////+7u7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7e7v/+3u + 7//t7e7/7e3u/+3t7v/t7u7/7e3u/+zs7v/r7O3/6+zt/+vs7f/r7O3/7Ozt/+zt7f/s7e3/7O3u/+zt + 7v/s7e7/7O3u/+3t7v/s7e7/7e3u/+3t7//t7e//7u7v/+7u7//u7u//7u7v/+7u8P/u7/D/7u/w/+7v + 8P/u7/D/7u/w/+7v8P/v7/H/7/Dx//Dx8v/x8fP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLz//Ly8v/y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v//////8AAABKAAAAFmNjYwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOTk4EAAAAFAAAAEP/////7+/w/+7u + 7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7u7v/+3u7//t7u//7e3u/+3t7v/t7e7/7e3u/+3t + 7v/s7e7/7Ozu/+zs7f/s7O7/7O3u/+zs7f/s7e7/7e3u/+3t7v/t7e//7e3v/+3t7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//t7u//7e7v/+7u7//u7u//7+/w/+/w8P/v8PD/7/Dw//Dw8f/w8fH/8fHy//Ly + 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8fHx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw + 8f/w8PH/8PDw/+/v8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v/+7u + 7//v7/D//////wAAAEMAAAAUXFxcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAEpKSwMAAAAOAAAAMf/////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/v7//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f7//f7+//7+/v/+/v7//v7+//7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAAMQAAAA5ZWVkDAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGASwsLAcAAAAYAAAALwAA + AD8AAABEAAAARQAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEUAAABEAAAAPwAAAC8AAAAYMDAxB1RUVAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVAi4uLwYYGBkNAAAAEgAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAASGRkZDTAwMQZbW1wCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAVZW + VgFbW1sDX19fA2pqagNzc3MDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnMDcnNzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNycnMDcnJzA3JycwNycnMDcnJzA3Jy + cwNxcXEDZGRkA1xcXANZWVkBVFRUAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////////////////////////////////////////////////////////////////////////// + ///////////AAAAAAAAAD//////////+AAAAAAAAAAH//////////gAAAAAAAAAAf/////////wAAAAA + AAAAAD/////////8AAAAAAAAAAAf/////////AAAAAAAAAAAB/////////wAAAAAAAAAAAP////////8 + AAAAAAAAAAAB/////////AAAAAAAAAAAAP////////wAAAAAAAAAAAB////////8AAAAAAAAAAAAP/// + /////AAAAAAAAAAAAB////////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAB////////AAAAAAAAAAA + AAP///////wAAAAAAAAAAAAB///////8AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAA + AAAAAAAAP//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAP//////wAAAAAAAAAAAAAB//////8 + AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAB//////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAB/ + /////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAAP/////AAAAAAAAAAA + AAAAB/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAAP////wAAAAA + AAAAAAAAAAB////8AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAAA/////AAAAAAAAAAAAAAAAf/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////ygAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaARwc + HAIfHx8CISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIgICACICAgAiAgIAIfHx8CHBwcAhgYGAIUFBQBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADw8PAIjIyMIBwcHEAcHBxQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUBwcHEwYGBhEUFBQLJiYmBjExMQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQcAAAAiAAAAQgAAAFAAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUAAAAEgAAAA3AAAAIQwMDQ44ODgEMjIzAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uAhMT + Ew8/Pz9t/v7+//39/f78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8 + /P79/f3//f39//z8/f79/f3//f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39 + /f/8/Pz+/Pz8//z8/P/7+/v++vr7//r6+v/5+fn++Pj4//f39//19fX+9PT0//Ly8v/w8PD+7e3t/uPj + 4/i0tLTYVlZWkAcHCD4AAAAYJiYmBzo6OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAMjIyAhQUFBM/Pz93+/v8//X19v719fb/9fX2//X19v719fb/9fX2//X1 + 9v719fb/9fX2//X19v729vf/9vb3//b29v729vf/9vb3//b29/729vf/9vb3//b29//29vf+9vb3//b2 + 9//29vf+9vb3//b29//29vf+9vb3//b29//19fb+9fX2//X19v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw + 8f/v7/D+7e3u/+vr7P/p6er+5+fo/+Xl5v7h4eH/2trb/aOjo9EeHh5XAQEBHigoKAk8PD0BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk5AhcXFxM/Pz95+fn6/vT0 + 9f709PX+9PT1/vT09f709PX+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vT0 + 9f709PX+8/P0/vPz9P7y8vP+8fHy/vDw8f7v7/D+7e3u/uzs7f7q6uv+6Ojo/uXl5v7h4eL+29vc/tPT + 1P69vb3lLCwsaQAAACIrKysJPT0+AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X19v719fb/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//X19v/09PX+9PT1//T09f/y8vP+8vLz//Dw8f/v7/D+7u7v/+zs + 7f/q6uv+6Ojp/+fn5/7k5OX/39/g/9jY2f7Ozs//z8/Q8jU1NXUAAAAkKSkpCkBAQAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b29//29vb+9vb3//X19v/19fX+9PT1//T0 + 9f/z8/P+8vLz//Hx8v/w8PD+7u7v/+3t7v/r6+z+6enq/+fn6P7l5eb/4eHi/9zc3f7T09T/zMzM/9bW + 1/Q4ODh2AQEBJh8fHws8PDwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6//X19v729vb/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//29vb+9vb3//b29//29vb+9vb3//f3 + 9//29vb+9/f3//b29v/19fX+9fX1//X19f/09PT+8/Pz//Ly8v/x8fH+8PDw/+7u7v/s7Oz+6urq/+jo + 6P7m5uf/4+Pk/97e3/7Y2Nn/zc3O/9ra2/7R0dP0QkJDfAAAACcSEhILPT09AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v729vb+9vb2/vb29v729vb+9vb2/vb2 + 9v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/719fb+9fX2/vX19v709PX+8/P0/vLy + 8/7x8fL+8PDx/u7u7/7t7e3+6+vr/ujo6f7n5+f+5eXl/uHh4f7b29z+09PT/szMzf7o6On+1tbY91JS + UogAAAApERERDD09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9v729vf/9/f3//f39//29vf+9/f3//f39//29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9/f4//b2 + 9//29vf+9vb3//X19v/09PX+9PT1//Pz9P/y8vP+8PDx/+/v8P/t7e7+6+vs/+np6v7n5+j/5ubm/+Pj + 4/7e3t7/19fX/8rKyv7q6ur/39/h/9nZ2/lZWVqLAgICLBEREQ0/P0ACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vT09f719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9vb2/vb29v729vb+9vb2/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb2 + 9/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9fX2/vX19v709PX+9PT1/vPz9P7y8vP+8fHy/u/v + 8P7u7u/+7Ozt/urq6/7o6On+5ubm/uTk5f7f3+D+2dna/s7Oz/7l5eb+5+fp/t/f4f7a2tz4YmJjkwAA + AC0TExMNQUFBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9vb2//X1 + 9f719fb/9fX2//X19v729vf/9vb3//b29v729vf/9/f3//b29/739/f/9/f4//b29/739/j/9/f4//f3 + +P/29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9vb3//b29//29vf+9vb3//b29//29vf+9fX2//X1 + 9v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw8f/u7u/+7Ozt/+rq6/7o6On/5+fn/+Tk5f7h4eL/29vc/9HR + 0v7e3t//7u7v/+fn6P7f3+H/3Nze+3BwcKAAAAAwEhISD0FBQgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//X19v729vf/9fX2//Hx8v7y8vP/9PT1//T09f729vb/9vb3//b29/739/f/9/f3//b2 + 9/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+vr6//b29z+29vc/9vb3P/a2tr+2NjZ/9jY + 2f/Z2dn+2dnZ/9nZ2f/Y2Nn+2NjY/9jY2P/X19j+19fY/9bW1//V1db+1NTV/9PT1P/R0dL+0NDR/87O + z/7Nzc3/y8vL/8jIyf7Gxsb/wcHB/7i4uf7Kysr/9PT0/+3t7v7m5uj/39/h/9zc3vxvb3ChAwMDNBIS + EhBCQkIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vLy8/709PX+9fX2/vX1 + 9f729vb+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/tzc + 3f7X19j+4ODh/t7e3/7W1tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0dHS/tHR0v7Q0NH+0NDR/s/P + 0P7Ozs/+zs7P/s7Ozv7MzM3+y8vM/snJyv7Hx8f+xcXG/sPDw/6/v8D+u7u8/rOztP7AwMH+9PT1/vHx + 8v7t7e7+5ubo/t7e4P7b29z8dHR1pwEBATUTExMQQUFCAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9fX2//Pz9P709PX/9fX1//X19f719fb/9vb3//b29/729vf/9vb3//b29/739/j/9/f4//b2 + 9/739/j/9/f4//f3+P/29vf+9/f4/+Li4v/Ozs/+4eHh/93d3v/R0dH+zs7P/9LS0//T09T+09PU/9PT + 1P/T09T+09PU/9LS0//S0tP+0tLS/9HR0f/Q0ND+z8/Q/8/Pz//Ozs7+zMzN/8rKy/7IyMn/x8fI/8XF + xv7BwcL/vb2+/7a2t/6+vr//9PT0//X19f7x8fL/7e3u/+fn6P7e3uD/2trc/YGBgrMCAgI3EhISEjg4 + OQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9fX1/+zs7f7v7+//8fHx/+/v7/7x8fL/8vLy//Pz + 9P719fb/9fX2//b29/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+Dg4f/S0tL+39/f/97e + 3//U1NX+0tLT/9jY2f/a2tv+2trb/9ra2//a2tv+2trb/9nZ2v/Z2dr+2NjZ/9jY2f/X19j+1tbX/9bW + 1//V1dX+09PU/9LS0v7Q0ND/zs7O/83Nzf7Kysv/xcXG/729vv7Dw8T/9fX1//f39/719fX/8fHy/+3t + 7v7m5uj/3t7g/9nZ2/17e32wBgYGPAMDAxMwMDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb29v729vb+9vb2/vHx + 8v719fb+9vb3/vT09f719fb+9PT0/vb29v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9/f3/vf3 + 9/739/f+9/f3/t/f3/7b29v+19fY/t/f4P7X19f+09PU/tjY2P7c3Nz+3Nzd/tzc3f7c3N3+3Nzd/tvb + 3P7b29z+29vb/tra2/7Z2dr+2dnZ/tjY2P7X19j+1tbW/tTU1f7S0tP+0NDR/s/P0P7MzM3+yMjI/r+/ + v/7FxcX+9fX1/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e4P7X19n9fX1+sQMDAzsEBAQSMDAwBAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//b29v739/f/9vb3//Hx8f7x8fL/8vLz//Ly8v7z8/T/8/P0//Pz9P709PX/9vb2//b2 + 9/739/f/9/f3//f39/739/j/+Pj4//j4+P/39/f++Pj4/9/f3//i4uL+0dHR/+Dg4P/a2tv+1tbX/9bW + 1//b29z+3d3d/93d3f/c3N3+3d3d/9zc3f/b29z+29vc/9vb2//a2tv+2dna/9nZ2f/Y2Nn+19fY/9bW + 1v7U1NT/0tLS/9DQ0f7Ozs7/ycnK/8HBwv7Gxsb/9/f3//n5+f74+Pj/9/f3//X19f7x8fL/7e3u/+fn + 6P7e3uD/1tbY/oSEhbkEBAQ8AwMDFC8vLwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+vr6/7t7e3/7+/v//Dw + 8P7u7u7/8fHx//Dw8P7x8fH/9PT0//f39/739/f/+Pj4//f39/739/f/9/f3//f39//39/f++Pj4/9/f + 3//j4+P+1tbW/9zc3P/c3Nz+2tra/9bW1v/a2tr+3d3d/93d3f/d3d3+3d3d/93d3f/c3Nz+3Nzc/9zc + 3P/b29v+2tra/9nZ2f/Z2dn+2NjY/9bW1v7V1dX/09PT/9HR0f7Pz8//y8vL/8PDw/7Gxsb/+Pj4//n5 + +f75+fn/+Pj4//f39/719fX/8fHy/+3t7v7m5uj/3t7g/9XV1/5+fn+1BwcHPgMDAxM9PT4DAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb2 + 9v729vb+9vb2/vLy8v729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/t7e3v7j4+P+39/f/tPT0/7e3t7+3t7e/tfX1/7Z2dn+3d3d/t3d + 3f7d3d3+3d3d/t3d3f7c3Nz+3Nzc/tzc3P7b29v+29vb/tra2v7Z2dn+2dnZ/tjY2P7W1tb+1NTU/tPT + 0/7Q0ND+zc3N/sbGxv7Kysr++fn5/vr6+v75+fn++fn5/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e + 4P7T09b+eXl7sgICAjkSEhIQPT09AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+3t7f7s7Oz/7u7u/+3t7f7w8PD/8fHx/+/v + 7/7x8fH/9fX1//f39/74+Pj/+Pj4//f39/74+Pj/9vb2//b29v/29vb+9/f3/97e3v/j4+P+4+Pj/9DQ + 0P/f39/+4eHh/9vb2//X19f+3d3d/97e3v/e3t7+39/f/97e3v/d3d3+3t7e/93d3f/c3Nz+3Nzc/9vb + 2//a2tr+2tra/9nZ2f7X19f/1tbW/9TU1P7S0tL/z8/P/8rKyv7Ozs7/+vr6//v7+/76+vr/+vr6//n5 + +f74+Pj/9/f3//X19f7x8fL/7e3u/+fn6P7e3uD/0tLV/XNzdbAAAAA1ERERETw8PAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn + 5/7t7e3/7+/v//Dw8P7u7u7/8fHx//Dw8P7s7Oz/9PT0//f39/74+Pj/+Pj4//f39/74+Pj/9PT0//b2 + 9v/19fX+9fX1/93d3f/k5OT+5OTk/9XV1f/b29v+4uLi/97e3v/X19f+29vb/97e3v/e3t7+39/f/97e + 3v/e3t7+3t7e/97e3v/d3d3+3d3d/9zc3P/b29v+29vb/9ra2v7Z2dn/19fX/9bW1v7U1NT/0dHR/83N + zf7U1NT/+/v7//v7+/75+fn/+Pj4//b29v7z8/P/8PDw//Dw8P7y8vP/8vLz/+7u7/7n5+j/3t7g/9HR + 0/1jY2WiAgICMxAQEQ87OzwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6/vb29v729vb+9vb2/vT09P729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9vb2/t7e3v7k5OT+5OTk/uHh4f7Q0ND+4+Pj/uHh + 4f7Z2dn+2tra/t7e3v7f39/+39/f/t/f3/7f39/+3t7e/t7e3v7e3t7+3d3d/t3d3f7c3Nz+29vb/tra + 2v7a2tr+2dnZ/tfX1/7W1tb+09PT/tDQ0P7Ozs7+0tLS/s3Nzf7Hx8f+w8PD/sDAwP64uLj+tLS0/ri4 + uP6+vr7+vr6+/sfHx/7X19j+3t7f/uTk5f7Pz9H7W1tdmQAAAC0RERIMOzs8AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn5/7n5+f/6enp/+np + 6f7r6+v/7e3t/+rq6v7y8vL/9vb2//f39/74+Pj/+Pj4//f39/739/f/8vLy//Ly8v/z8/P+7+/v/93d + 3f/i4uL+5OTk/+Dg4P/S0tL+4uLi/+Tk5P/c3Nz+2NjY/93d3f/g4OD+4ODg/+Dg4P/f39/+39/f/9/f + 3//e3t7+3t7e/97e3v/d3d3+3Nzc/9vb2/7b29v/2tra/9jY2P7X19f/1tbW/9TU1P7R0dH/zc3N/8rK + yv7Hx8f/xMTE/8LCwv6xsbH/tra2/7q6uv6+vr7/uLi4/7q6uv7Dw8P/wMDA/76+vv7S0tL/1dXX+11d + XpYAAAAqERERDDs7PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b2 + 9v739/f/9fX1/+bm5v7u7u7/8PDw//Ly8v7v7+//8fHx//Dw8P7t7e3/8/Pz//f39/74+Pj/+Pj4//f3 + 9/739/f/8vLy//T09P/19fX+8PDw/97e3v/j4+P+5eXl/+Dg4P/Y2Nj+3d3d/+Xl5f/g4OD+2dnZ/9zc + 3P/g4OD+4eHh/+Hh4f/g4OD+4ODg/9/f3//f39/+39/f/97e3v/e3t7+3d3d/9zc3P7b29v/29vb/9ra + 2v7Z2dn/2NjY/9bW1v7U1NT/0tLS/9DQ0P7Ozs7/zMzM/8rKyv62trb/wMDA/8bGxv7Jycn/xsbG/8LC + wv7S0tL/0dHR/8zMzP7FxcX/w8PD/9LS0vpXV1eLAQEBKCgoKAo/Pz8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz95+vr6/vb29v729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vb2 + 9v739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vj4+P74+Pj+8/Pz/uDg4P7l5eX+5eXl/uHh + 4f7h4eH+1tbW/uXl5f7j4+P+2tra/tnZ2f7e3t7+4ODg/uDg4P7g4OD+4ODg/t/f3/7f39/+39/f/t/f + 3/7e3t7+3t7e/t3d3f7c3Nz+29vb/tra2v7a2tr+2dnZ/tjY2P7W1tb+1dXV/tPT0/7S0tL+0dHR/sfH + x/7BwcH+ycnJ/s/Pz/7Pz8/+zc3N/sjIyP7a2tr+29vb/tnZ2f7U1NT+zc3N/sXFxf7MzMz3RkZHewAA + ACA3NzcGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+fn5//X19f729vb/9PT0/+Dg + 4P7f39//4ODg/+Li4v7h4eH/5eXl/9/f3/7k5OT/7u7u//X19f719fX/9fX1//b29v719fX/6urq/+3t + 7f/s7Oz+6enp/9jY2P/d3d3+39/f/9ra2v/d3d3+1dXV/+Dg4P/i4uL+29vb/9bW1v/c3Nz+39/f/9/f + 3//f39/+39/f/9/f3//e3t7+3t7e/97e3v/d3d3+3t7e/93d3f7d3d3/3Nzc/9zc3P7b29v/2tra/9nZ + 2f7Y2Nj/19fX/9bW1v7U1NT/09PT/8DAwP7Kysr/zs7O/9TU1P7U1NT/0tLS/8zMzP7f39//4eHh/+Dg + 4P7e3t7/2dnZ/9TU1P7MzMz/ycnJ8iQkJVkPDw8RREREAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM+Pj559/f3//Pz8/7z8/P/8vLy/+Li4v7s7Oz/7+/v/+/v7/7t7e3/7+/v/+/v7/7o6Oj/7u7u//Ly + 8v7y8vL/8vLy//Ly8v7y8vL/7Ozs/+3t7f/u7u7+6+vr/9jY2P/c3Nz+39/f/9ra2v/d3d3+3Nzc/9jY + 2P/h4eH+3Nzc/9TU1P/W1tb+2dnZ/9ra2v/a2tr+2tra/9ra2v/Z2dn+2tra/9ra2v/a2tr+2tra/9vb + 2/7b29v/2tra/9nZ2f7Z2dn/2NjY/9jY2P7X19f/1tbW/9TU1P7U1NT/0NDQ/8HBwf7MzMz/09PT/9fX + 1/7W1tb/1dXV/8/Pz/7h4eH/5OTk/+Xl5f7j4+P/4eHh/93d3f7Z2dn/1dXV/omJirMAAAAiNTU1BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PT0//Dw8P7w8PD/7+/w/+bm5v7r6+v/6enp/+jo + 6P7r6+v/6enp/+jo6P7p6en/6+vr/+7u7v7u7u7/7e3t/+3t7f7t7e3/6urq/+np6f/q6ur+5ebm/9XV + 1f/Z2dn+29vb/9bW1v/Y2Nj+3Nzc/8/Pz//d3d3+29vb/9LS0v/MzMz+zs7O/8/Pz//Pz8/+0NDQ/9DQ + 0P/Q0ND+0NDQ/9HR0f/R0dH+0tLS/9LS0v7T09P/09PT/9PT0/7S0tL/0dHR/9HR0f7R0dH/0NDQ/8/P + z/7Ozs7/xcXF/8TExP7Pz8//2NjY/9nZ2f7Z2dn/1tbW/9DQ0P7j4+P/5ubm/+fn5/7m5ub/5eXl/+Pj + 4/7h4eH/3t7e/8/Pz+gAAAAwKysrCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM9PT158fLy/u7u + 7v7t7e3+6+vr/tra2v7V1dX+2NjY/tna2v7W1tb+3Nzc/tbW1v7b3Nz+5OTk/urq6v7q6ur+6urq/unp + 6v7p6en+4ODh/uHh4f7g4OD+2dnZ/s/Pz/7U1NT+1dXV/s7Ozv7R0dL+1dXV/sjIyP7BwcH+wMDA/rq6 + uv64uLj+urq7/ru8vP68vL3+vb29/r29vv6+v7/+vr6+/r+/v/7AwMD+wcHB/sLCwv7CwsL+wsLC/sLC + wv7CwsL+wsLC/sHBwf7AwMD+v7+//r6+vv69vb3+urq6/tLS0v7W1tb+29vb/tvb2/7b29v+2dnZ/tLS + 0v7l5eX+6Ojo/unp6f7p6en+6Ojo/ufn5/7l5eX+5OTk/uPj5PkAAAA6MjIyCzo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9PT158fHy/+3t7v7s7e3/6+zs/97e3v7n6Oj/6enq/+np6v7n6Oj/6Ojp/+jo + 6f7g4eH/5+jo/+nq6v7p6er/6enq/+jp6f7o6en/4uPj/+Tk5f/l5ub+2tvb/9XW1v/V1tb+2NjY/9LT + 0//V1tb+2dna/8vMzP/MzM3+y8zM/8fIyP/IyMn+y8zM/8zMzf/Mzc3+zc7O/83Ozv/Nzs7+zs7O/87O + zv/Pz8/+0dHR/9PT0/7U1NT/1NTU/9TU1P7T09P/09PT/9PT0/7S0tL/0dHS/9HR0f7Pz9D/ycnJ/9vb + 2/7a2tr/3d3d/97e3v7d3d3/29vb/9PT0/7n5+f/6urr/+vr6/7r6+v/6urq/+rq6v7p6en/6Ojo/+zs + 7P4AAAA/NjY2DEJCQgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7s7e//6+zu/9/g + 4v7j4+T/4uLk/+Dh4v7k5eb/4uPk/+Li5P7o6er/5ufp/+rr7P7q6+z/6uvs/+nq7P7p6uv/4uPk/+Lj + 5P/k5ef+1tjZ/9fX2P/W19f+2drb/9LT1P/U1df+2Nna/8rLzP/LzM3+zM3O/8fIyv/Jycv+zc7P/83O + z//Mzc7+zc7P/87P0P/Nzs/+zs/Q/8/P0P/Q0ND+0tLT/9TU1P7V1db/1tbX/9bW1/7V1db/1dXV/9TU + 1P7T09T/09PU/9LS0/7S0tL/zc3N/9ra2/7b29z/3t7f/9/f4P7e3t//3d3d/9PT0/7p6en/7Ozs/+zs + 7f7s7O3/6+vs/+vr7P7q6uv/6urr/+/v8P4AAABBODg4DEdHRwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+zt/tfY2f7Y2dr+2tzd/t3e4P7X2Nn+3+Dh/tjZ2v7V1tj+4+Xm/urr + 7f7r7O3+6+zt/uvs7f7q6+z+4OHi/uLj5P7g4eL+1dfY/tXW2P7U1tf+1dbX/s7P0f7U1db+1tjZ/srL + zf7LzM7+ycvN/sXHyf7Hycr+y83O/szNz/7Nzs/+zM3P/s3O0P7Nzs/+zs/R/s/Q0f7S0tP+09PU/tXV + 1v7X19f+19fY/tfX2P7X19f+1tbW/tXV1v7V1dX+1NTU/tPT0/7T09P+0dHR/tjY2f7c3N3+39/g/uDg + 4f7g4OD+39/g/tTU1f7q6ur+7u7u/u/v7/7u7u/+7e3u/u3t7v7s7O3+7Ozt/vHx8v4AAABBOTk5DElJ + SQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+3u7/7t7vD/7e7v/+Xm5v7r7O3/7O3v/+zt + 7/7s7e7/6+zu/+vs7v7o6uv/6uvt/+vs7f7r7e7/6+3u/+vs7f7q6+z/5ujp/+fo6v/o6uv+3N3e/9rb + 3f/Z29z+2drc/9XX2P/Z293+3N3f/87P0f/P0NL+z9DR/8rLzf/Mzc/+z9DS/87Q0v/O0NL+z9DS/8/Q + 0v/P0NH+z9DS/9DR0v/T1NT+1tbX/9fX1/7Y2Nj/2NjZ/9jY2f7Y2Nn/19fY/9bW1/7W1tf/1dXW/9XV + 1f7U1NT/0dHS/9nZ2v7e3t7/4eHh/+Hh4v7h4eL/4ODg/9bW1v7s7Oz/7+/v//Hx8f7w8PD/7+/w/+/v + 8P7u7u//7u7v//Pz9P4AAABBOjo6DEpKSgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 7/7t7/D/7O3u/93f4P7c3d//3d/g/9zd3/7g4uP/4OHj/97f4f7g4eP/5efo/+vs7f7r7O3/6+zt/+rr + 7P7p6+z/4OLj/+Lk5f/h4uT+1dfY/9XX2P/V19n+1dfZ/8/Q0v/U1db+19na/8vMzv/Lzc7+yszO/8TG + yP/Jy8z+ztDR/83P0P/Nz9D+zM7P/83P0P/NztD+zs/Q/8/Q0f/U1NT+19fX/9jY2f7Z2dn/2dna/9nZ + 2v7Z2dn/2NjZ/9jY2P7X19j/1tbX/9XV1v7V1db/09PT/9ra2v7f3+D/4uLi/+Pj4/7i4uP/4eHi/9fX + 1/7t7e3/8PDw//Ly8v7y8vL/8fHx//Dw8f7w8PH/7+/w//X19f4AAABBOjo6DEtLSwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7O3u/tLT1f7b3N3+3d7f/t/h4v7Y2dv+3uDh/tja + 2/7b3d7+4+Xm/urs7f7q7Oz+6uvt/unr7f7p6+z+3N3e/t3e4P7e3+H+1NbX/tTV1/7P0dL+1dfY/s/R + 0v7U1df+19ja/sjKy/7MztD+ysvN/sbHyf7Iysz+zc/R/szNz/7Mzs/+zM7P/s3O0P7Oz9D+zs/R/tDR + 0v7U1NX+19fX/tnZ2v7Z2dr+2trb/tnZ2v7Z2dr+2dna/tnZ2f7Y2Nn+2NjY/tfX2P7W1tf+09PU/tra + 2/7g4OD+4+Pk/uTk5P7j4+T+4uLj/tfX2P7t7e7+8fHx/vPz8/7z8/P+8/Pz/vHx8v7x8fL+8fHy/vf3 + 9/4AAABBOjo6DEtLSwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+7v7/7u7/D/7e7v/+jp + 6/7s7e//7O3v/+vt7v7s7e//6+3u/+vs7v7p6uv/6+zt/+rs7f7q7O3/6uzu/+nr7f7q6+3/6Orr/+fp + 6//o6uz+2tzd/9zd3//b3N7+2drc/9bY2f/a3N3+293e/83P0P/Oz9H+yszO/8XHyf/Jy83+zM7P/8zO + 0P/MztD+zc7Q/83P0f/Oz9H+z9DR/9DR0v/V1db+2NjZ/9nZ2v7a2tr/2tra/9nZ2v7Z2dn/2NjY/9fX + 2P7X19j/19fX/9bW1/7W1tf/1NTU/9vb2/7g4OD/4+Pj/+Tk5f7k5OX/5OTk/9jY2f7u7u//8vLz//T0 + 9f709PT/9PT0//Pz9P7y8vP/8vLz//j4+P4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+7v7/7u7/D/7O3u/9rb3f7V1tf/2Nna/9bY2f7a3N3/3N7f/9TV1/7Y2tv/5ebo/+rs + 7f7q7O7/6uzu/+nr7f7p6uz/3+Hi/9rc3v/f4eP+0tPV/9XW2P/S1NX+09XW/8zOz//P0dL+z9HT/8LD + xf/Bw8T+vb/B/7q8vf+/wML+w8XH/8PExv/CxMb+wcPE/8PFx//Dxcb+xMbH/8bHyf/Ly8z+0NDQ/9HR + 0f7R0dL/0tLS/9HR0v7S0tL/0dHS/9HR0f7R0dH/0dHR/9HR0f7R0dH/zs7P/9bW1v7a2tv/3t7e/+Dg + 4f7i4uP/4+Pj/9nZ2f7t7e7/8/P0//X19v719fX/9fX1//T09P709PT/8/P0//n5+f4AAABBOzs7DExM + TAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u7/7t7vD+6+zu/tDR0v7f4OL+4OHj/uLj + 5f7c3d/+4OHi/uHi4/7c3t/+4+Tm/urr7f7p6+3+6evt/unq7P7o6uz+3N3f/uHj5P7e4OH+09XW/tTW + 1/7U1df+1dfZ/sTGyP7AwsP+v8DC/re5uv69v8D+vL6//rq7vf6/wMH+wsTF/r/Bwv6/wML+v8DC/r/A + wv6/wcP+wMLE/sPExv7Iycn+y8vM/s3Nzf7Nzc3+zc3O/s3Nzf7Nzc3+zMzN/svLy/7Ly8v+y8vL/svL + y/7Ly8z+ycnJ/s7Ozv7T09T+1dXW/tfX1/7X19f+19fY/tTU1f7h4eL+8fHy/vX19v719fb+9fX2/vX1 + 9f719fX+9PT1/vr6+v4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 8P7u7/D/7e7w/+bo6f7r7O7/6evs/+nq7P7r7O3/6evr/+nq6/7p6+3/6ers/+rr7f7q6+3/6uvt/+nr + 7P7p6+z/5ujp/+Xn6f/n6er+2Nrb/9nb3f/T1df+ycvM/7q8vf+5u7z+vL6//7e5uv+6vL7+ubu8/7a3 + uP+8vb7+vsDB/77Awv++wMH+vb/B/76/wf+9v8D+vr/B/76/wP/Fxcb+x8jI/8jIyf7Jycn/yMjJ/8jI + yP7IyMj/xsbH/8XFxv7Dw8T/wcHB/7+/wP6+vr7/vLy9/7u7vP6/v8D/wsLC/8TExf7Hx8f/x8fH/8fH + yP7U1NX/8PDx//b29/729vf/9vb3//b29v729vb/9fX2//r6+/4AAABBOzs7DExMTAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7u7/D/6+zu/9PU1f7R0tP/09XW/9TV1v7V1tj/2tvc/9HS + 1P7i5OX/5efo/+rr7f7q7O3/6evt/+nr7P7p6+z/2tze/9ze3//d3uD+xMbH/8XHyP/GyMn+xsfI/7S2 + uP+ztLb+uLq7/7S2uP+2t7n+srS1/7Cys/+0trf+ubu8/7m7vP+6vL3+uru9/7y9v/+8vb/+vL6//7/A + wf/DxMT+yMjI/8nJyv7Jycn/yMjI/8bGxv7Gxsf/xMTE/8LCw/7CwsL/vr6+/729vf68vLz/urq6/7m5 + uf69vb7/wMDA/8DAwf69vb3/u7u7/7q6uv7Y2Nn/8/P0//b29/739/j/9/f3//b29/739/f/9vb2//v7 + +/4AAABBOzs8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u8P7t7vD+6+zt/tXX + 2P7i4+T+5Obn/ufo6f7g4uP+4+Tl/uPl5/7e4OH+5ebo/unr7f7q6+3+6uvs/unr7P7o6uv+3uDh/t/h + 4v7g4uP+1dfZ/tfZ2/7X2dr+3N7f/tLU1f7MzdD+0dPV/svNz/7R09X+z9HT/szOz/7P0dL+0tTV/s/R + 0v7P0dL+z9HS/s/R0/7Q0tP+0tPV/tXX1/7d3d7+4uLi/uTk5f7g4OD+29vc/tjY2f7W1tf+1tbW/tTU + 1P7T09T+1NTU/tXV1v7U1NX+0dHR/tHR0f7Y2Nj+29vc/tzc3f7c3Nz+2dna/tfX1/7y8vP+9vb3/vf3 + +P739/j+9/f4/vb29/729vb+9vb2/vz8/P4AAABBPDw8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+3u8P7t7/D/7O7v/+fo6v7o6ev/6Onq/+fp6v7o6uv/5+nq/+fo6v7n6Or/6Ors/+rs + 7f7q7O3/6uzt/+nr7P7p6+z/5ufp/+bo6v/h4+X+4OLj/9TW1//h4+T+4uTl/+Di5P/W2Nr+0dPV/87Q + 0v/U1tf+0NLU/87Q0v/S1NX+1NbX/9TX2P/T1df+1NbY/9PV1v/S1Nb+0tTV/9XW1//b3Nz+39/g/9/f + 4P7Z2dr/1NTU/9TU1f7V1db/1NTU/9HR0f7R0dH/0NDR/9HR0f7T09P/19fX/9fX1/7i4uP/5ubm/+fn + 6P7m5ub/3t7f/+np6v739/f/+Pj5//f3+P74+Pn/+Pj5//f3+P739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7t7/D/6uzt/87P0P7Nz9D/zc7P/9DR + 0v7Lzc7/09TW/8rLzf7U1df/3uDh/+rs7f7q7O3/6uzt/+nr7P7n6er/1tja/9PV1v/Z29z+19nb/8/R + 0//Nz9H+1dfY/9rc3f/Q0tP+yMrM/8PGx//MztD+y83O/8/R0v/R1NX+z9HT/8vNz//Iysz+ycvN/8fJ + yv/KzM7+y83P/87P0P/W19f+zc3O/8DAwf7AwMD/w8PD/8rKyv7Pz8//0dHS/9jY2P7Y2Nn/2NjZ/9jY + 2P7Z2dn/29vb/9vb2/7k5OX/5+fn/+fn6P7j4+T/4eHh//b29v74+Pj/+Pj5//f3+P74+Pn/+Pj5//f3 + +P74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u + 7/7t7u/+6+zt/trb3P7l5+j+6+3u/uvs7f7q6+z+6uvs/urr7f7d3uD+5+nq/urs7f7q6+z+6evs/unq + 7P7o6uz+6Onr/ufp6v7n6er+5+nq/ubo6v7a3N3+3d/g/t/h4/7c3uD+1NbX/snLzP7Q0tP+09XW/tPV + 1v7R1NX+0NLT/s7Q0f7O0NH+ztDR/s7Q0f7Lzc/+y83O/s7Q0f7V1tb+zM3N/sbHx/7BwcH+zs7O/tXV + 1f7V1dX+1NTU/tXV1f7U1NT+1NTU/tPT0/7T09P+19fX/tra2v7l5eX+5eXl/uXl5f7e3t7+8/Pz/vj4 + +P74+Pj++Pj4/vf39/739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//6+zt/+fp6v7g4uP/4eLj/+Hj4/7f4eL/4+Xm/+Pk + 5v7j5eb/5Obn/+Hi5P7l5+j/4uTl/+Hj5P7g4uP/5+jq/+jq6//o6uv+5efp/+Hj5f/g4uT+0NLU/9TW + 1//Y2tv+0tTW/8rMzf/Iysz+ys3O/8zP0P/Nz9D+y83P/87Q0v/R09T+0dPU/9DT1P/S1NX+0dPV/9XW + 1//U1dX+0dHR/8nJyf7ExMT/09PT/9nZ2f7Z2dn/2dnZ/9jY2P7a2tr/2NjY/9nZ2f7W1tb/09PT/9bW + 1v7k5OT/5OTk/9/f3/7s7Oz/9/f3//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//5+np/8vM + zf7Lzc7/zM7P/9XW1/7P0dL/z9DS/8/R0v7Q0tP/09XW/9HS1P7Y2dv/1dbX/9LU1v7Y2tv/5ujp/+jq + 6//o6uv+4ePk/9ze3//X2dv+1dfY/83P0f/P0dP+y87P/8jLzf/Cxcb+vL2//72/wP+9v8H+xMbI/8jK + zP/Jy83+y8zO/8rMzf/Mzs/+zM7P/8/R0v/P0NH+zMzN/8TExP6/v7//zs7O/9LS0v7T09P/0tLS/9PT + 0/7W1tb/1dXV/9XV1f7b29v/1dXV/9DQ0P7f39//4ODg/+Li4v729vb/+Pj4//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+3t/tzd3v7m6On+7O7u/uzt7v7r7e7+6+zt/urs7f7r7O3+6uzt/urr + 7f7p6+z+6evs/uXn6P7o6uv+6Orr/ujq6/7o6uv+5+nr/ufp6v7m6Or+5ujq/trc3f7Y2tz+1NbY/tLU + 1f7Iysv+ury+/re5uv69v8D+w8bH/sXIyf7Hycr+ycvN/srNzv7Lzc/+zc/Q/s/R0v7P0NH+zs7O/sTE + xP7ExMT+0tLS/tXV1f7V1dX+1NTU/tTU1P7T09P+0tLS/tDQ0P7Nzc3+0tLS/snJyf7V1dX+2NjY/vLy + 8v74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v7/7t7+//6uvs/+Lk5P7Y2tr/2drb/8/Q + 0f7Y2tv/3N7e/97g4f7b3d7/2tzd/+fp6v7q7O3/6uvt/+nq7P7o6uv/4ePk/97f4f/e4OL+3uDh/9/h + 4v/d3+H+5Obn/+Di5P/P0dP+zdDR/83P0P/Hysz+vsDC/7S2t/+ytLX+s7W2/7S2t/+1t7j+ubu8/72/ + wP/AwsP+wsXG/8fJyv/Gx8j+y8vL/8DAwP7BwcH/zs7O/9DQ0P7Pz8//zc3N/8zMzP7Ly8v/ysrK/8nJ + yf7Gxsb/xsbG/8fHx/7U1NT/5+fn//f39/75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v + 7/7u7+//6Onp/8bHyP7Mzc7/09TV/9DS0v7Y2tr/1dfY/9PV1v7X2dr/19na/+fo6v7q7O3/6evs/+nq + 7P7n6er/19ja/9ja3P/d3+D+3N7f/9nb3P/b3d/+3uHi/93g4f/Y2tv+yczN/8fJy//JzM3+xcfJ/8HD + xf/AwsT+v8HD/7y+wP+8vr/+vb/B/77Awv++wML+wcPE/8fJyv/Iycr+0tLS/8nJyf7Nzc3/1dXV/9bW + 1v7V1dX/1dXV/9TU1P7U1NT/09PT/9PT0/7T09P/0NDQ/8/Pz/7l5eX/9/f3//j4+P75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7e7u/uTl5v7r7e7+7O7v/uzt7v7r7e7+6uvs/uvt + 7v7r7O3+6uzt/urs7f7p6+z+6evs/ujq6/7p6+z+6Orr/ufp6v7o6ev+5+nr/ubo6f7m6On+5ujp/uXn + 6P7l6On+3N7g/tTX2P7S1Nb+0dPV/tDS1P7Q0tT+0tTW/tLV1v7R1NX+0NLU/s/R0/7Nz9D+y83O/srM + zf7Jysv+1NTU/tXV1f7g4OD+5eXl/ubm5v7l5eX+4+Pj/uLi4v7i4uL+4uLi/uHh4f7i4uL+4uLi/uPj + 4/75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+7v7/7u7/D/6uvr/9nb + 2/7Q0dL/0tTU/9DS0v7T1db/0dPU/9PV1v7T1db/5Obn/+rs7f7q7O3/6uvt/+nr7P7p6+3/4ePk/+jq + 7P/n6uv+5+nr/+fp6//m6Or+5ujq/+bo6f/l6On+5ejp/+Xo6f/k5+j+4+Xn/+Hk5f/f4uP+3N7g/9nb + 3f/X2dv+19nb/9ja3P/Z293+2dvc/9rb3f/W19j+39/f/+Xl5f7x8fH/9PT0//T09P719fX/9/f3//j4 + +P75+fn/+fn5//n5+f76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fPz/u7v8P7t7+/+6Onq/sLDxP7Q0dL+09XV/tDS0v7b3N3+1tjZ/trb3P7Y2dr+5Obn/urs + 7f7p6+z+6evs/unr7P7o6+z+2dvd/ujq6/7o6uv+5+nq/ubo6v7m6On+5ujq/ubo6v7l6On+5efp/uTn + 6P7k5uj+5Obo/uPm5/7j5ef+4+Xn/uPl5/7j5ef+4OLk/tve3/7X2tv+2Nrb/tvd3v7l5uf+8/Pz/vf3 + 9/76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vn5+f75+fn++fn5/vn5+f75+fn++fn5/vn5 + +f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v8P7u7/D/7u/w/+7v8P7t7/D/7e/v/+zu + 7v7s7u//7O3u/+zt7v7s7e7/6+3u/+rs7f7q7O3/6evt/+nr7P7p6+3/6evs/+jq7P/n6ev+5+nr/+fp + 6v/m6er+5+nq/+bo6v/l5+n+5efp/+Xn6f/k5uj+5Obo/+Tm6P/j5ef+4+bn/+Pm5//i5eb+4+bn/+Pm + 5//j5ef+3+Lj/9fZ2//t7/D+9vb3//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6 + +v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v + 8P7u8PD/7u/w/8nLy/7R0tP/x8nJ/83Oz/7Ky8z/yszN/8/R0v7X2dr/6evs/+rs7f7q7O3/6uvt/+rr + 7f7W2Nr/3uDh/9XX2P/h4+X+1tja/+bo6f/n6er+5unq/+bo6v/l5+n+5efp/+Tn6f/j5uj+5Obo/+Pm + 6P/j5ef+4+Xn/+Pl5//i5eb+4+Xn/+Pm5//j5ef+4+bn/+Xn6P/t7+/+9vb3//v7+/77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkaGhM9PT558vP0/u7v8P7u7/D+6err/t3e3/7W19j+4eLj/tze3v7f4OH+3+Dh/uDi + 4/7i5OX+6uvs/urs7f7q7Oz+6uvt/urr7f7d3+D+5efo/trc3f7n6ev+293e/ufp6v7m6Or+5ujq/ubo + 6f7l5+n+5Ofo/uTm6P7j5uj+4+bn/uPm5/7j5ef+4+Xn/uLl5/7i5eb+4uXm/uLl5v7i5eb+4+bn/uXn + 6f7s7u/+9vb2/vr7+/77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v75+fn++fn5/vn5 + +f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9PT558/T0/+/w8P7v8PD/7u/w/+Tl + 5v7q6+z/6err/+vs7f7t7u//7O7v/+zu7v7s7u//6+3u/+vs7f7q7Oz/5+nq/+bo6f7e4OH/5efo/+bo + 6f/m6Or+5efp/+Xn6f/l5+n+5Obo/+Tm6P/j5uf+4uTm/+Ll5v/i5Ob+4uTm/+Lk5v/f4uT+4OPk/+Pl + 5//i5eb+4+Xn/+Ll5v/i5eb+4+Xn/+Xn6f/s7e7+9fb2//r7+/78/Pz/+/v7//r6+v77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahka + GhM9PT558/T0/+/w8f7v8PH/6uvs/9TW1v7Cw8T/z9DR/+rr7P7t7u//7O7v/+zu7/7s7u//7O7u/+vt + 7f7n6er/1dfX/9PU1v7Nz9D/2tzd/93g4f/X2dv+0dPV/9XX2f/V19n+1NbY/+Di5P/W2dr+2dzd/9ja + 3P/c3+H+3eDh/9nb3f/c3+H+3N/h/+Ll5//i5eb+4uXn/+Pl5//i5eb+4+Xn/+Xn6P/r7e7+9fX2//r6 + +v78/Pz/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5 + +f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T0/u/w8f7v8PD+6+zt/uPl5f7b3N3+293d/uvs + 7f7t7u/+7O7v/uzu7/7s7u7+6+3u/uvt7v7p6+z+3uDg/t7g4f7f4OL+5efo/uLk5f7h4+T+5efo/uTm + 5/7k5uf+5Obo/uXn6f7g4uP+4ePl/uDj5P7i5ef+4uTm/uHk5f7g4uT+4ePl/uHk5v7i5Ob+4uTm/uLk + 5v7i5eb+4+Xn/uXn6P7r7O3+9PX1/vr6+v77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6 + +v75+fn++fn5/vn5+f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf3 + 9/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w + 8f7v8PH/7u/w/9/g4f7i4+T/4eLk/+Tm5/7j5eb/5Obn/+Lj5P7g4eL/3+Hi/+Di4/7r7e7/6+zt/+rs + 7f7q7O3/6evt/+Tm5//i5OX+4uTl/93f4f/c3uD+3+Hj/+Hj5f/j5ef+4+bn/+Hj5f/g4+T+4OPl/+Hk + 5v/h5Ob+4OPl/+Dj5f/f4uT+4OPl/+Dj5P/f4uT+4eTl/+Tn6P/q7O3+8/T1//n6+v77+/z/+/v7//r6 + +v77+/v/+/v7//r6+v76+vv/+vr6//r6+v76+vr/+vr6//n5+f75+fr/+fn6//n5+f75+fn/+fn5//j4 + +P74+Pn/+Pj5//j4+P74+Pj/9/f4//f39/739/j/9/f4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w8f7v8PH/7O3t/8fIyf7Hycn/ysvM/8LExP7Gx8j/xMbH/8nL + zP7Bw8T/zs/Q/9bY2f7r7e7/6+zt/+rs7f7q7O3/6evs/9ja2//X2tv+0tTV/9bY2v/X2dv+09bX/9XX + 2f/a3d7+3+Lj/9nc3f/a3N7+2Nvd/9zf4P/g4+X+3N/h/9nc3v/Z3N3+2tze/9jb3f/Y293+3+Hj/+Tm + 6P/q6+z+8/T0//n5+f77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+fn5//n5 + +f75+fn/+fn5//j4+f75+fn/+Pj4//f3+P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//z8 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/u/w8f7v8PD+7u/w/trc + 3P7o6er+7e7v/uzt7v7s7e7+7O3u/uzt7v7r7O3+6uzt/urr7P7r7e7+6+zt/urs7f7q6+z+6evs/uLk + 5f7g4+T+6Orr/ufp6/7m6Or+5ujp/ubo6v7l6On+4+bn/uPl5/7j5uf+4+bn/uLl5/7g4+T+3uDi/uDj + 5f7h5Ob+4uTm/uHk5v7i5Ob+4uXm/uTm6P7p6+z+8/P0/vj4+P76+vr++vr6/vr6+v76+vr++vr6/vn5 + +f75+fn++fn5/vn5+f75+fn++fn5/vj4+P74+Pj++Pj4/vj4+P74+Pj++Pj4/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vb29v729vb+9vb2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahoa + GhM+Pj558/X1/+/w8f7v8fH/7u/w/9nb2/7X2dn/3t/g/9jZ2v7W19j/zc7P/+Tm5/7t7u//7O7v/+vt + 7v7r7e7/6+3u/+vs7f7c3t//2tzd/9rc3f/a3N3+3d/g/93f4P/i5OX+3uDi/+Hj5P/e4OL+3d/h/97h + 4v/g4uT+4OLk/93f4f/e4eP+3N/h/+Hj5f/i5ef+4uXn/+Ll5//i5eb+4+bn/+Tm6P/p6+z+8vPz//j4 + +P76+vv/+/v7//r6+v77+/v/+vr6//n5+f76+vr/+vr6//n5+f76+vr/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w8f7v8PH/6err/9DR0v7Exsb/y83N/8fJ + yv7Y2tr/y83N/9/h4f7t7vD/7O3v/+zt7v7r7e7/6+3u/+vs7f7S1NT/09XW/9TW1//Q0tP+0tTV/9PV + 1v/W2Nr+2dvc/9fa2//Z293+293f/9XX2f/a3d7+1tja/9vd3//b3d/+19rc/+Hj5f/i5ef+4uXn/+Pl + 5//j5ef+4+bn/+Tm6P/p6+z+8vLz//j4+P76+/v/+vr7//r6+v76+vr/+vr6//n5+f76+vr/+fn6//n5 + +f75+fn/+fn5//j4+P74+Pn/+Pj5//j4+P74+Pj/+Pj4//f39/739/j/9/f4//f39/739/f/9vb3//b2 + 9v729vf/9vb3//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/u/w + 8f7u8PH+7/Dx/uLk5P7o6er+7u/x/u3v8P7t7/D+7e/v/u3u7/7s7u/+7O3v/uzt7v7s7e7+6+zt/urs + 7f7i4+X+5+jq/urr7P7o6uv+5+nr/ujq7P7n6ev+5+nq/uPl5v7i5Ob+5Obn/uLk5v7j5ef+4+Xn/uDj + 5P7h4+X+3+Lk/uLl5v7j5ef+4+bn/uPm5/7j5ef+4+bo/uTm6P7p6uv+8fLy/vj4+P76+vr++vr6/vn5 + +v75+fn++fn5/vn5+f75+fn++Pj5/vj4+f74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vb2 + 9/729vf+9vb3/vb29/729vb+9vb2/vX19v719fb+9fX2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8v7v8PH/6uvs/8/Q0P7R09T/1NXW/8jJyv7V1tf/0dLT/83P + 0P7V1tf/6+zt/+zt7/7s7e7/7O3u/+vs7f7Y2tv/293f/9PV1v/X2dr+5Obn/9fZ2v/a3N3+1tja/+Di + 4//h4+X+4uTm/+Pl5//m6On+5efp/+Xn6f/k5+j+5Ofo/+Tn6P/k5uj+5Obo/+Tm6P/j5uj+5Obo/+Xn + 6P/o6uv+8fLy//f3+P75+fr/+vr6//n5+v76+vr/+vr6//n5+f75+fn/+fn5//j4+f75+fn/+Pj4//j4 + +P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//z8 + /P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8f7w8fH/6Onp/9vc + 3P7S09P/1dbX/9DR0v7P0dH/09TV/9XX1/7Z29v/6+zt/+zu7v7s7e7/7O3u/+vt7v7Z2tv/3uDh/9TW + 1//P0NH+ztDR/9/h4f/a3N3+2Nrb/97g4v/Z29z+3d/g/97g4v/m6Or+5ujp/+Xo6f/l5+n+5efo/+Tn + 6P/k5uj+5Ofo/+Tn6P/k5uj+5efo/+Xn6f/o6uz+8PHx//b39/75+fn/+vr6//n5+f76+vr/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//b2 + 9v729vb/9vb2//X19f729vb/9vb2//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/Ahoa + GhM+Pj559PX2/vDx8f7v8PH+7/Dw/u3u7/7t7u/+7/Dx/u7w8P7u7/D+7u/w/u3u7/7t7+/+7e7v/uzu + 7v7s7e7+7O3u/uvt7v7q6+z+6uzt/ubo6f7n6On+5+jp/unr7P7p6+z+5+nq/ujq6/7n6er+5+nq/ufp + 6v7n6er+5unq/ubo6v7m6On+5ejp/uXn6f7l5+n+5efp/uXn6f7l5+j+5efp/uXn6f7o6uv+7/Dx/vb2 + 9v75+fn++fn5/vn5+f75+fn++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/vf3 + 9/729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9fX1/vX19f719fX+9fX1/vz8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/+/w8f7v8PL/7u/x/9bX2P7Fxsf/wMHC/8/Q + 0f6/wcL/xsfI/8/Q0f7t7+//7e7v/+zt7/7s7e//7O7u/+vt7f7r7e7/6+zu/+rs7f/q7Oz+6uzt/+nr + 7P/p6uz+6ers/+jq7P/o6uv+6Orr/+jq6//n6er+5+nq/+bo6v/m6On+5ujq/+bo6v/l5+n+5efp/+Xn + 6f/l5+j+5ujp/+bo6f/o6uv+7/Dx//X29v74+Pn/+fn5//j4+f75+fn/+Pj5//j4+P74+Pn/+Pj4//f3 + +P74+Pj/9/f4//f39/739/j/9/f3//b29v729vf/9vb3//X19v729vf/9vb2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w + 8P7v8PH/6uvs/8nKy/7a29z/1dbX/9fY2f7Y2dv/yMnK/8LDxf7s7u7/7O3u/+vt7v7r7O7/6uzt/+vs + 7f7q7Oz/6uvs/+nr7f/p6uz+6ers/+nq7P/p6uv+6Orr/+jp6//n6ev+5+nr/+fp6v/n6Or+5ujq/+bo + 6v/m6On+5ujp/+Xo6f/l5+n+5efp/+Xn6f/l5+j+5efp/+bo6f/o6uz+7u/x//X19v74+Pj/+fn5//j4 + +P74+Pn/+Pj5//f3+P74+Pj/+Pj4//f39/739/j/9/f4//b29/739/f/9/f3//b29v729vf/9vb3//X1 + 9v729vb/9vb2//X19f719fb/9fX2//T09f719fX/9PT1//z8/P4AAABBOzs8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9Pj558vP0/uzt7v7t7u7+7O3u/uzt7v7r7O3+6+zt/uvr7P7q6+z+6ers/unq + 6/7o6er+3+Dh/ufo6P7n6On+5+jp/ubn6f7m6On+5ujo/ubn6P7l5+j+5ebo/uXm6P7d3uD+5Obn/uTm + 5/7k5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7k5uj+5Obo/uXn + 6f7o6uz+7/Dx/vX19v74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vf39/729vf+9vb3/vb2 + 9/729vb+9vb2/vX19v719fb+9fX2/vX19v719fX+9fX1/vT09f709PX+9PT1/vT09P709PT+8/P0/vz8 + /P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157/Dx/+nq6/7p6er/4ODh/6an + qP6qq6v/sbKz/6Gio/6vr7D/srO0/62ur/6qq6z/q6yt/7m6uv6mp6j/uru8/7W2tv6trq//1NbW/97f + 4P+wsrP+tba4/7i5uv+vsLH+s7W2/7m6u//Gx8j+3d7f/93e3//d3t/+3d7f/93f4P/e3+D+3uDh/9/h + 4v/g4uP+4ePk/+Lk5f/k5eb+5efo/+fp6v/r7O3+8fLy//b29v739/j/+Pj4//f3+P74+Pj/+Pj4//f3 + 9/739/f/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//X19f719fX/9fX1//T0 + 9f719fX/9fX1//T09P709PT/9PT0//z8/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZ + GRM9PT157u7v/+fo6f7m5+j/4OHh/7a3uP7S0tP/2NnZ/8fIyP7IyMn/tre3/8vLzP7X19j/09TV/9jZ + 2v7Nzs7/09TV/9XW1/7S09T/2NjZ/9nZ2v/BwsL+x8jJ/9TU1f/P0NH+0tPU/9LT0//V1tf+2dra/9na + 2//a29z+293d/9ze3//e3+D+3+Dh/+Hi4//i5OX+5OXn/+bn6f/n6er+6evr/+vt7f/v8PH+8/T0//b2 + 9v739/j/9/f4//f39/739/j/9/f3//f39/739/f/9vb3//b29v729vf/9vb2//b29v719fb/9fX2//X1 + 9f719fb/9fX1//X19f709PX/9PT1//T09P709PX/9PT0//Pz8/7z8/T/8/P0//z8/P4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157u/w/ujo6f7n5+j+5ebn/t7e3/7V1db+2NjZ/uHi + 4/7X19j+1NTV/tHS0v7Ozs/+zc3O/tDQ0f7Nzs7+zc7O/tbW1/7Nzc7+1NTV/s3Oz/7Q0dH+0NHR/tPT + 1P7a29v+2tvc/tvc3f7Y2Nn+09TU/s7P0P7X2Nn+3+Dg/uPk5f7l5uf+5ujo/ujp6f7p6uv+6uzs/uvt + 7f7s7e7+7e7v/u/w8f7z8/T+9fX2/vb29/729vf+9vb3/vb29/729vf+9vb2/vb29v729vb+9fX2/vX1 + 9v719fb+9fX2/vX19f719fX+9PT1/vT09f709PX+9PT1/vT09P7z8/T+8/P0/vPz9P7z8/T+8/Pz/vLy + 8/7y8vP+8vLz/vv7/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGhM+Pj558vLy/+vs + 7P7q6uz/5ubn/76+v/64uLn/p6eo/9ra2/6ztLX/uru8/6qrq/60tLX/qKip/6qqq/7IyMn/09PU/7O0 + tP6tra7/tLW2/7S0tf+zs7T+u7y8/7u7vP/W19j+yMjJ/+Dh4v/AwcL+xsfH/87Pz//Q0dL+0tPU/+rr + 7f/r7O3+7O3u/+zu7//t7vD+7u/w/+7v8P/u7/D+7/Dy//Lz9P/09fb+9vb3//b29/739/f/9/f3//b2 + 9v729vf/9vb3//X19v729vf/9vb2//X19v719fb/9fX2//T09f719fb/9fX1//T09f709PX/9PT1//Pz + 9P709PX/9PT0//Pz9P7z8/T/8/P0//Ly8/7z8/T/8/Pz//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhoaGhM+Pj559PT1/+3t7v7t7e7/6err/9PU1f7c3N7/zM3N/9jZ2f7Ozs//3t/g/9zc + 3f7d3d7/2NnZ/9vb2/7g4OH/4eLj/+Hh4/7f4OH/3+Dg/+Hh4v/c3d7+4uPl/+Lj5f/m5+j+5ufo/+fo + 6f/a29z+19jZ/9na2//c3d7+5OXm/+3u7//t7u/+7e/w/+7v8P/u7/D+7u/w/+7v8P/v8PH+8vLz//T0 + 9f/29vb+9vb3//b29v729vf/9vb3//X19v729vf/9vb2//X19v729vb/9fX2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//T09P709PX/9PT1//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7y8vP/8vLz//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj8/AhoaGhM+Pz959PX2/u7u8P7t7u/+6urr/snJ + y/7Q0NL+z9DR/s/Q0f7Ky8z+2dna/s7Oz/7MzM3+t7i4/sjIyf7Kysv+2tvc/tLT1P7P0NH+4OHi/ujp + 6/7R0tP+2tvb/tvc3f7R0tT+2drb/tbX2f7j5Ob+3d7f/tfZ2v7Y2tv+3+Hi/uTl5v7o6er+3+Hh/t3e + 3/7c3d7+2drb/tna2/7a29z+3t/f/uHh4v7j4+T+6enq/urq6/7a2tr+5OTl/tLS0/7n5+j+6+vr/unp + 6f7d3d7+39/g/uTk5f7g4OH+5OTl/vT09f709PT+9PT0/vPz9P7z8/T+8/P0/vPz9P7z8/P+8vLz/vLy + 8/7y8vP+8vLz/vLy8/7x8fL+8fHy/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959fX2/+7u8P7t7u//4+Pk/6ipqv6xsrP/wcHC/6Kjo/60tbb/pKSl/7Cwsv6ys7P/tbW2/8XG + x/6rq6z/u7y9/8DBwv65urv/4eLj/+Xm5//HyMn+u7y9/8fIyf+6u73+tLW3/8XGx//b3N7+vL2+/87P + 0f+5urv+x8jJ/7q7vP/Mzc7+wsTF/8HCw//Ky8z+ycrM/8/Q0f/Fxcb+vr+//8/Pz//AwMD+1dXW/9bW + 1/65ubn/yMjI/87Oz/63t7f/wcHC/9HR0v6/v8D/xMTF/8vLy/7Fxcb/y8vM//Pz9P7z8/T/8/P0//Ly + 9P7z8/T/8/Pz//Ly8/7y8vP/8vLz//Hx8/7y8vP/8vLy//Hx8v7x8fL/8fHy//v7+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fb2/+7u7/7u7vD/6+vt/9XV1v7o6er/6urs/+Li + 4/7j5OX/1dXW/+Tl5f7q6uv/5+fo/+Xm5/7i4uP/6Onq/+rq6/7p6ur/6uvs/+rr7P/m5+j+4+Tl/+rr + 7P/q6+z+5ufn/+vs7f/s7e7+5ufo/+zt7v/n6On+7e7v/+Xm6P/q6+z+4eLj/+nq7P/t7vD+7u/w//Dx + 8v/x8vP+7/Dw//T09f/z8/T+9PT1/+7u7v7p6en/9PT0//Pz8/7u7u//6+vs//Pz9P7s7O3/8/P0//Pz + 8/7z8/P/7Ozt//Pz8/7z8/T/8/P0//Ly8/7z8/P/8vLz//Ly8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw + 8f7x8fL/8fHy//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fX2/u7u + 7/7u7u/+6Ojq/tXV1v6ztLX+vL29/snKyv7LzM3+ycrL/uXl5v7r7O3+6erq/ujo6f7p6er+6urr/urr + 7P7X2Nj+ycrL/svLzP6+v8D+t7i5/sbHyP7R0tL+2Nna/tjZ2v7Q0dL+zc7P/tPU1f7a29v+1NXW/tXW + 2P7S09T+1dbX/t3e3/7Mzc7+4eLj/vLy8/7z9PT+9PT1/vT09P709PT+9PT0/vT09P709PT+9PT0/vPz + 9P7z8/T+8/P0/vPz9P7z8/T+8/P0/vPz8/7z8/P+8vLz/vLy8/7y8vP+8vLz/vLy8v7y8vL+8fHy/vHx + 8v7x8fL+8fHy/vHx8f7w8PH+8PDx/vDw8f7w8PH+8PDx/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7u//5OTl/6enqP61tbb/tLW1/7O0tP7AwMH/uru8/+Tl + 5v7s7O7/6urr/+jp6v7p6uv/6+vs/+vs7P7W19f/ysvL/8XGx//Iycr+xcbH/7/Awf/Excb+z9DR/9DR + 0v/Mzc7+zM3O/8nKzP/S09T+wcLC/7/Awf/MzM7+x8jK/8nKy//Iycr+29vc//Lz9P/z8/T+9PT1//T0 + 9f/z8/T+9PT1//Pz9P709PT/9PT0//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7z8/T/8/Pz//Ly + 8/7y8vP/8vLz//Hx8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7vD/7Ozu/+jo + 6v7p6ev/7e7v/+3t7/7t7e//7e3v/+3t7v7s7O7/6uvs/+np6/7p6uz/6+vt/+vs7f7r7O3/6+zt/+vs + 7v/r7O7+6+zu/+zt7v/s7e7+7e3v/+rr7P/t7u/+7e7v/+3u7//t7vD+6+vt/+zt7v/u7vD+7u/x/+7v + 8f/w8PL+8fHz//Lz9P/z8/T+8/P0//Pz9P/z8/T+8/P0//Pz9P7z8/T/8/P0//Ly8/7y8vT/8vL0//Ly + 8/7y8vT/8vLz//Ly8/7y8vP/8vLz//Hx8v7x8fP/8fHz//Hx8v7x8fL/8fHy//Dw8f7w8PL/8PDy//Dw + 8f7w8PH/8PDx/+/v8P7v7/H/7+/x//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959vb3/u3t7/7t7e/+7e3v/u3t7/7t7e/+7e3v/u3t7/7t7e/+7O3v/uzs7v7s7O7+6+vs/urq + 7P7q6u3+6+vt/uvr7f7r7O3+6+zt/uzs7f7s7O7+7Ozu/uzt7v7s7e/+7O3v/u3t7/7t7e/+7e7v/u3u + 7/7t7u/+7u7w/u7u8P7u7vD+7u/w/u/w8f7x8fL+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy + 8/7y8vP+8vLz/vHx8/7x8fP+8fHz/vHx8/7x8fP+8fHy/vHx8v7x8fL+8fHy/vDw8v7w8PL+8PDy/vDw + 8v7w8PH+8PDx/u/v8f7v7/H+7+/x/u/v8f7v7/D+7+/w/u7u8P7u7vD+7u7w/vr6+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPDw8AhkZGRM/Pz949vb3/+3t7/7u7u//7u7v/+3t7/7t7u//7e3v/+3t + 7v7t7e7/7e7v/+3t7/7s7O7/6+vt/+rr7P7r7Oz/7Ozt/+zs7f7s7O7/7Ozu/+zs7v/s7e7+7O3u/+3t + 7v/t7e7+7e7v/+3u7//t7e/+7e7v/+3u8P/t7vD+7u7w/+7u8P/u7vD+7u/w/+/w8v/x8fL+8vLz//Ly + 8//x8fP+8vLz//Ly8//x8fP+8vLz//Hx8/7y8vP/8vLz//Hx8v7y8vL/8fHy//Hx8v7x8fL/8fHy//Dw + 8v7x8fL/8fHy//Dw8f7w8PH/8PDx/+/v8f7w8PH/8PDx/+/v8f7w8PH/7+/w/+/v8P7v7/D/7+/w/+7u + 8P7u7vD/7u7v//r6+/4AAABAODg4DElJSQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU2AhYWFhE/Pz919vb3/+3t + 7v7u7u//7u7v/+7u7v7u7u//7u7v/+3t7v7t7e7/7e3u/+3t7v7t7e7/7O3u/+zs7f7s7O3/7Ozt/+zs + 7f7s7O3/7O3t/+zt7v/s7e7+7e3u/+3t7v/t7e7+7e7v/+3u7//t7u/+7e7v/+7u7//u7u/+7u/w/+/v + 8P/v7/D+8PDx//Dx8v/x8fL+8vLy//Ly8v/x8fL+8vLy//Ly8v/x8fL+8fHy//Hx8v7x8fL/8fHy//Hx + 8f7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//Dw8P7w8PH/8PDx/+/v8P7w8PD/7+/w/+/v + 8P7v7/D/7+/w/+7u7/7v7/D/7u7v/+7u7/7u7u//7u7v//r6+/4AAAA8MTExC0FBQQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMjIzARQUFA0/Pz9n/f39/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++fr6/vn5 + +v75+fn++fn6/vn5+f75+fn++Pn5/vj4+f74+Pn++Pn5/vj5+f74+fn++Pn5/vj5+f74+fn++Pn5/vj5 + +f75+fn++fn5/vn5+v75+fr++fr6/vr6+v76+vr++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vr6+/76+vv++vr7/vr6+/76+vv++vr6/vr6+v76+vr++vr7/v7+ + /v4AAAAtLi4uCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PQUAAAAYAAAALwAAADkAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA6AAAAOAAAACsGBgYRUVFRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABNTU4EMjIyBzAwMAk4ODgJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk5OTkJMTExCTw8PAdRUVECAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////+AAAAAAAP/// + ////4AAAAAAAD///////4AAAAAAAA///////wAAAAAAAAf//////wAAAAAAAAP//////wAAAAAAAAH// + ////wAAAAAAAAD//////wAAAAAAAAB//////wAAAAAAAAA//////wAAAAAAAAAf/////wAAAAAAAAAP/ + ////wAAAAAAAAAH/////wAAAAAAAAAD/////wAAAAAAAAAB/////wAAAAAAAAAA/////wAAAAAAAAAAf + ////wAAAAAAAAAAP////wAAAAAAAAAAH////wAAAAAAAAAAD////wAAAAAAAAAAB////wAAAAAAAAAAA + ////wAAAAAAAAAAAf///wAAAAAAAAAAAP///wAAAAAAAAAAAH///wAAAAAAAAAAAD///wAAAAAAAAAAA + B///wAAAAAAAAAAAB///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAA///4AAAAAAAAAAAA///8AAAAAAAAAAAB/////////////////////////////// + //////////////////////////////////8oAAAASAAAAJAAAAABACAAAAAAAGBUAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFAEXFxcBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGBgYARgYGAEYGBgBGBgYARcXFwEVFRUBERERAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA6OjoCFRUVDgUFBRoGBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYcBQUFFxYWFg0sLCwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIJNzc3X39/ + f6t/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/ + f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r35+fq9+fn6vfX19r3x8fK97e3uvenp6r3l5 + ea93d3eubW1toi8vL2cAAAAmHx8fCjQ0NAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEPb29vmPn5+f/19fb/9fX2//X1 + 9v/19fb/9fX2//b29v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//X19v/09PX/8/P0//Hx8v/v7/D/7e3u/+vr7P/o6On/5eXl/9zc + 3fyRkZHBERERQBcXFw86OjoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJycPb29vmvb29//09PX+9fX2//T09f719fb/9fX2/vb2 + 9v/29vf/9fX2/vb29//19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//X1 + 9v719fb/9PT1/vT09f/z8/T/8vLz/vHx8v/v7/D+7e3u/+vr7P7o6On/5eXm/t/f4P/V1db+srKy3Rwc + HFEYGBgQOzs8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvb29//19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//T0 + 9f/09PX/8vLz//Hx8v/w8PH/7u7v/+vr7P/p6er/5+fn/+Li4//b29z/z8/Q/8DAwegfHx9XGBgYEjo6 + OwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvb29//19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb2//X19v/19fX/9PT0//Ly + 8//x8fH/7+/v/+3t7f/q6ur/5+fo/+Tk5f/f3+D/1dXW/9DQ0P/Hx8jpJSUlWwoKChM2NjcCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//b29v729vf/9vb2/vb2 + 9//39/f/9vb3/vf39//29vf+9/f3//b29/739/j/9vb3/vb29//19fb/9PT1/vPz9P/x8fL+8PDw/+7u + 7v7r6+z/6Ojp/ubm5v/i4uL+29vb/87Ozv/i4uP+y8vN7jAwMGQJCQkVNzc4AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9fX2//X1 + 9v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+fn + 5//k5OX/3t7f/9PT0//f3+D/4uLk/8/P0e83NzhqCgoKFzo6OgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/19fb+9fX2//X19v719fb/9fX2/vb2 + 9//29vf/9vb2/vf39//29vf+9/f3//b29/739/j/9vb3/vf3+P/39/j/9vb3/vf3+P/29vf+9vb3//b2 + 9/729vf/9vb3/vb29//19fb/9PT1/vPz9P/y8vP+8fHy/+/v8P7s7O3/6urr/ufn6P/l5eX+39/g/9bW + 1//b29v+7Ozt/+Hh4/7T09XzPz8/cwoKChk7OzsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9PT1//Ly8//09PX/9fX1//b29v/39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/q6uv/3Nzd/9zc3f/a2tv/2NjZ/9jY2f/Y2Nn/2NjZ/9jY + 2P/X19j/1tbX/9bW1v/V1dX/09PU/9LS0v/Q0ND/zs7O/8vLzP/IyMn/xMTF/7y8vf/Dw8T/8/Pz/+vr + 7P/h4eP/1dXW9kFBQngKCgobPDw8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvf3+P/19fb+9fX2//X19f729vb/9vb2/vb29//29vf/9vb3/vf3+P/29vf+9/f4//b2 + 9/739/j/9vb3/vf3+P/m5ub/1NTV/t/f4P/V1dX+z8/P/9DQ0f7R0dH/0dHR/tHR0f/Q0NH/z8/Q/s/P + z//Nzc7+zc3O/8zMzf7Kysv/yMjJ/sXFxv/CwsP+vr6+/7e3uP+6urv+9PT0//Hx8v7r6+z/4eHj/tTU + 1vdJSUmACgoKHDo6OgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/29vf/8/Pz/+3t7v/x8fL/8PDx//Hx8v/09PT/9fX2//b29//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/m5uf/1NTU/+Dg4f/V1db/0tLT/9jY2f/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9fX2P/W1tf/1dXW/9TU + 1f/T09P/0NDR/87Ozv/MzM3/yMjJ/8DAwf/AwMH/9fX1//b29v/x8fL/6+vs/+Hh4//W1tj6SkpKgwMD + Ax4rKysFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vb+9fX2//T0 + 9f729vf/9fX2/vX19f/29vb/9vb3/vb29//29vf+9/f4//b29/739/j/9/f3/vf3+P/l5eX/2NjY/t7e + 3v/Z2dr+1NTV/9ra2/7c3N3/3Nzd/tzc3f/c3Nz/29vc/tvb2//a2tr+2dnZ/9jY2P7W1tf/1NTV/tHR + 0v/Pz9D+zMzN/8TExf/Dw8P+9vb2//j4+P729vb/8fHy/uvr7P/h4eP+0tLU+ExMTYYCAgIeKioqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+zs7P/v7+//7u7u//Ly + 8v/w8PD/8vLy//b29v/39/f/9/f3//f3+P/39/f/9/f3//j4+P/l5eX/4eHh/9bW1v/c3Nz/19fX/9jY + 2f/d3d3/3d3d/93d3f/c3N3/3Nzc/9vb3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9PT1P/R0dH/zs7O/8fH + x//ExMT/+Pj4//n5+f/4+Pj/9vb2//Hx8v/r6+z/4eHj/9PT1fpNTU6IAgICIC0tLQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9fX1//Ly8v/19fX/9fX1//X19f/29vb/9PT0//f3 + 9//4+Pj/+Pj4//j4+P/39/f/9/f3//j4+P/l5eX/4+Pj/9XV1f/e3t7/3Nzc/9fX1//c3Nz/3t7e/97e + 3v/d3d3/3d3d/9zc3P/c3Nz/29vb/9ra2v/Z2dn/19fX/9XV1f/T09P/0NDQ/8rKyv/IyMj/+fn5//r6 + +v/5+fn/+Pj4//b29v/x8fL/6+vs/+Hh4//Pz9L5SUlKhQoKChw3NzgEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvj4+P/29vb+9PT0/+rq6v7s7Oz/7Ozs/vDw8P/u7u7/8PDw/vb29v/39/f++Pj4//f3 + 9/729vb/9vb2/vb29v/k5OT/5OTk/tvb2//a2tr+4ODg/9jY2P7b29v/3t7e/t/f3//e3t7/3d3d/t7e + 3v/c3Nz+3Nzc/9vb2/7a2tr/2dnZ/tfX1//V1dX+0tLS/87Ozv/Ozs7++vr6//r6+v76+vr/+fn5/vj4 + +P/29vb+8fHy/+vr7P/h4eP+zs7R+UBAQH4JCQkbNjY2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4 + +P/39/f/9PT0/+/v7//09PT/9fX1//X19f/29vb/8vLy//f39//4+Pj/+Pj4//j4+P/29vb/9vb2//b2 + 9v/k5OT/5OTk/+Li4v/U1NT/4+Pj/9zc3P/a2tr/3t7e/9/f3//f39//3t7e/97e3v/e3t7/3d3d/9zc + 3P/b29v/2tra/9nZ2f/X19f/1dXV/9DQ0P/Q0ND/6Ojo/+Tk5P/f39//3Nzc/9PT0//V1dX/3Nzc/97e + 3v/o6Oj/4+Pk/8nJy/Y2NjdzCQkJFzU1NgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/29vb+9PT0/+np + 6f7t7e3/6+vr/vHx8f/t7e3/9PT0/vf39//39/f++Pj4//f39/709PT/9PT0/vX19f/g4OD/4+Pj/uLi + 4v/U1NT+4+Pj/+Dg4P7Z2dn/3t7e/uDg4P/g4OD/39/f/t/f3//e3t7+3t7e/93d3f7c3Nz/29vb/tra + 2v/Y2Nj+19fX/9TU1P/Q0ND+zMzM/8fHx/7CwsL/vr6+/q6urv+2trb+u7u7/7Kysv/AwMD+xMTE/87O + z/7KyszzNDQ0bAkJCRU1NTYCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+3t7f/y8vL/8vLy//Ly + 8v/z8/P/8PDw//b29v/39/f/+Pj4//f39//09PT/9fX1//b29v/h4eH/5OTk/+Pj4//c3Nz/3t7e/+Tk + 5P/a2tr/3d3d/+Dg4P/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/d3d3/3Nzc/9vb2//a2tr/2dnZ/9fX + 1//V1dX/0tLS/9DQ0P/Ozs7/xMTE/76+vv/Hx8f/ysrK/8DAwP/T09P/0tLS/8vLy//FxcX/xMTF8TEx + MmMWFhYSPT09AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf39//29vb+9PT0/+rq6v7s7Oz/6urq/vDw8P/r6+v/7+/v/vT0 + 9P/29vb+9vb2//b29v7y8vL/8vLy/vLy8v/e3t7/4uLi/uDg4P/e3t7+2NjY/+Pj4/7c3Nz/2dnZ/t/f + 3//g4OD/4ODg/t/f3//f39/+39/f/97e3v7e3t7/3t7e/t3d3f/b29v+29vb/9nZ2f/Y2Nj+1tbW/9TU + 1P7S0tL/w8PD/snJyf/R0dH+0tLS/8jIyP/d3d3+3t7e/9vb2/7V1dX/y8vL/r29veseHh5NLCwsCQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbm5umvT09P/09PT/7+/v/+Pj4//r6+v/6+vr/+vr6//r6+v/5+fn//Hx8f/z8/P/8/Pz//Pz + 8//t7e3/7Ozs/+/v7//a2tr/3d3d/93d3f/b29v/19fX/+Hh4f/d3d3/1dXV/9nZ2f/b29v/29vb/9vb + 2//a2tr/29vb/9vb2//b29v/29vb/9vb2//a2tr/2dnZ/9nZ2f/X19f/1tbW/9TU1P/R0dH/xMTE/8/P + z//W1tb/1tbW/83Nzf/h4eH/5OTk/+Pj4//g4OD/29vb/9TU1P+QkJC6CQkJGTo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvHx + 8f/v7+/+7Ozs/+Tk5P7l5eX/4+Pj/ufn5//l5eX/5+fn/uvr6//t7e3+7e3t/+zs7f7p6en/5+fn/ufn + 6P/V1dX/2dnZ/tfX1//W1tb+2dnZ/87Ozv7S0tL/yMjI/sXFxf/Gxsb/x8fH/sjIyP/IyMj+x8fI/8jI + yP7Jycn/ysrK/svLy//Kysr+ysrK/8nJyf/IyMj+x8fH/8bGxv7AwMD/yMjI/tXV1f/a2tr+2dnZ/8/P + z//j4+P+5+fn/+fn5/7m5ub/4+Pj/uDg4P/W1tbwAAAAKUBAQAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmu7v7//t7e3/6Ojo/9jY + 2P/g4eH/3+Dg/+Dh4f/e39//3N3d/+jo6P/p6er/6enp/+jp6f/i4uL/4eHh/+Hh4f/R0dH/1NXV/9PU + 1P/R0dL/1tfX/8fHyP/IyMn/w8TE/8TFxf/Hx8f/yMjJ/8nJyf/Jysr/ysrK/8vLy//Nzc3/z8/P/8/P + z//Pz8//z8/P/87Ozv/Ozs7/zMzM/8vLy//Gxsb/19fX/9vb2//d3d3/3Nzc/9LS0v/m5ub/6urq/+rq + 6v/p6en/6Ojo/+fn5//o6Oj9AAAAM0xMTQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/s7e//6uvs/+Pk5f/k5eb/4+Pk/+bn + 6P/k5eb/6Onq/+jp6//q6uz/6err/+nq6//l5uf/5OXm/+Hi4//V1tb/2NjZ/9bX2P/U1db/19jZ/8nK + y//Mzc7/x8jK/8vMzf/Nzs//zc7P/83O0P/Nzs//zs/Q/8/P0P/S0tL/1NTV/9bW1v/W1tb/1dXW/9TU + 1f/T09T/09PT/9LS0v/Ozs7/29vb/93d3f/f39//3t7f/9fX2P/j4+P/7Ozs/+zs7f/r6+z/6urr/+rq + 6//u7u7/AAAANlNTUwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8f/t7u/+5+jq/9fZ2v7f4OL/3t/g/uHi4//e3+D/2tzd/unq + 7P/r7O3+6+zt/+rs7f7j5OX/4ePk/t/g4v/T1db/1dbY/tTV1v/T1Nb+19jZ/8rLzP7LzM7/xsjK/svM + zv/Mzs//zc7Q/s3O0P/Nz9D+zs/R/9HR0v7U1NT/1tbW/tfX2P/Y2Nj+19fX/9bW1v/V1db+1NTV/9PT + 1P7R0dL/2dna/t7e3//g4OH+4ODh/93d3v/i4uL+7u7u/+/v7/7u7u//7e3u/u3t7v/w8PH+AAAANlZW + VgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7w8f/t7vD/7O3u/+Xm5//n6Or/5ufp/+jp6//n6Or/5+jp/+rr7P/r7e7/6+zt/+rs + 7f/o6uv/5+jq/+Pl5v/Y2dv/2dvc/9TW2P/X2Nr/2drc/8zNz//NztD/yMnL/83P0P/O0NL/ztDR/87Q + 0f/P0NL/z9DR/9LS0//W1tf/2NjZ/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbW/9XV1f/T09P/2trb/+Dg + 4P/i4uP/4eHi/9/f3//j4+P/8PDw//Hx8f/w8PH/7+/w/+/v8P/z8/P/AAAANldXVwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8P/t7+/+5ufp/9TV1v7b3d7/2drc/t3f4P/Z2tz/3N7f/unq6//q7O3+6uzt/+nr7f7d3uD/3N3f/tvd + 3v/Q0tP/0tPV/tLT1f/R09T+1dfY/8fJy/7Ky83/xsfJ/svMzv/MztD/zM7P/szNz//Nz9D+zs/R/9LS + 0/7W1tf/2dna/tra2v/Z2dr+2dna/9nZ2f/Y2Nn+19fY/9bW1/7U1NT/3Nzc/uHh4v/k5OT+4+Pk/+Hh + 4f/k5OX+8fHx//Pz8/7y8vP/8fHy/vHx8v/19fX+AAAANlhYWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7+//7O3u/+fp + 6v/q6+3/6evs/+rr7f/p6+z/6Onq/+rs7f/q7O3/6uzu/+rr7f/o6ev/5ujq/+Hj5f/a293/2tvd/9bX + 2f/Y2tv/2Nnb/8vMzv/Jy8z/w8XH/8nLzf/Lzc7/y83O/8vNz//Mzs//zc7Q/9HS0//W1tf/2NjZ/9nZ + 2f/Y2Nn/2NjY/9fX1//W1tf/1tbX/9bW1v/U1NT/29vc/+Hh4f/j4+T/5OTl/+Li4//l5eb/8vLz//T0 + 9f/09PT/8/P0//Ly8//39/f/AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/t7u/+5ufo/8/R0v7W2Nn/09XW/trb + 3f/V1tf/2drc/ufo6v/q6+3+6evt/+nq7P7e4OH/293e/tXX2f/T1db/0tTV/s7Q0v/GyMr+w8TG/7y+ + v/68vb//u7y9/sDBw//BwsT/wMHD/r/Awv/Bw8X+w8TG/8jJyv7Nzc7/0NDR/tDQ0f/Q0ND+0dHR/8/P + 0P/Pz8/+zs7P/87Oz/7MzMz/09PT/tfX2P/b29z+3d3e/97e3//h4eL+8/P0//X19v719fX/9fX1/vT0 + 9f/4+Pj+AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8P/t7/D/7O3u/+Xn6P/q6+3/6uvs/+rs7P/q6+z/5+nq/+rr + 7f/q6+3/6uvt/+nr7f/m5+n/5efo/9/h4v/Z293/09XX/8PExv+6vL3/ury9/7q8vf+7vL7/ubq7/77A + wf+/wML/vsDB/72/wP+9v8D/vb/A/8HCw//Gx8f/yMjI/8jIyP/Hx8j/x8fH/8XFxv/ExMT/wsLC/8HB + wf+/v8D/wcHB/8XFxf/IyMj/ycnK/8nJyv/T09P/8fHy//b29//29vf/9vb2//X19v/5+fn/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7v8f/t7vD+5ufo/9HS1P7V1tj/0tTV/tnb3P/T1db/3+Hj/ufp6v/p6+3+6evt/+nr + 7P7e4OL/3N7f/tDS1P/Iysz/ycvN/sLExf+4ubv+vL7A/7u9v/64urz/tri5/ry9v/+9v8D/vsDB/r7A + wf/Bw8T+wcPE/8bHyP7Nzc3/0NDQ/s3Nzv/Ly8v+y8vL/8fHx//Gxsb+wsLD/8LCwv7BwcH/wcHC/sfH + yP/IyMn+wMDB/7+/v//W1tf+9PT1//b29/739/f/9vb3/vb29v/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8f/t7/D/6+zt/+Pk5v/s7e7/7O3u/+vs7f/q7O7/5+jq/+rr7f/q6+3/6uzt/+nr7P/l5uj/5Obn/+Pl + 5//X2dv/4OLj/97g4v/U1dj/0NLU/9PU1v/S1Nb/0NLT/9TW1//U19j/09XX/9PV1v/S1NX/09XW/9na + 2//i4uL/4+Pj/9ra2//X19f/19fY/9XV1f/U1NT/0dHS/9LS0v/S0tP/1NTV/9zc3P/h4eL/5eXl/93d + 3v/z8/P/9/f4//f3+P/39/j/9/f3//f39//7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7w8f/t7/D/5ufp/8/Q + 0v/S09X/z9HS/9fZ2v/R0tP/2Nrb/+bo6f/q7O3/6uzt/+nr7P/c3t//2Nrc/9nb3P/R09T/0tTW/9nb + 3f/U1tj/x8nK/8zOz//Nz9H/0NLU/9DS1P/Nz9H/y83P/8vNz//Lzc//zc/Q/9PU1f/S0tP/xsbG/8XF + xv/Ly8v/z8/P/9PT1P/V1dX/2NjY/9nZ2f/a2tv/3d3e/+Xl5f/o6Oj/4uLi/+vr6//4+Pj/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/t7u/+6err/+Hj4/7s7e7/6+zt/urr + 7P/q7O3/4ePk/urs7f/q6+z+6uvt/+nq7P7o6uv/5+nq/ufp6v/n6er/293e/t3f4P/c3+D+0dPU/8zO + z/7S1NX/09XW/tHT1P/P0dL/z9HS/s/R0v/Nz9H+zc/Q/9LT1P7Q0dH/xsbG/snJyf/W1tb+1tbW/9bW + 1v/W1tb+1dXV/9PT0/7V1dX/3Nzc/uXl5f/l5eX+4+Pj//f39//4+Pj++Pj4//f39/74+Pj/9/f3/vj4 + +P/7+/v+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2trmu7w8P/t7u//4+Tl/9XX1//R09P/1tfY/9bY2f/Y2tv/2tvc/9fZ + 2v/a3N3/2dvc/9fZ2v/m5+n/6Orr/+bo6v/d3+H/2dvc/87Q0v/R1NX/zc/R/8bIyv/Cxcb/w8XH/8TG + yP/KzM7/zc/R/8zO0P/O0NH/zc/R/9HS0//Pz8//xMTE/8jIyP/U1NT/1dXV/9PT0//X19f/1tbW/9ra + 2v/V1dX/1tbW/+Li4v/f39//9PT0//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2trmu/w8P/t7u/+5ufo/93e3/7m6Oj/5efo/uXm5//j5eb/5OXm/ubn6f/l5uj+5Obn/+Lj + 5f7n6Or/6Orr/ujp6//k5uf/5Obo/t7g4v/V19n+0tTW/83P0f67vb//ubu8/sDDxP/Gycr/yMrM/svN + z//Lzc/+ztDR/9DR0v7Q0ND/w8PD/svLy//V1dX+1dXV/9TU1P/U1NT+09PT/9DQ0P7T09P/zc3N/tfX + 1//r6+v++Pj4//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w + 8P/t7+//5Obm/9vc3f/S1NT/z9HR/9na2//X2dr/2Nna/9/g4v/q7O3/6evs/+nr7P/g4uP/293e/93f + 4P/c3uD/3d/g/+Di4//U1tj/zM7Q/8nLzf/BxMX/tbe5/7O1t/+0trf/tLe4/7u9vv+/wcL/w8XG/8jJ + yv/Ly8v/wMDA/8nJyf/Q0ND/z8/P/87Ozv/MzMz/y8vL/8rKyv/Hx8f/zc3N/97e3v/29vb/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7w8P/t7u/+5OXm/9XX + 2P7j5eX/4OLi/uXm5//g4uP/4+Xm/ubn6P/p6+z+6evs/+nr7P7g4uT/4uPl/uPl5v/h4+T/4eTl/uPl + 5//h4+T+z9LT/8vNz/7Kzc7/yszO/srMzv/Iysv/xsnL/sXIyf/Dxcf+w8XG/8fIyf7Pz8//zs7O/tjY + 2P/b29v+29vb/9ra2v/Z2dn+2NjY/9bW1v7W1tb/2dnZ/vb29v/5+fn++fn5//n5+f/4+Pj++fn5//j4 + +P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7/D/5ufo/93e3//Y2dr/19jZ/9nb + 3P/Z29z/293e/+nr7P/q7O3/6evs/+nr7P/k5uj/6Ors/+jq6//n6ev/5ujq/+bo6f/m6On/5efp/+Pm + 5//h4+X/3uDi/9ve3//Z3N3/19rb/9ja3P/Y2tz/2Nrb/9bX2P/c3N3/5ubm//Ly8v/09PT/9PT0//X1 + 9f/29vb/9/f3//j4+P/5+fn/+fn5//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8f/u7+/+4uTk/9HS0/7a29z/2Nna/t7g4f/e4OH/3uDh/unr + 7P/q7O3+6evs/+nr7P7g4uP/6Orr/ufq6//n6er/5ujq/ubo6v/l6On+5efp/+Tm6P7k5uj/4+bn/uPm + 5//j5uf/4uXn/t/h4//b3d7+2Nrc/97g4f7y8/P/+Pj4/vr6+v/6+vr++/v7//v7+//6+vr++vr6//n5 + +f76+vr/+fn5/vr6+v/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2xsmu/w8f/u7/D/7e7v/97g4P/b3N3/3N3e/93f4P/f4eH/4+Xm/+vt7v/q7O3/6evt/+fp + 6//h4+X/4uTm/+Pl5v/k5uj/5+nq/+bo6v/l6On/5efp/+Tn6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Pm + 5//j5uf/4uXm/+Xn6P/19fb/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2xsmvDx + 8f/u7/D+5OXm/9TW1v7Y2tr/1tfY/trb3P/b3d3/4ePk/uvt7f/q7Oz+6uzt/+Xm6P7d3+D/2tzd/t/h + 4//i5Ob/5ujq/ubo6v/l5+n+5efp/+Tm6P7j5uf/4+bn/uPl5//i5ef/4uXm/uLl5//i5eb+4+bn/+jq + 6/709fX/+/v7/vv7+//6+vr++/v7//v7+//6+vr++vr6//n5+f76+vr/+fn5/vr6+v/5+fn++fn5//n5 + +f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8f/v8PD/7O3t/97f + 4P/j5eX/6+zt/+zu7//s7u//7O7u/+vt7v/p6+z/4+Xm/97f4P/h4+T/4+Xm/+Lk5v/i5OX/4uTl/+Lk + 5v/h4+X/4OLk/+Dj5P/h4+X/4OPl/93g4f/j5ef/4+Xn/+Ll5v/i5eb/4+Xn/+jq6//09fX/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8v/v8PH/4eLj/9XW1//P0dH/6+zt/+3u + 7//s7u//7O7v/+zt7v/o6uv/1dfY/9LT1f/e4OH/3N7f/9rc3f/b3d//297f/97g4f/c3+D/2t3e/93g + 4f/g4uT/3eDh/93f4f/i5ef/4uXn/+Ll5//i5eb/4+Xn/+fp6//z9PT/+vv7//z8/P/7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx8v/v8PH+7O3u/+Pl5f7k5ef/5ufo/ufo6f/l5uf/5Obn/uHj + 5P/p6+z+6uzt/+rs7f7p6+3/5Obn/uPm5//g4uT/3uHi/uLk5v/j5ef+4+bn/+Hk5v7h5OX/4uTm/uHk + 5v/g4+X/4OPl/uDj5f/g4+X+4uTm/+fp6v7y8/T/+vr6/vv7+//6+vr++/v7//r6+//6+vr++vr6//n5 + +f76+vr/+fn5/vn5+v/5+fn++fn5//j4+f/4+Pj++Pj4//f39/739/j/9/f3/vf3+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbGxsmvDx8v/v8PH/5OXm/8TFxv/V1tf/ysvM/9DS0//R0tP/zc/Q/9bY2f/o6er/6+zt/+rs + 7f/p6+z/2tzd/9TX2P/a3N3/2tze/9ja3P/c3uD/3uHi/9ze4P/b3uD/3+Hj/93g4v/b3t//297g/9ve + 3//a3d//4OPl/+bo6v/x8vP/+fn6//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx + 8v/v8PD+7u/w/+Lj5P7q6+z/5+jp/uHi4//p6+v/7O7v/uzt7v/r7e7+6+3u/+jq6/7j5eb/4uTl/uXn + 6P/k5uj/5ujp/uXn6f/j5ef+4uTm/+Pm5/7j5ef/4OPl/t/i5P/g4+X/4uXm/uLl5//i5Ob+4+Xn/+bo + 6f7x8vL/+fn5/vv7+//6+vr++vr6//r6+v/5+fn++vr6//n5+f75+fn/+Pj4/vn5+f/4+Pj++Pj4//j4 + +P/39/f++Pj4//f39/739/f/9vb2/vf39//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxtmvHy8//v8PH/4eLj/87P + 0P/Iycr/zs/Q/8nLy//b3d7/7O7v/+zt7//r7e7/6+3u/9/h4f/T1db/09XW/9HT1P/S1NX/19nb/9fZ + 2v/b3d//2dzd/9nb3f/X2dv/3N7g/9fa3P/g4uT/4uXn/+Ll5//j5ef/4+bn/+bo6v/w8fL/+fn5//r6 + +//6+vv/+vr6//r6+v/5+fr/+fn6//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f3 + 9//39/f/9vb3//b29//7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmvDy8//v8PH+7u/x/+Xm5/7u7/H/7e/w/u7v + 8P/t7+//7O7v/uzt7//s7e7+6+3u/+jq6/7m5+n/6uvs/ujq6//o6uz/6Orr/ubo6f/j5eb+5Ofo/+Pl + 5/7j5ef/4eTl/uHk5v/i5eb/4+bn/uPm6P/j5ej+4+bo/+bo6f7v8fH/+Pj5/vr6+v/5+fr++vr6//r6 + +v/5+fn++fn5//j4+f75+fn/+Pj4/vj4+f/39/j++Pj4//f3+P/29vf+9/f3//b29/729vf/9fX2/vb2 + 9//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbG1tmvHy8//v8fH/293d/9HS0//Excb/vL2+/8vNzf/AwsL/09TV/+zu + 7//s7e7/7O3u/9/h4v/X2Nn/0tPU/9HT1P/V19j/1NfY/9bY2f/d3+H/2tze/+Xn6P/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/5Obo/+bo6v/v8PH/9/f4//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b29v/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbG1tmvHy8//v8PH+6+zs/+vs7f7t7+//7u/w/u3u7//t7u//7e7v/u3u7//s7u7+7O3u/+nq + 6/7o6uv/4uPk/uDh4v/m5+j/6Orr/uPl5v/k5uf+5ujp/+fp6v7m6er/5ujp/uXo6f/l6On/5efp/uXn + 6f/l5+j+5efp/+bo6f7u7/D/9/f3/vn5+f/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4 + +P/39/f+9/f3//f39//29vb+9vb2//b29v729vb/9fX1/vX19f/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmvHy + 8v/v8PH/6ers/8XHyP/Fxsf/xsfI/8DCw//Nzs//7e7v/+zu7//s7e//7O3u/+vt7v/r7O3/6uzt/+rs + 7f/p6+z/6evs/+jq7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+fo + 6v/t7/D/9vb3//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f39//39/f/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX1//X19f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmu/w8f/u7/D/5+jp/9/g + 4v/o6ev/5+jp/+Dh4//a293/6uzs/+rr6//p6uz/6ers/+nq6//p6uv/6Onr/+fp6v/n6er/5+jp/+bo + 6f/m6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+j/5efo/+Xn6P/l5+j/5efp/+bo6v/u7/D/9vb2//n5 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f3//f39//29vf/9vb3//b29v/29vb/9fX2//X1 + 9v/19fb/9fX1//T09f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmuzs7f/p6uv+19jY/7a2t/7CwsP/uLm5/rq7 + vP+/wMD/u7y9/ra3t/+7vL3+wcLD/7u9vf7W19j/1NXW/r/Awv/Exsb/uru8/sPFxf/Iycr+3uDg/97f + 4P7e4OH/3uDh/t/g4v/g4eP/4eLk/uLk5f/j5eb+5efo/+nq6/7w8PH/9vb3/vj4+P/39/j++Pj4//j4 + +P/39/f+9/f3//b29/739/f/9vb2/vb29v/19fb+9vb2//b29v/19fX+9fX1//T09f709PX/9PT0/vT0 + 9P/6+vr+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPamtrmunq6//m5+j/2trb/8nJyv/c3d7/0NHR/8TFxf/Nzc7/2Nna/9fX + 2P/S09P/1NTV/9XW1v/Y2dr/0NHS/8vMzP/V1db/0tPU/9TV1v/V1tf/2tvb/9vc3P/c3d7/3t/g/+Dh + 4v/i4+T/5OXm/+bn6P/o6er/6uzs/+7v7//z9PT/9vb3//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/5+fr/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPa2xsmuvs7f/o6er+5OXm/7/AwP7BwsP/29zd/r6/v/+9vb7/ubm6/ra2t//Excb+yMnJ/7y9 + vv7DxMX/urq7/sHCwv/Fxsf/1tbX/tna2//R0dP+zM3O/8zNzf7X2Nn/5+jp/unq6//q7Oz/7O3u/u3u + 7//t7u/+7/Dx//Lz9P719fb/9vb3/vf39//29vf+9vb3//b29//19fb+9vb2//X19v719fb/9fX1/vX1 + 9v/09PX+9PT1//T09f/z8/T+9PT0//Pz9P7z8/T/8vLz/vPz8//5+fn+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmu/v + 8P/s7e7/3+Dh/9DQ0f/Jysv/0NDR/9LT1P/S0tP/09TV/8/P0P/Y2Nn/3N3e/9TV1v/V1tb/09TV/9na + 2//a29z/3+Di/+Xm5//V1tj/1tjY/9XW1//e39//7O7v/+3u8P/t7/D/7u/w/+7v8P/v8PH/8vLz//X1 + 9f/29vf/9vb3//b29//19fb/9vb3//b29v/29vb/9fX2//X19v/19fb/9fX1//X19f/09PX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//5+fn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8v/t7u/+39/g/8XF + x/7Ky8z/xMXG/sjIyf/Iycr/wsLD/ri4uf/CwsP+zc3P/8fIyP7f4OH/3+Dh/tTV1v/V1tj/x8jJ/s/Q + 0f/b3N7+09TV/9HS0/7T1Nb/2Nna/tzd3v/R0tP/09TV/s/Q0f/Z2tv+09PU/9zc3f7i4uP/4ODh/tbW + 1//W1tf+1tbW/+Pj4//V1dX+2dna/9XV1v7Z2dr/9PT1/vT09f/z8/T+8/P0//Pz9P/z8/P+8vL0//Ly + 8/7y8vP/8vLz/vHx8//5+fn+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u//2trb/7u8vP/a29z/x8jI/7i4 + uf/Gx8f/09TU/8/Q0f/Ozs//0tPU/9TV1v/j5OX/4uPk/9XW1//Y2dr/0tPU/9jZ2v/j5OX/1tfY/9LT + 1f/e3+D/2Nna/9XW1//U1db/3N3e/+Hi5P/f3+D/2dna/9/f3//j4+T/3Nzc/9XV1f/g4OD/0NDR/+rq + 6//V1dX/4ODh/+Pj4//b29z/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/4+Pn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u/+4+Tl/9DQ0f7IyMn/19fY/s3Oz//j4+T/6+zs/ujp + 6f/o6Or+6urs/+Xl5v7S09T/ysrL/snKy//LzM3/2NnZ/uHi4//W19j+1NXV/93e3/7d3t//3t/g/tfY + 2v/f4OH/1tbY/u7v7//z8/T+9PT1//T09f709PX/9PT0/vT09f/09PT+9PT1//T09P/z8/T+8/P0//Pz + 8/7z8/T/8vLz/vPz8//y8vP+8vLz//Ly8//x8fL+8fHy//Hx8v7x8fL/8PDx/vDw8f/4+Pj+AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPb29vmvDw8f/u7u//19fY/7q6u//Fxcb/xMXG/8bHyP/h4eL/6+zu/+nq6//p6uv/6+vs/+Xm + 5//S09T/z9DR/9DQ0f/MzM3/zc7P/93e3//R0tP/09TV/9TV1//Q0dL/0NHT/8/Q0f/R0tP/0dLT/+7u + 7//z8/T/8/P1//Pz9f/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly8//y8vP/8vLz//Ly + 8//x8fP/8fHz//Hx8v/x8fL/8PDy//Dw8v/w8PH/8PDx//Dw8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPb29vmvDw + 8f/u7vD/7e3w/+3t7//t7e//7e3v/+3t7//s7e//6+zu/+rq7P/q6uz/6+vt/+vs7f/r7O3/6+zu/+zs + 7v/s7e//7O3v/+zt7//t7e//7e7v/+3u8P/u7vD/7u7w/+7v8P/v7/H/8PHy//Ly9P/z8/T/8/P0//Pz + 9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fL/8PDy//Dw + 8v/w8PL/8PDy/+/v8f/v7/H/7+/x/+/v8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKSkPb29vmvDw8f/t7e/+7u7v/+3t + 7/7t7e//7e3u/u3t7//t7e//7Ozu/uvr7f/r6+z+6+zt/+vs7f7r7O7/7Ozu/uzt7v/s7e7/7e3v/u3u + 7//t7e/+7e7v/+3u8P7u7vD/7u7w/u7v8P/v8PH/8fHz/vLy8//y8vP+8vLz//Ly8/7y8vP/8fHz/vLy + 8//x8fP+8vLy//Hx8v/x8fL+8fHy//Dw8v7x8fL/8PDy/vDw8f/w8PH+8PDx//Dw8f/v7/H+7+/w/+/v + 8P7v7/D/7u7w/u7u8P/39/j+AAAANlZWVwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyMNb29vlvHx8v/v7/D/7+/w/+/v7//v7/D/7u7v/+7u + 7//u7u//7u7v/+3t7v/t7e7/7e3u/+3t7v/t7u7/7e7v/+3u7//t7u//7e7v/+7v7//u7+//7u/w/+7v + 8P/v8PH/8PDx//Dx8v/x8vL/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8v/y8vL/8vLy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PD/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/4+Pj/AAAAMEpKSgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAtLS0HNzc3Vn9/f6B/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jfn5+o35+ + fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn+jfn5/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6J/f3+bBwcHGUpK + SgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAANjY3ByMjIw4pKSkPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDycnJw8rKysMRkZGAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAA//////// + ////AAAA/8AAAAAf////AAAA/wAAAAAH////AAAA/wAAAAAB////AAAA/wAAAAAA////AAAA/wAAAAAA + f///AAAA/wAAAAAAP///AAAA/wAAAAAAH///AAAA/wAAAAAAD///AAAA/wAAAAAAB///AAAA/wAAAAAA + A///AAAA/wAAAAAAAf//AAAA/wAAAAAAAP//AAAA/wAAAAAAAH//AAAA/wAAAAAAAD//AAAA/wAAAAAA + AB//AAAA/wAAAAAAAA//AAAA/wAAAAAAAAf/AAAA/wAAAAAAAAP/AAAA/wAAAAAAAAH/AAAA/wAAAAAA + AAD/AAAA/wAAAAAAAAD/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/4AAAAAAAAD/AAAA////////////AAAA////////////AAAA//////// + ////AAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0CFxcXBBsb + GwUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwc + HAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRsbGwUbGxsFGhoaBRUVFQQcHBwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAzMzMEBAQEIgAAAD0AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEAAAAA7AAAAJhgYGA40NDQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAIyMjDH9/f5/7+/z/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr7//r6 + +//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr6//n5+v/5+fn/+Pj4//f3 + 9//19fX/8/Pz//Dw8f/t7e3/5ubm/La2tts/Pz92BAQEHDMzNAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQ5/f3+l9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//X1 + 9v/19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+bm5//g4OH/1tbW/nV1daYEBAQkNjY3BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfX1 + 9v/19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//T09f/09PX/8vLz//Hx8v/v7/D/7Ozt/+rq6//n5+j/4+Pk/9vb + 3P/Q0NH/iIiJtwUFBSc4ODgFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMDAwDn9/f6X19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29v/19fb/9fX1//Pz9P/y8vL/8PDw/+7u + 7v/r6+z/6Ojo/+Xl5v/f3+D/1NTV/9bW1/+Pj5G+AwMDKioqKgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//29vf/9vb3//X1 + 9v/09PX/8/P0//Hx8v/v7/D/7Ozt/+np6v/n5+f/4+Pj/9vb2//Nzc3/5eXn/5ubnMQGBgYvKysrBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/9fX2//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+3t7v/q6uv/6Ojo/+Tk5f/e3t//0NDR/+fn + 6P/g4OL/pqanywkJCTQsLC0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/ + f6X29vf/9vb3//T09f/09PX/9fX2//b29//29vf/9vb3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//T09f/z8/T/8fHy//Dw8f/t7e7/6urr/+jo + 6P/l5eX/39/g/9PT1P/k5OX/6urr/9/f4f+srK3SCwsLOC0tLgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//y8vP/9PT1//X19f/29vb/9vb3//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/l5eb/0tLS/9XV1f/Nzc7/y8vL/8vLzP/Ly8z/y8vL/8rKy//Jycr/yMjJ/8fH + yP/Gxsf/xcXF/8LCw//AwMD/vLy9/7i4uP+vr7D/0dHR//Hx8v/q6uv/39/h/6+vsNcNDQ09LS0tCgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/8/Pz//Ly8v/z8/T/9PT1//X1 + 9v/29vf/9vb3//f3+P/39/j/9/f4//f3+P/39/j/6Ojp/9XV1f/e3t//0NDR/9PT1P/V1db/1dXW/9XV + 1v/U1NX/1NTV/9PT1P/S0tL/0dHS/8/P0P/Nzc7/ysrL/8jIyP/Dw8T/urq7/9DQ0f/29vb/8fHy/+rq + 6//f3+H/s7O03BAQEEEiIiMKLS0tAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X29vf/9vb3//Hx + 8f/09PX/8/P0//Pz9P/09PX/9vb3//b29//39/j/9/f4//f3+P/39/j/9/f4/+fn6P/W1tb/4ODh/9XV + 1v/W1tf/3Nzc/9zc3f/c3N3/29vc/9vb3P/a2tv/2dnZ/9jY2P/W1tf/1NTV/9HR0v/Pz9D/y8vM/8HB + wv/U1NT/+Pj4//b29v/x8fL/6urr/97e4P+ysrPeERERRBgYGAsrKywBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw + MA5/f3+l9vb3//f39//x8fL/7+/v//Hx8f/y8vL/8vLy//T09P/29vf/9/f3//f3+P/39/f/+Pj4//j4 + +P/n5+f/3t7e/9ra2v/a2tr/1tbX/9zc3P/d3d3/3d3d/9zc3f/c3Nz/29vc/9ra2//Z2dn/2NjY/9bW + 1v/U1NT/0dHR/83Nzv/ExMT/1tbW//n5+f/4+Pj/9vb2//Hx8v/q6uv/3t7g/7Gxs98SEhJFGBgYCwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAwMDAOf39/pff39//39/f/8vLy//Pz8//19fX/9PT0//X19f/09PT/9/f3//j4 + +P/4+Pj/9/f3//f39//4+Pj/5+fn/+Pj4//W1tb/3t7e/9nZ2f/a2tr/3d3d/97e3v/d3d3/3d3d/9zc + 3P/b29v/2tra/9nZ2f/Y2Nj/1dXV/9PT0//Pz8//yMjI/9jY2P/6+vr/+fn5//j4+P/29vb/8fHy/+rq + 6//e3uD/sLCy4BAQEEMqKisKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X39/f/9/f3/+7u7v/q6ur/7e3t/+3t + 7f/u7u7/8fHx//b29v/4+Pj/+Pj4//f39//19fX/9vb2/+bm5v/k5OT/1tbW/+Dg4P/d3d3/2dnZ/97e + 3v/f39//3t7e/97e3v/d3d3/3Nzc/9zc3P/a2tr/2dnZ/9fX1//V1dX/0tLS/8zMzP/d3d3/+/v7//r6 + +v/5+fn/+Pj4//b29v/x8fL/6urr/97e4P+np6naCwsLPCkpKgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9/f3//f3 + 9//y8vL/9fX1//f39//39/f/9/f3//X19f/39/f/+Pj4//j4+P/39/f/9vb2//b29v/m5ub/5OTk/+Dg + 4P/X19f/4uLi/9nZ2f/d3d3/39/f/9/f3//e3t7/3t7e/93d3f/d3d3/29vb/9vb2//Z2dn/19fX/9XV + 1f/Q0ND/1tbW/93d3f/X19f/0tLS/8fHx//IyMj/0NDQ/9PT0//d3d7/39/h/5+fodMICAg1KSkpBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvLy8Of39/pff39//39/f/6+vr/+fn5//r6+v/6urq/+vr6//z8/P/9vb2//j4+P/4+Pj/9fX1//Ly + 8v/z8/P/4uLi/+Pj4//h4eH/19fX/+Tk5P/b29v/29vb/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/c3Nz/29vb/9nZ2f/X19f/1dXV/9HR0f/Nzc3/yMjI/8TExP+0tLT/vLy8/8DAwP+6urr/xsbG/8LC + wv/Nzc7/np6fzAYGBy8uLi8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALy8vDn9/f6X29vb/9vb2//Pz8//29vb/9/f3//f39//39/f/8/Pz//f3 + 9//39/f/9/f3//f39//29vb/+Pj4/+Tk5P/l5eX/4uLi/9nZ2f/k5OT/4ODg/9nZ2f/f39//4ODg/+Dg + 4P/g4OD/39/f/9/f3//e3t7/3d3d/9zc3P/b29v/2tra/9jY2P/V1dX/09PT/9HR0f/Ly8v/wMDA/8zM + zP/Ozs7/yMjI/9nZ2f/X19f/z8/P/8fHx/+YmJnGBgYHJTw8PAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw5+fn6l9fX1//X19f/l5eX/4eHh/+fn + 5//l5eX/5eXl/+fn5//y8vL/9PT0//X19f/y8vL/6urq/+zs7P/c3Nz/3d3d/9vb2//e3t7/2NjY/+Dg + 4P/X19f/3Nzc/97e3v/e3t7/3t7e/93d3f/e3t7/3d3d/93d3f/d3d3/3Nzc/9vb2//a2tr/2NjY/9bW + 1v/U1NT/xsbG/8vLy//U1NT/1NTU/8/Pz//g4OD/4uLi/97e3v/X19f/z8/P/21tbpoeHh4QAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8OfHx8pfHx + 8f/x8fH/6urq/+zs7P/s7Oz/7Ozs/+zs7P/r6+v/7u7u/+/v7//v7+//7u7u/+vr6//s7Oz/2trb/9zc + 3P/Z2dn/29vb/9XV1f/e3t7/1dXV/8/Pz//S0tL/0tLS/9PT0//S0tL/09PT/9TU1P/V1dX/1dXV/9XV + 1f/U1NT/09PT/9LS0v/R0dH/z8/P/8LCwv/R0dH/2NjY/9jY2P/S0tL/4+Pj/+bm5v/l5eX/4uLi/97e + 3v/JycnoAAAAIjs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp6eqXu7u7/7e3t/93d3f/a2tr/39/f/9zd3f/c3Nz/3d3d/+jo6f/p6ur/6enp/+bm + 5//f39//4eHh/9DQ0f/U1NX/0dHR/9TU1P/Nzc7/xcXF/7/AwP+9vr7/wMHB/8HCwv/CwsP/w8PE/8PD + xP/FxcX/x8fH/8jIyP/IyMj/x8fH/8fHx//FxcX/xMTE/8LCwv/MzMz/2dnZ/9zc3P/b29v/1dXV/+bm + 5v/q6ur/6enp/+jo6P/m5ub/5ubm/AAAAC5KSkoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enul7e7v/+zt7v/m5+j/5OXm/+Xm5//m5+f/5eXn/+np + 6v/o6ev/6urr/+nq6//n6On/5eXm/+Xm5//U1NX/2NnZ/9TV1v/W19j/z9DR/8zNzv/Iycv/ysvM/83O + z//Nzs//zs/Q/87Oz//Pz9D/0NDR/9TU1P/V1db/1dXW/9XV1f/U1NT/09PU/9LS0//R0dL/1NTV/9zc + 3f/f39//3t7e/9bW1v/p6en/7Ozt/+zs7P/r6+v/6urr/+3t7f8AAAAyVFRUAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/3+Dh/97f + 4P/i5OX/3+Di/+Dh4//e3+D/6evs/+vs7f/r7O3/6Onq/+Hj5P/i5OX/09TW/9bX2f/S09X/1tja/8/R + 0v/Mzs//yMnL/8rMzf/Mzs//zc/Q/83P0P/Oz9D/z9DR/9PT1P/W1tb/19fY/9jY2P/X19f/1tbW/9XV + 1f/U1NT/09PT/9XV1v/d3d7/4ODh/+Dg4f/Y2Nn/7Ozs/+/v7//u7u//7e3u/+3t7v/w8PH/AAAAMldX + VwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7 + e6Xt7/D/7e7w/+bn5//h4uP/4+Tm/+Tl5//j5Ob/5ebn/+rr7P/r7O3/6uzt/+jq6//j5ef/5OXm/9TV + 1//Y2tv/0tTV/9fY2v/Q0dP/zc7Q/8fJy//Lzc//ztDR/83P0f/Oz9H/zs/R/8/Q0f/U1dX/2NjZ/9nZ + 2f/Z2dn/2dnZ/9jY2P/X19f/1tbW/9XV1f/W1tf/39/g/+Li4//i4uL/2tra/+3t7f/x8fH/8fHx//Dw + 8f/v7/D/8/Pz/wAAADJYWFkCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg56e3ul7u/w/+7v8P/e4OH/4OHi/+Tl5//g4eP/4OLj/+Hi5P/p6+z/6uzt/+rs + 7f/n6er/3+Di/+Di5P/T1db/1dbY/9PV1v/X2Nr/ztDS/83O0P/Iycv/yszO/83P0f/Nz9D/zc/Q/87Q + 0f/R0tL/1dbW/9nZ2v/a2tv/2tra/9nZ2v/Z2dn/2NjZ/9fX2P/W1tf/2NjY/+Hh4f/k5OX/5OTk/9vb + 3P/u7u//8/Pz//Pz8//y8vP/8fHy//X19v8AAAAyWVlZAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/u7+//5OXm/9zd3//f4OL/4OLj/93f + 4P/i4+T/6evs/+rs7f/q6+3/5+nq/+Di4//e3+H/1tjZ/9bY2f/R0tT/1NXX/8nLzP/Exsf/vr/B/8PF + xv/Gx8n/xcfI/8XHyf/GyMn/ycrL/8/P0P/T09T/1NTU/9PT1P/U1NT/09PT/9PT0//S0tP/09PT/9TU + 1P/d3d3/4eHi/+Pj5P/c3N3/7+/w//T09f/19fX/9PT0//Pz9P/39/f/AAAAMlpaWgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/w/97f + 4f/j5OX/5ufp/+Lj5P/k5uf/4uTl/+nq7P/q7O3/6evt/+fp6v/h4+T/3N7f/9fZ2//W2Nn/xcfJ/7/B + w/+5urz/vb/A/7u8vv+/wcL/wMLD/7/Bwv++wMH/v8DC/8HDxP/IyMn/y8vL/8vLzP/Ly8v/y8vL/8nJ + yf/Hx8j/xsbH/8bGxv/Fxcb/zc3N/9TU1f/T09P/0dHS/+Pj5P/19fb/9vb2//b29v/19fX/+Pj5/wAA + ADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lg56e3ul7u/w/+3u8P/f4OH/2Nnb/9vd3v/d3t//2tvc/+Xn6P/p6uz/6evt/+nr7f/l5+j/3uDh/9ja + 2//Lzc//ycvM/7q8vf+2uLn/tre5/7a4uf+xs7T/t7m6/7q8vv+7vL7/vL2//7y+v/++v8D/xcXG/8nK + yv/Jycr/x8fI/8fHx//Dw8T/wsLC/7+/v/+9vb3/u7u7/7+/v/++vr7/vr6//76+vv/e3t//9vb3//f3 + +P/39/f/9vb2//n5+v8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/4ePk/+Xm6P/p6uv/5Obn/+bo6v/k5ef/6Ors/+rr + 7f/q6+z/5+jp/+Lk5f/h4+X/1tja/9ze4P/Z293/0dLU/87Q0v/R09X/zc/Q/9LU1f/S1NX/0dPU/9HS + 1P/R0tT/1dbX/97f3//j4+T/3d3e/9jY2P/X19f/1tbW/9TU1f/Q0NH/0dHS/9LS0v/c3Nz/4ODh/9/f + 3//b29v/9fX1//f3+P/39/j/9/f3//f39//6+vr/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e7w/9vc3v/S1NX/2Nna/9XX + 2P/U1tf/3N3e/+fp6//q7O3/6evt/+Pl5v/Z293/3N3f/9HT1P/U1tj/297f/9DS1P/Hycv/z9HS/87Q + 0v/Q0tT/ztHS/8zP0P/Lzc//zc/R/8/Q0f/X19j/y8vM/8bGx//Nzc3/0NDQ/9PT0//U1NT/2dnZ/9ra + 2v/b29v/5OTl/+jo6P/h4eL/7u7u//j4+P/4+Pn/+Pj5//j4+f/4+Pj/+/v7/wAAADJbW1sCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3u + 7//k5eb/6evs/+vt7v/q6+z/6uzt/+Pl5v/q7O3/6uzt/+nr7P/o6uv/6Onr/+fp6v/n6er/2t3e/9ze + 4P/c3uD/yszO/9DS0//S1db/0dPU/8/R0v/Q0tP/z9HT/87Q0f/Q0tP/1tbW/8jIyP/Gxsb/19fX/9bW + 1v/X19f/1tbW/9XV1f/U1NT/2NjY/+Xl5f/l5eX/5ubm//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7 + +/8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi4Oent7pe7v8P/t7u//2drb/8zOz//W19j/0NHS/9XX1//X2dr/0tTV/9rc3f/U1tj/3N7f/+jq + 6//o6uv/297f/9jb3P/P0dL/0dPU/8jLzP/BxMX/wMLD/8HDxP/JzM3/zM7Q/8vNzv/Nz9H/z9HS/87P + z//Jycn/xMTE/9PT0//U1NT/1NTU/9fX1//X19f/2dnZ/9LS0v/g4OD/4ODg//b29v/4+Pj/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/v/+Xm5//q6+z/6err/+vt7v/r7O7/6+zt/+rs + 7f/q7O3/5+nq/+jq7P/o6uv/6Orr/+fp6//n6er/4OLk/9fZ2//R09T/xcfJ/7e5uv+7vb7/wMPE/8PF + x//GyMr/yMvM/8zOz//MzM3/x8fH/8bGxv/T09P/09PT/9HR0f/Q0ND/zs7O/8vLy//Kysr/1NTU/+7u + 7v/4+Pj/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3v7//T1NX/yMnK/87Q + 0f/V1tf/0NLT/9LU1f/g4uP/6uzt/+nr7P/g4uP/2Nrc/9vd3v/Y2tv/2tze/97h4v/R09T/x8nL/8fK + y/++wML/u72//7i6u/+4urv/vb/A/77Bwv/Gx8j/y8vM/8rKyv/MzMz/1NTU/9PT0//S0tL/0dHR/9DQ + 0P/Ozs7/zc3N/+bm5v/4+Pj/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v + 8P/t7+//5+jp/+Xn5//o6er/5efo/+Xn6P/m6On/6evs/+rr7f/p6+z/6Ors/+fp6v/o6uv/5+nq/+bp + 6v/l6On/5Ofo/9rd3v/Y2tz/1djZ/9TW2P/S1db/09bX/9PV1v/Q0tT/z9HS/9DQ0f/Z2dn/5ubm/+jo + 6P/o6Oj/6enp/+np6f/p6en/6urq/+rq6v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp7e6Xu7/D/7u/v/8/Q0f/Nzs//ztDR/9PV1v/W19j/2Nrb/+nr7P/q7O3/6evs/+Xn + 6P/j5eb/6Orr/+fp6v/m6Or/5ujq/+Xo6f/l5+n/5Ofo/+Tm6P/j5uj/4uXm/97h4v/a3d//2Nrb/9vc + 3v/l5ub/8PDx//j4+P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7/Dw/+7v8P/n6en/5OXm/+Xm5//h4+T/4+Xm/+bo + 6f/q7O3/6uzt/+nr7f/n6er/5efo/+bo6v/l5+n/5unq/+bo6v/l6On/5Ofp/+Tm6P/j5uj/4+bn/+Pl + 5//j5ef/4+bn/+Pl5//d3+D/8PHx//r6+v/7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3t7pe/w8f/u7/D/29zd/9DS + 0v/Y2dr/1dbX/9rc3f/i5OX/6+zt/+rs7f/q7O3/2dvc/9vd3v/i5Ob/3+Hj/+fp6v/m6Or/5efp/+Tn + 6P/j5uj/4+bn/+Pl5//i5ef/4uXn/+Ll5//j5ef/5efo/+/w8f/6+vr/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxc + XAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt7 + fKXv8PH/7/Dw/+Lj5P/g4eL/5+jp/+3u7//s7u//7O7u/+vt7v/m6On/4uPl/9rc3f/k5uf/4ePl/9/h + 4//f4eP/4eTl/+Di4//f4uP/4ePl/9/h4//d4OL/4+Xn/+Pl5//i5eb/4uXm/+Tm6P/u7/D/+fr6//z8 + /P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg57e3yl8PHx/+/w8f/i4+T/1NXW/+Pk5f/t7u//7O7v/+zu7//r7e7/4uTl/9vd + 3v/a3N3/4uTl/9zf4P/f4uP/3+Lj/+Hj5f/d4OH/3eDh/+Hk5f/e4eL/3uHi/+Ll5//i5ef/4uXn/+Ll + 5v/k5uj/7e/w//n5+f/8/Pz/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3x8pe/w8f/v8PH/4eLj/9PU1f/d3+D/2tzd/9nb + 3P/Z29z/2dvc/+vs7f/q7O3/6evt/+Pl5v/d4OH/2tze/9vd3v/b3t//4uTm/9/h4//e4OL/3+Lk/+Dj + 5f/f4uP/3eDi/97g4v/d3+H/4+bn/+zu7//4+Pn/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//7+/v/AAAAMlxcXAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt8fKXv8fH/7/Dx/9na + 2//h4uP/3uDg/93f3//h4uP/3+Hh/+Lj5P/r7e7/6uzt/+rr7P/i5OX/3+Hi/+Lk5f/h4+T/4ePl/+Ll + 5v/f4uP/4OPk/+Dj5P/f4uP/3uHi/+Di5P/e4OL/4OLk/+Pm5//s7e7/+Pj4//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/+/v7/wAA + ADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lw57fHyl8PHx/+/w8f/c3t7/1NXW/8/Q0f/Nz8//3+Dh/+3u7//s7e7/6+3u/+vt7v/Y2dr/1tjZ/9nb + 3P/W2Nn/3d/g/97g4f/b3d7/3N7g/93g4v/c3+D/297g/9/h4//i5ef/4uXn/+Pl5//k5uf/6+3u//f3 + 9//6+vv/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//f3 + 9//39/f/9/f3//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLy8OfHx9pe/w8v/v8PH/4uPk/+Di4//k5uf/5+jp/+bo6f/s7u//7O3v/+zt + 7v/r7O7/3d/g/+Xn6P/g4uP/5Obn/+Lk5f/g4uT/3+Lj/+Di5P/g4uT/3uHi/97g4v/h5OX/4+bn/+Pm + 5//j5uj/5Obo/+vs7f/29/f/+vr6//r6+v/6+vr/+vr6//n5+v/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4 + +P/39/j/9/f4//f39//29vf/9vb3//b29//6+vr/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi8vDnx9faXw8fL/7/Dx/9jZ2v/Mzc7/xcfI/8/Q + 0f/Fxsf/2Nrb/+zu7//s7e7/6+3u/9rc3f/W2Nn/19na/9rc3f/Y2tz/293f/+Di5P/e4OL/5ujq/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tn6P/q7O3/9vb2//n5+v/6+vr/+vr6//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/+vr6/wAAADJcXFwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vLw58fX2l8PHx//Dx + 8f/p6ur/6uzs/+7v8P/t7u//7O3u/+zu7v/t7u//7O3u/+zt7v/n6On/4OHi/9/h4f/k5eb/5ujp/+Pl + 5v/i5Ob/5ujp/+fp6v/m6Or/5ujp/+Xo6f/l5+n/5efo/+Xn6f/l5+n/6uvs//X19f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//r6 + +v8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi8OfH19pe/w8f/v8PH/2Nna/8bHyP/HyMn/uru8/83Oz//t7u//7O3v/+zt7v/s7e7/6+zt/+rs + 7f/q6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+rr + 7f/09PX/+Pj5//n5+f/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b29//29vf/9vb2//X1 + 9v/19fb/9fX2//X19f/5+fr/AAAAMltbXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnx8fKXt7u//7e7v/+Xm6P/o6ev/7O3t/+fo6v/h4uP/6err/+Xm + 5v/o6ev/5+nq/+fp6v/n6On/5ujp/+bn6f/j5OX/5efo/+Xm6P/k5uj/5Obo/+Tm6P/k5uj/5Obn/+Tm + 6P/k5uj/5Obo/+Xn6f/q6+3/9PT1//j4+P/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b2 + 9//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/+fn6/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enql6err/+jp6f+1trf/sLGy/7O0 + tP+rrKz/tre3/7m6u/+6u7z/tre4/72+v/++v8D/3d7e/66vsP/CxMT/uru8/7y+vv/Q0dL/3N3e/9zd + 3v/d3t//3t/g/9/g4f/h4uP/4+Tl/+Xm5//o6er/7u7v//X19v/39/j/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9vb2//b29v/29vb/9vb2//X19f/19fX/9fX1//X19f/09PT/9PT0//n5+f8AAAAyW1tbAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oenp6pejo + 6v/m5+j/29zc/9rb3P/c3d7/1NTV/9PU1f/U1NX/09PU/9DR0f/X19j/0tLU/9TU1f/Oz8//1dbW/9na + 2//a29z/1tfY/9TV1f/Z2tv/4eLj/+Pk5f/m5+j/6Onq/+rr7P/r7e3/7u/w//Pz9P/29vf/9/f4//f3 + 9//39/f/9vb3//b29//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09f/z8/T/8/P0//Pz + 9P/5+fn/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnx8fKXs7O3/6uvs/8nJyv+8vb3/wcLD/7e4uP++v8D/vLy9/7m5uf/U1db/xcbH/7m5 + uv/Excb/vr+//8jJyf/U1db/3+Dh/8fIyf/Fxsf/ycvL/+vs7f/s7e7/7e7v/+3v8P/u7/D/7vDx//Ly + 9P/19fb/9vf3//b29//29vf/9vb3//b29//29vb/9fX2//X19v/19fb/9fX1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/P/+Pj5/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw59fX2l7u7w/+3u7//b3N3/1tbX/9vb3P/V1db/2trb/9LS + 1P/IyMn/1tfY/9ra3P/Z2dr/6Onq/9rb3P/g4eL/2tvc/9/g4f/k5eb/4OLi/97f4P/p6uv/6evr/+Hj + 4//h4uP/4eLj/+Hi4//o6On/6urq/+/v8P/k5OX/4+Pj/+rq6//w8PD/5ubm/+np6v/p6er/8PDx//T0 + 9f/z8/X/8/P1//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//j4+f8AAAAyW1tbAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Ofn5+pe7u8P/t7u//vr6//8TE + xf++vr//t7e4/7u8vf/HyMn/ycrL/8DBwv/Mzc7/0NDR/+jp6v/P0NH/0dLT/8PExf/R0tP/1tfY/9XW + 2P/Iycr/zM7P/9PU1f/Jysv/0tPU/9zd3v/Nzs7/2trb/9HR0f/i4uP/ycnJ/9ra2//AwMD/4eHh/87O + z//X19f/2dnZ/+Tk5f/z8/T/8/P0//Pz9P/y8vP/8vLz//Ly8//x8fL/8fHy//Hx8v/4+Pj/AAAAMltb + WwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8vDn5+ + fqXu7u//7u7v/+Dg4f/Iycr/09PU/9XW1//i4+T/6+vs/+jo6f/p6er/6uvs/9jZ2v/X2Nj/ycrL/83N + z//Z2tv/4eLj/9jZ2v/b3N3/4+Tl/9jZ2//d3uD/3+Di/9na2//x8vP/9PT0//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/w8PH/9/f4/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC8vLw5+fn+l7u7w/+7u7//Hx8j/w8PE/8rKy//MzM7/3+Dh/+vs7f/p6er/6urr/+vs + 7P/Y2Nr/1dbX/9PT1f/Q0NH/0NHS/93d3v/W19j/19jZ/97f4P/Gx8j/2Nja/9PU1f/U1db/8vL0//Pz + 9f/z8/X/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PH/7+/x//f3+P8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Of39/pe7u7//u7vD/7e3w/+3t7//t7e//7e3v/+zt + 7//r7O3/6urs/+rr7f/r6+3/6+zt/+zs7v/s7O7/7O3v/+zt7//t7e//7e7v/+3u8P/t7vD/7u/w/+7v + 8P/v7/H/8fHy//Ly9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHz//Hx + 8//x8fL/8fHy//Dw8v/w8PL/8PDy//Dw8f/v7/H/7+/x/+/v8f/39/f/AAAAMltbWwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyssDn9/f6Xu7u//7u7v/+7u + 7//t7u//7e3u/+3t7v/t7e//7Ozu/+vr7f/r7O3/7Ozt/+zs7v/s7O7/7O3u/+zt7v/t7e7/7e7v/+3u + 7//t7vD/7u7w/+7u8P/u7/D/7/Dx//Hx8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//Dw8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u8P/u7u//9vb3/wAA + ADFUVFQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYm + Jgp/f3+c9vb3//b29//29vf/9vb2//b29v/19vb/9fX2//X19v/19fX/9PT1//T09f/09PX/9fX1//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//b29v/29/f/9/f3//f4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b2 + 9//29vf/9vb3//v7+/8AAAAlSEhIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABCQkICERESFwAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwGBgYjLy8vCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkoBWFhYAVtbWwFbW1sBW1tbAVpb + WwFaWlsBWlpbAVpaWgFaWloBWlpaAVpaWgFaWloBWlpaAVpaWwFaWlsBWlpbAVpaWwFaWlsBWltbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFUVFQBSEhIAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////// + /////////wAAAAH////+AAAAAH////4AAAAAP////gAAAAAf///+AAAAAA////4AAAAAB////gAAAAAD + ///+AAAAAAH///4AAAAAAP///gAAAAAAf//+AAAAAAAf//4AAAAAAA///gAAAAAAD//+AAAAAAAH//4A + AAAAAAP//gAAAAAAAf/+AAAAAAAA//4AAAAAAAB//gAAAAAAAH/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAf/+A + AAAAAAD//////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PARAQEAEQEBABEBAQARAQ + EAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQ + EAEODg4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKwIKCgofBAQEMgQE + BDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQE + BDMEBAQzBAQEMwQEBDMEBAQyBgYGJxkZGQ4pKSkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIi + Igmenp64+fn5//j4+f/5+fn/+Pj5//n5+f/5+fr/+fn6//n5+v/5+fr/+fn6//n5+v/5+fr/+fn6//n5 + +v/4+Pn/+Pj5//f39//19fb/8vLz/+/v8P/r6+z+19fY83d3d6cRERElMDAwAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACsrKwucnJ289PT1/vX19f719fb/9fX2/vb29//19fb+9fX2/vX19v729vf/9fX2/vX1 + 9v729vf/9fX2/vX19v719fb/9PT1/vPz9P7y8vP/8PDx/u3t7v7p6er/5OTl/tnZ2v6ioqLQGBgYMTMz + MwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQucnJ289fX2/vX19v729vf/9fX2/vb29//19fb+9fX2/vX1 + 9v729vf/9fX2/vb29v729vf/9vb2/vb29v729vf/9fX2/vT09f7z8/P/8fHx/u7u7v7q6uv/5ubn/t/f + 4P7R0dL/rq6v1xgYGTUtLS0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/j/9vb3//X19v/09PX/8vLz/+/v + 8P/s7O3/6Ojp/+Tk5P/Z2dn/2trb/7i4ut4bGxs7Li4vBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289fX2/vX1 + 9v719fb/9fX2/vb29//29vb+9vb3/vb29/739/f/9vb3/vb29/739/j/9vb3/vb29/729vf/9vb3/vX1 + 9v709PX/8vLz/vDw8f7t7e7/6enq/uXl5v7d3d7/2dnZ/ufn6P++vr/hICAhQzExMQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289fX2/vPz9P709PX/9fX2/vb29//29vf+9vb3/vb29/739/j/9vb3/u3t7v7c3Nz/2trb/tXV + 1v7V1db/1dXW/tTU1f7U1NT/0tLT/tHR0f7Ozs//y8vL/sfHx/7AwMH/vb2+/vHx8v/m5uf+wcHD5iIi + I0gyMjIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb3//Ly8//y8vP/8vLz//T09f/29vb/9vb3//f3+P/39/j/9/f4/+zs + 7f/Y2Nj/2NjZ/9LS0//X19f/19fX/9bW1//V1db/1NTV/9PT0//Q0NH/zc3O/8rKyv/Dw8T/vb2+//X1 + 9f/x8fL/5ubo/8XFxuslJSZNJiYmBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vPz9P709PT/9PT0/vT09f/29vf+9vb3/vf3 + 9/739/j/9/f3/uvr6/7Z2dr/3Nzd/tbW1v7c3N3/3Nzd/tzc3f7b29z/2trb/tnZ2f7X19j/1NTU/tDQ + 0f7Ly8v/w8PD/vf39//39/f+8fHy/ubm5//CwsTrIyMkUSMjJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289/f3//Ly8v/y8vL/8/Pz//T0 + 9P/09PT/9/f3//j4+P/39/f/9/f3/+vr6//f39//2tra/9nZ2f/b29v/3d3d/93d3f/c3Nz/3Nzc/9ra + 2v/Z2dn/1tbW/9PT0//Ozs7/x8fH//n5+f/5+fn/9/f3//Hx8v/m5uf/wcHD7CEhIk8uLi4GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vDw + 8P7t7e3/7+/v/vDw8P/x8fH+9/f3/vf39/729vb/9vb2/urq6v7j4+P/19fX/t/f3/7a2tr/3t7e/t7e + 3v7e3t7/3d3d/tzc3P7a2tr/2dnZ/tbW1v7S0tL/zs7O/vr6+v/5+fn+9vb2/vPz8//x8fH+5ubo/r29 + v+oeHh5HLCwtBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289vb2/vLy8v7v7+//8fHx/vHx8f/19fX+9/f3/vf39/729vb/9fX1/ujo6P7k5OT/2dnZ/uPj + 4/7a2tr/3t7e/t/f3/7f39//3t7e/t3d3f7c3Nz/29vb/tnZ2f7W1tb/0dHR/s7Ozv/FxcX+u7u7/re3 + t/+8vLz+x8fH/tDQ0f+0tLbjGxscPiwsLAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb2/vLy8v7z8/P/9PT0/vT09P/z8/P+9/f3/vf39/729vb/9vb2/ujo + 6P7k5OT/39/f/t/f3/7d3d3/3d3d/uDg4P7g4OD/39/f/t/f3/7e3t7/3Nzc/tvb2/7Z2dn/1tbW/tLS + 0v/Pz8/+wsLC/sjIyP/Ly8v+zc3N/tTU1P/Kysr+rq6v3xwcHDM1NTUCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAubm5u89PT0/+rq6v/n5+f/6Ojo/+jo6P/q6ur/8/Pz//T0 + 9P/v7+//7e3t/+Hh4f/e3t7/29vb/9ra2v/f39//19fX/9zc3P/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9vb + 2//a2tr/2NjY/9bW1v/T09P/xsbG/9PT0//U1NT/19fX/+Li4v/f39//1dXV/5OTk78iIiIOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJi87+/v/ufn5/7g4OD/4eHh/uHh + 4f/l5eX+7Ozs/uvr6/7o6Oj/5eXl/tjZ2f7X19f/09PU/tLS0v7Ozs//xMTE/sXFxf7Gxsb/x8fH/sfH + x/7Jycn/y8vL/svLy/7Kysr/ycnJ/sfHx//CwsL+z8/P/tra2v/Z2dn+2tra/ujo6P/n5+f+5OTk/t3d + 3fcXFxcfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXl5i87e3u/uXl + 5v7l5ub/5ebn/uXm5//l5uf+6err/unq6v7l5uf/5OXl/tfY2f7X2Nj/09TV/tHS0/7LzM3/yMjK/szN + zv7Nzc7/zc7P/s7Oz/7R0dH/1NTU/tXV1f7U1NT/09PT/tLS0v/Ozs7+29vb/t7e3v/d3d3+3d3d/uzs + 7P/r6+z+6urq/uvr7P4bGxsmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/+Xm5//i5OX/4+Tm/+Pk5v/j5OX/6+zt/+vs7f/n6On/5Obn/9jZ2//X2Nr/1NbX/9LU + 1f/Nzs//ycrM/83P0P/Oz9D/zs/R/8/Q0f/U1NT/19fX/9jY2P/X19j/1tbW/9TU1f/S0tP/29vb/+Dg + 4f/g4OD/4ODg/+/v7//v7+//7e3u//Dw8P8cHBwnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/uLj5P7c3d//3d7g/t3e4P/h4uT+6+zt/urs7f7j5eb/3+Hi/tXW + 2P7U1tf/0dPU/tDS0/7Lzc7/x8jK/s3P0P7MztD/zc/Q/s/Q0f7V1db/2dnZ/tnZ2v7Z2dn/2NjZ/tfX + 1//U1NX+3d3d/uPj4//i4uP+4uLj/vHx8v/y8vL+8fHy/vPz9P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/v/ufo6f7h4uT/4uPl/uLj5P/k5uf+6uzt/unr + 7f7n6Or/4uTm/tfY2v7W2Nn/09TW/s7Q0f7Gx8n/wsPF/sfJy/7Hycv/yMrM/srMzf7S0tP/1dXW/tXV + 1v7V1dX/1NTV/tTU1P/S0tP+29vb/uHh4v/j4+T+4+Pk/vPz9P/09PT+8/P0/vb29v4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/w/+Tl5v/l5uj/5ebn/+Xm + 5//k5uf/6uvt/+nr7f/l5+j/4+Xm/9bY2f/R09X/vsDB/7q8vf+7vb7/u7y9/7/Bw/+/wMH/vsDB/8DB + w//IyMn/y8vL/8rKy//Kysr/x8fI/8XFxv/Dw8T/x8fH/8zMzf/Pz8//1NTV//Pz9P/29vb/9vb2//f3 + +P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7w/t/h + 4v7b3N3/3N3e/tze3//i5Ob+6uvt/unr7P7j5Ob/3uDh/s3P0f7Q0tP/wcPF/sLExv7CxMb/wMLD/sXH + yP7Exsf/xsfJ/snKy/7S09P/1dXW/tDQ0f7Ozs7/y8vL/snJyf/Hx8f+yMjI/s7Ozv/Ly8z+19fX/vb2 + 9//39/j+9vb3/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/uPk5v7a3N3/29zd/tvc3v/g4uP+6uzt/unr7P7j5eb/3d/g/tbY2v7Z293/2Nrc/svN + zv7P0dL/0NLU/tDT1P7O0NL/ztDR/tDR0/7X2Nj/zs7P/s3Nzv7S0tP/1NTV/tTU1f/X19j+3t7e/ufn + 5//i4uL+9PT0/vj4+f/39/j+9/f4/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/+bn6P/l5uf/5efo/+fo6f/j5Ob/5+jp/+bn6f/m6On/5+nq/+Xn + 6P/a3N3/2tzd/87Q0f/N0NH/z9HT/87Q0f/P0dP/z9HS/9DR0//S0tL/xcXF/9TU1P/X19f/19fX/9bW + 1v/V1dX/3t7e/+Tk5P/t7e3/+Pj4//j4+P/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7v/t7g4P7b3N3/3+Dh/t3f4P/e4OH+3+Hi/t3f + 4P7k5ef/6Orr/uPl5v7e4OL/09bX/s7R0v7AwsT/u72//sXIyf7Jy83/y83O/s7Q0f7Oz8//w8PD/tLS + 0v7U1NT/1NTU/tPT0//U1NT+09PT/uPj4//4+Pj++Pj4/vj4+P/39/f+9/f3/vr6+v4eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/v/t7g4P7U1db/1NXW/tna + 2//Z29z+6Orr/unr7P7i4+X/3N7f/tze4P7f4eL/2dvd/srNzv7Fx8n/ury9/ri6vP65vL3/vsDC/sTG + x/7Ly8z/xsbG/tLS0v7S0tL/0NDQ/s7Ozv/MzMz+1NTU/vPz8//4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/w/+Xm + 5//f4OH/3+Dh/9/g4f/j5eb/6uzt/+nr7P/n6er/6Orr/+fp6v/m6Or/5ejp/9/h4v/b3d//2Nvc/9bZ + 2v/U1tj/09XX/9LU1f/V1dX/4+Pj/+3t7f/t7e3/7e3t/+3t7f/u7u7/9PT0//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87u/w/uHj4/7f4eH/4eLj/uLk5P/k5uf+6uzt/unr7P7l5+j/6Orr/ufp6v7m6Or/5ujp/uXn + 6f7k5uj/4+bn/uPl5/7i5eb/3uHi/trc3v7v8PD/+fn5/vr6+v77+/v/+vr6/vr6+v/5+fn++fn5/vn5 + +f/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuYmJm87u/w/t/g4f7U1db/1NbX/tbY2f/j5eb+6uzt/urr7f7d3+H/3uDh/t/h + 4/7m6er/5ejp/uTn6P7j5uj/4+bn/uLl5/7i5ef/4uXn/uTm6P7x8vP/+/v7/vv7+/77+/v/+vr6/vr6 + +v/5+fn++fn5/vr6+v/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJm87/Dx/+Tl5v/Z2tv/7O3u/+zu7//s7e7/6uzs/93f + 4P/b3d7/4OLj/9ze4P/d3+D/3+Lj/93g4f/f4uP/3eDi/+Dj5P/i5ef/4uXm/+Tm6P/w8fL/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/ufo6f7e4OD/6Onq/ujp + 6v/l5+j+6Onq/uTm5/7m6On/4uTl/uLk5f7h4+T/4uTm/uHk5f7h5OX/4eTl/uHj5f7h4+X/4eTl/uPl + 5/7v8PH/+vr7/vv7+/77+/v/+vr6/vr6+v/5+fn++fn5/vn5+f/4+Pj++Pj4/vj4+P/39/f+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/9/g + 4f/a29z/2Nna/9nb3P/Z29v/5ufo/+rs7f/p6+z/3d/g/97g4f/e4OH/3uHi/+Di5P/e4eP/4OLk/93g + 4v/d4OL/3eDh/+Ll5v/u7/D/+vr6//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/39/f/9/f3//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuZmZq87/Dx/uDh4v7R09P/09XW/tfY2f/s7u/+6+3u/uvs7f7X2dr/1tjZ/tfZ2/7c3t//3N7f/trd + 3v7c3uD/3N/g/t3g4v7i5ef/4uXn/uPm5/7t7/D/+fn5/vr6+v76+vr/+fn5/vn5+v/5+fn++Pj4/vj4 + +f/4+Pj+9/f3/vf3+P/39/f+9vb2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuZmZq87/Dx/uLk5f7f4OH/3t/g/t7f4P/m5+n+7O3u/uvt7v7f4eL/3+Hi/uPl + 5v7g4uP/4ePl/uPl5v7k5uj/4uXn/uLl5/7j5uj/4+bo/uTm6P7t7u//+Pn5/vn5+v76+vr/+fn5/vn5 + +f/4+Pj++Pj4/vj4+P/39/f+9vb3/vf39//29vb+9fX2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmpq88PHx/+jp6f/h4uL/3+Dh/+Hi4//o6er/7O7v/+zt + 7v/j5OX/3N7f/9/h4v/h4+T/4ePl/+Lk5v/m6Or/5ujp/+Xn6f/l5+j/5efo/+Xn6f/s7e7/+Pj4//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//f39//39/f/9/f3//b29v/29vb/9vb2//n5+f8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmZq87/Dx/t7f4P7Nzs//z9HS/sjJ + yv/s7u7+7O3u/uvt7f7q7O3/6evt/unr7P7o6uz/6Onr/ufp6/7n6er/5ujq/ubo6f7l5+n/5efp/uXn + 6f7r7e7/9/f3/vj4+f74+Pn/+Pj4/vj4+P/39/f+9vb3/vb29//29vb+9fX2/vX19v/19fX+9PT1/vj4 + +P4dHR4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuXl5i86+zt/tfY + 2f7Mzc7/ycrL/szNzv/HyMn+y8zN/s/Q0f7U1db/1tjY/s7P0P7Jysv/0dPU/uDi4/7g4uP/4OLj/uHj + 5P7i5OX/4+Xn/ubn6f7t7u//9/f3/vj4+P74+Pj/9/f3/vf39//29vf+9vb3/vb29v/19fb+9fX1/vX1 + 9f/09PX+9PT0/vj4+P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuVlpa85+fp/9bX2P/W1tf/0tLT/8nKy//R0tP/0dHS/9PU1P/T09T/zs7P/9DQ0f/W1tf/1tfY/9XW + 1v/b3N3/4eLj/+Pl5f/n6On/6evr/+zt7v/z8/T/9/f3//f39//39/f/9vb3//b29//29vb/9fX2//X1 + 9v/19fX/9PT1//T09f/09PT/8/P0//f3+P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuYmZm87Ozt/tjY2f7CwsP/zc3O/sjIyf/ExMX+y8vM/tLT1P7IyMn/ycrK/s/P + 0P7a29z/2Nna/tHS0/7Y2tr/7O3u/u3u7/7t7/D/7u/w/vHy8/729vb/9vb3/vb29v729vb/9fX2/vX1 + 9v/19fX+9PT1/vT09f/09PT+8/P0/vPz9P/z8/P+8vLz/vf39/4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampq87u7w/s/Q0f7Excb/vL2+/r6/wP+6u7z+wcHC/srL + zP7S09T/2trc/s7P0P7Gx8j/1tjZ/s/R0v7Oz9D/1dbX/tDR0v7S09T/0tPU/tPT1P7Y2Nn/1dXV/tPT + 1P7S0tP/1tbW/tTU1f/V1db+9PT0/vPz9P/z8/T+8/Pz/vLy8//y8vP+8fHy/vb29/4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQuampq87u7v/9/f4f/R0dL/1tfY/9ra + 2//p6uv/5ubn/+nq6//d3t7/1tfY/9PU1f/e3+D/4OHi/93e3//g4eL/3t/g/9/g4f/i4+T/8vLz//Pz + 9P/09PT/8PDw//Pz9P/w8PH/8vLy//Pz9P/x8fL/8/Pz//Ly8//y8vP/8vLz//Hx8v/x8fL/8fHx//b2 + 9v8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampu87u7v/tjY + 2f7Q0NH/09PV/t7e4P/r6+3+6enr/uvr7P7d3t//2drb/tfX2f7b3N3/3d7f/tzd3v7b3N3/2drb/tvc + 3f7h4eP/8/P0/vPz9P7z8/T/8/P0/vPz9P7z8/T/8vLz/vLy8//y8vP+8vLz/vHx8//x8fL+8fHy/vDw + 8v/w8PH+7+/x/vX19v4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAubm5u77u7v/u3t7/7t7e//7e3v/u3t7//r7O3+6uvs/uvs7f7r7O7/7Ozu/uzt7v7t7e//7e3v/u3u + 7/7t7vD/7u7w/u/v8f7x8fP/8vLz/vLy8/7y8vP/8vLz/vLy8/7x8fP/8fHy/vHx8v/x8fL+8PDy/vDw + 8f/w8PH+7+/x/u/v8P/v7/D+7u7w/vT09f4dHR0mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACUlJQicnJ229PT0/vT09P709PT/8/T0/vPz9P/z8/T+8vLz/vLy8/7y8/P/8vPz/vLz + 9P7z8/T/8/P0/vP09P709PX/9PX1/vX29v729vf/9vb3/vb29/729vf/9vb2/vb29v729vb/9vb2/vb2 + 9v/19fb+9fX2/vX19v/19fX+9fX1/vX19f/09PX+9PT1/vj4+P8YGBgfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OAEgICAVGhoaIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIhsbGx09PT4FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP4AAA///wAA+AAAAf// + AAD4AAAA//8AAPgAAAB//wAA+AAAAD//AAD4AAAAH/8AAPgAAAAP/wAA+AAAAAf/AAD4AAAAA/8AAPgA + AAAB/wAA+AAAAAD/AAD4AAAAAH8AAPgAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAP///////wAA//////// + AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAXFxcBDg4OGQ0NDSMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw0N + DSMLCwshEhISDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABgYGAa7u7zQ9/f4//f3+P/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/9/f4//b2 + 9//z8/T/7+/w/+jo6f6rq6vTLCwsOiEhIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6utL19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vb/9PT1//Ly8//u7u//6enq/+Dg4f/BwcHtNDQ0RSAgIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hurq70vX19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//39/f/9/f3//b29//19fb/9PT1//Dw8f/r6+z/5eXm/9XV1v/S0tPwODg4TSQkJAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4eHge6urvS9PT1//X19f/29vf/9vb3//f3 + 9//39/j/8vLz/+Xl5v/h4eL/4ODh/+Dg4P/e3t//3Nzc/9jY2P/S0tL/xsbH/+Tk5f/V1dfzPT0+VSYm + JgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6u9L09PT/8/P0//T0 + 9f/29vf/9/f4//f3+P/v7/D/2trb/9TU1P/Y2Nn/2NjZ/9fX2P/V1dX/0tLS/8zMzf/CwsP/5eXl//Dw + 8f/W1tj2PT0+Wx4eHwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hu7u70vT0 + 9P/y8vL/8/Pz//X19f/39/f/9/f3/+/v7//c3Nz/2dna/9zc3P/d3d3/3Nzc/9ra2v/Y2Nj/09PT/8rK + yv/o6Oj/+Pj4//Dw8f/W1tf3Ojo7XSMjIwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4e + Hge7u7vS8/Pz//Hx8f/y8vL/9fX1//j4+P/39/f/7u7u/9/f3//d3d3/29vb/9/f3//e3t7/3Nzc/9ra + 2v/X19f/0dHR/+Pj4//n5+f/39/f/9/f4P/Q0NL1Nzc3UyEhIQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHh4eB7u7u9Lz8/P/8PDw//Hx8f/19fX/9/f3//X19f/s7Oz/4+Pj/97e3v/c3Nz/4ODg/+Dg + 4P/f39//3d3d/9vb2//X19f/0dHR/8rKyv+/v7//xMTE/87Ozv/AwMHyNTU1SAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HuLi40u3t7f/o6Oj/6Ojo/+zs7P/y8vL/7e3t/+Tk5P/b29v/2dnZ/9vb + 2//X19f/2NjY/9jY2P/Z2dn/2dnZ/9fX1//U1NT/y8vL/9LS0v/T09P/4+Pj/9/f3/+5ubngIiIiDQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tLTS5+fo/+Dh4f/h4eL/5ebn/+nq6v/k5eX/2tvc/9TV + 1f/R0tP/xsfH/8XGxv/HyMn/ycnK/8zMzP/Pz8//zs7O/8zMzP/Nzc3/3Nzc/9nZ2f/p6er/6urq/+np + 6f4nJycZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLo6er/4eLj/+Hj5P/l5+j/6+zt/+Xn + 6P/b3N7/1dbX/9PV1v/KzM3/zM7P/83P0P/O0NH/1dXW/9jY2f/X19j/1dXW/9XV1f/g4OD/3d3d/+7u + 7v/v7/D/8PDw/ywsLBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW10ufo6f/g4eL/3+Hi/+Xn + 6P/q6+3/4+Xm/9rc3f/T1df/0NLU/8bHyf/Iysv/ycvM/8vNzv/U1NX/19fX/9bW1//V1db/1dXW/+Hh + 4f/f3+D/8fHy//T09P/09PX/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tbXS5ufo/9/g + 4v/f4eL/5ujp/+nr7f/j5eb/1tfZ/8fJy/+5u7z/uLm7/7y+v/+9v8D/v8DB/8jIyf/Kysr/x8fI/8TE + xP/BwcH/x8fI/8jIyf/r6+z/9vb3//f39/8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1 + ttLm5+j/3t/g/93f4P/k5ef/6uvt/+Hj5P/Z293/2dvd/83P0f/P0dL/0NPU/87Q0v/Q0tP/2dna/9LS + 0v/U1NT/1NTV/9bW1v/i4uP/4uLj//f3+P/39/j/+fn5/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAdHR0HtLW10ubn5//e3+D/3uDh/97f4P/g4uP/5efo/+Tm6P/X2dv/0NLT/8nLzP/Lzc7/zc/R/8/Q + 0f/Nzc7/zc3N/9XV1f/W1tb/1tbW/+Pj4//z8/P/+Pj4//j4+P/5+fn/LS0tGgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAB0dHQe0tbXS5ebm/9rc3f/f4OH/4uTl/+nr7P/i5OX/4OLk/+Di5P/Q0tT/wMLE/7y+ + v/+/wsP/xsjJ/8rKyv/Ozs7/0tLS/9DQ0P/MzMz/6Ojo//j4+P/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLk5ub/2tvc/93e3//k5uf/6evs/+bo6f/n6ev/5ujp/+Ll + 5v/d4OH/293f/9ja3P/U1tj/3+Dg//Dw8P/y8vL/8vLy//Ly8v/5+fn/+fn5//n5+f/4+Pj/+fn5/y4u + LhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW20ufp6f/c3t7/3d/f/+fp6v/q6+3/4OLj/+Pl + 5//m6Or/5efp/+Pm6P/j5ef/4uXn/+Lk5f/09fX/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4 + +P/5+fn/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1trbS6Onq/9/h4f/s7u//6+3u/+Hj + 5P/f4eL/3+Hi/+Di5P/e4eL/4OLk/+Dj5P/i5eb/4+bn//P09f/7+/v/+/v7//r6+v/6+vr/+fn5//n5 + +f/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7W2t9Lm5+j/3N3e/9ze + 3//d3t//6+zt/+bo6f/e4OL/3uDi/+Hj5f/f4uT/3+Lj/97h4//h4+X/8vPz//v7+//6+vr/+vr6//n5 + +f/5+fn/+Pj4//j4+P/39/f/+fn5/y4uLhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0Htba30ufo + 6f/a29z/3uDh/+zu7//r7e7/3N7f/9ze4P/f4eP/3eDh/97g4v/e4eP/4+Xn/+Pm5//x8vL/+vr6//r6 + +v/5+fn/+fn5//j4+P/39/j/9/f3//b29//4+Pj/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0d + HQe2t7fS6Onp/9rc3P/b3N3/5+nq/+zt7v/e3+D/3d/g/9/h4v/i5OX/5ujq/+Xn6f/k5+j/5efo//Dx + 8f/5+fr/+fn5//j4+f/4+Pj/9/f4//f39//29vf/9vb2//j4+P8uLi4aAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHR0dB7W2ttLm5+n/2Nna/9TV1v/q6+z/6uvs/+nq6//o6ev/5ujp/+bo6f/l5+n/5efo/+Xn + 6P/l5+n/7/Dx//j4+f/4+Pj/9/f4//f39//29vf/9vb2//X19v/19fX/9/f3/y0tLRoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HsbKy0tjY2f/Hx8j/wsPD/8fHyP/Hx8j/0NHS/8XGxv/Ky8z/1dbX/93e + 3//h4+P/5efo/+nr7P/z8/T/9/f4//f39//29vf/9vb2//X19v/19fX/9PT1//T09P/29vb/LS0tGgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1tbbS39/h/8vMzf/Jycr/xMTF/9LT1P/P0NH/0NHS/9vc + 3f/U1db/3+Dh/+nq6//n6On/6uvs//Hx8v/t7e3/8fHy/+7u7//x8fH/9PT1//Pz9P/z8/T/8vLz//X1 + 9v8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7a2t9Le3+D/x8jJ/8rLzP/Z2dr/2NjZ/9ra + 2//Nzs//1NXV/9fZ2v/U1db/1tfY/97f4P/k5OX/5+fn/+Pj4//i4uP/4+Pj/+np6f/z8/P/8vLz//Hx + 8v/x8fL/9PT1/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Htra30uTk5v/a2tv/4eHj/+rr + 7P/q6+z/4eLj/97f4f/h4uT/4uPk/+Dh4v/i4+T/6uvs//Pz9P/z8/T/8/P0//Ly8//y8vP/8vLz//Hx + 8v/x8fL/8PDx/+/v8f/z8/T/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGga4uLnP8vLz//Hy + 8v/x8fL/8PDx//Dw8f/w8PH/8PHy//Hx8v/x8vP/8vLz//Pz9P/19fX/9fX1//X19f/19fX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/P/8vLz//X19v8nJycWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcn + KBAsLCwXLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0t + LRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XKSkpFDY2NgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + ///gAA//4AAD/+AAAf/gAAD/4AAAf+AAAD/gAAAf4AAAD+AAAA/gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB/AA + AAf/////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTA2lpaYJ+fn+Zfn5/mX9/f5l/f3+Zf39/mX9/ + f5l+fn+Zfn5+mXx8fJl5eXmZW1tbdB0dHQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd319fb+9fX2/vX19v719fb+9fX2/vb29v729vb+9PT1/vHx8v7r6+z+4eHi/o6O + j7UiIiIPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt319fb/9vb2/vb2 + 9//29vf/9vb3/vf39//29vf/9vb3//Pz9P7u7u//5+fn/tra2/+enp++JSUlEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt3z8/T/9fX1/vb29//39/j/8fHy/tnZ2v/V1db/1tbW/9TU + 1P7Q0NH/ysrL/sDAwP/v7/D/pKSlxiUlJRYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrK + yt3z8/P+8/P0/vb29v739/f+8fHx/tzc3P7a2tr+3d3d/tvb3P7Z2dn+09PU/sjIyf74+Pj+8PDw/qOj + pMkiIiIXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrKyt3w8PD/8PDw/vX19f/39/f/7+/v/t7e + 3v/d3d3/39/f/97e3v7c3Nz/2NjY/tLS0v/i4uL/19fX/tfX1/+YmJnFIiIiEgAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd3t7e3/7u7u/vLy8v/09PT/6+vr/t/f3//d3d3/3Nzc/97e3v7d3d3/29vb/tjY + 2P/S0tL/ycnJ/tHR0f/Y2Nj/jY2NtBwcHAQAAAAAAAAAAAAAAAAAAAAAFhYWBcPDw93k5OX+4+Pk/ujo + 6f7o6en+3t7f/tXW1v7P0ND+x8jI/srKy/7MzMz+0NDQ/s7Oz/7Kysr+2NjZ/tvb2/7p6er+5ubm/Rwc + HBEAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3h4uT/4OHj/ubo6f/o6er/3N7f/tTW1//O0NL/yszO/83P + 0P7S0tP/2NjZ/tfX2P/U1NX/39/f/uHh4v/w8PH/8PDx/iEhIRMAAAAAAAAAAAAAAAAAAAAAFRYWBcLD + xN3k5ef/4+Xm/ufp6v/o6ev/3d7g/s7Q0f/CxMX/wcLE/8PFxv7Jysv/0NDQ/s/Pz//MzMz/1NTU/tra + 2//09PX/9fX2/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3e3+D/293e/ubn6f/m6On/2Nrb/tDS + 1P/Hycv/ycvN/8nLzf7R0dL/0NDR/tDQ0P/Pz8//19fX/t7e3v/39/j/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFRYWBcLDxN3h4uP+4uPk/uLj5P7j5eb+5ujp/tnb3f7Kzc7+x8rL/szP0P7P0NH+y8vL/tXV + 1f7V1dX+3t7e/vX19f74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3d39//2tzd/uTl + 5v/n6Or/4uTl/uHj5P/S1Nb/yMrM/8jKy/7Nz8//2tra/t/f3//d3d3/7e3t/vn5+f/4+Pj/+fn5/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFRYWBcPExN3d3t/+293e/ufp6v7l5+n+4+Xm/ubo6v7k5+j+4+Xn/uHk + 5f7o6er++vr6/vr6+v76+vr++fn5/vj4+P74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcPE + xd3h4uP/6uvs/unq6//g4uP/4OLj/uDi4//g4uT/4OPk/+Lk5v7q6+z/+/v7/vr6+//6+vr/+fn5/vj4 + +f/4+Pj/+fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTFxd3a3Nz/19jZ/ubn6P/l5+j/2tzd/t3f + 4f/d4OH/3eDi/+Di5P7o6uv/+vr6/vr6+v/5+fn/+Pj5/vj4+P/39/f/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFhYWBcTFxt3i5OT+3+Dh/unr7P7m6On+3+Hi/uHj5P7k5uj+5Obo/uTm6P7o6uv++fn5/vn5 + +f74+Pj+9/f4/vf39/729vb+9/f3/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcLDxN3U1Nb/y8zN/tvc + 3f/e3+D/3t/g/tvc3v/k5ef/4+Xn/+Tm5/7p6uz/9/f4/vj4+P/39/f/9vb3/vb29v/19fX/9vb2/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFhYWBcDBwd3R0tP/zMzN/szNzf/Q0NH/zc7P/tjZ2f/W19j/5+jp/+vs + 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 + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.vb new file mode 100644 index 0000000..e210903 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/FrmFinding.vb @@ -0,0 +1,106 @@ +Public Class FrmFinding + + Dim Finding As New clsFinding + + Dim m_key As Integer + Property Key As Integer + Get + Return m_key + End Get + Set(value As Integer) + m_key = value + End Set + End Property + + Dim m_pruefschrittresultatnr As Integer + Property Pruefschrittresultatnr As Integer + Get + Return m_pruefschrittresultatnr + End Get + Set(value As Integer) + m_pruefschrittresultatnr = value + End Set + End Property + + Dim m_isreadonly As Boolean + Property ISReadOnly As Boolean + Get + Return m_isreadonly + End Get + Set(value As Boolean) + m_isreadonly = value + End Set + End Property + + Dim sec As New Utils.MySecurity + + + + Private Sub FrmFinding_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.cbboxkritikalitaet.DataSource = Finding.kritikalitaet + Me.cbboxkritikalitaet.DisplayMember = "Bezeichnung" + Me.cbboxkritikalitaet.ValueMember = "kritikalitaetnr" + + Me.cbboxauswirkung.DataSource = Finding.auswirkung + Me.cbboxauswirkung.DisplayMember = "Bezeichnung" + Me.cbboxauswirkung.ValueMember = "Auswirkungnr" + + Me.cbboxWichtigkeit.DataSource = Finding.Wichtigkeit + Me.cbboxWichtigkeit.DisplayMember = "Bezeichnung" + Me.cbboxWichtigkeit.ValueMember = "WichtigkeitNr" + + If Key = -1 Then + Me.cbaktiv.Checked = True + + Else + Finding.Get_Data(Me.Key) + Me.txtBeschreibung.Text = Finding.sBeschreibung.Value + Me.txtBezeichnung.Text = Finding.sBezeichnung.Value + Me.cbaktiv.Checked = Finding.bAktiv.Value = True + Me.cbboxkritikalitaet.SelectedValue = Me.Finding.iKritikalitaetnr.Value + Me.cbboxWichtigkeit.SelectedValue = Me.Finding.iWichtigkeitnr.Value + Me.cbboxauswirkung.SelectedValue = Me.Finding.iAuswirkungnr.Value + + End If + If ISReadOnly Then + sec.Set_Form_Readonly(Me) + Me.btnAbbruch.Visible = False + Me.btnSave.Visible = False + + End If + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.DialogResult = DialogResult.Abort + Me.Close() + End Sub + + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.DialogResult = DialogResult.Abort + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + Me.DialogResult = DialogResult.OK + If Me.Key = -1 Then + Finding.Add_New() + Me.Key = Finding.iPruefschrittfindingNr + Else + Finding.Get_Data(Me.Key) + End If + Finding.sBezeichnung = New SqlTypes.SqlString(CType(Me.txtBezeichnung.Text, String)) + Finding.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + Finding.iPruefschrittresultatnr = New SqlTypes.SqlInt32(CType(Me.Pruefschrittresultatnr, Int16)) + Finding.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) + Finding.iAuswirkungnr = New SqlTypes.SqlInt32(CType(Me.cbboxauswirkung.SelectedValue, Int32)) + Finding.iKritikalitaetnr = New SqlTypes.SqlInt32(CType(Me.cbboxkritikalitaet.SelectedValue, Int32)) + Finding.iWichtigkeitnr = New SqlTypes.SqlInt32(CType(Me.cbboxWichtigkeit.SelectedValue, Int32)) + + Finding.Save_Data() + Me.Close() + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + Dim f As New frmFindingHilfe + f.Show() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.Designer.vb new file mode 100644 index 0000000..a3bc7f6 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.Designer.vb @@ -0,0 +1,886 @@ + _ +Partial Class PruefschrittDetailsBearbeitung + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(PruefschrittDetailsBearbeitung)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GrpResultate = New System.Windows.Forms.GroupBox() + Me.GrpDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.GrpTypAnzahl_Massen = New System.Windows.Forms.GroupBox() + Me.lblFindingsKein = New System.Windows.Forms.Label() + Me.txtFindingsKein = New System.Windows.Forms.NumericUpDown() + Me.lblFindingsHoch = New System.Windows.Forms.Label() + Me.lblFindingsMittel = New System.Windows.Forms.Label() + Me.lblFidingsTief = New System.Windows.Forms.Label() + Me.txtFindingsHoch = New System.Windows.Forms.NumericUpDown() + Me.txtFindingsMittel = New System.Windows.Forms.NumericUpDown() + Me.txtFindingsTief = New System.Windows.Forms.NumericUpDown() + Me.txtAnzahlPruefungen = New System.Windows.Forms.NumericUpDown() + Me.lblAnzPruefungen = New System.Windows.Forms.Label() + Me.GrpBeschreibung = New System.Windows.Forms.GroupBox() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.GrpKurzbeschreibung = New System.Windows.Forms.GroupBox() + Me.txtKurzbeschreibung = New System.Windows.Forms.TextBox() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.cbboxResultatText = New System.Windows.Forms.ComboBox() + Me.btnPruefungabgeschlossen = New System.Windows.Forms.Button() + Me.cbboxStatus = New System.Windows.Forms.ComboBox() + Me.grpFindings = New System.Windows.Forms.GroupBox() + Me.GrpMassnahmen = New System.Windows.Forms.GroupBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.DokumenteMassnahmen = New ThemenDokumente.Dokumente() + Me.GrpMassnahmenList = New System.Windows.Forms.GroupBox() + Me.txtMassnahmeResultat = New System.Windows.Forms.TextBox() + Me.lblMassnahmeResultat = New System.Windows.Forms.Label() + Me.txtMassnahmebeschreibung = New System.Windows.Forms.TextBox() + Me.txtMassnahmeBezeichnung = New System.Windows.Forms.TextBox() + Me.lblMassnahmeBezeichnung = New System.Windows.Forms.Label() + Me.lblMassnahmeBeschreibung = New System.Windows.Forms.Label() + Me.C1Massnahmen = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ToolStripMassnahmen = New System.Windows.Forms.ToolStrip() + Me.tsbtnMassnahmeerfassen = New System.Windows.Forms.ToolStripButton() + Me.tsbtnMassnahmeEdit = New System.Windows.Forms.ToolStripButton() + Me.tsbtnMassnahmeLoeschen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton8 = New System.Windows.Forms.ToolStripButton() + Me.GrpFinding = New System.Windows.Forms.GroupBox() + Me.GrpFindingDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteFindings = New ThemenDokumente.Dokumente() + Me.GrpFindingList = New System.Windows.Forms.GroupBox() + Me.txtFindingBeschreibung = New System.Windows.Forms.TextBox() + Me.C1Findings = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ToolStripFindings = New System.Windows.Forms.ToolStrip() + Me.tsbtnNeuesFinding = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFindingBearbeiten = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFindingDelete = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.txtFindingBezeichnung = New System.Windows.Forms.TextBox() + Me.lblFindingBezeichnung = New System.Windows.Forms.Label() + Me.lblFindingBeschreibung = New System.Windows.Forms.Label() + Me.ImageListFindings = New System.Windows.Forms.ImageList(Me.components) + Me.ImageListeMassnahmen = New System.Windows.Forms.ImageList(Me.components) + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + Me.GrpResultate.SuspendLayout() + Me.GrpDokumente.SuspendLayout() + Me.GrpTypAnzahl_Massen.SuspendLayout() + CType(Me.txtFindingsKein, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtFindingsHoch, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtFindingsMittel, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtFindingsTief, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtAnzahlPruefungen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GrpBeschreibung.SuspendLayout() + Me.GrpKurzbeschreibung.SuspendLayout() + Me.GrpStatus.SuspendLayout() + Me.grpFindings.SuspendLayout() + Me.GrpMassnahmen.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GrpMassnahmenList.SuspendLayout() + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStripMassnahmen.SuspendLayout() + Me.GrpFinding.SuspendLayout() + Me.GrpFindingDokumente.SuspendLayout() + Me.GrpFindingList.SuspendLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStripFindings.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(1185, 25) + Me.ToolStrip1.TabIndex = 7 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "Speichern" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1185, 24) + Me.MenuStrip1.TabIndex = 8 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'GrpResultate + ' + Me.GrpResultate.Controls.Add(Me.GrpDokumente) + Me.GrpResultate.Controls.Add(Me.GrpTypAnzahl_Massen) + Me.GrpResultate.Controls.Add(Me.GrpBeschreibung) + Me.GrpResultate.Controls.Add(Me.GrpKurzbeschreibung) + Me.GrpResultate.Controls.Add(Me.GrpStatus) + Me.GrpResultate.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpResultate.Location = New System.Drawing.Point(0, 49) + Me.GrpResultate.Name = "GrpResultate" + Me.GrpResultate.Size = New System.Drawing.Size(374, 689) + Me.GrpResultate.TabIndex = 9 + Me.GrpResultate.TabStop = False + Me.GrpResultate.Text = "Resultat der Prüfung" + ' + 'GrpDokumente + ' + Me.GrpDokumente.Controls.Add(Me.DokumenteAllgemein) + Me.GrpDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumente.Location = New System.Drawing.Point(3, 445) + Me.GrpDokumente.Name = "GrpDokumente" + Me.GrpDokumente.Size = New System.Drawing.Size(368, 241) + Me.GrpDokumente.TabIndex = 2 + Me.GrpDokumente.TabStop = False + Me.GrpDokumente.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(362, 222) + Me.DokumenteAllgemein.TabIndex = 33 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'GrpTypAnzahl_Massen + ' + Me.GrpTypAnzahl_Massen.Controls.Add(Me.lblFindingsKein) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.txtFindingsKein) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.lblFindingsHoch) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.lblFindingsMittel) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.lblFidingsTief) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.txtFindingsHoch) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.txtFindingsMittel) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.txtFindingsTief) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.txtAnzahlPruefungen) + Me.GrpTypAnzahl_Massen.Controls.Add(Me.lblAnzPruefungen) + Me.GrpTypAnzahl_Massen.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpTypAnzahl_Massen.Location = New System.Drawing.Point(3, 323) + Me.GrpTypAnzahl_Massen.Name = "GrpTypAnzahl_Massen" + Me.GrpTypAnzahl_Massen.Size = New System.Drawing.Size(368, 122) + Me.GrpTypAnzahl_Massen.TabIndex = 6 + Me.GrpTypAnzahl_Massen.TabStop = False + Me.GrpTypAnzahl_Massen.Text = "Anzahl Prüfungen" + ' + 'lblFindingsKein + ' + Me.lblFindingsKein.AutoSize = True + Me.lblFindingsKein.Location = New System.Drawing.Point(194, 23) + Me.lblFindingsKein.Name = "lblFindingsKein" + Me.lblFindingsKein.Size = New System.Drawing.Size(75, 13) + Me.lblFindingsKein.TabIndex = 9 + Me.lblFindingsKein.Text = "keine Findings" + ' + 'txtFindingsKein + ' + Me.txtFindingsKein.Location = New System.Drawing.Point(273, 21) + Me.txtFindingsKein.Maximum = New Decimal(New Integer() {100000, 0, 0, 0}) + Me.txtFindingsKein.Name = "txtFindingsKein" + Me.txtFindingsKein.Size = New System.Drawing.Size(75, 20) + Me.txtFindingsKein.TabIndex = 8 + ' + 'lblFindingsHoch + ' + Me.lblFindingsHoch.AutoSize = True + Me.lblFindingsHoch.Location = New System.Drawing.Point(194, 100) + Me.lblFindingsHoch.Name = "lblFindingsHoch" + Me.lblFindingsHoch.Size = New System.Drawing.Size(73, 13) + Me.lblFindingsHoch.TabIndex = 7 + Me.lblFindingsHoch.Text = "Findings hoch" + ' + 'lblFindingsMittel + ' + Me.lblFindingsMittel.AutoSize = True + Me.lblFindingsMittel.Location = New System.Drawing.Point(194, 74) + Me.lblFindingsMittel.Name = "lblFindingsMittel" + Me.lblFindingsMittel.Size = New System.Drawing.Size(73, 13) + Me.lblFindingsMittel.TabIndex = 6 + Me.lblFindingsMittel.Text = "Findings mittel" + ' + 'lblFidingsTief + ' + Me.lblFidingsTief.AutoSize = True + Me.lblFidingsTief.Location = New System.Drawing.Point(194, 48) + Me.lblFidingsTief.Name = "lblFidingsTief" + Me.lblFidingsTief.Size = New System.Drawing.Size(63, 13) + Me.lblFidingsTief.TabIndex = 5 + Me.lblFidingsTief.Text = "Findings tief" + ' + 'txtFindingsHoch + ' + Me.txtFindingsHoch.Location = New System.Drawing.Point(273, 98) + Me.txtFindingsHoch.Maximum = New Decimal(New Integer() {100000, 0, 0, 0}) + Me.txtFindingsHoch.Name = "txtFindingsHoch" + Me.txtFindingsHoch.Size = New System.Drawing.Size(75, 20) + Me.txtFindingsHoch.TabIndex = 4 + ' + 'txtFindingsMittel + ' + Me.txtFindingsMittel.Location = New System.Drawing.Point(273, 72) + Me.txtFindingsMittel.Maximum = New Decimal(New Integer() {100000, 0, 0, 0}) + Me.txtFindingsMittel.Name = "txtFindingsMittel" + Me.txtFindingsMittel.Size = New System.Drawing.Size(75, 20) + Me.txtFindingsMittel.TabIndex = 3 + ' + 'txtFindingsTief + ' + Me.txtFindingsTief.Location = New System.Drawing.Point(273, 46) + Me.txtFindingsTief.Maximum = New Decimal(New Integer() {100000, 0, 0, 0}) + Me.txtFindingsTief.Name = "txtFindingsTief" + Me.txtFindingsTief.Size = New System.Drawing.Size(75, 20) + Me.txtFindingsTief.TabIndex = 2 + ' + 'txtAnzahlPruefungen + ' + Me.txtAnzahlPruefungen.Location = New System.Drawing.Point(95, 19) + Me.txtAnzahlPruefungen.Maximum = New Decimal(New Integer() {100000, 0, 0, 0}) + Me.txtAnzahlPruefungen.Name = "txtAnzahlPruefungen" + Me.txtAnzahlPruefungen.Size = New System.Drawing.Size(75, 20) + Me.txtAnzahlPruefungen.TabIndex = 1 + ' + 'lblAnzPruefungen + ' + Me.lblAnzPruefungen.AutoSize = True + Me.lblAnzPruefungen.Location = New System.Drawing.Point(9, 21) + Me.lblAnzPruefungen.Name = "lblAnzPruefungen" + Me.lblAnzPruefungen.Size = New System.Drawing.Size(80, 13) + Me.lblAnzPruefungen.TabIndex = 0 + Me.lblAnzPruefungen.Text = "Anz. Prüfungen" + ' + 'GrpBeschreibung + ' + Me.GrpBeschreibung.Controls.Add(Me.txtBeschreibung) + Me.GrpBeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpBeschreibung.Location = New System.Drawing.Point(3, 102) + Me.GrpBeschreibung.Name = "GrpBeschreibung" + Me.GrpBeschreibung.Size = New System.Drawing.Size(368, 221) + Me.GrpBeschreibung.TabIndex = 1 + Me.GrpBeschreibung.TabStop = False + Me.GrpBeschreibung.Text = "Beschreibung" + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtBeschreibung.Location = New System.Drawing.Point(3, 16) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(362, 202) + Me.txtBeschreibung.TabIndex = 3 + ' + 'GrpKurzbeschreibung + ' + Me.GrpKurzbeschreibung.Controls.Add(Me.txtKurzbeschreibung) + Me.GrpKurzbeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpKurzbeschreibung.Location = New System.Drawing.Point(3, 92) + Me.GrpKurzbeschreibung.Name = "GrpKurzbeschreibung" + Me.GrpKurzbeschreibung.Size = New System.Drawing.Size(368, 10) + Me.GrpKurzbeschreibung.TabIndex = 0 + Me.GrpKurzbeschreibung.TabStop = False + Me.GrpKurzbeschreibung.Text = "Kurzbeschreibung" + Me.GrpKurzbeschreibung.Visible = False + ' + 'txtKurzbeschreibung + ' + Me.txtKurzbeschreibung.Dock = System.Windows.Forms.DockStyle.Bottom + Me.txtKurzbeschreibung.Location = New System.Drawing.Point(3, -4) + Me.txtKurzbeschreibung.Name = "txtKurzbeschreibung" + Me.txtKurzbeschreibung.ReadOnly = True + Me.txtKurzbeschreibung.Size = New System.Drawing.Size(362, 20) + Me.txtKurzbeschreibung.TabIndex = 4 + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.Label1) + Me.GrpStatus.Controls.Add(Me.cbboxResultatText) + Me.GrpStatus.Controls.Add(Me.btnPruefungabgeschlossen) + Me.GrpStatus.Controls.Add(Me.cbboxStatus) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpStatus.Location = New System.Drawing.Point(3, 16) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Size = New System.Drawing.Size(368, 76) + Me.GrpStatus.TabIndex = 3 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Abschluss" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 19) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(60, 13) + Me.Label1.TabIndex = 3 + Me.Label1.Text = "Prüfresultat" + ' + 'cbboxResultatText + ' + Me.cbboxResultatText.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxResultatText.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxResultatText.FormattingEnabled = True + Me.cbboxResultatText.Location = New System.Drawing.Point(78, 16) + Me.cbboxResultatText.Name = "cbboxResultatText" + Me.cbboxResultatText.Size = New System.Drawing.Size(284, 21) + Me.cbboxResultatText.TabIndex = 2 + ' + 'btnPruefungabgeschlossen + ' + Me.btnPruefungabgeschlossen.Location = New System.Drawing.Point(9, 43) + Me.btnPruefungabgeschlossen.Name = "btnPruefungabgeschlossen" + Me.btnPruefungabgeschlossen.Size = New System.Drawing.Size(130, 23) + Me.btnPruefungabgeschlossen.TabIndex = 1 + Me.btnPruefungabgeschlossen.Text = "Prüfung abgeschlossen" + Me.btnPruefungabgeschlossen.UseVisualStyleBackColor = True + ' + 'cbboxStatus + ' + Me.cbboxStatus.FormattingEnabled = True + Me.cbboxStatus.Location = New System.Drawing.Point(10, 16) + Me.cbboxStatus.Name = "cbboxStatus" + Me.cbboxStatus.Size = New System.Drawing.Size(94, 21) + Me.cbboxStatus.TabIndex = 0 + Me.cbboxStatus.Visible = False + ' + 'grpFindings + ' + Me.grpFindings.Controls.Add(Me.GrpMassnahmen) + Me.grpFindings.Controls.Add(Me.GrpFinding) + Me.grpFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.grpFindings.Location = New System.Drawing.Point(374, 49) + Me.grpFindings.Name = "grpFindings" + Me.grpFindings.Size = New System.Drawing.Size(811, 689) + Me.grpFindings.TabIndex = 10 + Me.grpFindings.TabStop = False + Me.grpFindings.Text = "Feststellungen und Massnahmen" + ' + 'GrpMassnahmen + ' + Me.GrpMassnahmen.Controls.Add(Me.GroupBox2) + Me.GrpMassnahmen.Controls.Add(Me.GrpMassnahmenList) + Me.GrpMassnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpMassnahmen.Location = New System.Drawing.Point(3, 332) + Me.GrpMassnahmen.Name = "GrpMassnahmen" + Me.GrpMassnahmen.Size = New System.Drawing.Size(805, 354) + Me.GrpMassnahmen.TabIndex = 1 + Me.GrpMassnahmen.TabStop = False + Me.GrpMassnahmen.Text = "Massnahmen" + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.DokumenteMassnahmen) + Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox2.Location = New System.Drawing.Point(548, 16) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(254, 335) + Me.GroupBox2.TabIndex = 13 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Dokumente" + ' + 'DokumenteMassnahmen + ' + Me.DokumenteMassnahmen.ConnectionString = Nothing + Me.DokumenteMassnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteMassnahmen.Doktype = 0 + Me.DokumenteMassnahmen.Location = New System.Drawing.Point(3, 16) + Me.DokumenteMassnahmen.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteMassnahmen.Mitarbeiternr = 0 + Me.DokumenteMassnahmen.Name = "DokumenteMassnahmen" + Me.DokumenteMassnahmen.Pruefschrittnr = 0 + Me.DokumenteMassnahmen.Size = New System.Drawing.Size(248, 316) + Me.DokumenteMassnahmen.TabIndex = 33 + Me.DokumenteMassnahmen.TempFilePath = Nothing + Me.DokumenteMassnahmen.ThemaNr = 0 + ' + 'GrpMassnahmenList + ' + Me.GrpMassnahmenList.Controls.Add(Me.txtMassnahmeResultat) + Me.GrpMassnahmenList.Controls.Add(Me.lblMassnahmeResultat) + Me.GrpMassnahmenList.Controls.Add(Me.txtMassnahmebeschreibung) + Me.GrpMassnahmenList.Controls.Add(Me.txtMassnahmeBezeichnung) + Me.GrpMassnahmenList.Controls.Add(Me.lblMassnahmeBezeichnung) + Me.GrpMassnahmenList.Controls.Add(Me.lblMassnahmeBeschreibung) + Me.GrpMassnahmenList.Controls.Add(Me.C1Massnahmen) + Me.GrpMassnahmenList.Controls.Add(Me.ToolStripMassnahmen) + Me.GrpMassnahmenList.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpMassnahmenList.Location = New System.Drawing.Point(3, 16) + Me.GrpMassnahmenList.Name = "GrpMassnahmenList" + Me.GrpMassnahmenList.Size = New System.Drawing.Size(545, 335) + Me.GrpMassnahmenList.TabIndex = 14 + Me.GrpMassnahmenList.TabStop = False + ' + 'txtMassnahmeResultat + ' + Me.txtMassnahmeResultat.BackColor = System.Drawing.Color.White + Me.txtMassnahmeResultat.Location = New System.Drawing.Point(251, 196) + Me.txtMassnahmeResultat.Multiline = True + Me.txtMassnahmeResultat.Name = "txtMassnahmeResultat" + Me.txtMassnahmeResultat.ReadOnly = True + Me.txtMassnahmeResultat.Size = New System.Drawing.Size(288, 94) + Me.txtMassnahmeResultat.TabIndex = 21 + ' + 'lblMassnahmeResultat + ' + Me.lblMassnahmeResultat.AutoSize = True + Me.lblMassnahmeResultat.Location = New System.Drawing.Point(251, 181) + Me.lblMassnahmeResultat.Name = "lblMassnahmeResultat" + Me.lblMassnahmeResultat.Size = New System.Drawing.Size(46, 13) + Me.lblMassnahmeResultat.TabIndex = 20 + Me.lblMassnahmeResultat.Text = "Resultat" + ' + 'txtMassnahmebeschreibung + ' + Me.txtMassnahmebeschreibung.BackColor = System.Drawing.Color.White + Me.txtMassnahmebeschreibung.Location = New System.Drawing.Point(2, 235) + Me.txtMassnahmebeschreibung.Multiline = True + Me.txtMassnahmebeschreibung.Name = "txtMassnahmebeschreibung" + Me.txtMassnahmebeschreibung.ReadOnly = True + Me.txtMassnahmebeschreibung.Size = New System.Drawing.Size(243, 55) + Me.txtMassnahmebeschreibung.TabIndex = 19 + ' + 'txtMassnahmeBezeichnung + ' + Me.txtMassnahmeBezeichnung.BackColor = System.Drawing.Color.White + Me.txtMassnahmeBezeichnung.Location = New System.Drawing.Point(2, 196) + Me.txtMassnahmeBezeichnung.Name = "txtMassnahmeBezeichnung" + Me.txtMassnahmeBezeichnung.ReadOnly = True + Me.txtMassnahmeBezeichnung.Size = New System.Drawing.Size(243, 20) + Me.txtMassnahmeBezeichnung.TabIndex = 18 + ' + 'lblMassnahmeBezeichnung + ' + Me.lblMassnahmeBezeichnung.AutoSize = True + Me.lblMassnahmeBezeichnung.Location = New System.Drawing.Point(3, 181) + Me.lblMassnahmeBezeichnung.Name = "lblMassnahmeBezeichnung" + Me.lblMassnahmeBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblMassnahmeBezeichnung.TabIndex = 16 + Me.lblMassnahmeBezeichnung.Text = "Bezeichnung" + ' + 'lblMassnahmeBeschreibung + ' + Me.lblMassnahmeBeschreibung.AutoSize = True + Me.lblMassnahmeBeschreibung.Location = New System.Drawing.Point(3, 219) + Me.lblMassnahmeBeschreibung.Name = "lblMassnahmeBeschreibung" + Me.lblMassnahmeBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblMassnahmeBeschreibung.TabIndex = 17 + Me.lblMassnahmeBeschreibung.Text = "Beschreibung" + ' + 'C1Massnahmen + ' + Me.C1Massnahmen.AllowUpdate = False + Me.C1Massnahmen.AlternatingRows = True + Me.C1Massnahmen.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Massnahmen.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Massnahmen.FilterBar = True + Me.C1Massnahmen.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Massnahmen.Images.Add(CType(resources.GetObject("C1Massnahmen.Images"), System.Drawing.Image)) + Me.C1Massnahmen.Location = New System.Drawing.Point(3, 41) + Me.C1Massnahmen.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Massnahmen.Name = "C1Massnahmen" + Me.C1Massnahmen.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Massnahmen.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Massnahmen.PreviewInfo.ZoomFactor = 75.0R + Me.C1Massnahmen.PrintInfo.PageSettings = CType(resources.GetObject("C1Massnahmen.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Massnahmen.Size = New System.Drawing.Size(539, 128) + Me.C1Massnahmen.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Massnahmen.TabIndex = 11 + Me.C1Massnahmen.Text = "C1TrueDBGrid1" + Me.C1Massnahmen.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Massnahmen.PropBag = resources.GetString("C1Massnahmen.PropBag") + ' + 'ToolStripMassnahmen + ' + Me.ToolStripMassnahmen.AllowDrop = True + Me.ToolStripMassnahmen.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnMassnahmeerfassen, Me.tsbtnMassnahmeEdit, Me.tsbtnMassnahmeLoeschen, Me.ToolStripButton8}) + Me.ToolStripMassnahmen.Location = New System.Drawing.Point(3, 16) + Me.ToolStripMassnahmen.Name = "ToolStripMassnahmen" + Me.ToolStripMassnahmen.Size = New System.Drawing.Size(539, 25) + Me.ToolStripMassnahmen.TabIndex = 1 + Me.ToolStripMassnahmen.Text = "ToolStrip3" + ' + 'tsbtnMassnahmeerfassen + ' + Me.tsbtnMassnahmeerfassen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnMassnahmeerfassen.Image = CType(resources.GetObject("tsbtnMassnahmeerfassen.Image"), System.Drawing.Image) + Me.tsbtnMassnahmeerfassen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnMassnahmeerfassen.Name = "tsbtnMassnahmeerfassen" + Me.tsbtnMassnahmeerfassen.Size = New System.Drawing.Size(23, 22) + Me.tsbtnMassnahmeerfassen.Text = "Neue Massnahme" + ' + 'tsbtnMassnahmeEdit + ' + Me.tsbtnMassnahmeEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnMassnahmeEdit.Image = CType(resources.GetObject("tsbtnMassnahmeEdit.Image"), System.Drawing.Image) + Me.tsbtnMassnahmeEdit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnMassnahmeEdit.Name = "tsbtnMassnahmeEdit" + Me.tsbtnMassnahmeEdit.Size = New System.Drawing.Size(23, 22) + Me.tsbtnMassnahmeEdit.Text = "Massnahme bearbeiten" + ' + 'tsbtnMassnahmeLoeschen + ' + Me.tsbtnMassnahmeLoeschen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnMassnahmeLoeschen.Image = CType(resources.GetObject("tsbtnMassnahmeLoeschen.Image"), System.Drawing.Image) + Me.tsbtnMassnahmeLoeschen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnMassnahmeLoeschen.Name = "tsbtnMassnahmeLoeschen" + Me.tsbtnMassnahmeLoeschen.Size = New System.Drawing.Size(23, 22) + Me.tsbtnMassnahmeLoeschen.Text = "Massnahme löschen" + ' + 'ToolStripButton8 + ' + Me.ToolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton8.Image = CType(resources.GetObject("ToolStripButton8.Image"), System.Drawing.Image) + Me.ToolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton8.Name = "ToolStripButton8" + Me.ToolStripButton8.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton8.Text = "Dokument anzeigen" + Me.ToolStripButton8.Visible = False + ' + 'GrpFinding + ' + Me.GrpFinding.Controls.Add(Me.GrpFindingDokumente) + Me.GrpFinding.Controls.Add(Me.GrpFindingList) + Me.GrpFinding.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpFinding.Location = New System.Drawing.Point(3, 16) + Me.GrpFinding.Name = "GrpFinding" + Me.GrpFinding.Size = New System.Drawing.Size(805, 316) + Me.GrpFinding.TabIndex = 0 + Me.GrpFinding.TabStop = False + Me.GrpFinding.Text = "Feststellung" + ' + 'GrpFindingDokumente + ' + Me.GrpFindingDokumente.Controls.Add(Me.DokumenteFindings) + Me.GrpFindingDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpFindingDokumente.Location = New System.Drawing.Point(384, 16) + Me.GrpFindingDokumente.Name = "GrpFindingDokumente" + Me.GrpFindingDokumente.Size = New System.Drawing.Size(418, 297) + Me.GrpFindingDokumente.TabIndex = 12 + Me.GrpFindingDokumente.TabStop = False + Me.GrpFindingDokumente.Text = "Dokumente" + ' + 'DokumenteFindings + ' + Me.DokumenteFindings.ConnectionString = Nothing + Me.DokumenteFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteFindings.Doktype = 0 + Me.DokumenteFindings.Location = New System.Drawing.Point(3, 16) + Me.DokumenteFindings.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteFindings.Mitarbeiternr = 0 + Me.DokumenteFindings.Name = "DokumenteFindings" + Me.DokumenteFindings.Pruefschrittnr = 0 + Me.DokumenteFindings.Size = New System.Drawing.Size(412, 278) + Me.DokumenteFindings.TabIndex = 33 + Me.DokumenteFindings.TempFilePath = Nothing + Me.DokumenteFindings.ThemaNr = 0 + ' + 'GrpFindingList + ' + Me.GrpFindingList.Controls.Add(Me.txtFindingBeschreibung) + Me.GrpFindingList.Controls.Add(Me.C1Findings) + Me.GrpFindingList.Controls.Add(Me.ToolStripFindings) + Me.GrpFindingList.Controls.Add(Me.txtFindingBezeichnung) + Me.GrpFindingList.Controls.Add(Me.lblFindingBezeichnung) + Me.GrpFindingList.Controls.Add(Me.lblFindingBeschreibung) + Me.GrpFindingList.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpFindingList.Location = New System.Drawing.Point(3, 16) + Me.GrpFindingList.Name = "GrpFindingList" + Me.GrpFindingList.Size = New System.Drawing.Size(381, 297) + Me.GrpFindingList.TabIndex = 13 + Me.GrpFindingList.TabStop = False + ' + 'txtFindingBeschreibung + ' + Me.txtFindingBeschreibung.BackColor = System.Drawing.Color.White + Me.txtFindingBeschreibung.Location = New System.Drawing.Point(5, 236) + Me.txtFindingBeschreibung.Multiline = True + Me.txtFindingBeschreibung.Name = "txtFindingBeschreibung" + Me.txtFindingBeschreibung.ReadOnly = True + Me.txtFindingBeschreibung.Size = New System.Drawing.Size(362, 55) + Me.txtFindingBeschreibung.TabIndex = 15 + ' + 'C1Findings + ' + Me.C1Findings.AllowUpdate = False + Me.C1Findings.AlternatingRows = True + Me.C1Findings.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Findings.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Findings.FilterBar = True + Me.C1Findings.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Findings.Images.Add(CType(resources.GetObject("C1Findings.Images"), System.Drawing.Image)) + Me.C1Findings.Location = New System.Drawing.Point(3, 41) + Me.C1Findings.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Findings.Name = "C1Findings" + Me.C1Findings.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Findings.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Findings.PreviewInfo.ZoomFactor = 75.0R + Me.C1Findings.PrintInfo.PageSettings = CType(resources.GetObject("C1Findings.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Findings.Size = New System.Drawing.Size(375, 138) + Me.C1Findings.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Findings.TabIndex = 11 + Me.C1Findings.Text = "C1TrueDBGrid1" + Me.C1Findings.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Findings.PropBag = resources.GetString("C1Findings.PropBag") + ' + 'ToolStripFindings + ' + Me.ToolStripFindings.AllowDrop = True + Me.ToolStripFindings.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnNeuesFinding, Me.tsbtnFindingBearbeiten, Me.tsbtnFindingDelete, Me.ToolStripButton3}) + Me.ToolStripFindings.Location = New System.Drawing.Point(3, 16) + Me.ToolStripFindings.Name = "ToolStripFindings" + Me.ToolStripFindings.Size = New System.Drawing.Size(375, 25) + Me.ToolStripFindings.TabIndex = 1 + Me.ToolStripFindings.Text = "ToolStrip2" + ' + 'tsbtnNeuesFinding + ' + Me.tsbtnNeuesFinding.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnNeuesFinding.Image = CType(resources.GetObject("tsbtnNeuesFinding.Image"), System.Drawing.Image) + Me.tsbtnNeuesFinding.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnNeuesFinding.Name = "tsbtnNeuesFinding" + Me.tsbtnNeuesFinding.Size = New System.Drawing.Size(23, 22) + Me.tsbtnNeuesFinding.Text = "Neue Feststellung erfassen" + ' + 'tsbtnFindingBearbeiten + ' + Me.tsbtnFindingBearbeiten.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingBearbeiten.Image = CType(resources.GetObject("tsbtnFindingBearbeiten.Image"), System.Drawing.Image) + Me.tsbtnFindingBearbeiten.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingBearbeiten.Name = "tsbtnFindingBearbeiten" + Me.tsbtnFindingBearbeiten.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingBearbeiten.Text = "Feststellung bearbeiten" + ' + 'tsbtnFindingDelete + ' + Me.tsbtnFindingDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingDelete.Image = CType(resources.GetObject("tsbtnFindingDelete.Image"), System.Drawing.Image) + Me.tsbtnFindingDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingDelete.Name = "tsbtnFindingDelete" + Me.tsbtnFindingDelete.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingDelete.Text = "Feststellung löschen" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "Dokument anzeigen" + Me.ToolStripButton3.Visible = False + ' + 'txtFindingBezeichnung + ' + Me.txtFindingBezeichnung.BackColor = System.Drawing.Color.White + Me.txtFindingBezeichnung.Location = New System.Drawing.Point(5, 197) + Me.txtFindingBezeichnung.Name = "txtFindingBezeichnung" + Me.txtFindingBezeichnung.ReadOnly = True + Me.txtFindingBezeichnung.Size = New System.Drawing.Size(362, 20) + Me.txtFindingBezeichnung.TabIndex = 14 + ' + 'lblFindingBezeichnung + ' + Me.lblFindingBezeichnung.AutoSize = True + Me.lblFindingBezeichnung.Location = New System.Drawing.Point(6, 182) + Me.lblFindingBezeichnung.Name = "lblFindingBezeichnung" + Me.lblFindingBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblFindingBezeichnung.TabIndex = 12 + Me.lblFindingBezeichnung.Text = "Bezeichnung" + ' + 'lblFindingBeschreibung + ' + Me.lblFindingBeschreibung.AutoSize = True + Me.lblFindingBeschreibung.Location = New System.Drawing.Point(6, 220) + Me.lblFindingBeschreibung.Name = "lblFindingBeschreibung" + Me.lblFindingBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblFindingBeschreibung.TabIndex = 13 + Me.lblFindingBeschreibung.Text = "Beschreibung" + ' + 'ImageListFindings + ' + Me.ImageListFindings.ImageStream = CType(resources.GetObject("ImageListFindings.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageListFindings.TransparentColor = System.Drawing.Color.Transparent + Me.ImageListFindings.Images.SetKeyName(0, "Keine.png") + Me.ImageListFindings.Images.SetKeyName(1, "Tief.png") + Me.ImageListFindings.Images.SetKeyName(2, "Mittel.png") + Me.ImageListFindings.Images.SetKeyName(3, "Hoch.png") + ' + 'ImageListeMassnahmen + ' + Me.ImageListeMassnahmen.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit + Me.ImageListeMassnahmen.ImageSize = New System.Drawing.Size(16, 16) + Me.ImageListeMassnahmen.TransparentColor = System.Drawing.Color.Transparent + ' + 'PruefschrittDetailsBearbeitung + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1185, 738) + Me.Controls.Add(Me.grpFindings) + Me.Controls.Add(Me.GrpResultate) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "PruefschrittDetailsBearbeitung" + Me.Text = "Assessment-Detail" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.GrpResultate.ResumeLayout(False) + Me.GrpDokumente.ResumeLayout(False) + Me.GrpTypAnzahl_Massen.ResumeLayout(False) + Me.GrpTypAnzahl_Massen.PerformLayout() + CType(Me.txtFindingsKein, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtFindingsHoch, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtFindingsMittel, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtFindingsTief, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtAnzahlPruefungen, System.ComponentModel.ISupportInitialize).EndInit() + Me.GrpBeschreibung.ResumeLayout(False) + Me.GrpBeschreibung.PerformLayout() + Me.GrpKurzbeschreibung.ResumeLayout(False) + Me.GrpKurzbeschreibung.PerformLayout() + Me.GrpStatus.ResumeLayout(False) + Me.GrpStatus.PerformLayout() + Me.grpFindings.ResumeLayout(False) + Me.GrpMassnahmen.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.GrpMassnahmenList.ResumeLayout(False) + Me.GrpMassnahmenList.PerformLayout() + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStripMassnahmen.ResumeLayout(False) + Me.ToolStripMassnahmen.PerformLayout() + Me.GrpFinding.ResumeLayout(False) + Me.GrpFindingDokumente.ResumeLayout(False) + Me.GrpFindingList.ResumeLayout(False) + Me.GrpFindingList.PerformLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStripFindings.ResumeLayout(False) + Me.ToolStripFindings.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents GrpResultate As GroupBox + Friend WithEvents GrpDokumente As GroupBox + Friend WithEvents GrpBeschreibung As GroupBox + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents GrpKurzbeschreibung As GroupBox + Friend WithEvents txtKurzbeschreibung As TextBox + Friend WithEvents grpFindings As GroupBox + Friend WithEvents GrpMassnahmen As GroupBox + Friend WithEvents GrpFinding As GroupBox + Friend WithEvents ToolStripMassnahmen As ToolStrip + Friend WithEvents tsbtnMassnahmeerfassen As ToolStripButton + Friend WithEvents tsbtnMassnahmeEdit As ToolStripButton + Friend WithEvents tsbtnMassnahmeLoeschen As ToolStripButton + Friend WithEvents ToolStripButton8 As ToolStripButton + Friend WithEvents ToolStripFindings As ToolStrip + Friend WithEvents tsbtnNeuesFinding As ToolStripButton + Friend WithEvents tsbtnFindingBearbeiten As ToolStripButton + Friend WithEvents tsbtnFindingDelete As ToolStripButton + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents C1Massnahmen As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents C1Findings As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents GroupBox2 As GroupBox + Friend WithEvents GrpFindingDokumente As GroupBox + Friend WithEvents txtFindingBeschreibung As TextBox + Friend WithEvents txtFindingBezeichnung As TextBox + Friend WithEvents lblFindingBeschreibung As Label + Friend WithEvents lblFindingBezeichnung As Label + Friend WithEvents GrpFindingList As GroupBox + Friend WithEvents GrpMassnahmenList As GroupBox + Friend WithEvents txtMassnahmebeschreibung As TextBox + Friend WithEvents txtMassnahmeBezeichnung As TextBox + Friend WithEvents lblMassnahmeBezeichnung As Label + Friend WithEvents lblMassnahmeBeschreibung As Label + Friend WithEvents TSBtnSave As ToolStripButton + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents DokumenteMassnahmen As ThemenDokumente.Dokumente + Friend WithEvents DokumenteFindings As ThemenDokumente.Dokumente + Friend WithEvents ImageListFindings As ImageList + Friend WithEvents ImageListeMassnahmen As ImageList + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents cbboxStatus As ComboBox + Friend WithEvents btnPruefungabgeschlossen As Button + Friend WithEvents txtMassnahmeResultat As TextBox + Friend WithEvents lblMassnahmeResultat As Label + Friend WithEvents cbboxResultatText As ComboBox + Friend WithEvents Label1 As Label + Friend WithEvents GrpTypAnzahl_Massen As GroupBox + Friend WithEvents lblFindingsHoch As Label + Friend WithEvents lblFindingsMittel As Label + Friend WithEvents lblFidingsTief As Label + Friend WithEvents txtFindingsHoch As NumericUpDown + Friend WithEvents txtFindingsMittel As NumericUpDown + Friend WithEvents txtFindingsTief As NumericUpDown + Friend WithEvents txtAnzahlPruefungen As NumericUpDown + Friend WithEvents lblAnzPruefungen As Label + Friend WithEvents lblFindingsKein As Label + Friend WithEvents txtFindingsKein As NumericUpDown +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.resx new file mode 100644 index 0000000..1c5a1e5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.resx @@ -0,0 +1,3957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKQSURBVDhPrY/JTxNRAIdf0kQPJoZ4MOFEUNwoWLbSllUg + KAFKy6JSFFDABUwQLxz4B0iaECImGA9owo14aCXFUFot2MJAC5zdN+hCaaEFSUQoP997DFSJRyf5kpnM + 7/veDPkvl06n22hpaoZlfAoL3hUs+lbhXlqFxx+CdzkMXyAMfyCE5WAI43YBba1teHC/Y0PUCWmob0Aj + xTE9hwX/2l8sLq/DHViHJ7gO38oPTLvmwQ67e/sORJ2Qm403wBCc89iO7Bwggq3tCH5tbePn5hY9ZJZv + bzW3RAP1166D8UZw4dtSaBdfCF8pX+jvfPau4pNnBR/dQdgcM3zLIqJOSF2tDgzLhAAv/dQ9PIE1+vns + N8L47g/z4Khtkm9ZRNQJuVJzGYwRqx1zH7yYp8y9Z3gwS3G9o7x1Y4bywjzBt3VXa6OB6soqMB49eQbD + 6ASGLQ6YXk1h5LUAE2XYOgmj2Y7nL214+Pgp37KIqBOiVVfgn1Roohx4V62tjAbUpWX4E025GlUaLR/V + 0NMY7JmJ6rLy/Y2oE1JSfBGM0kslsNlscLlcHKfTyWH3giAgS6GEQi7f34o6IYV5+WAUFxbBarUiPzcP + ykwFHA4H7HY7j46NjSE/JxfZqiwU0G3RhYJoIFupAiMvKxsWOkxPSUWyVAqz2QyTyQSDwYChoSGoaFSR + IUcOi9BDRJ2QjNS0TXlqGh8YjUacPpmAE/HxXBocHMTAwAD6+/shS0qGTJqEzLR0KGlI1AmJORpzL/lc + YiRdlsLHe1JfXx96enqg1+vR3d2NMzR8NuEUzidKWWiHqkd2C4Qck0gkpXFxcVVdXV1NVGjt7e1tp3TQ + QDt77uzsbIw9Hqs9JJFoGHRfQAg5/BslsRWFgJrRJAAAAABJRU5ErkJggg== + + + + 132, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 537, 126</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 537, 126</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 504, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX + dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz + vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n + 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb + o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg + Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml + mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY + FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 + wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb + MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ + 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 373, 136</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 373, 136</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 397, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX + dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz + vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n + 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb + o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg + Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml + mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY + FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 + wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb + MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ + 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + + + + 247, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE + CwAAAk1TRnQBSQFMAgEBBAEAAcABAAHAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACwAB/wLs + AfQMAAH/AsIB/wwAAf8CegH/DAAB/wJHAf8LAAH/AesB/wH0AW0B9AoAAf8BwgKeAcIB/woAAf8BdQJT + AXUB/woAAf8BRwL5AUcB/wkAAf8B6wH/AgAB9AFtAfQIAAH/AcIEngHCAf8IAAH/AXUEUwF1Af8IAAH/ + AUcE+QFHAf8HAAH/AesB/wQAAfQBbQH0BgAB/wHCBp4BwgH/BgAB/wF1BlMBdQH/BgAB/wFHBvkBRwH/ + BQAB/wHrAf8GAAH0AW0B9AQAAf8BwgOeAsIDngHCAf8EAAH/AXUIUwF1Af8EAAH/AUcD+QKUA/kBRwH/ + AwAB/wHrAf8IAAH0AW0B9AIAAf8BwgOeAcIC/wHCA54BwgH/AgAB/wF1BVMCegNTAXUB/wIAAf8BRwT5 + Av8E+QFHAf8BAAH/AesB/woAAfQBbQH0Af8BwgOeAcIB/wIAAf8BwgOeAcIC/wF1BlMBmgH/AZoDUwF1 + Av8BRwX5Av8F+QFHAf8B7AH/DAAB9AHsAcIEngLCAf8BAALCBJ4BwgF6A1MBGgT/AQAB/wGaA1MBegFH + BvkC/wb5AUcB7wH/DAAB9AHqAcIGngL/Bp4BwgF6A1MBGgH2Av8CAAH/AZoDUwF6AUcE+QFHAZQBAAH/ + AZQBRwT5AUcB9AGSAf8KAAH0ARMB8wH/AcIFngL/BZ4BwgL/AXUGUwGaAf8BmgNTAXUC/wFHA/kBRwH/ + AgAB/wEXA/kBRwH/AQAB9AHsAf8IAAH0ARMB8wIAAf8BwgSeAv8EngHCAf8CAAH/AXUFUwJ6A1MBdQH/ + AgAB/wFHA/kB4wL/ARYD+QFHAf8DAAH0AewB/wYAAfQBEwHzBAAB/wHCA54CwgOeAcIB/wQAAf8BdQhT + AXUB/wQAAf8BRwP5AhYD+QFHAf8FAAH0AewB/wQAAfQBEwHzBgAB/wHCBp4BwgH/BgAB/wF1BlMBdQH/ + BgAB/wFHBvkBRwH/BwAB9AHsAf8CAAH0ARMB8wgAAf8BwgSeAcIB/wgAAf8BdQRTAXUB/wgAAf8BRwT5 + AUcB/wkAAfQB7AH/AfQBEwHzCgAB/wHCAp4BwgH/CgAB/wF1AlMBdQH/CgAB/wFHAvkBRwH/CwAB9AHs + ARIB8wwAAf8CwgH/DAAB/wJ6Af8MAAH/AkcB/wYAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEB + BgABARYAA/+BAAH8AT8B/AE/AfwBPwH8AT8B+AEfAfgBHwH4AR8B+AEfAfEBjwHwAQ8B8AEPAfABDwHj + AccB4AEHAeABBwHgAQcBxwHjAcABAwHAAQMBwAEDAY8B8QGAAQEBgAEBAYABAQEfAfgBAQGABAABPwH8 + AQABgAEAAUACAAE/AfwDAAHAAQEBAAEfAfgEAAEBAYABjwHxAYABAQGAAQEBgAEBAccB4wHAAQMBwAED + AcABAwHjAccB4AEHAeABBwHgAQcB8QGPAfABDwHwAQ8B8AEPAfgBHwH4AR8B+AEfAfgBHwH8AT8B/AE/ + AfwBPwH8AT8L + + + + 611, 17 + + + + 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 + X9fIWBTqTItGG5/ev8SSXqrGXlKtzX7a7NzUxAagz+iIW92ik90HqwxnFew8knnvD3gsd4GuN0JufZzc + dpbJ8tPmDtOfkAFpP+4jN59f6jObUoP30XVafI0doWfjZCbTlvNpzhJa8XgcATII/Bqp13u9n8bqD2Gw + Afj/AdlDAoEyFHaAAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAA + AAAAAP7+/rT+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb new file mode 100644 index 0000000..3a3057f --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb @@ -0,0 +1,721 @@ +Imports C1.Win.C1TrueDBGrid + +Public Class PruefschrittDetailsBearbeitung + + + +#Region "Deklarationen" + + Dim Pruefresultatnr As Integer + Dim OnRefresh_Findings As Boolean = False + + Dim m_pruefschrittnr As Integer + Property Pruefschrittnr As Integer + Get + Return m_pruefschrittnr + End Get + Set(value As Integer) + m_pruefschrittnr = value + Me.Pruefresultatnr = value + End Set + End Property + + Dim m_handler As Integer + Property Handler As Integer + Get + Return m_handler + End Get + Set(value As Integer) + m_handler = value + End Set + End Property + + Dim m_readonly As Boolean + Property IsReadonly As Boolean + Get + Return m_readonly + End Get + Set(value As Boolean) + m_readonly = value + End Set + End Property + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + + Dim Pruefschrittresultat As New clsPruefschrittResultat + Dim pruefschrittstatus As New clsStatus + Dim Pruefschritt As New clsPruefschritt +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + + If Me.FormReadonly = True Then Exit Sub + If Me.IsReadonly = True Then Exit Sub + evh.pruefschrittResultat_Close(Me.Handler, Me.Pruefschrittnr) + If Check_Changes() = False Then + e.Cancel = True + Else + + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + save_data() + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function +#End Region + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is NumericUpDown Then + Dim ctl As NumericUpDown = c + AddHandler ctl.ValueChanged, evh + End If + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + If ctl.Name <> "cbboxResultatText" Then AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + If TypeOf c Is DateTimePicker Then + Dim ctl As DateTimePicker = c + AddHandler ctl.ValueChanged, evh + End If + + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + If UCase(sender.name) = "TXTFINDINGBEZEICHNUNG" Or UCase(sender.NAME) = "TXTFINDINGBESCHREIBUNG" Then Exit Sub + If UCase(sender.name) = "TXTMASSNAHMEBEZEICHNUNG" Or UCase(sender.NAME) = "TXTMASSNAHMEBESCHREIBUNG" Or UCase(sender.NAME) = "TXTMASSNAHMERESULTAT" Then Exit Sub + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + Private Sub generalhandler() + Me.FormDataChanged = True + End Sub + + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + +#Region "Fomular" + Private Sub PruefschrittDetailsBearbeitung_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + Try + Me.Pruefschrittresultat.Get_Data(Pruefresultatnr) + If Me.Pruefschrittresultat.daten.Rows.Count = 0 Then + Me.Pruefschrittresultat.Add_New(Pruefresultatnr) + End If + Pruefschritt.Get_Data(Me.Pruefschrittnr) + Refresh_Details() + Refresh_Finding_Dokumente() + Refresh_Allgemeine_Dokumente + pruefschrittstatus.Get_Mögliche_Status(Pruefschritt.iStatusnr, cbboxStatus) + + For Each r As DataRow In Pruefschritt.PruefschrittResultattext.Rows + Me.cbboxResultatText.DataSource = Nothing + Me.cbboxResultatText.DataSource = Me.Pruefschritt.PruefschrittResultattext + Me.cbboxResultatText.DisplayMember = "Bezeichnung" + Me.cbboxResultatText.ValueMember = "PruefschrittTextnr" + + Next + + AddChanges(Me) + If Me.IsReadonly = True Then + sec.Set_Form_Readonly(Me) + Me.DokumenteFindings.Show_Toolbar = False + Me.DokumenteMassnahmen.Show_Toolbar = False + Me.ToolStripFindings.Enabled = False + Me.ToolStripMassnahmen.Enabled = False + Me.DokumenteAllgemein.Show_Toolbar = False + End If + + Dim i As Integer + If Me.txtKurzbeschreibung.Text <> "" Then + For i = 0 To Pruefschritt.PruefschrittResultattext.Rows.Count - 1 + If Pruefschritt.PruefschrittResultattext.Rows(i).Item("Bezeichnung") = Me.txtKurzbeschreibung.Text Then Me.cbboxResultatText.SelectedValue = Pruefschritt.PruefschrittResultattext.Rows(i).Item(0) + + Next + End If + + If Pruefschritt.iAssessmenttyp.Value = 1 Then + Me.GrpTypAnzahl_Massen.Visible = False + End If + If Pruefschritt.iAssessmenttyp.Value = 2 Then + Me.GrpTypAnzahl_Massen.Visible = True + Me.lblFidingsTief.Visible = False + Me.lblFindingsHoch.Visible = False + Me.lblFindingsMittel.Visible = False + Me.txtFindingsHoch.Visible = False + Me.txtFindingsMittel.Visible = False + Me.txtFindingsTief.Visible = False + Me.txtFindingsKein.Visible = False + Me.lblFindingsKein.Visible = False + End If + If Pruefschritt.iAssessmenttyp.Value = 3 Then + Me.GrpTypAnzahl_Massen.Visible = True + Me.lblFidingsTief.Visible = True + Me.lblFindingsHoch.Visible = True + Me.lblFindingsMittel.Visible = True + Me.txtFindingsHoch.Visible = True + Me.txtFindingsMittel.Visible = True + Me.txtFindingsTief.Visible = True + Me.txtFindingsKein.Visible = True + Me.lblFindingsKein.Visible = True + + End If + Do_Massnahmen_RowColChange() + + If Me.IsReadonly = True Then Me.TSBtnSave.Visible = False + + Try + If Me.C1Massnahmen.Splits(0).Rows.Count > 0 Then Me.C1Massnahmen_RowColChange(sender, e) + Catch ex As Exception + + End Try + Catch + Finally + Me.Cursor = Cursors.Default + Application.DoEvents() + End Try + End Sub + + Private Sub PruefschrittDetailsBearbeitung_Resize(sender As Object, e As EventArgs) Handles Me.Resize + Me.GrpResultate.Width = Me.ClientSize.Width / 3 + Me.GrpFindingList.Width = Me.grpFindings.Width / 3 * 2 + Me.GrpMassnahmenList.Width = Me.GrpFindingList.Width + End Sub + + Private Sub Refresh_Details() + Me.txtKurzbeschreibung.Text = Me.Pruefschrittresultat.sKurzbeschreibung.Value + Me.txtBeschreibung.Text = Me.Pruefschrittresultat.sBeschreibung.Value + Select Case Pruefschritt.iAssessmenttyp.Value + Case 2 + Me.txtAnzahlPruefungen.Value = Me.Pruefschrittresultat.iAnzahl_Pruefungen.Value + Case 3 + Me.txtAnzahlPruefungen.Value = Me.Pruefschrittresultat.iAnzahl_Pruefungen.Value + Me.txtFindingsTief.Value = Me.Pruefschrittresultat.iFindings_niedrig.Value + Me.txtFindingsMittel.Value = Me.Pruefschrittresultat.iFindings_mittel.Value + Me.txtFindingsHoch.Value = Me.Pruefschrittresultat.iFindings_hoch.Value + Me.txtFindingsKein.Value = Me.Pruefschrittresultat.iFinding_kein.Value + End Select + + Refresh_Findings() + Refresh_Massnahmen() + End Sub +#End Region + + Sub save_data() + Pruefschritt.Get_Data(Me.Pruefschrittnr) + Me.Pruefschrittresultat.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + Me.Pruefschrittresultat.sKurzbeschreibung = New SqlTypes.SqlString(CType(Me.txtKurzbeschreibung.Text, String)) + Select Case Pruefschritt.iAssessmenttyp.Value + Case 2 + Me.Pruefschrittresultat.iAnzahl_Pruefungen = New SqlTypes.SqlInt32(CType(Me.txtAnzahlPruefungen.Value, Int32)) + Case 3 + Me.Pruefschrittresultat.iAnzahl_Pruefungen = New SqlTypes.SqlInt32(CType(Me.txtAnzahlPruefungen.Value, Int32)) + Me.Pruefschrittresultat.iFindings_niedrig = New SqlTypes.SqlInt32(CType(Me.txtFindingsTief.Value, Int32)) + Me.Pruefschrittresultat.iFindings_mittel = New SqlTypes.SqlInt32(CType(Me.txtFindingsMittel.Value, Int32)) + Me.Pruefschrittresultat.iFindings_hoch = New SqlTypes.SqlInt32(CType(Me.txtFindingsHoch.Value, Int32)) + Me.Pruefschrittresultat.iFinding_kein = New SqlTypes.SqlInt32(CType(Me.txtFindingsKein.Value, Int32)) + End Select + Me.Pruefschrittresultat.Save_Data() + + Pruefschritt.Get_Data(Me.Pruefschrittnr) + If Pruefschritt.bDurchfuehrung_ISI.Value = True And Pruefschritt.Is_IsiMitarbeiter(Globals.clsmitarbeiter.iMitarbeiternr) = True Then + If Pruefschritt.iStatusnr <> 2 Then + If MsgBox("Status auf 'In Bearbeitung' setzen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Pruefschritt.Save_Data() + Me.FormDataChanged = False + evh.PruefplanResultat_Save(Me.Handler, Me.Pruefschrittnr) + Exit Sub + Else + Me.FormDataChanged = False + evh.PruefplanResultat_Save(Me.Handler, Me.Pruefschrittnr) + Exit Sub + + End If + End If + End If + + If Pruefschritt.iStatusnr.Value <> 2 And Pruefschritt.iStatusnr.Value <> 5 Then + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + + End If + Pruefschritt.Save_Data() + Me.FormDataChanged = False + evh.PruefplanResultat_Save(Me.Handler, Me.Pruefschrittnr) + End Sub + +#Region "Findings" + + Sub Refresh_Findings() + Dim findings As New clsFinding + findings.Get_Eintraege(Me.C1Findings, Me.Pruefresultatnr, Me.ImageListFindings) + Refresh_Finding_Dokumente() + End Sub + + Sub Refresh_Finding_Dokumente() + If Me.C1Findings.Splits(0).Rows.Count < 1 Then + Me.DokumenteFindings.Init() + + Me.DokumenteFindings.Show_Toolbar = Me.IsReadonly = True + Exit Sub + End If + Try + Me.DokumenteFindings.Show_Toolbar = Me.IsReadonly = False + Me.DokumenteFindings.ConnectionString = Globals.sConnectionString + Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteFindings.Init() + + Me.DokumenteFindings.Doktype = 5 + Me.DokumenteFindings.ThemaNr = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + Me.DokumenteFindings.Refresh_Dokumente() + Me.DokumenteFindings.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteFindings.Init() + Me.DokumenteFindings.Show_Toolbar = False + End Try + End Sub + + Sub Refresh_allgemeine_Dokumente() + 'If Me.C1Findings.Splits(0).Rows.Count < 1 Then + ' Me.DokumenteAllgemein.Init() + + ' Me.DokumenteAllgemein.Show_Toolbar = Me.IsReadonly = False + ' Exit Sub + 'End If + Try + Me.DokumenteAllgemein.Show_Toolbar = Me.IsReadonly = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Init() + + Me.DokumenteAllgemein.Doktype = 4 + Me.DokumenteAllgemein.ThemaNr = Me.Pruefschrittnr + Me.DokumenteAllgemein.Refresh_Dokumente() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteAllgemein.Init() + Me.DokumenteAllgemein.Show_Toolbar = False + End Try + End Sub +#End Region + +#Region "Massnahmen" + + Sub Refresh_Massnahmen() + If OnRefresh_Findings Then Exit Sub + Me.ToolStripMassnahmen.Enabled = False + Me.DokumenteMassnahmen.Enabled = False + Me.C1Massnahmen.DataSource = Nothing + If Me.C1Findings.Splits(0).Rows.Count > 0 Then + Try + Dim Massnahmen As New clsPruefschrittMassnahme + Massnahmen.Get_Eintraege(Me.C1Massnahmen, Me.C1Findings.Columns("Pruefschrittfindingnr").Value, Me.ImageListeMassnahmen) + Refresh_Massnahmen_Dokument() + Me.ToolStripMassnahmen.Enabled = True + + Catch + End Try + + End If + + Do_Massnahmen_RowColChange() + End Sub + + Sub Refresh_Massnahmen_Dokument() + If OnRefresh_Findings Then Exit Sub + + If Me.C1Massnahmen.Splits(0).Rows.Count < 1 Then + Me.DokumenteMassnahmen.Init() + Me.DokumenteMassnahmen.Show_Toolbar = Me.IsReadonly = False + Me.DokumenteMassnahmen.Enabled = False + Exit Sub + End If + Try + Me.DokumenteMassnahmen.Show_Toolbar = Me.IsReadonly = False + Me.DokumenteMassnahmen.ConnectionString = Globals.sConnectionString + Me.DokumenteMassnahmen.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteMassnahmen.Init() + + Me.DokumenteMassnahmen.Doktype = 6 + Me.DokumenteMassnahmen.ThemaNr = Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value + Me.DokumenteMassnahmen.Refresh_Dokumente() + Me.DokumenteMassnahmen.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Me.DokumenteMassnahmen.Enabled = True + Catch ex As Exception + Me.DokumenteMassnahmen.Init() + Me.DokumenteMassnahmen.Show_Toolbar = False + End Try + End Sub +#End Region + + + Private Sub tsbtnNeuesFinding_Click(sender As Object, e As EventArgs) Handles tsbtnNeuesFinding.Click + Dim f As New FrmFinding + f.Key = -1 + f.Pruefschrittresultatnr = Me.Pruefresultatnr + f.ShowDialog() + + If f.DialogResult = DialogResult.OK Then + OnRefresh_Findings = True + Me.Refresh_Findings() + OnRefresh_Findings = False + Refresh_Massnahmen() + End If + End Sub + + Private Sub C1Findings_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Findings.RowColChange + Refresh_Finding_Dokumente() + Me.txtFindingBezeichnung.Text = "" + Me.txtFindingBeschreibung.Text = "" + Try + Me.txtFindingBeschreibung.Text = Me.C1Findings.Columns("Beschreibung").Value + Me.txtFindingBezeichnung.Text = Me.C1Findings.Columns("Bezeichnung").Value + Catch + End Try + Refresh_Massnahmen() + End Sub + + Private Sub tsbtnFindingBearbeiten_Click(sender As Object, e As EventArgs) Handles tsbtnFindingBearbeiten.Click + Try + Dim f As New FrmFinding + f.Key = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + f.Pruefschrittresultatnr = Me.Pruefresultatnr + f.isreadonly = Me.IsReadonly + f.ShowDialog() + + If f.DialogResult = DialogResult.OK Then + OnRefresh_Findings = True + Me.Refresh_Findings() + OnRefresh_Findings = False + Refresh_Massnahmen() + + End If + Catch ex As Exception + + End Try + End Sub + + Private Sub tsbtnMassnahmeerfassen_Click(sender As Object, e As EventArgs) Handles tsbtnMassnahmeerfassen.Click + Dim f As New frmMassnahme + f.Key = -1 + f.Pruefschrittresultatnr = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + f.ShowDialog() + + If f.DialogResult = DialogResult.OK Then + Me.Refresh_Massnahmen() + End If + End Sub + + Private Sub C1Findings_DoubleClick(sender As Object, e As EventArgs) Handles C1Findings.DoubleClick + Try + tsbtnFindingBearbeiten_Click(sender, e) + Catch + End Try + + End Sub + + Private Sub C1Massnahmen_DoubleClick(sender As Object, e As EventArgs) Handles C1Massnahmen.DoubleClick + tsbtnMassnahmeEdit_click(sender,e) + End Sub + + Private Sub tsbtnMassnahmeEdit_Click(sender As Object, e As EventArgs) Handles tsbtnMassnahmeEdit.Click + Dim f As New frmMassnahme + f.Key = Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value + f.Pruefschrittresultatnr = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + If C1Massnahmen.Columns("Verantwortungnr").Value = Globals.clsmitarbeiter.iMitarbeiternr.Value Then + f.IsReadonly = False + Else + f.IsReadonly = Me.IsReadonly + End If + + f.ShowDialog() + + If f.DialogResult = DialogResult.OK Then + Me.Refresh_Massnahmen() + End If + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub TSBtnSave_Click(sender As Object, e As EventArgs) Handles TSBtnSave.Click + Me.save_data() + End Sub + + Private Sub btnPruefungabgeschlossen_Click(sender As Object, e As EventArgs) Handles btnPruefungabgeschlossen.Click + Me.txtKurzbeschreibung.Text = Me.cbboxResultatText.Text + Me.save_data() + Select Case Me.cbboxResultatText.SelectedValue + Case 0 + MsgBox("Bitte wählen Sie ein Prüfresultat aus, welches zur Prüfung passt.", vbInformation) + Exit Sub + Case 1 + If Me.C1Findings.Splits(0).Rows.Count > 0 Then + MsgBox("Sie haben Feststellungen erfasst. Somit kann das Resultat der Prüfung nicht '" + Me.cbboxResultatText.Text + "' lauten.", vbExclamation) + Exit Sub + End If + + Case 2, 3 + If Me.C1Findings.Splits(0).Rows.Count < 1 Then + MsgBox("Sie haben keine Feststellungen erfasst. Somit kann das Resultat der Prüfung nicht '" + Me.cbboxResultatText.Text + "' lauten.", vbExclamation) + Exit Sub + End If + Case 4 + If Trim(Me.txtBeschreibung.Text) = "" Then + MsgBox("Für den Status 'Nicht durchgeführt' ist zwingend eine Beschreibung notwendig.", vbExclamation) + Me.txtBeschreibung.Select() + Exit Sub + End If + End Select + If MsgBox("Haben Sie die Prüfung abgeschlossen und alle Feststellungen und Massnahmen festgehalten?", vbYesNo + vbQuestion) = vbYes Then + + Pruefschritt.Get_Data(Me.Pruefschrittnr) + 'Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(6, Int32)) + 'Pruefschritt.Save_Data() + + If Pruefschritt.iVerantwortlichNr.Value = Pruefschritt.iAktueller_Verantwortlicher.Value Then + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(5, Int32)) + Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(Pruefschritt.iVeramtwortungISINr.Value, Int32)) + Dim pplan As New DB.clsPruefplan + pplan.cpMainConnectionProvider = Globals.conn + pplan.iPruefplanNr = New SqlTypes.SqlInt32(CType(Pruefschritt.iPruefplanNr.Value, Int32)) + pplan.SelectOne() + If pplan.bSelbstkontrolle.Value = True Then + + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(6, Int32)) + Pruefschritt.Save_Data() + End If + pplan = Nothing + Else + If Pruefschritt.iStatusnr.Value = 5 Then + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(6, Int32)) + Else + Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(Pruefschritt.iVerantwortlichNr.Value, Int32)) + Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(3, Int32)) + Pruefschritt.Insert_Message(3, Pruefschritt.iPruefschrittNr.Value, Pruefschritt.iAktueller_Verantwortlicher.Value, 0, "") + End If + End If + Pruefschritt.Save_Data() + Me.Close() + End If + End Sub + + Private Sub C1Massnahmen_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Massnahmen.RowColChange + Do_Massnahmen_RowColChange() + End Sub + Sub Do_Massnahmen_RowColChange() + Try + Me.txtMassnahmeBezeichnung.Text = "" + Me.txtMassnahmebeschreibung.Text = "" + Me.txtMassnahmeResultat.Text = "" + Dim pruefschrittmassnahme As New clsPruefschrittMassnahme + pruefschrittmassnahme.Get_Data(Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value) + Me.txtMassnahmeBezeichnung.Text = pruefschrittmassnahme.sKurzbeschreibung.Value + Me.txtMassnahmebeschreibung.Text = pruefschrittmassnahme.sBeschreibung.Value + Me.txtMassnahmeResultat.Text = pruefschrittmassnahme.sMassnahmeResultat.Value + + Refresh_Massnahmen_Dokument() + + If Me.IsReadonly Then Me.ToolStripMassnahmen.Enabled = False + + If C1Massnahmen.Columns("Verantwortungnr").Value = Globals.clsmitarbeiter.iMitarbeiternr.Value Then + If Me.Pruefschritt.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr.Value Then + Me.ToolStripMassnahmen.Enabled = True + Me.tsbtnMassnahmeerfassen.Enabled = False + Me.tsbtnMassnahmeLoeschen.Enabled = False + Me.tsbtnMassnahmeEdit.Enabled = True + Me.DokumenteMassnahmen.Show_Toolbar = True + End If + + Else + Me.DokumenteMassnahmen.Show_Toolbar = False + End If + + + Catch + End Try + + End Sub + + Private Sub tsbtnFindingDelete_Click(sender As Object, e As EventArgs) Handles tsbtnFindingDelete.Click + Try + If MsgBox("Datensatz wirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Dim clsf As New clsFinding + clsf.Delete_Data(Me.C1Findings.Columns("Pruefschrittfindingnr").Value) + clsf.dispose() + Refresh_Findings() + Refresh_Massnahmen() + End If + + Catch ex As Exception + + End Try + End Sub + + Private Sub DokumenteFindings_Load(sender As Object, e As EventArgs) Handles DokumenteFindings.Load + + End Sub + + Private Sub tsbtnMassnahmeLoeschen_Click(sender As Object, e As EventArgs) Handles tsbtnMassnahmeLoeschen.Click + Try + If MsgBox("Datensatz wirklich löschen?", vbYesNo + vbQuestion) = vbYes Then + Dim clsm As New clsPruefschrittMassnahme + clsm.Delete_Data(Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value) + clsm.dispose() + Me.Refresh_Massnahmen() + End If + Catch ex As Exception + MsgBox (ex.Message) + End Try + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked + + End Sub + + Private Sub C1Findings_FilterChange(sender As Object, e As EventArgs) Handles C1Findings.FilterChange + Refresh_Finding_Dokumente() + Refresh_Massnahmen() + End Sub + + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/clsFinding.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/clsFinding.vb new file mode 100644 index 0000000..73772f3 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/clsFinding.vb @@ -0,0 +1,270 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class clsFinding + Inherits DB.clsPruefschrittFinding + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property + + Public auswirkung As New DataTable + Public Kritikalitaet As New DataTable + Public Wichtigkeit As New DataTable +#End Region + + + Sub New() + MyBase.New() + auswirkung = stammdaten.Get_Stammdaten("auswirkung", "Sort") + Kritikalitaet = stammdaten.Get_Stammdaten("Kritikalitaet", "Sort") + Wichtigkeit = stammdaten.Get_Stammdaten("Wichtigkeit", "Sort") + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + auswirkung.Dispose() + Kritikalitaet.Dispose() + Wichtigkeit.Dispose() + + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittfindingNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("PruefschrittFinding") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittfindingNr = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Pruefschrittfinding") + db.Dispose() + Me.iPruefschrittfindingNr = New SqlInt32(CType(newkey, Int32)) + Me.iPruefschrittresultatnr = New SqlInt32(CType(0, Int32)) + Me.iPruefschrittfindingNr = New SqlInt32(CType(newkey, Int32)) + Me.sBezeichnung = New SqlString(CType("", String)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefschrittfindingNr.Value + End Function + + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer, ByVal images As ImageList) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_PruefschrittFinding" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Try + c1daten.DataSource = Nothing + Catch + End Try + + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschrittfinding", ds.Tables(0)) + + Dim bmp0 As New Bitmap(images.Images(0)) + Dim bmp1 As New Bitmap(images.Images(1)) + Dim bmp2 As New Bitmap(images.Images(2)) + Dim bmp3 As New Bitmap(images.Images(3)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + v0.DisplayValue = bmp0 + v0.Value = 1 + + v1.DisplayValue = bmp1 + v1.Value = 2 + + v2.DisplayValue = bmp2 + v2.Value = 3 + + v3.DisplayValue = bmp3 + v3.Value = 4 + + c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v0) + c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v1) + c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v2) + c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v3) + c1daten.Columns("Auswirkungnr").ValueItems.Translate = True + c1daten.Splits(0).DisplayColumns("Auswirkungnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v0) + c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v1) + c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v2) + c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v3) + c1daten.Columns("kritikalitaetnr").ValueItems.Translate = True + c1daten.Splits(0).DisplayColumns("kritikalitaetnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + + c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v0) + c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v1) + c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v2) + c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v3) + c1daten.Columns("wichtigkeitnr").ValueItems.Translate = True + c1daten.Splits(0).DisplayColumns("wichtigkeitnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschritt.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschritt.vb new file mode 100644 index 0000000..9f9c64a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschritt.vb @@ -0,0 +1,557 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Public Class clsPruefschritt + Inherits DB.clsPruefschritt + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + Public PruefschrittResultattext As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Public Pruefschrittstatus As DataTable + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + Pruefschrittstatus = stammdaten.Get_Stammdaten("pruefschrittstatus", "") + PruefschrittResultattext = stammdaten.Get_Stammdaten("PruefschrittResultatText", "PruefschrittTextnr") + + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Me.Pruefschrittstatus.Dispose() + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Pruefschritt") + db.Dispose() + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefschrittNr.Value + End Function + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Mitarbeiternr As Integer, ByRef tree As DevComponents.AdvTree.AdvTree) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefschritt" + sqlcmd.Parameters.Add(New SqlParameter("@manr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Mitarbeiternr)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Dim status As New clsStatus + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschritt", ds.Tables(0)) + + Dim intarray(Me.Pruefschrittstatus.Rows.Count) As Integer + For i As Integer = 1 To Me.Pruefschrittstatus.Rows.Count + intarray(i) = 0 + Next + For Each r As DataRow In ds.Tables(0).Rows + intarray(r.Item("Pruefschrittstatusnr")) = intarray(r.Item("Pruefschrittstatusnr")) + 1 + Next + + For Each n As DevComponents.AdvTree.Node In tree.Nodes + n.Text = n.Text + " (" + intarray(n.Tag).ToString + ")" + + Next + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + Public Function Get_Vorgaben(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal key As Integer) + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_vorgabedaten" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Dim status As New clsStatus + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "_Pruefschritt_Vorgaben", ds.Tables(0)) + + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + + + End Function + + Public Sub Get_Massnahmen(ByRef tree As DevComponents.AdvTree.AdvTree) + + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_massnahme_tree" + sqlcmd.Parameters.Add(New SqlParameter("@ma", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + sqlcmd.Parameters.Add(New SqlParameter("@node1", SqlDbType.VarChar, 255, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, "")) + sqlcmd.Parameters.Add(New SqlParameter("@node2", SqlDbType.VarChar, 255, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, "")) + sqlcmd.Parameters.Add(New SqlParameter("@node3", SqlDbType.VarChar, 255, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, "")) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + sqlcmd.ExecuteNonQuery() + Try + tree.Nodes.Clear() + Catch + End Try + + Dim i As Integer + For i = 0 To 2 + Dim tn As New DevComponents.AdvTree.Node + tn.ImageIndex = i + tn.Tag = i + tn.Text = sqlcmd.Parameters(i + 1).Value + tree.Nodes.Add(tn) + Next + + + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + + Public Sub Get_Massnahmen_Data(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, typ As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefschritt_massnahmen" + sqlcmd.Parameters.Add(New SqlParameter("@manr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + sqlcmd.Parameters.Add(New SqlParameter("@typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, typ)) + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Dim status As New clsStatus + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschritt", ds.Tables(0)) + + 'Dim intarray(Me.Pruefschrittstatus.Rows.Count) As Integer + 'For i As Integer = 1 To Me.Pruefschrittstatus.Rows.Count + ' intarray(i) = 0 + 'Next + 'For Each r As DataRow In ds.Tables(0).Rows + ' intarray(r.Item("Pruefschrittstatusnr")) = intarray(r.Item("Pruefschrittstatusnr")) + 1 + 'Next + + 'For Each n As DevComponents.AdvTree.Node In tree.Nodes + ' n.Text = n.Text + " (" + intarray(n.Tag).ToString + ")" + + 'Next + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + Public Sub Insert_Message(ByVal Typ As Integer, pruefschrittnr As Integer, Empfaenger As Integer, Urspruenglicher_MA As Integer, Optional Notiz As String = "") + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_insert_message" + sqlcmd.Parameters.Add(New SqlParameter("@type", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Typ)) + sqlcmd.Parameters.Add(New SqlParameter("@pruefschrittnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, pruefschrittnr)) + sqlcmd.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Empfaenger)) + sqlcmd.Parameters.Add(New SqlParameter("@absender", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Urspruenglicher_MA)) + sqlcmd.Parameters.Add(New SqlParameter("@Notiz", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Notiz)) + + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + sqlcmd.ExecuteNonQuery() + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + Public Function Is_IsiMitarbeiter(ByVal Mitarbeiternr As Integer) As Boolean + Dim Verantwortungisi As New DataTable + Verantwortungisi = stammdaten.Get_Stammdaten("VerantwortungIsi", "Bezeichnung") + For Each r As DataRow In Verantwortungisi.Rows + If r.Item(0) = Mitarbeiternr Then + Return True + Exit For + End If + Next + Return False + End Function + +End Class + +Public Class clsPruefschrittStatus + Inherits DB.clsPruefSchrittStatus + + +End Class + +Public Class clsPruefschrittNotiz + Inherits DB.clsPruefschrittnotiz + + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + + Dim mMutierer As String + + Sub New() + End Sub + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property + + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittnr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Pruefschrittnotiz") + db.Dispose() + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.sNotiz = New SqlString(CType("", String)) + Me.iPruefschrittnotizNr = New SqlInt32(CType(newkey, Int32)) + Me.iPruefschrittnr = New SqlInt32(CType(0, Int32)) + Me.cpMainConnectionProvider = Globals.conn + + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefschrittnr.Value + End Function + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Pruefschrittnr As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefschrittNotiz" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Pruefschrittnr)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschrittnotiz", ds.Tables(0)) + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + +End Class + + diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittMassnahme.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittMassnahme.vb new file mode 100644 index 0000000..67eeb37 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittMassnahme.vb @@ -0,0 +1,261 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class clsPruefschrittMassnahme + Inherits DB.clsPruefSchrittMassnahme + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Public Verantwortung As New DataTable + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property + +#End Region + + + Sub New() + MyBase.New() + Verantwortung = stammdaten.Get_Stammdaten("Verantwortung", "Bezeichnung") + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Me.Verantwortung.Dispose() + + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittmassnahmeNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("PruefschrittMassnahme") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefschrittmassnahmeNr = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("PruefschrittMassnahme") + db.Dispose() + Me.iPruefschrittmassnahmeNr = New SqlInt32(CType(newkey, Int32)) + Me.iPruefschrittfindingnr = New SqlInt32(CType(0, Int32)) + Me.iPruefschrittfindingnr = New SqlInt32(CType(newkey, Int32)) + Me.sKurzbeschreibung = New SqlString(CType("", String)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefschrittfindingnr.Value + End Function + + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer, ByVal images As ImageList) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_PruefschrittMassnahme" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "PruefschrittMassnahme", ds.Tables(0)) + + 'Dim bmp0 As New Bitmap(images.Images(0)) + 'Dim bmp1 As New Bitmap(images.Images(1)) + 'Dim bmp2 As New Bitmap(images.Images(2)) + 'Dim bmp3 As New Bitmap(images.Images(3)) + + 'Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + 'Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + 'Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + 'Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + 'v0.DisplayValue = bmp0 + 'v0.Value = 1 + + 'v1.DisplayValue = bmp1 + 'v1.Value = 2 + + 'v2.DisplayValue = bmp2 + 'v2.Value = 3 + + 'v3.DisplayValue = bmp3 + 'v3.Value = 4 + + 'c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v0) + 'c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v1) + 'c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v2) + 'c1daten.Columns("Auswirkungnr").ValueItems.Values.Add(v3) + 'c1daten.Columns("Auswirkungnr").ValueItems.Translate = True + 'c1daten.Splits(0).DisplayColumns("Auswirkungnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + 'c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v0) + 'c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v1) + 'c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v2) + 'c1daten.Columns("kritikalitaetnr").ValueItems.Values.Add(v3) + 'c1daten.Columns("kritikalitaetnr").ValueItems.Translate = True + 'c1daten.Splits(0).DisplayColumns("kritikalitaetnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + + 'c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v0) + 'c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v1) + 'c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v2) + 'c1daten.Columns("wichtigkeitnr").ValueItems.Values.Add(v3) + 'c1daten.Columns("wichtigkeitnr").ValueItems.Translate = True + 'c1daten.Splits(0).DisplayColumns("wichtigkeitnr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittResultat.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittResultat.vb new file mode 100644 index 0000000..910f472 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/clsPruefschrittResultat.vb @@ -0,0 +1,192 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class clsPruefschrittResultat + Inherits DB.clsPruefSchrittResultat +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim status As New clsStatus + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iPruefSchrittResultatNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New(ByVal PruefschrittNr As Integer) As Integer + Me.iPruefSchrittResultatNr = New SqlInt32(CType(PruefschrittNr, Int32)) + Me.iPruefschrittNr = New SqlInt32(CType(PruefschrittNr, Int32)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.sKurzbeschreibung = New SqlString(CType("", String)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.iAnzahl_Pruefungen = New SqlInt32(CType(0, Int32)) + Me.iFindings_hoch = New SqlInt32(CType(0, Int32)) + Me.iFindings_mittel = New SqlInt32(CType(0, Int32)) + Me.iFindings_niedrig = New SqlInt32(CType(0, Int32)) + Me.iFinding_kein = New SqlInt32(CType(0, Int32)) + + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iPruefSchrittResultatNr.Value + End Function + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Mitarbeiternr As Integer, ByRef tree As DevComponents.AdvTree.AdvTree) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_pruefschritt" + sqlcmd.Parameters.Add(New SqlParameter("@manr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Mitarbeiternr)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Pruefschritt", ds.Tables(0)) + + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/clsStatus.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/clsStatus.vb new file mode 100644 index 0000000..212dc17 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/clsStatus.vb @@ -0,0 +1,39 @@ +Public Class clsStatus + Dim stammdaten As New DB.clsStammdaten + Dim Status As New DataTable + + Sub New() + MyBase.New + Status = stammdaten.Get_Stammdaten("PruefSchrittStatus", "Beschreibung") + End Sub + + Public Function Get_Mögliche_Status(ByVal aktuellerStatus As Integer, ByRef cbbox As ComboBox) As DataTable + Dim dt As New DataTable + dt = Status.Copy + dt.Rows.Clear() + + Select Case aktuellerStatus + Case 1, 2 + For Each r As DataRow In Status.Rows + If r.Item(0) = 1 Then addrow(dt, r) + If r.Item(0) = 2 Then addrow(dt, r) + If r.Item(0) = 3 Then addrow(dt, r) + Next + + End Select + cbbox.DataSource = Nothing + cbbox.DataSource = dt + cbbox.DisplayMember = "Bezeichnung" + cbbox.ValueMember = "pruefschrittstatusnr" + cbbox.SelectedValue = aktuellerStatus + End Function + + Sub addrow(ByRef dt As DataTable, dr As DataRow) + Dim r As DataRow = dt.NewRow + For Each c As DataColumn In dt.Columns + r.Item(c.ColumnName) = dr.Item(c.ColumnName) + Next + dt.Rows.Add(r) + End Sub + +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.Designer.vb new file mode 100644 index 0000000..9eecc83 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.Designer.vb @@ -0,0 +1,92 @@ + _ +Partial Class frmFindingHilfe + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFindingHilfe)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.WebBrowser1 = New System.Windows.Forms.WebBrowser() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(607, 25) + Me.ToolStrip1.TabIndex = 9 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neue Feststellung erfassen" + Me.ToolStripButton1.Visible = False + ' + 'WebBrowser1 + ' + Me.WebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill + Me.WebBrowser1.Location = New System.Drawing.Point(0, 25) + Me.WebBrowser1.MinimumSize = New System.Drawing.Size(20, 20) + Me.WebBrowser1.Name = "WebBrowser1" + Me.WebBrowser1.Size = New System.Drawing.Size(607, 554) + Me.WebBrowser1.TabIndex = 10 + ' + 'frmFindingHilfe + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(607, 579) + Me.Controls.Add(Me.WebBrowser1) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmFindingHilfe" + Me.Text = "Hilfe" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents WebBrowser1 As WebBrowser +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.resx new file mode 100644 index 0000000..6fc0482 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.resx @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHcAAAAAAAAAAHd3d3d3dwB4cEcAAAAAAABEREREREd3iHBEAAAAAAAAAAAAAAAEj/hwAEcAAAAA + d3d3d3d3d4//d3d0AAAAB4iIiIiIiI////iIcAAAAAf//////4iI/////3AAAAAH//////hwB4////9w + AAAAB//////4d3eP////cAAAAAf//////4iI/////3AAAAAH//////+Ij/////9wAAAAB//////4d3j/ + ////cAAAAAf/////+HRXj////3AAAAAH//////h1R4////9wAAAAB///////h0R4j///cAAAAAf///// + //h3d3j//3AAAAAH////iP//h0BHj/9wAAAAB///+HeI//hAB4//cAAAAAf///gAeP/4cACP/3AAAAAH + ///4AEeP+HAAj/9wAAAAB///+HAAiIgAB4//cAAAAAf///iHAHd3AHiP/3AAAAAH////+HAAAAeP//9w + AAAAB/////iHd3d4j///cAAAAAf//////////////3AAAAAH//////////////9wAAAAB/////////// + ///4cAAAAAB3d3d3d3d3d3d3dwAAAAAAAAAAAAAAAAAAAAAAAAD///z////8////8P////D//AAAP/wA + AD/wAAAP8AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AA + AA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/wAAA/8AAAPw== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.vb new file mode 100644 index 0000000..4fa685c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmFindingHilfe.vb @@ -0,0 +1,9 @@ +Public Class frmFindingHilfe + Private Sub frmFindingHilfe_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.WebBrowser1.Navigate(Application.StartupPath + "\findinghelp.pdf") + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.Designer.vb new file mode 100644 index 0000000..9ce1b79 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.Designer.vb @@ -0,0 +1,250 @@ + _ +Partial Class frmMassnahme + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMassnahme)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.txtBezeichnung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.cbaktiv = New System.Windows.Forms.CheckBox() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.btnSave = New System.Windows.Forms.Button() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblTermin = New System.Windows.Forms.Label() + Me.dtTermin = New System.Windows.Forms.DateTimePicker() + Me.cbboxVerantwortlich = New System.Windows.Forms.ComboBox() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtResultat = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(706, 25) + Me.ToolStrip1.TabIndex = 9 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'txtBezeichnung + ' + ' + ' + ' + Me.txtBezeichnung.Border.Class = "TextBoxBorder" + Me.txtBezeichnung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtBezeichnung.Location = New System.Drawing.Point(91, 28) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.PreventEnterBeep = True + Me.txtBezeichnung.Size = New System.Drawing.Size(599, 20) + Me.txtBezeichnung.TabIndex = 0 + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(15, 30) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 50 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(605, 193) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 49 + Me.lblAktiv.Text = "Aktiv" + ' + 'cbaktiv + ' + Me.cbaktiv.AutoSize = True + Me.cbaktiv.Location = New System.Drawing.Point(675, 192) + Me.cbaktiv.Name = "cbaktiv" + Me.cbaktiv.Size = New System.Drawing.Size(15, 14) + Me.cbaktiv.TabIndex = 3 + Me.cbaktiv.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(608, 393) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 7 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(8, 393) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 6 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.Location = New System.Drawing.Point(91, 54) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.Size = New System.Drawing.Size(599, 123) + Me.txtBeschreibung.TabIndex = 1 + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(15, 57) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 48 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblTermin + ' + Me.lblTermin.AutoSize = True + Me.lblTermin.Location = New System.Drawing.Point(15, 192) + Me.lblTermin.Name = "lblTermin" + Me.lblTermin.Size = New System.Drawing.Size(39, 13) + Me.lblTermin.TabIndex = 51 + Me.lblTermin.Text = "Termin" + ' + 'dtTermin + ' + Me.dtTermin.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtTermin.Location = New System.Drawing.Point(91, 187) + Me.dtTermin.Name = "dtTermin" + Me.dtTermin.Size = New System.Drawing.Size(125, 20) + Me.dtTermin.TabIndex = 2 + ' + 'cbboxVerantwortlich + ' + Me.cbboxVerantwortlich.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxVerantwortlich.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxVerantwortlich.FormattingEnabled = True + Me.cbboxVerantwortlich.Location = New System.Drawing.Point(91, 213) + Me.cbboxVerantwortlich.Name = "cbboxVerantwortlich" + Me.cbboxVerantwortlich.Size = New System.Drawing.Size(125, 21) + Me.cbboxVerantwortlich.TabIndex = 4 + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(15, 216) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(74, 13) + Me.lblVerantwortlich.TabIndex = 54 + Me.lblVerantwortlich.Text = "Verantwortlich" + ' + 'txtResultat + ' + Me.txtResultat.Location = New System.Drawing.Point(91, 253) + Me.txtResultat.Multiline = True + Me.txtResultat.Name = "txtResultat" + Me.txtResultat.Size = New System.Drawing.Size(599, 123) + Me.txtResultat.TabIndex = 5 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(15, 256) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(46, 13) + Me.Label1.TabIndex = 56 + Me.Label1.Text = "Resultat" + ' + 'frmMassnahme + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(706, 427) + Me.Controls.Add(Me.txtResultat) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.cbboxVerantwortlich) + Me.Controls.Add(Me.lblVerantwortlich) + Me.Controls.Add(Me.dtTermin) + Me.Controls.Add(Me.lblTermin) + Me.Controls.Add(Me.txtBezeichnung) + Me.Controls.Add(Me.lblBezeichnung) + Me.Controls.Add(Me.lblAktiv) + Me.Controls.Add(Me.cbaktiv) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.txtBeschreibung) + Me.Controls.Add(Me.lblBeschreibung) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmMassnahme" + Me.Text = "Massnahme" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents txtBezeichnung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblAktiv As Label + Friend WithEvents cbaktiv As CheckBox + Friend WithEvents btnAbbruch As Button + Friend WithEvents btnSave As Button + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblTermin As Label + Friend WithEvents dtTermin As DateTimePicker + Friend WithEvents cbboxVerantwortlich As ComboBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents txtResultat As TextBox + Friend WithEvents Label1 As Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.resx new file mode 100644 index 0000000..ef5e676 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.resx @@ -0,0 +1,3682 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + 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 + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.vb new file mode 100644 index 0000000..fa1658d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmMassnahme.vb @@ -0,0 +1,93 @@ +Public Class frmMassnahme + + Dim Massnahme As New clsPruefschrittMassnahme + + Dim m_key As Integer + Property Key As Integer + Get + Return m_key + End Get + Set(value As Integer) + m_key = value + End Set + End Property + + Dim m_pruefschrittfinding_nr As Integer + Property Pruefschrittresultatnr As Integer + Get + Return m_pruefschrittfinding_nr + End Get + Set(value As Integer) + m_pruefschrittfinding_nr = value + End Set + End Property + + Dim m_isReadonly As Boolean + Property IsReadonly As Boolean + Get + Return m_isReadonly + End Get + Set(value As Boolean) + m_isReadonly = value + End Set + End Property + + Dim sec As New Utils.MySecurity + + Private Sub frmMassnahme_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.cbboxVerantwortlich.DataSource = Massnahme.Verantwortung + Me.cbboxVerantwortlich.DisplayMember = "Bezeichnung" + Me.cbboxVerantwortlich.ValueMember = "Verantwortungnr" + If Key = -1 Then + Me.cbaktiv.Checked = True + Else + Massnahme.Get_Data(Me.Key) + Me.txtBeschreibung.Text = Massnahme.sBeschreibung.Value + Me.txtBezeichnung.Text = Massnahme.sKurzbeschreibung.Value + Me.cbaktiv.Checked = Massnahme.bAktiv.Value = True + Me.dtTermin.Value = Massnahme.daTermin.Value + Me.cbboxVerantwortlich.SelectedValue = Massnahme.iVerantwortungNr.Value + Me.txtResultat.Text = Massnahme.sMassnahmeResultat.Value + End If + + If IsReadonly = True Then + sec.Set_Form_Readonly(Me) + End If + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.DialogResult = DialogResult.Abort + Me.Close() + End Sub + + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.DialogResult = DialogResult.Abort + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + ' Dim Save_Verantwortung As Integer + Me.DialogResult = DialogResult.OK + If Me.Key = -1 Then + Massnahme.Add_New() + Me.Key = Massnahme.iPruefschrittmassnahmeNr + ' Save_Verantwortung = -1 + Else + Massnahme.Get_Data(Me.Key) + ' Save_Verantwortung = Massnahme.iVerantwortungNr.Value + End If + Massnahme.sKurzbeschreibung = New SqlTypes.SqlString(CType(Me.txtBezeichnung.Text, String)) + Massnahme.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBeschreibung.Text, String)) + Massnahme.sMassnahmeResultat = New SqlTypes.SqlString(CType(Me.txtResultat.Text, String)) + Massnahme.iPruefschrittfindingnr = New SqlTypes.SqlInt32(CType(Me.m_pruefschrittfinding_nr, Int16)) + Massnahme.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) + Massnahme.daTermin = New SqlTypes.SqlDateTime(CType(Me.dtTermin.Value, DateTime)) + Massnahme.iVerantwortungNr = New SqlTypes.SqlInt32(CType(Me.cbboxVerantwortlich.SelectedValue, Int32)) + Massnahme.Save_Data() + + + Me.Close() + + 'mailversand massnahe + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.Designer.vb new file mode 100644 index 0000000..712e984 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.Designer.vb @@ -0,0 +1,2008 @@ + +Partial Class frmPruefschrittUebersicht + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPruefschrittUebersicht)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.tsTxtSearch = New System.Windows.Forms.ToolStripTextBox() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.tsbtnAktualisieren = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuPruefschritt = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.AnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WeiterleitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AbschliessenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ZurückweisenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.GrpStatus = New System.Windows.Forms.GroupBox() + Me.TreeMassnahmen = New DevComponents.AdvTree.AdvTree() + Me.ImageList2 = New System.Windows.Forms.ImageList(Me.components) + Me.Node2 = New DevComponents.AdvTree.Node() + Me.NodeConnector2 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle2 = New DevComponents.DotNetBar.ElementStyle() + Me.TreeUebersicht = New DevComponents.AdvTree.AdvTree() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.tsbtnNeuesFinding = New System.Windows.Forms.ToolStripButton() + Me.tsbtnPruefschrittbearbeiten = New System.Windows.Forms.ToolStripButton() + Me.tsbtnFindingDelete = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.tsbtnAssessmentAnzeigen = New System.Windows.Forms.ToolStripButton() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.PnlNotiz = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.GrpNotiz = New System.Windows.Forms.GroupBox() + Me.txtnotiz = New System.Windows.Forms.TextBox() + Me.C1Notiz = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.PnlVerantwortlichkeitTermin = New System.Windows.Forms.Panel() + Me.GrpTermine = New System.Windows.Forms.GroupBox() + Me.txtMutierer = New System.Windows.Forms.TextBox() + Me.txtErstelltam = New System.Windows.Forms.TextBox() + Me.lblMutierer = New System.Windows.Forms.Label() + Me.txtMutiertam = New System.Windows.Forms.TextBox() + Me.lblErstelltam = New System.Windows.Forms.Label() + Me.lblMutiertam = New System.Windows.Forms.Label() + Me.txtZugewiesen = New System.Windows.Forms.TextBox() + Me.lblZugeweisen = New System.Windows.Forms.Label() + Me.txtTermin = New System.Windows.Forms.TextBox() + Me.lblTermin = New System.Windows.Forms.Label() + Me.Verantwortung = New System.Windows.Forms.GroupBox() + Me.txtVerantwortungPlan = New System.Windows.Forms.TextBox() + Me.lblVerantwortungPlan = New System.Windows.Forms.Label() + Me.txtVerantwortungISI = New System.Windows.Forms.TextBox() + Me.lblVerantwortlich = New System.Windows.Forms.Label() + Me.txtVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblInBearbeitung = New System.Windows.Forms.Label() + Me.txtAktuellVerantwortlich = New System.Windows.Forms.TextBox() + Me.lblVerantwortungIsi = New System.Windows.Forms.Label() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.Panel11 = New System.Windows.Forms.Panel() + Me.GrpDefinitionDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteDefinition = New ThemenDokumente.Dokumente() + Me.GrpDefinition = New System.Windows.Forms.GroupBox() + Me.txtDefinitionBemerkung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblDefinitionBemerkung = New System.Windows.Forms.Label() + Me.txtDefinitionBeschreibung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblDefinitionBeschreibung = New System.Windows.Forms.Label() + Me.txtDefinitionBezeichnung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblDefinitionBezeichnung = New System.Windows.Forms.Label() + Me.txtStruktur = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.lblStruktur = New System.Windows.Forms.Label() + Me.GrpVorgabe = New System.Windows.Forms.GroupBox() + Me.C1Vorgaben = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.Panel10 = New System.Windows.Forms.Panel() + Me.txtMassnahmen = New System.Windows.Forms.TextBox() + Me.txtHilfsmittel = New System.Windows.Forms.TextBox() + Me.lblPruefgegenstand = New System.Windows.Forms.Label() + Me.lblHilfsmittel = New System.Windows.Forms.Label() + Me.txtPruefgegenstand = New System.Windows.Forms.TextBox() + Me.txtBezeichnung = New System.Windows.Forms.TextBox() + Me.lblMassnahmen1 = New System.Windows.Forms.Label() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.lblEreignisse = New System.Windows.Forms.Label() + Me.lblKontrollaktivität = New System.Windows.Forms.Label() + Me.txtEreignisse = New System.Windows.Forms.TextBox() + Me.txtBeschreibung = New System.Windows.Forms.TextBox() + Me.lblMassnahmen2 = New System.Windows.Forms.Label() + Me.lblBeschreibung = New System.Windows.Forms.Label() + Me.lblEreignisse2 = New System.Windows.Forms.Label() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.SplitContainerResultat = New System.Windows.Forms.SplitContainer() + Me.GrpResultatDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteResultat = New ThemenDokumente.Dokumente() + Me.GrpBeschreibung = New System.Windows.Forms.GroupBox() + Me.txtBeschreibungResultat = New System.Windows.Forms.TextBox() + Me.GrpKurzbeschreibung = New System.Windows.Forms.GroupBox() + Me.txtKurzbeschreibungResultat = New System.Windows.Forms.TextBox() + Me.SplitContainerFindings = New System.Windows.Forms.SplitContainer() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.GrpDokumenteFindings = New System.Windows.Forms.GroupBox() + Me.DokumenteFindings = New ThemenDokumente.Dokumente() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.txtfindingbeschreibung = New System.Windows.Forms.TextBox() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.lblMassnahmeBeschreibung = New System.Windows.Forms.Label() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.txtfindingbezeichnung = New System.Windows.Forms.TextBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.lblMassnahmeBezeichnung = New System.Windows.Forms.Label() + Me.C1Findings = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.DokumenteMassnahmen = New ThemenDokumente.Dokumente() + Me.Panel5 = New System.Windows.Forms.Panel() + Me.SplitContainer3 = New System.Windows.Forms.SplitContainer() + Me.txtMassnahmebeschreibung = New System.Windows.Forms.TextBox() + Me.Panel6 = New System.Windows.Forms.Panel() + Me.Label1 = New System.Windows.Forms.Label() + Me.txtMassnahmeResultat = New System.Windows.Forms.TextBox() + Me.Panel9 = New System.Windows.Forms.Panel() + Me.Label3 = New System.Windows.Forms.Label() + Me.Panel7 = New System.Windows.Forms.Panel() + Me.txtmassnahmebezeichnung = New System.Windows.Forms.TextBox() + Me.Panel8 = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.C1Massnahmen = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.C1History = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ImageListFindings = New System.Windows.Forms.ImageList(Me.components) + Me.ImageListeMassnahmen = New System.Windows.Forms.ImageList(Me.components) + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuPruefschritt.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + Me.GrpStatus.SuspendLayout() + CType(Me.TreeMassnahmen, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ToolStrip2.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.PnlNotiz.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.GrpNotiz.SuspendLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).BeginInit() + Me.PnlVerantwortlichkeitTermin.SuspendLayout() + Me.GrpTermine.SuspendLayout() + Me.Verantwortung.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.Panel11.SuspendLayout() + Me.GrpDefinitionDokumente.SuspendLayout() + Me.GrpDefinition.SuspendLayout() + Me.GrpVorgabe.SuspendLayout() + CType(Me.C1Vorgaben, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel10.SuspendLayout() + Me.TabPage4.SuspendLayout() + CType(Me.SplitContainerResultat, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerResultat.Panel1.SuspendLayout() + Me.SplitContainerResultat.Panel2.SuspendLayout() + Me.SplitContainerResultat.SuspendLayout() + Me.GrpResultatDokumente.SuspendLayout() + Me.GrpBeschreibung.SuspendLayout() + Me.GrpKurzbeschreibung.SuspendLayout() + CType(Me.SplitContainerFindings, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerFindings.Panel1.SuspendLayout() + Me.SplitContainerFindings.Panel2.SuspendLayout() + Me.SplitContainerFindings.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GrpDokumenteFindings.SuspendLayout() + Me.Panel4.SuspendLayout() + Me.Panel3.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.Panel1.SuspendLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox5.SuspendLayout() + Me.Panel5.SuspendLayout() + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer3.Panel1.SuspendLayout() + Me.SplitContainer3.Panel2.SuspendLayout() + Me.SplitContainer3.SuspendLayout() + Me.Panel6.SuspendLayout() + Me.Panel9.SuspendLayout() + Me.Panel7.SuspendLayout() + Me.Panel8.SuspendLayout() + Me.GroupBox3.SuspendLayout() + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage5.SuspendLayout() + CType(Me.C1History, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1248, 24) + Me.MenuStrip1.TabIndex = 5 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(128, 22) + Me.BeendenToolStripMenuItem.Text = "&Schliessen" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1, Me.lblSearchStruktur_Definition, Me.tsTxtSearch, Me.tsBtnSearchStruktur_Definition, Me.tsbtnFilterAufheben, Me.tsbtnAktualisieren}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(1248, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'tsTxtSearch + ' + Me.tsTxtSearch.Name = "tsTxtSearch" + Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsbtnFilterAufheben + ' + Me.tsbtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFilterAufheben.Image = CType(resources.GetObject("tsbtnFilterAufheben.Image"), System.Drawing.Image) + Me.tsbtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFilterAufheben.Name = "tsbtnFilterAufheben" + Me.tsbtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFilterAufheben.Text = "Filter aufheben" + ' + 'tsbtnAktualisieren + ' + Me.tsbtnAktualisieren.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnAktualisieren.Image = CType(resources.GetObject("tsbtnAktualisieren.Image"), System.Drawing.Image) + Me.tsbtnAktualisieren.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnAktualisieren.Name = "tsbtnAktualisieren" + Me.tsbtnAktualisieren.Size = New System.Drawing.Size(23, 22) + Me.tsbtnAktualisieren.Text = "Aktualisieren" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(988, 230) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 10 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuPruefschritt + ' + Me.ctxMenuPruefschritt.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AnzeigenToolStripMenuItem, Me.BearbeitenToolStripMenuItem, Me.WeiterleitenToolStripMenuItem, Me.AbschliessenToolStripMenuItem, Me.ZurückweisenToolStripMenuItem}) + Me.ctxMenuPruefschritt.Name = "ctxMenuPruefschritt" + Me.ctxMenuPruefschritt.Size = New System.Drawing.Size(148, 114) + ' + 'AnzeigenToolStripMenuItem + ' + Me.AnzeigenToolStripMenuItem.Name = "AnzeigenToolStripMenuItem" + Me.AnzeigenToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.AnzeigenToolStripMenuItem.Text = "Anzeigen" + ' + 'BearbeitenToolStripMenuItem + ' + Me.BearbeitenToolStripMenuItem.Name = "BearbeitenToolStripMenuItem" + Me.BearbeitenToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.BearbeitenToolStripMenuItem.Text = "Bearbeiten" + ' + 'WeiterleitenToolStripMenuItem + ' + Me.WeiterleitenToolStripMenuItem.Name = "WeiterleitenToolStripMenuItem" + Me.WeiterleitenToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.WeiterleitenToolStripMenuItem.Text = "Weiterleiten" + ' + 'AbschliessenToolStripMenuItem + ' + Me.AbschliessenToolStripMenuItem.Name = "AbschliessenToolStripMenuItem" + Me.AbschliessenToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.AbschliessenToolStripMenuItem.Text = "Abschliessen" + ' + 'ZurückweisenToolStripMenuItem + ' + Me.ZurückweisenToolStripMenuItem.Name = "ZurückweisenToolStripMenuItem" + Me.ZurückweisenToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.ZurückweisenToolStripMenuItem.Text = "Zurückweisen" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.TabControl1) + Me.SplitContainer1.Size = New System.Drawing.Size(1248, 660) + Me.SplitContainer1.SplitterDistance = 255 + Me.SplitContainer1.TabIndex = 11 + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.GrpStatus) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.C1Daten) + Me.SplitContainer2.Panel2.Controls.Add(Me.ToolStrip2) + Me.SplitContainer2.Size = New System.Drawing.Size(1248, 255) + Me.SplitContainer2.SplitterDistance = 256 + Me.SplitContainer2.TabIndex = 0 + ' + 'GrpStatus + ' + Me.GrpStatus.Controls.Add(Me.TreeMassnahmen) + Me.GrpStatus.Controls.Add(Me.TreeUebersicht) + Me.GrpStatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpStatus.Location = New System.Drawing.Point(0, 0) + Me.GrpStatus.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Name = "GrpStatus" + Me.GrpStatus.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GrpStatus.Size = New System.Drawing.Size(256, 255) + Me.GrpStatus.TabIndex = 0 + Me.GrpStatus.TabStop = False + Me.GrpStatus.Text = "Status" + ' + 'TreeMassnahmen + ' + Me.TreeMassnahmen.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeMassnahmen.AllowDrop = True + Me.TreeMassnahmen.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeMassnahmen.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeMassnahmen.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeMassnahmen.Dock = System.Windows.Forms.DockStyle.Top + Me.TreeMassnahmen.ImageList = Me.ImageList2 + Me.TreeMassnahmen.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeMassnahmen.Location = New System.Drawing.Point(2, 157) + Me.TreeMassnahmen.Name = "TreeMassnahmen" + Me.TreeMassnahmen.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node2}) + Me.TreeMassnahmen.NodesConnector = Me.NodeConnector2 + Me.TreeMassnahmen.NodeStyle = Me.ElementStyle2 + Me.TreeMassnahmen.PathSeparator = ";" + Me.TreeMassnahmen.Size = New System.Drawing.Size(252, 100) + Me.TreeMassnahmen.Styles.Add(Me.ElementStyle2) + Me.TreeMassnahmen.TabIndex = 1 + Me.TreeMassnahmen.Text = "AdvTree1" + ' + 'ImageList2 + ' + Me.ImageList2.ImageStream = CType(resources.GetObject("ImageList2.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList2.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList2.Images.SetKeyName(0, "Status-Free_16.png") + Me.ImageList2.Images.SetKeyName(1, "Status-offline_16.png") + Me.ImageList2.Images.SetKeyName(2, "Status-Busy_16.png") + ' + 'Node2 + ' + Me.Node2.Expanded = True + Me.Node2.Name = "Node2" + Me.Node2.Text = "Node2" + ' + 'NodeConnector2 + ' + Me.NodeConnector2.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle2 + ' + Me.ElementStyle2.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle2.Name = "ElementStyle2" + Me.ElementStyle2.TextColor = System.Drawing.SystemColors.ControlText + ' + 'TreeUebersicht + ' + Me.TreeUebersicht.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeUebersicht.AllowDrop = True + Me.TreeUebersicht.AllowExternalDrop = False + Me.TreeUebersicht.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeUebersicht.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeUebersicht.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeUebersicht.Dock = System.Windows.Forms.DockStyle.Top + Me.TreeUebersicht.DragDropEnabled = False + Me.TreeUebersicht.DragDropNodeCopyEnabled = False + Me.TreeUebersicht.ImageList = Me.ImageList1 + Me.TreeUebersicht.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeUebersicht.Location = New System.Drawing.Point(2, 16) + Me.TreeUebersicht.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.TreeUebersicht.Name = "TreeUebersicht" + Me.TreeUebersicht.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeUebersicht.NodesConnector = Me.NodeConnector1 + Me.TreeUebersicht.NodeStyle = Me.ElementStyle1 + Me.TreeUebersicht.PathSeparator = ";" + Me.TreeUebersicht.Size = New System.Drawing.Size(252, 141) + Me.TreeUebersicht.Styles.Add(Me.ElementStyle1) + Me.TreeUebersicht.TabIndex = 0 + Me.TreeUebersicht.Text = "AdvTree1" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "New-icon.png") + Me.ImageList1.Images.SetKeyName(1, "progress.png") + Me.ImageList1.Images.SetKeyName(2, "VeriISI.png") + Me.ImageList1.Images.SetKeyName(3, "Massnahmen.png") + Me.ImageList1.Images.SetKeyName(4, "ok.png") + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStrip2 + ' + Me.ToolStrip2.AllowDrop = True + Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbtnNeuesFinding, Me.tsbtnPruefschrittbearbeiten, Me.tsbtnFindingDelete, Me.ToolStripButton3, Me.tsbtnAssessmentAnzeigen}) + Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip2.Name = "ToolStrip2" + Me.ToolStrip2.Size = New System.Drawing.Size(988, 25) + Me.ToolStrip2.TabIndex = 11 + Me.ToolStrip2.Text = "ToolStrip2" + ' + 'tsbtnNeuesFinding + ' + Me.tsbtnNeuesFinding.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnNeuesFinding.Image = CType(resources.GetObject("tsbtnNeuesFinding.Image"), System.Drawing.Image) + Me.tsbtnNeuesFinding.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnNeuesFinding.Name = "tsbtnNeuesFinding" + Me.tsbtnNeuesFinding.Size = New System.Drawing.Size(23, 22) + Me.tsbtnNeuesFinding.Text = "Neues Finding erfassen" + Me.tsbtnNeuesFinding.Visible = False + ' + 'tsbtnPruefschrittbearbeiten + ' + Me.tsbtnPruefschrittbearbeiten.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnPruefschrittbearbeiten.Image = CType(resources.GetObject("tsbtnPruefschrittbearbeiten.Image"), System.Drawing.Image) + Me.tsbtnPruefschrittbearbeiten.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnPruefschrittbearbeiten.Name = "tsbtnPruefschrittbearbeiten" + Me.tsbtnPruefschrittbearbeiten.Size = New System.Drawing.Size(23, 22) + Me.tsbtnPruefschrittbearbeiten.Text = "Prüfschritt bearbeiten" + ' + 'tsbtnFindingDelete + ' + Me.tsbtnFindingDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnFindingDelete.Image = CType(resources.GetObject("tsbtnFindingDelete.Image"), System.Drawing.Image) + Me.tsbtnFindingDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnFindingDelete.Name = "tsbtnFindingDelete" + Me.tsbtnFindingDelete.Size = New System.Drawing.Size(23, 22) + Me.tsbtnFindingDelete.Text = "Finding löschen" + Me.tsbtnFindingDelete.Visible = False + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "Dokument anzeigen" + Me.ToolStripButton3.Visible = False + ' + 'tsbtnAssessmentAnzeigen + ' + Me.tsbtnAssessmentAnzeigen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnAssessmentAnzeigen.Image = CType(resources.GetObject("tsbtnAssessmentAnzeigen.Image"), System.Drawing.Image) + Me.tsbtnAssessmentAnzeigen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnAssessmentAnzeigen.Name = "tsbtnAssessmentAnzeigen" + Me.tsbtnAssessmentAnzeigen.Size = New System.Drawing.Size(23, 22) + Me.tsbtnAssessmentAnzeigen.Text = "Assessment anzeigen" + Me.tsbtnAssessmentAnzeigen.Visible = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(0, 0) + Me.TabControl1.Margin = New System.Windows.Forms.Padding(2) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1248, 401) + Me.TabControl1.TabIndex = 15 + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.PnlNotiz) + Me.TabPage3.Controls.Add(Me.PnlVerantwortlichkeitTermin) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(1240, 375) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Allgemein" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'PnlNotiz + ' + Me.PnlNotiz.Controls.Add(Me.GroupBox1) + Me.PnlNotiz.Controls.Add(Me.GrpNotiz) + Me.PnlNotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.PnlNotiz.Location = New System.Drawing.Point(283, 0) + Me.PnlNotiz.Name = "PnlNotiz" + Me.PnlNotiz.Size = New System.Drawing.Size(957, 375) + Me.PnlNotiz.TabIndex = 3 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.DokumenteAllgemein) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox1.Location = New System.Drawing.Point(408, 0) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.GroupBox1.Size = New System.Drawing.Size(549, 375) + Me.GroupBox1.TabIndex = 15 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(2, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(545, 356) + Me.DokumenteAllgemein.TabIndex = 0 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'GrpNotiz + ' + Me.GrpNotiz.Controls.Add(Me.txtnotiz) + Me.GrpNotiz.Controls.Add(Me.C1Notiz) + Me.GrpNotiz.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpNotiz.Location = New System.Drawing.Point(0, 0) + Me.GrpNotiz.Name = "GrpNotiz" + Me.GrpNotiz.Size = New System.Drawing.Size(408, 375) + Me.GrpNotiz.TabIndex = 0 + Me.GrpNotiz.TabStop = False + Me.GrpNotiz.Text = "Notizen" + ' + 'txtnotiz + ' + Me.txtnotiz.BackColor = System.Drawing.Color.White + Me.txtnotiz.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtnotiz.Location = New System.Drawing.Point(3, 148) + Me.txtnotiz.Multiline = True + Me.txtnotiz.Name = "txtnotiz" + Me.txtnotiz.ReadOnly = True + Me.txtnotiz.Size = New System.Drawing.Size(402, 224) + Me.txtnotiz.TabIndex = 1 + ' + 'C1Notiz + ' + Me.C1Notiz.AllowUpdate = False + Me.C1Notiz.AlternatingRows = True + Me.C1Notiz.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Notiz.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Notiz.FilterBar = True + Me.C1Notiz.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Notiz.Images.Add(CType(resources.GetObject("C1Notiz.Images"), System.Drawing.Image)) + Me.C1Notiz.Location = New System.Drawing.Point(3, 16) + Me.C1Notiz.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Notiz.Name = "C1Notiz" + Me.C1Notiz.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Notiz.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Notiz.PreviewInfo.ZoomFactor = 75.0R + Me.C1Notiz.PrintInfo.PageSettings = CType(resources.GetObject("C1Notiz.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Notiz.Size = New System.Drawing.Size(402, 132) + Me.C1Notiz.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Notiz.TabIndex = 11 + Me.C1Notiz.Text = "C1TrueDBGrid1" + Me.C1Notiz.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Notiz.PropBag = resources.GetString("C1Notiz.PropBag") + ' + 'PnlVerantwortlichkeitTermin + ' + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.GrpTermine) + Me.PnlVerantwortlichkeitTermin.Controls.Add(Me.Verantwortung) + Me.PnlVerantwortlichkeitTermin.Dock = System.Windows.Forms.DockStyle.Left + Me.PnlVerantwortlichkeitTermin.Location = New System.Drawing.Point(0, 0) + Me.PnlVerantwortlichkeitTermin.Name = "PnlVerantwortlichkeitTermin" + Me.PnlVerantwortlichkeitTermin.Size = New System.Drawing.Size(283, 375) + Me.PnlVerantwortlichkeitTermin.TabIndex = 2 + ' + 'GrpTermine + ' + Me.GrpTermine.Controls.Add(Me.txtMutierer) + Me.GrpTermine.Controls.Add(Me.txtErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutierer) + Me.GrpTermine.Controls.Add(Me.txtMutiertam) + Me.GrpTermine.Controls.Add(Me.lblErstelltam) + Me.GrpTermine.Controls.Add(Me.lblMutiertam) + Me.GrpTermine.Controls.Add(Me.txtZugewiesen) + Me.GrpTermine.Controls.Add(Me.lblZugeweisen) + Me.GrpTermine.Controls.Add(Me.txtTermin) + Me.GrpTermine.Controls.Add(Me.lblTermin) + Me.GrpTermine.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpTermine.Location = New System.Drawing.Point(0, 136) + Me.GrpTermine.Name = "GrpTermine" + Me.GrpTermine.Size = New System.Drawing.Size(283, 159) + Me.GrpTermine.TabIndex = 1 + Me.GrpTermine.TabStop = False + Me.GrpTermine.Text = "Termine" + ' + 'txtMutierer + ' + Me.txtMutierer.BackColor = System.Drawing.Color.White + Me.txtMutierer.Location = New System.Drawing.Point(114, 130) + Me.txtMutierer.Name = "txtMutierer" + Me.txtMutierer.ReadOnly = True + Me.txtMutierer.Size = New System.Drawing.Size(159, 20) + Me.txtMutierer.TabIndex = 50 + ' + 'txtErstelltam + ' + Me.txtErstelltam.BackColor = System.Drawing.Color.White + Me.txtErstelltam.Location = New System.Drawing.Point(114, 79) + Me.txtErstelltam.Name = "txtErstelltam" + Me.txtErstelltam.ReadOnly = True + Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) + Me.txtErstelltam.TabIndex = 48 + ' + 'lblMutierer + ' + Me.lblMutierer.AutoSize = True + Me.lblMutierer.Location = New System.Drawing.Point(9, 133) + Me.lblMutierer.Name = "lblMutierer" + Me.lblMutierer.Size = New System.Drawing.Size(45, 13) + Me.lblMutierer.TabIndex = 47 + Me.lblMutierer.Text = "Mutierer" + ' + 'txtMutiertam + ' + Me.txtMutiertam.BackColor = System.Drawing.Color.White + Me.txtMutiertam.Location = New System.Drawing.Point(114, 105) + Me.txtMutiertam.Name = "txtMutiertam" + Me.txtMutiertam.ReadOnly = True + Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) + Me.txtMutiertam.TabIndex = 49 + ' + 'lblErstelltam + ' + Me.lblErstelltam.AutoSize = True + Me.lblErstelltam.Location = New System.Drawing.Point(9, 82) + Me.lblErstelltam.Name = "lblErstelltam" + Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) + Me.lblErstelltam.TabIndex = 45 + Me.lblErstelltam.Text = "Erstellt am" + ' + 'lblMutiertam + ' + Me.lblMutiertam.AutoSize = True + Me.lblMutiertam.Location = New System.Drawing.Point(9, 108) + Me.lblMutiertam.Name = "lblMutiertam" + Me.lblMutiertam.Size = New System.Drawing.Size(56, 13) + Me.lblMutiertam.TabIndex = 46 + Me.lblMutiertam.Text = "Mutiert am" + ' + 'txtZugewiesen + ' + Me.txtZugewiesen.BackColor = System.Drawing.Color.White + Me.txtZugewiesen.Location = New System.Drawing.Point(114, 49) + Me.txtZugewiesen.Name = "txtZugewiesen" + Me.txtZugewiesen.ReadOnly = True + Me.txtZugewiesen.Size = New System.Drawing.Size(159, 20) + Me.txtZugewiesen.TabIndex = 8 + ' + 'lblZugeweisen + ' + Me.lblZugeweisen.AutoSize = True + Me.lblZugeweisen.Location = New System.Drawing.Point(6, 52) + Me.lblZugeweisen.Name = "lblZugeweisen" + Me.lblZugeweisen.Size = New System.Drawing.Size(65, 13) + Me.lblZugeweisen.TabIndex = 7 + Me.lblZugeweisen.Text = "Zugewiesen" + ' + 'txtTermin + ' + Me.txtTermin.BackColor = System.Drawing.Color.White + Me.txtTermin.Location = New System.Drawing.Point(114, 23) + Me.txtTermin.Name = "txtTermin" + Me.txtTermin.ReadOnly = True + Me.txtTermin.Size = New System.Drawing.Size(159, 20) + Me.txtTermin.TabIndex = 6 + ' + 'lblTermin + ' + Me.lblTermin.AutoSize = True + Me.lblTermin.Location = New System.Drawing.Point(6, 26) + Me.lblTermin.Name = "lblTermin" + Me.lblTermin.Size = New System.Drawing.Size(39, 13) + Me.lblTermin.TabIndex = 6 + Me.lblTermin.Text = "Termin" + ' + 'Verantwortung + ' + Me.Verantwortung.Controls.Add(Me.txtVerantwortungPlan) + Me.Verantwortung.Controls.Add(Me.lblVerantwortungPlan) + Me.Verantwortung.Controls.Add(Me.txtVerantwortungISI) + Me.Verantwortung.Controls.Add(Me.lblVerantwortlich) + Me.Verantwortung.Controls.Add(Me.txtVerantwortlich) + Me.Verantwortung.Controls.Add(Me.lblInBearbeitung) + Me.Verantwortung.Controls.Add(Me.txtAktuellVerantwortlich) + Me.Verantwortung.Controls.Add(Me.lblVerantwortungIsi) + Me.Verantwortung.Dock = System.Windows.Forms.DockStyle.Top + Me.Verantwortung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Verantwortung.Location = New System.Drawing.Point(0, 0) + Me.Verantwortung.Name = "Verantwortung" + Me.Verantwortung.Size = New System.Drawing.Size(283, 136) + Me.Verantwortung.TabIndex = 0 + Me.Verantwortung.TabStop = False + Me.Verantwortung.Text = "Verantwortlichkeiten" + ' + 'txtVerantwortungPlan + ' + Me.txtVerantwortungPlan.BackColor = System.Drawing.Color.White + Me.txtVerantwortungPlan.Location = New System.Drawing.Point(114, 100) + Me.txtVerantwortungPlan.Name = "txtVerantwortungPlan" + Me.txtVerantwortungPlan.ReadOnly = True + Me.txtVerantwortungPlan.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungPlan.TabIndex = 7 + ' + 'lblVerantwortungPlan + ' + Me.lblVerantwortungPlan.AutoSize = True + Me.lblVerantwortungPlan.Location = New System.Drawing.Point(6, 106) + Me.lblVerantwortungPlan.Name = "lblVerantwortungPlan" + Me.lblVerantwortungPlan.Size = New System.Drawing.Size(46, 13) + Me.lblVerantwortungPlan.TabIndex = 6 + Me.lblVerantwortungPlan.Text = "Planung" + ' + 'txtVerantwortungISI + ' + Me.txtVerantwortungISI.BackColor = System.Drawing.Color.White + Me.txtVerantwortungISI.Location = New System.Drawing.Point(114, 74) + Me.txtVerantwortungISI.Name = "txtVerantwortungISI" + Me.txtVerantwortungISI.ReadOnly = True + Me.txtVerantwortungISI.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortungISI.TabIndex = 5 + ' + 'lblVerantwortlich + ' + Me.lblVerantwortlich.AutoSize = True + Me.lblVerantwortlich.Location = New System.Drawing.Point(6, 26) + Me.lblVerantwortlich.Name = "lblVerantwortlich" + Me.lblVerantwortlich.Size = New System.Drawing.Size(104, 13) + Me.lblVerantwortlich.TabIndex = 0 + Me.lblVerantwortlich.Text = "Hauptverantwortung" + ' + 'txtVerantwortlich + ' + Me.txtVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtVerantwortlich.Location = New System.Drawing.Point(114, 23) + Me.txtVerantwortlich.Name = "txtVerantwortlich" + Me.txtVerantwortlich.ReadOnly = True + Me.txtVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtVerantwortlich.TabIndex = 3 + ' + 'lblInBearbeitung + ' + Me.lblInBearbeitung.AutoSize = True + Me.lblInBearbeitung.Location = New System.Drawing.Point(6, 51) + Me.lblInBearbeitung.Name = "lblInBearbeitung" + Me.lblInBearbeitung.Size = New System.Drawing.Size(93, 13) + Me.lblInBearbeitung.TabIndex = 1 + Me.lblInBearbeitung.Text = "In Bearbeitung bei" + ' + 'txtAktuellVerantwortlich + ' + Me.txtAktuellVerantwortlich.BackColor = System.Drawing.Color.White + Me.txtAktuellVerantwortlich.Location = New System.Drawing.Point(114, 48) + Me.txtAktuellVerantwortlich.Name = "txtAktuellVerantwortlich" + Me.txtAktuellVerantwortlich.ReadOnly = True + Me.txtAktuellVerantwortlich.Size = New System.Drawing.Size(159, 20) + Me.txtAktuellVerantwortlich.TabIndex = 4 + ' + 'lblVerantwortungIsi + ' + Me.lblVerantwortungIsi.AutoSize = True + Me.lblVerantwortungIsi.Location = New System.Drawing.Point(6, 80) + Me.lblVerantwortungIsi.Name = "lblVerantwortungIsi" + Me.lblVerantwortungIsi.Size = New System.Drawing.Size(48, 13) + Me.lblVerantwortungIsi.TabIndex = 2 + Me.lblVerantwortungIsi.Text = "Kontrolle" + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.Panel11) + Me.TabPage1.Controls.Add(Me.Panel10) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Margin = New System.Windows.Forms.Padding(2) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(2) + Me.TabPage1.Size = New System.Drawing.Size(1240, 375) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Definitionen für das Assessment" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'Panel11 + ' + Me.Panel11.Controls.Add(Me.GrpDefinitionDokumente) + Me.Panel11.Controls.Add(Me.GrpDefinition) + Me.Panel11.Controls.Add(Me.GrpVorgabe) + Me.Panel11.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel11.Location = New System.Drawing.Point(542, 2) + Me.Panel11.Name = "Panel11" + Me.Panel11.Size = New System.Drawing.Size(696, 371) + Me.Panel11.TabIndex = 70 + ' + 'GrpDefinitionDokumente + ' + Me.GrpDefinitionDokumente.Controls.Add(Me.DokumenteDefinition) + Me.GrpDefinitionDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDefinitionDokumente.Location = New System.Drawing.Point(394, 139) + Me.GrpDefinitionDokumente.Name = "GrpDefinitionDokumente" + Me.GrpDefinitionDokumente.Size = New System.Drawing.Size(302, 232) + Me.GrpDefinitionDokumente.TabIndex = 14 + Me.GrpDefinitionDokumente.TabStop = False + Me.GrpDefinitionDokumente.Text = "Dokumente" + ' + 'DokumenteDefinition + ' + Me.DokumenteDefinition.ConnectionString = Nothing + Me.DokumenteDefinition.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteDefinition.Doktype = 0 + Me.DokumenteDefinition.Location = New System.Drawing.Point(3, 16) + Me.DokumenteDefinition.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteDefinition.Mitarbeiternr = 0 + Me.DokumenteDefinition.Name = "DokumenteDefinition" + Me.DokumenteDefinition.Pruefschrittnr = 0 + Me.DokumenteDefinition.Size = New System.Drawing.Size(296, 213) + Me.DokumenteDefinition.TabIndex = 35 + Me.DokumenteDefinition.TempFilePath = Nothing + Me.DokumenteDefinition.ThemaNr = 0 + ' + 'GrpDefinition + ' + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBemerkung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBemerkung) + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBeschreibung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBeschreibung) + Me.GrpDefinition.Controls.Add(Me.txtDefinitionBezeichnung) + Me.GrpDefinition.Controls.Add(Me.lblDefinitionBezeichnung) + Me.GrpDefinition.Controls.Add(Me.txtStruktur) + Me.GrpDefinition.Controls.Add(Me.lblStruktur) + Me.GrpDefinition.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpDefinition.Location = New System.Drawing.Point(0, 139) + Me.GrpDefinition.Name = "GrpDefinition" + Me.GrpDefinition.Size = New System.Drawing.Size(394, 232) + Me.GrpDefinition.TabIndex = 13 + Me.GrpDefinition.TabStop = False + Me.GrpDefinition.Text = "Definition" + ' + 'txtDefinitionBemerkung + ' + ' + ' + ' + Me.txtDefinitionBemerkung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBemerkung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBemerkung.Location = New System.Drawing.Point(83, 143) + Me.txtDefinitionBemerkung.Multiline = True + Me.txtDefinitionBemerkung.Name = "txtDefinitionBemerkung" + Me.txtDefinitionBemerkung.PreventEnterBeep = True + Me.txtDefinitionBemerkung.ReadOnly = True + Me.txtDefinitionBemerkung.Size = New System.Drawing.Size(305, 70) + Me.txtDefinitionBemerkung.TabIndex = 22 + ' + 'lblDefinitionBemerkung + ' + Me.lblDefinitionBemerkung.AutoSize = True + Me.lblDefinitionBemerkung.Location = New System.Drawing.Point(8, 145) + Me.lblDefinitionBemerkung.Name = "lblDefinitionBemerkung" + Me.lblDefinitionBemerkung.Size = New System.Drawing.Size(73, 13) + Me.lblDefinitionBemerkung.TabIndex = 21 + Me.lblDefinitionBemerkung.Text = "Bemerkungen" + ' + 'txtDefinitionBeschreibung + ' + ' + ' + ' + Me.txtDefinitionBeschreibung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBeschreibung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBeschreibung.Location = New System.Drawing.Point(83, 67) + Me.txtDefinitionBeschreibung.Multiline = True + Me.txtDefinitionBeschreibung.Name = "txtDefinitionBeschreibung" + Me.txtDefinitionBeschreibung.PreventEnterBeep = True + Me.txtDefinitionBeschreibung.ReadOnly = True + Me.txtDefinitionBeschreibung.Size = New System.Drawing.Size(305, 70) + Me.txtDefinitionBeschreibung.TabIndex = 20 + ' + 'lblDefinitionBeschreibung + ' + Me.lblDefinitionBeschreibung.AutoSize = True + Me.lblDefinitionBeschreibung.Location = New System.Drawing.Point(8, 69) + Me.lblDefinitionBeschreibung.Name = "lblDefinitionBeschreibung" + Me.lblDefinitionBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblDefinitionBeschreibung.TabIndex = 19 + Me.lblDefinitionBeschreibung.Text = "Beschreibung" + ' + 'txtDefinitionBezeichnung + ' + ' + ' + ' + Me.txtDefinitionBezeichnung.Border.Class = "TextBoxBorder" + Me.txtDefinitionBezeichnung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtDefinitionBezeichnung.Location = New System.Drawing.Point(83, 40) + Me.txtDefinitionBezeichnung.Name = "txtDefinitionBezeichnung" + Me.txtDefinitionBezeichnung.PreventEnterBeep = True + Me.txtDefinitionBezeichnung.ReadOnly = True + Me.txtDefinitionBezeichnung.Size = New System.Drawing.Size(305, 20) + Me.txtDefinitionBezeichnung.TabIndex = 18 + ' + 'lblDefinitionBezeichnung + ' + Me.lblDefinitionBezeichnung.AutoSize = True + Me.lblDefinitionBezeichnung.Location = New System.Drawing.Point(8, 42) + Me.lblDefinitionBezeichnung.Name = "lblDefinitionBezeichnung" + Me.lblDefinitionBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblDefinitionBezeichnung.TabIndex = 17 + Me.lblDefinitionBezeichnung.Text = "Bezeichnung" + ' + 'txtStruktur + ' + ' + ' + ' + Me.txtStruktur.Border.Class = "TextBoxBorder" + Me.txtStruktur.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtStruktur.Location = New System.Drawing.Point(83, 14) + Me.txtStruktur.Name = "txtStruktur" + Me.txtStruktur.PreventEnterBeep = True + Me.txtStruktur.ReadOnly = True + Me.txtStruktur.Size = New System.Drawing.Size(305, 20) + Me.txtStruktur.TabIndex = 16 + ' + 'lblStruktur + ' + Me.lblStruktur.AutoSize = True + Me.lblStruktur.Location = New System.Drawing.Point(8, 16) + Me.lblStruktur.Name = "lblStruktur" + Me.lblStruktur.Size = New System.Drawing.Size(44, 13) + Me.lblStruktur.TabIndex = 15 + Me.lblStruktur.Text = "Struktur" + ' + 'GrpVorgabe + ' + Me.GrpVorgabe.Controls.Add(Me.C1Vorgaben) + Me.GrpVorgabe.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpVorgabe.Location = New System.Drawing.Point(0, 0) + Me.GrpVorgabe.Name = "GrpVorgabe" + Me.GrpVorgabe.Size = New System.Drawing.Size(696, 139) + Me.GrpVorgabe.TabIndex = 12 + Me.GrpVorgabe.TabStop = False + Me.GrpVorgabe.Text = "Vorgaben" + ' + 'C1Vorgaben + ' + Me.C1Vorgaben.AllowUpdate = False + Me.C1Vorgaben.AlternatingRows = True + Me.C1Vorgaben.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Vorgaben.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Vorgaben.FilterBar = True + Me.C1Vorgaben.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Vorgaben.Images.Add(CType(resources.GetObject("C1Vorgaben.Images"), System.Drawing.Image)) + Me.C1Vorgaben.Location = New System.Drawing.Point(3, 16) + Me.C1Vorgaben.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Vorgaben.Name = "C1Vorgaben" + Me.C1Vorgaben.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Vorgaben.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Vorgaben.PreviewInfo.ZoomFactor = 75.0R + Me.C1Vorgaben.PrintInfo.PageSettings = CType(resources.GetObject("C1Vorgaben.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Vorgaben.Size = New System.Drawing.Size(690, 120) + Me.C1Vorgaben.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Vorgaben.TabIndex = 11 + Me.C1Vorgaben.Text = "C1TrueDBGrid1" + Me.C1Vorgaben.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Vorgaben.PropBag = resources.GetString("C1Vorgaben.PropBag") + ' + 'Panel10 + ' + Me.Panel10.Controls.Add(Me.txtMassnahmen) + Me.Panel10.Controls.Add(Me.txtHilfsmittel) + Me.Panel10.Controls.Add(Me.lblPruefgegenstand) + Me.Panel10.Controls.Add(Me.lblHilfsmittel) + Me.Panel10.Controls.Add(Me.txtPruefgegenstand) + Me.Panel10.Controls.Add(Me.txtBezeichnung) + Me.Panel10.Controls.Add(Me.lblMassnahmen1) + Me.Panel10.Controls.Add(Me.lblBezeichnung) + Me.Panel10.Controls.Add(Me.lblEreignisse) + Me.Panel10.Controls.Add(Me.lblKontrollaktivität) + Me.Panel10.Controls.Add(Me.txtEreignisse) + Me.Panel10.Controls.Add(Me.txtBeschreibung) + Me.Panel10.Controls.Add(Me.lblMassnahmen2) + Me.Panel10.Controls.Add(Me.lblBeschreibung) + Me.Panel10.Controls.Add(Me.lblEreignisse2) + Me.Panel10.Dock = System.Windows.Forms.DockStyle.Left + Me.Panel10.Location = New System.Drawing.Point(2, 2) + Me.Panel10.Name = "Panel10" + Me.Panel10.Size = New System.Drawing.Size(540, 371) + Me.Panel10.TabIndex = 69 + ' + 'txtMassnahmen + ' + Me.txtMassnahmen.BackColor = System.Drawing.Color.White + Me.txtMassnahmen.Location = New System.Drawing.Point(92, 236) + Me.txtMassnahmen.Multiline = True + Me.txtMassnahmen.Name = "txtMassnahmen" + Me.txtMassnahmen.ReadOnly = True + Me.txtMassnahmen.Size = New System.Drawing.Size(427, 61) + Me.txtMassnahmen.TabIndex = 57 + ' + 'txtHilfsmittel + ' + Me.txtHilfsmittel.BackColor = System.Drawing.Color.White + Me.txtHilfsmittel.Location = New System.Drawing.Point(92, 166) + Me.txtHilfsmittel.Multiline = True + Me.txtHilfsmittel.Name = "txtHilfsmittel" + Me.txtHilfsmittel.ReadOnly = True + Me.txtHilfsmittel.Size = New System.Drawing.Size(427, 64) + Me.txtHilfsmittel.TabIndex = 67 + ' + 'lblPruefgegenstand + ' + Me.lblPruefgegenstand.AutoSize = True + Me.lblPruefgegenstand.Location = New System.Drawing.Point(8, 93) + Me.lblPruefgegenstand.Name = "lblPruefgegenstand" + Me.lblPruefgegenstand.Size = New System.Drawing.Size(82, 13) + Me.lblPruefgegenstand.TabIndex = 59 + Me.lblPruefgegenstand.Text = "Prüfgegenstand" + ' + 'lblHilfsmittel + ' + Me.lblHilfsmittel.AutoSize = True + Me.lblHilfsmittel.Location = New System.Drawing.Point(7, 166) + Me.lblHilfsmittel.Name = "lblHilfsmittel" + Me.lblHilfsmittel.Size = New System.Drawing.Size(51, 13) + Me.lblHilfsmittel.TabIndex = 68 + Me.lblHilfsmittel.Text = "Hilfsmittel" + ' + 'txtPruefgegenstand + ' + Me.txtPruefgegenstand.BackColor = System.Drawing.Color.White + Me.txtPruefgegenstand.Location = New System.Drawing.Point(92, 93) + Me.txtPruefgegenstand.Multiline = True + Me.txtPruefgegenstand.Name = "txtPruefgegenstand" + Me.txtPruefgegenstand.ReadOnly = True + Me.txtPruefgegenstand.Size = New System.Drawing.Size(427, 67) + Me.txtPruefgegenstand.TabIndex = 56 + ' + 'txtBezeichnung + ' + Me.txtBezeichnung.BackColor = System.Drawing.Color.White + Me.txtBezeichnung.Location = New System.Drawing.Point(93, 9) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.ReadOnly = True + Me.txtBezeichnung.Size = New System.Drawing.Size(427, 20) + Me.txtBezeichnung.TabIndex = 54 + ' + 'lblMassnahmen1 + ' + Me.lblMassnahmen1.AutoSize = True + Me.lblMassnahmen1.Location = New System.Drawing.Point(6, 237) + Me.lblMassnahmen1.Name = "lblMassnahmen1" + Me.lblMassnahmen1.Size = New System.Drawing.Size(70, 13) + Me.lblMassnahmen1.TabIndex = 60 + Me.lblMassnahmen1.Text = "Massnahmen" + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(5, 11) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 66 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'lblEreignisse + ' + Me.lblEreignisse.AutoSize = True + Me.lblEreignisse.Location = New System.Drawing.Point(7, 263) + Me.lblEreignisse.Name = "lblEreignisse" + Me.lblEreignisse.Size = New System.Drawing.Size(55, 13) + Me.lblEreignisse.TabIndex = 61 + Me.lblEreignisse.Text = "Ereignisse" + ' + 'lblKontrollaktivität + ' + Me.lblKontrollaktivität.AutoSize = True + Me.lblKontrollaktivität.Location = New System.Drawing.Point(5, 44) + Me.lblKontrollaktivität.Name = "lblKontrollaktivität" + Me.lblKontrollaktivität.Size = New System.Drawing.Size(79, 13) + Me.lblKontrollaktivität.TabIndex = 65 + Me.lblKontrollaktivität.Text = "Kontrollaktivität" + ' + 'txtEreignisse + ' + Me.txtEreignisse.BackColor = System.Drawing.Color.White + Me.txtEreignisse.Location = New System.Drawing.Point(92, 299) + Me.txtEreignisse.Multiline = True + Me.txtEreignisse.Name = "txtEreignisse" + Me.txtEreignisse.ReadOnly = True + Me.txtEreignisse.Size = New System.Drawing.Size(427, 67) + Me.txtEreignisse.TabIndex = 58 + ' + 'txtBeschreibung + ' + Me.txtBeschreibung.BackColor = System.Drawing.Color.White + Me.txtBeschreibung.Location = New System.Drawing.Point(93, 31) + Me.txtBeschreibung.Multiline = True + Me.txtBeschreibung.Name = "txtBeschreibung" + Me.txtBeschreibung.ReadOnly = True + Me.txtBeschreibung.Size = New System.Drawing.Size(427, 56) + Me.txtBeschreibung.TabIndex = 55 + ' + 'lblMassnahmen2 + ' + Me.lblMassnahmen2.AutoSize = True + Me.lblMassnahmen2.Location = New System.Drawing.Point(7, 250) + Me.lblMassnahmen2.Name = "lblMassnahmen2" + Me.lblMassnahmen2.Size = New System.Drawing.Size(83, 13) + Me.lblMassnahmen2.TabIndex = 62 + Me.lblMassnahmen2.Text = "bei Abweichung" + ' + 'lblBeschreibung + ' + Me.lblBeschreibung.AutoSize = True + Me.lblBeschreibung.Location = New System.Drawing.Point(5, 31) + Me.lblBeschreibung.Name = "lblBeschreibung" + Me.lblBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblBeschreibung.TabIndex = 64 + Me.lblBeschreibung.Text = "Beschreibung" + ' + 'lblEreignisse2 + ' + Me.lblEreignisse2.AutoSize = True + Me.lblEreignisse2.Location = New System.Drawing.Point(5, 299) + Me.lblEreignisse2.Name = "lblEreignisse2" + Me.lblEreignisse2.Size = New System.Drawing.Size(59, 13) + Me.lblEreignisse2.TabIndex = 63 + Me.lblEreignisse2.Text = "Reprotinng" + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.SplitContainerResultat) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Size = New System.Drawing.Size(1240, 375) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Resultat / Massnahmen" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'SplitContainerResultat + ' + Me.SplitContainerResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerResultat.Location = New System.Drawing.Point(0, 0) + Me.SplitContainerResultat.Name = "SplitContainerResultat" + ' + 'SplitContainerResultat.Panel1 + ' + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpResultatDokumente) + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpBeschreibung) + Me.SplitContainerResultat.Panel1.Controls.Add(Me.GrpKurzbeschreibung) + ' + 'SplitContainerResultat.Panel2 + ' + Me.SplitContainerResultat.Panel2.Controls.Add(Me.SplitContainerFindings) + Me.SplitContainerResultat.Size = New System.Drawing.Size(1240, 375) + Me.SplitContainerResultat.SplitterDistance = 411 + Me.SplitContainerResultat.TabIndex = 2 + ' + 'GrpResultatDokumente + ' + Me.GrpResultatDokumente.Controls.Add(Me.DokumenteResultat) + Me.GrpResultatDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpResultatDokumente.Location = New System.Drawing.Point(0, 262) + Me.GrpResultatDokumente.Name = "GrpResultatDokumente" + Me.GrpResultatDokumente.Size = New System.Drawing.Size(411, 113) + Me.GrpResultatDokumente.TabIndex = 18 + Me.GrpResultatDokumente.TabStop = False + Me.GrpResultatDokumente.Text = "Dokumente" + ' + 'DokumenteResultat + ' + Me.DokumenteResultat.ConnectionString = Nothing + Me.DokumenteResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteResultat.Doktype = 0 + Me.DokumenteResultat.Location = New System.Drawing.Point(3, 16) + Me.DokumenteResultat.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteResultat.Mitarbeiternr = 0 + Me.DokumenteResultat.Name = "DokumenteResultat" + Me.DokumenteResultat.Pruefschrittnr = 0 + Me.DokumenteResultat.Size = New System.Drawing.Size(405, 94) + Me.DokumenteResultat.TabIndex = 34 + Me.DokumenteResultat.TempFilePath = Nothing + Me.DokumenteResultat.ThemaNr = 0 + ' + 'GrpBeschreibung + ' + Me.GrpBeschreibung.Controls.Add(Me.txtBeschreibungResultat) + Me.GrpBeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpBeschreibung.Location = New System.Drawing.Point(0, 116) + Me.GrpBeschreibung.Name = "GrpBeschreibung" + Me.GrpBeschreibung.Size = New System.Drawing.Size(411, 146) + Me.GrpBeschreibung.TabIndex = 7 + Me.GrpBeschreibung.TabStop = False + Me.GrpBeschreibung.Text = "Beschreibung" + ' + 'txtBeschreibungResultat + ' + Me.txtBeschreibungResultat.BackColor = System.Drawing.Color.White + Me.txtBeschreibungResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtBeschreibungResultat.Location = New System.Drawing.Point(3, 16) + Me.txtBeschreibungResultat.Multiline = True + Me.txtBeschreibungResultat.Name = "txtBeschreibungResultat" + Me.txtBeschreibungResultat.ReadOnly = True + Me.txtBeschreibungResultat.Size = New System.Drawing.Size(405, 127) + Me.txtBeschreibungResultat.TabIndex = 3 + ' + 'GrpKurzbeschreibung + ' + Me.GrpKurzbeschreibung.Controls.Add(Me.txtKurzbeschreibungResultat) + Me.GrpKurzbeschreibung.Dock = System.Windows.Forms.DockStyle.Top + Me.GrpKurzbeschreibung.Location = New System.Drawing.Point(0, 0) + Me.GrpKurzbeschreibung.Name = "GrpKurzbeschreibung" + Me.GrpKurzbeschreibung.Size = New System.Drawing.Size(411, 116) + Me.GrpKurzbeschreibung.TabIndex = 6 + Me.GrpKurzbeschreibung.TabStop = False + Me.GrpKurzbeschreibung.Text = "Kurzbeschreibung" + ' + 'txtKurzbeschreibungResultat + ' + Me.txtKurzbeschreibungResultat.BackColor = System.Drawing.Color.White + Me.txtKurzbeschreibungResultat.Dock = System.Windows.Forms.DockStyle.Bottom + Me.txtKurzbeschreibungResultat.Location = New System.Drawing.Point(3, 13) + Me.txtKurzbeschreibungResultat.Multiline = True + Me.txtKurzbeschreibungResultat.Name = "txtKurzbeschreibungResultat" + Me.txtKurzbeschreibungResultat.ReadOnly = True + Me.txtKurzbeschreibungResultat.Size = New System.Drawing.Size(405, 100) + Me.txtKurzbeschreibungResultat.TabIndex = 4 + ' + 'SplitContainerFindings + ' + Me.SplitContainerFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerFindings.Location = New System.Drawing.Point(0, 0) + Me.SplitContainerFindings.Name = "SplitContainerFindings" + ' + 'SplitContainerFindings.Panel1 + ' + Me.SplitContainerFindings.Panel1.Controls.Add(Me.GroupBox2) + ' + 'SplitContainerFindings.Panel2 + ' + Me.SplitContainerFindings.Panel2.Controls.Add(Me.GroupBox5) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel5) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel7) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.Panel8) + Me.SplitContainerFindings.Panel2.Controls.Add(Me.GroupBox3) + Me.SplitContainerFindings.Size = New System.Drawing.Size(825, 375) + Me.SplitContainerFindings.SplitterDistance = 409 + Me.SplitContainerFindings.TabIndex = 0 + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.GrpDokumenteFindings) + Me.GroupBox2.Controls.Add(Me.Panel4) + Me.GroupBox2.Controls.Add(Me.Panel3) + Me.GroupBox2.Controls.Add(Me.Panel2) + Me.GroupBox2.Controls.Add(Me.Panel1) + Me.GroupBox2.Controls.Add(Me.C1Findings) + Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox2.Location = New System.Drawing.Point(0, 0) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(409, 375) + Me.GroupBox2.TabIndex = 0 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Feststellung" + ' + 'GrpDokumenteFindings + ' + Me.GrpDokumenteFindings.Controls.Add(Me.DokumenteFindings) + Me.GrpDokumenteFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumenteFindings.Location = New System.Drawing.Point(3, 262) + Me.GrpDokumenteFindings.Name = "GrpDokumenteFindings" + Me.GrpDokumenteFindings.Size = New System.Drawing.Size(403, 110) + Me.GrpDokumenteFindings.TabIndex = 17 + Me.GrpDokumenteFindings.TabStop = False + Me.GrpDokumenteFindings.Text = "Dokumente" + ' + 'DokumenteFindings + ' + Me.DokumenteFindings.ConnectionString = Nothing + Me.DokumenteFindings.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteFindings.Doktype = 0 + Me.DokumenteFindings.Location = New System.Drawing.Point(3, 16) + Me.DokumenteFindings.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteFindings.Mitarbeiternr = 0 + Me.DokumenteFindings.Name = "DokumenteFindings" + Me.DokumenteFindings.Pruefschrittnr = 0 + Me.DokumenteFindings.Size = New System.Drawing.Size(397, 91) + Me.DokumenteFindings.TabIndex = 34 + Me.DokumenteFindings.TempFilePath = Nothing + Me.DokumenteFindings.ThemaNr = 0 + ' + 'Panel4 + ' + Me.Panel4.Controls.Add(Me.txtfindingbeschreibung) + Me.Panel4.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel4.Location = New System.Drawing.Point(3, 193) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(403, 69) + Me.Panel4.TabIndex = 16 + ' + 'txtfindingbeschreibung + ' + Me.txtfindingbeschreibung.BackColor = System.Drawing.Color.White + Me.txtfindingbeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtfindingbeschreibung.Location = New System.Drawing.Point(0, 0) + Me.txtfindingbeschreibung.Multiline = True + Me.txtfindingbeschreibung.Name = "txtfindingbeschreibung" + Me.txtfindingbeschreibung.ReadOnly = True + Me.txtfindingbeschreibung.Size = New System.Drawing.Size(403, 69) + Me.txtfindingbeschreibung.TabIndex = 19 + ' + 'Panel3 + ' + Me.Panel3.Controls.Add(Me.lblMassnahmeBeschreibung) + Me.Panel3.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel3.Location = New System.Drawing.Point(3, 172) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(403, 21) + Me.Panel3.TabIndex = 15 + ' + 'lblMassnahmeBeschreibung + ' + Me.lblMassnahmeBeschreibung.AutoSize = True + Me.lblMassnahmeBeschreibung.Location = New System.Drawing.Point(3, 3) + Me.lblMassnahmeBeschreibung.Name = "lblMassnahmeBeschreibung" + Me.lblMassnahmeBeschreibung.Size = New System.Drawing.Size(72, 13) + Me.lblMassnahmeBeschreibung.TabIndex = 17 + Me.lblMassnahmeBeschreibung.Text = "Beschreibung" + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.txtfindingbezeichnung) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel2.Location = New System.Drawing.Point(3, 149) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(403, 23) + Me.Panel2.TabIndex = 14 + ' + 'txtfindingbezeichnung + ' + Me.txtfindingbezeichnung.BackColor = System.Drawing.Color.White + Me.txtfindingbezeichnung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtfindingbezeichnung.Location = New System.Drawing.Point(0, 0) + Me.txtfindingbezeichnung.Name = "txtfindingbezeichnung" + Me.txtfindingbezeichnung.ReadOnly = True + Me.txtfindingbezeichnung.Size = New System.Drawing.Size(403, 20) + Me.txtfindingbezeichnung.TabIndex = 18 + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.lblMassnahmeBezeichnung) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(3, 126) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(403, 23) + Me.Panel1.TabIndex = 13 + ' + 'lblMassnahmeBezeichnung + ' + Me.lblMassnahmeBezeichnung.AutoSize = True + Me.lblMassnahmeBezeichnung.Location = New System.Drawing.Point(3, 3) + Me.lblMassnahmeBezeichnung.Name = "lblMassnahmeBezeichnung" + Me.lblMassnahmeBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblMassnahmeBezeichnung.TabIndex = 16 + Me.lblMassnahmeBezeichnung.Text = "Bezeichnung" + ' + 'C1Findings + ' + Me.C1Findings.AllowUpdate = False + Me.C1Findings.AlternatingRows = True + Me.C1Findings.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Findings.Dock = System.Windows.Forms.DockStyle.Top + Me.C1Findings.FilterBar = True + Me.C1Findings.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Findings.Images.Add(CType(resources.GetObject("C1Findings.Images"), System.Drawing.Image)) + Me.C1Findings.Location = New System.Drawing.Point(3, 16) + Me.C1Findings.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Findings.Name = "C1Findings" + Me.C1Findings.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Findings.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Findings.PreviewInfo.ZoomFactor = 75.0R + Me.C1Findings.PrintInfo.PageSettings = CType(resources.GetObject("C1Findings.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Findings.Size = New System.Drawing.Size(403, 110) + Me.C1Findings.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Findings.TabIndex = 12 + Me.C1Findings.Text = "C1TrueDBGrid1" + Me.C1Findings.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Findings.PropBag = resources.GetString("C1Findings.PropBag") + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.DokumenteMassnahmen) + Me.GroupBox5.Dock = System.Windows.Forms.DockStyle.Fill + Me.GroupBox5.Location = New System.Drawing.Point(0, 262) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(412, 113) + Me.GroupBox5.TabIndex = 21 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "Dokumente" + ' + 'DokumenteMassnahmen + ' + Me.DokumenteMassnahmen.ConnectionString = Nothing + Me.DokumenteMassnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteMassnahmen.Doktype = 0 + Me.DokumenteMassnahmen.Location = New System.Drawing.Point(3, 16) + Me.DokumenteMassnahmen.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteMassnahmen.Mitarbeiternr = 0 + Me.DokumenteMassnahmen.Name = "DokumenteMassnahmen" + Me.DokumenteMassnahmen.Pruefschrittnr = 0 + Me.DokumenteMassnahmen.Size = New System.Drawing.Size(406, 94) + Me.DokumenteMassnahmen.TabIndex = 34 + Me.DokumenteMassnahmen.TempFilePath = Nothing + Me.DokumenteMassnahmen.ThemaNr = 0 + ' + 'Panel5 + ' + Me.Panel5.Controls.Add(Me.SplitContainer3) + Me.Panel5.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel5.Location = New System.Drawing.Point(0, 172) + Me.Panel5.Name = "Panel5" + Me.Panel5.Size = New System.Drawing.Size(412, 90) + Me.Panel5.TabIndex = 20 + ' + 'SplitContainer3 + ' + Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer3.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer3.Name = "SplitContainer3" + ' + 'SplitContainer3.Panel1 + ' + Me.SplitContainer3.Panel1.Controls.Add(Me.txtMassnahmebeschreibung) + Me.SplitContainer3.Panel1.Controls.Add(Me.Panel6) + ' + 'SplitContainer3.Panel2 + ' + Me.SplitContainer3.Panel2.Controls.Add(Me.txtMassnahmeResultat) + Me.SplitContainer3.Panel2.Controls.Add(Me.Panel9) + Me.SplitContainer3.Size = New System.Drawing.Size(412, 90) + Me.SplitContainer3.SplitterDistance = 204 + Me.SplitContainer3.TabIndex = 0 + ' + 'txtMassnahmebeschreibung + ' + Me.txtMassnahmebeschreibung.BackColor = System.Drawing.Color.White + Me.txtMassnahmebeschreibung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtMassnahmebeschreibung.Location = New System.Drawing.Point(0, 21) + Me.txtMassnahmebeschreibung.Multiline = True + Me.txtMassnahmebeschreibung.Name = "txtMassnahmebeschreibung" + Me.txtMassnahmebeschreibung.ReadOnly = True + Me.txtMassnahmebeschreibung.Size = New System.Drawing.Size(204, 69) + Me.txtMassnahmebeschreibung.TabIndex = 19 + ' + 'Panel6 + ' + Me.Panel6.Controls.Add(Me.Label1) + Me.Panel6.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel6.Location = New System.Drawing.Point(0, 0) + Me.Panel6.Name = "Panel6" + Me.Panel6.Size = New System.Drawing.Size(204, 21) + Me.Panel6.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(3, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(72, 13) + Me.Label1.TabIndex = 17 + Me.Label1.Text = "Beschreibung" + ' + 'txtMassnahmeResultat + ' + Me.txtMassnahmeResultat.BackColor = System.Drawing.Color.White + Me.txtMassnahmeResultat.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtMassnahmeResultat.Location = New System.Drawing.Point(0, 21) + Me.txtMassnahmeResultat.Multiline = True + Me.txtMassnahmeResultat.Name = "txtMassnahmeResultat" + Me.txtMassnahmeResultat.ReadOnly = True + Me.txtMassnahmeResultat.Size = New System.Drawing.Size(204, 69) + Me.txtMassnahmeResultat.TabIndex = 20 + ' + 'Panel9 + ' + Me.Panel9.Controls.Add(Me.Label3) + Me.Panel9.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel9.Location = New System.Drawing.Point(0, 0) + Me.Panel9.Name = "Panel9" + Me.Panel9.Size = New System.Drawing.Size(204, 21) + Me.Panel9.TabIndex = 0 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(3, 3) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(46, 13) + Me.Label3.TabIndex = 18 + Me.Label3.Text = "Resultat" + ' + 'Panel7 + ' + Me.Panel7.Controls.Add(Me.txtmassnahmebezeichnung) + Me.Panel7.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel7.Location = New System.Drawing.Point(0, 149) + Me.Panel7.Name = "Panel7" + Me.Panel7.Size = New System.Drawing.Size(412, 23) + Me.Panel7.TabIndex = 18 + ' + 'txtmassnahmebezeichnung + ' + Me.txtmassnahmebezeichnung.BackColor = System.Drawing.Color.White + Me.txtmassnahmebezeichnung.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtmassnahmebezeichnung.Location = New System.Drawing.Point(0, 0) + Me.txtmassnahmebezeichnung.Name = "txtmassnahmebezeichnung" + Me.txtmassnahmebezeichnung.ReadOnly = True + Me.txtmassnahmebezeichnung.Size = New System.Drawing.Size(412, 20) + Me.txtmassnahmebezeichnung.TabIndex = 18 + ' + 'Panel8 + ' + Me.Panel8.Controls.Add(Me.Label2) + Me.Panel8.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel8.Location = New System.Drawing.Point(0, 129) + Me.Panel8.Name = "Panel8" + Me.Panel8.Size = New System.Drawing.Size(412, 20) + Me.Panel8.TabIndex = 17 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(3, 3) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(69, 13) + Me.Label2.TabIndex = 16 + Me.Label2.Text = "Bezeichnung" + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.C1Massnahmen) + Me.GroupBox3.Dock = System.Windows.Forms.DockStyle.Top + Me.GroupBox3.Location = New System.Drawing.Point(0, 0) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(412, 129) + Me.GroupBox3.TabIndex = 0 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Massnahmen" + ' + 'C1Massnahmen + ' + Me.C1Massnahmen.AllowUpdate = False + Me.C1Massnahmen.AlternatingRows = True + Me.C1Massnahmen.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Massnahmen.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Massnahmen.FilterBar = True + Me.C1Massnahmen.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Massnahmen.Images.Add(CType(resources.GetObject("C1Massnahmen.Images"), System.Drawing.Image)) + Me.C1Massnahmen.Location = New System.Drawing.Point(3, 16) + Me.C1Massnahmen.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1Massnahmen.Name = "C1Massnahmen" + Me.C1Massnahmen.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Massnahmen.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Massnahmen.PreviewInfo.ZoomFactor = 75.0R + Me.C1Massnahmen.PrintInfo.PageSettings = CType(resources.GetObject("C1Massnahmen.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Massnahmen.Size = New System.Drawing.Size(406, 110) + Me.C1Massnahmen.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Massnahmen.TabIndex = 12 + Me.C1Massnahmen.Text = "C1TrueDBGrid1" + Me.C1Massnahmen.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Massnahmen.PropBag = resources.GetString("C1Massnahmen.PropBag") + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.C1History) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Size = New System.Drawing.Size(1240, 375) + Me.TabPage5.TabIndex = 4 + Me.TabPage5.Text = "History" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'C1History + ' + Me.C1History.AllowUpdate = False + Me.C1History.AlternatingRows = True + Me.C1History.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1History.ContextMenuStrip = Me.ctxMenuPruefschritt + Me.C1History.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1History.FilterBar = True + Me.C1History.GroupByCaption = "Drag a column header here to group by that column" + Me.C1History.Images.Add(CType(resources.GetObject("C1History.Images"), System.Drawing.Image)) + Me.C1History.Location = New System.Drawing.Point(0, 0) + Me.C1History.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.C1History.Name = "C1History" + Me.C1History.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1History.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1History.PreviewInfo.ZoomFactor = 75.0R + Me.C1History.PrintInfo.PageSettings = CType(resources.GetObject("C1History.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1History.Size = New System.Drawing.Size(1240, 375) + Me.C1History.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1History.TabIndex = 11 + Me.C1History.Text = "C1TrueDBGrid1" + Me.C1History.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1History.PropBag = resources.GetString("C1History.PropBag") + ' + 'ImageListFindings + ' + Me.ImageListFindings.ImageStream = CType(resources.GetObject("ImageListFindings.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageListFindings.TransparentColor = System.Drawing.Color.Transparent + Me.ImageListFindings.Images.SetKeyName(0, "Keine.png") + Me.ImageListFindings.Images.SetKeyName(1, "Tief.png") + Me.ImageListFindings.Images.SetKeyName(2, "Mittel.png") + Me.ImageListFindings.Images.SetKeyName(3, "Hoch.png") + ' + 'ImageListeMassnahmen + ' + Me.ImageListeMassnahmen.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit + Me.ImageListeMassnahmen.ImageSize = New System.Drawing.Size(16, 16) + Me.ImageListeMassnahmen.TransparentColor = System.Drawing.Color.Transparent + ' + 'frmPruefschrittUebersicht + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1248, 709) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.Name = "frmPruefschrittUebersicht" + Me.Text = "Assessment" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuPruefschritt.ResumeLayout(False) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.Panel2.PerformLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + Me.GrpStatus.ResumeLayout(False) + CType(Me.TreeMassnahmen, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TreeUebersicht, System.ComponentModel.ISupportInitialize).EndInit() + Me.ToolStrip2.ResumeLayout(False) + Me.ToolStrip2.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPage3.ResumeLayout(False) + Me.PnlNotiz.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GrpNotiz.ResumeLayout(False) + Me.GrpNotiz.PerformLayout() + CType(Me.C1Notiz, System.ComponentModel.ISupportInitialize).EndInit() + Me.PnlVerantwortlichkeitTermin.ResumeLayout(False) + Me.GrpTermine.ResumeLayout(False) + Me.GrpTermine.PerformLayout() + Me.Verantwortung.ResumeLayout(False) + Me.Verantwortung.PerformLayout() + Me.TabPage1.ResumeLayout(False) + Me.Panel11.ResumeLayout(False) + Me.GrpDefinitionDokumente.ResumeLayout(False) + Me.GrpDefinition.ResumeLayout(False) + Me.GrpDefinition.PerformLayout() + Me.GrpVorgabe.ResumeLayout(False) + CType(Me.C1Vorgaben, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel10.ResumeLayout(False) + Me.Panel10.PerformLayout() + Me.TabPage4.ResumeLayout(False) + Me.SplitContainerResultat.Panel1.ResumeLayout(False) + Me.SplitContainerResultat.Panel2.ResumeLayout(False) + CType(Me.SplitContainerResultat, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerResultat.ResumeLayout(False) + Me.GrpResultatDokumente.ResumeLayout(False) + Me.GrpBeschreibung.ResumeLayout(False) + Me.GrpBeschreibung.PerformLayout() + Me.GrpKurzbeschreibung.ResumeLayout(False) + Me.GrpKurzbeschreibung.PerformLayout() + Me.SplitContainerFindings.Panel1.ResumeLayout(False) + Me.SplitContainerFindings.Panel2.ResumeLayout(False) + CType(Me.SplitContainerFindings, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerFindings.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.GrpDokumenteFindings.ResumeLayout(False) + Me.Panel4.ResumeLayout(False) + Me.Panel4.PerformLayout() + Me.Panel3.ResumeLayout(False) + Me.Panel3.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.C1Findings, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox5.ResumeLayout(False) + Me.Panel5.ResumeLayout(False) + Me.SplitContainer3.Panel1.ResumeLayout(False) + Me.SplitContainer3.Panel1.PerformLayout() + Me.SplitContainer3.Panel2.ResumeLayout(False) + Me.SplitContainer3.Panel2.PerformLayout() + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer3.ResumeLayout(False) + Me.Panel6.ResumeLayout(False) + Me.Panel6.PerformLayout() + Me.Panel9.ResumeLayout(False) + Me.Panel9.PerformLayout() + Me.Panel7.ResumeLayout(False) + Me.Panel7.PerformLayout() + Me.Panel8.ResumeLayout(False) + Me.Panel8.PerformLayout() + Me.GroupBox3.ResumeLayout(False) + CType(Me.C1Massnahmen, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage5.ResumeLayout(False) + CType(Me.C1History, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents DateiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents tsTxtSearch As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Friend WithEvents tsbtnFilterAufheben As ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents SplitContainer1 As SplitContainer + Friend WithEvents SplitContainer2 As SplitContainer + Friend WithEvents TreeUebersicht As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents GrpStatus As GroupBox + Friend WithEvents ImageList1 As ImageList + Friend WithEvents TabControl1 As TabControl + Friend WithEvents TabPage1 As TabPage + Friend WithEvents txtBezeichnung As TextBox + Friend WithEvents lblBezeichnung As Label + Friend WithEvents lblKontrollaktivität As Label + Friend WithEvents txtBeschreibung As TextBox + Friend WithEvents lblBeschreibung As Label + Friend WithEvents lblEreignisse2 As Label + Friend WithEvents lblMassnahmen2 As Label + Friend WithEvents txtEreignisse As TextBox + Friend WithEvents lblEreignisse As Label + Friend WithEvents txtMassnahmen As TextBox + Friend WithEvents lblMassnahmen1 As Label + Friend WithEvents txtPruefgegenstand As TextBox + Friend WithEvents lblPruefgegenstand As Label + Friend WithEvents txtHilfsmittel As TextBox + Friend WithEvents lblHilfsmittel As Label + Friend WithEvents TabPage3 As TabPage + Friend WithEvents GrpTermine As GroupBox + Friend WithEvents txtZugewiesen As TextBox + Friend WithEvents lblZugeweisen As Label + Friend WithEvents txtTermin As TextBox + Friend WithEvents lblTermin As Label + Friend WithEvents Verantwortung As GroupBox + Friend WithEvents txtVerantwortungISI As TextBox + Friend WithEvents lblVerantwortlich As Label + Friend WithEvents txtVerantwortlich As TextBox + Friend WithEvents lblInBearbeitung As Label + Friend WithEvents txtAktuellVerantwortlich As TextBox + Friend WithEvents lblVerantwortungIsi As Label + Friend WithEvents PnlVerantwortlichkeitTermin As Panel + Friend WithEvents txtMutierer As TextBox + Friend WithEvents txtErstelltam As TextBox + Friend WithEvents lblMutierer As Label + Friend WithEvents txtMutiertam As TextBox + Friend WithEvents lblErstelltam As Label + Friend WithEvents lblMutiertam As Label + Friend WithEvents PnlNotiz As Panel + Friend WithEvents GrpNotiz As GroupBox + Friend WithEvents txtnotiz As TextBox + Friend WithEvents TabPage4 As TabPage + Friend WithEvents ctxMenuPruefschritt As ContextMenuStrip + Friend WithEvents BearbeitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents WeiterleitenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AbschliessenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents tsbtnAktualisieren As ToolStripButton + Friend WithEvents C1Notiz As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents TabPage5 As TabPage + Friend WithEvents C1History As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents tsbtnNeuesFinding As ToolStripButton + Friend WithEvents tsbtnPruefschrittbearbeiten As ToolStripButton + Friend WithEvents tsbtnFindingDelete As ToolStripButton + Friend WithEvents ToolStripButton3 As ToolStripButton + Friend WithEvents AnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ImageListFindings As ImageList + Friend WithEvents SplitContainerResultat As SplitContainer + Friend WithEvents GrpBeschreibung As GroupBox + Friend WithEvents txtBeschreibungResultat As TextBox + Friend WithEvents GrpKurzbeschreibung As GroupBox + Friend WithEvents txtKurzbeschreibungResultat As TextBox + Friend WithEvents SplitContainerFindings As SplitContainer + Friend WithEvents GroupBox2 As GroupBox + Friend WithEvents GrpDokumenteFindings As GroupBox + Friend WithEvents DokumenteFindings As ThemenDokumente.Dokumente + Friend WithEvents Panel4 As Panel + Friend WithEvents txtfindingbeschreibung As TextBox + Friend WithEvents Panel3 As Panel + Friend WithEvents lblMassnahmeBeschreibung As Label + Friend WithEvents Panel2 As Panel + Friend WithEvents txtfindingbezeichnung As TextBox + Friend WithEvents Panel1 As Panel + Friend WithEvents lblMassnahmeBezeichnung As Label + Friend WithEvents C1Findings As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents GroupBox5 As GroupBox + Friend WithEvents DokumenteMassnahmen As ThemenDokumente.Dokumente + Friend WithEvents Panel5 As Panel + Friend WithEvents txtMassnahmebeschreibung As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents Panel7 As Panel + Friend WithEvents txtmassnahmebezeichnung As TextBox + Friend WithEvents Panel8 As Panel + Friend WithEvents Label2 As Label + Friend WithEvents GroupBox3 As GroupBox + Friend WithEvents C1Massnahmen As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ImageListeMassnahmen As ImageList + Friend WithEvents SplitContainer3 As SplitContainer + Friend WithEvents Panel6 As Panel + Friend WithEvents txtMassnahmeResultat As TextBox + Friend WithEvents Panel9 As Panel + Friend WithEvents Label3 As Label + Friend WithEvents txtVerantwortungPlan As TextBox + Friend WithEvents lblVerantwortungPlan As Label + Friend WithEvents Panel11 As Panel + Friend WithEvents Panel10 As Panel + Friend WithEvents GrpVorgabe As GroupBox + Friend WithEvents C1Vorgaben As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents GrpDefinition As GroupBox + Friend WithEvents txtStruktur As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblStruktur As Label + Friend WithEvents txtDefinitionBemerkung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblDefinitionBemerkung As Label + Friend WithEvents txtDefinitionBeschreibung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblDefinitionBeschreibung As Label + Friend WithEvents txtDefinitionBezeichnung As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents lblDefinitionBezeichnung As Label + Friend WithEvents GrpDefinitionDokumente As GroupBox + Friend WithEvents DokumenteDefinition As ThemenDokumente.Dokumente + Friend WithEvents GroupBox1 As GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents ZurückweisenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents TreeMassnahmen As DevComponents.AdvTree.AdvTree + Friend WithEvents Node2 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector2 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle2 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents ImageList2 As ImageList + Friend WithEvents tsbtnAssessmentAnzeigen As ToolStripButton + Friend WithEvents GrpResultatDokumente As GroupBox + Friend WithEvents DokumenteResultat As ThemenDokumente.Dokumente +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.resx new file mode 100644 index 0000000..531eccd --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.resx @@ -0,0 +1,4217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 242, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + 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 + + + + 349, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 986, 228</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 986, 228</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 611, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACa + CQAAAk1TRnQBSQFMAgEBAwIAAQEBAAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA + AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA + AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm + AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ + AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm + AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz + AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm + AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm + AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA + ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm + AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm + ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm + AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA + AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ + AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz + AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/ + AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA + AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM + AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm + ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ + AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ + ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM + ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm + AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM + AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA + AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA + ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7 + Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8FAAH/AfQBvAIIAbwB9AH/ + CAAB/wH0AfECvAHxAfQB/wgAAf8B9AG8AgcBvAH0Af8WAAH/AfQBmAJVAlYCVQGYAfQB/wQAAf8B9AEH + Au8CBwLvAQcB9AH/BAAB/wH0AZMCRgJMAkYBkwH0Af8TAAH/AfMKlwHzAf8CAAH/AfMB7wEHAbwB8AS8 + AQcB7wHzAf8CAAH/AfMKbwHzAf8SAAH0DJcB9AIAAfQB7wG8CPABvAHvAfQCAAH0DG8B9BEAAf8BmAyX + AZgC/wEHAbwK8AG8AQcC/wGTDG8BkwH/EAAB9AFWDJcBVgL0Ae8B8ArxAfAB7wL0AUwMbwFMAfQQAAEI + DpcBCAHxAQcM8QEHAfEBGg5vARoQAAEIDpcBCAHwAbwM8QG8AfABBw5vAQcQAAEIDpcBCAHwAbwC8gHx + CfIBvAHwAQcObwEHEAAB8A6XAfAB8gG8DPIBvAHyAfAObwHwEAAB9A6XAvQBBwzyAQcC9AJvARYBbwcW + A28B9BAAAf8BmAyXAZgC/wHwAfEB8wjyAfMB8QHwAv8BkwFvChYBbwGTAf8RAAH0DJcB9AIAAfQBBwHy + CPMB8gEHAfQCAAH0AW8KFgFvAfQTAAH0CpcB9AQAAfQBvAHxBvMB8QG8AfQEAAH0Am8GFgJvAfQVAAH/ + AZgGlwGYAf8GAAH/AfABvAHwAvEB8AG8AfAB/wYAAf8BkwZvAZMB/xcAAf8B9AEbAggBGwH0Af8IAAH/ + AfQB8wLyAfMB9AH/CAAB/wH0ARsCGgEbAfQB/xQAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEB + BQABgBcAA/8BAAHwAQ8B8AEPAfABDwIAAcABAwHAAQMBwAEDAgABgAEBAYABAQGAAQECAAGAAQEBgAEB + AYABAUIAAYABAQGAAQEBgAEBAgABwAEDAcABAwHAAQMCAAHgAQcB4AEHAeABBwIAAfABDwHwAQ8B8AEP + AgAL + + + + 132, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACk + DAAAAk1TRnQBSQFMAgEBBQEAAfABAgHwAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAf8BBwJyAZIB8wH/ + NwAB/wFyAi4DLwIuAfM1AAH/Bi4DLwEuAQczAAH/BS4GLwEuAfMyAAG8BC4BKAgvMgADLgEvAygBVwJW + BC8B9DAAAf8CLgEvAygCLwNXAVYCLwHvMAAB/wEuAi8BKAEuAXkBVwJWAXkCVwFWAS8BczAAAf8CLwJX + AnkBmQF5AlcBeQJXAVABHDEAAS8BNgFXAnkBmQKfAXkBVwFWAXgBVwFQAfAxAAFRATYBVwF5AZkBnwEa + ARsBwgF5AVcBLgFXAVYB/zEAAf8BNgFXAXkBmQGfAcICGwGfAXgBeQFXARwzAAEHATYCeQGfARoBwgEa + AZ8BmQF4AVc1AAG8AVgBeQGZA58BmQF5AXgB/zYAAf8GeQHxOwAC/z4AAfQBUgsAAfQFeAFQAQcIAAH0 + BJEBkAGLAbsIAAH/BeMBbwG2CAABMQF5AQACMQEaAfQBMQEbBgABmQR4AVEEUAH0BQABtASRAYsBkQOL + AfQFAAGUBeMEbwH0BgAIUgEbBQAFeAdQAfQDAAG0BZEB/wGRBIsB9AMAARYE4wdvAfQCAAH0AfMBGwhS + AXQC8wIAAQgEeAFQAQgB/wZQAgABvASRAYsC/wH0AZEEiwIAARoE4wGTAv8BGgVvAgABGg1SAgADeAGZ + Af8BmAEbAQgCGwH/A1ABBwEAA5EBtQG0AYsBtAH/AZEB/wG8A4sBuwEABOMB/wRvAfMBkwNvAZMCAAxT + AfMBAAEbBHgB/wGZA/8BmQEbBFAB8gORAf8DiwG7AZEBiwH0AZEDiwHzA+MB9AZvAfMEbwEAAf8BUwHD + AVMBwwF6AsMBUwF6A1MBGgEAAZkDeAFQAXgB/wF4AVAB8wH/ARsEUAG1ApEBtAG8B4sB/wOLAZQD4wEb + AZMF/wFvARoDbwGZAlMB/wGaAf8BmgJTAZoB9gIaAlMBUgN4ARsB/wEIAfMDUAH/AQgB/wNQA5EBuwG1 + B4sB/wOLA+MBFgKTBRsBbwH/A28BAAF6AVMB/wGaAf8BmgFSAVMB9gGaARoB/wJTAfQEeAEbAZkB/wJQ + AXgB/wEbAZkCUAF4A5ECuweLAf8BiwGQAZEBFgPjAbYBbwH0A/8CbwH/Am8B4wIAAVMBeQFTAXkBUwN5 + AlMBdQFTAgABCAR4AQgC/wHzAf8BmQGYAVABUQJ4AbsDkQH/BosBkQH0A5EBGgPjAf8CbwL/A28BkwPj + AQAB/wxTAXkBAAH/A3gBmQH/AQgBmQEIAXgC/wR4Af8DkQG7AfMBiwH/AbUCiwH/BJEB/wPjAZQBGgVv + Af8E4wEAAXoNUwIABHgBmQF4ARsB/wFQAXgBmQN4AfQBAASRAbsB/wHyAf8BkQGQBJEB9AEABOMBlAH/ + AbYBkwEbAfQE4wH/BAAIUwEbBAAB/wZ4ARsFeAGZAgAB/wWRAbQB/wG0BJEBtAIAAf8G4wEWBeMBlAUA + AlMBegVTARsFAAH0C3gEAAH0BJEB/wWRAbQEAAH0CuMBFgYAAXoCAAF6AVMB/wEAAfMB9AYAAf8IeAEI + BgAB/wiRAbwGAAH/COMBGgsAARoMAAH/AQgCeAGZARsKAAH/AbsCkQG1AfIKAAH/ARoBFgHjAZQB8wUA + AUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH4AQ8GAAHgAQcGAAHAAQMGAAGA + AQEGAAGAAQEGAAGAHwABgAcAAYAHAAGAAQEGAAHAAQMGAAHgAQMGAAHwAQ8GAAH+AX8GAAH+AX8B8AEP + AfABDwHwAQ8B8gEHAeABAwHgAQMB4AEDAfABBwHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEB + AYABAAGAAQABgAEAAcABAQYAAYABAQ4AAYAHAAHAAQMGAAGAAQEGAAGAAQEBgAEAAYABAAGAAQAB8AEH + AYABAQGAAQEBgAEBAfABBwHAAQMBwAEDAcABAwH2AScB4AEHAeABBwHgAQcB/wF/AfgBHwH4AR8B+AEf + Cw== + + + + 504, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJDSURBVDhPjZLfa1JhHMa96bYuo7uiywi66CYIgq6iYPUX + dNlVREEXUbQXN21zmDjRlpYw21yuFWNo/miTVgpLM5Y76rH5+9d0LsOjDk0vns57PLJMox544PC+3+fz + vs/LkfR0Q68/9ICMX5TKJq7KhpiuE5nsrDjeL0LIYaPRGCyVSqjX6391IpGESjVtEmMHIlLZzWaziU6n + 809Ho98wNjZxWox2pdZoSavVwoF/ot1uC6bfv+/lCztQKB5fEKNdUUBjfx/U9UYDLH+KzeuHcyMgnNjb + o85kc4MAlVpLOK4m9AxHWFxfcOOMzolrpnUoXH6wbBS1Wh10JplKDwGoNKRS+YFqlYPR5cGJJy6MzHlg + Deeh80bxZn1DANCZWCwO+Z8ApUpNSrtlfK9UoLN/wPEZF84Z3JCuhnBr5QvMa15UOQ50htaTyxX9gCml + mtDH2S3vYZMJ4/xTG45O23FS48DIczvCfAUapjNMKDIImJxSkVQ6B+psNo9AkIHa4YXG4QG7HRd6B7cY + FHaK2PzKDAMoSTyRQs+5fIGHZZDOZIWQZXEJyytWOF2rYPgb6vT6fsCjSSVhozG+36DTmRysNjtMLxZ4 + wJoACUUiMjHalXRcPsqEWL7fcMfjSR5gxpzZAtc7N97anSgWi1fEuERy5+69S+73H/me4aHeYiLCv6Cb + MWDevIil18vI5vOjYryr+w+lt7X6Z9sGw2xxmGdN88VPPn/tpeUVfL7PNf4Gp8To/ysQCBzhOO5yuVw+ + 1l2RSH4BvQRqc//87N0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABYAAAAVCAYAAABCIB6VAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADISURBVEhL3ZHbDcMgDEXL5ozACIzAOPmp1EkgupVuZIxx + UKL0ox9HIX6cGOf1eW/tCf5IHGNsIYQOxHLOZr1mEJdSDhEkEhnXfZpBzMlqrV9kDh/lTc7knZhNlpTw + Rqi18qQTc5KZlHAt+IiVB4PYKyYUe+v4ndgr5l4pXl4Ffx7fU0rdGflLPw/oJpwJpHiyZnkVgBMBNOId + 8PoSTz6ICSezRFZM90/FgJMCnBlfkbtiD0su85fFQMtl7pYYSLmM3xbPeEi8tR3qh8dT9QHgwAAAAABJ + RU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 400, 130</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 400, 130</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 688, 118</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 688, 118</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 401, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 401, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 404, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 404, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 1238, 373</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 1238, 373</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 721, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABC + CwAAAk1TRnQBSQFMAgEBBAIAAQIBAAECARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + AUADAAEgAwABAQEAAQgGAAEIGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA + AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA + AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm + AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ + AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm + AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz + AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm + AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm + AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA + ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm + AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm + ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm + AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA + AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ + AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz + AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/ + AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA + AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM + AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm + ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ + AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ + ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM + ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm + AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM + AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA + AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA + ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7 + Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA///AP8A/wD/AAsAAf8C7AH0 + DAAB/wLCAf8MAAH/AnoB/wwAAf8CRwH/CwAB/wHrAf8B9AFtAfQKAAH/AcICngHCAf8KAAH/AXUCUwF1 + Af8KAAH/AUcC+QFHAf8JAAH/AesB/wIAAfQBbQH0CAAB/wHCBJ4BwgH/CAAB/wF1BFMBdQH/CAAB/wFH + BPkBRwH/BwAB/wHrAf8EAAH0AW0B9AYAAf8BwgaeAcIB/wYAAf8BdQZTAXUB/wYAAf8BRwb5AUcB/wUA + Af8B6wH/BgAB9AFtAfQEAAH/AcIDngLCA54BwgH/BAAB/wF1CFMBdQH/BAAB/wFHA/kClAP5AUcB/wMA + Af8B6wH/CAAB9AFtAfQCAAH/AcIDngHCAv8BwgOeAcIB/wIAAf8BdQVTAnoDUwF1Af8CAAH/AUcE+QL/ + BPkBRwH/AQAB/wHrAf8KAAH0AW0B9AH/AcIDngHCAf8CAAH/AcIDngHCAv8BdQZTAZoB/wGaA1MBdQL/ + AUcF+QL/BfkBRwH/AewB/wwAAfQB7AHCBJ4CwgH/AQACwgSeAcIBegNTARoE/wEAAf8BmgNTAXoBRwb5 + Av8G+QFHAe8B/wwAAfQB6gHCBp4C/waeAcIBegNTARoB9gL/AgAB/wGaA1MBegFHBPkBRwGUAQAB/wGU + AUcE+QFHAfQBkgH/CgAB9AETAfMB/wHCBZ4C/wWeAcIC/wF1BlMBmgH/AZoDUwF1Av8BRwP5AUcB/wIA + Af8BFwP5AUcB/wEAAfQB7AH/CAAB9AETAfMCAAH/AcIEngL/BJ4BwgH/AgAB/wF1BVMCegNTAXUB/wIA + Af8BRwP5AeMC/wEWA/kBRwH/AwAB9AHsAf8GAAH0ARMB8wQAAf8BwgOeAsIDngHCAf8EAAH/AXUIUwF1 + Af8EAAH/AUcD+QIWA/kBRwH/BQAB9AHsAf8EAAH0ARMB8wYAAf8BwgaeAcIB/wYAAf8BdQZTAXUB/wYA + Af8BRwb5AUcB/wcAAfQB7AH/AgAB9AETAfMIAAH/AcIEngHCAf8IAAH/AXUEUwF1Af8IAAH/AUcE+QFH + Af8JAAH0AewB/wH0ARMB8woAAf8BwgKeAcIB/woAAf8BdQJTAXUB/woAAf8BRwL5AUcB/wsAAfQB7AES + AfMMAAH/AsIB/wwAAf8CegH/DAAB/wJHAf8GAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYA + AQEWAAP/gQAB/AE/AfwBPwH8AT8B/AE/AfgBHwH4AR8B+AEfAfgBHwHxAY8B8AEPAfABDwHwAQ8B4wHH + AeABBwHgAQcB4AEHAccB4wHAAQMBwAEDAcABAwGPAfEBgAEBAYABAQGAAQEBHwH4AQEBgAQAAT8B/AEA + AYABAAFAAgABPwH8AwABwAEBAQABHwH4BAABAQGAAY8B8QGAAQEBgAEBAYABAQHHAeMBwAEDAcABAwHA + AQMB4wHHAeABBwHgAQcB4AEHAfEBjwHwAQ8B8AEPAfABDwH4AR8B+AEfAfgBHwH4AR8B/AE/AfwBPwH8 + AT8B/AE/Cw== + + + + 17, 56 + + + 52 + + + + AAABAAkAAAAAAAEAIACuDgEAlgAAAICAAAABACAAKAgBAEQPAQBgYAAAAQAgAKiUAABsFwIAQEAAAAEA + IAAoQgAAFKwCADAwAAABACAAqCUAADzuAgAgIAAAAQAgAKgQAADkEwMAGBgAAAEAIACICQAAjCQDABQU + AAABACAAuAYAABQuAwAQEAAAAQAgAGgEAADMNAMAiVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABc + cqhmAAD//0lEQVR42uy9B5ed53Em+Hw35xw6IgcCJEgwi6KSbVmWx+OZsX3sGY99zvrMzu7ZH7V77F17 + ZCUry5ZkK1kUMwkCRM6dw+2bc/y2qt4v3UY3AtlgAyBeqYnuG7/wVtVTVU9VacPh8J8AHMbj9Xg9Xp+2 + dVkjBXDG5XKd2O0jebwer8frk12j0ejMYwXweD1en9L1WAE8cEs3/tW2+fvjfLJufIpmffKdP1U3/ut8 + 5/av1Lb4fSfP4fHa2fVYAXzMpeskGppm/bv58Xv8NPr/iOTEdcvjOlzQNkmYrvGfWygM9QScgsfHo2Mk + f7nof/y8KdT0pHqpelj+tD9yXJQ16/PUH5r5fs3+NvOVmvlufWQ8pI09v9W1VC97rCg+qfVYAdz3pd/y + uxK8cYuqhFMXsRFhd75LlIluPOu03rr6RB2Ox9TrlcDrjr+BwaAvr/N6fRA1oKnvHQwHGA51eLwe9c2a + Zn2oW3Mb36IUmqnsRMCtg3QoElPs5R9DPWm6dda6dZTqx9IxokS0xyDhE16PFcAOre0QwLh91g1j6bDW + /B550JRiJYDKchrvcVphXT0yove4jO8b9PskwEN6Gwm1y4VOp4tOt6NwAz3W73XRpZ9erwePx4NwOCJK + wON2yeva7TaGI50e89B3anDT4wxCPG4PorEEfV5bzicQ8NNrvOjT93l9Xvl+dWRuh+w6FACtkboY6k9W + INYF2STpuqkcsCWierzuz3qsAHZgOd0AXrduYN0wjlv79Rr0sYdMC8tWudftoj/oqs8csRUf0t99+hmQ + dYYIYZdewz9utxvBoJ8Euotmo0nC7kIoGEJ/NKS/6yR8Oj0fgj8QoO8YiTA3mi30Oh14PV6M6LMG9Lke + UiKaxyXKw+f3yXd3u6Q86PUBei8rhGQyScqjR0qlD78vAL/fi2g0ap0zH4txMeR8NfMUNUOx3Ua4beVp + II3dvsGP8HqsAHZgfXwFALLSfRE+lg6Xi+G1mwS5g1qlila7Djc95vUESPCH9HgLw0FPBJnf3aK/+2Td + vT4fvMEgOqQAuoZQB0NhDLURWo2WoIMAPe8mwW6TwnCRpWdUwALp9wcIBQxIySgk4WYlgCFvEIRDIVFE + fE6sBPqkABKpDNot+l5SAv5gAG6PG/FEnF5Pr6Hv5c/rErpgJcPfy8fCqIFdDo+LkIbLdefr+VgB3Pf1 + WAHs4Lp9EEtt5tFQ+dy64fOy0POrm2SJWaBYLvwEtVljtOjvWrWGdrMhQhSOJ+i9Or22IcHCUCyJ1kBH + o9Egl4AE1xdCmyB8j606IwXNi6Hugt5vo9Ufokdf6SFF4qF/m0P+ehJGEkiNBJIF2wdCFeQGsIDSO+HT + hvD6gwiRcHvdyv9nFOEZkbLx+uGm7/TTc+xWdLot0FeROzJEMBASRVOrlEURsLsRJCUSop8hfUfQFyRk + Qe+n9zGCsURcG79amx56vO7DeqwAdmDdLgOg4ltD6OSjk3Ek+NxDvVYVGO9yuVGtN0jgCAF0+xKk8/s8 + IhzVWg0esugu8sPrrQ46mg9d+gCG97V2D9UeWfW+hiZZ8GZ3gHqPYD5J+IAsuE5KpUyPdcll8GisdIao + dgci/H766ZESag1JoXhd8nrSIQh53fRDimFAioUEM0QHxRbYR/+myA1wkaAH6PVxPykD+owIQf6IV0OM + XI4E/QQ0Ugok7H46V34doxGt3yNUMaTzIIUGhTZG0MWNiMdiiHAsgj7H5XbL9WKXwww0Pvb/P5n1WAHc + h+V0CXQRerbkFYLqHQnQcVCOxJIsoJesrxsDgsoSBiBhb5OgVDtDlCt1EfgKCfVSjYS8D/T6fVRJARRa + 9C8JPMcE2CXodIfokhT3CcszBGdTT4AdJONkpXV5XQ8sgrr8PWRwT8cngJyeHNEzrBw43k86BZwL8BiB + eg4I+liLkSLw0IMBfh2hkUTAI4HCMCmsbMQHP70uGfIhHfTKczFSFHGfCxF6LOpzI0hKxM2CTa6ONxyS + wCO7PYx2/AGfIJBoNIYAKRFxGQzX4XFq8P6uxwpgBxdH4jlCLr4yWdEaWfE++c7ss1eqVbH0bI3dBIl1 + txcdhuUE6WutLkrtITZIkIvtPirNHiqNDoqtHjY6AxJ6stIk4ENyHVq9ARpkpXv0HW4jHz8YqbQfC+SI + pXZohOTNvL6k8FwGHCEbbKXzVOrRjM4LBYEjiyPjXZpBSaBjlJwhVACPU5KsCEaaUhxhUgwcT4j6GVV4 + ECeBjpMSCBBCmE6ESSG4kQ57kY0GEKbXp+MhuEak0TibQO/z07ViRRSORsmNcEuAM07KIBGPkwLyyEmw + MnisBHZ+PVYAd7W280iV4LEfP+gPJGjXajVF4CLhMNYLBfQ6bUnTdcjaBcgHbpPQN3WC9QMNG7UW1iot + rLeGWKh2sVpvo97pE1QeEJwfoEY/7ZESOhf9cOqPg3IijC7OChjsHbdNyJGEm0itI/eumaE0Ux3oku7T + HWQhFaUfD7jpFh3ASFeOzE8YQfwZzeArDEfqMFxKIQUI0vtJ27EeyhMiCPo9ogTyUVIOIT/2xoPI0U+a + 0EGCkEKElICXXQd6rk8KskMKMxSKiJvgJ3eI0QGnKDlmYCKEW+/PY+XwUdanRwHcJqq02Wc301Z2Pt54 + s8MCKWFkwe+RpW+g1Wyh2WxiyFaN/Fo/+cA1eqxLiqFHFrtBsLwy8mCeBH6x3MR6vYONOsH5xgBrBOkb + JOyjkXIZ2G8W94EFiiwiWOj5CZfLIvrdaZmHarH6HBdCs/5rXA5t8zPm+fKfSpnommbzezZ/qPNv5iLQ + eWh0zCNCBp4hIxNyN0gpkLcAuiyYCPoRD/qQjwWwJxnEJCGDqRAhhFgQEUIRHr0vCkZ5HpoEEjkdyUSl + VCKNYChoIAJFZrJZiJp17GPK7C4jip9G7sGnRwHcYZk33yCtisV1sFYMlu5IUmX8d7fPOfAuOq02Cmsb + 5J93BRpHonEEIjEs02PFBll4gvQLlR7mSh3M1QjqNwklEKxvyE8fffbPXYZBNY/FJNWYCsggC+n3cD6a + cey6fitqUWDAZQiuAwFYBEWbdDT25F0cgKZpFmrQNXJIRhZTWP3Qfzim4Pe5FU/BS8ggplyGfXFSCKkw + Jggd7KHHMok4tG4THo5dkNvE/INwKIw4uQahcIiUiZ9+fIYyMA9YUwzEcSrlp06w73Y9VgCOZabmHI8Y + OkDlpNsk7OvrK/KaFv3OGysaDKJBgj4kC1clmF9pD1DqjHB1tYylagfXK136t4tGV/nufXIBRuzPSzAO + ar+6rK+TZTEIb+EN4K6E0Lk28xPMD3FUCRioQgmOeskIFm3B8AN0k8Wz6bM3Xz+nEpM/Rrr9HUbxgLg0 + xjXlU+fMhMerIUJKIUVuQD7qx55EEAfSUUxEvJiJepGjx3x0jUeDnoWGONWYTKaE2egjeMFZlbFsjHkP + ceux32kffFoUxqdaAWwVYbZcXhjesj6S4B5H4DkvX1hbFVLMaNinTeuHKxDBGvvyzT7mCNrPF5tYrHSw + UGqJMih2OXDHok7oQgSdhGykqL86U24NQbA4/pvhteG/6/q9Sr59QlsrAVPhWWdNh+Qy5N1ABpohCLpr + 7Pu3Enz7Sd36ejkrUS665SawOyC/jRwHKkpCPeAhIQ/TT8TvxgQJfTrmx75EAEdSQUynIkgHCDVoQ4TJ + zWLrPxwMhGPgDwQRjcURi0Zgk4ecrpuJduw6jJ0p4Hq412MFANviWttkxP79UPLynLuu12uK/04bk5VA + pdGUYF5t4MJSc4hrG3XcLDSxUCYF0eih3KHnSPiHYqkMur+mOYJxUApArKFm1MFsowAwLsB3vbZRAObn + Wd9l1iLATF3C1oIuk4nnMuR365TcuAIYGV+vifuhQIQ+JotO70o3ApZSMajbVY/8Ph9ZebcXSPo9mCVF + MEtKYH86gv0JUgqZGFJhP4bNGoJk/TlbwKzHWCwmPIpwOAyPy237HY8VwJbrU60AzKW2hi6CPxSh75O/ + yUUyTQxJAZRKZRLmESJkYSqtLpZZ6IttXF6v4cZGDSsE8avtEerk13fo/ZxjHxmbTzMwr1mKy1bWRNa6 + OMgmE+7WTbmZWnxPa1MU8BbLb71MWWAxyW7mBiirzYH9oZkKtCoEb33/Lctlxwus47aIftqYm6CuvVk8 + pFvawSoxHtniSoafUIEHkaCblEAIR7MxHMpGCR0EMRPzwUvXkrMtHBSMEgpIZTII+FWwkLkMTE+2ld3t + eQWfJkXwqVYA5jaWTarrkq+vViqoVmtotduSjkqSRYHLg2Krj5u1Li6s1XGl0MJcRVn7WqdHr+0rcg1f + UJeZM1eOvVXR59jgzuJ50zhZhTLYHq5/FEWwWQjHT34k/7p1lcILMeyO+ISRx+e70eyRMjOP++4FQjN8 + fflelx2YM6OB4vQYvARNeAkGCjAbHgiBSilGuW5MVeJM40gD0wIYGaSDHkzFA5iKBfHkRARHsmFMkTJI + BrwIeBTHwe3xKWQQDCCdTqsyaO3W2oLtazge/fWpVwAqh98Xum5po4hCoSDQP+DzozUYoqv5MU8W/uxK + BedWa5iv9LDR6Eq+vssBPSNzwBtVN3x8y5LZkTQDBehjFl+382q2BjDWmLB/1DiA9Vlm9wDjb4MQxOlF + BiFREprZNAtSFMcJZrcHI7y/Usc7izUJbOpGlPJO36453Al5vdPlMfuUaLpxHoaCNDgGwkmyvSMbJVnf + bFw7Q5EwizFAiCUU8CAe9uGJTBjH81EcSoclZhDzauQaeNU5knJLkgJIJFPCJ2BU4LpNMdKnaX1qFMDm + VDATati/b9TrqDI3v9uRwhQuce0MdDSHGq4Um7ha7uJyoYHr5OevEgJokH/PzLsBTIadQcpxfLbt5Lqs + ZhqmZePctf2YcUQfTa5vv8Y6Apnfb/xK5+4miWMBSQV8OJQJ4IX9Kby0N4e9JDyNVhuv3djADy8U8OFq + A52RmR3ZPk5xy/daCMdOcTir+8wsh2Z2E7ol9unQAtb7HS/ka2n0RNBJmFM+F6ZjKo14OEUuQi6MA6QM + 0uQyeHTFqwhGYuQKuCU+wKlEDiI+jgF82hSA+LcjC+7XqxUpW+UqO42sfrWvY77cwZWNJk4tVcjXZ6jf + FQpun4ODjPOFoKPZcNbZ3Ua+TN9GAZgBx5HjwHZww2kOQR/TRrr1DyNytp7M1d9HfvST+TienY7gxEwS + RyYziIQCaDUa+HBhHT88t0I/G1hu0vXR7U5BtwUimzKX46lHUwE4G6Xojpc71fTm9J1yC2xuhvHKkZFt + oBvDrgGjmUzIhwPkEjw9RYgmT65BhNwCnZ/XJBbAjU3i8RjSmazUHDg7Hd1WAYxZkUeDffiIKIBN1nRz + sxkr2K1ou0zZLZdKpADKGA2YuedH2xXElfUKPhSoX8c1UgAr9b5U2g1GKi8+Mmlnzu4Wu7HGIvyGUTRx + M4zMguNFoqSGqnYgSBYwG/LicC6EF/al8Mr+PA7l4kiGCTYzucbvk14B68Uy3rq2gq+9t4jX5ypSXWhn + SnTLLRl3LUYWI++TX4p9KCEY8vt95B7MJvx4gpDAU5MxPDWRwETQhUw0BH3QI0U+QG5iUoqRGAkwqYjd + A/MCO9WMyX4c7+Q0nlF4WNfDrwCsdJJ5o0abuDzKCnMdPrfFYq6+wH6y/j7ulqN5cG2tggsFsvgLZYH9 + DPU5jdcdGvkBRrGSxnP4rfr9Qe53Wpoh6NZ3j0zynsvg+DvTbqbbwZV+5OsT5N+TDOEkWcYX9sRxYjqJ + w9N5JKMRiVtyARNX+nGJMFfrLayX8NMP5/F37y7iIrlBXLiken+NDCtuZxpUnNBEGrsgFEbfQRWQccl1 + YqSTDHgwkQhibzqEZ0kRPE/nPEN/e/QBerQXNEIEzCpMJVNWjMDM3KhzMzSsy0Z6MAqibMrmw7sefgVg + LDuSu/kEdSHyFItFbKyvYdjrI5FKo0gwd73Rw7VSB+/PF3GZoP4NsvqV9lDq6LlIdmQqeJe50R0WYJcQ + gOkbW0xB85h0K6xobE5jg9K5+Ej6c+QfszX83MEcXj04gamoD5lYBLFYRCygbtlz9SkjQkr1ZhNn51bw + t2/dwM8urUlZsq7ZwNx5OdSb754yfJ8ujlJGJjLRR0IjDnAzlaBHqhGfyUfw3EwMT0zECBEQ/O93pbMS + l2Vzn4Lp6Sm5HuoaO9KS2sjhzGmb3JOHdz30CmDMazSVAPPK9JGQd9qdNtpN8vfJ12/Ua9BJqkf+CC6s + V3FmuYpzK3VcWWui1FOlttyfR3cZvrqTG69jvDRg1za5zXKzdZDlB6hjHKkIv8/tQpw2+XTMh5O06V/a + myLYP4lDU1lRCl6CvR7pSeAy/F+bvcefx7GR5Y0ifnVxCd84NY835yuodVXaziXFSrpdMWjWFuzWddGN + yILLoDHrHgORqEyHFFCSW5AJuHEkQyhoJkmuQRJ7wm7MpsJwkaZsdbqIxqKkBGYkdWjfbON6G76/rfdc + D70KeCQVQI8j+Z2OaqlVq2IonWm4C46O1eZA0nnvLlRweZ38/GoP1c5A0XQ1xTE34126/Yv6DuvLPnpK + 7mMvzeDr62ZQTT2moK8uNGPJ6dPPZMSPI5NRgvwEffckcGwqjcl0CkGCvNLsg3vzjbECVeDSPE9WoNVm + HUvrZXz3gzl898MlXNxooTdyqej9mALQ4Ixt7sqlkf+YCsDlKHdW9GtWCJL29LoxQ4joUDaME+wWkHKc + jfvpdGgfDEZIpzPI5rLiGnAWw+kN2ApgvE37w7oeegWwOb/HQb5isYRKqSyNMjvdNlzk29aHmqT03l+s + 4J2FEq4VWuLnS1kv97tzmbdVG/tsix6rGcE0Syk4v/yTW5ur/KwEpK6CYD56Ph4JYH+C4O5EnAQ/iadn + UpjKxJAk6xYMKnbcyEASLpsA7SipVecnqdJBD81GC29cXsQ3T93Ev14tSgnzUIIPDoqtpoRut2IjinBk + Ho6doTGVk+g3g6WokSHw0WMJcgsmSfA5U/ASKQFWBomAH91WE9ksK4GcangqTVLd1h6xC0Ye/kDgI6IA + dIvUw80119ZW0axV4PP6MfKFMFdtktCX8dZcGZfW6thoqFz/yKS6umDUpcGu/YdZCGfxWI3hHE5m2y6c + r+b8VZMSZd6H3G6Le/xNxr04nInghZk4niXBP5hPYCKdEMH3eb2qXbdu1iWMrCq/sSEfjg0+HI4ETc2v + FvBLcgW+e3aFrmMVDe5gbBQ6CKV5ZHAcds01cnroSkFaDASDach3XM7TaITEzY8C4iZ5cDAdwsvsJs0m + MJskyz/oIBwMIZlKSaowEo0g4Pfb56iNJzMf1vXQKwC1V8lfJWtfJqtfWFuHh/a4h24WB/kYsr41V8QH + ZPlvlLnjzhB9SVcZltzcEaZFNeG1Zm6k8Vy2udF0/d7osTu2HHlwTVf+OhumGG3iw+TbsuC/MJvC0Rz5 + sqkoEtEYQiG/oCCBszCttIN6a6IAa96XRdUR10BcgWoVV5Y28G8XV/H1M0u4UWqiOzSvobo2ljuwG9fF + kHbFC1DHo1wCzVlraetsI87hkglJOkI+l7gFz05F8Zl9cRxNBSWDwLEBdh9S2SyhgpzMVTBRoRl+eZjX + Q68AGMJzD/xiYQMbhXWh9br9IRR6Ot5eKOLdxRrOLdWwWuugNRwZRTiaFfBSgTOz6MVJRzEJKwZH1dg5 + Ls3aO7uzjAi/NlSoNxLwYibhx8k9KXz2QBaHUwHsyyaQigQRkhw39+x3KZgDh2Bbv2vWx5pQ3j5/4xqP + uE1XB5VqHafn1/EP793Ev13ZkOakMHn/mnVou3RdbJdIxzgLQtGPAae0Wvdatxuj+Mk1yoa9eCIXwivk + Oj0zGcVE2IOQayTIKZpIIpVOIxKJqN4Du3SqO7keAgWwBczSVfdbjvQzb79ZJ1i/toYyWamBO4D5+gBv + L5bxxnxRuPvlRl9y2Iq9p0zmGNfMSuk6FICujbP2NlFbP1IQ0IQU45QSB312iy3lZPcZHH7O6XPfvQRZ + rcP5KF7cm8Tnj07j2b05hDwQuM999NhvFc77mKkas4/jX2P8slkB8AOcSuWOPIvrhALOLeB/nV7BmZW6 + ZE4UqDAU5u1iI9r2T338ZSI4pwIwIyT2OdmvdlwHE7qMdFHw3IvgUCqMl/Yk5IeVahADKQePxKLCF4hE + ohaLcPv14I82eXAVwFjqxRZSeXQ4EjYfk1UGgx4GvS7q9QaW6x1cLnXx+s2y+PxzlTb6Q3vsJnaD5605 + bZFzyp8jluyMKepOCO6A+yP1Hi/5/DGCplPkpx7LBvAyWf4X9udxeCaHFG1OKX/lFlkma3EHbwe3M2dX + 4OriOr5/fg0/OLeGKxt1qYswkcCtFGAzwwAro/JxCpvux/2x7pBRFcp/cy/CmZgfz02TS0AK9ul8DJmA + C17aiBwY5MlI0nvAp6onYd4682I5967jvw/a2lUFcLue72OVa4bllKCdrublrZMlKhUKpIXdGLm9uLnR + wLtrDbw1X8Z5skxcqttnpa5tYnV9wuuW3nzaLS8wztOsoDNdDif3YKRaZxGUz4V8OJqN4OR0As/PknWi + jTmZSUgbbb/fBxXQ2/nzVPSCkVz7cqWGiytV/O3b1/CTCysotgZbX9pNA1LvLwL46MuZCrVov1wzQRc9 + GfRIleHL5BK8SNd7X9xLrsJImrUmU1kkEwkhEklfQtM3NOIidoe5BzdYuGsK4G4rr0yaOwv/YKCGYNZr + dayursFPEIwr1S6T8L8xX5Xy1RsbbZTafanYE2hqRu93KWg31qXWJBc5G3KMAVQnLIUEn/jlbNG55774 + +uSXPj+bwonpDA7lk4iG/cJg44wH9+bHFihjZ26YEUeXKso+qq0OvvPeJfzDW9fx3mJdXCw7lYrbNjL9 + SA1OPoE1xokwDo8HpHBp8b50WDIEnyGX4Gg2KFOROH4Qi8clUxCSDkRm12aTN+JARQ+e7Mt64BSA9bjT + aHMRD/mghcI6KpWSkDW4D3/H5cMlgqC/ubaOtxZqWCi30eqOIKEptxkWtvnpu7LlNqOPMYvgPERTZI0M + hTEPgCfucEPM4yT4nz2QwYmJMG3GKCZSSeHwc3CKR2upKTomDdj4oh3ddHZ8hOsqOqSIT19bwLffv47v + nVvHYqVLiEsfc7O2akW224K/XWekzc+bboumq3ZlIboP0/GgIK9X9yXw9ERESpB5kGsgHCElkEacXTC3 + eR81e889wCUDD7wCEMvf7xPsrKBIkL/bUcSeWs+FDwnyv3ajgHfJ31+scm5/qKCX+MBGdNfBT3+wFIAN + C9Uh2lZfGl6QUCeZxpsI4Ml8RCL8rxyeRJ780iCP6Q6FZOKuprkcm9ZOY95PBcCt0xiJFUtlvH55CV// + YAG/vlFGpTOAY6rAo6EA+LYw14LJQ5wliPhxYiqCL+5P4cXpGJI+TZiXQUIA3IaM25Gp+/JYAdz1ul0s + gMdEVStVLC0vSvSbu7/yII2356r49dU1nFoqY7XWI8hPFtCtYL+z86Rm3oTdLFAxvl8zCmbsjafB7BAk + JBV62KOr+Xv5uB/PzCalcIUVwLHpLKYyKYL6Kp/vkX/N62cqFzvItuM7znHInHrl3olMELq+uI6fnp3H + N86uSsVgu6/DnGewpc//gMQBbteE1Xn5rHSpwbTk7ZUI+XAiH8aXDqbx0kwCuSAhMG0oTUmz2bwEB73S + g9D8jHtvTf5JrQdCATiXExmwv9lsNbC0uCj9+Xj67FprhF9dXcevr5eE1Vdq9Qjyi6dsTMQaOS48bC7/ + LlXvjTH3TOG3Iv2wWlyxheGgUyLsw4FkAM/OxPHFI5N4coqgPlkdnpPHY7JcptRrLqduge0z6UZke2fP + dTx5qCw5xwKYfPXhjSV878IqfnhpHcuVjowSlAIj44321CWbtvygrC1RiZPzr5ut20xIapZWaziaj+Lz + e1N4ZW8C+xJ+aUzq8wcxMTlFSiA6Hlx0dFR6kNauK4DNXXDtqbq61O5zH/4KwX+3L4DFeh//fn0DP79a + xPViA/X2QCL9cJtEFxVBd1a1iWW18tO7tXQb+uuOjWC0teINFSGLPh0P4NhUDC+Q1ecmFkenssgnE9Kk + Q3LOLs0xqMSxnZwJ+7G1s2nAzV/Fbc87dI9W1zfwztwa/tepJbw5V5aGorqV9tNutba73VDFPJfbuCRW + 3wXdDtRqxv2TOigS9gi5aQcyIXx2Xwqf25vEQVICGPUxMTFJSCArWRmXy2QiPnjCz2vXFcAWB4RGoyFz + 9rgff6NWhe7xY7ExJKu/Idb/aqGNVn+oKDqazUe3x1vZEX8rqLabCkBzWH+oYSDSrJKOjdtURYM+HE2H + 8cJsAi/sy+CpmRTS4aB06AmFgnC7vTY1YKxWyVmluFWQcWezANZHWtwkXYhYXG69WKjiZxeW8I0PlvD+ + cgX94cCgUzvrA7ZRhLtxS24TC3B2UtbMehHdLAozKWSsASHEq33pED6zJ4kv7EviQMKHmN8rw0oSpLxT + qZSacPyArgdIAahdxbzzubk5UgANmfpSb3dRHAXwm+tF/OpaAZc3muJnyqsdZJcxBeDgt1s9++6bAjA2 + 9S0pRicrxlQA6nXSzBKQQZizZPWfns0IB/3EZByHJ9NSvOPRyK/0uCTKbzXWfAAVAISNyUq7jSsrG/j7 + d67j++eWsVRpm3hsPPX5MCkAmMxC4zwcHYCsUyJFFyTfbTYZlBTh7x3MYn/ULYqBA7XcjtxqSf4Arl1Q + APqWj0i/vv4AtVod83M31B4hy3epUMPrC3X89loJ10pNNLmKz2Um+HfPrFsBOKsU1ub5jY35spiMSgGw + KIuvH/BK48pXyIf8wxP7sC8VEl5/LMIlu37cL0LP/ViM2rrdHqqE3H5xfh5ff28Ov6b71egN1b11Gddh + 5KDKPQAuwI4sXRkZH93TCVLmn9ubxlcP53A47ZO2Y5yenZycQjKdkr6DctbW6TviDLuUKdg9BKCbhBEl + GBztL5VKWJyfh9/jxlDz4AJZ+1/eLOGtmxXM0e8Now+/4vRr2NWNpI3zzc2Mg8U8d87d0xWV10OPcR97 + jvCfyEfxWdosL+zP4fjeKZl1xwJvTrt9GJbTcnKtADdgWdqo4MdnFvC19+ZxsVAXopalJI3KvN1uHLKj + y9F1yCucDVIC5Ap8+WASz0xEJKPTbHYxs3cWuVxW2pKr1vDODLGDOCS/fHKHv6sKAIbw80biaPLCwpwq + 0fT6pYz3X68U8FtSAAvlLtoDw+c3hm/ougNi78YaS++ZQo9xf19YM0oxsFLLG914n5mO4nny85+aJrif + ZRpvFB7xEzVL+B+GHvXO9C2jAO7HwASh964t42tvXcWPLm+gUG/L1CRVRumYG7jbcZmdWpYUw6ghcCMX + 8eAVcgf+8HAaz07QvTU8HkYBuXxOWrG5tE37d5cgwC4pABMs6zKWrl6pY31tFbVqBR5fAJfLbfz8egmv + 3SjhRqlFPv9IyD0i/LqZ299dBWBldXTN7kTsRADQjc4znDf2YpYg/okJbs8Vl9TegVwC2UQU/qDRl88q + 132w1nYcja0Ga0rvAFICS+sb+OX5m/jaqWW8v2D2EbTHfBnlg4/Gsoy2HWti+jD3YeT04FcPpXE8EyLk + 55Mx5olkXCoJOTCoOfsuwHn3P7l9sIsKwEz1tbG2vCbCP/J4sFDp4l8ur+O1m2XMlVtoDdTmUdF+GAUy + zorv3Vm2AjBTjTAYh2aaSJduMzzf/snJGF7cR9ZgOom9qQgJfoysfsiC+w9qjlhO6R4UAC+mbDcaNVyj + e/rP51bxT2eWcbnQkhbrasKYo7z5UVjOoKCRN+SGqdyCYYZcPU4P/u6BJJ7ek0GU3DwGQolkEpFwjJCA + 1xFL+rQoALNUkv7X6/exsryCcrGIHhmGjZEbP7+0hp9c2pAW3T2G/Zwk19ybLo5Z872L+X1Le4/sqLGB + TrykrLhkl9NDT01wh5k0Xj4wgT0ZZoh5COX4rLFULtxKl31Yl3kNuGKwUq/hwkoZf/vGFWkestroS0LW + LL91jBB8uJflCmqw2oTpqkUaG4A9CT8+fyCNLx/JYn/cB782QlCQQErIXdKCHNi1gqFdQwBmm6nluQX0 + yGqs9zX8+kYRP79SxJViB43uQGXwXbCipHaLGg3WcIpdVgCaVUKqBoEF2AeM+snqR/HlJyZxPBfFbDqG + mWwKgaBXNSPhttqa64Elh5jrjvUaW/7NfQRZufewUa3jX05dJldgEe8tNdDsDxxtw+Qi7vYpfvxllpuL + 8nOLd+PSRwZ7WEfQpWNfKozfO0xK4IkJHEmHMex3wIngqakpJBJJIQsZH/aJH/6uIIDBaIAKQf7Fm3PS + mrrQA16bK+HH51dwabWOxgAqcGSl0DSL7KOEzoycui1E8YkvzQhlkzJyDUdSBRYLuHGAfP2X9iTxyoEs + XjgwiXQkBD9Bv7DRjdd4s4Ov7zz222+A+xkY3OqzP8r36YZp51mL9UYDV+aX8L0zi/jxhQIucUvxB4gG + vBPL9OOt1nGmWrdoD2Tx6b5zC/LfO5zBV4/mcSATlgY28XhSGIPhcNDKkHzSKmBXFEClVsHCwgI6zQZa + 8OHt5RbB/jWcWqyg2umrltVmUwV5D18WF+zOr7pdQee42J/k0gTmQaK5EXL4phIBHM6GpMf8i/uyOMI9 + +KV4xydGgnvImYEDZ/89WM7MJ3vrdV3V9ps/rJw8Hs+2SmBzLGB75aBex7NJePoyV3F+cHMN3yEl8KML + 6yg0uxIxeXTUgKHIhYhmFELp5n02gt20V8K0R47lIvjK0Sx+/0gOKZ9SHLFEAtlMltBhQBqUftIa4BNV + ALxpGg1u5rGKUrmCocuLU8t1/PPFdbyzWEWZG3kYF9Qk9NksUpfDYupjLcLurdHH7bIHWz3ndM6sGmVV + mejiltJuHCJf/7nZpNSKH5uMY082jlgsjEAgJH35zLdaY7XGFID5DfexfM96RAVeuZ5fpiZ1e6i12uKz + xkIBhEMhpbAcPIR7VwD2t+tGB6FCuYp/u7CAv3/nJt6er6jALrboi/iAVg7eftlIbqyhy1jRk6okjPk9 + OEGu4X8gJfDFAxmEXAPZH8l0Bvl8fqyC8JNaO6sA7PIv+0+YzCdVQ760OI9iqYSRJ4Cr5T7B/jW8dm0d + K/UOWX4u6VVdbXbcRxyrnNmCImyy+SxShnFKmkMB6Kp9OBN6onQzpxJBHCVoJ1Z/TwYHJzJIieBzkI+t + qYPGu1NrCxbZuCIZuxlji3v895m73+6iVK9jsdTAfKkKP7kvRydSmM2mEY2EjbSkBrML0D25AY6bbqYG + uWz4wvwavnvqOr5xehkLlbYEfcfqbsfo1Ma9sZq57Owl3JWlq0xRJuiV1mL/6alJnMzTXtEHEhTmcWTR + eFRcYpiXwmqpdn9MBK8dRwDqUMepXgwH2eJw2+5iqYhmp4flpo4fXyrg1zdKWCy30ZfRTS6jY69ub/Sd + WlZvQEfE3eDm69YfGEcTmnnhXUZkdwQfweS4n3y6TAgv78/g5X0ZHEoGMZVKIBFXgzY1oyHJ/bhlY+3D + rOKUsciaAy0ZrzfGhvF05CoJ/sJGGeeWi3h/qYZLhQbSYR++cmwKv3N0GmnahDwAwypgsb7jLo/PIPvA + ql9gtDFAsVzDO9cW8TWhCZdRaPWkmtA0lkrfmMpfV0VEZnT1UVAAmpRPykSiXMSPV/Yl8Z+fzOOpLLcS + 0+EmpTs9O00oLGI1szGjC9ZHmANOdrC8eAcVgAP+bJrUy3XjhUIB62sr4OLXjZ6Gf728hh9cWMN8sYvu + yJjeaFgE3Tnddqeu/6aadM25rwyCirYJppvPu0aKgxT0u7E3GcaTE0G8MMOVexM4NJlG2OdGMBCAl4Tf + bbXhdt3n1I5utwCDUwlgjCUprdNJAIejIUrVOi4tFfDmzXW8MVeRfgrFShfpqB9/cHIK/+MzR3A4l5IK + RO66ZHyYw1DfzcnY6M1stc4t3NutJuZW1/Gv5xbw9dOrOEvfzdRuzeB3KMXh/Pzdi+/cj6U5lJmPkOFE + zIcvH0qRO5DHkXSQ9GQf8WRSZhLy8BHnPrUKr+RvhVJ3yrjcFxdAykB1W3s1mk1cu3oFIy72Gbnx5lID + PzjHfeVraPaMBh7GxI1NSHAH7wBsmK+bZZ6aBbNMboG8VFdW0+wSy335VCuoOD5/KIejuQD2p2KYziaF + xssBNBkUYSoPbasv3+E1tjEcG8LRR1317uugXGui1O7g/YUNvHF1HacXyzIbsdLqS3/FRNiLl45m8H+8 + fBCfPTSLdCJCFkkIGEYG5h40mW4bAnUv1fH1e6qt24W5FfzTh8v4yeUCbpY7wgTdfL91mKPKdr+F2I4t + K13I7cU0+MjtOpAO4Q+P5vDVQxlMRd1iQFQzkZhxb7Uxl866pti5HXUfFYAuE3kbjSY2NtZRpZtP3g7e + W2ngR+T3v7VQQaU7xNAKhmk27Lkf0X3DZ+YNLSEoKfN0WVx+S10ZTTqkuIOeToW8mIgGpDX0F0j4Xzky + JXn+EFl87sbr9ipCz1jFqxy+06J9EgpAfQ8fA7frGhnj0lZLNZwlq39hvY4350o4s1TBRrWDdncoB8pB + TOl4uz+NPzyWx4v7Z5BNxaXlmK0A7uW4DAVgGgHDtWJl1G61sV4s4u3ra/jmmSX8hty/Mish8RZcmxSA + 7vy4h385Zj2oDLKOIKEs7vL8x09wUDCJaNAjLkAymVYdhUx32FFdqt2iGD7euk8xAIimq9UbWF1hpl8B + oVgSF8jq/OD8Kn51rYi1eldF/F2bIay5s3c2BGx2y7Vsvfxi8O81O7MAo2Q3SBc/F/fjJEH9pyfjeDIf + w/HJJKayKZkdzwKi8vq2TnbelPuWs3dkEDbVIwrUZi5+u91Ao93DSrWFs8slvHZtFacWapgrt1Ej35uj + 8146/jgXJ2WD+NyBLD57II9DmTAmkglEI1EJBOqOisd7OjzrEB0BYdr03Ny10aQ9UargRx8u4DukBE6v + 1tExpzYZVGrVjWdkt097FAhD5jKBAP3HPdJk7sBLs1H8yVN5nMgT8iJXLUaywiXE4XBAGRcTFusjg3C4 + c9dk5xSAIzrNv3AOeHFpEZWNDWlkudoGfkiw72dXNqR3f380UkE/K5ptB/7tPv47f/GtG+AMoOlD9RRB + Mw9Bs2TIgz3xAJ6aIqt/OI+Te/PIxyMIet0IsfB7vFYPfHOUtmO21g4f9C2X2T4dy2LqKuXW45r8OtYr + VVxdr+HUchWnlmq4uFwhZdAjRDCSGgUefTWd4VhGRMZiv3xwEoemcgjQuQeCYWPklfnJvFx3fVbOzI9V + K2ExOJkB2iPl1MYHVxfxT6fn8M+XNrBExzZwEGlUHwWTYv2I1A2YsRQX7HPimgE6x8moD184mMSfHM/j + aDokXYb9dB+YKch9IMeGxxiysVPGZYcRgG41i1xeXkapXJSx1V14xep/l6D/2bUGWr2herUxq8+sg7a9 + nJFFptippRk+mHyHs13zCEZ7Lhd8Hg3ZsA8v7k3jSwT39yd8ODKRIKufphsSVDfM495SA48xwRwJhful + Dkx3RZiVJFSdDvn09TqurJVwbqWGdwnqnybhXyx10CSY3WeXxuNCPurFiZm4MBWfyIbJD41iJp1CgiEn + nb/mMnoPOr/LNuR3f2yOK+SczCfNQ3oDrK2v4TeXlvCdD1fw7+QK1DoDIQiNrO++352cPuFluYVG+fjI + ZRlLP/29N+nHfzmexVcOZ5ELe+geuJFOpZHOZCQ2YH6EbjV93Zm1YwrAvE/DvuoUu7i4KKOVh+Qjf7Da + wPc/XJOGkQWrYaSjMMS6QGYG4X64AIDFHjIUgEaWXw2EdCEScEtqj8t1v3R0Gp85PC1TYeOhoPR3c5Hg + W6QYwG7eANPCOesT7zdk1cXHZ7+aj6dWq2KhUMSFlRLenC/ig6U6rm80UWCr3+duwzqiIR9mkgFyZ6J4 + 9WAWzxGqmYiH6fEAgj6eLESQ38Pn5WCjfRQN5gwCWgrXuCbGLR2QEmiTK3BztYifX1jG107N48Ka6vYk + t95lxIJGLut8H/rl7F6lOfePLu5R2OfCSUJkf/rkBF7dl0bMr1LPe/YfRCgUNtypnfX/ee24AugSvOM2 + 3oNuVw74CvmdP7ywjn+7wvn+liKAuEzfH+OMPksdmAGhe7zx4x82/pTmSDGMlE/qpl8iBOuzMT/2p4N4 + dX8Kz89mcHw2h9l8hvbyUIgZLunLZx7PdgrA9sV3TgFs/Xk6+YmcW+fmGywzl5fX8ca1Zbw9X8aZ5ToW + Sm00eUgHPcduy3Tch8PkX3LD0ZMzSRzJxoS3IA1HPR5RgC5NsxGYBWHulprqOE7nzAMH4rJvr/oebh7S + bLZwfmEN33zvJn54fhXzlS647YsoAF2N3hr//Id4jaVrRxb5WzfSuXz9U2SEfvdABn9yYgpPZUMY9dtI + 5yeRTmcQ4LmPD7ICEL4JSVWjXsPc/DxS8RhWa238y9kF/PBiEecLpOF7A3yUKb23HeJgvQaqWEh3OS8t + LE62GQSk57layweOgHsIAodJKGJ4hiz/c3sz5BsnEYtEJNBnp/Xujv768da4sJsccvmdGZIjuw6CSVWV + WhOr5OsvN7p44/oaXruyjgvrTZSaA/S7Q3AaPxzyYCYewPPTcSlJ/syhacxk4vC5XbShAlKabM/z0zax + H41jsbgG9lFuchDsY79rhQGjB2QPhXIFb15Zwf/z5nVBiOVO3+gb4MzQ2O95ZJZmX0ezjNpLf+5PhfFH + T2Txh0cy0kuCLwIPG0lJT0Gv/eYdWjuiAEy/pNvpYGNjAxtra/AQbGGm2XcI3v12jsdGkTvgMpH9zpyA + ChLJEcAsD1alww73QRSuIvq4RmryTjjoxlQsoGi8s3G8sCeDvZkocskUQsEQPGQ1uRvvJ7nM87DSX2YK + zlBjw8EQ3SFZSDL5lWYbV1cKeHduQ9KpF9bqWCV0xXMSmGjl9+jIRDnCHyHhj+GlPWlCNaTcshmEAiqW + IajG5RguoptsPGc80yYWjXkFppfmIHx9FLLqcDhAu9XC3FoR333/Br57dhXnSYl1huSauc2swOb7/ego + gTFjYigB5gc8O8lZgQn8zsEMPKMuKXM/8vkJZHMZ+xrvkA74WArAWSjCwZ1SsYTlpSWpi19qDvGTKxv4 + ycU13CxxGagmN/VuAzubrf5WlsDmSetWQEW1oXakFAXyj8Tr8NGmT/i9Upr50p4EniXLeDgbx4xJ4/X7 + 4XG7LYRyu2O4H0u3/mtyItT5jUhQut0OSrUaVspNXCH//tRiGe+QAri81kCFUEB/yHRFF/n0XhzJhejc + orSREjiWT2BvLinNJ0LBoKL46uq1TpfFkW02/m8EaM1r6NyrdpnmuNK4J8ow/3eEfq+HUqmCU1cX8c0P + l/CLq2Us1TtiLMZnCtwdEnwY1/hU4hFydA8/vz+Nvzw5Te5aSBBsKpXGxERe3LWdDC5/bAQgUI78OZ7e + s1EoyJCIoceHX14r4kfn13F6tYYG+asjzejpZxaB3MNF2apE1X6h2Y/PpfLW5uY1OeUG5A/43AKHT0xE + 8OJsCi8dyGNfJoIYCQVbfa9/vBvvtgpnh5WB9Xnm31aEdySwn+E+t9xudPs4dWMJb9/YwAcrdVwpNLBS + bKLRGWJI5xcNubGX3JknyZVh4ecZA3tTcaRJsXGrca/XLxOTNU3bImPpjNOrv8ezAA6nSsI3uk3Wsq/Y + +Efe8cTVPwNSbs1GEytr6/jVlWWZNMyj3lUHaOuijN2Xh1EB3P1QUnZPgYPkCvzx8Rz+I/1wp2Heo/FE + AhFyT3eygciOKIB6vS5c/1ajTrvDgyulDr52ehG/uVqSMVFDYZUaQrnjCkB3KACVK9VHZi0BZMruRMSD + w7moWPznpqI4NpXC3okMItykQ8Zre25JreymAhDdNRpK8U6ZrX6pjvnaAL+4sIC3rm/gerGNWqcnNF4m + 9CTDHuk2/DJZjZf35XEgHcRkLIJwJEyKzQ8/sxXN4hqYyH5kF+yMlxjB2XJVCiCZgML1GnyNWIkwonK7 + NqmJj6YAOG7Uo/OsN2q4ulTAv5xfESVwdaONLl0DNTrx06QAlIxEyQ09SYr8r07m8eLeFMIetwzGnZya + lliASZX+uOtjKwDuB19YX0e9VhU3oNzVpbPPt84tk5VqSyUg55ctX13+2ZkgoO0CmIQco1KKmW6kJcN0 + odIRL14iP/8LR/J4diaFKdKmca54C9plrwaPzrGF7x/U37bNFv9wcw4SCE7vdcnir5UruES+/unFEs6s + EuxfIHhMwt/uDcFtBsIBD6ZSIRzPh/DCdAIv7svh8FQW0YAXQRJ8nkaj0cZRNWSuTd9mdOc1r6XVzMK8 + BroUEHEhESuiFqEQvl6iNEmDeIUJqeoFxmnJ9xgL0NX39AY9VMpVQjlr+C7XClwsYL3RUYNfH1Kh325t + 68qY0N4wktmID390JIn/fDyLPVFS5P4AcuQGJOIJ4aPsxLqjAridxRPSD/mmPMprQP/2Ri68s1jBtz5c + wTsrNVQ6Q1tTmSmgHbyPzj50soGHCp4yjX0i5sfxiRgJRxyf2ZvEk7MZ5JJRsYbM4VcBMEeTEYvtcvvN + u5OZgLFmG7pqktput6VRx1qtiffnN/DGzYJ0SrpZbKFOaGrATUe5/VjQjYPkwnz2QEYCfYezMclgJGNR + Fd13qxkDShgdo8WgW4E8fXMQyoijmFafBb9UrWGpXJMULmcODueTyET8iEZCjnbmBuDS7r630TijkZSA + TkqAzrtQqeM3l5fwd29cl71Uk+lC2kNr+bdb208lVleHE1p+jwtHMmH81xM5/N7hPBmzAPqkLKcnpwxX + 4OP3mvhICMA8cLb+tWpZ2nvxTVrvavj+2SXy/QtYrnUxNJm2ZpRop3ndKoGqotpkNRnuczfe2WQAzxHc + /9z+DI7kE2QlI0gRJJa2S26P+FBj1t55fPfJ+N+uvTZHw/la1hstLG+Uca1Yx+mVCt5dZARQw3qtgyaz + J2lTMK16MuknHz+Ml/ek8Pkjs9iTDCMS8CNIqMbvU9F9m1hlWORN52WzLq0HpEhKZ/TR7wmaq7baeP/6 + Mt69uY7zKw1pGfYyd7g9OonZXFIIKjzQxFbD9+4CyK+K4ibXgpXOpeV1fPvNy/jO2RVcL3fQHRhK93Yd + iB4y5bCtS+CIXzPSitP9/J2DCfzZiUk8TQaNjQQL/9QEKYFo5GMfx0d2ATjwx/3f11ZW5Ka1da70a+Fb + p+bx3nwV9f5Q9c0S/DmebvooF+qWTrSjkQryGRVTfvo3H1VTd56diuOZyQSOz6SRT8XFZ/ISZOKmC8Jr + 15xgdXOOG7ifLoBzySANuqE8UqvSbGK+WMPphRLepZ9z63UsFDuoNnp0rQnye12SuuSWY0/zINGJiMQy + 9k/kFCzncmQWRhesbj5WlN6R4jPP2j5jtbhbENcS9I2mIYzerpfb+NGZm3jvehHLpbY0Pn3uQAr/5ysH + 8JKUDcfsqsGxz7vz9bvVXTCMCt3XYqWGty5cx9c/WMSvrpexWu852Qa37I+HQfi3gv1bugKmrjYIUx5S + y/vJzfvjYzn8Ef3kQh6h2u/dsw/pTPpjH9dHVgA8vZcr/bjM10/W52q1j38+v46fXVzDUo0r/VRZnYKZ + LqsP3i33apwLjM23eUsFoCuIqjGNl74jFvRifzKIk1MJfPEot+KOkTIIIJmIipWCUVGlmWPDx4RhpxTA + nTa//T0jI0A5IqtfbTRxc61AFrYk/RHOLFXJAtaw0eyLr8+FIQz3J+I+PD+TxOcOTeApUm4T8ZB07wly + ao8Um8tMf45dRkeaDlsrAA6YqjSjCjiuVpu4vk7Io9DC6TVyQ8gFWSZF1KdjZXTx5EwM//Mz+/CVpw+K + y8GFQ/oOKgC+NNxCbGF1Hb+8uIhvfrAi/SIbpCh1y52xOR4GeHjg190rgPEaT3aPgmS8ePz4nz89gVf3 + JuAiJZnOZmX0uJorMI7n7gWJ3bUC2CyA5UoJC/MLskHbZIx/ca2I75xZxVnaxG3L4mgqtMYnNdLHKL9m + jluILyNVVqtrjl59Rj7amWfWFYtSlRHQoxGyirl4EEdzEbwwFcPze1M4eWAG6TAJBX2khyy/y+1V37fD + Rt2i61h9BJ1isNkPNje3bll9tnSt7gCXlhSN940bRZxbbWCt2kGj2ZMT99P5ZRMBPEHW/iS5NM9PJ/Hk + dBb5ZFyooVwptm3qcpOASccdx/PmNGMu0W0S+tggRX5jrYxTqzWcIoE7s1LH9WKLEAF3cQCiYR+mSck+ + PRnD73NTy+P7MJlOSRzA4k3s0LVldFkjxXhjaVUQ5Q/OreJqqSm0Zx4SY3M/YAQfHo5hqne9NLW/zewH + s+Z5jPwfHEnjL0gJ7EvHJMYTjyeEHzDG0rLej7vSBHepAMY1u/iHVZX31zQPPlwu49sfLuHnVzawQZBV + KrpcisutjLstILrT2rt0w9/RDCqvoQB0s52WkXrSzQj/CG5O7XErbr8bR/NR/M4Tk+QLpzEd9SGfjovV + Z8jvMpWM2Yp7x++SmWo0otTQHdAblsm1/Fv+h/P6BLMrZGkr7Q5uVrr414sLeJsg9tXVOkp07VgxeLx0 + fgEP9pLAPTMTx2f3Z/HcvglRbPFICOFgQJiKLPzbBiVvqUgcmTpVPa7DiDs0MVco4szCGrlu5H4sN3Cj + 0ES5NZAKQh/3RYh58EQuis/wrAO61rOxIPbkMtL5mGsJVAe/Hbiiuq0o2R1hV+DNy4v49gcLMiuyxH0E + HXfT5H2w3zOWZXqIl9WcxqRBC5dlJF2pnpnktOAEPr8/g2Gvg2Qqgz2zs6p7k+agdd1DOOueXADzBnU6 + XdQqZdRqFVTbQ/z44iq+T/D/PEFGhopc5qsILeOcfFNpy2dpsKim2kjhgdHmIhRNWSpO62GoCD+JkB/7 + SDAOpIKSH/3s4SkczCWE6BMMhVV6yhnNtzbGTgf4bMqudfOwyfIargoLGv9wFVyJNvW55QLeWSjiPYL6 + Z1eqWC93CO6PuGck/HQN0jEfjuQCeHk2iZf25nB8Jocp8ve4nJeDbm63e9usjLWJxuj8tuSrNONQgkkM + +ReKdRL8Il67tkbHVZXa/FZLVecHyPXgCsIXZ2N49UAez++fwmwmLqPPWAl5vW6rl+OOYoCRLjMGW+02 + lgsl/PTCAr71wSJOL9elpfjImQN/+GV+62XEPFVyZiRyMBkN4vcPJ/Hfn5lALuRDLBpFNpNBMBJWgW3L + pdDuOiNzVwrAwU6XTbZGPmtpoyCpmysbLfzjmWX8+3VCBM0BlPHWLb/b8vsNodYM+GYhA11ZeM2oqIfV + GcawsIq1igC9lttz8WRd7svHFmlfOiLFLclYRIgpboL7Y6dsbf6ddwE2Uxq0zU+ZmRKCsy2u1W80UCK/ + /vxSCa/f3MC7C2Xc2GioWQhd1RQ1FvbgAJfskjvz7GQEz8ymcSCfQSoeJ+UWVOPEtupFsBVd2lRERumz + KKLBUHLunV4Xi+tk9ReLEndgyH+ehL9U66JHAhYkZZpP+HE4H8YzE1Hpfnx8OodJ8vmZTizJF5cbzizU + vdYC3JZQpZsM074Mjz09t4zvnbqJH1woYLHKBCHY6cexYqRPJnh7P5dVeGUquZGZs9UJBbhp34fxP56f + wCt7Ugh7vdIrIJPNSGbAyQ2wirt2wgUwFQC7kRz8W1palmm+PZcHv77B8H9F6rml1Nftskr6x/q6mQrA + cAd080XmtjGNlDkAaKQcfs7rMxxmi38sHyGrn8GrhyYxS3A/6POQH+yzu/FinGegfVRyyt2sWyC240oZ + 8Jp9WY7wr5J/fXmNi3Ya+GCxQi5TDUulNtoyBQmIkMsynQmRSxPEU7kInp1JYz8pt6l0AnFSbh6vzyLd + 3NHyW0diK4CRdAvqyLG0eCBrrYPfkuvx79eKMrl3hRBIjRSRBBwDLuzPBvAsbbAX6edINirzDphfoGIO + bkN5jwf+7rVM9U4KQP3DRKQhoYANvH5pHt88s4LX58ooMkIxWoeNbsknPtzLKltXfxkKAIqcQStDRvA/ + Hkvjz5+aIhcxJG3gQuEQpian4Gd+yzj026kYgFrMCltYXEClXJSBngvNIb59Zh2/5h5/zZ7q8MPpKIND + agYCx6K0JuyHQfF0Vu4Z0T5tpI484HUhHfSIMHzpSB7PkGU8kI5JcUs0GlZQn60iW6NNbDTrIsjn6jtG + nbSWpQD0TdVxqg12q8XFO3UsblRwfrWM98nKfrBUwVyppXz9vuItcCPIQxMRfOHohAyMmIn4MJ1Wlpbr + 9aUE1IyD3JuECdznuAPft7VyCSvFEhYqHZxZb+HX5LZ9SJCaKwiZQxHyuZBNhaWQ6LnpMCnaLI5NZ5GI + hAiZRFRXmk1JBqfzo1v/3cnrrMaWNepN3Fhex88vLeObZ1dxboW7Sg2ssmVpLfeouAJjl87EVeZm0xGk + PXN8Ioy/eW6aZGICAY8me23//oMIh8MwMz9bQtOtrvDdBgF5b3O57+XLlzEkCCnW/2YR/3i6IFakNRxZ + wqyE2yjPNYcZWCbe9hadCTh1kgrWcVjJR/7uTMInFNfP7J/Al47vxWQ8IFaKhYPTT2OhThPmm4w2wO6d + ttP7cuwG2deHrT5v2i5ZrYXVEi7Qpn1rrkTCX5MOPWtk9TuDoRwfV+1NkwY/Qpb/hT0JvHp4CofyadV3 + MOBTjTqk/Zh77JqNffttWImS2mN+RqeLRquP9+eX8MFcEe8t1XBmrY6NShfdAV1rup6psEviKiem1VBT + LiOeSsWQTSQR5CIp5v9vKkDRzaEe5ia9yw13y6W7zevV+amW4jVSApcW1/DN0wv45/OruEGKdGBkd/RH + wPKby3ZtzAErxsUytrWbzjUZ9uLPjmfx5ydn5L4xTXtmeo90Emauhm4MVrmbe3HXCID9sWqthuWFBbFw + S60RvkE34yeXy9homTlaWNFw3eh6AphNHnUrMKZOVFcwDkZub6Qsv5802kQsSFZflbR+dn8aT8zksCef + JcjvV2rC7VJtKseJbHa+0LxyluW3ruSOL3PeHqfTOu0W+gMdhfYQvzh3HW/cWCPIz4QeEnxJ/XGfAR2J + kAdPkG/9CvnWL8ykhMk3m0kgGY/KQA5GNlLx5RgmquPuz0X67pGyLlarmNuo4sp6Hb+lYzm9UMV8uYsS + wf3RUJfAKVeasUV5eW8cJ6czeGrPJOIhvzAOmTLtcRuDO5xKaMz8mzTq+5WK042CoT5KFUJR8xv4f9++ + jp9fXkeJ9p3aYuNlww/1slKq9vxE3bHXhSJMe4Obuf63k1P4/P6kGEUfyUY+l5dYwL1s9TsrACMg06LN + vba+il6njWZPl5LNv39vAWcZjo2Gdo5Zjthl+/qmn6+Np6E0Q+71oSI7cCOEhNB4/XhuJklwP4FjE3Hs + yyWQIX8/FAhZOe/tp9I6y1rtvvT3ZaqaY7ouG6BavY759RKukqU/s9bCa1eXcW29ho0GB93I1OoDUWBT + TOM1hP+Vg5M4MJFCkNAOF+/4uO2T0aTDrq93Bhu2d+qc03459rBeruHs4irenivgg4UaLq01sEq+fkvM + vkZC7pMKQm4H/uLepIw1n0zFkSGrz5Rf/hq3db1NK+tkFtqundlyXTfcrPuRch2acwVICXz3/Zv49ulF + fLBcQ5ezTjvYJnvXl6VhoVAtDBdHlpIhToVPRP34kycz+JPjOeSjQbrvQ0zPziKZSFnxw7tZd60AGo0G + 5uZuwE8+6UK1JxVb3z23hrVaDwOjhbNC4s50n6OttDYy8uEOv5z+5x7pIgAM75+ajAnN9ZmpJG3OpBTv + sB/MwQ33NoSXsQPdUgF8nK2xPU6VVBpBr3a3gzZZ97lCBW/f3JDhGx+ukjIoN1U6jVGNV5OS3X3kY3Mc + gzv0PDObwb4859Ij6mg1Vbxj53J1jKUuxk5kHOXwU1xPwFa/Sf5grUOQnwT/V1eW8N5CCXNrPA9gII2R + /OTr52N+PEnH8fK+JD53dFYKfHi8mc8fkICjOR3YGm9t+ZS6VdtxqwLQ1Vj3+6NulWKj61xv1HHq2gq+ + 9+Ei/vliQQaNDgDcPs1z33zAnV/O5qGWAjBlZmS9hHkBX9gXx5+fyBGKpPsX9COZ4oEicVUFei8KgCzG + GbfbvU01oNrs3Hn25vVr8PqDMt3n66cW8Ju5qjHq2RBrzSDemAFA3SY1OgiQFtx3e7gRopcgcECs/ucP + 5nAkF8VEPIJEVBXvcM57u/ZcH7cy7061/aYbY290o/vRUDXlrJJSXNwoY75Ul3TaGzdLOEdWqdjooUdW + mAtx6fQwmSCrP53AS3tTeCofI18/KTUK3G3YmsS7KZdgQkBrTzinF8EQTikkUtVyTUJmK4UiFgjyXy12 + 8dqNAt4ihbRc6WDYHYGbzCZJ8GczISkqeWVfCk+TEmLXiicCs4J13a4NmpNlYt1V9YT9m7O8GOPWzLyO + mqHc7pGXoRDOUFqIrW6U8NoVNWLstRtV1LoDUT5mtNypnKz95wyMPQLLTQqRx9L/0bEM/uypCeybzMvj + oXAYsXjc4MLced0RAQxJUJsy3msNpWIB1b4LP71WwffOreAm+ZNDA2abuf+x7i0WNcbRr08XBIoAabBk + 2IfjnNqbTeDl/VmcmM0hHlEtqjnIJ5Vm97kN1y1rjMln7VgjlQn0h320mi00yfrfLNbwNlmjd26WcXGD + rH6xSUqhL6/jkdsZQjV7c0E8Q8jm5T0ZPD2TRioalqajgWDQ8K/NNKhtYZ2WXf7a5GMLpZgtIh1Ls9Gi + Y9KxUK7j7atLeGe+hPeWGxJ3aLa68vkRQh97SPgVpZhboaWwPxdHNplAmJQQBxzVBBrtDpdFx3gHBtNF + MZhrDqEem2NnBGhMAs9HBeyKRt2V639tqYCfnF/Et86uS4yjzfFXCVQql0AbaRYqsGLP7G8+KpOG6P6z + y/wqoYD//YVZPLt/QhAgzxWcmJhQ2bG7+hhDAdDNP7HVBmi3O9Ltp0jCz594sdDFN8+u4edXC2R1hhhx + 80aXdZlhYkZ7Uxt+OLP9RsqmJYNeIfK8QFboGVIAT0wkMJtPSfsqZpdpQnhxWRHRnVx3hRrG3G5FQVZj + t/pi9Zc3irheakvT09evFHBxtSojt3oDXQKUHOGfifnwJAk++9dPk9DNkMXPJaIy+ZWtvopn2Ckb23Uy + E2p2NkMJkssyqByQ7fU7MmBjbpUgPrkbp5ZK+M2VVSFmFbgzcH8oSigd9uPAREh6zZ+YiONANiYcilg4 + JA0mlPDf+TpvO4TUvGCO3gwjc7CqIYN2s1bcMyFzvBsTpFU7dxMulco4dYNcgfNr+OnFdSk/Z1dATXvT + TL0E24eBuKG6jkcCCfAZMF47lg3hr5+dwpeP5uAZ9ckNSGF6epr2l+euPue2LgBf/Gq1ivW1NZnpBrcX + P79Swrc+XJWxU1zVZtN+HaQfl0HhNTIAXGNOYo1YwI1s1EcHHcGr+7lN9QSmYyEkCe6HoyGh8WpWTnen + qbv2OW0uId3WBRAa7wCDrhqvXSH/+v25Zbw3v4EPSPgvrTexWuqgTmiAjUuAzi9N58fQ7CVCNScJYj85 + lcFkikk0XgSk6ahHWXNDmk14bx2NI5OxqTu3aH0OhjGhp8TDQMotQh8FEv4Kzq81MEcIpEbCP6Q3hvxu + cq2CUkT0IrcEPzCBqVgYkaAP4XAQXrfy9e8NYekOpY6xe25eU2Y+Ms2Yf3hxI1auWHN7jLZrY/3x7/I7 + MU40YgZqh65BoVyTQOD//duLeON6EeWOYlSqQxw5RqeZgQs8EsIvS8COjsmwF3/wRAb//ZlJ5Oh37haU + y2UJYYbu6t7eUQFsbJD1JwQwoI232iTrf3oVP720gUXSuDzAQW1eR095OTjV0cQEiTz6KEUw9NhEFE9N + RsUS8ajtA1NZaVPt8fqloMEi69zHmM1dKQDdmLzDFXvtNkqVBtbrLbKuNWlcydTZ6yWm99Im52YVXlZu + XuxNq2GiLxLcP5GPYk86jUwihmAgIJbJbUT47bSObhF8xrNYZm7dvqgjA/LXW20sFsq4QBD49DKPACvj + ymoDhXpfEIiXEEgm7sHxyQSep2PhoOPx6Sz25tMI+Hyie6QPovZRWkqNKwArBQjNyEDwsI821io1rNYa + XL6BGUJ1HMxlV8MjMwdNvsdHVwAyzY0VMymZtWobf//ah/j2B4u4uK4Gz+jm0Jmxeg27HuWRWJJFGyFM + 9/vkdAz/88VpPD1FLp3fh2g0inw+pzpA32GNxQA2N7/kANPq6irqlTI0gq2/vbGOf3h/Ge8u1tCUia4w + YKvLTg3LHuEZ6LpU7YX9HrLyftqQZPUP5PDMdBKzqTASoSDCEcUw0zSbtHB/Ysh3Xk7FwJz5Xr8nhJ7V + coWErYjTBLE/WKpKufNqtYPOQPUQDEvJbhD7UhzIjOFzhyZxck8eMR9ZfFFuZP3Y13cQacYotCZ6dpCk + 7H3K6Ikgb09Z1Vavh2vrJbxzfRVv3NzAefL1F2vs6w9EKrhH4Ayhj5Ozcfzu0WnaGCmZdRiPRSXmwBwD + az7dPQzxgHW8uoO9qQ5eHymU1OHOxWSVF0tVfEjX69xKBX1y+15lrsP+SUxlUtI3Qko97mHY6BjN32yV + bm40cstqpHBeP3cN//jenHSi5uYhMn7GGDxrDYdxEoYeAdKAqdxUqbAff/XcBL5yJIeEz037LoQ9szPw + yfW+vXu3bRBwZEybXV5eQqNWx8gbwrfPzOGbp5ZwrdRVUVe3GSV3QDqCyhyB5EmzGW7UkQmTYMQlVfHk + dAYz2RRZg4AUkqgpu25jAo5uETrMXgFyovchCHhLdyGn8BsQm0k0q7UmLqyW8fqNolh9DqxVOwMZzuGm + 1ybCbhyZikou/WgmICO3uHgnk4zLeblNBp1VGak5Eb55J23Wl+Xn61L2yteg1+mgUqmi2GhiqdYhqLuB + X19Zx/nVGuqNAUakrHzkemTI9eAe8i/uS+LlPVk8uWcKWbK8HrrQUh7tcsw7AO6KJ77pqtkHDDVrhc9m + IB19G1ghOH55lUeTVWVmwcXVOgmiC199Ko+/evkont07Screq6rWrO++8wHYA1M2P6NJ6XS308XSagG/ + vLSI755dxhtzVdQ7Rktx13hQ9ZGB/+aFMVq8J8jd+91DCfzFkzkcn0ggFI4gTiggFo8ag0W3P+9tFQAL + AzeKqJD15151c5Uu/j/Ssr+4VMBasy9FPxa7z4KCajP7abNxa+pnJ+MyiPJF8j8z4YDwyiNhNV5bUfrM + YKFJe3Qbn/HJxmnNRh2s9JrtDvn1JVwkiM00XobZvJlXKx1SiOqih0jgcjEfjuZCdH5pfPGJPchFfIgF + /YiGIsKgkyjs2EncKU9tBP90BW85jci/b1Tr+PDmIj4ki/reUkPSjFxIxIQeFqYk9w0gwX9qOiojwE5M + JbEnkyQllDSOQzOEzpFl+BjkCHOWnVQW0nE2WtzRqIi3r6/jtRsbOLvK8wo6tHd6wjR8/mgK/9cXj+HL + x/bStQkrrsM9f72DNK7bQi01Y9yajtupFSr48Zl5fOP9BVxca6GrDe2xZybjVNcfGQ9ALeUmMjPwaDaI + v3l2El95apbkLCIclTwZo0AodNsg77YKQNp986CPRh3lZgdvzpfxD6dXpICkyf3+jLJdFcOyfVV+OBvy + 4j88kcaXDxHkJ82/ZzIrloin7riM8dqahXudfhruyTp8nGVafcWc60ujDq7Xv7pWwTs3VvH2jYKk91ar + ZOE6PF57BB8deyLkw6E8KTdCNM9OJ8i1SeHgZEaIGG6jVl/xFhycedgpsi3qosaKmLgleKfTRqXeQKXV + xdnlMn5xYQlnSAndKLZQlqYhunQLykf90qHnWYL8T9PxPJFPIBOLIBRSEX4OONopMDg9DDsoZj9yx8V5 + eOZASCszPr52F5fXa3j9Gl+vIi6R9edWZhyLYHLXVNyLp/cn8F+f248vHNmDZCIuLMN7QXWbdsf4IwY6 + 6JO7xijkrctL+BYZqZ9eKWK92bXLyx10dPXmRwAJWEkXXbIBqZAHf/1MHn/6zB7MJCLSl2N6ekoGityO + FbSNAlBtq25evyHU3xJBqh9dWsO3zzHzigRF+LsuI7Vjp6r4hnA//r3JAP7muTy++sQk9k1MIJ5KqYCg + o2edZnKBLY/YCI/ddwWgjpehvjrPAfmRZLVKNazwoE0S/N9eXcfVQpNgbRf9gbK0Qb8LEzHmzUfx8r4U + Xtqfx6FcEvEgT20JCLw1Na2z8nBcATiYkOa5morBCPS1O4xAyiRMBYL5BKeXajg1X8FiuY12Xw3KSITU + eLMXeMLR3hSO5OOYIbifjqmYigT52LUyPcW7VgDbYC+DDMapR+7XV2/3cHllA+dIKb23WMH7CyXy/TkW + 0ZeT5wrHvYQAn+O5i/syMnH5QC4txSofXwGMPykmRGeacBMLhER+c2kFXz+9KB2V6z2jQM0kBhn09EdD + Adj3ilEAAUH8waEU/uLpaRl0y8aI04FhHi3uupMCGJACcJsKwIh+kx/MCmBIimCxPZJJPz+7WBJlMHKN + sWVgBbZ0VV3G46j/4kQWf/zkNI7PTCKWSFpti5xBvu188XtapuuhOYgnW8fUYboqfH48Wrs34Kh6FzfW + CV7Pr0uV3HsLFUIBDXR7Sjl5PZoU78wmfYrDvy+Hk7NZHJjIkp8VgRq06dqWSKM7jtPRUtG4eipnrmiu + AzUPgCD/+3OreOPaGglWGTcJTle4PRcpopDfh2SUOfxhfHZ/Bl+SCsIEYiEmT3FfBI/BL9DueB2tuMcY + R3OcO63DZoL2yDUqN0hJVmq4Tsrx3fkNcpG4eWgTRbK2+oCLi7zIJwI4mObegVF89qBCgKlIQM1j4H4C + 92HoqtlCjF3WaytF/OD0HL51dhk3StzM1NgbJsra5APcdurUQ7DMfe0hl+fJfBT/7elJ/P5hHgIbQIrk + LpFIqBoTx/k5z3lMAZgnz9afp/xy2y+Odr+/0sDfvXsT78/X0WLqn9v8MIsYbjVrZV8zSC7+y3vi+Ovn + 9+Ar5PtlUglp3KG57PSP80A+zritzRlD3UFNVQ84NvRIcebZPyrWud++6n/37mJZBnBc32ihRL5rtzcU + Bcv9CCYJzZzghqNTETwzGcex6QmkCcoyzFYdce0A4rbHvzmfD5PNN5CNyy3WSrUmlsp1sqo1/PLKGj5c + qkor7jYpXA4mxqJemft3YiIsHYOens3hYD6LSJgnHLksX9+a5HubS+kMeo5Pm9WtlK7ib3IXIU6FNrFB + COlaoYQPlot4Z76KKyttQoMt1Lm4SOOmJm7MpiL40tEcXpiOYZbQ0v58GnluZcbpPxjFRc7OxTu4hCU4 + 6GKjXMX7V1bwD6du4t+vcp8Ko0UdhgYism/Cw9JSfMu1acAjdwrOhH34sydzUiU4mYjKuTErkNmB5jXa + vFe3QACQqquFxUUMeh2Z7ffza2VCAEu4yRp1k8iJ/rGaexq6gAQtFfbiv5yYxF+9eAAn908hHAiK/3+3 + HOV7XeaIcg0OLa7ZZGQWfs4bc8CIG3Vc26jggyVu1MEkmjpBWO6Y05d5ez4S/ETMj33pAJ6fiZPVT4t/ + nSWLn0qmZIqw2709ieaWFuZwEGeMQ2M2W5sEq95skVVt4cxSiawqBx0buEp+da3ely0b5PFfMR+emY3h + y8encCwbRS4WJCWUIOEPEkLZrpbgztfL2SvBZh6qFu4jaR3WkTr85WIZF1YreIegPhcXXS90UK0TKmCC + FyGkNPn6J8jic2nzl0/sI/eEfH0eWBoJSfpR9TS4/6XZwxF3YGpicbWIn13iPoJMWGuQ6zRQ32+kq+2K + 1FsVwEOjFCx3Rv6QHy4Q+v0DCfxvL5AbMJMWOZ6YmkKaXPDt6mmEBaxiAJooAA5CVas1XL12TSzgfH2A + 751bw/cvFFBqD2hTjgxf19QkiuprX1nl23roCSb9/OnJGfzpM3ulh7yQQTx3R1G82+WQdev7x/eXJqQe + ThdVyeovFqr4YJEEbbUsI7eurTdRZRpvXxf4HOVcOsF95i28MJvAU1MpHMwmkIkzoYcEzmdM2b3lOLZz + Z8x8vyYQhCP8HMSrkyJaXN/AVToephS/T67HJVJEhVoXbVJCTJ7KRP3kO7PF52NJ4tl9U9KoIxjwC7/A + rCUwzxPbzR28DflJt/6rG76++sguCf/aRol8/QLenC8J4+7SSp2UQUvKwfm1aUIlx2fTQuk+lvXjWC6B + g4SQ4pGwCk4ZnYvtw9PvC73bOEurj2Cd0NTl1Q3pJvzDc6uk7BsKcWnm2FPH7tjiujwUCkAO1jlDQBfD + +xzJ3F8+N4k/ODxB7nsXmVwOmUzGmB9wK/KmH1YAAysIyJCUhzRyy28O0r1DUPTrp7nqqiLwX7Uosxsy + mhbWeMDITeoS32Pq70t7E/jLZ2fw6sEJTOcyMr7K5do5C7CVAhhPM2nC46/Wqri0tIrfXFnHLy5v4Hqp + LoSeRnukhi/4XUhFAziaj0gjkqcJbrPwT6TiEknlhgs+M4C1Bca+kwIwy1l59l+t1cVNQiCn5tYkWMWD + PxdIsGrSWIVpvFw6TH70dBwv7OUiohRmCFJn4zweOqym8WjOmLhxPB9DAQgHglBJr0PH4NawRJD/TbKi + 78xxB+Mq5kqkQMk94vRfMOiRwZVcuv2lJ6bxmYOT9LeHfP2IXCupL3DZnAZzsyqQdv8UgLrOqjlLldy7 + 168u4xun5ggNrKPSUv0XHy0FYGTgjBkPLpLPPYkg/vh4Fn/19DQS5BIk02kVB7idAmAqMCMAfrzJY6oq + VXhdHhQI+n3v7AK+cWZFeO99wfeO7iuaDWktiquQWUZGZy5d4OvvHkrj/6fuvb/kPI9zwad7ck/nODlh + kDFIJAIpipJFm7JlSVSwRCXLsn2vfe7eH/bsL/vL/g179uzZs+fec9eWdWWLtiRa0ZZsWZTMIJIAiTTI + YXLo6ZzD9Mx0b1W9X+rBAJihQQH8DkEMBoPut7/vfaueqnrqqS9O9OGJ8SEEfF7ZwNaBFv/Rkdtqqm5D + WE88b15GKolqrcoA8+HL5nJ44/Yivv3OLH59LY5cpSYJOOX1FY13gmLX08MB0SPo87npwDnRQaiFE1ei + XWAVPWn+YsscgKlzX5dSFcPpaCqL24xCKPxgyH9tpYhkcV1Yh+zRQxR67O1x4QgjENYNGOrBIKGnFnoN + Rh8tba2GAW0Y/7NMhdlhiM33hi+Z85jPI0HPPlHdEHT0yrVFXF/OilT46pqauOxz0r0KduEgrZH7HU6M + 9GCsN6TEWds6LKItMBuArGSe93H+onazlYJQtYalRAo/uzKHv7+wgMvLJZQ4FDCqAvfecx8IA2Csu24S + u8j4eWgvf3TMh7+gMGCcHJiLjDJrBHDOaqvLCAG4G5BfhT1lIp6A09GN20sJfOf8An5yM4l4QWP/WVCn + Ydw3peB0Vh//QDv9tsvXhS8c6sULR0Yw1heQPvh2oQA/hJ3QUMM2WHKL35OJKRx+OMkTiUoqHSrOYlcq + ZZyZiuJv3r6Nf7kSRba0Jhl+d3cbxvzdeGbYj2f3RqR5J+DqlsMmTSwt9qbYtWH5/91Lad5UG1I3Vwo9 + eYrHbi/FcHEhSZCaqbIEp9mrsmdiMkdHC/q8DpweDeATE4MY8rSjjwxQkKw3j//Sn7kMXJE3sxmox1rV + 2szy2yrxo198+NkwCfuxtoaZaBwX5uN4m8KRS0sFzCVLKJZWsWG3q4Soq0PKoNzhyAZgF8X6vQGfUI2l + ycluMh71ZTSty7xTW373YVwNPYHJBi2bxeX5KH56ZZlCgQTmMmXUNAKa9Xl9IC/j4TeE8cjUbhaAZfr9 + kwMu/OcTfYQeQ6DDDT+hgN7e3i33QRMPgDPkyVQSy0vLZAAcomL7nYtRmcpSXlX0yq00NvUNqZ59w8gi + q9I3TzhtxYl+L77yxCCe3t0rm4YVTDePN34vZUBOVnEfdJog32yiIMy5oLTABuH3++gQt8g9Yn35mVgS + v7yxiL87Ny+xLI8QP9jLw0TdODYQxN7BMPweF0F9vVNOlzYzP63ORNuyLm35HPyLa/rlUhEVOlwLFNv/ + bHIaZ2eSFOuXkMqvgfVB7ZLh58k7Dpwa9FOo1Isn9w7C0cpViDYlxd1ibZ6xdNNZeMUaUx/b1eRRh39N + pMxSuSKWKG7m3MibdxIiWx7N1yQXwZRnBxnJ/T2ESCgkOdbvI1QSRNjVhW4ystze3N7RZpm7qMqnBvPQ + oh9gUpEfvgHYTLiSUi8Zfa4KnJ1ZwT+cnxf16lRlQ4tULUigaSN/sC5T+l4zvbSn9gQ78dXjvfjE/j7Y + 12sIhkLCCdhqzuamMmBd2H/zs/NSs319PoN/mFzBGYoBaw29EUT37iahpNGUjLAJt9+4ycJUaiDs7MQf + 7g/hi0+M4sld/UZC0LYJju3UCOg14KmVFF5+5w5uRDMyHfj5Q8PYNRARkg4f5JpMveUMewq/uBXFQjxP + cbYTRwd8GPZ2I+L3iidrb2/Tavqbpl6oj6e/6T3ZVfoUIP77GN3L21FWTS7iSqyM128nsJgsCrOQL09X + G4aC3SLUcWLQI0IdIz1h9AT9gjwY6ouRNJK9NhN9NDW3NWUCmjrn7rVGJvTUCBLfWY7j3Cwhk2hOWoqn + okVkyOvXWDSUacZ+B6EiQkjjERUaebrR4/MI5Oe5i4p0ZDPeU5UWYdE30MheNo2S+77BfwvLTxZQFzZc + lQz/7EoC/0qhALex82cs1bRpM5sNgM7I+gBcRouDBQIqbh2F3WSwP7E/iD95YhjudhsCwaCBADZfKgSw + GIBUMoWFuTk0CNL9+EYCP7iyIm2W63b95moGQG9Xva8BsKvie0Np4B+IuPC1J0fwwtERRLxK70+8myWR + Z8xEe8BD1vKNggC4BfXCbBT/1yvXcGkxg4/tDuHrp8dxlAyN06FGZ0tz0ypD7jIWcyXyDAUEujsx4HfB + 2dlB4UKXJo6hr+V+BsDyteUPjKBYQKVMh6tKD+KdO4t4/c4Kwekc5lJVLGcV3CZAhJCrTRKOTwz5cJS8 + KrP5+uhgOZ0uMb5NvfoGorIcbG3jbh5Ntnl5xtd19UxY1IS1HVg0NF5ax9vTMbx2cxnXuaWYJxJT/M80 + Yy9topEghSQjPoL8ARweikhepKOtVRKiNi0vor+xYXQ2sW2t8l+blcBU/sHCaDOmSb0XK7HJAHDln6sC + 5Bwy2Rwuz67gJ1eX8AsKZ3ns+Ya8jf0uA7rVHx/Hy5ghqHsH3TnQvnMT6j094sV/PTUsrFyf1yeVAO4N + aT5b0vxmGoAKc9DTKSQTKWRr6/j2xRX8/HoMy7ma1vxjM2Cm/PNm4bW7bp7NEqfwhJ/uznb8Lh3Orxwf + wqmxCAJ+8iTtpgil/u+b6tM2a66xrr2vyvay5+FDnUyn8dadZfyfr97BVLKMT+6P4M+eHpdJwd1kAFTZ + ziaeb02abBoyDpu9K78/IxGzTmqSTw2enFk4Nja03pJqa6hBIBzHc4Y/lsliPkkHPlfFr26v4OxsWpp3 + hFxE/95L4cmgv1NKpCcGfZjo82I05IPb2U0Hv9Ps3LvXZa10mCOYmv5a5xvoAl4NMpIbIkveQLrAXj4u + 48ivJVZV+ZFCvWypJveDhUT44B+QsMgjtX2eDOT3uGUD2e3b4T+YVSFDzFi/m9o/FXYh91/w84Aacsqj + rVh0Vomm7JQRqj8jc+NwyCrzESgUiKe41JrASxT+vXoniUyVx9jZNQapKAyYrc71nb31o7yMKpwxUash + A133Eqr8X08P4fiAlxxcJzkWN0LhoOxzMyhr8J4wk4BxgqwZMgDrBP+mUwX89TuLeI3i/9zqhsr+a+9o + NQBbsflMIo7lN0IBfMwHvV34xL4IvvrkKPYRRHe7nEoMxJpaswpP6mw1Q2ZcHX5O/K3R71ny5MtxrlXH + 8d/OLKJC6PrFiQi+TEhj91CfJBxbbOaH1uNzfa182e13e3vlSDSDY0lsGUQjm652tCEDOMrVGlYo3ry6 + nCSvmhSO/BRPAeL+dIqlWerM72QU5BYa7+mRMHaHKewgA+Xsdkh2v6lu/sDr7kTk5u8oGu8aqqsVFAgl + cXPRrZUs3rgTxbuESrhrLsNSWmQgeA4AqzWN+rukdHuK1negP0Df60Z3t0OUZq2H/0Ghmv7c9D5+673j + PzG7MEUoJMl6BnR/2OZFXJ3o8brJaDtha7UgjB1cTXZAs0UspFJjtmWpiu+dvYV/eHcWl1fKWDVGptfR + 0EIVGwes9cZ7AyG/zWuzwzVSLmJOKaztxF+eHMDzB/rQyZUCCtd27Rqz9GJotPgGVBmQvp5YWl4WA2Cn + h/3uQhrfOrck4h+cDLJa5M2bYKs66maeub441v9n1thXjw/is8fG0BPwaw0stqYH19QdqH2hf7mhtYDe + imUwQ55sPp7BRabQTqURcnbh608O0GuPoDccEtaeOVQTTeu+15/NJTeMiTcNbQ02reYqpBMN8idzeczE + srgSzdDBz8gAjoV0iYxCXTyMy9GKoUAXjg64JNF3fDiCYW6OcXRK04bSRbBt63AZkFUn1Vgz/vylNlat + rvV0VAmVcGlvJp7GpWhWaM+TTDPO1ITGyyUzB0H+YX+3hCOHmWpMB393X1jyIqwwZBMG507q95qxbjR3 + fUp+ZI3JZHbMxZO4NBPFBUIgU9kqQp52fGQ0gJMjEfQG/SJRbrJGd3AaN8c/2nOUZDEZwnduLpABmME/ + 30gKD2RdUIAKRSST/j5WKB7qZdFg1HG5sWYKMyO05750tBcvEtp22xnttGLv3r1qopYleSwIgA0AhQET + CwvzSJMBQFsHfj2dwkuXVnA1XsJ63fq+9ydKbIUA9Iehe4AgLe7ZsQD+M8XphwaDCHhdAn/JVRtlJKvC + /+aHwdnrRDqL12/O4l9vqFlx6dKqjLva3+8m+D+KTx4ZRcDn33H3mbZU6IxG6wfRvRnDVu6SLK9WEcuV + cG42jjMzKTpgeYr1y8jmazKwop28fh951KODXpwc8uMgxfxjYR96/D4JTVos1nirqb/3XlxDI9aof2Oz + KIwor18XRSOR5yJUcm0lLTMLmPZ8J1VCkuXDag0xOiF3G/aEu3F6OIjf2d+PfmcbIZVueNxumUhsVfrd + 0b3T7pvehluXcd9Vujf0/uUa3phals69GytFUfFxOdvxwqEwvnB8F46NDqjekR0O/Gjc5Q5NB8JbmBPB + K7EkXru5iH+8HMXrtMdztbr0POjiGnry+nHPBVq9uGLiWhSeCMF72+14fm8I33hyEL2ddbS0d2Dvvn2G + ATBL1Zom4FptbWJxcR65XBo1W7vQf39wNYHpTLUpJNqWAdDrk0bZx4IK6opQMkIQ5fOH+/H8PoKaUn7z + orW9VeONW4tHip9uvbhzLpnN4uztOfwLbaKLy0VpRWXvfHTATd5/EM/sHYLX41NyXDu6Gs0wUl9FQyWV + OJmWL+QRS2Uwmy6QgczjN1MJXFksytRdbtntIG/pow09wFOOeO7frjAODwRlgovLaU7ZNYapaFr2OzMA + OrK2GYM5+OJcBHdyJsnrTxFC4qToJHn+i/N5QiVlFKqKDBNwdmA84sK+iEM6944NhXCAQyb29q2tYjj5 + 9536Qeu9q8tIciWoulpbw3I6h0vzMWl4OsMkKBlJTsZyvYGOrhb84aEI/uTUbnxk/4hUiXbaN2KOCrfD + NAAmc2Od+SClsgxsfeV2FN96exrXaS2VupZg1YhLlqjlsb1MA1DXHJMpNCvycK12PNHvwl+cGMS+QLvI + 7+3aNY5Wckpo2O42AHSoJlZWlpHPZ8gq2vGtd+fxLzdSWC6uKe2/+yyk2SA0NA5Qw/JGm5KG9LuTFshd + dp+bCOPjB4cw1hdBJ2uY8SyALTKKJmphbv8GSpUyFmIJ3IpnpT01WahJO+qItx0TAwHs6g3D6XKZlFTr + Cu/buafF/ZYNwarGbHSq5EGqtQ3MrMTpQMVxfilLsWRetANyRZVc5CRav68LB/o8osHPvdl7e3jKkVc+ + X1urLs9lXYtxNx/44E3atW5c6yLPJaVHOmjr9P2pKKGihZhwDs7M5zCf5jBAVSCY0MM9BoeHPXiO4sMD + IScGvA5EtAqEzd4qyMBus9ianaxPV92pK14+t+hmimXEi6vSUPSrGwsSIi3lOQTZUFnrrlaEKQT42J4Q + PjUxjBO7+kU7oMW2A9XihhV92JpKpDZz24kRYHR0ZTGGv371Gu3xGKK0x9flZ+wWnkvDuv0ev8vIr+kJ + YWtVwCaJwF3+TvwXMgDPjPpl7mQwFBZU12I3e3nqQgXeWJ9sbDQmkinW/09hnqD0fz8zizfuZJDmh9Rq + u+fNaK7da0NAmhKDNkud0mZYaY623B1t+NiuAL56YgTP7OmXTHhbe6c8+M11LF06RFln1VRTKquhm8XK + GsXba3BK+WxDqg0y0pphZFMm8sFx/2YQqxKOqygUihJLz2UrODObwFuzKVyPFZHMc895XWJlP3l95vAf + JcP2FHn9iUElhcZKrQ4N8osk1maVoHvTCu5enT4eiu+gUKDX5P1ZvZgHgeTX7Pi3a9P4jbQU5yUXwTMC + +H09jjYMco9BrwdP7wriqd396PW5yXB2SPWBFZuakYVuePUc0DYIRryp1jckP8LJ0dnlOCYXEriWKONG + okKHP4U4C62waCwbIzr4h3pcoqLM4iasG9kT9EnPg2jbbxcENKzwX9t21sS0flgaEPbjUjyJX12exXcn + lchttqpUrhqP+8HXLysdVyffWqZicwo1QuHcX54YwKcO9RPia5fuUuYDiFScsb8JAawRAqhWqhPMBWcx + zEuLafyPs/M4v1CQDC3H5tu6KTa1COMmbjGFxabHr/Q1+UKM+rvxeaYJT/ST1/bB5XEbTLy7nq9NB3MN + TbNf/R33rHNc3qqJjgiBhok0NruB45soqtsgGzW08h5D2FQui5lYijZyBm8Jf79AB6uihDoayqv20UZ+ + eiyMU7SJd9Mh46GfkUBAsv8MZfUuSBMRbU43bXuna8hPDSpZLZdQqtawmM3TulJ00Cp49XaC4H8Bhcq6 + 5G+6yIBzko2FRI4TKjlBCGm8JyACrVKBaGnRKPKWEh5sho7mdo6+fti47l4mr1+iw5+kcOOVq3N49VZc + Yv1kbhVFJkG1qqlQo4EuHOHE6FAAe4Me9Pvd8Lid5KU6lYaAbfvy4Ztpx02DTPSeBO0n2QBkcyVML8Xx + s2sL+DGFuzeSZREPYSZjw4ABj3EicDPRQzcARhmzIZODvnakF390pB+hTjs5yir279sryFiHSGIAarXa + ZCqVnihrcO3NmRi+eX4Z1+MVrG7c+z5smQ/Q6MBqcZsMh03PqivKKP9YF22+Jwc8+CzFfx8/MIB+gu6O + ri4tdm+mu+oEIEU8suxOORB1i+CI5iVtMH7G7Bq8dw1bv4Q0tLaK1dUqHaAWXJyLSuKIpbmuitenUGBN + jaByk5U9EOmWz/DcwRGC/gH6TJDxX9y2a9NZcpZ8iOVNYS703tdmPj8n+bgMmi8VJNa/E88Jbfv8Ug63 + yNMu5HhIaE3eye3sxN5QNyZ6u/HEYACH+nwY9Dql/KqLmhhJryZyE4zSrDWpd6/16QYzlc1QiJTA7UQB + l+MlvDXFbMiCdOOxiq+DjHQPHfwnhvx0z7zSdj0a9iLsVu3WKveg60a85wyE6Rm3eA0OA5gHksnkcW5q + AS9fXsK/T2dkulDdbiLWx/qyDI8xxvLBgrhtKsz+9L4AvnS0HyOeDlTIUezfv0+FxroBaJABqFQqk4sL + ixM18ib5tTpeuRPHty/FMJMheHsfUsQ9DYCR8r+fAdASV/T6QTpEPOf8a0+M4On9Y/C7u8Wb22wPMABW + FpxODZSfazSv4QHdX9CgocpbQBR6Utm0aNyvlBt4je7HGzeXsUCxfmZV9fMznO6lm7qbDj/HWEf7Azg4 + TFCLEAwboxapm2vsxk08Asvb4u5v6n/RHK7oho5jfUY7rME/FSWYv5jCu9y8s5zHbLIqTU61+obMK4h4 + OnFwwIff2dtLqKQdYyEfxfp00Jj8xI1OnIg0RDOxpQFoXmgTb88wvEyuqpJXLVZWMTm3greno7hE4cf1 + RBHLtIeYXcj33eNsxXigW+YWPLu7FxME90PuLhFU5SqQMcjC9l4YAJtu6N00iab7ycaIiVtzi3T47zBL + MI63ycCX1up6f92mPb3peZltjo/m2tIA6OtU56uLnu1HRr34ytE+HAk7JOzas2dcSEE6TV9yAKVyeXL6 + 9u2JOse6jRb89HocL03GsMQdgA/7M1pupp4RYL89RrD5c4f78JWTezES9hEK6DBLeIazN4mbtrte8P7X + vau7etykxa90wOJ08C9OL+LsTBzXU1VcJg82R5uZR4Rx155HmmNcONbvFt0ATjr2+jzkVbmXQNEtbfb7 + b0L1nndLcunGyNYkXqHxDtbUYNICa+EThH3j5gLevJMSKe4VelZVgtyci+jusGMs6MDxIR8+RAftQ3sG + 4GqHKAV3CJtP5SL08elqI1nQSMO8Nw3Ni9q0NTQsS13XRqTnZSBIHjOJPN6cpoM0m8JMsoJMRXl9J6GM + Hl+nsNOe6HPTushYDkbQ4/fKIFh9NPqDczJW0Vi1rp3kT/TnrL8m5ymY98KakD+7FsXLl5YkoVszCk/a + eDtYJw5bKgaPaalAP9zkA+R+f/VoD57udwpCHh0bg8vlFoSl+BGYtGVz2cn5udkJbh3MrLfgpQsL+MHl + FcQr68D7IOCgs/0UfcEumWAnrZYn63zjySF8eN8AeoM+2rBdSkSy0UTMhTleyvpg7+fh5SeM35rpxWpF + KnRSh+zq/ApefucWfn4lhtlUCcVVzYM5WDegGwd5I9PhnxjwYyjoh8/lEMkzHn0Fu12TvWs0gRcYCVAb + NjUYWtZhwi0r4Uj3/AkyTNzjzsNAJykU+febK7hOsD9XXpeX6ibj1CsDSpwCr08Mh7B3IIJwwC1aA3ab + psNgHGrrvdEPmt34nmkU7AaRq65wI6EQdfCT+SLmkjm8O5vEO3Np3KAQhKXUy2SM+D27KPbcHXTiQ+Nh + PDXmxyihkj5uIWZqcUfng5mPBvhT+8Vu3DgtR6Hth+3mUera//l1JMFLBowTyGeml/HSmdv42Y24JAQ3 + LJtVQmsoBeyGzUxHM+mqsc33/W1eOjJvo2XtJ0fw5SMRPDfmkx6TgYEB0QjkEFseKROBstnsZHRleYLN + wUJ+A988M4N/vZ5Adk0JKj7sxenVApUKUDTdFlpNuLsdz+/14xtP78XRkR7JBfChshvhjSWJZ9CDt/8A + 9AOl+Agb4vHZkLRo3Ht+eYazk3PL+Nu3ruHlc0uIF2vy99xifKCH4D4POhkJYdDTBb/TAQ9ZU1bjbbE3 + y19BX/J9lqgcyt3afHpqQwZt1nggCXn+ddVcxKjkHB3667EK0pkKVtfX0EKxHtf1d1OszzMCnqRYf0+v + D/1+D7wul0GqaU7yGSmyu9bS/BPQYIISXeGGp1U6NNk8e/ykTEa+tFzC+fkcpggl5fVYv6sVg3TwOf/A + bcSsGrSbwiQHI5Ruh8yD3A7tuYn5CG2KsgXPWXia294HTfdgoyFIZj4Wxy8uzeA7F5cwuVRAcX1DK62r + qo11pqneD2NK4T1eBkC/+GSNkMFlavwn94VoL3TL4FA2AOKs+JOwASgWi5OxeGyCaaPX4iV88+w83pjO + oLBet8y0e8iXTffq2kOkt2qnL8ZCXfjTU6P4xKEhDIW8Mk+urVVvDmmmC+/oEse1IaQUvjU8fIOFFLiz + rU24B2ozco14nnUDrs3gpfOLuJMqo9/jwLFeN47yuO+xCEZ7AuiiG9iiTb7Vqw1m956l493Yr0Yhakvl + IGP8tRYCQNO6T3BzEXn+6cwqfn1rBRcXs1jIVpCvbEjvt1OERNpxkKDeyUGfDAjZ3RtC0E0Hv7NdDSux + tzTrOFhKZubAIKPM0sQ21OPpDdEPWFUkIwo/riwlCeqrycQsEsoZ/gqPTKNbwfJgB+jQf2h3jxiAUb+T + jIEXPvL6PCDGxom+bSNLHZ1Ys/kmmttx92Bj8x9ssify+RyuzUXxT1dW8MPLy5jNcq9AQyWWDbRoci8a + Deu9ejwvvsM8G5JHhn3hcA96A1xl8Qr6UhJhDVUFWFpamqQHO8FyYNzE8j/PR+n3nAwAfV8auC1hr9Et + pv1ieemP7vLjj44M4MMUvwYDXunp5w2ja/+r2NWMsRU3oHHfDL/qBmR9/ZqUopgb7yav3kdekrX+ZFy2 + TdWIeSrPneUkXptJYIo2wnjQJWPO+l1dAl9drm6L9JXdCE9MevYDDIB151h4ADqNlz3s6vqqdBZeW0jg + 7FwKl2NlGcQRy1bp7zbQyqU9Wj8PCDkx7Mcxgvx7wi5anwd+t+qy1OWv9BBHf0PrbELdi+n5ACPnYgkL + eE0VTozmspij+yZMvtk0GaMchSMVFMgYsTC0w9GCfq+aVvTUWJC8fo+0ELs6eCZAO1q1vgyTXbwT4hMs + OQtLKrLpJbbLpDRfV3oBWVNitUKfL49L82l8+8wUXp3iEXg1c7JQ0yOzdA4+1gaAQuuONnyeNQKP92Ms + 4pNKC2sEKi6AZgBu3Lg5SZB4oliuigLs316K40qMZwDg4Vs5SxFA8ZjZEWukBPrFw6xYeur394TwhSeG + 8MSuAalVt2pCk3oiqGFphNmuARDtADJyd6IJ/Op2FAGK3U+N9qDf5xQFJH1U2Gqthly+hFixLG3RPe4u + 9LppDbYWQQxqLaa33zkaMS2eWSFQCchqpYpENk9ePoebLMVNB+2dOUIBmaoSEqGb5OxqRy8dNCk/Dnvx + 1K4+jIY8MomZmV7tbZ2ah1WWpW68y92lNeMgNJrRCcfHQrii38uElpaSGVxbpPBjPiEzCm+RMYoXaqiS + 1+eRaSEKQUZDnaIdcILr+hEPhsjrczlUJxhBH1qybchutlobpV7tM9ktmo87DwH0yoqpYSDzItbWsJLO + 48fnbuH7l5ZEor2yviGlQWsOypKY+A8fh/fz4hWzVPin9nFPwAAODgZlX/j9AVHkMgzAzVu3JikQmsiV + ynidNty3yQDcSpZQ2TBHdz20RamMiiaTDcUHULvDYLmxrtmhsBMvPjmEF0+Ow+9wiC6eOV/eFL96UPLP + kC5vqB70dK6AN67P4Nvn52XjvnB4CH8wMSobVXQDGqpzTLQDuHuNltTGfeptLdo72i3kxqYmZv0dtdjf + ZumFN3+k0TA9q/qzWUdn4xRNpHA9msKbs0lM8owAHlGWrhByqUtSJ+Shgz/kw0k6ZIfDDoL7PgwEAyJ8 + wkZJsQ1bmjycWmHdWIiZUrXdZQ74Ysowd+3xgWC0FMsX8M5MFK+R0by0SMYpt4ZypSYorI0QW4+rHU8M + cAtxAM/uHcBIyCsCMDydhoeW6KXGBxnLzS3lumbhWm0N1bU6ykz24vp2pzaOTSN+mcZ/+3u1bjEANj3R + WlczDyfvzFEYsIR/vZXGdIrFcAx4ZN4nm56gfS98hYd/bVmS1xKBz+8J4M9ODOPJkZDkuMKhCFxuFwwD + cOHC+cmujrYJbhT55VQK3zwXxVy6jLX3gxVpJQnppT0jttNKPVxnJ2/27HgQf3xiBMcHAwj7fWIEVPZS + Z3g13/ut2nx11VvuCWdKLysBvXJjEf/9jWn5t3/89G58/an9cHF5TPdUFnqVqbmh+VBL5lm/yXpW/e5c + 9Ka6NCwQVvViC4uRtQPZ2Mwns3hTpLhTeHsxQ95oFatV5b+7nW0YcHfg6ICTQqMeUeNlr+umcIRhnV5D + N0VDm2v5TX35NrPUaGW81UXJSQmblIpMeCpjKl7ArVQJZ2aSOD+fkhbatXWWK6sj5O0ir+/A0V4nnqbD + zzTe4UiYQoFOeV3p67Cb90GMpzxuvfd+64PDz2xDI+uwyGs8WyQEVMZysYruzjZprBoL+WVUGvcu1G3b + YyuqlVgSiA2NU6LdA/78q4R2VuJJvDO9gh9cZj3MFLIVbpvW52BqvBJ5jY3H2wDQxZqOvzPmw5+eHMHT + YyERx+3t7ZcwQLo02QC89dbrkwGvb4KHKf70Wgz/490lxPOr2EDDQot8WCvVX8wOS2HMeDgqIVhXogY+ + B57fG8bnJ3oxMdov03BU9lJ7mPfRwdevDVGeWRUef5Kg9Uq2Iqq837uwCJ+jA187NYrPHd+FIGdG29uM + A2SDBapaRms3S181LGfbLKo3a+5bRDJt6k8sIrJBXo29bIm87HwyKWO23p3P4Nc3VzCXKCNRUkIi3Ksf + 4gEhEYfQeJlBd3AgjIGAnwxiu6jn2Ox3x9VNsXMTScRcmdUhS0mMvC0LrHLikWvjV2N5IRlxz8NiqiJz + AXj9HgerGrXjcL9bJiQfJLg/QvFlyOuGg6Clqa5k1/I8JmnFXOK9Dz8rBbERSrOOQSpHSCiHC5xvoHvk + 7OrAC0cG8Ny+fgz4vNJZefco9m1c1nKw4dhVlaNIxm85kcUvri9SKLBI713EKiNIy3BRVQWoNxnQR3nd + ywDwyLBnKEz8E0IAHx0PyWcbGByiMMCvJZzJAJw589ZkOOCfSJTX8fLFRfz1uUVhlMkghYduAMwvNsNQ + ozNO0xrk1tS9wW588UgPPntyD0YjIaWcY1B+H1wOYNZcoVjCW7fn8M5UFCuFNdxJFkX59tigH398egwf + 2z+IgMejhRg716w10nsGl8aKAay98XWZRbC2WqUHUUK6UMI8bWoeTHo5mqMDV8JtgvwV8jgskOJhUU5f + lxy04zylqJcOWsgnhlCmFLW1Gu/fXNTbvLZN34AFtegcftr4PDthMZ7G5cWEaAdcjhZxO15EnI0RwUEH + hUH9fgcmBnw41NMlswp3U5zf43XJjMJ2vZvzXkw+oy5699/WtZZolnjjdTAaurKYwoXlrIyk54GtmfIa + ef02fPZ4H/7o2BCODvXC7/Xcc+zVe7lkxiAZZW7+4nLwTy8t4EdXE0KKq4kEN5QB0MLXxgfAAJwc8OCP + nxzE7xGi5jHqQ8MjohEoIQAbgMnJC5Mel3uCYdb3Lszjby9Eka+sqTkA75+M6/0/ENRe8XS04JkxP/7y + I/twYjhCsW6HoU3X/NNbXzLwgj70Ty/cwo8vzmKWW2NZ8rq2gecP9uBPnh7Hqd1DcDm6dyDH1XxtNgBN + JFqb6Ym5PZaZczmKqReSGfKsGaHwnqe4+g4dNJ7DyG2pna02hN08qMQnCseHIk7sZ9qsq1MdtI4uMwmG + +5OgrFwEPQzQvTIn1dbX1eyCXKWKawtRnJ+JS6cjH/6YEHrWYGtVI9NGCJHxGLCP7u2jg9+NkNsBN+dn + OrXmHZ37fC9jZCkqNfVeNDak3ZqdTSpbwLX5JZxbSOLN2ayIlfI6KsxytDMZqxXPHQjhM4cHcXrXAMWz + AaniPMxLSbpXEEukcJacxvcuLeP16TRSTWdCEaUeRyKQ9bLTs+Xu1K8c78fv7w6gVCpidHQMoVAYhgG4 + evXqpKOzY2IqkSfIs4DvXk4iV9XGgD4iA6Cl9iUh2OfuxIvHBvAH+3qwrz+AAEtVtbY/cG16DoBHgTOJ + 5pfX5sib5JCiDcUyVx+hG/LpoyMUXgxKS+zO5Mi1ZVrLeJal6xDTkA8jJFIuVhDPZDCTZFmuDM7OqclA + 0eyqzF1okQ3ejv5AJ46T1f7E4VEc7CVvb2/A51YTlVpFO3AHG74pDaFDWAW1Ocbm4aRZWhc/+1duLUjF + 4Vac4DfrQNR5ZJqNwqMO7AqpTkKOI4+M9CDgdErXJudk1PAUiyDFXQ/y7kXp9089Hx5CWkahto4rSym8 + cmOBjGIaN2kdRUKlHHd0MsvR3SYU59Ojfjy7i8LC4V54PW7VzfiQD+HaBj+vMpYIibx6J4pvnZnFlWhe + BF8aAjjsxr18rA0A3d9DEULRh3vxib1BQZ8jZADCVgNw4fz5SWe3Y+JOsiB86H+8xlJJ6+pRPao6p81k + oXURHGbVms+Sx/74wX6M9vegu0uTFLfdO5mkGwBmemVy7HWzWMwWRZaKNdJYB29PbwCRgE90CXfWhKJn + 8+3GH5sm9GhJPv4cHNPmcgWZsntuluA1HX7uL7gV5+nANUkEdpCHHY24RD5sX5ANQFDyHn5Xt3yODt1A + GYy+e6xqE7MQ1giuIcwviXOrhETSuSKmWJtvMYl35ynWXlEjyYurdaHCujpa5eA/yTwD8iL7yRjxyO+A + z4WOVktN38LJaMqN3MUsNLPo/JmZjcl6DiymOrWclsEkPIGYw6E4tw7X6pKw9HS10sHvFvr1sX6PdFyO + hP0Iet2i+WhjotND3n567wU7j6l4Dn/12jX805VlLBaq2JBeAHsTuntcL1bj3h/swucPRfCpfWE0NmoY + HuEQICSIV5KAb7zx+mTA552YylSk/vljNgBrG5Zs8m/fwtm0dDu/e4uNtc5b8VGy/F84Nii9Aj63U0IB + 5Q3vfyDUYE6ev0fQn7nf9FDbaANzaa+LNrm8jt0cuLmdyyTKNIzstlnqUyVHHgHO+vnxXAkXpxZElvrV + qbQoGGWKNZRWlRpu0NGGXWEHnt3Xi2d39yHUxew+D3xetxoEyibOboetSRal+TOqe9ZcjjT/rxbFo8+Z + 45AvFujQFSi+z+EsremduQzF2FVkKlxyW0dre4uEIAco9GCS0TPkbUcCLnidDpk1197eaqEW27Z8L1MR + GGhK+mkNVzypKVcqYZkM8pWVAi7MxnFhIYOpVEnUizeYg8Ne30uhUI9DdBZODIUxHHAi4HarUEhL2koS + EMDD3acmcotTWPLryWl859w83qY15qobwkOx6UK1j7EB4DuylxDlC/vD+My+EIVRdQwMDooBYOQkBuC1 + 11+bDHjcZACq+N5kFD+5nkBxvWHSUh8VxDECxrowzcb9XfiD/RF8/ugAdpPn9snU0wdDd0MKXBscybTW + tpY24xAriS49dt3e5zW3vEmX1ZOYHFOXGFrn8yjQfbwSzcpkmktLWdxJVgnWroliC8uHcV3/WJ8aEHJ6 + Vx8ODvagkwwThyT21haNyHc3Z2Lz51O3y8wJWGaKCK9hfVXV0xOERK4vJWgtGVxYzotM1yJ5/UK1IcnV + gLMVuyNukWs7QqjrQL8Pu3sicHd3iXqxnYeTwop8tVkJNouvaOgsTysyUPwKPlA8YXgpwZqACRk7fn6J + 0BDdo2iG0Qc3EUF6L0ZDTloHN155cHgwgOEQ8x065Zm3tFoTtjvnATz4+Wo1HForj3KfobX+eHJexo1z + srZWrxtVocf54mczHujCpwj+f25/CE5CmpGeXgRErKZNGYDXX39dDMBtMgDfvbiMn9xIoLSukx2MJ/3b + XrrJ8mqohEs37YwjfS780ZFefHz/IAZ7Q0r3fzvJO81UN7ROwqZw1db0Q9v/vObZVwk1TmSBy47rkk2/ + TpuGVXjPLeUlsRbLrIpCD7dp+snrj7FQB8HaU0MMa4MYog3ud7soHNE3twU862WrbazPDAMaQm5h6fI8 + HfwEhT6sEPybqZjIYE2lKoQGVuXnGQlxkvHwgIs8fkTGlA34HdLp6Ox2y5padDp2EyUXRolzswiHnoDk + z6GmJpHXZ3ZldQ0X51bwxu0YGaEiprnESOvgqloXE4s8bXTgPTjN3AIyRmMhD8IsXdblMCZLN6kF3Uf8 + 471ehoGXsuQacoU8zt5exI8IIf/iTkoEYDeM5qTH92JODbfaf3JfEF84GJbBNF6fHz7h1Th43yoDEPb7 + Jm6lqwRzFoULUKpvjt9+ywtvEvfQom16GNzc8OHxEP7s5CiOjUbgJ5jMQyu2l8DTuwHNEec2013tjNVr + aahhVMGerVQukXevIEmb+dJ8Cm9Mr0izzBzd12J1nTU70UEHjYVEDoa7cXJEDeAY9Dnl4DsZXutSWLZ7 + vOc24n+dbShIhNazTN6WZydeohj/3cWszAWIZivgNE8bvZfX2YaREGsZenFy0E+HLyjNO0zoYWEW8fx6 + Z5yll8AwUAZ6MqnNogoMVSdn/cYiIaLlZBa3Y1ncTBfw9kwKF2cziBbIKG7YRHZS+A5kFI/2U+hBiOgg + ef0ej1to2oZgrHHQjeLqPWoOD+9SicoyFpZiePXGEn50PY43ae2FtYYmHvL4xgA22gOsU/lJ8v5fnuiB + z9klTpMNAIvAggVB3njjjcmBnt6JqxSbfuvtKfwzhQDlxoYGPR8V/L87m2zTJMWH/E68eKQPnzkyjD39 + QeE136sWfBdZSGd/wXqGbTvtLIZB8yFDyZLXTKCJZTMEr5MybutStIzr0QxWchVUqko01ONqJ3hNHnY0 + QLDWi5GgE4MRPxwsysnNMq1a67PNJCNpdQSNq39399tW7Eeme240VPVjKZHBW3eWRKTj0koR8+RtC1xu + 5FHSrZxZ505CFz60K4inKdbvcXaTMeqCy6G8rbyyXZ/2axmJtvlGNawlTyX/vlandbCS8uqaEIvOzKzg + zFxa5icsZsoErdfllbo6W9DP6+hx4qmxCE6OhtHv7Zb21e6OTsXP0EePN6E1zTloNN2Hu1P1HJR6T0Yw + uSyFcBQ+/fLmCr53OYpbdF6qm4bmPG6XbaOBQW8HPn0ojK9T6OwkB8S9AF6fRzoC69wOfObM25NBv3+C + kzHffmcGP7uRQkXnjj8qqqPN9C5KPcyc4cYKMzy37itH+/HRff10iEJCE74XK7AZTtuMdlgrfLNZDMO2 + cgDyEqpzj2cT8oiri4spvEbw+vxiBsuZNRQICfAcYAfFXUPeThwjqP80be4nhsMY8Llo47eTFXYoSKuP + I2+i9Wh9Dw1okPf+CVlJdjLxiWJW5rQvZ8u4tJzBKzeXcYXCEB7AUVlVPstNsf5IwCGKMaeGAzg6EsFY + bxgdZEhZO95gGFrWY30sTeGShUmny20xq7BYZTZfgRBQCe/OU+hxJ47rsQJiRTYKdWkNDns6sa+HQiE6 + /Ef7fDg8HMFIOEAhSZuMjFPzE+xmA5mOMmx1Sx/GwxetafqMDdVQxSSlPN3XKwtJfP/iPH58dRkrxdpj + PUOADcCApx0vTETEALRsrGFwaAiBoF+xXlkR6O233p70uJyEAIr4+wsL+PlNMgB6ifORIQDtN71xSKWz + 5HstjRYEHC34vfEAvnB8GE/vGRRGmL2lRe8mMMuI79F46fV7PaPPX/NBtdac6zIkpIircwt4fTpJsXUK + V5ZzdNC4eYc8G/18kKzvLoL7TMY4PezHgYEQ+gM+KWNy9rqlVe/Vb05CmtwCvdJgayo7W/0dQ33udVAd + bRu4uRDDlcW4tA9PxkqiGpQSJludPGobeVeW53LgeJ8HTwz4JaEa9nuVVBRsRuLRWtnb1MLRnGjUnk9d + 0ytkEk2uWMICQf0r0TSFHHkR2bhNhz9bWhWyk5NHo/s68eSQH7+zv09EK/u8ToQImrq6u9XIcZu1d7Bh + GIC6zYT/d/WE6CKwVoNvPNOd7gazgUo9b1XS5cnKv7mzjL966w4ZtizyPGxFG+2m0JreMKZCIDVyTF/B + b/fiEGCQnvcLhyL4KoUAWKtibHwcoVBI3UuVA3hr0uvunriRLOG7k0v4+a0UyhuapX1kSQDtN5u5Dr0M + 1qAb2k7fGA104guEAj5/bBTjfWHRu2uVYNX+HzcA3CO+voZqlb1mRV7F2aXFonZlBDibnckXcObOHP7m + 7Axev5WUg9bSYpPZBDIjYEDj75N3Gws44aVYn5MvPCDEmoncrgGoK3K/VEX0TgrlmfLIVirIUrjx66vz + tEFjuEEQlanPlYoaSR7wqBib+/WZ1HMg7MYgTyZ2O9Embc5t5nFpKu2bDTNmM5M5kaih6eOxepEgjzRB + 5ZjiOry7mMatWBnxXE2GqnS12RAkr8+EniNkFJ/Z1YPTewfhaLUR8miXmYC6hHrTudbXYDPzDMb9airB + WgMnrafDUhF5LwbAquDAz7xcKYsuwj9emMU/XlzCzXhRGufEANgFnGgGoPHoDQA5KaaTv3AgjC8fDKMF + GxgZG5MqgFSsFA+ADYBDDACXAX9+O4Pi2rqxER/dpSoRyqHbtXKTrgxnA4WO+NCwBy8eG8TH9g+Qt/VK + C2qLZR6guXF2wuxXCjhcyltIJClezYkC0J7eEHycpW9Tct8bmjrv9cUE/urtO/jF5WVkCRL66KCNBrtw + ig7/aYL73LwTDnjoNeyyyXXugrVKdheNEE3moDnBp5Uc2eOzsUvR+u4sRWkj0u8Uerxxm6B2lDyTpuno + pNM/FHLg1FhQtALH/U4MB9zwUrzfzcNYZICKnkjf3DiEpnyMdTvordMyP4H+IpHKYHolQV4xKaO/bqyU + pKu0zHwHOpiujhaME9w/vStEkL9bhFZGw0Hy+m4lB85TiVq2rulbqokaAmoYSVE9XGJEVt/Q9AOgfphR + m5oXARPN7iDPY/CaLDlpIXbl87i6lMK3WD7vRgyJomqUUq3PdcutaxYT+W1fTAQaJQPw6f0hvHgoLCXm + /oEB+Hw+fUgN5wDOTLq6uyZukgH4/uQKfnozjWJt3dQ8e4S1TptuSaGMgNr9fKuVqm2vqx2/O+7DF48O + 4shovxCEmB3Gfejqge0sQaQfPYayKfJkZ6eXJK53kkf/zGFCGv0hMjJdalw617XXVG39p5Mz+MHFBcQJ + AXCGn1lrR/v9tOH9CHHXWleXlsiyb/KyFi7Bpn4+C9438ut6SMI0Xm4j5oE2F2dX8NrtJZlMfDteIRTC + ikLrZGx4AEcH9ga6cJxQyLN7+rG/xwdPZxtc3E/PkmGSeFT3taFVRLYSDrFuYF2GurGh6MRMsCpQ6PH2 + rXmcmV6hw88dhCWUyhvSa8DEoZCrTQamMI33I/sGMBpywc2j0Tu6JAEq4Zul7Nv89jajSlPXEqJ6P4Md + ai+wEeKhJKUqcxpq/ATRQc+ou5PHmzuFNbozBGDleFjKnNA7J9conCnjJ+dv4+/OzuLsQo7ued3U0NTC + KHWEHl3XIL/juGYA/uhwWBq6mAbMiUCVBNSowN3dnRMMZb5/cRk/vJ5EUbKbuj7db33dhsnVYZ/+SNSH + Ul1Y/O122rx7yLt99nAfXjwxLtNlOCGoqL3ms9wuz1/0A7TGnaVYCv90dRY/vLQIR3sLvvEUD64cht/l + NEQ32Ahw0u3mUhyvEezOr67jcI8bu33d6A0oqXAOTWya7LU1a29W9aydhMaSm+N8YdApVMYNRckceVta + H/PT354juL2UxVKGYu+q6jhkrcABfycO9SmewURfEHvJeAUYwUhpr0XQgd4A1bAcOmMkuk7qsWTe9QEg + /Bm48hEn9DGTzBP6KOCXN5dwbTmL5dyasOXY+7gJpg0FuoXQw/0NhykU2jfYAz8ZavH6thatrt/0gDcx + Msy5BXLcLQ1N4gzqNoLlq6JSvEzx+dVoCiUygLvoGezrDSLCm10fE7cDikdT7sVmGmb9HvA4tiszC/jB + hTn85FoCM6myJH1hN5WVLWQIPAoDwPdqd8CBz1AI8NmJMFobG2IAOAfAqtvSDnzlypXJtlbbxO1EET8g + BPD9K3ElCNrURvZbviyxpi64qcNf69+zMCZ7tJPDPnzj1Aj9HqKD5yeP6wAPGrYbr/Hgz6AmAtUks8+H + LE4I4DvnZvGDS0vwdrXiLz68Gx+f2CXDNVo0ii5vQPaCeU56pbKo0cbo97rg7ewwVYzsFtLKFqQj08bp + IY5WS9dvgUboqVYJTpN3SxXKuL2SwlvTMZHivpVcRarI614Xph4PWmFpcKbxskoPjwSLeLyiECwHwSIN + bpB5rJtz00HUf4pLextaR2ONEVKxjMuLScnuX17KyaTkVJ7/riF0Yp5Ntz/skETfsUEvrYMJPR543W7p + bbBrvQ1blWqb98E9DBRtZmY38tjxRQo/psgQXYkW6J7EkSEDdGrIhz88NIjjo30aYazlPekGaG/atPWU + eEgVyRSLhyTwoysr+JebcaR5FgL0kqWB2x5dCED7cW/Qgc9N9OCFgyE6L2vo7+sXA8A5H0EAly9PTra2 + 2CY4Xvvh5ZgMBXn0BqAZeliV5MwDrdSDWulr1hH8+H6ycod6cXxsAAGKcVraLIy/bTx5hv2xTAbzsbSM + SMuVqnQ/CF5PpzBGMPq/PDuO5w6MScZcNwA2o+FoXUaJ8Vvx5hY1XqMqoX8CbGEAYCHXNCzeTzH51KFb + Fw5/PJPGLMX5N+igXYqyFn8Gc+R18pW68Ad4ym4PwewDdOieGPTh5EgE+/oCMnmnXUvy6ZOJG01H+34G + QG1hkQnj0IO9PhnGhXQeU5kSzlKs/9btBJa4iajGQi52OGkdff4OifNPDfpxfDgoMmHcOtwhRrFdK3nq + H3ObBkBbi1J5sgnfIUnrmI6ncG6eWYV0b2JlQkZFkVE/MuTFl08M4YWJIXpmAekd2OnIcfNe6MqKZhVk + Q6Yfl2nPFAT9/c2ZKVxaLsh0IWP0+6M2ABsN2g/d+PzhHnz6QEjOyuDgIHwUlgqWrtdVDsDnc0+s5Ffx + 8oVFfOvCMvK1x4DgYNNwfl1T4NUb7+rqMRj0WPpGF8V4u8NOfO5QCJ8+OooDg31o404xoa8+GHxJFpvi + umuzC3j9+qyU0NKrdclkRymmPkmb6b8+swtP7x0W1V0jsaT+tSHpbY2frUxKQ8WwKetnkeYyP7SxX6Ss + V61IojFVquAqbfK3Z5I4t0ybPql0DdZZlJPuS9jTgUPkZU+MBXGALP6uoBv9Aa+EIC1tHSLXbV2XDjuM + ScDNb2+smg2cGLcKZ/Fr4vUvzCzjrZkEefwSeV2C3eQ4GuQw2snoRXg0er8LxwfdONLjwr6eAEFwL3lg + HvfGOQebGAn9nmgLwqZUvrEWQy2qoRBIo7EuuY91MkhZ8rYXZ6K0lhW8SWHQLTr4uSJ5YDZEFOsOR5xC + gHnx2DD2DfWrDtIdaT40DBBquXuW89yQsisrTt2iEPClt28SEohhPl/Vxo3b7inU8Vu5GsoAHKbw64tH + evEpcpCsndDb16dpAkIRgZgKPDIyOMEqr985cwffPLdEMZzKID9aKrDOglPdduaAmobpvDTOu8SbHa14 + esSDrz/FnnoYLh4RLtnlrQlC1vdSSjDruDE7j19fm8Prc3TIsmXES6tgPtxzYyH8p6fGsG+kV8aYC/PQ + KI2pNRjFIpuex7Iw9PTMNawe3ggA1OfSDJU6dDzyuyQko9lEVg7bmwQ1eUDpUrZKMFt5QY+T5bk6cZgO + 21OjARwjrx/xOAkNUAhCBlBVLOxNxsq6kXEPx6vvcp3rwEM/o9kSriTK+BXF+ufmM0hSrL/G02PtDYL1 + HVJvPtrvxumRIA71+2kd3EvgEcGQFk0pSGmq2pre09b0/g3LGk0uisilr9Uk6RpLZxDLl3CbUMcvby1j + cp7bvHnysBr2wgbR6+zEIUIgv7s7iN890I89g70yDLXFtj31ICvfSdev1eUNbXryxqZyMzyolSsgZ24v + 4CVyoG/MpMDqWtA6BuuGFXkEOQC6bycGWBCkD8/vDosx7x/QEYBmAM6fOz/Z0xOaiObK+O470/jmhSjS + pZqq7z4qEGAphykOuoVr3lBMMBPaqxvcSge938mspx589sggDvZH1DCKtta70Mxm2KkUaNeRSCYxvZLE + zRTFlQTtsuRNeDr6RI+PjApLhzkptldcAMtC9Ve1fGV2yRl/vqu8p/5kVq2UFLcoBFNcOxdN4OJcDGcX + M7iwxJN4yvRc6NDVua5vQ5jCnv19bumNONbnx5DPiT7y+t0OVQq1S8uuXgJrNJWy9HyYtVwl98GmNAO4 + cYGn5pTYKC4s4dICMxxzIpU9Q8YoXa5JIoznOHBvw74+MkAE9SeY7xByEyJxiUQ5swq51VqpKVvGpTXd + FzSzjSx3Uzy/kItWkS3kkSpUMLlE92Uph2sE92/E8kjkqoRO6rItnI5W7Al2ExIK4UikC/vCHoz1hhAO + +NHeppeHt7Opm3M0sNwzXc7e2DsUGlW4ZBxP4pUbK2QE5iUcqdYtqay79spv5+JU9dOExr52rB/PknPM + E5IcGduFcCiorb2hkoBet3sinivih5fmyADEyMKuYv09UCfet8uaFGz6vt4jr3gCnfSAJ3pd+OTBCD55 + YABjfWE4nA6NG4AtvZ96wA2JcXk6EieV8tU1ZIssCd0iCR8vHfpBnldIcaRo8Wmls2biTnPu2gpl9fe5 + e7ilVn5jlhnrFdR4tPcaefki3r4TFUIPz2hYyNVQLivGGcfYQ37lbU8OB/DUeD9Ggl6B4DySnMt/+kY3 + 385mrMegPDfMn9GnNUtj09q6dBCm6fPPpot44/Yi3plNyYFbYULP6rpAeY+jRQRDnhjwEeT348kRHgTi + gqOzHR3MdzBk3JsPnWl8m3NM1kfb0PIffG9WaS3s9W9HU5iM5nB+KYtrFAYtpVdRoLWsb7BUeJuUGneF + uggJBfHM3n4MejrhoefmcrokIfteJd+2vizGnvcOhQLFEqGS5QT+7t0p/NO1FcxmVgUh2LQuyubSor4F + 9C9kWuH2qwVWiXIjkjIKyNDHvPG0rQ8PM22+F6fIEBQIOY3sGpcRYQYR6PLly5MUK05k6C9/dnUB37wY + k0EUtUckBrKjy9hgbAA2yB4oMc3Tw2586XA/ntrdh0jQT/CvS9FuAWxpALSbxlBTNAM44UXQjrvz6pqW + gIwBs2uls036AXcbAGsd3wS3mzUxmXAkGvxMLimyQEYW0/EirtMvbuC5Qps9TaFZTYhPNgRcimTECj2n + R0M4wJ4/EiLP1622kd1meipgkwFQ32maxqRPiRXBkDX6zKvkJap0uPK4upySvoZ3WagjVkKWm3doM9NZ + I3jfTjDfiycHvTjW78N4xI8+us9sgGxasuZeB+5BBkDKbOsbWKe1sDDtciqPc1OLODOXxLmFvJTb0kXF + LGQZNTdPaybkwYb/YA+PHw9gvDcsbEwO1Zh1afIMHvalPdu6Kh1nKFT61fV5fPf8Av59KiNlYT78ygBY + qMVWGGbsmYdrABgBdtL9+eiYF18mA8CzG6rlKgaGhkQU1DAAjABcTudErlDCv91YwrcuxUWdtlrfWoHm + cbqa5a/UzbDT0xjyqulCn53oxYGhXqkKKAlpMzlnndyr3zjjtmrZ/c2bxtjU1rJdo1mWzAhXjLS/OVdG + 7+rjyJDr+qw9V8iXRbJ8jmL9yysZnKX4+k6yggXyIMXKukxLctImH/Q7cKTfg+P9LhyIeLCnLwCPy4XO + TjU5Sc86NxHPGpbgw7rftB+oi1Kx8vosGLmSoXWkC6JZ+BbFsteiJRmQWq2ti44Bj0Yf8HfRZvJQbD2I + Q70++LrahVHYqU9z3iqzb7mvTcrLukNs6NOiVcWB9fiYbZdbgzAL/+XyLC5E81ime8KqyewwubWa28P3 + 9Xbjub09eHI4hH5fNwKE+Djh196mSp42w9BtugcP8xL0tCGzExdiafzz5AK+e2kBV1fUOdr83mo3tDQ9 + C5kz8BDOm7WVvouQ2sd3B/BVCgGOEFLj5xzu6YWXe2dsPBeRDMDy0vLkBk8Gyufwm+k4/uZSDJcp5izz + wvXM2+N6GbUkSDJKlQYh4iEHwk584XAEv3dwACORIKEAp5TvNk8bvtd136lDVm+qv5zxf73j0DQpBqtS + M/TcLcdDGkoU2y7EKcZfSMpcxquxIm7Tr1KFUQg9wK4WDDFvnjzt/mC3xNi7wm7RCvR5vBKONPHdDXms + TZ/D0vKsIwDesMxoq9EaCrRx5+MpnF1ISb6BqyDTCVpfcV2guKO7FWMRFxkgN8XYXcJyPDAYFh0DLi+K + lzWQkfm+95vYpD/AhpZ34GQaf3+VNunMSgLXl5MiGPLuQho3CfKnCYGwVC0Pu2Blm34yRFxpODXkx8mx + MMX6QWkkklHodLhYWt04+PdZy8O4dIzHpcEiGa9zU0t4+cI0fnIjKQaUNQ/0s613nurt9qa68MO5DMJZ + vS7j4pgF+LXj/dgT8UreJhyJyIRgvjNiAJLJ5GQ6lZmolIu4StCTk4Bn51jOav2RJS928mHVrTcLbny1 + NOzwE1b98JgHf3JqDE+OReBjAopIajdPz2n2CveuGNy9gaxevYHmVl6bNnXGXF9DtO8hRJoieTdm0bEQ + 63mC2G9yjB0vIUebvMy6fORJfY42jFJMe5Lps3v6MexxUpzbRV6/k7xtp1ZP19fc3BizKYVl4RqoS1SB + 16rkaYtIZAu4GWNGYQK/meOhIGXpaeBe9/ZWO4KOVuyKOPDM7h58aFcEke4OhN1OeD1ddD+Z5fge6uuW + e6urKbHHL1RWsZSv4I3pqLQQX4txWFQhY7lGa7bBTjCER5Ed6HWr8CPilPFovRR+cMmzXRscYzMm+WjG + rykf8hAvS2u5SqPUUVldxXI8gTduzktvzVtzOWFoqp+D6eSt1SzjL3d2bVVmlO/xcB365aE99IWJHnyJ + fkXcncJKDUd6RNtRpZ421Hjwubn5ifXVKuYo3vzWuSX8aiorgzE/KJdOqZX/tJHObXRjBn2d+NKxAfzh + oQHs6wuK6g5roSmPaD2wGgR9D1li81sNs5xnGX3GbyMTilaVHHk0ycIScdyKpvEuedtrdPim0xWky2uS + w2CtwAit+4i063pwdCCAw0M98HZ3SVmTOQh2fRSYhV1kDlYxl9VEN9b4E7xJeTz6SjpDXj+DyWUOO3LC + opvJlCnsWCMDqpKNPAjkxJAHhyn0ODoYIrgdktiaVZi430IJsdg2gal7e/3mqUmqhXiVEAgrF83Ekrix + ksXkSpGQCOcdCorhuMEcAxt83Woo6pFeD06PBgmNBNDv7oLP6xK5MOlrMOmClmf0fukFNO+DhhbXr63z + YJEcppdj+OXNGIUCK7hFaKq6rkqmTZOF9bHylr34XuDAXYagoZBSj6tD4v/PEgpgObBgKCxjwWQ8uBgA + QgCVSkUZgFoV0VINL51fwk+up5Ba/QAaAC0hKG0j9Q2ZLnSCPMXnJvrwewf6MSShQLcZG8KE72ZU8N4M + ACcQxYjY7RbeueKO11aVrtxSoYpzM3FcnI3hTiKP64kqkvQ93uSsbejtIq9PUP/osA/PjAVxkGBbhGB2 + 0MM0XjZcLRYGnRVxWyi1lgSH5CdsijbLo8Z4jbxBGX2cYy87l1JZdUIfmfwaVumetbbZZO4g04mPDPrx + sX29GAvSGrod8Di7NV69Bvf1ltcdGgA1/0/pBPJaFtIlnJ9P4OxsUgxRNF8jNLAm/4b7MMJkEA/2ukQe + nvUK95Mx7/UTomvrEK9m1xShzJ6KxgPX87AvPdSSMIYMbCaXxfXFlKgJ//J2Ast5ldRsaBvNOpJdwgAt + n/SwDADP1NhFYdKXj/TgE3uChBwd4v3ZCeo8FjEAtVptcnk5OlGrlhCjzfijy8t46WIMUWknxXta0G/r + ag4BFFtIKoNaSyZzoQPkOT465sMXjw/howdH4HU3j5MyBTm2efS3GkLKiStCUOzROtpVNyLXvxt2TR6L + 4tuVVBY/vjKLn19ZJu+fk+lLhVpDuupYDDPk6cTesBNPjfjx1K4eofF6WI23pU1JcdubhTCN1KKl1GZN + YlrXx4etrIlyJosl3CLU8Ytryzg/l8FitopiTU0IcnQS+vB2YoIg9jPkZY8PRXBwpEe8Pps1hT7sJmsJ + zUlQY1bOlnkTs1VXJiQVClhME8xfSkmsf2GeRUPySBQq0tDUQvfQzWFQsBNHh7x4aiiIfWFmOLrJEDml + 4tDS2t5UbbDOs74L9L8PMcDmKcz6pWjTFcRSGdFn+PtLy3iH0F5hdUNzNFaopueJ6mal8D948Su203sc + 7unGFw+F8bFdATjZgJP351ZgQQDQqgBrtbXJZDIxUS0XyRtV8IsbMfzVu0uYy60a6iuP9XWXS9TZZDYt + FLBhNNCFz5EBYJZgP1NTOzpEuENXHDIqA9pLWvvvm+W2m3lrCsZCsr/L6RRK1RpBLSd8PMaLk46auAUn + 25bJAPz9u3fw3XfncWMxK5RVRvIBis329THUd2MizErBfgyEgpLhl4MPW5M8V9MHb6iKgvqjxi7U1ys9 + CkomjBWDovT+lxdiuLCYwQ2CpJOLOTJKZazyVKJ2O3yeNhyIuEW96PiAF4cGQujz++Am9KFPI1KM4oZx + zzZnG7bUVtS+x4eCmWgcLyfI619biEnjDnczXl8pIcEjwNYUoYcFQkIiF+bEqSElqjIeCiBEcJ9Hgyv9 + AL0qY7dUXTXDaCE+GffpfasAaP+T22EzcjBs9At5CgUWY4SoV/DT6zEZtFqr27VHVdcem10LC+oPzdny + UrgEeHLAhS9ORHCawjiuivDhZzEQRk0qLGxM2tbX1icLxfxEqcATdIv4zUwa/+/b87iTLKkR4Y+zEWgq + eG/KgOk/IjCyVTbSl58gFLC7Bz0Br2XcuN3wX80v+qBLxffc854nb3Z2egFTiRzCLidOjITRGwxopUeb + ZP0T6SzenFoR9SAW7bARJGcl3KP0cHhNRwb8ErNxhr+726XxDvS3susfxlijUXmwhDJGtt+msurlEisV + V5GnNb49FcO/XV/CRTI+yTxn/tdlC7od7RgmiH140I1T5PX3h1wYIHgd8HrQ7XBIvsHepA8I45Cpt7R4 + f50C3ZQaUaFHtcocg6Ic8nNzCfzq5rJk+HleI4uXrK+rV3Y6WjDOXId+Lz66p0/uC0uWd4siU6fG57Ck + bZsaiRqmQ7BWYXbwVHd0WapB1qfCv9T4tSrSGSYupfCPFxfxT9dios0oRQEtT2Ekjf+Dh9/qqKQESA7u + ufEAvnS0j5CAU77Ho8E9HrdUjyRtzQiAPMTk6urqRC6TlsXywMr/+615XOZZaCz1Ym8+VLYtSj2PrOFh + m5ddEiLt+AhBoReP9lOM3YNwwCdZbLvNtNrblQ4x/L9QiJkAksePLk7j13dWZLN+7YlRHBzuF9jF92dd + xk6XCCXk8cPJOfwbbf5VQgCHetw4OUgeTsQwfSI5xhUABW21+w1L0sh4COZCDMUZLY7kCUD84yzPxYmo + m7EcrpOn59bhK3z4i6tSDuIGKh5McpAO2kk6ZAd7VUY9wlLc3LXX3q5NIN7McbDeARs2y5kZwFjFmJLh + X2MNg0IJ12k93LRzZiEr1Y9FVgziEWCNDZn8G3C2Y4wO/+lhH04MB3FstB+9Po9UbjjOVyKhtns+D6tk + eRP5WvPO1oIbqxkxCcvWqqkOC3nGbnTyvber2dQIu5RnH1Lo9cq1Bfzd2Wm8MZtFWUM6+n1r6JWK7Z4j + E6pqt1wPD5VwrpTCKaz83KEIvnhsAKPuNlFnHh8fF2akzW7kYpQBYB5AKpkgA0AWOVPF/0MI4K2ZDPIU + GwoZ/gNuAGxak8io34HPTITxiQMD2D8YgdvlUdNl7Ts0ABpRiGNrblBZjqfwP89M4cfXooQAOvG/fWQ3 + nto7TKGAS+C7KNbQz/HsgMn5GC4upbFKxnUfxfyjPid6KCzxcE2d6bObWGKGR32AAVCQvybiGOXVddyJ + pfCbW0vkZQn6xwrSRFStbohuoovr+v4uOfRPjUbw5FCY1q1Uiru6uumeaJWSTbfDjHm3MgAWmovkHdTg + Tx7Pni5WcSuRx6usXDSbwXSqKv0m3NTEAiWeTrtoKB7odQnF+ehAELt6/Aj62Ch23ZdTAFgNwCaUYuQk + oBkk9Wc+/MViEUx+W29pk7DCTQaIB55y/8LD4gzo+4SdxC0KBX50YRrfubAkbdyr9YZxjzejqgdv6Ls+ + ucUTqElaAUcbvkre/4WDYUS627DBofDomKA62CwGgKzUJN2ZiWgsijTFsZlqA//fOwv4xY044qU1aL2k + H/iL24ZdZAWODXrw4uE+fHTvIAYjQdrwnWroxBb/ZquEn3j0NaUHWKqUpS+dtfC+TbH9K3fSGAu48L8/ + twen9wyJAdDVg0RVdrWMfL6MYm1NRn/xAM4OOmztPGKbJwLBboJ7wwCY4LspVamz+aAgNhuYPBkYnmjL + FYazc0m8OZ2U1uEMy3PRz3S22cnDd4lICJf3jg34cKBfKRW3t9k1ibBWM/RobpjQ9lgz3diyFIVCGPKv + 12UA6Uoqhal4GjcTRVyIlvDOTBxzyTL93YYAy+6uNgrHurEn7MBxzvD3eGhtXgTJIHIORcmF2R9oAMz0 + vzUt17w2fRy6araqYGophtuxNLI1gsZ+Fw72BdDjdYt+woNmTu7k0g1APl/Au9PLtE9m8O+3uWNwTWUB + bBpnYQcVAKNb1miK0yufyiC30Z+HCd19/Vg/PjbmQZCcktvrRyAYUqPctTDJMAB0uyYWl5eQTiVRq7fg + 5cvL+P7FKGZyqwoBWN54q1bax/7SsGEr3aAgWcPnd/vx2SP9ODHWBz9r9rV3brtZRDYQxdZzKzHciSaQ + JIO5ki3iF7cSuJGo4vRICP/HH0zIwZLOQU3oknMNDAm5cURgGsNam0rw2a1qNZu6MJuMvVWgU5Om4oPP + 5bQ0rWk+lSMPqxJr11ZKiNHzK1RqUh3hARzDAQc+NBLEs3si2E1oKOx1wcede52aZqHNZpCXzDc2OezN + k4H0PaCXHJWGAce91SqFReWatMi+QYf+/JLSMCgwK44MBBdhgk7uIvTiqbGglPfGCAmFXd3wOp2qgavF + nAlwv2ehVmbW/01joYcjeiVGIbDi6ip54BJeJXT0zkIK8fwaBv3d+L0DvXhud5/khzo7Oh5q85DeaDYf + S+CXV+fxD5MruLxSlGYmObx6iqWxvWlclq1ifG5duZkvTgCyNuWfPjmAU/1OuqddCEV60O10N1XA5Ozr + BmApuowUGYAGWvDvUwl8851FXE6U76LMbs6KfyAMgF3bKBs2dNDv4+RxPnUghE9NUChAsbpo0be0bunt + N1/8/UIhj6tzS/j1zQW8s1hEkqz5XLwkD/H5iX78L8/upc0dRpdD6QGaEE9eYdP9bKDJ3VsTfJZHbtXK + 5AwyN59wC3OBYv2FBMX30YwoBZ1fyOEO1/ULPCsAaOu0YZC87O6QA8f6PHh6LIwDBPmd5F2ZUSheVmvg + sd2N+aHUcPRV2JpKgObaFKmnWC4insliNlnA1VgZr92OYXIxg2ieM/xKt6Gry44wxaSHyNs/Ox6m9fRi + OOhBd2ebEJ1Yw6C1taU5i7+N6670qDCfGlJSVI06eUIfGVyNZvHuUlaqIXO0v4uEjlzkFJ7ZE8CfnhzB + sZF+BDxuQ578YVyiN0EGKJvP4vp8FD+5wkN440IAq2twypAO3M5lMw2fXvEwVBTocztpz3Ee5RsnhnAg + 0CFdrH39tM9ZIKbF7EEQHsA6GQDaANILkMtlZXTzxQWuBMzhzGJBJJ9h2yLr+0E4+Pr9siRNGDU5pSrg + xueP9uP5QyOI+N0Sa9rudRAsD5KvarWK6WgMb99ZwIWlAhYLBHfTZXi72skA9OGTB4aEdNTR2dHcsIRN + Zx1bJdbs0NVYrQ1F8oj1yTu1VfH6PGjjZjSJs+Rlmc13J1GWcWQlQhkt9DocB7IU91N00A5FXNgVcGI4 + 5KPYWg1SYXQi2gaWRTWHG83AQ68I2bR7IXC/ruJc7tmfolDowtyKkIsmo0XpIkwVWMBkQ2J9f3c7dvc4 + cai3G8f7fDg2FNE4/A5DrkwScVt07dw3DLCwMO3aZ2E0Ij0XVW5truDWShrn51N4Zz6N6ysFrOSrKGs9 + F5wTOTXuw5+f5EEzQ7Qf/Eat/GFcEgKyqIlwA1I4P7OCv7+4iNdnckiWNkSH4a6Y5b4buqEZDbvFACgC + HHl0eGh/P78niK8+MYiBbrsklUdHRoxJVPqlkoBsAOz2Cc7UFgoFpLMZepAZ/Lez8/j1dJogU13JYH+Q + DYDxP1W6400y4O7E7+4N4ovHhjAxGETA6xU1YYHBDzAAvOF5/DeLQMQKq4hX1rGUKQpr7YmRCPZHAnAT + nBUdgk0PtdkAmOp8Tas1OObW5OQG72pJ8iWzOWmTZSFXjvVZm49HjxeYvEVr6+xqQZ+3iw49awYQzB7v + wTAZOVYKYq8v7Dm7Hjja72EA9K/sd41Tk9Wsb8gB4xmEOTr8sVwJb02t4HXy+lxBWiKvX+WhqPRPO9vt + UuI8yASj8ZAMJxkNuCX56XQxM01LOho1zfdiADSDSbeJqy5cBs3Qfp5PqAN/fjmHSwsZTDM6ovCktsEz + G1UeZijQiQ/tDuBTBwdwZLhPhGTatL6Ch3HpJVLmY3BpNppI4Ze3ovjBZAxn5nKocN+Nrly1XQMgz0EX + yzH7W9QQ3Tap/79wqAdBCv3aOx1kAEbR0dG2WQjHNACrMkY6hyz94lHSf0sW6p9vJLFEcWTjoYopPKrL + tLKMAlg3fi+HAoci+OR+JRvldiuItJkAJP9mk3AlJ3ZEn44TS/RX6XJFHkOP1yMxZItiqhgGoLEJNluH + W+jfM1/frAToDTMy6pvej3sJri0lyJulpYPwRoxgNx822tDcCcdedijYJSIdPIuQ2YWDAY8Qi/Q+CFHI + bb4zhlc3CT7mdB2jrseJIy2zzTEtqyGvcDNRgqAtGaO3Z9K4tpiT2QRrPICUboGLYv2hgANHe1kuzIuT + zJHwMKGnCx2ScFPJT+MySvjb52XoSkqNhprXyJWHXKmCqUSG1pSQQ3YrWUE8WxZBE367Th5F7usSyjOT + n1hc5chgRGTEO0X16WEzBxpiDDkcKRWLmE/m8fKlObx0bg4LaZ4jaZ3Hub1LT3U06trsTPqPhT+H/Z34 + 8yd78JERQnsuB7pdPkR6Ihr8N3M2igi0sS4GoMZQKZ2mXxmyjg389PoKXr4cxdV4mSCK/R4L+GDlAPgJ + 2G3aTaADxTqCxwc9+MqRQTx/bDd6A14t+WS7r8fRLTq3sTbqCoLV6qqfu71FZf2VJJd9E2/flACDxZs2 + c5C019aaREQVuErerFIjlJHH5AKFHuRpL1J4tpBlQk9NpgG3d7RKYu2YbGYfTu/qxf7BENrbWgiZqBKX + VCSMEH5zplHnoZr01KY6o02TTl+tSfiRkFg/h8lYHm/NctKxKGPHy5U1+fFOgqH9wU4cG/Rpo8hcGAt7 + xOt3d2kqTQbZwda8FMtKHnTppTaeCsQJyCQh2EU6+FcTeTKQeVzg0CheRKm2TkaU6cw2uBwthAA7cHjA + ixP0/Cd6AhgJ+RHwMcXYYRGPeViXZlAbKjexVlMyZ6/fWsC3z9zGL2+nUaiSCdimDJ/pnOoGvJUULf2R + +18O9zrxFyf7cIgcAcuh+YMRmaINg4BkU2upa0lANgDrBOdS6RSiyytSDnpzLo2XLkbx5kJOtM51MU5T + qfUDcPA33zBLvM3L58fM04V+f28Yf/7h/djfH0AHhQEdHR33NwJWpKqHBdpfSUJXd+AGqtuCYbDlDtey + 2JKgYcWgdencW2avv0wx7FIOF5ezuEVwNpquSocZc0B8znaMh3nunwenh3yYoM/BGgger1J/5YNvb1pQ + XSOfqM3T1BDVgPknI/jXOt3W1pHigx9L4RKPQtdi/ZkEedyykudqa+XOvTYMcSchhR+MQli5KOJ2Sk9B + Z1eneH27nuHX3tRIa2n7bHM57647pU8j3uBQhBAQGUiWtbu0GMOFhRTORQu4Tc4rVSDYXVONRXywWUdg + oseFCTJIx8gA7I24CAlQKOJ0S7LM3qIZ7odoApqKk5LHUcZqfiWJX1xlMdElXF3Ji6T4tgBAE0dES9Iy + PZsMoa+zFc+M+vCfTo1I/O+j0DYciohGo5W+LSZpo24aALYmOYotV8gAcGbyFlnRv7uwjJ/fToFDSyVi + oCeoYCqtfAAMgeFrxatuaP3b6mF0tXIo0I2vPTmM5/ZGJEnWTXC5VW91tUbrO5xDb9ybpsS5yTxUL2mB + ZHpSbUPJTTPHgJtjXr05jzen4nLYFlkLr0QQmyA/i2D2cqzf68KJIa9k1nf1ENwTGm83WtvbtLVvXnfD + sj6b8bmaB3CoaoOw+egAsRBxrryK81MLBKtjeIfCD1aOSrBe4aoKg1ibb8DTgYkBj2gH7As6MEb3M+z3 + wCEJUahWZj3ZaqHwNSOjZm2j5j4N8wtRTy6VkSnmCFITGiHDeHaBwpDlAmYJjeRKa4Sg6pqGYbuoGX14 + dwTPjkXQ190qGoYBV5cySiyfrg2WbUZBD+8yQy3VK8BckqsLCfzw4ix+fGUZC7mq0O/1vgL1mzVstDU9 + I/XdhkKL7IHIAPe72vDJg2F8/eQ4nLY1CWt7enrJqbXf5czqVgTA36jQgtLJjIgaRAlKfffSEl6+mkCi + tC6tjJp/Uw/IMAAP/T499Mtm9Kzy+jdM/n9D5U7dHS1kNb34wpEBfGTvAMJBv9wwWGb5vf8GQFPGoUOf + 40QRPYcVillvZ6r416vzotLECcd12iGcv/B7WA7LI3DvWB9B7F6fjNh2kacVijPH+froL+AeBkC/QVYD + YJJS6g01lCSd4xbdCm7FCwRbF3FuIYvpFB2w8hrDFLRRPO0iz7Mr5BC4/xQd/qfHB+But6GrQztgrXr5 + yZwybNSumwyA/tvWBoDLemooKa1tbQPz0RRuRP//9t77O67rShf8bgVUBCoAKGQCYBSTSIqKlhzUcurg + 1A5yt7t79Xu9Ztb8NvPb/Bez5udZ66333prXb9p+/bw6u4PbrbYVLJkSRUpiEAMIIgOVUDnf2Xvfc+69 + VQRJUAZJkNaxKYJAoerec8/ZZ4dvfx95I4tZnFnM0TWWkSGjVKWf8SNnUdYkeUhPjA7gNHkkv3V4Cicp + 1vdK2BQUuDN3HkonaddE3V8DYAoRbF3Kpm9fWcb/e2YOb83nkKm2VPjnMgAqWWuYvQago8hPPKrCZeLQ + YBg/OD2Ob5yYBuoVDMRimJiYsENb97CTgF5lABhUwnVlDgW4dfQfr6wLocElcqWaEm+4MMcKfGBqrvXd + bAl0mUXzYblq2Rw3+ehb4/EAvnFsDN89NYsnp0cRjlhgFPeC7K7P38MCsReWaX99CyW2acXYpWoFFxZW + 8cbHK+TKkrtPG+0KbbwSE4YYTNThxRSd+k9OxfHZ/SmJrcfiYST7B8jFDsmp7+mNrXsfjeF8rNMHoR+j + RYraYtGLFkuRlXFpOYO359bx9jyj+qwNVmGYOCzM+WgygAN02j8/ExNY8aHxEYwNJeQ9OeFonfro2dLo + PkQMdCdGu+ARynVuW4hGzkFUWI683sLrl5fw+tUNnF8sYl4ITWqSD+jzehCnjT89FMGR0SienUrgxNQQ + 9o0NiUw754IE/GRrFRjYOiz7ZKObAEWHAPpxqFIlzS9zMd5YTuMfPlzEjz5YFm6GZsdViNX5K13ntCfO + WVfaMDBxytMTA/izZ6bw/HQSTPKTGBwSA7AVsEkZAE4Ceo8b0EIQRVy/dlUUXM7Txv+L8yt47XpWsMvC + cKpVeo22ikE8qmy9yw0A4Gx8vfqVMeCyoJ/u49REv3gBXyPrOTbkdAzqh+aW8NpWdtpaCXbDh4bKmqqf + X5oyDFvxQNhw1zJZ/Pjcdfz4vUV8sFhAiamvO1ZszRl+oeKeiIkAx5NTKQzHIlLe8fcF4OfOvbug57ou + Tp8m6hpMFX5UyAgxgQlXg65ma3jr+gbemkvjGi3OYq0tiUmOlWPhAPanogIrPj05gGMU67MiESvyhkNh + 58Qx3MauN19idv8cpm0g7X8rlGGlWqINU6NYv4iFXBnXNpvS4XjuZhZppZTElZcwh0YDARGOfXoygaen + hzA7FMNwYgD94bBUQ4Qazu1e62ahe/Ty7jrNZk8AZugkshWO1miuV9Y28CsKq1iVi2nZyvW21YpvOEzB + usvTzTlplQ6V50LPjmnkXiZP9k9OjGI6ERDjO5QawcjIyJa5rC4PQLurTByxuDBPG8IrrZrMbvqjD9es + LKWh3A1Y2HpTdwru4r2vLlb9ZdiW1Xa9oUCubdpgYSuB8genp/Hy0WnhERRcuN5Tyn29twWiM8CQLC9v + nipZZk7whYO6t91yzxgttrS+gb8+P4c/f2cB79/MS9ktSO41cxpwX/wzU0np259NDWA4Hpe6vkeVHD2G + c41qrbnu0P09dWWuk7ejaMsazRZtsALFpqs4t5TH+ysViamXKBypNizPLxwwhGPuMLnVfNI8MzWI6eEB + lXsIwaB78nbx4cOmSQNcy8XFEmy45sr9QgE+MaCHTso1cpevpUs4v8JIPmZUKmOZTn3WceDmIz+zKkWC + mBkO4alx5jaI4SgZpQNjw2QUggLu8UkC0nYynLAMjoO40x3wpnsO1L/E2IroSQVLGzn84tIS/vzcMs4s + bUrLdMdrn1Tyh917IbpRnYOaeVqzCDEiYG8ygq89kcI3DiUR9raFAGRkZFRIQK01v1UI0GqdJ1f3uH4q + LMGUTq+jQa7URqGCf7q8jv9MlkkkqTqmI39sW27T9mx363BLXNuuZS8rq8k1VBPT8SB+7/g4/tfPH8UM + nRocT3tVac92ubZrArqSXFbSih/8QjqL+Y0MJhP9GO6PSNsw8+w1ye1O0yL/1dwy/vu7N/EGeV4eOgVm + yb1+djKOF/eN4RDF+slIQCTK/H1BG0GnPgbufgHnIlzszoazIPXviLoN9xMUilimU59hxW9eW8NZWoyL + OXK1Sy169h2B6MYpBJlhd59OVRYF4Sz6DLn7fD2MprRrze4wQxsgw73R1fc1ku0WoJn1CjZK2c1NzK9n + 8eFyFu+SUWLNxmvpKtIVOvWZu5JeGyIjORYLCd7gmZmkgI2mB6NIxS1FYo/P6wJ58THg7V60PWHRTg3t + 4UCFN1wB4O/VhKGphKVsCR8s5/Ha5RW8OZfFYrGGllq0DsTH0Z6wLlk3janFzFg9WifMIfnqkxP4PB1i + HrMlJz9rALhRjT3UbLcaAI6zCuUi1tdWyd2q4v3VMv7ze8tkcTdRbnUsfgD9DB8ZA6Br2RJoWyeT4ek2 + AJJJbSPi8+AkxYv/y4sH8NLeFMaSMQc5B33P92oAoPDgDTGwb11bxmuXblL8HsMLe8cxkUrKSc4VAO5U + Y/aen11ZwVlaGH56k4ODTNMVx8HxFJLM0EPXyKzAHMd2reEtDYC+APeXHQEXycLivEOFvL4Niu9XsvS8 + 87LxL6xYLcQN2mB8t2HaYEwXdnAwIok+TpZy516Evs9Q3oDw8HudG78nA+AWKjUkycfJUF6LWTJIH68w + X+A6fnUzh4/Wilgho1RhLUB6M5ZJYwj2nmQIT9Kpz81Op/YMYTTO+gCMegxZ/AqKw9D5ZI/jArmmyNb+ + 26FhcwV2rP4NFoGp0b0xHfwlMmjnlrm0u4lLqyWsF+uWHofH9ksdRKbmd9QGXaM12QAwhbyfCUCS+MOT + EzhGxo9/NDExLiSgt+txcboBDeO4s1QMUYi5NncdzVoNS6U2/oJck3+4vIFsrQ3bpZWN4NmywWVXDjn1 + VZJJk1oqq2y4MtM890Mhv00e8szsmLSnshHwat/RfsO7PHxrxu2dwFaf2Xj/6twN/CWFVk+OxvAfXzqG + 41Mjgj/gy2IYa7VSw2q+gCz9zY86HvAKK3A0EhWMgvDyaU/EBdQxt2GarGpDW0p7TUYXkkFaTBfEKL1z + IyO6djcp9CvXWJqcvCKvJT2+n07603viwsV/lLyQ/RPkWkbD8p6WCKunJ5Nvdrv9prsa41xLV21aqQKx + UnO+SIcQbf5r60X8aiGLt+bWcZV7CyrcBNUR4ctQwIMxJlHdMyin37GRKA6OJOnUH0Bf0C94Fq/H7yTK + ukIj2N6HbZZ6qcR2aPDmr9N8lyiMyRUKZFirOHMjjbfmyQDQxl8ucFs5h4g0hx7V5ttxDi43JsLUyXg7 + iW3YhDffOJzCt44MS/6DW8xHR8elAeh2wzYAugyoVy3DXK/fIAPAhA4NE/94cRX/7fwabm7WBXVmT5At + vLBjc3VfRtdEumI+xSDa3ezC2VT6mzPtXz8yhN89ShZ1agyJREwEMO6FMYY/UVqA21bGvESL+uLiOv7i + 3Xn81YVV2kgx/J9fPoHn940LG5BH9Vw0GzWJaduq+YeTe+x+ezU9l2vRupFz+t+98b79eDptRVHeRLFc + Q7pkLb6PVgr46eUlOpEKogtZbbRlTgJ+H4aZLmy8H791cAzPk0c0TMYx1h9FP4cgfkVPDvecGI7/briu + SHsCPQBEG4tA66pB910VbcYGPl5el8add8kbuUSn/s31svAI8Mv9ZBAZbMSkJow0fImu7ejYoOgmcA4i + yHRqXo1vcFSu3c6RnfDr8ow+2bbfCjCmgUrCCs19CYUShX4ZXFjKSuPWB8tK5qzaRN10ekJMtb505cO9 + XKENlG1UrX/00U08ScbvO8dG8PJMDGE/GcbJKQyIeIz/ttfZZQDcdoYbPdbTGyjTgi2Se/geWeD/9O6a + MMuUuJ/dhZN2lE12vm66U8NdDXO6b7d68io7z/z8PhMnJiL4xpFRfPnwHuybHENIOPKMnq13+yGYefKi + iuUyKnXm6CtJxvovz3O2Nyex6v/+hSfw/IEpRGlD6T527hzT19zR16Shw0a3O+gs6luTbPpnQkctXAS0 + uel5ZooVLOQKtAi5hbhA7mcZl1cLFPrVJZPO8GFGF06zWz1FYQq51U9Nj2BqmDwh1iYQXQCvfb3ukp0z + Mw7uUl9U9x4xFfjJOiFrqvLA3AqX0hW8dX0Vv7yRxY0MeSPVNuqtjrAtc8PVGIUiJ+jE/8x0EodGYjhA + m3+ET/2+AAzucLSNtOGqwnQ/M8P1zK3Luefs7l2fPR+kLDbLzVvX1jhxmRFqNpYMWyvVpZTKUbXp07yU + HXWoepRT14F7x1vhRMe2qdwNyPdBURh+i93/U3twcjQs/RB7pqcxMBC7Y1vz1iGAxCsmiqUispksCsxn + X6jhv51dxc+uprFaabiaXAzLXdETuNuH+3jcwt47B5YBr9mSZNsXZhP4/Scn8RLFvAyrZICQTrw5noMD + arHFNzk0U/N4Y3lVeO9X8hVcT5dE5HKj3MRXj43hT56dxal9k6Js47qKrYepTy7X2jW6jy7T9WLXwUGn + fo08kIIwBn2wwtn9vMUdsFFBrtwQGjF+rlE+PWJB6dx7mlz+o+MJHBhJSJ8En67sgdjaB3caZo+z5fqB + fF9KjlavQ4Ni44WNNC6xAjCdjL9aLODj1U3yTqpSEmP33S9MwQHsZ6k08pyem03h9N4x0VIYYMJQhm+7 + ex16L+YedreuD91q6B1jYWrcQtecwxJgMSz5txwZ2RtrWby/kJZ8DvdLSDeinPodRzjUY9ifZ6r376YO + dydJHXQgV65YAGQw6sN3j4/h2yf3YGqgTxCG09OzggK8E7HJ7Q0AZym582xlRaiNm4Yff3dhGT88t4KP + cxaJgY4/HykDcJdhHxqwypw+w4sDgyH8zhPD+OaJCRyguFd31XWJi9xiAKxNykUT5r+/MLeAn3wwL9zw + LBDB3XLcoPPq01P47ulZHJwclbr5XYfbALhQfD0vUV90RBCEvQXmdNggY84MRufoFGIpso9oMd7M1qSu + L0ISPu4pCOEw4+RHo/RnAKf2DGM0HsFAJCKYCJ/PhztSc/V4Vbc1AMxk1LIaYorlCoUdZBRFGCRDHklR + lHRKZavJiXEY0YAPU8kgnt07jBOjERwaolh/dAgToynZO9Lr4PFip0a3AXBf/W0MgKldfot5iOHTzEFw + nsVXmKGJPJnL5NVsVFoo11rWHHitipqpOyGl5u8ka7cKKfT3TaWAYHW1grygMP70FB1S5FFye7M/2Iex + sUlhUb7T49o6B6A+jB/Q0uIiNvM5BIJhnJlfx396bxnvsHBoS11Al3V6TAwAdJmQFkDLoMVn4BTFwN8+ + MYovUigwlRqUzerhfIC82HKxXaEZ7Ho2vVGZFvjc8hrevLaMX8xlsEAGoFLriObeN06M4bdPHsD4YELi + +7uRUd5CgQXXaeDSIeTB6sPcT1CjkI07Cc/Nk0tNbvW7Szl8uFxCjlt226aAkUK0+0cGAjhKm//L3BM/ + HsMgnazjQwk6Wf0iAHpP13e7LsqObuBpCeJxOZsn15jlyfJ4Zz6PiyslrNKpz3VwXtzMYZjo75My6Iuz + g/jdE/swOeBHhEIU7m5jSTBRS9rppWcDkkxXuKVOaZecuYS/CsHJ+4WbkjjJlyHjdWmjhJ9eWBTmoRsb + VZEKb3PyzgNVjdB7RlPGdcuD3453w+nAtVZBnCzAF/Yl8Ue0PmciXkGC7pmZRn9/twDOVmNLA6ATBXxT + zBGYTWfQoAe2Uqjg/zu/hn++khbppo6diVTIwN2MBNzusFt0VfzKFRn6zygtOp7kPzw1jVOz4xjkhKBf + qdLY2Rv9HmoelQHgLksmhFzKbmIpV6RToCFU2EEPU5P14zDr/nGd2kV5fXcSTHShmvXH8gnEC5FfwOW7 + HMXT8xnu2MvhjRtpnF/KU4xdQ77K+YCOZPijtNH3DEbwIsXTL+wdxDMHJjASi1p5EO7X92n9v+1UPUwb + KKmJKvRsysZvtaUM2uDKA83HmRtreGuOvJKlIuaZ0ISbnJoteOmzBvoDFNv3C3vQcfr76ekRHJoYR6jP + AvL4lVqSo+uwg8PRGOuedPuu9EndkXIlx9ysb5ghT4ZLe+8t5nFmeRMfUhjD4RUf+nJkKi3ATm/CRFen + zO5jZOslqpNDpnSzTsYD+O6To/jdg4OIeTvwB0LYt3+fw0Z1h/e7rQegFyH3BmxsbGB5eQVtWqA/n8vh + f3ywgveWi2LNDAVW0BRWj/xw1aktySuPWOYg7YEDg2F84+gofu/oFIUCQ4jaBBvqV12FbrdNMNXpwA1W + dVV6a7JQJK2IMLlrzMEvYCPfna11b6eeW2BSzg8F6GGVogqFb0wXdm29gDeur+HMzRwupYtIF+jz2eX3 + QGTAZsiVZsKQE7TBXqCYepZi/ZFBC13In+fx6NbY7Q1TrQPnxLSy7Fz/5tIyMwXni3TKF2uS4f/p5WVp + csrQgVKXjkKTPtuH4bAfB8gbeeXwGJ6eSmAsFhEtwGg4rDwRSClM8/3vtAXoSqJ2FTVMV+XLFC+LPby0 + 8A1uUniVlUYpVgC6uUnPoGZ1UWrafidMdLeYuby6beBpLA9AOqIQpTVzYiKOPzk9gWOpEEI+QxJ/e6am + btF02Grc0QDoicjnclheWpKFcJXcmv9+bgk/+TiNIjeDGI9OKXBbowtEoxufmGapjRgtzFMTMXzvxDhe + fmISUxSD+hkgZKgTqIuoUf2tYwRp81UnuzoNBVQJKwEkDD3bYqC5FeXndkHZYHN32VVyqz9aLeLcagHv + zWexlC6jQMcQd28EfR4Msi4A6xDuHcJTk0nsGxrAdCpBGywkno2VTDOtApo2NtvCPbjqQaahYn0mECkL + yvBmroILnHykA4Rhxtc3CshVLPJSZrKJkFvEisTM0HOKW4oPjOEAC7qykfQrAQ+bt1F/4varMtsdW8Gm + 7Z8pLUhO8nFJdYk8rPfnVsmgWUKr18jd5xCAGZra+oD06JUBx/W3N43lFehW3+1sI9lx9MxHmeH60DBe + PTaGRMBEPB6j2H8M0Wi/am2+8/tsywDU6TTJZbMobOZRIPf1by9t4EfnV3EtU5YbtCoWxmNiAPRd83Cd + fJwQpO+nokF85WBSOgaf2T8upTvWXDMUt7uN3VKCmZYBcHATThOXs2Tt/XXPw5RkE/e7N8m74Jg6Xari + g8UN/HIuLVh5Zp1dK9To5y3ZYOFQHyYGWXZrAMdHyK2eHcahsUHRM2QGY6/Hcvetg0pdpY2M2ybwSSHU + mKaqWW8iVyxgOZPFZTJKZ1eKeH9xEx8IjVkNHYbx0nv3sQJwNCB6BUzSwezFB0ZjmEkNSj8GA400h0C3 + AvD9MQC9d+SczIoAtUybfLMg3YicVP23C0tCz7ZQZF5GS5PR8FnG3Zb+srMIpr0WnDyug5XYlgFg2DpN + xxPDIbx6PIUv7RuWUuDgcApj4+NiJLcDae6qAtyJCJOJDOfm5uT93lsu4YfnlvHa9RwqHfOxqgI4kteO + lXYzCnOL6RNDIXz7yUl87fgUZkaSiEYigjiz7IXeNB6nHAjTNTXWcujYS3Y72D3X6IUWM78cuaBZckEX + skzPtSl48vcWOd9QI7fakixnzs1B1gBMRnB6ehBfemIcU/19GEv0I6nr555PqpHoujxJirUtKG/bRG6z + LICed+fX8auFHM6vszxaVTocOTSiaB6RkA+jA0GcGO/HS7SQT08PY5QMLYONwqpzzzCMW62k6yC9fzkA + 0+7db4uwKURia34ljUtLa/g4WyOXfxNn5zNY3aQQT4Um8lQVos/Quo6uDgw7dIGz1FQSZ3v7iJl/Qn68 + OJPAD06OkjHnJqwg4okEYvHEtkOjbXkAPETUYH6eDJqJZbrRv72wir84t4o1cnVaOz35D3O4W0EVHNN6 + cB7lpnUw4Pfi+T1xfOuYFQpMkBEIkovqUbwIW7WU2i2hWgNeZZiNe3Cvrfe231C6CatkmG+spXGeASa0 + wd6h+HNuoyZ1Zpbd4qUX4s69GOPko3iGTtenZ0Zxcu8k/PThLIsWCFhto9DAIuvmca+GQGsDcIKvXGXp + rwrm1gt4/dqaeCRC1FFhfsOWGIlAnwepWBhHmNCETvunyOU/PDmI0cGkpZZEIRfDeEU91050urH89+/A + 0ae9xiswkq9cKkoz3HKxjtc+uinQ5A9Wy6J5UKPQq2VaKD6PcvstL6qtLJTH/ca49R+GK2l014mWkPTg + UARfPzaBbz05TmvSQP9Av6j/cp7Eeku3Zdl63N0DUBfDJ002k0Eun0Wl1hQ99//63qJw1FW4w83wPBYh + QLc6T6fLtTSVRfWR2808gi/vH8Srp6bw/BMziFHM5RHyEN28YVly2yVWAAM3SMf6zu0f0FY07A6hI3PK + 1bG8nsZrHy/hZx+vU0xNXkChSt5aW2DEXD9PkFt9nNx9Lu2xUswkGYKxwYSc+oaCmwprkMtg9aJ4u43C + 1tepcxDMcMNEMnPkiby7lMaHKyW8v5TDjfUiiuWWXdePhb2YHQzj1B5mLh4mV3aAvJGoYCzYmPokJ4It + stgucMH9Ov1ldBThK/dmtMndz2N+NYMrabofCmPentsQRqRstS2aB/J6j2E/Z/2EpUxoOE9al0hMs0tJ + 0Yb+unPpW8nTQ70nJ/tepEPoD5+exuf3p7CZyyMxlMTw8DBCXPvXdOF3iS3v6gHoi+FYk0kibi7clL7k + 9UoHPzp7Ez++sEZfN+yMr31DrgfjVCwfDf7ArtGD/7Bit44wrzwxHCHrO4bvPb0fk0weErSAMs6m2QqP + 5loI6v22xJHzn05bZeKtrkWmBReVXBEbZSGOBi3KdfyXt6/ir88uYWmjjJrZlnIid+iNx7mDcIDc6hQ+ + /8QecrNDwtQr1+n39dxg177qvr6eJ9tLCtsR1uIaShU64cs1XKLN/wYTiNxIUxhSF2EQ6S2gRRnqA0YS + QRwdjeL0ZFKkv49ODGI41q/arn2WYEkPbHe7467l0+4ZVob+lodshVdkYBnGW6jURUPwnbk1vHszj0sb + FWnmKTVYXt3jJHq38bm259+7DezT2sF06EqK7k/RuRUmrxkf8OP3Dg7hOye4I3MAG9mcxP5sAHw0h6ax + PQ9p2waAHz17Aevr62iTi1ckF/O1j1fwX88u46O1Emqtjs0TYC8kdy1Vv88jtv9vN9gIJkJePEsx2J+S + FX5u3xhGkgm7U8/ZNNtInG1pACx1XWG8pQ1WocXGoJgQS3aTkeEKApfUltJZ/D9vXML/eGceK+mqxPpJ + Jf55YiKmNhkzBPPJYMX5Pu/W2PAuiLFzp1saAFOVwPh51sg9Zk9EZLdoLZxZ3JRs+Fy6jEatLbE+K+4y + KefsIGP4B/CZfRS3jjFTcAiDA1E59Q2PJmH99XIQn9QAaCQff585BnKbBcxv5ERe/dxyAe/OZ4WajTti + G1zVkeSoZ1sbf/sLS/3lJJC6kOu8pwI+D56ZGsD3jo/jpekE/LCqO1NTe5Cg+F/nnHbGALgmVqwi45uz + GWSyeeFfYw6zf7mcwUqpIeIhhiLZ0EgnexPw73vMLqjjozzYAHjpfhgz/7uHUvj+0zM4vmcU/dGoYuK9 + +0K+XQeZ9ZsdYf0tVWpYpI11I7uJfeQmTyZjiDLVFm1ibjThJpN/+OA6/vrcEi5RjB2luHofxYYvzAzi + JG3+qSSz9ERFEtoniUqN3lShhPPBW6zj7pPRzmGbEPw+N+/UmD2oVMOvri/R6ZgWqDNTcRdKVmmPQxZW + BRqMWvRcz03HRTz1xMwEnfpR+XmfzSOgEXD33pxzNwSi/Tp9Z+4DV63Vdov/NKVsmS6UcYW79hioRJ7M + lUwDq/rUZ4dMaOJcxDg7t7Icg8LenJ0zsvaNhwwPE5x+69gYvnWUE7k+1ColJIdTGB0dFbi2VknaDm/F + tpOAhv0LbcEEcD6gSYvw59c28OdnLaXTphS2vdYFSILLQgiauizkynw+6kOTV4boZDtMp+0fkxfwlaNT + mB5JSh+24fHdJf2y9Tw732hLL8b8Wg7//vEi3qSY80Xa1J89NIHp1JBAYPlkLRTyuE6vObOQFmWeoXAA + M+T6HxPJ7wHp3AsJIYaDM9AELl1dZvor14XYj8qm7bJiYg5FmIp7lQ6ChWwJH5Hh+bera7i4UpCEWIWT + fEzFTQdCiLyk2SFW3unH6fF+kSOfHRnCYCIOf8BiqREEpKsubrrwFPcrwrdJOiTr3paQitF8m4UScqWq + MAyztPq7Czk59StNU/IXspI1j+N9A78Y9sMw7Lk3hH05TLH/kbF+/PGpCTw1EkbEb0jmfzhlbX6Ppuhz + QY3vZAS26QG4GiDofxna/Fl6+NzBdTNbwZ+fW8PPrmTkJDC9hn0DQh6q2xdl0Xm73+8RHhqEwn8lAj58 + fu8gXn1qSvrSk/EYnWpBOdW27x2qmrZ2Sen4LNLmPndjFX959qYk+T67fwjfPj2Lp/eOS7KMT6BavSK5 + gI1iGTn6O0EnfYg8k1g0Iqc+Lx7p3usqCjsewG2vxZXz0I1OXHXgRF+FPoeVd96dXxOGng9Xi7hOxocb + nOoNq1WV6bkmBgI4MBKRMOnkeAJ7k1GK/wcs7ETAoTLrpv/Wy9ZjG55PMm4v6OJOw5qCyGzWq+JNrRcq + +GAxLbqGb97I4tKqBVKqNNtWS7aCvZtqfRtwBDl2bl05yWMbOcBvryS/xvoZ+DOIbx0ZwVjIoHkkgz+z + V8qlnttSwN9+bMsAmBqtpFyRKk1YJk1hQDpN1tCHn17N4C/Pr+LsyiaaIrrhQFq7M8tbZT8ezeHOkHNL + 0CSFAl87ksLXKS47NplCIpagUKBv+/pyWuWGdQEotm436gK+entuBT86t4K3ruXx8uEU/ui5fSL5xdz/ + rGvEOQJB29HvtJg8lKHJdFLxYvD6fPoiVUbYuuiuTjdXYbp74Ti9+rz7mT2IySsLTB22WaXrWcPrV9fx + EROI0L+r9Y6ckJy9jzFRx0gUL0wP4jid+odH45igE5816rll1+P3OQrA+lONbgSccR/gvWqa1Rcdye4X + SyXBUCznS2TICuJpXSSP5gYdbHkl1aW9H2t4XG26Hde63uHFZULx/6kEYNtElObt+EQU3z85jucm+hEL + +RHpj2FsdMzK69jISOtN7gkIdHcD4OCYO+gIT8AKhQIM0by8XsCPzi/jH8kLSJfrVseTvhfl9ltxTAeP + y3AMAC2JDusBAifpobAR+OoT49g/OYawAIS826tXy2briAjHGsX1C+t5pDc38dFqDv/ycRZX1sr42okJ + /NHzB/DU7Bi5e0FoOvbekLn74HMbAHd+38UnB9xqAGwO/pZcf7ZYEpXdK/Ss3ydD//aNDK6sFJEtNegU + 7YihCzA9V38Ah2jzPzs7hM8dGMM0nfrxcAhhrjyQy6/xBt1xs+HOEzuGaefRPdZeUizDDKBaSudwcSkj + vHxnyZixivBGyerV72gxjq7yrdEFDLsvx1kX5sEyAF4yAEzz9UU6/TnzPxYgL2+gH8MjdBhEIi6g1A4b + gO6H4pQ6WEZ8Y21NFi2fCj+7lhYFIe7qqnU6ajE6IiImXAbgMcgDGO6eAWFl6SAZ7sNnpmP47pPj+NwT + eyweQV70Xt823tHyAEq0KM9fn8c/X1zB0mZFNOwvrVVEA/AHpyfw6vNPCD2ZXyUaLUor055Wd/ZYXal6 + 997vqO/q5hSYtlWTJ9W2chClchk1WnwXVrgMti4x8TkyAOubNWne4TIYZ/i5IsIKwE+ORvH0VBxPTadw + cHxYCEQYky7uqddju/b6InTK8xbhMrdWwA4NLXjCCsvSvLOeo/vKSa8+k5AsbjakX6LVsYhvTa+r62+L + 3LUt07WjC6trSViPmC4nykS141FpSX9pZggGhX5JFvyY2iMS55pEtLtqc/ex7SqAdT0d+0OYqplBQdl0 + Vqp/1zNl/M2FNfzdpTTWS3VYDakqsytoqEd/03eNrnBaqQvRgp1JhvCVg0P47olpHJoaEivNMFvPXeXV + TWEE3qQ49OyVa/jbC0s4T6f+Sr6BzXJDmHD+5Olx6YefHU2JATAV3ltj4uVdVA+CYwSsU0z9sOviJd5W + Bt2jvASr3NwRNF86V8C1tQzm81W8MZ+mcCSLxWxVCESatJH4d/x+DwYpLmU23lcOjuFYKoo9yX6kBuNC + GOoVzgSd3VefvZU1Emek65y9h5Le1lUA/T1dweKxWSJ3nzyZi4tZvHFjAx+sVnB5rYg0r1kGfvLve60E + tqmZdw1rTqAKXKZay4bpFEZ3bl2pUqzpUQlKaxfxuvrqEyl869ioaBpy2JccHBbJb/17Dk/B9k5/HtvG + AdjgFuU1Co88nfzpdFraT8v1Jt6l0/+H51dwhqxpudFWi8tQk2jBaXWm91EfdiTtCqTZzkX6fJKl/d6x + EXzxCXKBR+kUjPZvg0nH6uirVGpY2ljH1Y08hVYVzG2UUKjWyACE8QXu3CP3n+WefTbRo9ntpekTwHR+ + pgEl3TF/F+xFFpqg+ZrcttsiN7iMiysZvHnV0gZgObA1PvUpLuYmH+ZFHCJ3fyYZwLHRCJ6dHsYLByel + WSpIBo9DQ471jZ62VwcbsVUuwgWHxT1VAbccGqHICb4GqwNT+HH+xhJ++fGyJC/PLOcphGlJkq9pl808 + liFy1wsVpsVUFsCyY8pr2uml7K68mh3xLKNk7J+fSeLbx8fwHHkBnWZNBD8488/wX9tYoht5uh0syj15 + AO6JhQKqlMlFXFxYpGulRVPtkBewgr+5tIHFXBUNfoIezy0nz+NgAJw4TXlGoilgobQGIwG8NB3HH5C7 + 9uz+CYwMDaIvGOouw+nf1iUb9S2LJquGMv1h4c10sSK4+oH+MFLhAIbj/dJ8JLBjl5V3ErWeLqoqC+jS + s8nsv0xbkJTLu0zUwb368xsFfLi2iTOLeZy9mcWN9TI2qw3pcOP7iwR8IrH9HMX5LKW2j4zA7HASkyMp + hAIWSYrXRqN1rZyedeD+/nYAU+jOFdi32PO+Kp/S5o3fZA+qguV0Aau0Pv/10gp+eW0N89kyNmp8T8pr + sHldPD0b23Qt209ujrbyTLZk/HEf3aoDdZbm+muHR/GlfYMY7jMRioQxNJyS1l+/v+82B8v2wFS/hgGw + boAX7Pz8PFpcSiFn5exSTjQEmPbYUjl1XYerK+qRHzZiC6ob0mFF6jO8mE4E8ftHhkWh9ejMGD20qLDo + 3gIQ6jEAen45Vu1IL31TTjCGyfKL2ZNgJGCvm6fJQjT3/XYMgGwSprGi05GbWXLkfXy4sC6x/nuLFi/f + GtNzVa2Azk9xKBNw7h0KUYyfwMsHx3FkPCGiHBE68YMKYvxJS3d3G9szAFavfr1ORrRUEWHT60zUQYbs + QroqXZLzmRKqNK+mElXRNO8avn0/nNR7NgCmVXAcCHjoMInhO09O4sRIREqWk4z4SyRF7cdROvpk454N + wBa84shms8jTH4YKF5omfkJewF9fSAsnWq3dtsooHgUMug9e08MYurohBsDTUY1CTijAiLzTUzH84PQ0 + vnx8D4Y5IcgPzC4jqflET95ni+aPW2Nha5N7nF+yv2+9p+v1Ll55d0mWezv4ByVy9Tc2N7FOG525A167 + soJf3cjgZqaKUrUlugTsufQH/RiNBfAExfjsjrJy0qFROpHiMaubkPMRorC9w+Ad0223bteUZCrbawpI + iUVFWF7tJivvrG7i/aW8qFrNZZihpyESZ9y+I6QnzpQ6WpGdnTdgW1G9bZVAtD+ZjH+QwqwDwyFB/X35 + 0AiGQ15hlZrdu0/EV92b/17yJe7xiTwAe9rVDVjkoUvI57Pw02Jg5NT//GAdr81lsVxqWISZShtvO5xn + j8QwVFTNRs3QyVGdRDMlIchKvl8/OoYfPDOLU3vHEAkGLDorW1qtm0J8W/Ota8Ow1GB6wftbOn7uLLZp + 0XAzPRc/F9bbe39+jTYJ492LtGGYNqyGBr2GP8dPXkt/0CuknE/vSeDFvSk8PT2KIYr1mVykT0p7XOXQ + rEg7P9UddROancjJLTmJOA1Tr9EGKdYbuEj39NbVNelL+FjyF1WUGx209CMzPI5h0dNor9HtU6Bte7nY + ytC3Ng05JJ/qdWSgvGQAUhE/vnQohd9/agr74n6YdH/+vhAmJycQCke2kVjextzeUxXgNth1HplMFhsb + 69IOanr8eP16Bv/zwzW8w2VBxk/zBHtMW8n0kR8qOaRbuzymYdfSoRIybAT4xPz2iQl859QUxc1xit9D + ijzE03X6bxvLvuXreibULYHlwrzzl6xHz6U91ttLV5t4c24NP6eNwnz1XNorCYeddf1BvxdjA9y5Fxb5 + 76dnhnFoYhSjiQH4vZa8tuHVi9BQ4JWdnWbTFcpY9+2ES3rjsDcjIKUCG68qbuTr+NnFJbx+dUPUrVlX + oMGv03bDULgD07353M/z/o/b7SM5WNrk+vs9eHKiX4Q+2JP0dxrweb2YmJgSLkq32McDDQHcF+v+YAaw + cCiQTael33t5s4x/uJzG31/OUgxWQUtJiT823YA9yTePgvBq4IahKibRPp80wLx6Ygyf3TeG0VQC4XDU + foDd2jlbL4revnBnT2ist3onO0Z295o7/2m3m6JGe4Nc449W8tLhxpTVH68WkC42RZnYVLH+UNSPA6mo + yGs/NdaPw/T35HASiYGYwE8Nw9vllruvZGeHUyvozo91pA1ZGJBpY9xYW8eHdOpzPf/sSgmX6P6W6dSv + NFV+xgOY29god3LPd2K4n+WWuYCO1Wq+bzCC3z4ygq8fGcOA2ZC+iqHhIQyPpKSpa6fyLDtmAPg7tUoF + mY0N5DZz8poPN6r4m4vr+NnVLHLlJtoe47E4/J17dzO6OhGqtnJcOmLHmBFcX9ibwPfIE3hq/xSGFaW4 + RWm9UwYAXQvLcEVb0l/QaaFMz4dVdt+4topfzuUE/SYdbkwRzqSc5KH1M49AIoSjY1E69eN0Cg1iNhlF + MhZFJBSR8qPh9brgsW4B6/t3eurSpsbktxtNlEusbVBBqW3gl9eW8IsrqzhHm/9atoJKvalwDl6LRFR7 + Dt3Y9Fvm/WEbAA8ZgGEKHV/aNyix/6FkACH6MdN8DQ4PIxC0FKF3aqrvqR34ru4pXXyZIaMLN4XQoUDW + 940bWaER/2C5JNLiZk/M+jgMixAUFljE+a7lVZI7HSCLvncwjG8fH8E3T+0XHbtgKChG4F7noguWbWis + vmHX8Rnm6jOsQJdDWY8ibG1xzz6Faa9dWsCPzy3i/M2CALbqLElLG4S7BofCXhwYpY0/M4hnphI4ODKA + VDwmGX4+9RlvLs1murZv369DinG3uvM9D1dKnvvvGZos5DTlKhbWWM48h6u04d+Yy4jmQbrSRKPjKs1q + r8w2Vt3zaP3VHUu7N+d9WSv6vV1oR938Eybv6/hoBL93eARfnB1Ep1HB+Pg4RkZHLd5GQ//OQ/IA3BOz + VRzKJaV8Li9NFk2KN5kG+h8vreNvL63R1zXULXWE+zK5D3TYqDZDgZxMe7FqDLehsPqcrIsFvKKz98dP + TeOFfSMYHYohHIlKU4y1kW+d17vmBVzhMSf2KlU6zWt1it0DUnFgV97vt0qPzXoDlxeW8OP3r+OH7y3i + xmoFNUaZkXEKB/1CzHFsJCLqO9xstHckgf5QQIwUu5wej1ub3uiW/Vb/uR9JQB0ASMMTGatytSJitYuZ + Is7ezOCXNzakG3GREZNc1xcYr9dq2bURUaYC8rjK0Eqgw53w6/W47uvy6TUEnDj2eQVY9UXyFr96YBgH + k2HU6HlOTE/T6T9EV99N870TU/1rJwF7H1dHsrEtoU3O5zJCCT2Xa+CH55fx+lweaxwKPA6BgH0EG65F + plxNOCejvlVmiE71B/BVpnE6NoHTsyOIJRKSRYdxL8o2juPtsb2AjiyU5Y0MLpCL3waLaiQxTUaGXUbO + 0jN1OLP2/NX5a/gv78zhynIZDToqoyEf9qXCeG4qhuemEzgynsL06BBi/RFV2vO45NBdkGNViXDnGn4d + Jp/bDfZq+N355C8USljJ5PHRYkbQie8vFfHx2ibS5QaqbZp1j+FgAjxqc+vEpNlx5fcMux9pS1dc4Tl2 + 8j7uiAPoWOStA/SsXt4bx7eOj+Lk2ACX1yRXNDY5iVgsZuWWtMf3oEOAuw0HiWYVbBjAsrAwLy2t8Ido + 82fwVxc2cHa5iALHZ11el4OQs901N2jlkRiuBdPVnqejY6tjkNWFvntsFF87tgf794wqtV1vt7zXLXfu + /pcqipmuWJKBL406Li+v40fvXcF8ro7fOjiKLz4xiVQiJtBcXnMsXfUWxco/fPcq3prPwSR3bHY4jKd5 + 80/FcWh8CIOxOKLhiMhu6bXWfR3b3+S320Ld+QzzlhfZzENMLU6hS6vVRpk9mKUNvEsn/uvX0ri4VsZ6 + sYFCoykJZsHwG+4THj0lZxNOYuTBDydn5FyGu2crSp7akZEovnNkCC+KwKdH8Azj45NIDg6iT0G/P2m9 + /3bjvhkAPpVWV1ewsbEmSYt8w8BPKAz4yeV1XN6oCEDItHvl3QZAI+oe3MO5v8OJ2biRmnu6PzcTx3dO + TuGVI9MYHowJJZatSehCpDmjN9QyRWWIY2FeDG3aJNyc9eFyGv/Xv13A2YWcQEf/+IUDeGJq3JLNpoXD + sNiF9Sx+NbeMsysFMhxt7B+K4shoHDODUSTjcYozQ0qlaCss/r0tvE9kAEyrXZd7TZiHn3v1WeyE6ed+ + /vEKztzM4tJaCZmyouEWaeDuUuFuHO6ksS0SonhymONvlhWoD6XEQxwOmNJsNUgbf2xsQhR+t5y7HRg7 + ZgDU5Tl5YbrQKsVrG+vrIjAaisbIXSvi7y6u4l+vZaRXoNnjypiaZNF6KzwWVkBz7cnO7sBLBm4yFsBX + Dg3jD07P4PjsOPojYUmw2Rp8NjmGc9q6S226u41Rb4wM4/o3x/8XV/P4v39xDZdoc3/z6Cj+7LOH6f2n + 4A/4lAFoio4AlwJZN4BRfvFwEIlISKikA5qlR3+yYeJeu/K2FNV0w5xt1E33r2masraC8XJTVIlO/UuL + TC2ew3laO+y1LOerwkNoyW15XAnJ+9Sbv1PDwWKr8MPq3mO2iNFoHz63P4bfPzaJ/cmQNPsE6Hns23fA + hvver7FzBsDOBDlINY5tcrksFpYWpb5pePuEU51FRTgfkFaMK+4Mci/w4/EZioCjY8Dv9Yji7fdPTuCb + J/dibCguOHqRctZ4frgUl9hsuAA9erpZF+Dq0gouL24gXeRTsowfX0xLd9t/eGZW2IOmUkn4lUqs8Pm1 + 2sLq3Jbn4aXT3pBEoMfjc2TBXOGI6+Fiu27/HV+pkJI2eYVhBTUe1ZRUrdaEg395YxNXs2X88kYG797M + 4XqeGXostSF+C499olquvw3m2aWju/fRVAeDB8lQH54e78c3jg7i9ATF/Y2ayHpPTE4hGo3uCNrvTmPn + QoAey2+1J0IUVbK5PHLZtDw0lkp+cz4j+oIsLlJsKLZgKCy2qXrUHxvEoOtL04kBk2E/XpodpI06jadm + UhiMD5DVD9l67qrwpb7yKKPgej96r0Klgn8/fxn/fHGJwqoqNkp1LJBnNTwQxv/xyjF856lpRIJ+CgHC + cCfAeaPB6Ka66kqAqYDFsN1zbX3uIVV5B9So6zvynuyJmExpRsZpPZvHhzdXpR/hPTosrqyXsbJZRYlO + /baEjB6bj7Gr++9hP+e7DTsvpLgOyRpzlYY1EL95ZAyf25eAt1FCf7QfqZFRUfjhtdDbO7DT3sAOhwDO + 0I+HO9r4pMrnc4ISZDhjut7GP11cpnAgIzhtVhaCR7dh6vLMI/BQtzO6mIOcKjnX6vfEQ/j6kRS+eWwc + hyZTGIgNWPF6N57ImQ87oWiKd1Uit//c1Rv4xfV1nFkq4tpGkb7XwMHUAP7k+QP44pFJIeXw+50Y0q5e + amSdflrqM6VK61atMe6xtt/rAnR9hhs6ZN2g1bnXkM69YpOFNjfwLx/exHsLRczlWNG4LXJcpijvuCoS + pjpNDa29vcsXjH521gQj6GHymCCFgil8eR9rIXrFRo+OjSGZTFqy83rmtgkT/yTjPhmAbuvckTJVFctL + y2g26uKyzWUr+IfL68ImPCf4AFPFcxrPustjuu0OF1uPLn0Yijsg7DdwdLQf339yDF85PoPZiZSAPby6 + PdXGv2NLA9CgjbORy2GxUMGl9QIuL2eFn288FsSz5FUcnSKj0s9upN9+Hoba7DpPY+9Xw/6pI+gC495J + ObZjADoWoQy/pkGbfmEtg+srWVwl7+XMQhZvX1+jWL+FcsvqIbG0DNSq6qEyF5NlKM6J3bxgVOqfDYDf + 08FkIizSctzjvzfWR5u/g5GREQwNpSgcDHRP6aNhAEznb1U/cp8dnNHd3NwUNmFODjJE+0qmgr+/nMHr + 3DVYqKMpNtBye817W3a7e8iaVQvA7hrsSKk6FuzDK/uS+A+fOYQXD04i2OcX8I3Hxq67Fr+7itWxlHkY + c9GhBZUvVbGeKcDrs/j3ktEQkrT5LZyBYTM62+o/7g5B+zI1tNC1iz/ponO9vz735f/tjpz65UpZTvZM + pYHXL82L1t75lZI07+QqdYEmC8W8zSTvCGw71FeApura7WVjHbV4aX6HIj58Zu8Qvn50FE8k/OhDG5H+ + AYn7md77Qd7FjpcBnY4wwz7BtNy2uHuNhsiLrSwvkSkM4DzFrv90eQO/nM9jnUFCpuoavMeYc9cOl+6c + zdXnqnD46PRiIY8fPD2DbxyfxPTgAKIDMSHadHPoaW5+VxeSjT7knzFKjmvmTLzJuRaOHy3orrPbnRy0 + qxZ9u+cIB256N3HQ7t+HOuythdDRKEku7TXbImdWpetcTefJ6FdxMVPGTz5cxEerRdr4DTTahvTq80Fg + M92aHVtM01aX2rIH42E/7DssA5OZINpIBL04ORXH1w+N4tRYP0KeJoV9fZiankWUkaHe+5v06x07aAD0 + jZpdi9T6pnyUbRAKmwXBCHDGt0Ru3rvLRfzkclaMQLHRROfXOXl26XAfUoYTxMp8sebfM7Qovn18HF85 + PI7x0WFR89EZYPd0uvEBTqCl+9hd4p2aLOK2G30L5F5v4d5dedh2FVBvTMP2ANjdb/HGr5CXUixgMbeJ + s4tZYR26tF7BPIWDhWrTkpnXLdUea+N3hS6uK7YOGvW9Xbzx9WCSmIGgB8fHo4LReGFPHP5mBbHYACan + pi0Rly2EZO5H4s897lsS8Nbh+ITcwlkqFZHJcjhQxkapgTOLJekcPEsnQbnectE0eWwDoqbSqfsajwHJ + qLKXybAPX5hNisTYS0dnEYuGpTRn9wpgu1DbnYWwdr+vK4F3l9fZpsm0chWbBdr46zmp6b+/nKc/RVzd + KAuMt9G2wNMaGGa4eBV2+zC6/9Pd0wFd7wfCPkb6hfHlJ4bx8uwQouBafwCjY+MYSY3YDFMP2ul9gAZA + DTU/rU4bpeImMpm0gD5WC038gjyAv2ekoGixWd1cps76Ktpje3k/LgZADV77DAL5FnkBf/TCAREBDYfC + VjbYrsvvPNZ+++N2BqA7i6CHMAwznyG5+wV6vtdWM3j72gp+Rc+YtQSXNxso1ShsYc+QvRVXq/iDaMbZ + qWHtfadM2msAeJ0GafMfHAzjiweGpC18POIFpzeGUikMDg4JpdpvjgFQQ1xD8gRy+Rw2NtIoV+rINEz8 + 65V1/PPHG7iaqaLC7cM8uR5DEfA4hBuakeexYRiie2IewacmY/iz52bwmX3jGBtKIhiyNAXcAhUP6fJk + uA47uJuDrNdY4C8erBuZ3cxjI1PEjXwN797M4vWra8LBn6k15dSXe/IaliHv+iw3pmR3Z/dtHkH5i114 + 1epmWpRtAYrpp8mwf3H/EF6hP9P9Xlr3DYxNTMrmt1p8rbnsDfEexHgIBsDdKAM5JW7O3xS1YdaIXyjU + 8c9X0vi3axlcTVdQbelGD5e2XUctDDuh9hjkC5gMgu4nFQ1IbfhPn9+HJ/ekEA2HbfKQh2kA3AhEHt3U + XNb1M5MxYz7YuyuQQWeGnrM30yK59dFaGYsU61cbDOixvDcx6G7dPU3561Ij3s2b3z0cIJUlgsNLM0jP + bDwewG/tTcoznYnRc+y0ECLPbmpqDyKRsOImNF1KUw82+f3wDIArZsrmMlhdXUO1VBLY6kKpg59eTeNf + yROYJ0+gzNhvKYuppJi7peJxMQCG1bPe52HykH78x+em8dWjE5hJxREKhOHx7xwN1CcdDhmJAxfWLaqW + 5FYZ2Ty359ZwnZ7bzy6v4Z2bGSzkKgrQoxh9FElJV7Wx131+RMIA98Zlb5UZfbjW3+f3YTIWwot7BvDb + FPfvSwRhtFvoC4SwZ88UIgzzVajPe+ux3Nnx0EIAZ1hNKowRSK+vo1IpCanoHMWI/z6Xxc+vZzGnwgGb + 1FFvfx037f51su3Bt9Tf58VLs0whNomXDowilUzQaRFRNND6VQ942I6b46h2TAvPYLbaUtFZIi/u4nIG + HyzncX6lLGq7y5s1MuBtq7Ij+UyPK23jAFxuRzSz642ArlRammHwUGjT5zMwGQ/iM9NJfPngEI6ODaBV + KognNzoxjqGhIZdepMuA4DfOADg9b1zHLpAR2EhvoFatiOz4dTIC/3J5Fa/fyGMuaxkBKKYXa+/v/vrv + vQ3rLPDSJhuhUOB3Dqbw7VPTeObAOOJ8Yvi8XUi4Bzq6erSsyjuHb0xEUihVsECx/geL69K48/7ypngA + m/UWmh3LW5MMv6GUi+w6/uNhACxrCNn8IYr5x+m0f3ZyAK/sG8TJiQF4uAvU46WYP4nksNXbL6Sq7ol1 + +bUPcjxwA+DmtOuui1udaqVyCcvLS+IOt2nSLqxuSmLw53M5oXuuthzKrS3wpo/ucHdEmkzQaeBoqh+v + kgH4/rP7MBKLSIuoZ7ty4/dhWId2R5qJ+OQvVSrC0MMQ5PcWcnhvKScy5ivFOkrNjrXFFZTXheVVuLDu + Z3Y7xpzdbwAUnoMMQJjuc08yKMxKLx9I4XgqAk+zKrT4MzOzSI2krLmAYip2pz5Md4L1sc4BuApKZjfW + nLc1ewLr62vIUywpuT+Kk5ji+V+uZsgIZEW9ptayJtA0HicD0N00xHcWDXjxhX0p/Omzszi9J4nhwbiQ + Q3iMB4sW49HRHARKSqxBz2A+ncF719fwxvU03lssYGGzLGpCLX6d1xHatEtcpgMO6sIbdZUY9JePwOa3 + rl4OqxC59NPxPnxmbxKfo/Dt6dkxhP1eLCzepBBuCBOTk4j2R+37NW2SGGvd696MB53neQgegDM0Ptpx + Ky2mm2q1KqEAdxDypPiDYVzbKOFnVzfw2vUcLqVLqLc7MPHgN8J9G7bSkG4EYvIQE1PxMMWRKXz/5DiO + zowjwYKQPv+v/3n3MER1h6m52i3J8q/Rqb9abtPGX8PPr6ySgS4hXWqgbvXs2c1GvSeZQyoK2/270ynv + To7t1iGszz4PZpJhvHJgCC8fGsVEoCU9Hn20btlwjqSGJYdjJf20l6eVlHS3hNEFo39QYxckAd3DOhsY + RMKqw/l8HpuFvDDa+gNWifAXdNr89MoGPlovodJQnWAe/asaXqvQczZAo9NVLrx7n/pDGB7dLmo43gDN + A9eRDw5H8D0yAN9+ej9mRofg9wdshKAtW30nDIkbLOVGrblarkx0Nx3p70rXYbOJSqkkgJ7FfBlnbqzj + vdUSzi/ncTNTQrHWoVPfcHu1d3nGzjU88KH1G9Xh0Qu1daS7TJdf7unyUrkRi11+JlOJ9HkxS27/Z2bi + +BK5/RP9ffCjjf5IFAk6+ftCAYRCQUW2stX9u//94NOAu8wAdF2Y6LzpDkLufOMWuZVyC2/eyIoRuMiy + 1bW2BRK2O+66ceiPjAFwsQwbmgnItC59IOSTBfa/vXQQz8yOIM5dfn0BOVHuZgC623txBwPgNNbY3BVm + G/VaA9liAcsbOVxdL+DcSgFnbuZxgTwyhvE22xZe3/Q6TLu7evQagC7T191i5A7M3Y1RlnYfd3L6cXAk + gs/vH8ZnZwYxGfWg1aiLcKfId8di8LIitPGwsjZ3H7vWACg8iEhjl4plrK4sodWswyD3N1Nt4+2FvBiB + D1csfrumaXkD1j53GlJM04lBd/PaNFxfdNOKG0IpPk4ny6snJ/C73EI6MYTYQFxafbvyAd0Yq+4lbd7e + QpgKVKUVfpgwiFGaTZrvzVIVFxbW8P7NNM4s5vHRSlFgvNy01TRdvRoep3HnUaBzs4E72mopdKkVknQ7 + AbpLXRtSJnMZDPlFOOVzszEyACMU/0dQrRTg8fUhlUpRqBa35N80x0X3U941Y9caAD0k8dRmJZgS1tbW + UCwURIO+1PbiV4s5vHYtjfcXWd66gSo8ihzGtA86B022+ybfPeyD2a2irDc3k4eQ93NsPIpvPzmCLx+e + wMzYCCLREHwev9NmjF6svssiOHB1+ycOkMp5eYf+VyejWyyU6OQvYrXYxE8/uok3r2eFvyFbrqHesvD7 + ptdj7ZSOqcRRHoGcTA/dkoU41NRrvU9EbV5VtWCQD1dnuET71FQSL+1L4WQqgJGwV0KlFq3TmZm9GIgP + WHReqsK1XfXnhzF2rwGwc0WmxPLMJcDtpLlsDpvZrPy75u+jMKCEf7+6jnfm81ImrHXUBnLVnnsg67ty + dNFGm4ZrI1vkoCw+2t/nw8t7E3j11BQ+e3gPErEoAn1BhzjScFx4hzfP+oHTTehi6tAErsLV0BZDy3O9 + nsvj0gJ5V8uccK3jnRtpzFO4VSLD0FIoPtk4Ns+gxza6u3yae+Z7i+49PT+aR4Gz0m2IpxXyG5iI+vHU + BJ36B4bwxHAEgXYdfbTZw9F+SfTx6c+yb3rYOZVPDcC9DYdfQCfzIPXnWrWGTU4O5nKo1mtoeP1YLDbw + 5rUN/OJGDh+nqyjU28p1M10uWHdWelfE/a7hJuXU+gh6w5oqieehjTYbD+JrR0bwnaf2YP9YgkKBmFBH + e4RTUffO3zqXhv2V/qahSEYMOrmaNK9VVCoV1OkzuGvvXy8tifLOcr6GdKUupVe5Gq/HxcjjipFNV+jy + CIQAeqLcM+ZuQXbySG14WszZ4Me+wRCe2xPHS3uHcHg0Al+zIqpLLNwZj8WFVr2PxTu5r995qwdd2r+n + sfsNgPtfooZjsQptbuaRy2TEXW3RomU2obcpRv3FtRw+JK+AqabailDC8qS3MAC76MjqIv2QMMDojkNh + Ye4ZaXZqYgC/f3wMrxwawcz4iNBHi8uJrePNWw2ANY+dTluaUVgxaHE9jbm1HK7lG3jj+oZ07y1RrC8c + /Gwo2MtQORa38BFcn/bIGACXd2S41oWTD7DKe/w3SysmKd6fHozghT0xvDCdJEMQhq/TFOWi5NAQBoeG + EQ6GXCKxhg3usT9ul07JrjUAeugknrXw1DIzOd5qo0wx6sbGBirlCnwUDnBykIkmXruxIXDUdYpfay1T + hRH8bs5TcB4Wdkfq2t3t2BW768qFaSerhsJ9eGEmgR+cnMCLR2aQSsQtzXhNjmu4N6lhr3fTDn87CsZr + xfOLmQLeu869+hm8u7SJuWwNhVoLLQ6nPC6jYijtPV3DV++rf+Z4K7t3GMq1N+2SsTs5rOogtLHZ/wrS + hKYifXiSDO7pPQmcnohiNhGWpGyxWJNYf2Q0hWh/v1VV6CmDmD0exm4cu9YAdJ1jLrCQA6Sw8AJMMJom + I8DtxH3+ICodA5cyRbw5l8Fb85u4SS5skVtQ7TXcTTwh77obVq2rPNVF3GmqJJVk6T0W5px+NhkLitz4 + Hz5/GAfHkkInzsnRXiCJO/yUVBdt/jZ5TXzqL6c3MU+b/9xSDm/PZ3FxpYCVUh3VZke4+i2MhSXzZiUW + zC6jdEtJzVDl1kfBA/Aog9rxuL5tCtSZiTuj5MrviYVwcnwAL5KxPTQUEtamSDAIf18QBoWezLgcDofg + 5Xl3Abh0JUHWqgEVzu3OsWsNgA1e0Ymt3h/Beo6scMMnWT6bEx1CYQoiQ7BSagnT7Bvkyn60XkG2wkg2 + RXlp6/DtNgNgSELNajF1qdmaLkOo9mHY78GTk1FRAPrCASYPSSAYCovKj+GSkXbwUZZyM8tuFQplrBYq + OEOx/i+ZjXetJNLtm2VmZqao19AnpWEh1lwwZSc06ahTX/8xd89c3mma9X0YyqvqaCSiKFoiQAYvHgpg + 31AYz5G7/8LsEPbGQ/A0SlJ2TQwOYYDifY79fcLArAVWdLbfdIILdyKr69N3z9i9BuBebsK0xEeYV2CT + DEGj3gQ9HZANwAeLOTECLEm2SDFthWJaLtfI6WYYrpq5pp12oKpdMFXbA7E2qf2iHR+uxMRWVk95QV66 + cD6RvnRgGN9/agrP7p+QRFRfny4Lqld3LKKOdqeFCp363Lzz8apFy/XL6+u4sGxJttc6Vv2/S7VZhQ+2 + 2292b3b3NbsCl/sytsza3/I9B7lnXZWqetiqSi7gkz5gTAtMxQYt5CPPKhHF6alBPEPG9fjoAEbDAXRa + dQTDQdr4MTr1BwTZx57Rbs7ub3c8BgbAevhsBJrNBjZFhiwnBoEpllumDx+Tq3tmuUDxbQlXN4rIspur + mIZEbQY6XnMRjHQZANOVQzRgERM4n/3Ah4AbTZATgBmKSV89OY5vnZzBgclRhIVCzGKX5RCpqZSDi/UG + rq1k8d6NNQH0CBtvroLNStNq2eV58Hq6EmHQc9Lr+j+MW96uAbBts6HyJtaEmep0tpmSTVMhnijWp5M8 + QcZ0djCM05NxPDcziD1RD/p9hpRf+bbHJiYQGxiAn9x9jxYl/dQAPPwh8SkPlXZlAZJSoYR0OoNisSBC + C/yK5c0Kzq0W8e5yCZdWN7GUrSBXb6Nhw4OhNpZTAzZd7q21EdRrzYeX7LKDIYm3mXPOi8/OJPEqeQGv + HN2DwYEwgowNoM1sQamL2KA/17NlvH1jQ2L9S3T6Z0pNSfJZZJzKY7gdDZed3Hq4BuBO4YWbV88dNGpx + FZti3FRdd9KjbyBCf8bjQRwZj0l9/+hgEBPM3tOwNCqCkTDi8RhSg8MI9PXZ82QnWx/ajOzMeOQNAHoe + uam46RgvkM1msMHS5P4AWuwd1FtYa/rw3mKWQoO8gIhWig3UWbRCI+90d5YNCzVUc5Hu2jKdEs/DOBF1 + bVD1lHPCajTSh1cODeN7J6dwbDyBWLQfhs+LLBnCK8tpnF/O4Z2FHC7YMN42Wu5mdPu9u6bU9ZEPvzXX + fQ1b5m60fHJHy8vpdDFUEsTSEGTEslearIB4FBInAAAOaklEQVTkQBB7EwGcmorRyZ/AdH8ARrNKYZQP + fR4/BuJxJFNDws7MAi6Gx9U/IOHS7sX4b3c8BgaAh+6eM+wuQHF/ye3NkxdQpBOwVi6SESCrbnhRorDg + eqaCs0t5nFnapBChjDJ5A5wb6EAj3Kwkl2F67ffU8t42WuwhDEPV+izySSt88dO/DqUiAhD6nYNDGOyP + okLH15X1Ap36abrPAq6Sx5Mt1VRZ1GstXk9P3H4bso7dMG5nhOzva/gjz4lpoScdGTZ16gtdlwexoAeT + tPkPj8fx9GSMTv84UhQC+NoNOQQS8QR5jhHhXvAH+pxOvi4YNRyv6BG2Ao+NATCVT2YohJvOVbEICQuT + Nhp1lEtlQRE2KUwwvX1YITeYJak4QfgRl8AKVSGv5JhY6Kp7uuxs/Lz+x0N48jYlmEJIGoqXLx704cnR + AXxxbwwT8Yh4Nh/QPbFo6EKujmKzLRUTcYk9PuW8dJw3dnUQ7cZuybsaAPmH6RgxQ8X4bauZl/MlYdr8 + wwN+HKZ5Yiz/0dGk0HR7O3UJHUO04RnUYyVTLSZmO6HqsvkaMfiwSVp3Yjx+BkBvUV03N636NGfDq7U6 + crkshQZp6Xbjk6FQ72A+X8fFdAUfrBUxR57BaoE8ByaydNVyZevrpJgNTHgIBkD+02sAIIrCSTIC+4dC + GI4EsF6o4WauinyjhTrX9TWhqGGFOrawpj2F3SCprtl9lAwAnPYPQxp4KI73ezEc7cP+4SiOjEZxciKB + A8kwwl4TEfpZu91EhzZ7f3QAw8OszmvBebsnAZ8agF057ESvU2s1bPys4aINswaHBRtkADLpDXDBjAU0 + megiV2/hKp2Ul8kQcG7g440yNsoN1FttCxEHve90wgwPKStuOnZHCWdKzNLhNlVTFrtfEoBtuXZJX3g8 + XZfqVKo9u2Jzb3fcjjxU0KIwbcPIOnyGlxV5DCRoM08kQjgyEsWpyaQAeiaiQQToUCjVyohGE4j2R4Rf + gf+EQiF4vIZTiXV/xhaG8VE3Ao+FAVCYTnUqOiezU6ZxY+BNCQvK5ZL1b/qamYcKpQKYajBTB+ZyNXxI + 3sCZhTyWOCwgQ8BlQ93/Llj9h/TgnQjAcFBByhvhzDanrg2NcVATZHhcdW9DJ7EMu6tPfvKIGQJ10c7B + rIw0Z/YZwhsKeTERC+BoKipoviPDEYxT3M8Yfv59X19QVJeGh0ZEo09mkBudDE8X0sHd9/Bob/Wtx6Nv + ANSw211dT8otVNz74nanrV5jol6rCYgol82Sh9BE29uHzZYHV9ZyeH+1hLl0GfNkFJaKdUvcomPJP5me + h9D/7lr8NpG03TXUUfbQUOyz7k3dPRHu3kM9J1udsA/bMNxioNwPVcmQ8Wu4FYrpCRjCOzMQxr6hIE6M + DeCJ4RDGoj4yCiaanAOh308mkhhOjUiST3dSAj2bvmfdbNUp+DiMx8YA3MvQrpteVPw39xQw4UizXhd6 + 8mqzCS+5hIwf4H6Cq+kqPlwp4BrF1blKk9xHpsMydSu8AtEYrljRwRbK6WJ67KakLnqpHgIPd4XB3aZi + KloqZz+6NmbXYnSvXldN3zC67cEOj65sPBz0hJ1BU92XvZVG3Y2nE3dddQmBIbvmRSa77TRIsT/Gm5/m + fijix3Q8iAMU5x9P9WNP1IuD44Pw0es38zkEAn2IJwelc5L79hkf4vV6t3Nrj/X41ADAWrxcNiyVSlbV + oFrF5mZOyoa1RsMqHba8FBrUcXG9gKuZEhayFawUyHOoteh3DYs226Mw+IZu5nEbAMMxAIbhgqdCUU2p + ktUtBsBUmHxtALbYxV05Aee9HiRQ0TEAMsMuwJI6vXXFzO4aVBl7jbpU1RudwLXDGuuJSRJXavyGxTvE + Ux3s82I43IeRWAiHh8I4Qu7+TDyEkbAHfWhiKJlAu22gXKnR5k9gcCgpNf1PN74zfmMMwFYgkt6v9WuY + h7Cwmcfa+hp5BnUpIbFMd830IVOqYoE2PucJLq+XcDlTRr7cQqnSQrndQcNCElgCpgZcxQJ1JtqimrKM + FcKw052FV0R09maAQ2rilCCdTbeTWfvtuP23+zx3i7VdiVUEpw7ttQttqFl3bPdel10V6Er+siodPFPc + /9BHm74/6EMs7KeYPoDDqQj2JsM4NBihje9Hn5T/2miYLWnaiYT7EQwEEYsNCEHnQ1NW2qXjN8YA6HG7 + zG2vQWDKsWargVKxhHQmI0lDCRXpROG220ITWC42cCNXwoW1giDsuOy2UWHpazIEdfp9jxLDFEPgcbEb + 6VPaY7vG9rcM1alqWI08+hQ0VR+wrR0AOLh9jVcwdVR/6ya+XXzfG2PfHXJ7FwNxS7+Qabv57nKdoe5f + 2mftzkdX9t20DCG78H6PFyHe9PQnEQljhk77fYkQ9ieC2DcYQNjTQX84CC95aswTwdwQfcEAkuTyR8Jh + uWaP3bzz+MTvOzF+YwxA7wK/HbTUYeaxSmwMEClXyqKBxyXEUqGCKhkD/h1/MCibfG2zgqVCg0KDCq6k + y7iZryJXrgtLUa1pJZ5aHQs62kWjpQ1AT1LJOjUtL0BdmErs6W5Ep//O3Ydnf+1OD9ylfr6VAeids+5f + dMBQ3fG861+O9+/i2TfgimjUdep7NzXw0tr4bU7qkYsf8iAR9GIwFMAIufb7hkKYGYzhABmAVIC8AbTk + WlhIhmP7wUGK8fsHRIST3Xyvzwcvb/zbeEqfjt8gA3C3YRsFvZz1acGgW3IpO62O1WNQryGfyws8lE8v + piZjWjLDFxAyko1SE4ubVdzMFkXGbEk49RrIV9soNlsW8abzqZDUtZbb1nVso9O9cTr2BTlRsXvDdjHc + Ar9uJv+upUGj55BXt2JoXIINy3V7K6YrqWkolJ4yYT6PUHBxGTNE8RZTcA0G/RijE55Vdvck+2njRzEW + 9cDbbCBMYYBPzVEoEqWNHiB3fwCx/n5p2LHoy1yf5nq2Orvy6bDGb7QB2NLtVZveNgDabVfBN4tlMKKQ + zyhOEmayGckXMBKPO/CYYosVi+peH9bJW2AY7uJmjQxBBfP0d6HaQK7WQbnRFu+i0VGYAn0aCqGk1exj + 7R0lt2NYzT92XRpdl6v+Yf2n2wAA95oS6GHOvu1ren9u6JDEdgacU9/WCOSN3pbbpDnzSBbf42fAjh9x + 2vzjA32YTUakQ296KI7hqB/9XlN69SM+A23VyMQiqeFIBLE46yWGLUYkOvHtSMI0nYqwK/fwqQHoHp8a + APSceEbPEtEJaVk8Hbu0pW0Ct9wyHRlLmrNBqDfq5C20ERmISEVhs9pEsWEiRx7AjUwJ65UWGYI6Vgt1 + FGssvFFHgV7fpFChSRujYZ/4HeX5W9JnfDrauIOOzqC7in5GT0hwhzDgE9f33ftmiyqkvKeWabP4x+yQ + WwIaAekYoKhcgDqRUB+iAR/F717Mkos/Gemj0z6KKTIA4T4T8VAIQa+BRq0q1ZgAbfT+cFQ+o482fD+d + +FzLNxQLb8/FdKFDP930W4/faAOgR3d86Dpi3WV9Ge4+cCtYEBYdBphQmMDUZOVyBeVSCaVinhamT3Dm + TNjZF4qiSj8rtAxkKjWsFelPuYEN+vtGrkqGoiV/0pWmdCXW2szdZ6LFDU2GpUXHOYSOdcE6wLaYaewr + 11tNoQF77u2O7bTY2jDI9zod+/adBKMba+AYJB3Se8i9ZwlTL7vr5OL7PBaN2Ug0iFTYj2S0D8P9QYzQ + nzE69Ucp1o/Ra5lnLxQMUFxfQKPKpC4++MitD4Qi6Cc3vz8cgs+rKih87x6nlOh6RHCLnnwa+99+/EYb + gK0Sg+onWzT89loD0/6v/hZ323H1gNmIGF7cEcPQEb59/uMjt7Ujp7dHZM95c+drTaSrHeTLNek9WC23 + RH1npVhHhQxCnjyIXK0lwL5qgzsVresWJCNXK7imrersHY/h6AC6YmAHBOTaJe4Kgr4T9+vc3pCNgNO2 + RycoOY1plT05/GFADn+Hy6YDfQbF8n10QntFQ2+INvwEbfaJ/gCd+hTnk4c0FKavvRYJZ5M8JymR0qZm + 8dP+aESAfn1+PyL0dYiBO36f5F48OtSBCzJgP0v383Xu3+h9WJ8OGb/RBuB+Dd74jUZTkoSWtHYTpXIJ + xWJRsOpcUWjUaxb/CJ1w1XqTYtoAOoYXxWoDRdrb5VpDEIcbFDJkKnUJJfKVBsqNFgr1Fkq1tpgpBiJZ + 4YiBEoUSIlxJm6gjff8dQSh22qYYHsOjynHcLOPjK1WJON41XicxxxtZCIjbbTld/X6vAJ3a9HMmxogE + vNITwQFRf58HwxSg+31WeTQRDtK/vUjyJqfTfigxIDF82GiinwxCgjZzq1aRmJ1NSINCJ67P+wNWI06A + XPpAgFx/8gL4Wvle+H19Xq8LT3G30ZUU+XTcYXxqAB7QYHARGwD2MthDqJJHwD0F7BVUK2U0maOQPQby + IDz+PhHmbMCLetugk7+JiknGgUIHJvpgReRN8hJYBi1HXkKNjAI3KxUa9B6tJn1N+5i+Zo+kAeZKtDLs + /DXLeHsZluztiLKvr2OKUWpxiZK+DnmtshnzJbLbzok3ViFm2+A3eMN7ZSN7KawJ0lE/RCd8KkwnPZ/2 + ZCjiQQ8SFNdHmFWHjMpAJIhmpYQWGTxfX4Bc+SDdY5vi9wGKXnwSNjHpBkNzg7L5AwK6+nQ8mPGpAXiA + QzLTyi/l07UlnATMU1BBoVBEmYwCn7gh2gAl2jQMaPGJwaiRUQgKrZnp60ODjECFjEZdgC9AiTyISrsj + X9fIWBTqTItGG5/ev8SSXqrGXlKtzX7a7NzUxAagz+iIW92ik90HqwxnFew8knnvD3gsd4GuN0JufZzc + dpbJ8tPmDtOfkAFpP+4jN59f6jObUoP30XVafI0doWfjZCbTlvNpzhJa8XgcATII/Bqp13u9n8bqD2Gw + Afj/AdlDAoEyFHaAAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAA + AAAAAP7+/rT+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.vb new file mode 100644 index 0000000..6741b82 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmPruefschrittUebersicht.vb @@ -0,0 +1,781 @@ +Imports System.ComponentModel +Imports C1.Win.C1TrueDBGrid +Imports DevComponents.AdvTree + + +Public Class frmPruefschrittUebersicht + +#Region "Deklarationen" + + + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Dim Pruefschritt As New clsPruefschritt + Dim Pruefschrittresultat As New clsPruefschrittResultat + Dim Pruefschrttmassnahme As New clsPruefschrittMassnahme + Dim Pruefschrittfinding As New clsFinding + Dim OnRefreshAll As Boolean = False + Dim TreeMassnahmenUsed As Boolean = False + + +#End Region + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.StatusImages + Me.TreeUebersicht.ImageList = Me.ImageList1 + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Private Sub frmPruefschrittUebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Try + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + Me.TreeMassnahmen.Nodes.Clear() + 'Dim tn As New DevComponents.AdvTree.Node + 'tn.Text = "Erledigte Massnahmen" + 'tn.Tag = 0 + 'tn.ImageIndex = 0 + + 'Me.TreeMassnahmen.Nodes.Add(tn) + 'Dim tn1 As New DevComponents.AdvTree.Node + 'tn1.Tag = 1 + 'tn1.ImageIndex = 1 + + 'tn1.Text = "Pendente Massnahmen" + 'Me.TreeMassnahmen.Nodes.Add(tn1) + + 'Dim tn2 As New DevComponents.AdvTree.Node + 'tn2.Text = "Überfällige Massnahmen" + 'tn2.Tag = 2 + 'tn2.ImageIndex = 2 + + 'Me.TreeMassnahmen.Nodes.Add(tn2) + + Refresh_All() + + Catch ex As Exception + Finally + Me.Cursor = Cursors.Default + Application.DoEvents() + End Try + End Sub + + + Sub Load_Status() + + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + 'Me.DokumenteAllgemein.Doktype = 4 + 'Me.DokumenteAllgemein.ThemaNr = 0 + 'Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Me.DokumenteFindings.Show_Toolbar = False + + Me.DokumenteFindings.ConnectionString = Globals.sConnectionString + Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteFindings.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Me.DokumenteMassnahmen.Show_Toolbar = False + Me.DokumenteMassnahmen.ConnectionString = Globals.sConnectionString + Me.DokumenteMassnahmen.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteMassnahmen.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Me.DokumenteResultat.Show_Toolbar = False + Me.DokumenteResultat.ConnectionString = Globals.sConnectionString + Me.DokumenteResultat.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteResultat.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + + Me.TreeUebersicht.Nodes.Clear() + Dim i As Integer = 0 + For Each r As DataRow In Pruefschritt.Pruefschrittstatus.Rows + Dim tn As New DevComponents.AdvTree.Node + tn.Text = r("Bezeichnung") + tn.Tag = r(0) + tn.ImageIndex = i + i = i + 1 + Me.TreeUebersicht.Nodes.Add(tn) + Next + + End Sub + + Private Sub TreeUebersicht_AfterNodeSelect(sender As Object, e As AdvTreeNodeEventArgs) Handles TreeUebersicht.AfterNodeSelect + + Try + Me.C1Daten.Columns("Pruefschrittstatusnr").FilterText = Me.TreeUebersicht.SelectedNode.Tag + Catch + End Try + Me.DokumenteAllgemein.Pruefschrittnr = -1 + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Pruefschrittnr").Value + refresh_all_Details() + + Catch + End Try + Me.C1Findings.Enabled = True + + End Sub + + Dim Treeclciked As Boolean = False + Private Sub C1Daten_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Daten.RowColChange + If Treeclciked Then Exit Sub + refresh_all_Details() + + + End Sub + Sub refresh_all_Details() + + If OnRefreshAll Then Exit Sub + + Refresh_Toolbar() + Me.DokumenteAllgemein.Init() + Me.C1Findings.DataSource = Nothing + Me.C1Massnahmen.DataSource = Nothing + Me.C1Notiz.DataSource = Nothing + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Pruefschrittnr").Value + Refresh_Dokumente_Resultat() + Refresh_notizen() + Refresh_History() + Refresh_Resultat() + Refresh_Vorgaben() + + Catch + End Try + Refresh_Details() + + End Sub + + Sub Refresh_Vorgaben() + Me.Pruefschritt.Get_Vorgaben(Me.C1Vorgaben, Me.C1Daten.Columns("Pruefplannr").Value) + + End Sub + + Sub Refresh_notizen() + Dim notizen As New clsPruefschrittNotiz + Try + notizen.Get_Eintraege(Me.C1Notiz, Me.C1Daten.Columns("Pruefschrittnr").Value) + Catch + End Try + + End Sub + + Sub Refresh_History() + Dim history As New clsHistory + Try + history.Get_Eintraege(Me.C1History, Me.C1Daten.Columns("Pruefschrittnr").Value) + Catch + End Try + + End Sub + + Sub Refresh_Resultat() + Try + Pruefschrittresultat.Get_Data(Me.C1Daten.Columns("Pruefschrittnr").Value) + Me.txtKurzbeschreibungResultat.Text = Pruefschrittresultat.sKurzbeschreibung.Value + Me.txtBeschreibungResultat.Text = Pruefschrittresultat.sBeschreibung.Value + Catch + End Try + Refresh_Findings() + Refresh_All_Findings() + + End Sub + + Sub Refresh_Findings() + If Me.Treeclciked Then Exit Sub + Try + Refresh_Finding_Dokumente() + Me.Pruefschrittfinding.Get_Eintraege(Me.C1Findings, Me.Pruefschrittresultat.iPruefSchrittResultatNr.Value, ImageListFindings) + Try + Dim findingnr As Integer = Me.C1Daten.Columns("Pruefschrittfindingnr").Value + For i = 0 To Me.C1Findings.Splits(0).Rows.Count - 1 + If C1Findings.Columns("Pruefschrittfindingnr").CellText(i) = findingnr Then Me.C1Findings.Bookmark = i + Next + Catch ex As Exception + + End Try + Catch + End Try + + Refresh_Massnahmen() + End Sub + + Sub Refresh_Massnahmen() + Try + DokumenteMassnahmen.Init() + Me.Pruefschrttmassnahme.Get_Eintraege(Me.C1Massnahmen, Me.C1Findings.Columns("Pruefschrittresultatnr").Value, Me.ImageListFindings) + Try + Dim Massnahmenr As Integer = Me.C1Daten.Columns("PruefschrittmassnahmeNr").Value + For i = 0 To Me.C1Massnahmen.Splits(0).Rows.Count - 1 + If C1Massnahmen.Columns("PruefschrittmassnahmeNr").CellText(i) = Massnahmenr Then Me.C1Massnahmen.Bookmark = i + Next + Catch ex As Exception + + End Try + Catch + End Try + + End Sub + Sub Refresh_All(Optional key As Integer = 0) + 'Me.OnRefreshAll = True + If TreeMassnahmenUsed = True Then + Dim mtn As New DevComponents.AdvTree.Node + mtn = Me.TreeMassnahmen.SelectedNode + Pruefschritt.Get_Massnahmen(Me.TreeMassnahmen) + Me.TreeMassnahmen.SelectedNode = mtn + Me.OnRefreshAll = False + Me.TreeMassnahmen.Focus() + Exit Sub + Else + Pruefschritt.Get_Massnahmen(Me.TreeMassnahmen) + + End If + + Load_Status() + Pruefschritt.Get_Eintraege(Me.C1Daten, Globals.clsmitarbeiter.iMitarbeiternr, Me.TreeUebersicht) + Dim dt As New DataTable + dt = C1Daten.DataSource + Dim ds As New DataSet + ds.Tables.Add(dt.Copy) + ds.WriteXml("K:\gaga.xml") + + Me.TreeUebersicht.SelectedNode = Me.TreeUebersicht.Nodes(0) + If key = 0 Then + For Each tn As DevComponents.AdvTree.Node In Me.TreeUebersicht.Nodes + If Microsoft.VisualBasic.Right(tn.Text, 3) <> "(0)" Then Me.TreeUebersicht.SelectedNode = tn + Next + Else + For Each tn As DevComponents.AdvTree.Node In Me.TreeUebersicht.Nodes + If Microsoft.VisualBasic.Right(tn.Text, 3) <> "(0)" Then + Me.TreeUebersicht.SelectedNode = tn + Exit For + End If + Next + Try + Dim i As Integer = 0 + For i = 0 To Me.C1Daten.Splits(0).Rows.Count - 1 + If C1Daten.Columns("Pruefschrittnr").CellText(i) = key Then Me.C1Daten.Bookmark = i + Next + Catch ex As Exception + MsgBox(ex.Message) + End Try + End If + 'MsgBox("Hallo") + Me.OnRefreshAll = False + + + + + Me.OnRefreshAll = False + refresh_all_Details() + + + + End Sub + + + Sub Refresh_Details() + Try + Me.txtBezeichnung.Text = "" + Me.txtBeschreibung.Text = "" + Me.txtPruefgegenstand.Text = "" + Me.txtMassnahmen.Text = "" + Me.txtEreignisse.Text = "" + Me.txtHilfsmittel.Text = "" + Me.txtVerantwortlich.Text = "" + Me.txtVerantwortungISI.Text = "" + Me.txtAktuellVerantwortlich.Text = "" + Me.txtTermin.Text = "" + Me.txtZugewiesen.Text = "" + Me.txtErstelltam.Text = "" + Me.txtMutiertam.Text = "" + Me.txtMutierer.Text = "" + + Me.txtBezeichnung.Text = Me.C1Daten.Columns("Bezeichnung").Value + Me.txtBeschreibung.Text = Me.C1Daten.Columns("Beschreibung").Value + Me.txtPruefgegenstand.Text = Me.C1Daten.Columns("Pruefgegenstand").Value + Me.txtMassnahmen.Text = Me.C1Daten.Columns("Massnahmen").Value + Me.txtEreignisse.Text = Me.C1Daten.Columns("Ergebnisse").Value + Me.txtHilfsmittel.Text = Me.C1Daten.Columns("Hilfsmittel").Value + + Me.txtVerantwortlich.Text = Me.C1Daten.Columns("Hauptverantwortung").Value + Me.txtVerantwortungPlan.Text = Me.C1Daten.Columns("VerantwortungPlan").Value + Me.txtAktuellVerantwortlich.Text = Me.C1Daten.Columns("aktuell_verantwortlich").Value + Me.txtVerantwortungISI.Text = Me.C1Daten.Columns("Verantwortung_isi").Value + Me.txtZugewiesen.Text = Me.C1Daten.Columns("Zugewiesen").Value + Me.txtErstelltam.Text = Me.C1Daten.Columns("erstellt_am").Value + Me.txtMutiertam.Text = Me.C1Daten.Columns("mutiert_am").Value + Me.txtMutierer.Text = Me.C1Daten.Columns("mutierer").Value + + Me.txtTermin.Text = Me.C1Daten.Columns("Termin").Value + Catch ex As Exception + 'MsgBox(ex.Message) + End Try + + End Sub + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub WeiterleitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WeiterleitenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("Pruefschrittnr").Value) + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("Pruefschrittnr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Dim save_verantworlich As Integer + Me.Pruefschritt.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + save_verantworlich = Me.Pruefschritt.iAktueller_Verantwortlicher.Value + Me.Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Me.Pruefschritt.Save_Data() + If save_verantworlich <> Me.Pruefschritt.iAktueller_Verantwortlicher.Value Then + Pruefschritt.Insert_Message(1, Me.Pruefschritt.iPruefschrittNr.Value, Me.Pruefschritt.iAktueller_Verantwortlicher.Value, save_verantworlich, f.txtNotiz.Text) + End If + + + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles tsbtnAktualisieren.Click + Refresh_All() + End Sub + + Private Sub C1Notiz_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Notiz.RowColChange + Me.txtnotiz.Text = "" + Try + Me.txtnotiz.Text = Me.C1Notiz.Columns("Notiz").Value + Catch ex As Exception + + End Try + End Sub + + Private Sub BearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BearbeitenToolStripMenuItem.Click + Dim f As New PruefschrittDetailsBearbeitung + f.Pruefschrittnr = C1Daten.Columns("Pruefschrittnr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + Dim cps As New clsPruefschritt + + cps.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + If cps.bDurchfuehrung_ISI.Value = True Then + If cps.is_isimitarbeiter(Globals.clsmitarbeiter.iMitarbeiternr) = True Then + If cps.iStatusnr = 6 Then f.IsReadonly = True + Else + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then f.IsReadonly = True + End If + Else + If cps.iAktueller_Verantwortlicher <> Globals.clsmitarbeiter.iMitarbeiternr Or cps.iStatusnr = 6 Then f.IsReadonly = True + End If + f.Show() + + End Sub + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + BearbeitenToolStripMenuItem_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + Private Sub tsbtnFindingBearbeiten_Click(sender As Object, e As EventArgs) Handles tsbtnPruefschrittbearbeiten.Click + Try + Me.C1Daten_DoubleClick(sender, e) + Catch + End Try + + End Sub + + Private Sub evh_pruefschrittresultat_closed(handler As Integer, key As Integer) Handles evh.pruefschrittresultat_closed + Try + If Me.Handle = handler Then Refresh_All(key) + Catch + End Try + End Sub + + Private Sub evh_Pruefschrittresultat_saved(handler As Integer, key As Integer) Handles evh.Pruefschrittresultat_saved + Try + If Me.Handle = handler Then Refresh_All(key) + Catch + End Try + End Sub + + Private Sub ctxMenuPruefschritt_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuPruefschritt.Opening + + If Me.C1Daten.Splits(0).Rows.Count < 1 Then + Me.ctxMenuPruefschritt.Visible = False + Else + Me.ctxMenuPruefschritt.Visible = True + End If + + Me.BearbeitenToolStripMenuItem.Visible = False + Me.WeiterleitenToolStripMenuItem.Visible = False + Me.AbschliessenToolStripMenuItem.Visible = False + Me.ZurückweisenToolStripMenuItem.Visible = False + + Select Case Me.TreeUebersicht.SelectedNode.Tag + Case 1, 2, 3 + Me.BearbeitenToolStripMenuItem.Visible = True + Me.WeiterleitenToolStripMenuItem.Visible = True + Case 4 + + Case 5 + If Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + Me.BearbeitenToolStripMenuItem.Visible = True + Me.ZurückweisenToolStripMenuItem.Visible = True + End If + + Case 6 + + End Select + + 'Me.BearbeitenToolStripMenuItem.Enabled = False + 'Me.WeiterleitenToolStripMenuItem.Enabled = False + 'Me.AbschliessenToolStripMenuItem.Enabled = False + 'Me.WeiterleitenToolStripMenuItem.Visible = True + + + ''Prüfung abgeschlossen + 'If Me.TreeUebersicht.SelectedNode.Tag < 4 Or Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + ' Me.BearbeitenToolStripMenuItem.Enabled = True + ' Me.WeiterleitenToolStripMenuItem.Enabled = True + ' Me.AbschliessenToolStripMenuItem.Enabled = True + 'End If + + 'If Me.TreeUebersicht.SelectedNode.Tag = 5 Then + ' Me.ZurückweisenToolStripMenuItem.Visible = True + ' Me.WeiterleitenToolStripMenuItem.Visible = False + 'End If + + End Sub + + Private Sub AnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnzeigenToolStripMenuItem.Click + Dim f As New PruefschrittDetailsBearbeitung + f.Pruefschrittnr = C1Daten.Columns("Pruefschrittnr").Value + f.MdiParent = Me.MdiParent + f.Handler = Me.Handle + f.IsReadonly = True + f.Show() + End Sub + + Private Sub AbschliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbschliessenToolStripMenuItem.Click + If MsgBox("Ist das Assessment definitiv abgeschlossen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Pruefschritt.Get_Data(Me.C1Daten.Columns("PruefschrittNr").Value) + + Me.Pruefschritt.iStatusnr = 6 + Me.Pruefschritt.Save_Data() + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 2, Globals.clsmitarbeiter.iMitarbeiternr.Value, "") + History.Dispose() + + Me.Refresh_All() + End If + + End Sub + + Private Sub C1Findings_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Findings.RowColChange + Refresh_All_Findings() + End Sub + + Sub Refresh_All_Findings() + Refresh_Finding_Dokumente() + Me.txtfindingbezeichnung.Text = "" + Me.txtfindingbeschreibung.Text = "" + Try + Me.txtfindingbeschreibung.Text = Me.C1Findings.Columns("Beschreibung").Value + Me.txtfindingbezeichnung.Text = Me.C1Findings.Columns("Bezeichnung").Value + Catch + End Try + Refresh_MassnahmenFinding() + End Sub + + Sub Refresh_Dokumente_Resultat() + + Try + Me.DokumenteResultat.Show_Toolbar = False + Me.DokumenteResultat.ConnectionString = Globals.sConnectionString + Me.DokumenteResultat.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteResultat.Init() + + Me.DokumenteResultat.Doktype = 4 + Me.DokumenteResultat.ThemaNr = Me.C1Daten.Columns("Pruefschrittnr").Value + Me.DokumenteResultat.Refresh_Dokumente() + Me.DokumenteResultat.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteResultat.Init() + Me.DokumenteResultat.Show_Toolbar = False + End Try + End Sub + + + Sub Refresh_Finding_Dokumente() + If Me.C1Findings.Splits(0).Rows.Count < 1 Then + Me.DokumenteFindings.Init() + + + Exit Sub + End If + Try + Me.DokumenteFindings.Show_Toolbar = False + Me.DokumenteFindings.ConnectionString = Globals.sConnectionString + Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteFindings.Init() + + Me.DokumenteFindings.Doktype = 5 + Me.DokumenteFindings.ThemaNr = Me.C1Findings.Columns("Pruefschrittfindingnr").Value + Me.DokumenteFindings.Refresh_Dokumente() + Me.DokumenteFindings.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteFindings.Init() + Me.DokumenteFindings.Show_Toolbar = False + End Try + End Sub + + Sub Refresh_MassnahmenFinding() + Me.C1Massnahmen.DataSource = Nothing + If Me.C1Findings.Splits(0).Rows.Count > 0 Then + Try + Dim Massnahmen As New clsPruefschrittMassnahme + Massnahmen.Get_Eintraege(Me.C1Massnahmen, Me.C1Findings.Columns("Pruefschrittfindingnr").Value, Me.ImageListeMassnahmen) + Refresh_Massnahmen_Dokument() + Try + Dim Massnahmenr As Integer = Me.C1Daten.Columns("PruefschrittmassnahmeNr").Value + For i = 0 To Me.C1Massnahmen.Splits(0).Rows.Count - 1 + If C1Massnahmen.Columns("PruefschrittmassnahmeNr").CellText(i) = Massnahmenr Then Me.C1Massnahmen.Bookmark = i + Next + Catch + End Try + + Catch + End Try + + End If + + + End Sub + + Sub Refresh_Massnahmen_Dokument() + + + If Me.C1Massnahmen.Splits(0).Rows.Count < 1 Then + Me.DokumenteMassnahmen.Init() + + Exit Sub + End If + Try + + Me.DokumenteMassnahmen.ConnectionString = Globals.sConnectionString + Me.DokumenteMassnahmen.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteMassnahmen.Init() + + Me.DokumenteMassnahmen.Doktype = 6 + Me.DokumenteMassnahmen.ThemaNr = Me.C1Massnahmen.Columns("Pruefschrittmassnahmenr").Value + Me.DokumenteMassnahmen.Refresh_Dokumente() + Me.DokumenteMassnahmen.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch ex As Exception + Me.DokumenteMassnahmen.Init() + Me.DokumenteMassnahmen.Show_Toolbar = False + End Try + End Sub + + Private Sub C1Massnahmen_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Massnahmen.RowColChange + Me.txtmassnahmebezeichnung.Text = "" + Me.txtMassnahmebeschreibung.Text = "" + Me.txtMassnahmeResultat.Text = "" + + Try + Me.txtmassnahmebezeichnung.Text = Me.C1Massnahmen.Columns("Kurzbeschreibung").Value + Me.txtMassnahmebeschreibung.Text = Me.C1Massnahmen.Columns("Beschreibung").Value + Me.txtMassnahmeResultat.Text = Me.C1Massnahmen.Columns("MassnahmeResultat").Value + Catch + End Try + + + End Sub + + Private Sub C1Vorgaben_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1Vorgaben.RowColChange + Try + Me.txtStruktur.Text = Me.C1Vorgaben.Columns("Struktur").Value + Me.txtDefinitionBezeichnung.Text = Me.C1Vorgaben.Columns("Bezeichnung").Value + Me.txtDefinitionBeschreibung.Text = Me.C1Vorgaben.Columns("Definition").Value + Me.txtDefinitionBemerkung.Text = Me.C1Vorgaben.Columns("Bemerkungen").Value + Catch + End Try + + Try + Me.DokumenteDefinition.Show_Toolbar = True + Me.DokumenteDefinition.ConnectionString = Globals.sConnectionString + Me.DokumenteDefinition.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteDefinition.Doktype = 2 + Try + Me.DokumenteDefinition.ThemaNr = C1Vorgaben.Columns("VorgabeDefinitionNr").Value + Catch + Me.DokumenteDefinition.ThemaNr = -1 + End Try + + Me.DokumenteDefinition.Refresh() + Me.DokumenteDefinition.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch + End Try + End Sub + + Private Sub ZurückweisenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZurückweisenToolStripMenuItem.Click + Try + Dim f As New frmWeitergabe(Me.C1Daten.Columns("Pruefschrittnr").Value, Me.C1Daten.Columns("Verantwortungnr").Value, True) + f.Text = "Assessment zurückweisen" + f.btnok.Text = "Zurückweisen" + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then + Dim clsnotiz As New clsPruefschrittNotiz + clsnotiz.Add_New() + clsnotiz.sNotiz = New SqlTypes.SqlString(CType(f.txtNotiz.Text, String)) + clsnotiz.iPruefschrittnr = New SqlTypes.SqlInt32(CType(C1Daten.Columns("Pruefschrittnr").Value, Int32)) + clsnotiz.Save_Data() + clsnotiz = Nothing + + Dim History As New clsHistory + History.Insert_History(C1Daten.Columns("Pruefschrittnr").Value, 1, Globals.clsmitarbeiter.iMitarbeiternr.Value, f.cbboxmitarbeiter.SelectedValue) + History.Dispose() + + Me.Pruefschritt.Get_Data(C1Daten.Columns("Pruefschrittnr").Value) + Me.Pruefschritt.iAktueller_Verantwortlicher = New SqlTypes.SqlInt32(CType(f.cbboxmitarbeiter.SelectedValue, Int32)) + Me.Pruefschritt.iStatusnr = New SqlTypes.SqlInt32(CType(2, Int32)) + Me.Pruefschritt.Save_Data() + Refresh_All() + + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub AdvTree1_Click(sender As Object, e As EventArgs) + + End Sub + + Private Sub TreeMassnahmen_AfterNodeSelect(sender As Object, e As AdvTreeNodeEventArgs) Handles TreeMassnahmen.AfterNodeSelect + TreeMassnahmenUsed = True + Me.Treeclciked = True + Try + + Me.C1Daten.Columns("Pruefschrittstatusnr").FilterText = Me.TreeUebersicht.SelectedNode.Tag + Catch + End Try + Me.DokumenteAllgemein.Pruefschrittnr = -1 + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Pruefschrittnr").Value + + + Catch + End Try + + Me.Pruefschritt.Get_Massnahmen_Data(Me.C1Daten, Me.TreeMassnahmen.SelectedNode.Tag) + Me.Treeclciked = False + refresh_all_Details() + + + Me.DokumenteAllgemein.Pruefschrittnr = -1 + Try + Me.DokumenteAllgemein.Pruefschrittnr = Me.C1Daten.Columns("Pruefschrittnr").Value + refresh_all_Details() + + Catch + End Try + + End Sub + + Private Sub TreeMassnahmen_Click(sender As Object, e As EventArgs) Handles TreeMassnahmen.Click + + End Sub + + Private Sub TreeUebersicht_NodeClick(sender As Object, e As TreeNodeMouseEventArgs) Handles TreeUebersicht.NodeClick + If TreeMassnahmenUsed = True Then + Dim tn As New DevComponents.AdvTree.Node + tn = Me.TreeUebersicht.SelectedNode + + Load_Status() + Pruefschritt.Get_Eintraege(Me.C1Daten, Globals.clsmitarbeiter.iMitarbeiternr, Me.TreeUebersicht) + Me.TreeUebersicht.SelectedNode = tn + TreeMassnahmenUsed = False + End If + End Sub + + Sub Refresh_Toolbar() + Try + Select Case Me.TreeUebersicht.SelectedNode.Tag + Case 1, 2, 3 + If Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + Me.tsbtnPruefschrittbearbeiten.Visible = True + Me.tsbtnAssessmentAnzeigen.Visible = False + Else + Me.tsbtnPruefschrittbearbeiten.Visible = False + Me.tsbtnAssessmentAnzeigen.Visible = True + End If + + Case 4 + + Case 5 + If Globals.clsmitarbeiter.iMitarbeiternr.Value = Me.C1Daten.Columns("Aktuelle_Verantwortungnr").Value Then + Me.tsbtnPruefschrittbearbeiten.Visible = True + Me.tsbtnAssessmentAnzeigen.Visible = False + Else + Me.tsbtnPruefschrittbearbeiten.Visible = False + Me.tsbtnAssessmentAnzeigen.Visible = True + End If + + + Case 6 + Me.tsbtnPruefschrittbearbeiten.Visible = False + Me.tsbtnAssessmentAnzeigen.Visible = True + End Select + + Catch + End Try + + + End Sub + + Private Sub tsbtnAssessmentAnzeigen_Click(sender As Object, e As EventArgs) Handles tsbtnAssessmentAnzeigen.Click + tsbtnFindingBearbeiten_Click(sender, e) + End Sub + + Private Sub C1Daten_Click(sender As Object, e As EventArgs) Handles C1Daten.Click + Try + If Treeclciked Then Exit Sub + refresh_all_Details() + Catch + End Try + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.Designer.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.Designer.vb new file mode 100644 index 0000000..590250e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.Designer.vb @@ -0,0 +1,113 @@ + +Partial Class frmWeitergabe + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWeitergabe)) + Me.lblWeitergabe = New System.Windows.Forms.Label() + Me.cbboxmitarbeiter = New System.Windows.Forms.ComboBox() + Me.lblNotiz = New System.Windows.Forms.Label() + Me.txtNotiz = New System.Windows.Forms.TextBox() + Me.btnok = New System.Windows.Forms.Button() + Me.btnabbruch = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'lblWeitergabe + ' + Me.lblWeitergabe.AutoSize = True + Me.lblWeitergabe.Location = New System.Drawing.Point(12, 25) + Me.lblWeitergabe.Name = "lblWeitergabe" + Me.lblWeitergabe.Size = New System.Drawing.Size(80, 13) + Me.lblWeitergabe.TabIndex = 0 + Me.lblWeitergabe.Text = "weitergeben an" + ' + 'cbboxmitarbeiter + ' + Me.cbboxmitarbeiter.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append + Me.cbboxmitarbeiter.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbboxmitarbeiter.FormattingEnabled = True + Me.cbboxmitarbeiter.Location = New System.Drawing.Point(112, 22) + Me.cbboxmitarbeiter.Name = "cbboxmitarbeiter" + Me.cbboxmitarbeiter.Size = New System.Drawing.Size(297, 21) + Me.cbboxmitarbeiter.TabIndex = 0 + ' + 'lblNotiz + ' + Me.lblNotiz.AutoSize = True + Me.lblNotiz.Location = New System.Drawing.Point(12, 57) + Me.lblNotiz.Name = "lblNotiz" + Me.lblNotiz.Size = New System.Drawing.Size(31, 13) + Me.lblNotiz.TabIndex = 2 + Me.lblNotiz.Text = "Notiz" + ' + 'txtNotiz + ' + Me.txtNotiz.Location = New System.Drawing.Point(112, 54) + Me.txtNotiz.Multiline = True + Me.txtNotiz.Name = "txtNotiz" + Me.txtNotiz.Size = New System.Drawing.Size(297, 78) + Me.txtNotiz.TabIndex = 1 + ' + 'btnok + ' + Me.btnok.Location = New System.Drawing.Point(12, 150) + Me.btnok.Name = "btnok" + Me.btnok.Size = New System.Drawing.Size(100, 23) + Me.btnok.TabIndex = 2 + Me.btnok.Text = "Weitergeben" + Me.btnok.UseVisualStyleBackColor = True + ' + 'btnabbruch + ' + Me.btnabbruch.Location = New System.Drawing.Point(310, 150) + Me.btnabbruch.Name = "btnabbruch" + Me.btnabbruch.Size = New System.Drawing.Size(100, 23) + Me.btnabbruch.TabIndex = 3 + Me.btnabbruch.Text = "Abbruch" + Me.btnabbruch.UseVisualStyleBackColor = True + ' + 'frmWeitergabe + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(422, 185) + Me.Controls.Add(Me.btnabbruch) + Me.Controls.Add(Me.btnok) + Me.Controls.Add(Me.txtNotiz) + Me.Controls.Add(Me.lblNotiz) + Me.Controls.Add(Me.cbboxmitarbeiter) + Me.Controls.Add(Me.lblWeitergabe) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmWeitergabe" + Me.Text = "Assessment weiter geben" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents lblWeitergabe As Label + Friend WithEvents cbboxmitarbeiter As ComboBox + Friend WithEvents lblNotiz As Label + Friend WithEvents txtNotiz As TextBox + Friend WithEvents btnok As Button + Friend WithEvents btnabbruch As Button +End Class diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.resx b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.resx new file mode 100644 index 0000000..738a709 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3d3cAAAAAAAAAAAAACIiIiIiHcAAA + AAAAAAAAAI//////iHAAAAAAAAAAAACIiIiP//hwAAAAAAAAAAAAd3d3d3d4cAAAAAAAAAAAAIiIiIj/ + +HAAAAAAAAAAAAAAAAiI//hwAAAAAAAGZmZmZmZgd3d4cAAAAAAACOjo6OjoYIiP+HAAAAAAAA6Ojo6O + joYIj/hwAAAAAAAA6Ojo6OjmB3d4cAAAAAAAAI6Ojo6OjmCI+HAAAAAAAAAI6Ojo6OhgiPhwAAAAAAAA + Do4AAACOhgd4cAAAAAAAAADo6Ojo6OYIiHAAAAAAAAAAjoAAAA6IYIhwAAAAAAAAAAjo6Ojo6GCIcAAA + AAAAAAAOjo6Ojo6GCHAAAAAAAAAAAOjo6Ojo5ghwAAAAAAAAAACAjg6Ajg5gAAAAAAAAAAAADwDwDwDw + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////////////wA/// + 4AH//8AA//+AAP//gAD//4AA//+AAO/gAADnwAAA48AAAAHAAAAA4AAAAGAAAADwAAAB8AAA4/gAAOf4 + AADv/AAA//wAAP/+AAD//gAB//8AA///kk///////////////////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.vb b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.vb new file mode 100644 index 0000000..4a7fec9 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Pruefschritt/frmWeitergabe.vb @@ -0,0 +1,59 @@ +Public Class frmWeitergabe + + Dim Pruefschrittnr As Integer + Dim clsNotiz As New clsPruefschrittNotiz + Dim clsmitarbeiter As New clsMitarbeiter + + + Dim Verantwortlich As Integer = 0 + Dim empfaenger As Integer + Sub New(ByVal Pruefschrittnr As Integer) + InitializeComponent() + Me.Pruefschrittnr = Pruefschrittnr + End Sub + + + + Sub New(ByVal Pruefschrittnr As Integer, verantwortungnr As Integer) + InitializeComponent() + Me.Pruefschrittnr = Pruefschrittnr + Me.Verantwortlich = verantwortungnr + + End Sub + + Sub New(ByVal Pruefschrittnr As Integer, verantwortungnr As Integer, AlsEmpfaenger As Boolean) + InitializeComponent() + Me.Pruefschrittnr = Pruefschrittnr + If AlsEmpfaenger = True Then Me.empfaenger = verantwortungnr + + End Sub + + + Private Sub frmWeitergabe_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.cbboxmitarbeiter.DataSource = clsmitarbeiter.Mitarbeiterdaten + Me.cbboxmitarbeiter.DisplayMember = "Bezeichnung" + Me.cbboxmitarbeiter.ValueMember = "Mitarbeiternr" + If Me.Verantwortlich <> 0 Then + Me.cbboxmitarbeiter.DataSource = Nothing + Me.cbboxmitarbeiter.DataSource = clsmitarbeiter.VerantwortlichISIdaten + Me.cbboxmitarbeiter.DisplayMember = "Bezeichnung" + Me.cbboxmitarbeiter.ValueMember = "verantwortungisinr" + Me.cbboxmitarbeiter.SelectedValue = Me.Verantwortlich + Me.cbboxmitarbeiter.Enabled = False + End If + If Me.empfaenger <> 0 Then + Me.cbboxmitarbeiter.SelectedValue = Me.empfaenger + Me.cbboxmitarbeiter.Enabled = False + End If + End Sub + + Private Sub btnok_Click(sender As Object, e As EventArgs) Handles btnok.Click + Me.DialogResult = DialogResult.OK + Me.Close() + End Sub + + Private Sub btnabbruch_Click(sender As Object, e As EventArgs) Handles btnabbruch.Click + Me.DialogResult = DialogResult.Cancel + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.designer.vb new file mode 100644 index 0000000..ee01eae --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.designer.vb @@ -0,0 +1,178 @@ + _ +Partial Class FrmToolTipEditor + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmToolTipEditor)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton + Me.lblFormular = New System.Windows.Forms.Label + Me.txtFormularname = New System.Windows.Forms.TextBox + Me.txtControlname = New System.Windows.Forms.TextBox + Me.lblControl = New System.Windows.Forms.Label + Me.lblToolTip = New System.Windows.Forms.Label + Me.txtToolTip = New System.Windows.Forms.TextBox + Me.btnSave = New System.Windows.Forms.Button + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(587, 24) + Me.MenuStrip1.TabIndex = 1 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(44, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(587, 25) + Me.ToolStrip1.TabIndex = 2 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'lblFormular + ' + Me.lblFormular.AutoSize = True + Me.lblFormular.Location = New System.Drawing.Point(12, 61) + Me.lblFormular.Name = "lblFormular" + Me.lblFormular.Size = New System.Drawing.Size(73, 13) + Me.lblFormular.TabIndex = 3 + Me.lblFormular.Text = "Formularname" + ' + 'txtFormularname + ' + Me.txtFormularname.Location = New System.Drawing.Point(91, 61) + Me.txtFormularname.Name = "txtFormularname" + Me.txtFormularname.Size = New System.Drawing.Size(210, 20) + Me.txtFormularname.TabIndex = 4 + ' + 'txtControlname + ' + Me.txtControlname.Location = New System.Drawing.Point(91, 87) + Me.txtControlname.Name = "txtControlname" + Me.txtControlname.Size = New System.Drawing.Size(210, 20) + Me.txtControlname.TabIndex = 5 + ' + 'lblControl + ' + Me.lblControl.AutoSize = True + Me.lblControl.Location = New System.Drawing.Point(12, 90) + Me.lblControl.Name = "lblControl" + Me.lblControl.Size = New System.Drawing.Size(40, 13) + Me.lblControl.TabIndex = 6 + Me.lblControl.Text = "Control" + ' + 'lblToolTip + ' + Me.lblToolTip.AutoSize = True + Me.lblToolTip.Location = New System.Drawing.Point(12, 126) + Me.lblToolTip.Name = "lblToolTip" + Me.lblToolTip.Size = New System.Drawing.Size(43, 13) + Me.lblToolTip.TabIndex = 7 + Me.lblToolTip.Text = "ToolTip" + ' + 'txtToolTip + ' + Me.txtToolTip.Location = New System.Drawing.Point(91, 119) + Me.txtToolTip.Multiline = True + Me.txtToolTip.Name = "txtToolTip" + Me.txtToolTip.Size = New System.Drawing.Size(474, 75) + Me.txtToolTip.TabIndex = 8 + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(91, 220) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 9 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'FrmToolTipEditor + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(587, 262) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.txtToolTip) + Me.Controls.Add(Me.lblToolTip) + Me.Controls.Add(Me.lblControl) + Me.Controls.Add(Me.txtControlname) + Me.Controls.Add(Me.txtFormularname) + Me.Controls.Add(Me.lblFormular) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "FrmToolTipEditor" + Me.Text = "ToolTipEditor" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents lblFormular As System.Windows.Forms.Label + Friend WithEvents txtFormularname As System.Windows.Forms.TextBox + Friend WithEvents txtControlname As System.Windows.Forms.TextBox + Friend WithEvents lblControl As System.Windows.Forms.Label + Friend WithEvents lblToolTip As System.Windows.Forms.Label + Friend WithEvents txtToolTip As System.Windows.Forms.TextBox + Friend WithEvents btnSave As System.Windows.Forms.Button +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.resx b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.resx new file mode 100644 index 0000000..d685f9e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.resx @@ -0,0 +1,2163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + + + 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 + AAAAAAAHeLdzE0NSf4+P93iP/4+P////coAAAAAAAAAAAAAAAAAHiHd3NDUo//+Hf/j4//+Pj/h1cAAA + AAAAAAAAAAAAAAAHi3lxJTGPj4eI//+Pj///j3KAAAAAAAAAAAAAAAAAAAB4iHdzU3j/h///j//4/4/4 + dXAAAAAAAAAAAAAAAAAAAH+It5Mxd/h/j4//j/////hygAAAAAAAAAAAAAAAAAAAePiIg3Ewj4///4// + /4+P+HGAAAAAAAAAAAAAAAAAAAB/+P//j4cY/4////j////4cnAAAAAAAAAAAAAAAAAAAI+P+Pj4+Pj/ + /4/4//////h1gAAAAAAAAAAAAAAAAAAAiP+P//////j/////////+HCAAAAAAAAAAAAAAAAAAAB/j//4 + /4/4///////////4cwAAAAAAAAAAAAAAAAAAAI/4+P////////////////h0AAAAAAAAAAAAAAAAAAAA + iP//+Pj/////////////+HMAAAAAAAAAAAAAAAAAAACPj4//////////////////VgAAAAAAAAAAAAAA + AAAACI////////////////////hzAAAAAAAAAAAAAAAAAAAHZ4//////////////////+HUAAAAAAAAA + AAAAAAAAAAd2YHeP///////////////4JwAAAAAAAAAAAAAAAAAACH52ZiR3j/////////////gXAAAA + AAAAAAAAAAAAAAAAd3joZ2Zgd4//////////+GcAAAAAAAAAAAAAAAAAAAAAB3d+hmdmAleP///////4 + UwAAAAAAAAAAAAAAAAAAAAAAAId3jodnZmB4j/////glAAAAAAAAAAAAAAAAAAAAAAAAAAh3fo53ZwYG + WI//+DcAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd46OhnYkIHiIZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d3fo6OdmYAcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHd3jod2dgIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAd36OjgdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3YHAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAId3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// + ///////j/////////gH////////wAf///////4AB///////8AAH//////+AAAf/////+AAAB+H////AA + AAHwD///gAAAAfAH//4AAAAB4AH//AAAAAHgAP/8AAAAAcAAf/wAAAABwAAf/AAAAAGAAB/8AAAAAcAA + D/wAAAAB4AAD/AAAAAHgAAH4AAAAAfAAAHgAAAAB/AAAOAAAAAH+AAAYAAAAAf+AAAAAAAAB/+AAAAAA + AAH//AAAAAAAAf/+AAAAAAAB//+AAAAAAAH//8AAAAAAAf//8AAAAAAB///8AAAAAAH///4AAAAAAf// + /4AAAAAB////4AAAAAH////wAAAAAf////AAAAAB////8AAAAAH////wAAAAAf////AAAAAB////8AAA + AAH////wAAAAA/////AAAAAD////8AAAAAP////wAAAAA////+AAAAAD////4AAAAAP////gAAAAA/// + /+AAAAAD////8AAAAAP////+AAAAA//////AAAAD//////gAAAP//////4AAA///////8AAD///////+ + AAP////////gA/////////wD/////////4f//////////////////////////////////////////ygA + AAAwAAAAYAAAAAEABAAAAAAAAAYAAAAAAAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA + gACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHcAAAAAAAAAAAAAAAAAAAAAAAAAAAAHdndwAAAAAAAAAAAAAAAAAAAAAAAA + B3dHF3ZwAAAAAAAAAAAAAAAAAAAAAAB3d3c3Z4FwAAAAAAAAAAAAAAAAAAAAB3d3iIdnGIdwAAAHAAAA + AAAAAAAAAAB3d4j4/3cXePBwAAB1N3AAAAAAAAAAB3d4j4+PiHZ3f4dwAAdzYTdwAAAAAAAHd4+P+P+P + h3F3iIdwAHd1MhJXAAAAAAB4+Pj4+Pj492d3j4BwAHNTEzEydwAAAAB/j4+Pj4+PcXV4+IdwB4dxMTIT + B3AAAAB4+Pj/j4+Pd3J4/4NwCI9zMzEzE3gAAAB/j/j4+P+IclePj4RwAHu3MxMSMFJwAAB/j4+Pj4+H + d3f4+IdwAAe7tzMzE2E3AACI+Pj4+PiHB3iP+INwAAB7u7MTNTQ0dwB/j4/4/4+Hd3/4/4VwAAAIe7uz + U0NDB3h/j4+Pj490d/j4+IJwAAAAB3u4NzFzQwd/+Pj4+PhzePj/j4VwAAAAAAd4iDU0M1J4+P+P+Ph3 + f4/4+INwAAAAAAAHeItTUHF4j4+Pj4d3iP+P+IZwAAAAAAAAB3h3NxYWiP+Pj/d4//j4/4FwAAAAAAAA + AAeIMzFjF4+P+Id/j4//j3aAAAAAAAAAAAB3iHU1JTj/j4ePj/j4/4NwAAAAAAAAAAAAd4tTUlf4+Hf/ + /4//+IVwAAAAAAAAAAAACHeDc1N/+H+Pj//4/3dwAAAAAAAAAAAAAAeINzF4+I//+Pj//3NwAAAAAAAA + AAAAAAf4h3MTiPj4///4/3dwAAAAAAAAAAAAAAf/j4+Hf///+P///3dwAAAAAAAAAAAAAAj4//j4/4/4 + /////3dwAAAAAAAAAAAAAAf4+P///////////3NwAAAAAAAAAAAAAAj///+Pj////////3WAAAAAAAAA + AAAAAHj4+P///////////4IAAAAAAAAAAAAAAIj//////////////3UAAAAAAAAAAAAAAHZ4//////// + /////3cAAAAAAAAAAAAAAIdmB3j//////////3MAAAAAAAAAAAAAAAd452cHeP///////3QAAAAAAAAA + AAAAAAAHd36Gdgd4/////3MAAAAAAAAAAAAAAAAAAHd36OZiR3iP/3cAAAAAAAAAAAAAAAAAAAAId3eO + d2ZneHEAAAAAAAAAAAAAAAAAAAAAAAd3fohmZgZwAAAAAAAAAAAAAAAAAAAAAAAAh3Z45wcAAAAAAAAA + AAAAAAAAAAAAAAAAAAh3d2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + ///////////////////////////////z/////////4H////////4Af///////8AB///////+AAH///v/ + //AAAf//8H//gAAB///gH/4AAAH//8AP/AAAAf//wAP8AAAB//+AAfwAAAH//4AA/AAAAf//wAB8AAAB + ///gADwAAAH///AADAAAAf//+AAAAAAB///+AAAAAAH///+AAAAAAf///+AAAAAB////+AAAAAH////+ + AAAAAf////8AAAAB/////8AAAAH/////4AAAAf/////4AAAB//////gAAAH/////+AAAAf/////4AAAB + //////gAAAH/////+AAAAf/////wAAAD//////AAAAP/////8AAAA//////wAAAD//////gAAAP///// + /gAAA///////wAAD///////4AAP///////+AAf////////AD/////////gP/////////5/////////// + ////////////////////////KAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAQAAAAEAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd4AAAAAAAAAAAAAA + AAAHdhdAAAAAAAAAAAAAAAB3dzV4MAAAAAAAAAAAAAd3ePd2eEAAdwdwAAAAAHd4j4+Hd4gwAHcSFwAA + AAeI+Pj4g1eIQAc1MzBwAAAIj4/4+HZ49zAIgxMTBwAAePj4+Ph3ePhAB3szMTMIAIiPj4+HV4+IMAB7 + szMWEnB4+Pj49yf4+EAACHuzcWEHeP+P+Id/j4gwAAAHeLcTcA+Pj493iP/3UAAAAAd4dxYY+Pj4d4/4 + 92AAAAAAB3gxcHj/j3j/j/cwAAAAAAAHhzcHj4iI+Pj4UAAAAAAAAHeDc3j3j///iCAAAAAAAAAIeHE3 + +P+Pj/dwAAAAAAAAAH+Ih4j////3UAAAAAAAAACP//j/////9zAAAAAAAAAIiPj///////dwAAAAAAAA + B4/////////3cAAAAAAAAAd4////////9zAAAAAAAAAId2eI//////dwAAAAAAAAAHd2dmd4///3UAAA + AAAAAAAACHd3dmd493AAAAAAAAAAAAAAB3d+dmYwAAAAAAAAAAAAAAAAd3aAcAAAAAAAAAAAAAAAAAAI + dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////8f///4H///wB///gAcH/ + AAHA/gABgH4AAYA8AAGADAABwAQAAeAAAAH4AAAB/gAAAf+AAAH/4AAB//AAAf/4AAH//AAB//wAAf/4 + AAH/+AAB//gAAf/4AAH//AAB//+AAf//+AH///8B////4///////////KAAAABoAAAA0AAAAAQAEAAAA + AAAIAgAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA + /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAA + AAAAAAAAAAAHcAcAAAAAAAAAAAAAAABzd3d3AAAAAHcAAAAAAHd3j4R4dwAAAAdwJwAAAHd4+PiDeHcA + AAAHUxA4AAB/+Pj4R4h3AAAACDMzAIAAiI+PiHePdwAAAAizMTcHAI/4/4d3+HcAAAAAe7MXAWCI+PiH + f493AAAAAAB7czQwj4+Pd4j4NwAAAAAAAIg1NH+Pj3f4/3cAAAAAAAAHhzNX+Ph4//h3AAAAAAAAAAh3 + M3j4j4/4dwAAAAAAAAAAB3cYiPj4/3cAAAAAAAAAAAiIc4j///hnAAAAAAAAAAAIj/+P////dwAAAAAA + AAAACPj//////1gAAAAAAAAAAAf///////83AAAAAAAAAAAHeI//////aAAAAAAAAAAACHZ2eI///xcA + AAAAAAAAAAAAh3Z2eI9oAAAAAAAAAAAAAAAIhodnBwAAAAAAAAAAAAAAAAAHd2AAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////9////4P///wD/P/AA/g/AAP4DwAD+AcAA/gDAAP8AQ + AD/wAAA//AAAP/4AAD//gAA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//8AD///4A////4f/// + ////////KAAAABgAAAAwAAAAAQAEAAAAAACAAQAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAIAAAIAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAHUhcAAAAAAAAAAHd3Z3cANoAAAAB3d4+BeHcHcQcAAAd4+P93 + eHcDUzAwAAf4/4h3iHcIMxMEAAj4+Phnj3cIuzMzBwiPj4d4+HcAB7NxcFj4+Pd/+HcAAAh3NSiPj4eI + +HcAAACHc3GI+If/j3cAAAAAh3NX/3+P+HcAAAAAAHcziI/4/0gAAAAAAH+HePj//zcAAAAAAIj4//// + /3gAAAAAAH///////wAAAAAAAH///////3AAAAAAAHdnj////wAAAAAAAAB3dmiP/3AAAAAAAAAACHd3 + ZwAAAAAAAAAAAAB3d2AAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAD////////9////4P///wD/x/AA/4Pg + AP+B4AD/gOAA/4AgAP/gAAD/+AAA//wAAP//AAD//8AA///AAP//wAD//8AB///AAf//wAH///AB///+ + Af///8H////5//////8oAAAAFgAAACwAAAABAAQAAAAAAGABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAA + gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAdzB3AAAAAAAAAAd3eHd3AAcScAAAB3j4h3h3AANT + BgAAiPj/h3h3AIgxMxAAiPj4d393AAezMWCAj4+PZ4iHAACDszUHiP+IeP93AAAAh3MwiPj3f493AAAA + AIdxeI/3+P93AAAAAAh3MYiIj/h3AAAAAAAHdziP+P93AAAAAAAI+IeP//93AAAAAAAH+P////93AAAA + AAAI//////93AAAAAAAHeP////93AAAAAAAAd2d4//93AAAAAAAAAHh3Z3h3AAAAAAAAAAAAeGcIAAAA + AAAAAAAAAAhwAAAAAAAAAAAAAAAAAP////////f///8D///4A/+H4AP/g8AD/wHAA/+AQAP/wAAD//AA + A//8AAP//gAD//+AA///gAP//4AD//+AA///gAP//8AD///wA////wP////n//////8oAAAAFAAAACgA + AAABAAQAAAAAAEABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA + gADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAA + AAAAAAB3Q3cAAABwAAAAB3eId3cAAAcQcAAHePj3eHcAAHczBgAIj4+HeIcAAAgxMSgI+PiHf3cAAAi7 + M1B4j493+IcAAAAIdzUn+Ph4j3cAAAAACHN1iPh//3cAAAAAAAhzGPiI+IcAAAAAAAB4c4j//3cAAAAA + AAB/iI///3cAAAAAAACP/////3gAAAAAAAB4/////3cAAAAAAACGd4///3cAAAAAAAAAh3Z3j3cAAAAA + AAAAAAB3dmcAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAP///////5////wP/9/gD/+HgA//A4AP/4CA + D/+AAA//4AAP//gAD//+AA///wAP//8AD///AA///wAP//8AD///wA////wP////n///////KAAAABAA + AAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAd3AAAAAAB3 + d3cFJwAId/h3h3cxMAf4+HeHCzMUCI+IeIcAg3MH+PePhwAAdzePh/iHAAAIdziI+IcAAAAId4//hwAA + AAj///+HAAAAiP///4cAAAAHaI//hwAAAAAHd2d3AAAAAAAAh3gAAAAAAAAAAP//////+P///8D//44A + //8GAP//ggD//8AA///wAP//+AD///4A///+AP///AD///4A////gP////D///////+JUE5HDQoaCgAA + AA1JSERSAAABAAAAAQAIBgAAAFxyqGYAACAASURBVHic7b15eFzlmad9l0pSqbSUatEuqyRbXsALGAwN + GDBbAIcmAUIncccTO+k2YDqkM9PJl68nmcn0TDKT/tKm88XBExN8dcZ2m3aTIcv0hCEhQCBusmDAJjab + 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 + AAAAAAAA////////////////////////////////////////////////////4/////////4B//////// + 8AH///////+AAf///////AAB///////gAAH//////gAAAfh////wAAAB8A///4AAAAHwB//+AAAAAeAB + //wAAAAB4AD//AAAAAHAAH/8AAAAAcAAH/wAAAABgAAf/AAAAAHAAA/8AAAAAeAAA/wAAAAB4AAB+AAA + AAHwAAB4AAAAAfwAADgAAAAB/gAAGAAAAAH/gAAAAAAAAf/gAAAAAAAB//wAAAAAAAH//gAAAAAAAf// + gAAAAAAB///AAAAAAAH///AAAAAAAf///AAAAAAB///+AAAAAAH///+AAAAAAf///+AAAAAB////8AAA + AAH////wAAAAAf////AAAAAB////8AAAAAH////wAAAAAf////AAAAAB////8AAAAAP////wAAAAA/// + //AAAAAD////8AAAAAP////gAAAAA////+AAAAAD////4AAAAAP////gAAAAA/////AAAAAD/////gAA + AAP/////wAAAA//////4AAAD//////+AAAP///////AAA////////gAD////////4AP////////8A/// + //////+H//////////////////////////////////////////8oAAAAMAAAAGAAAAABAAgAAAAAAIAK + AAAAAAAAAAAAAAABAAAAAQAAAAAAAJeeoQBiYkYAG0RMACD0/QD+/v4AlJWVAIGCgQCcoqUAU1MhAJO6 + 1AC8vGUANUZTAJSUSQAAcocAoaKiAObm5gCNjXsAk5WFAKOkVgBnZH0AVVlbAA32+gCJiooA7u7uAG5y + dgDq6uoAUWl7AEVFHQCampoA8vLyAOzs7ABRTGcAra2tAPT09ADw8PAA6OjoAEZNUwA0PUQAzc3NAPj4 + +AC8ztwAh4psAIiOkAAAY3UAbYuiAGlpaQCrq1sAW1smAI2TlQBfYWIAUlVWAEpOUQC+vr4AcZGqAJGW + mADV1dUAcnV2AIqsxAAJS1cAfn5+AHuAgwBNVFkA9vb2APr6+gD8/PwAOTkYAHV6gQBsbGwAZWVIAFNj + agA4SFQAJ0tYALCwsAA0QUsA4ODgAHqGjQA8TloAJUVlAN7e3gChomIAfqG7AABcbABhZGYAZmZmAMDA + wADJyckAuLm5ALS0ZABbXl8AMkpiAIGGiQDAwLgAAFZmAGB8kQBOTiIAycltAKqrYwBjYyoAl5dRAF14 + jABFWWgAenp6AHFxcQBpbG0AlJqdAEhPVQCQt9MAQ1dlAMTExAB6foEAQUlQAKCmqQCqq6sAhouNAI62 + 0gCFobUAiqi6AHKDkwB6iZIAOklfAHB6gwBxfIYA5OTkAOXl5QCSmJsAlpyaAJOZnADHx2kAwcFtAMbG + bgAQrMgAD7PQACpKagBMT1AAc3M1AHd3OQB6ejgApaqwAKOuugCztLQAtbW1AHiSlAB+kZ0ABpGrAAeY + tADR0dEARFhnAEtZZABHRyAAAVNjAAZUYwCCgkAAiopFAImNjwCNjY0ATEweAJ+lqAB3d3cAWFdmAFBd + YQBaXmAAy8zMAIGlwQA7QUUAOUlMAJibnACbnZ4Anp6eAOLi4gDj4+MAQkRHAExORQBESUwAkJNyAJCQ + fwDZ2dkA2drcAJKVZwCWmGIAmptlAJOWawCbnWkAREtRAEVNVACCiIoAhouLAICIjACGjI4Ap6dZAJ6e + TAACfJMAKsjJADzI0QCIi3QAgoZ6AIaKfQBJrq8ARr2/AFhgaADn5+UAH8XdABnc3QCxsVoAC1lrABzK + 5AAc3/cAE+XpABDz/QAp4vMAM/P7AA1DTgACgpoAPj4iACQuNQA3SFQA0trfAH2fuABiZmgAZ2ttAG2d + yQBDo8UAPVJrACpReABzd3oAdHl7AJjB3QCiy+YAhIiEAGpqMAAfUmYApaipAJS0zgCCmqoAkYqzAJaR + sQDp6+wAVVZyAEJEOwBPZncAy8vEAMXIygAseY8APHKoALm5rgDRzdgAy9DVAHNzbABfnJ4AAAAAAIGB + OgBiXHsA8PDuAFrU7ADf1voA1ODtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHKlALYIFjQqwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ26KrMT1TkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAB9MQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// + ////////////////////8/////////+B////////+AH////////AAf///////gAB///7///wAAH///B/ + /4AAAf//4B/+AAAB///AD/wAAAH//8AD/AAAAf//gAH8AAAB//+AAPwAAAH//8AAfAAAAf//4AA8AAAB + ///wAAwAAAH///gAAAAAAf///gAAAAAB////gAAAAAH////gAAAAAf////gAAAAB/////gAAAAH///// + AAAAAf/////AAAAB/////+AAAAH/////+AAAAf/////4AAAB//////gAAAH/////+AAAAf/////4AAAB + //////gAAAH/////8AAAA//////wAAAD//////AAAAP/////8AAAA//////4AAAD//////4AAAP///// + /8AAA///////+AAD////////gAH////////wA/////////4D/////////+f///////////////////// + /////////////ygAAAAgAAAAQAAAAAEACAAAAAAAgAQAAAAAAAAAAAAAAAEAAAABAAAAAAAAmqChAElM + TgCbm4oAjpKWAKysrADc3NwAwsLCAHyAhACioqIARlppAHh4eABwcHAA/Pz8AFpeYAA2R1QAyMjIAKOk + pQCGjI4APEJGADxNWgBkZmYAkZeZAJ2kpwDLy8MAQUdJAEJGSQBARkoAjZOWAEyXmwBKmZoAtLW1ALa2 + tgBYXF0AWV1eAFpdXwCYmZsAmpqaAJedoACZn6IAAkxbAABOXQCrq6sAvr6+AL+/vwC5ubkAu7u7APLy + 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 + 3wDx8fEApaWlAKenpwB7fX0AeH1/AE5kdABPZncAn6WoAPn5+QD7+/sA4uLiAOPj4wD09PQA9vb2AP7+ + /gD///8AwMDAAMHCwgDCwsMA1tbTAH+EhgC9vb0Av7+/AIGBgQCEhIQA5+fkAObm5gDY2NgA/Pz8AHd7 + fgC5u70AiYlXAIOFWwCHjZEAj4+QAABWZgAAXG4AaWlpAG9vbwCioqIAoaehAHWPoAB5k6oAt7m7ADdH + UwA9T1wArrCyAKe0vQCXmnEAnp5+AFxocgCJnaoAmp2lACYvNgAzOT0Ap6qrAKirrACnp4MAoKWWAHR0 + dAByd3kAj4+PANLV2QBQT10AQ1JfAFteXwBhYWEAYGZqAGdsbwCCg0kAkZFaAFJohABofZEAOUpOACJE + UABlgZUADJquAD6luQBtcnUAztDSAJ+ifwC8vKwAoayxAABIVQBZuLwAbG1MAAAAAAAzx9EAFzdAAH+B + dQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXz8AAAAAAAAAAAAACgk1YBlhAF12BAAA + ACUhRQwoGkQuYVJlQXFnAABVKCgoEEMfL2IAdWpCaFQAVigoKSBZHDADAAByayNKU0ApKQ02MzgGAwAA + AABRaUtQbQ4dWwcIAWwAAAAAAHBHJF5cNAsbEwVaAAAAAAAAAE1IZg8eEio8WgAAAAAAAAA5FBErJic6 + AjsAAAAAAAAVMSsnLCwtLUkYAAAAAAAAAD49V283LC1MMgAAAAAAAAAAAFhOY2RPdxcAAAAAAAAAAAAA + AABGbnMWAAAAAAAAAAAAAAAAAAAAAP//////+P///8D//44A//8GAP//ggD//8AA///wAP//+AD///4A + ///+AP///AD///4A////gP////D///////+JUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYA + ACAASURBVHic7L15lBzlfTb6VFXv6/Ts+6KRRjMaLaMZCSGEJBaxCbABs5jNwTa2E9vY8U28kORzHCdx + fGwnX24Sf3ZujAlODMa+jp0LBmIDBgO2AQFCIIR2aSQxkmbt7trX+0d1VVev0/vMSPWcU6e7q96lpqef + 3/6+BdiwYcOGDRs2bNiwYcOGDRs2bNiwYcOGDRs2bNiwYcOGDRs2bNiwYcOGDRs2bNiwYcOGDRs2lhKI + hb4BGzZslAUCAJk4AEADoCaOgjrbsGFj6cAgPAXACcCROAjo5FcASABEAHLiXN7BbNiwsbhBIEl4JwBX + 4vAAcCfOATrhBQAcADZxiPkGdlTnfm3YsFEmrKR3QSe6B4A3cfgA+HwdHat9ra03AYAqScdm9ux5AEAM + wBySVoGUaxJbANiwsTiQbtobxPdAJ3sAgD/Q07OxadOm69q2b6foY8cc7z3zTD3pdA4AgKaqLQB+DWAa + usAAdJdAQY6YgC0AbNhYOBBI+vDppr2p5YPLll3UvHnzjpbNm51uh6M1EA6v8LW2QvF6EXj3XRyanAQA + kA5He3jlytuj+/c/nhhThu4CiAD4bDdgCwAbNmoLK+lzmvbB/v6tbVu3bm678EKHm6K63cFgv7+1FU6n + Ey6XC4SmgQgEIPh8OGQMTFEBVyh0UWhgwBE7cODn0EnPJQ45caTAFgA2bFQXJFJJ70CS9H7jCA8MXNF2 + ySXr61atcoTCYYdT05ZRfn9voK0NLrcbDooCoWmApoHQNMweO4aj//M/4KanUyYjKMrv9PlWAXgFeiwg + CiAOXRjYAsCGjRrA8OXzmvbhwcFr2i+7bLhuYMDpIclVwdbWLm9TE9weD9wul0l2ACBUVdf6AKBp4Kem + ML53b9bJCaczFOzv3xo/fPgsgDoAM0gKgZRYgC0AbNioDKykN8huHFbS7+y66qplDStXOp2Kss7f3t7h + bWiAx+OB0+nMSnhT8wPmQWbOn7wRivK6QqHlACIAQtCtDFfi/mwBYMNGhZCN9G7ohAsA8NUND99IUlRH + xxVXODpXrXIqLLvB19HR4m9uhsftBmU17VXV1PBW8luJbxzU/PdGQdf+IejCx4UscsMWADZsFA6rP2+k + 6zJIHxkevrn7uuuaPQ0NLg9BbCOB+rqBAUTa2+F0OACLL08oSpL0wLzEN25gXgGgaRSAsHFPiXt0QC8U + MmELABs28iPdn3dCJ5MbCbMegC+yevVtvTfcUFfX0uLSOO6KyNBQyB0MIhAMgiLJVC1vFQBIkh2W9wbR + 04mvqSpEnofAMHlvWtO7BKALJqsASIEtAGzYyEQh/rw3snr1rX233OJr7+x00WfPXle/bp0vEInA4/Ho + hE3z59O1fIbWB7KSXxFFMAwDgech8DwYmsbkxET+P8DhcPs7O5cxJ08eSNyzIQBIWOIAtgCwYSPVsjY0 + vUF4H4AA4XCEIqtX39z3gQ+4KIfD1dzQ4IydOXNT86ZNzoamJhAEkSR8Ng1vuTafia/IMniOg8BxkEQR + HMMgFo2CpWkIHAeR5xFPFP/k/IMcDrenubmLOXnSDV2IGdZLSiDQFgA2zlfkMu1NLU95vfWR4eH39Vx/ + vTsYDPoVmv5gy+bNoJxORCKRVKKragrpswby0oSAIXWgaRAFATzHQeJ58BwHOhYDE4+DY1mIPA9JECBL + EhRZhipJEOdxAaCPawg165ESCLQFgI3zCfOZ9l5nMNgcGR7e0XPtta6GSKSOmZm5tXXLFgRCIXjc7iTp + FSWZp8+l6a1aPu29LElgOQ6iIEAUBDDxOOLRKDiG0bW8QXhJgirLyUNRoCkKZEHI/OuyI93AsAWAjfMG + +Ux7PwC/u76+PbJ69ba27dtdLqfTFfL5mgSev7Ht4ovR0NgIWPx3KEqK1k8nfr5ovqqqEDgOAs9DFkWw + DIN4wqznWRaiIEASBJPwSoLwmqKYpLe+V0URBElCU7Pv+6HKsiTMzBhlglraYcIWADbOJVjT5LlMe6+n + sbEnsmbNhe1btni8Llc36XC8r2njRrg9HkQiEZ3sqgpCllNSdumv2cx666soCCbhBZ5HfG4OdDyua3me + h5xNy6cRPZ34mqIAqqq/kiSQSwBIkkgfP34KydWA1sOELQBsLHWkkz6rae9pbu6tX7t2pGvLFrfX4Vih + OZ07WzdtQigcNstuoaqALCc1fi7i5yC9LElJf12WQUejiFnNep7XCS+KKYTPpuGt72GcU1Voifs0NL/X + 6UTQ7cZZmk7/Xox9AIxDTrzaAsDGkkZ6QZzVtE9ulNHWtrx+ZGRV/erVHp/H43ICw2QotKNz82ZTyxMW + 0puETwTzspIfmX6+4a8rkgTWiNYngncSz0MSRSiGllcUk/gZ2j2h1VOOBNE1Vc2q6b1OJ/obGzMEgAsq + mhyiNqMX/QhILgmWYZcC21iCSCe8dSmtUZDj9bW3r2xYv35l8/Cwx6FpG71tbZc0rFmDQDCIUDCYouXT + yW4lelaNb2h5QYBgMd3nZmZAR6PgWBZCQvsromhG603S5zHpNasAyEN4APC5XIh4vWhoaMDY6tVocDjw + 2ltvodHvx1QiM+AjFaz2MNrepPY3yG+vBrSxZJDLtHdD1/Qe6FtiDTSOjva2rV7tISRpq7ezc0vb6CjC + dXVwUlQq6a2Et6Tt8pn7qqLo/rokQRZF0LFYSk5eSvj4sjVSnyV4l5X0VsIb95GGgMuFkNeLpqYmdHV1 + oSkQQF9DA/r7+7Fjxw68+eabOHToENa0t2PPe+8hxvNo8rsBZtLqAsjIsSuQLQBsLBYY1bBGqspKetO0 + 93d1DTWOjXUG2tvdfp/Po4ni5cGBgQ3dGzciFAolSa6qgCRlED4lqp+F8Jqq6hH5hOku8DzmpqfB0DQ4 + hoFkROtlGYokQbMG73Joeqhq8rxVw2chfNDtht+t7+bV0tyM0cFBdEciWL16NbZt25bzywt7vVjX0YET + s7MYrvcjeugYkNwePOc24bYAsLGQyGXapxDf39W1unFsrLWhp8erieKN9WvWrAkvX45IQwMCPl+SUJKk + v1qFgEUAEFm0v6aqkGXZTMFJoojY3Jyek2dZCByna/iEQEjR8Dk0fU4/PgvhAZ30PpcLrW1tGFuxAu3h + MABgw4YN2Lx5c8FfZsjjwXBbGyDECu5jCwAbtUY+096M2vu7uoabNm5saO7q8ogcd0fjxo0rO9asQTAU + AkUQJuk1UUwhvJZGfqufb0bQFcWM1MuiCJamEZ2bAxePg+d506xP0fIWwqeQXpZTA3gG4ROFQtkQ8njg + djjQ3t6OcDiM/sZGtIZC2LZtG0ZHR2vzX0jAFgA2agFrJZp1t1vTtA90dw83btxY5/L7PUG/3yMJwj2t + 27b19o2MwOvxJAkvy6mpsHSNb0mVEQnSa4qi+/AJDS5wHKIzM6Djcb0IxyC8JSdvaHjDtE8hfY6IfS7C + hz0eOCkKHR0d8Pv9GGxtRaPfj2uuuQarVq2q0b8gO2wBYKNasJaeWqP25hJaf3f3mqaxsVBdQ4NPEsXP + duzY0RJobUVrWxtcTqdJcNXQ8mmk1/KQX0lodzVh3sdjMbPUVkwssskWrddyafpsgbsckfqwxwOKJNHZ + 2Qm32411HR0Ie724+eabsWzZshp9/YXBFgA2KgWrls+5662/q2tN04YNgfpIxMfx/P0973tfXffgIHxe + bwqpVUFIVr1ZiJ5LAKgJc90w202z3lhBZ6TnElo+XcNbTXrVouGhKObnfIQnCAKdnZ1wOhzY0NMDv8uF + e+65B21tbbX59kuELQBslAtDy6c/wcYDwENQlK/3hhuGCMAb9Pm8vCj+Tf9tt3mWr1pl+vKaokAVBNM/ + 19IInv5qtFMsNfM8yyIWjYKJxcCzrB6tF0WoaaW22jyaHon51XkIDwCdnZ0gSBJb+vrgcjjw6U9/GnV1 + dTX50isFWwDYKBZ5/XnC4Qj4Ozv761ev9oWDQY+mqoHuD37w655AAD29vUmSyzIUq/+cZlpb/WrTKkho + d8Ospy0r6MQstfUZwbu0NJ1qLbM15svyxwbcbhAkifaENr90xQoQBIEvfelLcLvdGX2WEmwBYKMQWH35 + DNOedLmCvra2vrqBgUDA52vVfL6/XnHHHVg+OAgSSBKO57OnyHIIAUNrKwkCM/F4ShGOLAhmtF4tJHhn + CII0AWMFQRDwu1ygSBKNTU1wURS2LV8Ol8uFv/iLv6jx11592ALARi7kMu3dALzuxsZQ/Zo1HQ6C8Lnd + 7l5Hff2XV959N5YPDCS1rSBAzhU5Tyt9NQSAIkmmZcCzLOLRKJh4HELCrJcT+XrF0PDWFXQ5NH2+SD1J + EPA4nXA4HKirq0PA5cJFy5ahrq4On//852v9ndcctgCwYSA9iJe6O47HE/K2tLQEOzt9XpfLFxwcHGy7 + 8so/DUci6OzqMgkoM0xW8mWk0NJcAcNUj8/OIp7w48VEEY5BeNWakzeInubHwyB/jlw8SRBwOxxwOJ0I + BgKI+Hy4oKcHHR0duO+++2r9nS84bAFwfsO6ZVTGE2woj6fO09jY7G9qCrhDoQuCK1Z8Zui229C3fHmS + 1LIMiWFStG7WGniLBaBYTHSGpnU/nqaTfnwifafIMrREis7U8GnzIE3bZyO8k6LgdDrh9XrRGgphfWcn + Vq5ciXvvvbfW3/eigy0Azj9Yq/DclsMDwONpagp7GhvrKYLwuevqLomsXfuJ4dtuQ3dPj2luSwyT6W/n + yp8bvnyC8KIgIDY7C8ZYTGNJz5mR+rT6equwSTHxs+TiSYIARZJwOp1wu1zoikSwpr0dY2NjuPPOO2v9 + XS962ALg/IA1ap+SlyddrpArHA67AwE/RRC+nltvvapl06a7m1pb0dzcbJJSpOnUvHkW4ls1s/VcbHYW + TDwO3tgUQxShGsG7BOHTI/ZWfz59YY0VJEGAJAg4HA44HA4sb2rCYEsLtm/fjptuuqnmX/RSgy0Azk0Y + hLea9ibxCYcj5PD56pxud8Df3X1b67Ztt6y96Sa0d3WlRN7FeDx155q0XLpVAKgW4hvBO56mU/e6y6Ll + c2r3xGs64QmC0B/NQ1EgSRLDbW1Y1tiI6667DldffXWNv+alD1sAnFswCO9OO7wgyQDldAZIivKHBgY+ + 0nXVVdevvfFGtLS0mOY3H4ul7kBrPSykVNOIKkuSruUZBiLL6qvnjHy8NSdv0eYpRLdq+xy5eIIkQRAE + Rjs70RWJ4Pbbb8+7PNZGYbAFwLkBg/Tm4prEe/P585Hh4U8O3HrrpWuvuw7hUMiMrHPRqF4tl4f46eRX + EivoUtJzhh+fRcsbOf2spFeU3H8VgAt7e9ESDOITn/hEzVfKnQ+wBcDShrEXnvFgyiD0p8GGGkZGvtR7 + 000bR6+9FnX19ZAFgVIUhdAUBezcXEpVndXsz2bmK7IMkePMMtv01XNaeqmtoc3TtLvxPh+29vcj4vXi + j//4j7FiYMA0+cmEBWCjsrAFwNIEgeQTaUPQnwNf3zA6+rXld9yxemTHDsLn8ThVRaE0VQU7N2fm0dP3 + nU/Zt86i9SVBSNnc0kzPWawFzfqahfTGtXy4bGAAPpcL999/P9ra2vQHaQJwOp0gyYynWduoMGwBsDTh + hE7+OgDN1/zkJ/+0bHBwkAK8qqZR0DQIDJPihxukzXjSTIK8siiCZ9lkPj6xC46ai/QWgqefy7UuHgCu + HByEk6LwV1/9KkLBIBwUBQLQH6hpE77msAXA0gMFXfsHPvv22w8DWCErSlCTZYeQILx1Y4t0AWDV9iLH + gTXWxxtltsae9em+fDbC54jUmzdKELhyaAgA8I1vfAMkScLt0H9yfr/fJvwigC0Alh5I6AG+OmZ2tp5w + OCJKGvGtWt7q10uCAD7xkArJ4ser6ZV36cG6NNJrOXaw9Tid2L58OQJ+P7785S+b5wAgHA7bPvwihC0A + lh6c0KP84fjkJEW5XOYmGNn8e55lUxbSZIvWq5YNMjSLwDCIb6bm0kgf8nhwYW8vmpqa8LnPfQ4EQcDr + dIIgCNTX19f8i7FRPGwBsPTggm4BBOnpaZJyu1NILxrPlbcE7kzCp6+is2j8FA2fg/ANPh/Wd3Whp6cH + 9957LyiShNfpBEVRaGhoqPkXYaN82AJgacF4vrvzkq9//S8kQWjnGEbX8JbAnWIttU0juLmiLp3wWcz6 + lmAQq9vaMDg4iFtvvRUOioLX6YTL5UJjYyMA2Gb9EoctAJYWjMddE3Qs1qpFo07Fumd9umlv9enTovUm + 2S2k76yrw4qmJoyMjGDnzp1wUhR8Lhe8iUdRAUnCa5oGgiD0eABsQbBUYQuApQcCAI4+/vg/Naxf/0UQ + REvKFljpJr0kJZ8qm0XL99TX44M7d2Lbtm1wOxzwOp0IBAIpJr1B9HTC53pvo3ZYsWIFbrvtNjz66KMl + 9bcFwNKCljjU6T17jvl7egSQZIZ5rylKTsL3Nzbi9uuvx9jYGJAI2rU1NelPzEWmhre+L4T8tiCoLXw+ + H5qbm0vubwuApQUlcUgARDEa1UAQye2zsxB+ZXMz7rjxRgwODgLQN7jsaG01d68tl+S2IFjasAXA0oIG + /VHPAgA+euDAj/1dXfeQFNVkNBhubcUdN9+Mnu5ugCAQ8njQ3dGBUCiUQsZqEj7be+OzjcUFWwAsPUgA + eAAsd/r0/v/nX/6Fj0QiQIJcEa8XfT09CAQCGYRL18rZzPxS3xvj5rMCbKtg8cEWAEsPMnQLgAPAbh4Z + UZuamlIaVIKwpZj5882Rq5+NhYNdjL30oEEXAiIAniAIVTOefGs0SHtvfJ6vXTH9C3lv/VxIWxu1hy0A + liYUJAQASZLmSpxcxM12LVu7YoRFsYKg2LY2agNbACxNqEjEAgiC0Molfr5rlRIKpba1UV3YAmBpQkXC + Dfj3f//3x6PR6FQ2bWt9XyyJCx2jUHKX29ZGdWALgKUJsxbgK1/5yhscx8WB/ARO/1xNoZCrXTFCw7YK + agNbACxNKEgGAkWCIFLYUajWzde2WG1dSLtc10uxGGxUBrYAWJowMgESdAGQNRNQijVQ6rVitHqx7W2r + oHqwBcDShWEFSFYLoFiil0v89M+5rlVK6883vo3iYBcCLV1oSAoBTdOyF+Hk+pytLHi+voWMm6ttoe1L + /WwdL31eG7lhWwBLHwVp//TPpWjactpWQsvP99m2DIqHbQGcY8im3YHCtHau/sX0NT4XawEU8zl9jnxt + cp2zocMWAOcgcpGv0M+VIGohhCyV+MW2me/c+QzbBVj60IDcKbf5PlfaFM91rZjxcgUMC+lT6rlzylWg + XECwDdD5bRxZpZ0tAJY2jEBg3jhAIcSs1OdiiFdKm0L6lEr8c0YgODxAuIeAvomsI/FqbCib2rTGt2aj + cjCzALkKgeYz+a1tqv05X5tSxq3UufTzudpn67fIQUDfQt6ZOAxBkALbAli6MNYDSG+88cYelmVj6Q3m + swZytcnXp9qaulLjlGP+F3NtsVoLLopwDnWG2qALATeSQiCF87YAWLowC4FuvfXWJ2ZnZ8/m+8Gmn8vX + phJ9irmXct2D+c7NN176+VJIv9gEg9dJeEb76vugk9+VODIEgO0CLF0YS4Iz1gOkm/vZzlXCTSimTyHj + lNpmvnOFtM3XPv1arjbZ2hUiBKrlVmjQjMfIGwLACd0NMJ/ZbguApQvTBQAgEASR8ojeQghknKuWYJjv + XCVJXq4wSD8/37VsbfK1y9a2kD5lwogD5HQBbAGwtGEsC5aMjUHm0/zZzlWarIVq3nKthFLmLPT8fNdy + tSml7Xz95kOucTUtIxCYkQmwBcDShoq0TEAuwgPFWwPZzpVqRWQ7X20LoNzz813L1ma+trnaF9KvBBDQ + OW5kAOw04DkIDbogSIkBANkJWAlrINu5QvuV07ccC6DQ88Vcy9UmX9t87QvtX+R4eQuBbAFwDqNca6DQ + c+UScqH9/fn8+FpbAYX0rxRsAXAOoVDC52tbTauhmLaLxQLIdr3QNtnazdc+F6qVKbAFwDkC4wdVLOHT + 29aajNUI8i2U2V9K4K9CZn7JsAXAOYpKWAPpbcs5V6kxK9E2373Nd82Kcq2AfH2KGacc4WALgHMDai7t + U+j5WgmHUvpXom2+88Vcy/Z3zNe23FhAIeOUClsALH2YacBiiZ3rfLWEQ67z5QqNcs8Xc82KclyD+cbO + hVLcjHywBcDShlkNGI1GZ8PhsEhRlKua1kD6+WKEQ672ExMTkizLWuI6AYBsaWkhBUEgvF4vXC5XSfdm + PZ/rvou9lmvsfG0rZQHMN1YpsAXA0oZRCCRt3rz5e6+++mpzV1fXQKkkqYVbcOrUKaO/RpKkSpKkcv31 + 148fPHiQgZ6v9rS0tEQeeeSRuv379zs2bdqE/v7+nGMXer5S16yotQVQjUyALQCWNqwLgiQiy3qAYq0B + oHy3IP28pmmAEIWmAdddsR00TYMTZUUDpjlROaVpmEn8Dc6WlpbIz3/+8/ahoSHH6OgoOI6DJElwOp1l + aflyCF+oBVBKkM6OAdgoB9YnBAkkSWb8Qoole64+eYUDNBAyC+P3qWnQ16FpgAaAF2WIT/4JeEHCT/+v + C8CLCh797XFHjBUbfv7Kyf1zjDQDQGxubvY/+eSTG5YtW+Y3xn/kkUdw4YUXYnh4OONect1PvvPzXSvk + erY2udrlajtfn2qMkQ22AFj6kBOHmG4BGJiP7NmuWc8rsgxFFuB2UmY9qUl2ACR7FsE3/h6iqIDmZXCi + Al6UwYsKGFHBQ78+kjGvKKvqT393Ym+cl2m3k4Qoq/KvfvWrbd3d3RGrAHI6nZBlGYqigCTJqmv/Qq6n + tymlbb72xYxRLmwBsPRhBAJzZgIM5LumKDIUWV8mTpEEKIpIkJ3AwddfwFu/+N/4w/cNQRMVaKICUVTA + Cgp4SQEvKjgpKZijRfx67xlwCfJzgoJcP9v/+v34HCcppJMiXDde0HX1K0fplzRNMxerGD/4u+66Cw89 + 9BAAYO3atQuu/YvVxOVq7kKEhG0B2DCCgUYkHcD8Gl9TVWiabjT89slH8ctHvwOCILBlTSvu3NEPiApU + UcaYqGDVBV2YOBEFJyoQJAVzjIgDE3Gd6Amyc5Jikl9S8v8oP3hxbz2AegBrHnvt9EtPPvvi1u7u7kAu + IaWqaoYAK5fwpWj/YrV5udq/WprfgC0AzmMceuFHOPLiT8zPH7rpMgxtvBAsJ+IQL0COnQLeexuMoCDK + SrppLymmia+/GsRXzM/F4rnfvLClqb07b5uHH34YADAyMlL0+Oc6bAvARlbM5w7sn1LhX74JN161CRzD + g+NFRGMsWF4Ax4uYmYxj7kQUAY/TQvwE6UXZJL5xTlaL/yH++KXjsY9xsr/JsmNtLs3+yCOPQFVVjI6O + ZvwtBs4V878aKb9ssAXAOY5sZPrvn/wArf447r5yHUS2GfEYB44XE8TXyc/zEmR3GETTcky/dwCKqulE + N7S9lLQABClr7HFePPrScTz59PPB3t7evJmHO++8Ew8//DD27t1rugIGzlXzv9qmvwFbAJw70ObTOP/1 + owfR36bhD64dgsJy4OIMWE7UyS8YxNc/86IIjpfAEz7IoU6o08cR46SkABBlCJIKpQStDwA/euk4nnr6 + eaxYsYIgSdK8RyCTIBRFmed+9rOfgSAI0wooJcNhvVbI9VxtSmmbrX0xfSsNWwCcGzAyATmzAD99+AH0 + NUrYPjIEhWGTxE9ofZ6XwAkiOEEEL+gWAG98ll0QiAbwyiQ4ZwR89CREuTStb+C5519AZ88yGOS3Ih9x + JUmComTGGSql+Qttk6tdrrb52hfSt5SxCoEtAJY+NOgZAIXIsi/goz/4V4wNhfEHO1dAEwTwrK7pOV4w + fX2D/AbhBfOzLgR4QQInOyA46sGJCiRnBA55uuQb/uw3H0FTew9IkixJgz/++OMgSRKjo6NFa/dic/y1 + 0PylkNk6Vjnugv1gkKUPM/13++23Pzw+Pn4E0H8Uj/7guxjuorB+WTMgiuAFGbE4i2icQTTOIh7nEKc5 + xBkWcYZDnOFAMzziLAea5UEzHOIMjzjLg2YFxDkJNMsjLhKIk8GSbvYz33jYJL8Vmpb7YRqapuGGG27A + 0NAQAIDneTz22GPYtWtX3n7WcfNdK7dNrraFEjNbv2LHKBW2BbD04YS+77t37969siAI6sMPfhuXXtCF + u69aAVKVIYoSuBSTP+HrG+a+VdNb3vOCCF6UTHdAECXIim76S3AhTgYRVONF3Wy4vlmvQShS8/v9fjid + TvMzx3EQRXHefunXcl0vpc18bXO1n69PoWMYWLZsGW6//XY88sgjBY9pwBYASxckdOKHANQBqLt88+pb + gsq73R+6bgiexGbBnKRkEp+3mPuC4etLKYKAF1MFgSjJsP4OKSjwqUxRN/zpv/sBXB5vyrlSg3gA8Oyz + z8LlcmHDhg1Z+803br6xq5kCzNWn0L7pcLlcCIVCRfUxYAuApQkXAC908tcDaL1iy9pP3n/fLesHWoIu + UtPACbLu63MC2ITPzwuWwB5vkDuLxrecs2r9VGigUHgg8FN/++9o7eoHkSXoBxSuva2gaRosy9Yk2l8J + zV/J6j87CHh+wjD3AwDCAOp3bl//la986e7+5qCvo87vcyuSDIaXTI3P8kJKai+V8FKGC2AVAKKklO2D + khSFP/yr76G1ZwUwj+kP5BcEV155JQRBwP79+81zL774Inw+H8bGxgoeu9w22dqW0r7QfoWMVer/yRYA + SwOGue8HEISu9Ruv3jbyhS996gMXrepq8RCaBs5I5SU0P2fx863mvpX8XELLp2t9RVFzLuQBAAUO0EQA + AY3Oe+MECLT3rcw4X4ogqK+vh8/nS2kXi8Xwq1/9Cpqmma5Atfz9Ughebuqv2nUBtgBY/LCa+2EADTu3 + r//y1/7inlYvQSxraQh7FElNpPVE85W3+PnZNX7S5Bcs/r4kKVALUTX41AAAIABJREFU0SYEAQUOKBoJ + jvBlFQQOpwsfvv//LsvPn+86AESjUcRisbz9C5ljvnkq5esvhmXABmwBsHhhaP0gdOI3Xnfp6N98428+ + 3qBx4mB3a4ObUDU9cs/zpsmvl/IahE4jv5hp8hvaXxAlKKqKYn5vCkjQZBAaCKSbCy63F3d//lvoHlhr + nquEr56LELt27UIoFMLY2NiCav1yNH6tqwABWwAsVqQH+Rp3bl//5fs/c+uFyxojLlVWIIqJIB8vguUS + NfyJ4B4nShAyNH9qkE8QJDMmULDWTwdBQgEJaFqKO+D2+nHHH/8degezr9wrR+tv3boVDMPg4MGDKedn + Z2cxOzub0r+QOfK1KaZdtvbF9MvVt9gxioUtABYPCOj/j5Qg33WXjn7t7//mD/3MTHRkoK/dKQlSsmyX + s1TzpZn7ugCQs6b1TK0vJXz9cq1MgoAMp2kFUA4n+laN5u+D0gRBa2trzpTXm2++ifr6+pTVgoW4ENV0 + AcrpN98YxVzPBVsALA5Q0InvgyXIt3P7+j+7/75btvQ2hik57IcoKlnKeK3ET9P4omjR9oZQ0N+XrPXn + gdcfxE2f+HMAhZGvkHaFjjM9PY3Jycm8Y8w3Trkav1xtby8GOr9AIGnuBwGEPW5ny5UXr/vzv//rj7sn + T05eOLKyhxT5RIVeIq2np/YEM+ovWKP8YqbJL1RD61v/CE2BT6XhC4Zx48f+DAPrNqdcL5Z88wmCCy64 + ANFoFIcOHcpo884776C5uRkjIyM1r/XP1qfQfvn6lzJOobAFwMLB0PpBAOG6kK9zx5a1X/i7r9zrPX38 + zLbepjp0BP0QBBmckPDzzdSeYAoEQ/MLKcRPmvwm+UUJkqxALXH5bi6QCfJHQgG87yOfx8r1W/K2L8Yk + z9Wmo6MDkUgk67XJyUk899xz0DQN69evL3iu+dqlty20Tzn9ChmnkGv5YAuA2iNd69fXhfzdV2xZ+7nP + 3Hv9pf3NEXQF/eA5WSe8IIHl+ERqT8ha0COkmfyGABASZr8oKZAVpaJaP/nHaHBBgtvjw+DoVmha7l2I + rKiEIMiFyclJvPfee6YAqKXGt10AG7mQEeRrbarrveyiNZ/64mdvC82dmdl+werl4GgegqiAFyWwLJ+y + S0/S3E9qd8PEt/r9gkUAVEPrpyMQbsDlt3zc/FwMcaslCA4dOoTdu3dn7CFYqsYvldiVDPbZLsDShTXI + FwIQaWkI9+24aO0f3nvHlZcP97RCam3Q1+EnAnssz+tmv5BcvJOi8bNE9fX3ut8vigoUJfe23JWCChJa + oBmrN12Wca2agmDt2rWYmprC0aNHs7Y9e/YsxsfH824iupTM/1xjlQtbAFQXGUG+rraGFZddtPauP7pn + ZwMbZbZvXrcCIpvI3YsyGJYzfX3WsoAng+xiFisgcU1Wqq/1DYQiDbjk+jvytimFaPMJgt7eXlx22WV4 + 9tlncwqBY8eOYc+ePVizZs2i0vbVMP/tGMDiAwXAg4S5v6yrZWjH1nW3ffjOK1v4GHvZ2FAvZEGGwOvE + ZXnRNPmNCD8vJtN8QhrJU6v4klpfzrJdVjXhD4SwcfP2gttXKjUIAL29vWhra8spAM6cOYPDhw9jzZo1 + VTf90/sV2zdb/1LHKQa2AKg8SOir9sxKvt6OpqEdF6/9yO03bNtxwfAyyLwEkZNNzc1wXLKaz8zrJzW/ + IMjJPH5KJV9SCNRS6wNAXX0jtl56NQKhMIDi/fRKCoJ8OHnyJN5++22sXr06Y8xi5i+0faX65hsnHeUI + CFsAVA4ZQb6BvrbhHVtH3nfTtRd1k7Jy6ZaRAYiMAFFSIIiK7uezhq8vZPr61tReQgAIopxM+y2Q1o80 + NOGa992KC7dennFtsQmC06dP48CBAykCINu4hY5dSYFQbP9ixi0UtgCoDDKCfP3dLcM7tqy7+5adF+3Y + unEVFEGCJComoQ1fn02L8Gfz9dP9fIP8cg0i/Omob2zGVdfdnJX8VlRbEBhtly9fjhMnTuDEiRM5+0xM + TOCdd97BqlWrihq7ECxFs98KWwCUB6u5HwQQXtnXvvaKbSOXXbltZHnA7dq+ZXQlJE6CKCkQJRk0m9D6 + PJ+I9osQRCPSnyS3kCYIrDEAI69fSzQ2t2Jkw2Y0NrXOS34rStWwhbZdvnw5jhw5Mq8A+PWvfw0AGBoa + KlrTL4SWr1U60BYApSHD3B9e0bXuqstGt23btHpV2Oe+dOuGVVAkGaKgE5/jRTCs1dcXLBtwZpI9F/lr + 7esDOvmv2HlTCvFLMckrnRYsBhMTE9izZw+GhoZKtk5KvZ9KxQJyjZfrXCGwBUDxcEBP7Znm/sq+9rVX + bF139w1XbLp0y4ZBqIIMSZCzan1jCa91vb4Z3U+v27fU7y+Er9/c2o7B1evR3tmTU+sXWvmX3geonCDo + 7u5GR0cHTp06lXes6elp7N+/HytXrkwZu9B7Se9TbN9KjlEp2AKgcGSY+6uWd66/6tKxjWNrlq3vbK6/ + +KKRFZA5EbIMiLICluNNrW8E+qxP3LHW6fMpqT45VevL1Vm5lw/Nre3Ycc2N2HRxZoFPOkrV1pUSBIOD + gzh58uS8AmBiYgJPP/00CILAwMBA1vELvZ9cfUvpn22McsYqBrYAKAzWnH7d2pXdo+Ggb/2GtcsvvOnq + TVsvGl0JVVQgiyoESTULehiWB8fx+vJdaxkvL1p8/TTNb7xfIK0P6OS/vEDyW1FLQVDKPICeFXjllVcy + BECuOUqZp5Imf8mxAMoJ+FsI4DgB3WU1jhTYAiA/MnL6Q/0do1dsX39PX0fT1nWDvdi8dgVkXoaiApKs + Is5wSV/fulOPZa2+kKHxDT9fNt8vhNZvaetAT98K9A+swqYtl9aE0OX0K3UeYynx8uXLi5qnlLnS+5cz + TiHjmnB4gPp+AK84oPPcAf33nDKxLQCyg0BaJd+ald1jV1++cfWyruZL1q3s3rxpZAVUSYUsa5BkzQzy + MSwPNqH1s+b1LYU8gpim9Rcowg/o5N+x86asVX2l+PlGP6A2gqC1tRUtLS04c+bMvO1Pnz6Nl156Cf39 + /UXfX7WKe6oUGCSgKzDjcED/XZuwBUAmMnL6Q/0dI1duW//Rm3du3rxhTT80UYYsqFA0QJJUxBk2ofUN + 8ieJzyXM/fS8vpBF60ty+fvwl4Lm1tzkN1BOVL4WgmB4eBiTk5MFCQBAf6jI0aNH0dfXt+D+f7Zxyh0P + AJwU4VjeGmg5dJp2Qw9cu6BzngD0dWK2AEgiI8g3vKJr9MpLR5d3Ntdfc/HGwQ0bBnuhchJUEJBUgOX0 + B2gavr7xEI7k/nxW315M8/NlUwgspNZvbu3AutFN2FBgPf9iFwSF4vTp03jiiSdw7bXXore3N2OuUuer + hWYvdFyvk/BcONC44tBp+rfQlZphCVDQHydvC4AE0oN8611OR9+2TcMfuPOG7WMjQ73QZAWyrEHTSAiS + jDjNJgN9WdJ76bX6psY3P8sLrvWvuv4WjF5wcUn9S3ULjL5A5QVBQ0MDGhsbMTU1VdB4Z86cwTPPPIOP + fvSjeecr5V6zjVHOOPONmwcEdPJbLQBbACRg+EiGuV8/uKxj/Y5tI/dFgr71Oy/bgJGBbqiCAo2kIGsq + GIYDzbCZvj5v9fWz78UnJIhvbMq5MBH+DkTqG7Hp4suwfuNFZY1VrmautCBYs2YNZmdn8cwzzxQ8Fsdx + OHHiBLq6ugqa00AlTf1qBgS13AIAwPkrAKxBPj+AuuEVXet3XDLaXR/03nXD1ReuWb28C5qiQVEIaAQJ + nhdTtL5R0Zf+AI7U6j3R1PR8Yr2/KEoQF0jrN7W049obb8fa0U3muXI0uXUMYOEEQTlznz17Fk8++SQ+ + /vGPz984x9zlzJ9trHLHSx3cVHJW8puDn48CgEJaJd9Ab9vaK7au+9OP3XnV8FBfGzRRgSpp0BwuyIoC + mqZTtT6XWcqb4t+nB/pMrS/neNJu9dHY3IrrP3An1qy/IONapXzshRIE1r6lQBRFTExMoK2treQxKiGM + co1nRQljGwLASAWet1kAq7kfAFC3sq997bYta9oagv6Pf+iWywYGu5qhCDII0gGNJMAxHOI0A5rlkst2 + eaOiT8zI6fOiBFFIanthEWj9xqZW+ANB7Nh5I1aPbMzbtpKCoBIasZQxgsEgwuEwotFowX3Onj2Ln/zk + J7j11lvR0tJS8twGquX3Zxt73vb6C4ksNQDA+SMAUoJ8Q/0dqzVNa95x8bo/+ewnbujvb2+CKqtQFAJw + eiCKEui4ofW5lM05s+3Nl6nxk+W8C6n1GxqbcdMdH8HQ6vVF9VsMbkGpY4yMjIBhGPzqV78qaq6pqSn8 + 9Kc/xSc/+cmUuYudPxuqKRDKxbkuAAyt70XiUVvLupqHL9uy9m/dTkfPp/5gJ/paGqBKKuDyAooGNs6k + af30op5cGj9p7huvCxXhB/RNO2656+NYObyupP6VdgvKGasaacBskGUZU1NTaGxszDp/pe7BXgxUfRDQ + TR6zkm95T+vwxrHB5qag73/96ac+0NHZGNGX1RIUCLcLAi+maH09vZfQ+nz2aj4xReMnzX1BkqEskNbn + eFGWFUW76oar0Nm7nEp8DyWjEtaAdSygMhH0ahBmenoa//mf/4kPfehDqK+vn/ceKnkvCyUUzkUBYDxW + 29D6ka62hoHLt6z9x6986UMtLWE/NEmBomggg2GogggmRiMeZ0Czqek963P3hHSTfxFqfV6QxFf2HJqe + nImx//PCp6kHHnig+corr/SVO26lNXC13QOPxwOfzweWZYsed3Z2Fv/xH/+Bz372s0XfS677KRW1EApL + WQAYWt4sa4Tu63uR8PW72hoGhod6G3ta6v/uq1+4q6HJ74UqqiBdHpCUE2KMRjxOg6YztT6Xltc3d+MR + JfCCrOf1LeQXF1DrC6Ikq5omv7rn8KHJmdgZ6EUeLrfb7Yce9KwIloogGBsbgyRJeOqpp0oaU1VVxGKx + nE8hLuR+DFSasJVWLktRABi78VgXN1BIbtTh72xt6JFlpf6Ki9d95+//+uOhsMcFVVKhaSTIcB00jgc9 + G9V9/ZT0nmiJ8ItZ6valFOLrAmFhtb4oyfJLr+8fn5mjxwGcAjAHQAHg83q9fQCaKj1nJd0CYzyg9gHD + XJibm8MDDzyAz33uc2WPtZgDgMDSEwBGNN8XDsP3/vej6Qc/AIdkoM/bUBdo3bFl7QMkAc///quPIehw + QJU0kIEwoBEQ5mKg4zTiNAuaZVPSe6kRfjEzwi/JKWb/Qmp9AJBkRX5x17v7Z6L0MQAnE8ds4nLY4/EU + bwMXiGoE5iopCBwOB1wuF0RRLGkcVVXBsiy8Xm9VzfoFKA1OwVIRACnFO14vwh/5CFZ8/evEA7t3ax+T + JHhOjnt8TU0R/8XrB/7uu9+6z+HSNKiKBlAukKE6aDQDOkZbtD6XXetbAn2isV5fSvX3da0vY4GUPmRZ + UTRA+80r7+yejTFHAZyATn7DAqAANHk8Hq7S2jodi1UQjI2NQVVVPPHEEyX1j8Vi+Pa3v41Pf/rT8Hg8 + 5vlamPS1tBIWuwAwAno+AAGPB5GeHrRccAGW/cM/EP8HIPDmbuJHokji3tvX4aHv/iXACYAoQSMokC3t + ACdAmJ61aH0OrGVzzuT2XGL2vH661hclKDXelNMKRVHVp3/71jGa5ccBHEeS/O8BOAOATnxnhMPhEIHK + m+zZUI05Kpk1KAU0TeOf//mf8fnPfz7vmNUWCtX83y1WAWCt2gu6XKiLRNB4441Y9Z3vEP9iFjRp+i5H + LgeJH/xwDzARhSIDZKAehD8AzMYQj8UzfH2WSzx+K6WMN6n9BdEa5FscWh8AVFVTf/nim+8wnDAOnfjG + 6ykAZwHMAJCgZz9EkiRN/6RWQgCoHiEWwn/WNA2KooCiqLxtDFTjHqu5X+BiFABmJJ8gUEdRiHzmMxj7 + 5jeJf04nPkAAIglIJCCTQOgToBQKIB6GODmNWDyOeJzNU9Qjpmp745AyS3kXUutriV/AU795YxfLi1at + b2j+s9B9fxq61eQDMh8MXCsiLRZBUIn5WZbFN7/5TXzxi18ses/CSt1DoXOVgsUkAKzmfhhA5Gtfw0Vf + /CL+ASCI1H0NCZ3wEgHIlH4oJKA4AM0JaJ+C0+vC7ImPIU4TptbPFuhLJX6quS+IMuQF1voA8PivXzsg + SspJTdMM4p9A0uSfhO73s9C1v3vBbnSRYcOGDSAIAr/4xS/KGofneXz961/H/fffX6E7qzyWchAwxdwH + UAeg8S//Epu/8AXiLwmCcJik1whAJXSNL5GAQumkVyhAdQCaC4AbUEhwUQZ+97cwcfpu0KwzQ+tbK/l4 + 0diFV4Y1t1/rB3Bkw2PPvvaaIMqGtk/X+jMAYgA46Kk/K7Rc2qcW7oAxD7BwlgBBEAseZa+2e1AuFloA + pBTuAIj80z/hkj/6I+LPAVAkSbjMeh/NQnyZSpCeAlSnrvXhBkgP5BiLaJQBTQugGRExmgXDufQov2Vb + rswqPsMCWHitr6qa9tizuw4TBPGeKMnjSEb43wNwGrrWN0x+AZnmvgpAJggiZ46yln71QguCSkAURXzj + G9/AF77whZLHWIw1AQslAIy0nh+JNfkPPYSrbr+d+AIAp8NB+JJanwQUApAo3ew3tL7qSBKfcEPjFTDR + GGJxHjQjgmElsLwCt+Pf8f/9dhUGegdBkkTWMl5RWjxaX1FU9YnnX39bkhWrn38SwASSWj+KpMmffsMa + dGtAJkly3j+mVtaAMRdQW0Gwbt06KIqCJ598sux5BEEoewwrKplR6O3txR133IGHH364qH5lLRQpARR0 + U78OQDOADgA9//qvxE23307c73QSYaeT9OkaP0F2kQIEJyA5AdkFKB5A9QLwA0QQmuqFOMtj6mwck1MM + pmc5zEYFROMS4rT+gI4tI7vx7pF3MDMXN+MB5sELYDg9JrDQ5JcVRX7qhd2vCqK8H4D1OAQ95fcegGkA + cQAisgT6kND+AMS77rrrPw8cOLB7vnk1TatpJWO15jPGtY7tcDjgdDorMr6iKPjWt74FVa1e8Zf1byjm + O6IoCm538eGfWlkABHSNb+y4Wwcg8sMf4uobbyQ+SpKE1+kkAqbWVxNR/WwaX3MBhAcgXFBjHOIxBvE4 + D5oWwXASOE4BxyvgRQ2CoEIQNSiKiuH+N/HWQRV+bzNUTU3R/AtNfEGU5Gd/9/YxEDjF8aK1sCdXoC/f + DRsCQDp8+HBMUZSCS+FqaQ0Y8wHVTZ1VemyapvGP//iPuO++++BwOGqWUbGiknPWQgA4oJfvBpGI7v/s + Z3j/lVcSd1MU4Xe7iXBKkE+x+PgylUZ8w9xXwUVp0HEO8bgAhhHBcDJ4QQHH66QXBE1/FQFB0qCq+g68 + Z2f0nWIIgoCq1lbzZQMvSNJzL+99N5HbP4lkcY81vRdF9kBfNpgWAACBoqiidh5diJx7LQRBJRGLxXKO + X8uYSiXmraYASH/ARv0vf4lbLrqI+KDDgZDbTdSlBPhUq8ZPBPeMyD6hB/g0hYIaZRGLcabWZxO+Ps8r + 4AUNvKgLAFGEKQBECRAkoK3xXZw8MwhJ9iK/Eq0NeEEUfvPqvjdplk/P7Z9CMtDHAOBR+A2bMQCkFQMV + g1pbA8acQOVJNDg4CJZl8fTTT1dszO985zv4xCc+AZfLlXJ+oaL+pbpV1RAAhrlv7L0XAdDw3/9N3LRt + G+5wu4n6lHy+apCeBOSEqa8mnl9AuAHKA8AFNcaDjdGgYxzitAiGFcGysm7uCyp4U+MnyC9pECQk3utC + QJYFBH3vIkqvhKJWbJVs0WA4QfjdGweOATgdo7mjmD+3X+x/1hAAeTMB82GhKvAqPa/H40EgEKjIWAZm + ZmbmJdxijPqno9ICwIFkWi8MoP7pp3Hb2Bix0+0m6lPIr5EJrU8l/XwtkdJLaHxAj+5LMRrxKJs099mE + ry/oWt/w9XVtn3iVkdT+iVdJBgABAe8B0NzAgggBhuW53+0+sG8uxs4X5S/U5M8FFYBCEETZps65Iggq + jQcffBD33HNPymKhfFiMNQGVEgBWcz8MIPLSS7h7aIi4wuslmj0eoiGD+Aqp5/HNAF+iiIdyA4QXUCgo + URZslEU8xiFOC2BYGRwngeMVcIJq8fMtml9O1frGe1WFmdunKB4gavtQjhjN8q/vPXpKVbXTczH2KHQz + 35rbPwtd69MozuTPh5zFQCUNtgBugTEvsHhIY+DMmTN46KGHcPfdd8PnK06ZLBbroFwBYBDfWsxT//TT + xO2jo8RNKcQ3zH2VSvXzzSIeN0B5Ac0JlRYhRhnEo3qEn2EkM8LPp2t9CRazP+nvi6Jh9gPZgvx+z1Ew + XD8U1V/mVzA/YjTLvvrW4cOzUcYI9Bl+vlXrl2Py1wwLvTCn1Ln7+/txySWX4LnnnqvoPZ0+fboiacGF + EgilCgASqWm9MIDIiy8Sdy1fjk3BINGRJD9p0frpRTwunfikVzf7eRVyjAUzx+hanxHAMhJYTk6Y+0lf + XxSTUX6ruW81+TU1N5McFAu/93DVhUCMZuOvvX303dkocwyp6/YnAEwhWdFXrslfUyyUNWDMDRRHEr/f + j4aGhqrcz6OPPooPfvCD8Psr9zuq1T4BpQgAJyy77QKof+UV4sNdXRgNh4ker9eq9QsgPuUFZBJqlAM/ + x4KOsojFeb2Sj5PAcTI43iB+UuuLopai6a0mv6wkzf28fzzFwu89Aobrg6JWNkg0G6W5fYdPvSfJynvT + c/HDSC7btZbzWiv6qlFdoqGK1sRCm+YLPb+BkydP4sc//jFuueWWigcbraiGlVCMADD23DP9/N278fHm + ZmJtJEKs8His0X0yae6rVDKyb0npgfIBmhMaLUKOMaDnaMRjnF7Qw+pan7dqfUHTI/uilqHpjfeSrPv6 + RX0BFAOCkIvrNA9mozT95rvHj07NxtPX7acH+njoWr8aJK1YEHA+LDQRC52/u7sbF198MV588cWK38P4 + +DgkSar4uPmQLhCqlQY0VusZ5n4EQOPvfkfcMzhIXJea1jNy+lQywGcW8biSxCfcgKhBibLg5mjQUQ4x + mgfDiLq5z8vg07W+EeFPS+0ZWl9RC9P62eB1nwTLOypiBcxG6eie/eMHpmbjx5C5bj99EU+1akqLWg9Q + sUkX0C0w5jeQ7T6CwWBZz/+bD48//jje//73l7Sb8EKhEAFgreRr3LOHuC8QwMrWVmJYL+YxduY2ND5p + 0fiJAB/l0U190g/IBLQ4DzHKgJ5lEI9z5uId3dzXtb4gauAFLZHW0zI0vmH2yyVo/XQ4HTRIUkI5+3tO + zcbpoyfPnuYFcWJyJnYYqcRPN/lz1fFXCip0ASA9+OCDz3z0ox/t7OzsXFHF+UwstDWwkPdx5MgRiKK4 + KNN9uTCfACATbbwnTxJfArCiqYnY6HIREZP0ZpAvy/JcKuHnk379PCtBjrJg52jd16d509znODlh7qsZ + BT1iFq0viYCila71K4np2Xh078ETRyZnYulR/lzr9qt91+Z6gAceeODQBz7wgalaCQAD56sg+OUvf4lr + r73WtAIWuzAoVAB49v1e23bBpeQal8ui8TUS0Awf3xrg8ySI79MX7oga1DgHYS4OZo5BzNT6urlvan0j + ry9pGUE+Q+NLeVJ75cDjmoCqOotyA85OR5lTZ2YmaZZ/b3ImZlT05Vu3X6s9xFXogUURZZQDVwKLhQDG + fbS3t2PTpk14+eWXqzLPwYMH8cQTT+Caa65BOBzOeg/A4hEG8wkAAolc/yOP4P+VJa1p85Vka7ieSmj9 + 9FV6bgvx/XqxD8tDitJgElpfL+hJRPh5FZyg6Dl9M8in+/rZTH5J0olfDa3vdMRAkmLBbsDkTCy27/Cp + 41m0vlHUM43amfzpMGIAEnQBsCjSiwsdIwCAUCiE3t7eqgkAADhw4AAuueSSDAFgxVIpBNKgWwHU93+K + 19et1KJOh9y6YbsL4YgrUbNvCfCRfoAIAIQD4BUosTj4uRjoOTbV1zcX76gplXxWcz9d6ytK5bV+Ojyu + M1BV17xWwORMbGbf4VOHJ2dix5Ca2z+N7Ln9hXBUTDdgIS2AdCwW16DaeOGFF3DFFVegrq6uoPaLtRDI + +PE6ALg1DeSJgyoITcDoVj/qGvw68QlvgvgeQAI0loM4FwMzS+vET9H6CnhehSCqliCfpYZfStP6FQjy + FQqnIwqKbM4pAM5MzdGTM/Hp2Rg9fnY6mi3QN4VUrb+QxNMS8yu1zAQUioUUBE1NTRgbG8Nrr71WtTn2 + 7dsHgiBw+eWXIxKJFN2/VgKh4BgAAJ+qgRwc/RSCkWU4vO+HWDbMIdJUDxAhfbNOjocco8HPxhKLd3jQ + rL5kl+ONjTqSvr6YpvWFNHO/nNReqXA5J6Go7gwhcHY6Gn33yHvjCZPfyOtb03vTqG2grxAYQmDRYiEE + QSQSwcDAQFUFAAC88847IAgCl156ac7HjReKagmEXAKAQrLirw564U94eNOXHGsu/CT8gS4cfbsTR/f+ + M7CaQCQEqGwc4lwUzCytB/lMrS+DNxbviElf34zwZ9H6slI7rZ8Ol3MOotSYIgDOTkdn3j2SYfIbhT3G + 0l1jEc+iJtxiRa0FQUNDA9avX4833nijqvPs3bsXY2NjZQuAdFRqo5N0AWAt+glA38ij+bHHHrtZ07T+ + TRdvq/N7wwCnoK/r/QDN4tiehyC1jsMDOVXrc7Jl8U6qry/m0vpy6qq9hYLLOQ1F9eLUGYmNxtm5M9PR + o2enY4eQqvVrnds/L1ArQRCJRDA8PFx1AQAAu3fvRigUqrgQqASsAoCAvrLPIH7DCy+88EFN01o3jG24 + xuvyRiCqAGtE5wT0tV6No4fjOL7vQbi9ZxJPVJXA8nIyyGeu2rNE+LNo/VoE+QqFyzmL8QmC23dYPD09 + Rx8FcBTAMeim/2I2+bOiFuXAlUYtBEFMXPa1AAAYOklEQVRdXR3Wrl2LPXv2VG0OANizZw/Wrl1bdQFQ + bimwUedf99prr32U5/nmDRs23OyiXCHIGsDJyXW2gmC+9tRfDomOYyr6MET1uFnGmxrk01LKeK1+vqn1 + K/UtVAinJ2dmp+dwAjrxDydeTyJz3f5iNvk11Gg9QLVQzdRhJBLByMhI1QUAALz99tuoq6tbdFaAIQBI + JJ7O87f3fvKeVYODn/Z4fAEoAHgFEBU9KS8IgCgAggBNFKCIAiRBQHNgK6biL2KWPghJTq7VN4t5DK0v + JwWAJBe+aq/WOHUG9GwMZ6Cn9oyn8I5D9/mNdfuL3eQ3AoBlbQu2GFBNayAUCmH16tV4++23Kz62Fbt3 + 78aqVasWnQAgLa9OAJ7ultY/PPjyroAU4wFWBhgBYBj9YPVXlWUgMQxYhkGcYRBlGCjiACS+BQyrgOFU + sJwGhtfAchpYDmAFgOUAjk+u3FuM5AeAIycxOTFp5vatPv98e/IvJhh1APKuXbvemZmZeW+hb6hcVON5 + ApFIBBs3bqzomLnw7rvvYnZ2tiZzFQpDABiF/Y4TZ0//6s1nnueFmSjAsCbpwdLQGBoSy4BjaMRZGjGG + MQ8PdQHY2EbMzAZ0wvMaOA7ghMTBA7yQ8PcXuT6iSMxB1/YTSG7SaezQK2Pxkx+wbA/+J3/yJ78fHx8/ + utA3VClUWhD4/X4MDQ1VbLxceP3113H27Nmqz1MMrE8GUgHgz/7t/zz47vix54/ufYsX52ZN7a8wDASW + AcMkiR9naMQYGodOjuOtQwdw8EgdJk4NIBYLgOUTWp9PaH0hYfIv0B9aKCZnMBlnzE06jeIew+xfFCW1 + BcKsBAQgFvt8gKWAUp6gkw2RSAQXXXRRhe4qPw4fPozZ2dkFfx6FASMGYGwjLQEQ//Y/vv9ffa3tGyiB + 9yxr7wSlquBFAZwggE8cXOLzyTOn8fq+dzAdnUsM1QVRnYbTE4es6Ka+sgR+eqenQPMCYvsO4+0Tp7Ef + yWi/Qf7K7hpSfWiwPCBkMZUDVwNLpcR4165d6O3tRV1d3aJYHGQIAGP1GAvdzKWPTJza63z9tU0Ky7mb + GxshK0pSAIgCxk9PIErT2H/sCGYtT0oBAIGLwOWeBEXS4JcA+c9MI/rymzh2ZhpGys9I901BT/XVciVf + JbEo1wNUE6UKAq/Xi+XLl+PQoUPVuK0UjI+Po62tLWWdQFUq/UgH4G+CnsDK0cTyXoQuAGIApr/2nw/+ + VJDE2NuHDuDIyXHMxqKIJ8z9fUeP4OW39uD3e3ZnkB8AoPTAQw7ARVVvf7RK4PQUmBMTmPz9m9h3Zhr7 + ABwEcAS6ADgNfR0/g0W+U28emJmA80UAGCjWNYhEIrjsssuqeEdJvPLKKzh16lTeNqU+JDQFDg9Qn38b + CGsdgAq9qGUOerT7zMnJs+/2t3cGj5086WlvbcXUXBQvv/UmonR83rknJ3sAigCc+wGSLu0PqCLOziD2 + 29dxbGrOfCKPdZ/+s9DN/xiS+/YtVWjQnw+wFAVY2SjGInC73ejr68PRo9WPl546dQqdnZ15lwxbUaa7 + YNmbPxXpjwcXoWu8WQBTX33oe49wojAHADGaxqt79xREfhNKNzyOdniKf2px1XB2GszEWUy/uAt7p+bw + DoB9iWM/9IIfI99vRP2Xqva3YUEhmrSurg5XXXVVTe7n5ZdfxvHjx0vqW6R1QEBX9A7oa3woWARBtsVA + PPRc9wyAs2dnZw/63O46mqY9frcHcYqBXERUL+gNwO33Y2qOAV/wg6qrg6lZxJ97BUfm4mZu39D6xqIe + YxMPBkvX77eRB/NpUpfLhe7uboyPj9fytspCAULAaTkMQQAg0wIA9KARC90VmPry97/7g0OnTu6RZFlY + 3tkFv8db1M1NTvZAYFYiWOSjkyqJyRlwZ6cx+8zv8dZc3NT4htY/BL3Sz3gir7Fdt03+cxzZNGg4HMZ1 + 111Xk/knJycRjxdhUZcAigTV1ehrgF7q70JSCBBAdgEApFoBZ7760Pd+EmOZKQAIeL1wUFSObtkxOdmD + 6FwP3K7521Ya03NgfvkSDv/8GbwcjWMvgHehE/8A9IDfCSQDfjTOTZNfAyq3hPRcQzUqDAvBb3/7Wxw+ + fLiqc3idpOeS4ZZV0Bf6uZEUAhSQWwDI0M3gOeipsLOz8fhJSZaFFV3daInUFy0Ewn4v6gLFWQ/lYjaK + +JO/wTsMh/1AynEIem7kFPSAn/E03nNR62uWY8F+7EsBxnfjcDjQ2tpakzlnZmZA09UOkmvGSl+rBZBX + AAC6DxxDwgr48ve/+8MoQ58GgBVd3Qj5insO2uRkD85MDAFq9YXATBTcbAyxx57D6yxvmvr7kUzzWbW+ + Eeg7F5EzDWgLgdwIhUK45ZZbajLXSy+9hP3791d3Eg0EdPIbQsAUAPm2BDPSglHoVkCY4bj36gLBVgdF + uT1uNyiGhFLM1j1KD0CIgKt6K6+icbA/fxoHZMXcr8/YxMN4LJcR6OOw9Kr7ioW5O/DMzMxMR0cH7fF4 + zOKMpVI9txAgSRKNjY2Ympqq+lyxWAwsyxb9iPFCocEUANZAYN4YgAERul88A+DM/f/27e8fPz3xtqwo + 4kBXN+oCwRLuxgVolc0Lahq0aBxCnAH9k//B67Ji+vlWrW+k96aRXNRzrsOsBLz55psf27t37+vZGtnW + QCaCwSDuuOOOmsz14osvYu/evdWexiA/BQvv5xMAgO4KmAHB//X97/5ocm72JAC4nE6QZCFDWKD0ANLK + 4vrkgaZBi9HgHn0S7zzyC/xGVbEPeqDvXejkNx7YYWzkca76+tlgrggEwOdbEGQLgUyQJFnwtt7lgmEY + 8DxfzSlIy5Fycj5ISA0IToiSNKUoirSyuwctkfrihYDm0C2BMqBq0BgWYpwB8+iTeA26tjcKe6yBPkPr + G+v4zycYAkAAQLtcrrx/vx0gTEUgEMCHP/zhmsz1wgsvYPfu3TWZy4pCmWsEBKcAnL7/37794LEzE28r + iiKv7O5BQ6iwckYTSg8grSqujwUJk5//4ePY/6Mn8CKSGt9I7xkVfdb03vlg8meDDN3qiSuKMsswzJwo + ioIgCBAEIWsHWwgkQRAEAoHarGnJ9z+pFgrN5RlpJONRYc5fv7FrYtPQ6r5wINAwG4+B4bniZiZiADUJ + FLlbVYL87E+ewlvQzfsjiVfrKr5JJCP855vWzwYKgPPhhx8+8u1vf3vX2rVr/UeOHGkdHx9XWlpaCEmS + SACgsqR2z/cAodPpxLp16/C73/2u6nMdP34cHo8HXV1dJfWPRqN48803U0+qEqTZcWnP8blD0BXiGSQt + YqmQx4MbEBOd3NA3D/UDiKqqqqzs7qEA4PTMdOHaQ+kBRA1wF7Yts6ZBk2QoLA/ux09hF5LRfWPrLsPU + t5by2qpMdwMMC24SgPNjH/vYTwG8DKB98+bNo4ODg0MbN24kLr30UoogCMrhcMDpdAJYHM/zO58gSRJk + WYbDUQw1S0dx1TzJ4BkBgHr6tVfGRwcGO8P+QEtTXYTgBQE0V4QlQMYA6gwwz0I1TYM2EwX3yC/wzt5D + eAvZtb41r29r/SS0tPfG5i8CAObkyZMnd+/eve8Xv/jF0d///vfqkSNHGmKxmNrX1wdVVUlN08wYz/kq + CBRFwauvvgq1Bk+rOX78OBwOB3p6eoruW4oFUKwAyHAFnn1j18T6FSs76kOh5ulYFDTHFjFaCNA8gON0 + 9ssaNFWDNhcD89NfYjeSpD+C1H36jW27zqcIfzEwCoKMjV8E6N8VDd0yiAKYm5iYGH/jjTfeeeqpp44+ + //zz0rFjx1qmpqa0gYEBaJpGGEHCooO+SxwOhwMXXHABXnrppZrM19PTg66urqIFbrVdAAMZroDT4WA1 + TdNWdvcQADAxPX/xhKZpGhzHQbjfyPpXahq0qVmwP3saB5G6cs8w960P4zyXq/kqAQ3Jh5WK0MkfQ9KV + C1qOMIDwnj17ju7Zs+dlAJHvfe97/Vu3bt0IAL29vbjrrrvM/9n5ahVUE88//zw0TcP27durPlexFoCB + FEvg12/sGh9ZvrI9Egy1TUcLswL2nzguvnvqDaGnHVnzgVOziP/8GbwJXdsbJv8xpAb65nD+FPVUAlYL + gIe+6pNF0hIwjqjlmJuamjq1e/fuva+//vqhY8eOxU+dOtX1wgsv4ODBgxgdHV2QP6TWIEkSF110UU2t + gN7e3qL6hMNh9PX1pVoBVbAAAN2PNMqEJxVV9f31D7738P13fpha0dW9DshtBewbPzb327f3TGiaymiA + 4qDQuHkE/cb1iUlEn/wN9mkapjUt65p9q9a3A32lwQgMCtAFgAN6qagH+nMhvUizDFRVDQMI///tndtP + G9cWxj/bYOzxeGyTGJJDEmIIhDRpoM0FKbSJTptUbVqpqvrSPrVv7Wv/myNVatqqaqNW5yEtOqlSqQ/n + SJETNw6BcCnEwTYEjC/4EmPAw+w5D+NtDwYSILYDyfpJIwMKkz0S8+211l6Xhw8fTn7zzTd3oY2Ps3/7 + 7bdNly9fPudyufDll18+h0epDQaDoebWzlYDsNtZ43YtAED7IypaAgpjxtujw/GOg4f2mIzG5se5tVbA + WDgYuXl/cFhhSkjVXupIIomwquLxP5rQGk3g0fX/4saKgkeqihC0Ov0g6HivmhTrBaBZBYuFawHrWwYp + xtg8YyzJGJvPZDLRoaGhUa/XG/j555/n4vG4x+/3o7e39/k8TRUxGAzo7e2tyZHg9PQ0VFVdFQzczMud + yWRWJxRVyQIAtD8cfrxkBmDNLS8JdSbT4/b9LYCqYqZgBQwHH0b942OhFaZEFKbwEtwMAFlhMAz+jeGJ + EG6srMAgr2htrFHKPOSdenh77iXQrl8NuBAoKLWGq0OpjtwKLWbAP0UANlVVbUtLSxIAKRwOi1euXHkA + wHH16tU9H3300UWTyYSvvvrqOTxO5TEYDGhoqE1/O0VRoJR13qpG5+BnsQCAUnQZKEwXGg4GZjoPtu4x + GAwHMrkFjIWDf98eHfYvy/kQYyyIki8/hYJZzxhiy3nE5JWiiT9XuPgIbp7NR7t+7eCCkMdqy6A8ZsBj + BUkAKVmWk7Ispx4/fhwfGxsb8/v9gR9++GE6nU63eb1eg9frRU9PTzHPYDfy+uuvw+fzVT1jMhKJrLEC + NoKLQS0tAA5vHjIPoC6WShn+de3fV4xG43+W8nnbwtKiml+ReYehGEodd1PQzE4DtCqlBmiCpBZ+zs3Q + BdCu/zzZyDIwoVRfro8d2AFIqqqK6XTaAcCZyWSk7777bkpVVYeqqpKiKP+sr683A8Dnn3++6c64O4Fa + pgbLsox8fnN7HhejrYpSpdKN+NGgCYA6k4gvQVMba+FnXCSS0IQiidKObkKpVtmIsok2oAj/TkIvBgZo + wsy7zq7nKtihBQvFZDLpAOAEIP34449haIFF+7Vr14R3332312q1Cp988gncbnfNH2on4/f7YTab8eab + b1bl/pUSAH08QJ96aob2UvMdPQtNKHgQjx8lciHgAqCglLhC7EyKbcawcdyAC4FeDOzxeNzGv56fnxev + Xr06ZTQapf7+ftvbb799VhRFx4cffoiWlpYaP9Lm+eKLL/D1119DlqubfrK8vIzFrWTXbpFKJhzzo0Ge + bJLV3Z/v6IuFT/2uXr6rkKm/O1nPVchgrRgI0AURAdji8bgdgBSNRsV4PD5VV1fn7O/vt1+4cOGUw+Fo + BIB33nkHbW1tNX+ojWhsbKzZseDQ0BAEQcAbb7xR8XtXuuJAgWYW8jmDPGeU16UrePILTi//i0G5GOSg + WX68L50FJXeB5xyIAMRYLBYG4JydnZWi0ehUfX29izFmj0Qi3S0tLW4AOH/+PI4erVxTme3y2Wef4fvv + v696Ce/i4mLVGodWo+SIm+7lvju93C8nPKbDrcAcNHePJx+Vxw5EFNyDaDQaRiFu0N/fH7ZYLI2MMXs4 + HD5++PDhfQDQ29uLEydO1PqZAADNzc01swJGRkZgt9vR19dX0ftWs+aQXniiHP3mwF1CI1aLQbmbsEYM + fv/996AgCC7GmPjbb78JZ86caWtpaflHd3c3XnvttZo+0Keffoqffvqp2u28kMvlkEqlKn7f2hQdE8Ra + eBBRLwjlrsK6YjA3NxdEIagYCoXEqamph5Ik7WlsbLSdOnXKc+DAgVYAOHr0aNUzEltaWtZtpFINJiYm + cPPmTZw7d65i9yQBIHYK5dbBk8SAC4IIwBaLxcRYLCYFAgF7MBgMuFyuZsaY2N3dfWhiYqINADweT8XN + Z87HH3+MX375parRegDIZrNIJBIVvScJALETeZoYWLC2cImLgRSLxRwAHMlkMjAyMjKqKIp47NixlnA4 + fATQdu3z589XbLGHDh2qWQefSrM7V028TKwnBnzcNR94qReDoquQSCTCiUTCAcARj8ebHjx4MM4YEz0e + z77Z2dlOAHC73Xjrrbdq/lDbZXJyErdu3aqYa0MCQOwm9GJgwOogIk8n566CrXDxhCNpfn7eAcAxOzvr + np6enmCMCYIgCF6v19XZ2dnpcDhw6dKlbS3s/fffx6+//orcOlWwlSSTySASWb+D1nYgASB2K/pcA97k + ZKO4wSoxSKVS9lQqVbQURkZGXO3t7WGLxWK9c+eOs7Oz8zgAWK1WvPfee5tazJEjR2pW4BQOh3H79m2c + PXv2me9FAkC8KKx3xMjFgMcMuBjwTxGAmM1mbffu3ZsAIA0NDbm6uroeMcZsgiBI+Xz+VUBrmf7BBx88 + cQGXLl3C9evXsbCwUJ0nLJBOpzE9PU0CQBAboG+AysWAuwk8C3G9IKKYy+VEv98fAOA0m80uWZbnFEUR + TCaTqKrqSf4fXL58ec3xX1dXF/7888+qCwAAzMzM4K+//sLp06ef6T4kAMSLznrdkE0oDcssz0QUoLkG + Uj6ft/t8vkkATpPJ5DQajTFFUQTGmADgVWOhPfLFixeLjUIuXLiAP/74o2qpu5xUKoVgMEgCQBBboNwy + 4O3tuSCUxw2KYqAoiv3WrVtBaNmIDrPZHFNVVWCMWYaHhxteeeWVzrq6unoAWFmpTQV7JBKB3+9/psas + JADEywovNed9t7h18KS4gQStbbro9XofFr62+3w+8cyZMzGTySQyxhqOHTvW0dDQYKn2A6RSqWfuzEwC + QBAa68UNeLMaHjfgpwn6eQo2AKLP5wui0PxEVdU5s9nsUBTF2tHR0Wa1WoVqLToej2NgYAA9PT3b+n0S + AIJYy0ZikMbaUmZ9FaMdgM3n84VQcBVkWZ4VBMGlKIrV4/G02my2ivYTSyaTGB0dJQEgiCqxkRg8NYgI + wH7nzp2iGCwuLnZKkrRHURTLwYMHD9jtdqkSC5yfn8fg4CBOnjz59H9cBgkAQWyejYKIPDW53FXgboIE + wH737t2iGPT09BxxuVx7GWMNjLGG/fv3Nzmdzm11R00mkyQABFFj9EFELga8TkHvKqwnBtLAwMAkSpaC + ePz48dbm5uZ9jDGz2+12u1yuxq0sJp1O4/79+1vusFybQmaCeDnQZyLqR6/xFGXeFLc4dxFah+xkLBab + nZycDAeDwUeqqmYZY4uJRCKlqqpBEISnBhGXlpaQy+VWzwZUZCDzCPJCUh4MpSagdeqOosJzAQiCWI2+ + DRofwlqP9YOIPG7ALQRxdHQ0ODo66gDg7OzsPOzxeFoVRWmQJMm1d+/evZtehbIMpEP8OxmlbttFSAAI + orpsJAb80pcz65udOABI4+PjofHxcQcAZ3t7+6GOjo42xliDzWZzuMuGKGSzWYyPj69ZgMEABi14yRv2 + FkWABIAgake5GBhRCiLqxUDfNr0oBoFAIBQIBAYBOFtbWw+cOHGigzFWzxgzWywWAYBbP7g0r6gr0UQu + vdfeUAfN3chCEwK5sBYSAIJ4TpS3TtefKOg7H5WLgQTAEQqFJkOh0L3C9/Z9+/Y1nT59+ihjrN5sNlua + mpr2L69g6X8j0YG+LrcNmu+fhmaBLKNgBdR24DlBEJthM2JQrGBEKQlJAmB3u93Ovr6+k7lcbuHGjRs3 + oQ0EnQHwCMA0tNmcWQAyCQBB7Gw2EoONgog2lGZtqtBM/hS0qduxwpWG5oIwEgCC2D2Ui4E+bmCB9vJb + oYkEd+9laGPa9MePiygM7iEBIIjdiQEbBxEbUMrx4TGGJZROAlZQCAKSABDEi4HeOqhHSQB4sFFGaT7n + ql8iCOLFglsH/P3mNQwEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQexy/g894OSvirlt + pwAAAABJRU5ErkJggigAAABAAAAAgAAAAAEAIAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAANAAAADQAAAAMAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFQAAAC0AAABMAQEB + ZQEBAVQAAAAjAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACQAAABkAAAAyAAAA + UwICAn4eHh6wPT092mBgYPItOkfVAAAAUwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAwAAAAdAAAA + NwAAAFwDAwOIJSUluUJCQt9cXFz4ZmZm/2ZmZv+VlZX/PEZR8gAAAG8AAAANAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAOAAAA + IQAAAD8AAABlBgYGkS8vL8FISEjmYGBg/GZmZv9mZmb/ZmZm/2ZmZv+UlJT/paWl/z9IUPQAAABzAAAA + DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAA + EAAAACcAAABHAAAAbRAQEJlJSUnKioqK7MrKyv6np6f/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/0dHR + /6Wlpf8/SFD0AAAAcwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + BwAAABUAAAAtAAAATQEBAXQaGhqkV1dX052dnfHS0tL+4uLi/+Li4v/h4eH/cnJy/2ZmZv9mZmb/ZmZm + /2ZmZv9mZmb/k5OT/+Li4v+lpaX/P0hQ9AAAAHMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA + EAAAAAsAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AgAAAAkAAAAZAAAAMgAAAFMDAwN+IyMjsGtra9qpqan009PT/+Li4v/i4uL/4uLi/+Li4v/i4uL/tra2 + /2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/8LCwv/i4uL/paWl/z9IUPQAAABzAAAADQAAAAAAAAAAAAAA + AAAAAAAAAAAJAAAANwgICmEAAABWAAAAOwAAAC4AAAAdAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAMAAAAMAAAAHQAAADcAAABcBQUFiTMzM7l5eXnftra2+NnZ2f/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/3p6ev9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/4WFhf/h4eH/4uLi/6Wlpf8/SFD0AAAA + cwAAAA0AAAAAAAAAAAAAAAAAAAADAAAAMjw5S6ZSTWj6IB4p2wEMD8UAKTC3AAECgQAAAEAAAAAQAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAAAACwAAACAAAAA/AAAAZQkJCZFCQkLAiIiI5sHBwfvf39//4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/8XFxf9nZ2f/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv/CwsL/4uLi + /+Li4v+mpqb/P0hQ9AAAAHMAAAANAAAAAAAAAAAAAAAAAAAAGxsaIoBqZIX6UUxm/1FMZv8mTGD/AFZm + /wA/SvIACgy0AAAAXwAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAGQAAAFMSEhKUVFRUyZOTk+zHx8f94uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v+IiIj/ZmZm/2ZmZv9mZmb/ZmZm + /2ZmZv93d3f/4eHh/+Pj4//j4+P/jY2N/z9IUPQAAABzAAAADQAAAAAAAAAAAAAACgEBAlNlYIDiU05o + /1FMZv9QTGb/EFRm/wBWZv8AVmb/AFBf/AAcItUAAACCAAAANwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC8vL1Gvr6/d0dHR/eHh4f/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/S0tL/aGho + /2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/s7Oz/+Pj4//j4+P/4+Pj/4eHh/8/SFD0AAAAcgAAAA0AAAAAAAAA + AgAAAC5GQlixYVx7/1FMZv9RTGb/NlBm/wBWZv8AVmb/AFZm/wBWZv8AVWX+ADZB7QAJC6cAAABUAAAA + GgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBtbW2I4eHh + /+Hh4f/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/l5eX/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/d3d3/+Hh4f/j4+P/4+Pj/+Pj4/+Hh4f/QEhR + 8QAAAGoAAAAMAAAAAAAAABIZFx9xa2WH9VFMZv9RTGb/SVBp/wdZa/8AVmb/AFZm/wBWZv8AVmb/AFZm + /wBWZv8AR1X6ABccygAAAHcAAAAwAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAUh4eHneLi4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/29vb/2pqav9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/7Gxsf/j4+P/4+Pj + /+Pj4//j4+P/h4eH/zxAROkAAABeAAAACAAAAAIAAAAxZmF/xZ2Vwf9qZIP/UExm/xhWav8AVmb/AFZm + /wBWZv8AVmb/AFZm/wBWZv8AVmb/AFZm/wBVZP4AMTrnAAQFkAAAADMAAAAEAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4ODg6Li4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4+Pj/6enp/9mZmb/ZmZm/2ZmZv9mZmb/ZmZm + /25ubv/a2tr/4+Pj/+Pj4//j4+P/5OTk/4eHh/80NzrhAAAAUwAAAAUAAAAFOTZITdrS6vnZz/v/vbTm + /0mAoP8AboP/AFxu/wBWZv8AVmb/AFZm/wBWZv8AVmb/AFZm/wBWZv8AVmb/AFZm/wA8R+wAAACCAAAA + JQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6RkZGy4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/j4+P/4+Pj/+Hh4f96enr/ZmZm + /2ZmZv9mZmb/ZmZm/2ZmZv+kpKT/4+Pj/+Tk5P/k5OT/5OTk/+Tk5P+Hh4f/KDE73wAAAFEAAAAFAAAA + AQMDAxyLi4uN2dbg8bTU8P8gudX/B5Ww/wF7kv8AZnn/AFhp/wBWZv8AVmb/AFZm/wBWZv8AVmb/AFZm + /wBWZv8GUWD+Ehcb3wAAAH4AAAAwAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlsbGx + yeLi4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4+Pj/+Pj4//j4+P/4+Pj + /+Pj4/+3t7f/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9ubm7/29vb/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/h4eH + /ygxO98AAABRAAAABQAAAAAAAAACAAAALRB3g8Ek8PX/OPj+/yvY7v8Pqcb/A4qj/wByh/8AX3H/AFZm + /wBWZv8AVmb/AFZm/wBWZv8AVmb/Ik1b/zdHU/4gKTDoAQEBmwAAAEkAAAAUAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAK62trc3i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4+Pj + /+Pj4//j4+P/4+Pj/+Pj4//j4+P/e3t7/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/t7e3/+Tk5P/k5OT/5OTk + /+Tk5P/k5OT/5eXl/4eHh/8oMTvfAAAAUQAAAAUAAAAAAAAAAAAAABABq62JBfLz8A/7//8k+f//Mu77 + /xzD3v8Im7b/AYCX/wBqff8AWmv/AFZm/wBWZv8AVmb/BFRk/zZIVP84SFT/OEhU/ys4QfYMDxK9AAAA + ZgAAACMAAAAFAAAAAAAAAAAAAAAAAAAAAQAAADW4uLja4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/0NDQ/2dnZ/9mZmb/ZmZm/2ZmZv9mZmb/kJCQ + /+Pj4//k5OT/5eXl/+Xl5f/l5eX/5eXl/+Xl5f+Hh4f/KDE73wAAAFEAAAAFAAAAAAAAAAAAAAACAAAA + GABDQ1UCvr67B/v8/BL4//8n9P7/J9zy/xCwzf8Ej6n/AHeN/wBidP8AV2f/AFVl/x9OW/84SFT/OEhU + /zhIVP84SFT/NEJO/RYdItkAAACFAAAAOAAAAAwAAAAAAAAAAAAAAAIAAAA+0tLS7uLi4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/5OTk/6+vr/9mZmb/ZmZm + /2ZmZv9mZmb/bm5u/9TU1P/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/h4eH/ygxO98AAABRAAAA + BQAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJgBubnED3NzZCPv//xb0//8m6vz/G8jk/wigvf8BhJ3/AG6C + /xFVZP84SFT/OEhU/zhIVP84SFT/OEhU/zhIVP83R1L+JC427gYICagAAABSAAAAGAAAAAIAAAADAAAA + RtDQ0O/i4uL/4uLi/+Li4v/i4uL/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//k5OT/5OTk + /+Tk5P+Li4v/ZmZm/2ZmZv9mZmb/ZmZm/6+vr//l5eX/5eXl/+Xl5f/l5eX/5ubm/+bm5v/m5ub/5ubm + /4eHh/8oMTvfAAAAUQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAOAAUFNAGJiYwD7/DtCvj/ + /xju/v8g2/b/ELbU/w+Npv9HZHX/QFJg/zhIVP84SFT/OEhU/zhIVP84SFT/OEhU/zhIVP8uPEb5DhIV + xwAAAHAAAAAqAAAADRsbG1XW1tb14uLi/+Li4v/i4uL/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj + /+Tk5P/k5OT/5OTk/+Tk5P/i4uL/bm5u/2ZmZv9mZmb/ZmZm/4CAgP/j4+P/5eXl/+bm5v/m5ub/5ubm + /+bm5v/m5ub/5ubm/+bm5v+FhYX/KDE73wAAAFEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAMAAAAVACcnSAG2trAE9/n4DPP//zPk/f91utX/cpGo/1x1if9IXW3/O0xY/zhIVP84SFT/OEhU + /zhIVP84SFT/OEhU/zVET/4dJSvhAQECkQAAAEk4ODh24uLi/+Li4v/j4+P/4+Pj/+Pj4//j4+P/4+Pj + /+Pj4//j4+P/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/l5eX/w8PD/2ZmZv9mZmb/ZmZm/2hoaP/Gxsb/5ubm + /+bm5v/m5ub/5ubm/+bm5v/n5+f/5+fn/+fn5//n5+f/aGho/ygxO98AAABRAAAABQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAgAENDWAKur6dkiJnMqNLs/KDH4/9/obv/ZoOZ + /1Jpe/9AU2H/OEhU/zhIVP84SFT/OEhU/zhIVP84SFT/OEhU/yg0PfMFBwi7IyMjwOLi4v/j4+P/4+Pj + /+Pj4//j4+P/4+Pj/+Pj4//k5OT/5OTk/+Tk5P/k5OT/5OTk/+Xl5f/l5eX/5eXl/6Ojo/9mZmb/ZmZm + /2ZmZv+dnZ3/5ubm/+bm5v/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//o6Oj/6Ojo/2hoaP8oMTvfAAAA + UQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAVAAAA + LzA+RnmNtMvkqNLv/46zz/9ykqn/XHaK/0ldbf87TFj/OEhU/zhIVP84SFT/OEhU/zhIVP84SFT/MT9K + /Tk9Qf3j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//k5OT/5OTk/+Tk5P/k5OT/5eXl/+Xl5f/l5eX/5eXl + /+Xl5f97e3v/ZmZm/2ZmZv9ycnL/3d3d/+fn5//n5+f/5+fn/+fn5//o6Oj/6Ojo/+jo6P/o6Oj/6Ojo + /+jo6P9oaGj/KDE73wAAAFEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAEAAAARCQsNQlZufqehy+j4ncXj/3+ivP9nhJr/Ump8/0BTYf84SFT/OEhU + /zhIVP84SFT/OEhU/zhIVP86Slb/iZKY/+Dg4P/j4+P/4+Pj/+Tk5P/k5OT/5OTk/+Tk5P/l5eX/5eXl + /+Xl5f/l5eX/5ubm/+bm5v/Y2Nj/aWlp/2ZmZv9mZmb/vr6+/+fn5//o6Oj/6Ojo/+jo6P/o6Oj/6Ojo + /+np6f/p6en/6enp/+np6f/p6en/aGho/ygyO90AAABOAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAfIiwyZ3aXrdCkz+7/jrPP + /3OTq/9deIv/SV5u/ztMWf84SFT/OEhU/zhIVP84SFT/OEhU/zhIVP9hbXb/x8rM/+Tk5P/k5OT/5OTk + /+Tk5P/l5eX/5eXl/+Xl5f/m5ub/5ubm/+bm5v/m5ub/vLy8/2ZmZv9mZmb/ioqK/+fn5//o6Oj/6Ojo + /+np6f/p6en/6enp/+np6f/p6en/6urq/+rq6v/q6ur/6urq/2hoaP8pMTrVAAAARAAAAAMAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAwCAwQzSV5rlI+20e6bxOL/gKO9/2iGnP9Ta33/QVNh/zhIVf84SFT/OEhU/zhIVP84SFT/OEhU + /0ZUX/+nrbH/5OTk/+Xl5f/l5eX/5eXl/+Xl5f/m5ub/5ubm/+bm5v/n5+f/5+fn/5SUlP9mZmb/aGho + /9TU1P/p6en/6enp/+np6f/q6ur/6urq/+rq6v/q6ur/6urq/+vr6//r6+v/6+vr/+vr6/9oaGj/Gh4i + xgAAADkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABgPExZPbYyfuZrE4vyOtNH/dJSt/155jf9JX2//O0xZ + /zhIVP84SFT/OEhU/zhIVP84SFT/OkpW/3qEi//Y2tr/5eXl/+bm5v/m5ub/5ubm/+fn5//n5+f/6Ojo + /+Xl5f9zc3P/ZmZm/6qqqv/p6en/6urq/+rq6v/q6ur/6+vr/+vr6//r6+v/6+vr/+vr6//s7Oz/7Ozs + /+zs7P/s7Oz/aGho/w0YI8EAAAA0AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACYyQEl2iK7H + 35jB4P+BpL//aYee/1Rsfv9BVGL/OEhV/zhIVP84SFT/OEhU/zhIVP84SFT/VmNt/9XW1//m5ub/5+fn + /+fn5//o6Oj/6Ojo/+jo6P/Ozs7/ZmZm/3l5ef/m5ub/6urq/+vr6//r6+v/6+vr/+zs7P/s7Oz/7Ozs + /+zs7P/t7e3/7e3t/+3t7f/t7e3/7e3t/2hoaP8NGCPBAAAANAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAAAAEAIDAzxXcIClmMLf94610/91lq//X3qP/0pgcP87TFn/OEhU/zhIVP84SFT/OEhU + /zhIVP9/jp3/5+fn/+jo6P/o6Oj/6Ojo/+np6f/p6en/lZWV/2ZmZv+4uLj/6+vr/+vr6//s7Oz/7Ozs + /+zs7P/t7e3/7e3t/+3t7f/u7u7/7u7u/+7u7v/u7u7/7+/v/+/v7/9oaGj/DRgjwQAAADQAAAABAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHRsjKF10lavPmcPi/4Kmwv9riaD/VW6A + /0FUY/84SFX/OEhU/zhIVP84SFT/Mkle/7C5w//o6Oj/6enp/+np6f/q6ur/5+fn/3Nzc/+Hh4f/6+vr + /+zs7P/t7e3/7e3t/+3t7f/u7u7/7u7u/+7u7v/v7+//7+/v/+/v7//v7+//8PDw//Dw8P/w8PD/aGho + /w0YI8EAAAA0AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAwQF + MUZaZouIr8rvj7jW/3eZsv9gfJH/S2Fx/ztMWf84SFT/M0dX/yZFZP80UnD/1tnc/+rq6v/q6ur/6+vr + /9DQ0P9paWn/y8vL/+3t7f/t7e3/7u7u/+7u7v/v7+//7+/v/+/v7//w8PD/8PDw//Dw8P/x8fH/8fHx + //Hx8f/x8fH/8fHx/2hoaP8NGCPBAAAANAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAIAAAAbERQWf6vBz/qWv9z/hKnF/2yLo/9Wb4L/QlVj/zFHW/8kRWb/JEVm + /1Rthv/o6en/7Ozs/+zs7P+vr6//l5eX/+7u7v/u7u7/7+/v/+/v7//w8PD/8PDw//Hx8f/x8fH/8fHx + //Ly8v/y8vL/8vLy//Ly8v/z8/P/8/Pz/+bm5v9nZ2f/DRgjwQAAADQAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEBAQGfm5ub/zdPY/6fI3v+PuNb/eJq1 + /0ZvlP8sUXX/JEVn/yRFZv8kRWb/bn2M/+rq6v/t7e3/l5eX/+Tk5P/v7+//8PDw//Dw8P/x8fH/8fHx + //Ly8v/y8vL/8/Pz//Pz8//z8/P/9PT0//T09P/09PT/9PT0//T09P/T09P/ZmZm/w0YI8EAAAA0AAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk9PT1s5+fn + /+jo6P/h4uT/prrM/6DA2/9xpNX/XZLG/0Jyov8rU3v/JEZn/xs0Tf+doaX/6+vr/8HBwf/w8PD/8fHx + //Hx8f/y8vL/8/Pz//Pz8//09PT/9PT0//T09P/19fX/9fX1//X19f/29vb/9vb2//b29v/29vb/1NTU + /2ZmZv8NGCPBAAAANAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAOSEhIe+jo6P/p6en/6enp/+rq6v/r6+v/6+vr/+zs7P/k6e7/3uXs/7jH1/9ueYX/Pj4+ + /8bGxv/t7e3/8vLy//Pz8//z8/P/9PT0//T09P/19fX/9fX1//b29v/29vb/9/f3//f39//39/f/+Pj4 + //j4+P/4+Pj/+Pj4/9bW1v9mZmb/DRgjwQAAADQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4yMjJnp6en/6urq/+rq6v/r6+v/7Ozs/+3t7f/t7e3/7u7u + /+/v7//w8PD/8fHx//Hx8f/y8vL/8/Pz//T09P/09PT/9fX1//b29v/29vb/9/f3//f39//4+Pj/+Pj4 + //n5+f/5+fn/+fn5//r6+v/6+vr/+vr6//r6+v/Y2Nj/ZmZm/w0YI8EAAAA0AAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWIiIie6urq/+vr6//r6+v/7Ozs + /+3t7f/u7u7/7+/v//Dw8P/x8fH/8fHx//Ly8v/z8/P/9PT0//X19f/29vb/9vb2//f39//4+Pj/+Pj4 + //n5+f/5+fn/+vr6//r6+v/7+/v/+/v7//v7+//8/Pz//Pz8//z8/P/8/Pz/2dnZ/2ZmZv8NGCO+AAAA + MwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagoKC + pevr6//s7Oz/7e3t/+7u7v/v7+//8PDw//Dw8P/x8fH/8vLy//Pz8//09PT/9fX1//b29v/39/f/+Pj4 + //j4+P/5+fn/+vr6//v7+//7+/v//Pz8//z8/P/9/f3//f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+ + /9vb2/9mZmb/DhkltgAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAIrW1tcPs7Oz/7e3t/+7u7v/v7+//8PDw//Hx8f/y8vL/8/Pz//T09P/19fX/9vb2 + //f39//4+Pj/+fn5//r6+v/7+/v/+/v7//z8/P/9/f3//v7+//7+/v/+/v7//v7+//////////////// + ///////////////////////b29v/Y2Rm/wIDBaMAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi2trbK7u7u/+/v7//w8PD/8fHx//Ly8v/z8/P/9PT0 + //X19f/29vb/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v/+/v7//v7+//////////////// + ////////////////////////////////////////////29vb/1ZeZv8AAQGaAAAAHgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAws7Ozz+/v7//w8PD/8fHx + //Ly8v/09PT/9fX1//b29v/39/f/+Pj4//r6+v/7+/v//Pz8//39/f/+/v7//v7+//7+/v////////// + /////////////////////////////////////////////////////////////////9vb2/9WXmb/AAEB + mQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA + Qdra2uvx8fH/8vLy//Pz8//09PT/9vb2//f39//4+Pj/+fn5//v7+//8/Pz//f39//7+/v/+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///////b29v/Vl5m/wABAZkAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAACAkJA1psbFP3kpKC/8HBuv/q6un/9vb2//j4+P/5+fn/+vr6//z8/P/9/f3//v7+ + //7+/v////////////////////////////////////////////////////////////////////////// + ////////////////////////////29vb/1ZeZv8AAQGZAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApCQh11cnIx/1xcJf9LSx3/SEgj/2hoT/+YmIr/ycnE + //Ly8v/+/v7//v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////8HBwf9WXmb/AAEBmQAAAB0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPj4fR7q6XfKwsFj/mppK + /4ODPP9sbC7/V1ci/0hIHf9ISCX/ampT/5qajf/MzMb/9PT0//////////////////////////////// + //////////////////////////////////////////////////////////////////////+1tbX/Vl5m + /wABAZkAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAABAeHg5HbW00mpqaTs23t1z1vr5i/6ysV/+VlUn/fn46/2ZmK/9SUiD/RkYb/0dHJP9qalP/mpqN + /8zMxv/09PT///////////////////////////////////////////////////////////////////// + ////////////tbW1/1ZeZv8AAQGZAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABMAAAApDg4GSlhYKoWRkUi9sbFa7sfHaP+6umL/qKhX + /5GRR/94eDf/X18n/05OH/9DQxv/RUUk/2lpU/+amo3/zMzG//X19f////////////////////////// + /////////////////////////////////7W1tf9WXmb/AAEBmQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAOAAAA + IAcHAj4+Phttfn4+q6urV9/Hx2f8xcVp/7i4Y/+kpFb/i4tF/3BwMv9aWiT/S0sd/0FBGv9ERCP/aWlS + /5qajf/MzMb/9fX1//////////////////////////////////////+1tbX/Vl5m/wABAZkAAAAdAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAABkAAAAyGxsMWmxsM52hoVDVvr5i9svLbf/Dw2v/tbVk + /5+fVP+EhEH/aWkt/1VVIv9JSRz/QEAZ/0NDIv9paVL/mpqN/8zMxv/19fX/////////////////tbW1 + /1ZeZv8AAQGZAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAUAAAA + KwwMBUxVVSeMj49GwrS0W+/NzWz/yclu/8LCbf+xsWL/mJhQ/3x8O/9iYin/UlIg/0ZGG/8+Phn/QkIi + /2xsV/+dnZL/2NjU/7S0tP9MU1T/AAEBnAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAADwAAACIGBgJAPj4adnt7PK2np1Tkycln/8zMbv/IyHD/v79t + /6qqXv+QkEr/cnI0/1xcJv9PTx//REQa/z4+Gf9FRSr/Njgb/wABAKUAAAAlAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAsAAAAbAQEA + NRYWCV1qajGenp5M1by8X/fMzGz/yspv/8fHcv+6umr/oqJZ/4aGQ/9paS3/ODgW/zg4Fv8UFAitAAAA + JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAFAAAACsJCQNLUVEkjoqKQcqxsVfwyspo/8rKbP/IyHD/xMRx + /zo6F/84OBb/AQEAjwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAkBAQB + Qjs7GHmAgDu2oaFN5sbGYv9RUSr/Ly8S5QAAAFsAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAMAAAAMAAAAHAEBADcoKBBnMzMUlhMTB2YAAAAgAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACAAAABAAAAANAAAA + AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//// + /////////////////////////////////////8H////////+AP////////AA////////gAD///////wA + AP//////wAAA//////4AAAD4P///8AAAAPAP//+AAAAA4AP//AAAAADgAf/4AAAAAMAA//gAAAAAgAA/ + +AAAAACAAB/4AAAAAAAAD/gAAAAAAAAH+AAAAAAAAAP4AAAAAIAAAPgAAAAAwAAAcAAAAADAAAAwAAAA + APAAAAAAAAAA+AAAAAAAAAD+AAAAAAAAAP+AAAAAAAAA/+AAAAAAAAD/+AAAAAAAAP/+AAAAAAAA//+A + AAAAAAD//8AAAAAAAP//8AAAAAAA///4AAAAAAD///4AAAAAAP///4AAAAAA////wAAAAAD////gAAAA + AP///+AAAAAA////4AAAAAD////gAAAAAP///+AAAAAA////4AAAAAH////gAAAAAf///+AAAAAB//// + wAAAAAH////AAAAAAf///8AAAAAB////wAAAAAH////AAAAAAf///+AAAAAB////8AAAAAH////+AAAA + Af/////AAAAB//////gAAAH//////4AAAf//////8AAB///////+AAH////////gAf////////wB//// + /////4P///////////////////////////////8oAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFAAAACsAAABCAAAAOgAAABgAAAACAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAAGAAAADEAAABTBAQEfCQkJK9HR0fSNj5H + wwAAAEcAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAALAAAAHAAAADcAAABaBgYGhSoqKrhFRUXfXV1d + +GZmZv+UlJT/SE9W8gAAAGoAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAOAAAAIQAAAD4AAABiDg4Oj01NTcGRkZHmaWlp + +2ZmZv9mZmb/ZmZm/2xsbP/MzMz/SU9V9QAAAHEAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAARAAAAJQAAAEQAAABqEhISmV1dXcqenp7sz8/P + /eLi4v+/v7//ZmZm/2ZmZv9mZmb/ZmZm/56env/V1dX/SU9V9QAAAHEAAAAOAAAAAAAAAAAAAAAAAAAA + BQAAACAAAAAzAAAALQAAAB0AAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAUAAAAKwAAAEsAAABzJSUlo2xsbNKpqanx2NjY + /uLi4v/i4uL/4uLi/+Hh4f+IiIj/ZmZm/2ZmZv9mZmb/aWlp/9HR0f/V1dX/SU9V9QAAAHEAAAAOAAAA + AAAAAAAAAAABAAAAJSknNIE5NkjHBAQGrgAYHJQAAABfAAAAKQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAASAAAALwAAAFMAAAB7NDQ0rn9/f9mzs7P13d3d + /+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/87Ozv9mZmb/ZmZm/2ZmZv9mZmb/lpaW/+Li4v/V1dX/SU9V + 9QAAAHEAAAAOAAAAAAAAAAAAAAATDAsPaV9aeO5RTGb/Oklf/gBVZf4AMzzeAAUGkQAAAEIAAAARAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkKCgpdQ0NDsIyMjOC/v7/54ODg + /uLi4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/5SUlP9mZmb/ZmZm/2ZmZv9mZmb/ysrK + /+Pj4//ExMT/SU9V9QAAAHEAAAAOAAAAAAAAAAUAAABBUU1mylRPav9RTGb/H1Jm/wBWZv8AVmb/AEZT + 9QATFrYAAABhAAAAIgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAD7ExMTk4eHh + /+Hh4f/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/1tbW/2xsbP9mZmb/ZmZm + /2ZmZv+Li4v/4+Pj/+Pj4/+/v7//SU9W9AAAAGwAAAANAAAAAAAAAB0pJzSOYVt6/FFMZv89Umv/AVZm + /wBWZv8AVmb/AFZm/wBTY/0AKTDYAAEBhAAAADYAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BwICAlXh4eH/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/pKSk + /2ZmZv9mZmb/ZmZm/2ZmZv/IyMj/4+Pj/+Pj4/+/v7//SExP7wAAAGMAAAAKAAAABAAAADaOh6zakYqz + /1VWcv8LWWv/AFZm/wBWZv8AVmb/AFZm/wBWZv8AVmb/AENP7wARFZkAAAA3AAAABgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAACQICAmHi4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/g4OD/cXFx/2ZmZv9mZmb/ZmZm/4CAgP/i4uL/4+Pj/+Pj4//AwMD/P0JG6AAAAFsAAAAHAAAA + AyYkMDfTzdne4Nf7/kOjxf8CfJP/AGFz/wBWZv8AVmb/AFZm/wBWZv8AVmb/AFZm/wI7RvAAAQGTAAAA + NwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAADEVFRXfi4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4+Pj/+Pj4/+1tbX/ZmZm/2ZmZv9mZmb/ZmZm/76+vv/k5OT/5OTk/+Tk5P/AwMD/OUBG + 5gAAAFgAAAAHAAAAAAAAABAAAwNiN8jR9jPz+/8fxd3/BpGr/wBwhP8AW2v/AFZm/wBWZv8AVmb/AFZm + /yVMWf8pNT7wBQcIowAAAE8AAAAXAAAAAgAAAAAAAAAAAAAAEFBQUIXi4uL/4uLi/+Li4v/i4uL/4uLi + /+Li4v/i4uL/4uLi/+Pj4//j4+P/4+Pj/+Pj4/96enr/ZmZm/2ZmZv9mZmb/i4uL/+Tk5P/k5OT/5OTk + /+Tk5P/AwMD/OUBG5gAAAFgAAAAHAAAAAAAAAAIAGxwnArS0pwr2+Pgg+f7/KeLz/xCsyP8Cgpr/AGV4 + /wBXZ/8AVmb/BlRj/zdIVP84SFT/MkBL+hIYHMUAAABsAAAAJwAAAAYAAAAAAAAAFW5ubpfi4uL/4uLi + /+Li4v/i4uL/4uLi/+Li4v/j4+P/4+Pj/+Pj4//j4+P/4+Pj/87Ozv9mZmb/ZmZm/2ZmZv9sbGz/2dnZ + /+Tk5P/l5eX/5eXl/+Xl5f/AwMD/OUBG5gAAAFgAAAAHAAAAAAAAAAAAAAAFAAAAJAA0NGUDxsfMDPn+ + /iHw/f8cyuT/B5i0/wB1i/8AXW7/KUtY/zhIVP84SFT/OEhU/zdHU/4fKC/gAgMEjQAAAD0AAAAOAAAA + HH9/f6bi4uL/4uLi/+Li4v/i4uL/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/5OTk/6ysrP9mZmb/ZmZm + /2ZmZv+ysrL/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/BwcH/OUBG5gAAAFgAAAAHAAAAAAAAAAAAAAAAAAAA + AQAAAA4AAAA0AG1thQTe3+MQ9P7+HN/3/w+z0P8seY//Q1dl/zhJVf84SFT/OEhU/zhIVP84SFT/LTpD + 8wgLDa4AAABYAAAAPYqKirfi4uL/4uLi/+Li4v/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Tk5P/k5OT/5OTk + /4qKiv9mZmb/ZmZm/4GBgf/k5OT/5eXl/+bm5v/m5ub/5ubm/+bm5v+9vb3/OUBG5gAAAFgAAAAHAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFgAAAEMBm5uiBefr7FnV7fuRudP/bIqg/09md/88Tlr/OEhU + /zhIVP84SFT/OEhU/zRDT/wXHiPQAAAAno6Ojt/i4uL/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//k5OT/5OTk + /+Tk5P/k5OT/4ODg/2tra/9mZmb/Z2dn/8zMzP/m5ub/5ubm/+bm5v/n5+f/5+fn/+fn5/+rq6v/OUBG + 5gAAAFgAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAdAA0NQhkgJXp/obbWosvn + /n2fuP9deIv/RFdm/zhJVf84SFT/OEhU/zhIVP83R1P+ISsy+YiJif3j4+P/4+Pj/+Pj4//j4+P/5OTk + /+Tk5P/k5OT/5OTk/+Xl5f/l5eX/wMDA/2ZmZv9mZmb/np6e/+fn5//n5+f/5+fn/+fn5//o6Oj/6Ojo + /+jo6P+rq6v/OUBG5gAAAFgAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AwAAABEAAAA7QlRgmJW81/GRt9P/bYui/1Bnef88Tlv/OEhU/zhIVP84SFT/OEhU/1Nha//FyMr/4+Pj + /+Pj4//k5OT/5OTk/+Tk5P/l5eX/5eXl/+Xl5f/m5ub/oaGh/2ZmZv93d3f/4eHh/+jo6P/o6Oj/6Ojo + /+jo6P/p6en/6enp/+np6f+srKz/OkBH5AAAAFMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHg0RFFpsip7CmMHe/n6guv9eeY3/RFhn/zhJVf84SFT/OEhU + /zhIVP8+Tln/mZ+l/+Tk5P/k5OT/5eXl/+Xl5f/l5eX/5ubm/+bm5v/n5+f/e3t7/2ZmZv++vr7/6Ojo + /+np6f/p6en/6enp/+rq6v/q6ur/6urq/+rq6v+srKz/Nzs+3AAAAEsAAAAEAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAvMD1Gf4Wqw+KQt9T/bo2l + /1Foev88Tlv/OEhU/zhIVP84SFT/OEhU/3B6g//V1tf/5eXl/+bm5v/m5ub/5+fn/+fn5//Z2dn/Z2dn + /42Njf/o6Oj/6urq/+rq6v/q6ur/6+vr/+vr6//r6+v/7Ozs/+zs7P+tra3/Jy821AAAAEMAAAADAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA + FQQGB0dac4OrkbjV+H+ivf9ge5D/RVlo/zhJVf84SFT/OEhU/zhIVP9LWWT/2drc/+fn5//n5+f/6Ojo + /+jo6P+wsLD/aGho/9nZ2f/r6+v/6+vr/+vr6//s7Oz/7Ozs/+3t7f/t7e3/7e3t/+3t7f+urq7/KC82 + 0gAAAEIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAYAAAAkGyMnaXeYr9KOttP+cJCo/1JqfP89Tlv/OEhU/zhIVP84SFT/coOT + /+jo6P/o6Oj/6enp/+rq6v+Dg4P/oaGh/+zs7P/s7Oz/7e3t/+3t7f/u7u7/7u7u/+7u7v/v7+//7+/v + /+/v7/+vr6//KC820gAAAEIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADwAAADlFWWWXharF84Glwf9hfZL/Rlpp + /zhJVf80R1f/J0Zl/6Ouuv/q6ur/6+vr/+Dg4P9ycnL/4+Pj/+3t7f/u7u7/7u7u/+/v7//v7+//8PDw + //Dw8P/x8fH/8fHx//Hx8f+wsLD/KC820gAAAEIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAApQURF + prnP3f+OttL/cpOs/1Jrfv8xSmL/JEVm/ypKav/L0NX/7Ozs/8HBwf+4uLj/7u7u/+/v7//w8PD/8PDw + //Hx8f/y8vL/8vLy//Ly8v/z8/P/8/Pz//Pz8/+hoaH/KC820gAAAEIAAAADAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAUbW1tl+fn5//S2t//lLTO/22dyf88cqj/KlF4/yRFZv80S2L/3t/f/8DAwP/u7u7/8PDw + //Hx8f/y8vL/8/Pz//Pz8//09PT/9PT0//X19f/19fX/9fX1//b29v+YmJj/KC820gAAAEIAAAADAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAZd3d3oujo6P/p6en/6urq/+rq6//p6+z/1ODt/7/N3P9xfIb/i4uL + /+Pj4//y8vL/8/Pz//T09P/09PT/9fX1//b29v/29vb/9/f3//f39//4+Pj/+Pj4//j4+P+ZmZn/KC82 + 0gAAAEIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfmJiYterq6v/r6+v/7Ozs/+3t7f/u7u7/7+/v + //Dw8P/x8fH/8vLy//Pz8//09PT/9fX1//b29v/39/f/+Pj4//n5+f/5+fn/+vr6//r6+v/7+/v/+/v7 + //v7+/+ampr/KC830QAAAEEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAllJSUu+vr6//s7Oz/7e3t + /+/v7//w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/8/Pz//f39 + //39/f/+/v7//v7+//7+/v+bm5v/KTA4zQAAADsAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAstbW1 + z+3t7f/u7u7/7+/v//Hx8f/y8vL/9PT0//X19f/29vb/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+ + //7+/v/+/v7///////////////////////////+bm5v/HyImwAAAADQAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAEAAAA1tra21u/v7//w8PD/8vLy//Pz8//19fX/9vb2//j4+P/5+fn/+/v7//z8/P/9/f3//v7+ + //7+/v////////////////////////////////////////////////+bm5v/FBwkugAAAC8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAMAAABEzMzM5/Hx8f/z8/P/9PT0//b29v/4+Pj/+fn5//v7+//9/f3//v7+ + //7+/v////////////////////////////////////////////////////////////////+bm5v/FBwk + uQAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEBAFSZGRE+IyMeP+5ua7/5+fl//n5+f/7+/v//f39 + //7+/v/+/v7///////////////////////////////////////////////////////////////////// + //////+ampr/FBwkuQAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYhIQ9Lnp5M/4GBOv9kZCr/T08i + /2dnSP+QkH//wMC4/+/v7v////////////////////////////////////////////////////////// + //////////////////////9/f3//FBwkuQAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAbWFgr + c42NR8Cnp1TusbFa/peXSv96ejj/XV0n/01NIv9jY0b/kJB//8HBuf/v7+7//v7+//////////////// + //////////////////////////////////////9/f3//FBwkuQAAAC4AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAACAAAAEAAAACcAAABGPT0ceH19P7KoqFXhu7ti/K2tWv+RkUj/c3M1/1ZWI/9HRx//ZGRI + /5CQf//AwLj/8PDu//////////////////////////////////////9/f3//FBwkuQAAAC4AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADgAAACAAAAA7Hh4NZm9vN56amk/Vvb1j + +b+/Z/+np1n/iopF/2pqMP9QUCD/R0cg/2BgRv+Pj3//wcG5/+/v7//+/v7///////////9/f3//FBwk + uQAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA + CgAAABkAAAAyAwMBVVZWKY+NjUbGtLRe78nJbP+6umb/oaFW/4KCQP9iYir/TEwe/0NDHf9hYUf/kpKE + /8vLxP9zc2z/EhohvAAAADEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABQAAAAqBAQBSTY2GXp+fj23pqZV4sfHaf3Gxm7/s7Nj + /5iYUf93dzn/WVkl/0dHHP86Ohr/GBgKwQAAADQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA4AAAAhAAAA + PR8fDGhmZjGjmppM2Ly8YfjKym7/wcFt/5aWUf84OBb/GRkKtAAAAC0AAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAgAAAAoAAAAaAAAANA0NBVlWViaViYlCx6WlUfM4OBr0CwsEcgAAABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAUAAAAKwAAAEQQEAZQAAAA + IwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAQAAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////// + ////////4f////////8A////////+AD////////AAP///////gAA///x///wAAD//+A//wAAAP//wB/8 + AAAA///AB/wAAAD//4AD+AAAAP//gAH4AAAA//8AAPgAAAD//wAAeAAAAP//gAAYAAAA//+AAAgAAAD/ + /8AAAAAAAP//4AAAAAAA///4AAAAAAD///4AAAAAAP///4AAAAAA////4AAAAAD////4AAAAAP////wA + AAAA/////wAAAAD/////gAAAAP/////gAAAA//////AAAAD/////8AAAAP/////wAAAA//////AAAAD/ + ////8AAAAP/////gAAAB/////+AAAAH/////4AAAAf/////gAAAB/////+AAAAH/////8AAAAf/////+ + AAAB///////AAAD///////gAAP///////4AA////////8AH////////+Af/////////j//////////// + ////////////KAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAASAAAA + NAAAAFgAAAA1AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABgAAAA+AQEB + ehwcHLo6OjrnZGRk+hkgJ68AAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHQAAAEgEBASHPj4+ + xHJycu1bW1v+ZmZm/2dnZ/+rq6v/HSInzwAAABoAAAAAAAAAAAAAAAUAAAAeAAAAGwAAAAsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAkAAAAUwoKCpRNTU3Oi4uL + 88nJyf7i4uL/pKSk/2ZmZv9mZmb/jIyM/76+vv8dIifQAAAAGgAAAAAAAAACAQEBSTc0RsMKFhzLAAwP + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKbKysuTr6+v/7Ozs/+7u7v/w8PD/8vLy//Pz8//19fX/9vb2 + //j4+P/5+fn/+vr6//v7+//7+/v//Pz8/5iZm/8ECAyhAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0v7+/7e3t7f/v7+//8fHx//T09P/29vb/9/f3 + //n5+f/7+/v//Pz8//39/f/+/v7//v7+//7+/v/+/v7/lpeZ/wEDBZUAAAAGAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAETMzMz18fHx//Pz8//19fX/+Pj4 + //r6+v/8/Pz//v7+//7+/v////////////////////////////////+Pk5f/AAAAiwAAAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBgYCW5OTf/3Cwrn/7+/u + //r6+v/8/Pz//v7+/////////////////////////////////////////////////46Slv8AAACKAAAA + BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHw9DkpJG + 7ImJQf9qajT/eHhW/5yciv/Ly8P/9/f2////////////////////////////////////////////fYGF + /wAAAIoAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAkCAgA7NTUagXV1O7+Wlk3roaFQ/oCAPv9iYjD/dHRU/5ubiv/Ly8P/9vb2//////////////// + //////99gYX/AAAAigAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEwAAADQfHw5rZ2c0rZKSTOCvr1v7nZ1R/3h4O/9aWiv/cHBS + /5qaiv/Ly8T/9/f2/3yAhP8AAACMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAANAAAAKAkJBFhSUiiaiIhG + 0q6uXfWzs2D/k5NM/21tNP9VVSv/Q0Qq/wICAI8AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AQAAAAgAAAAdAgIARjY2GYV2djrEo6NV7b29Zv43Nxf7AQEAbwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA3ISEObiAgDncAAAAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAD/////////+f///8D///4A///wAMP/AACA/AAAgHwAAAA8AAAADAAAAAQAAIAAAADAAAAA8AAA + APgAAAD/AAAA/4AAAP/gAAD/8AAA//gAAP/4AAD/+AAA//gAAP/wAAD/+AAA//gAAP/+AAD//8AA///4 + AP///4H////z/////ygAAAAaAAAANAAAAAEAIAAAAAAA+AoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + //f39//6+vr//Pz8//7+/v/+/v7///////////////////////////9IS079AAAANwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZWU6y4mJZ/+qqpr/2trV//39/f////////// + /////////////////////////////////0BER/0AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABrazVDhoZDqo+PRuaJiUP+dXVC/4eHaf+srJ3/3NzX//39/f////////// + ////////////ODw//QAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAACAAAAE0FBH0eGhkWTmZlQ16CgUvyCgkH/bGw+/4ODZ/+rq53/3NzX//39/f84Oz/9AAAA + NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAALGxsMM3d3O3yZmVHDq6ta9J6eUv93dzz/ZGQ7/ycoGP4AAAA8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAUDAwEgXV0sZY+PSK+Wlk/pISEN2wAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AgAAABQBAQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//// + /////D///+A///8AP4P4AD+B8AA/AOAAPwBgAD8AAAA/gAAAP+AAAD/wAAA//AAAP/8AAD//wAA//+AA + P//gAD//4AA//8AAP//AAD//4AA///AAP///AD///+A////8f/////8oAAAAGAAAADAAAAABACAAAAAA + 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 + //4A////4P////3//w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.vb b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.vb new file mode 100644 index 0000000..d66d57e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/FrmToolTipEditor.vb @@ -0,0 +1,95 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class FrmToolTipEditor + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder + + Private Sub FrmToolTipEditor_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed + Globals.Set_ToolTips = False + Globals.ToolTipDaten.Tables.Clear() + End Sub + + Private Sub FrmToolTipEditor_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Globals.Set_ToolTips = False + Globals.ToolTipDaten.Tables.Clear() + End Sub + + Private Sub FrmToolTipEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Globals.Set_ToolTips = True + End Sub + + Private Sub evh_Set_ToolTip(ByVal formname As String, ByVal ctlname As String) Handles evh.Set_ToolTip + Me.txtFormularname.Text = formname + Me.txtControlname.Text = ctlname + Me.txtToolTip.Text = "" + Get_Data() + End Sub + + Private Function Get_Data() + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.sp_tooltips" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 1)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@formname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.txtFormularname.Text)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@controlname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.txtControlname.Text)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@Tooltip", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outToolTipNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outformname", SqlDbType.VarChar, 50, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outcontrolname", SqlDbType.VarChar, 50, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outtooltip", SqlDbType.VarChar, 1024, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + + If scmCmdToExecute.Parameters("@outtooltip").Value <> "" Then + Me.txtToolTip.Text = scmCmdToExecute.Parameters("@outtooltip").Value + Return True + Else + Return False + End If + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + Private Function Save_Data() + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.sp_tooltips" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, 2)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@formname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.txtFormularname.Text)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@controlname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.txtControlname.Text)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@Tooltip", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.txtToolTip.Text)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outToolTipNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outformname", SqlDbType.VarChar, 50, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outcontrolname", SqlDbType.VarChar, 50, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Parameters.Add(New SqlParameter("@outtooltip", SqlDbType.VarChar, 1024, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + Return True + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + + + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click + Me.Save_Data() + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/MySysadmin.vb b/SW/20211125/AssessmentMgmt/Sysadmin/MySysadmin.vb new file mode 100644 index 0000000..c64e3c7 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/MySysadmin.vb @@ -0,0 +1,491 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace Sysadmin + + Public Class DomainTable + +#Region "Deklarationen" + + Dim UpdateCommand As New SqlCommand + Dim InsertCommand As New SqlCommand + Dim selectcommand As New SqlCommand + Dim BaseData As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + Dim m_tablename As String + Property Tablename() As String + Get + Return m_tablename + End Get + Set(ByVal value As String) + m_tablename = value + End Set + End Property + + Dim m_selectproc As String + Property Select_Proc() As String + Get + Return "pr_" & Tablename & "_selectall" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_selectall" + End Set + End Property + Property Update_Proc() As String + Get + Return "pr_" & Tablename & "_Update" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_Update" + End Set + End Property + + Property Insert_Proc() As String + Get + Return "pr_" & Tablename & "_Insert" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_Update" + End Set + End Property + + Property Select_Proc_Bottomtable() As String + Get + Return "pr_" & Tablename & "_selectall_bottomtable" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_selectall_bottomtable" + End Set + End Property + Property Select_Proc_Bottomtable2() As String + Get + Return "pr_" & Tablename & "_selectall_bottomtable2" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_selectall_bottomtable2" + End Set + End Property + Property Update_Proc_Bottomtable() As String + Get + Return "pr_" & Tablename & "_Update_bottomtable" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_Update_bottomtable" + End Set + End Property + + Property Insert_Proc_Bottomtable() As String + Get + Return "pr_" & Tablename & "_Insert_bottomtable" + End Get + Set(ByVal value As String) + m_selectproc = "pr_" & Tablename & "_Update_bottomtable" + End Set + End Property + + Dim m_Tabledata As New DataSet + Property Tabledata() As DataSet + Get + Return m_Tabledata + End Get + Set(ByVal value As DataSet) + m_Tabledata = value + End Set + End Property + +#End Region + + ''' + ''' Tabellenname bernehmen und Daten ab DB laden + ''' + ''' + ''' + Sub New(ByVal tablename As String, Optional ByVal Fokus As Integer = 0, Optional ByVal Keyvalue As String = "") + Me.Tablename = tablename + If Keyvalue = "" Then + Load_Data() + Else + Load_Bootom_Table(tablename, Fokus, Keyvalue) + End If + End Sub + + Sub New(ByVal tablename As String, ByVal Fokus As Integer, ByVal Keyvalue As String, ByVal mitarbeiternr As Integer) + Me.Tablename = tablename + If Keyvalue = "" Then + Load_Data() + Else + Load_Data_MA_Fokus(tablename, Fokus, Keyvalue, mitarbeiternr) + End If + End Sub + + + Sub New(ByVal tablename As String, ByVal keyvalue As String, ByVal mitarbeiternr As Integer) + Me.Tablename = tablename + Load_Data_MA(tablename, keyvalue, mitarbeiternr) + End Sub + + Sub New(ByVal tablename As String, ByVal Focus As Integer, ByVal keyvalue As String, ByVal mitarbeiternr As Integer, ByVal Key2 As String) + Me.Tablename = tablename + Load_Data_2Key(tablename, keyvalue, mitarbeiternr, Key2) + End Sub + + + Public Sub Load_Data_MA(ByVal tablename As String, ByVal KeyValue As String, ByVal mitarbeiternr As Integer) + Tabledata.Tables.Clear() + Dim sqlcmd As New SqlCommand + sqlcmd.CommandText = Me.Select_Proc_Bottomtable + sqlcmd.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@Fokus", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@KeyValue", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.VarChar, 255) + sqlcmd.Parameters(0).Value = 0 + sqlcmd.Parameters(1).Value = 0 + sqlcmd.Parameters(2).Value = KeyValue + sqlcmd.Parameters(3).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Tabledata, "Domaintable") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + + Public Sub Load_Data_2Key(ByVal tablename As String, ByVal KeyValue As String, ByVal mitarbeiternr As Integer, ByVal KeyValue2 As String) + Tabledata.Tables.Clear() + Dim sqlcmd As New SqlCommand + sqlcmd.CommandText = Me.Select_Proc_Bottomtable2 + sqlcmd.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@Fokus", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@KeyValue", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@KeyValue2", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.VarChar, 255) + sqlcmd.Parameters(0).Value = 0 + sqlcmd.Parameters(1).Value = 0 + sqlcmd.Parameters(2).Value = KeyValue + sqlcmd.Parameters(3).Value = KeyValue2 + sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Tabledata, "Domaintable") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + + Public Sub Load_Data_MA_Fokus(ByVal tablename As String, ByVal Fokus As Integer, ByVal KeyValue As String, ByVal mitarbeiternr As Integer) + Tabledata.Tables.Clear() + Dim sqlcmd As New SqlCommand + sqlcmd.CommandText = Me.Select_Proc_Bottomtable + sqlcmd.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@Fokus", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@KeyValue", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.VarChar, 255) + sqlcmd.Parameters(0).Value = 0 + sqlcmd.Parameters(1).Value = Fokus + sqlcmd.Parameters(2).Value = KeyValue + sqlcmd.Parameters(3).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Tabledata, "Domaintable") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + + 'Sub New() + 'End Sub + ''' + ''' Daten ab Datenbank laden + ''' + ''' + Public Overridable Sub Load_Data() + Tabledata.Tables.Clear() + + selectcommand.CommandText = Me.Select_Proc + selectcommand.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + selectcommand.Parameters(0).Value = 0 + + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(Tabledata, "Domaintable") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Sub + ''' + ''' Basis-Datentabelle laden. Diese wird fr die dynamische Generierung der Insert- und Update-Statements bentigt + ''' + ''' + Private Sub Load_BaseData() + BaseData.Tables.Clear() + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = Me.Select_Proc + sqlcmd.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + sqlcmd.Parameters(0).Value = 0 + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(BaseData, "Basedata") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + + ''' + ''' Update-Statement dynamisch fr das UpdateCommand generieren + ''' + ''' + Private Sub Generate_Update_Statement() + Dim col As DataColumn + Dim col1 As DataColumn + Dim UseCol As Boolean = False + + UpdateCommand.CommandText = Me.Update_Proc + UpdateCommand.CommandType = System.Data.CommandType.StoredProcedure + UpdateCommand.Connection = connection + + UpdateCommand.Parameters.Clear() + For Each col In Me.Tabledata.Tables(0).Columns + UseCol = False + For Each col1 In Me.BaseData.Tables(0).Columns + If col.ColumnName = col1.ColumnName Then + UseCol = True + Exit For + End If + Next + If UseCol Then UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter(Get_Prefix(col) & col.ColumnName, Get_SqlDBType(col), Get_Data_Fieldlen(col), col.ColumnName)) + Next + UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@iErrorcode", SqlDbType.Int, 4)) + UpdateCommand.Parameters("@iErrorcode").Value = 0 + da.UpdateCommand = UpdateCommand + End Sub + ''' + ''' Insert-Statement dynamisch fr das InsertCommand generieren + ''' + ''' + Private Sub Generate_Insert_Statement() + Dim col As DataColumn + Dim col1 As DataColumn + Dim UseCol As Boolean = False + + InsertCommand.CommandText = Me.Insert_Proc + InsertCommand.CommandType = System.Data.CommandType.StoredProcedure + InsertCommand.Connection = connection + + InsertCommand.Parameters.Clear() + For Each col In Me.Tabledata.Tables(0).Columns + UseCol = False + For Each col1 In Me.BaseData.Tables(0).Columns + If col.ColumnName = col1.ColumnName Then + UseCol = True + Exit For + End If + Next + If UseCol Then InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter(Get_Prefix(col) & col.ColumnName, Get_SqlDBType(col), Get_Data_Fieldlen(col), col.ColumnName)) + Next + InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@iErrorcode", SqlDbType.Int, 4)) + InsertCommand.Parameters("@iErrorcode").Value = 0 + da.InsertCommand = InsertCommand + End Sub + ''' + ''' Prefixt fr den SP-bergabeparameter generieren + ''' + ''' Aktuelle Columnt + ''' Prefis fr SP-bergabeparameter + ''' + Private Function Get_Prefix(ByVal col As DataColumn) As String + If col.DataType.Name = "DateTime" Then Return "@da" + If col.DataType.Name = "Double" Then Return "@f" + Return "@" & col.DataType.Name.Substring(0, 1) + End Function + ''' + ''' SQL-DB-Type fr den SP-bergabeparameter festlegen + ''' + ''' Aktuelle Column + ''' SQLDBType + ''' + Private Function Get_SqlDBType(ByVal col As DataColumn) As SqlDbType + If col.DataType.Name = "Integer" Then Return SqlDbType.Int + If col.DataType.Name = "Int32" Then Return SqlDbType.Int + If col.DataType.Name = "String" Then Return SqlDbType.VarChar + If col.DataType.Name = "Boolean" Then Return SqlDbType.Bit + If col.DataType.Name = "DateTime" Then Return SqlDbType.DateTime + If col.DataType.Name = "Double" Then Return SqlDbType.Float + MsgBox(col.DataType.Name) + End Function + + ''' + ''' Feldlnge fr den SP-bergabeparemter festlegen + ''' + ''' Aktulle Column + ''' Feldlnge + ''' + Private Function Get_Data_Fieldlen(ByVal col As DataColumn) As Integer + Return col.MaxLength + End Function + + ''' + ''' Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + ''' + ''' + Public Sub Save_Data() + Load_BaseData() + Generate_Update_Statement() + Generate_Insert_Statement() + Try + da.Update(Me.Tabledata, Me.Tabledata.Tables(0).TableName) + + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + ''' + ''' Dispose von Tabledata + ''' + ''' + Public Sub dispose() + Me.Tabledata.Dispose() + End Sub + +#Region "Verknpfungseditor" + ''' + ''' Load der Verbindungstabelle + ''' + ''' + ''' + ''' + ''' + Public Sub Load_Bootom_Table(ByVal tablename As String, ByVal Fokus As Integer, ByVal KeyValue As String) + Tabledata.Tables.Clear() + Dim sqlcmd As New SqlCommand + sqlcmd.CommandText = Me.Select_Proc_Bottomtable + sqlcmd.Parameters.Add("@iErrorCode", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@Fokus", SqlDbType.Int, 4) + sqlcmd.Parameters.Add("@KeyValue", SqlDbType.VarChar, 255) + sqlcmd.Parameters(0).Value = 0 + sqlcmd.Parameters(1).Value = Fokus + sqlcmd.Parameters(2).Value = KeyValue + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(Tabledata, "Domaintable") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + ''' + ''' Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhngig vom Datentype mit Defaultwerten befllt. + ''' + ''' + ''' + ''' + ''' + ''' + Public Sub Insert_Bottom_Table(ByVal key1 As String, ByVal keyvalue1 As Integer, ByVal key2 As String, ByVal keyvalue2 As String) + Dim dbkey As New db.clsMyKey_Tabelle + dbkey.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + Dim newkey As Integer = dbkey.get_dbkey(Me.Tablename) + conn.CloseConnection(True) + dbkey.Dispose() + Dim dr As DataRow + dr = Me.Tabledata.Tables(0).NewRow + dr.Item(0) = newkey + Dim i As Integer + For i = 1 To Me.Tabledata.Tables(0).Columns.Count - 1 + Select Case UCase(Me.Tabledata.Tables(0).Columns(i).ColumnName) + Case "AKTIV" + dr.Item(i) = 1 + Case "ERSTELLT_AM" + dr.Item(i) = Now + Case "MUTIERT_AM" + dr.Item(i) = Now + Case "MUTIERER" + dr.Item(i) = Globals.clsmitarbeiter.iMitarbeiternr.Value + Case "MANDANTNR" + dr.Item(i) = Globals.clsmitarbeiter.iMandantnr.Value + Case "MANDANT" + dr.Item(i) = Globals.clsmitarbeiter.iMandantnr.Value + Case UCase(key1) + dr.Item(i) = keyvalue1 + Case UCase(key2) + dr.Item(i) = keyvalue2 + Case Else + Select Case Type.GetTypeCode(Me.Tabledata.Tables(0).Columns(i).DataType) + Case TypeCode.DateTime + dr.Item(i) = Now + Case TypeCode.Double + dr.Item(i) = 0 + Case TypeCode.String + dr.Item(i) = "" + Case TypeCode.Int32 + dr.Item(i) = 0 + Case TypeCode.Boolean + dr.Item(i) = True + Case TypeCode.Int16 + dr.Item(i) = 0 + Case TypeCode.Int32 + dr.Item(i) = 0 + Case TypeCode.Int64 + dr.Item(i) = 0 + End Select + End Select + Next + Me.Tabledata.Tables(0).Rows.Add(dr) + End Sub +#End Region + + + End Class + +End Namespace diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/MySysadminFunktion.vb b/SW/20211125/AssessmentMgmt/Sysadmin/MySysadminFunktion.vb new file mode 100644 index 0000000..96a9c3e --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/MySysadminFunktion.vb @@ -0,0 +1,113 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + + Public Class clsMySysadminfunkion + Inherits clsSysadminfunktion + +#Region "Select Hierarchy" + Public Function SelectHierarchy() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + 'scmCmdToExecute.CommandText = "dbo.[sp_sysadminfunktion_hierarchie]" + scmCmdToExecute.CommandText = "dbo.[sp_get_sysadmin_tree]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("sysadminfunktion") + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@imitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iroot", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@isprache", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandant", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMandantnr.Value)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(db.LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_sysadminfunktion_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSysadminfunktion::SelectAll::Error occured." + ex.Message, ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + +#End Region + +#Region "LoadTreeMenu" + Public Sub LoadTreeMenu(ByVal otv As TreeView) + Dim menueintraege As New clsMySysadminfunkion() + Dim menudata As DataTable + Dim i As Integer + Dim m_collDeletedNodes As Collection + Dim collNodeKeys As New Collection() + Dim tnNew As TreeNode + Dim tnParent As TreeNode + + m_collDeletedNodes = Nothing + m_collDeletedNodes = New Collection() + + menueintraege.cpMainConnectionProvider = conn + menudata = menueintraege.SelectHierarchy + + For i = 0 To menudata.Rows.Count - 1 + If menudata.Rows(i).Item("ParentID") = 0 Then + tnNew = otv.Nodes.Add(menudata.Rows(i).Item("bezeichnung")) + With tnNew + .Tag() = menudata.Rows(i).Item("sysadminfnktnr") + .ImageIndex() = menudata.Rows(i).Item("ImageIndex") + .SelectedImageIndex() = menudata.Rows(i).Item("ImageIndexOpen") + End With + Try + collNodeKeys.Add(tnNew, CType(menudata.Rows(i).Item("sysadminfnktnr"), String)) + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical) + End Try + Else + Try + tnParent = CType(collNodeKeys.Item(CType(menudata.Rows(i).Item("ParentID"), String)), TreeNode) + tnNew = tnParent.Nodes.Add(CType(menudata.Rows(i).Item("bezeichnung"), String)) + With tnNew + .Tag() = CType(menudata.Rows(i).Item("sysadminfnktnr"), String) + .ImageIndex() = menudata.Rows(i).Item("ImageIndex") + .SelectedImageIndex() = menudata.Rows(i).Item("ImageIndexOpen") + End With + collNodeKeys.Add(tnNew, CType(menudata.Rows(i).Item("sysadminfnktnr"), String)) + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical) + End Try + End If + Next + End Sub + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.designer.vb new file mode 100644 index 0000000..43527db --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.designer.vb @@ -0,0 +1,174 @@ + _ +Partial Class frmDomainEditor + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDomainEditor)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ContextMenuStripAuswertung = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ReportdateiDBToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ReportdateiFilesystemToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() + Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStripAuswertung.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.AllowMerge = False + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(556, 24) + Me.MenuStrip1.TabIndex = 0 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(120, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(556, 25) + Me.ToolStrip1.TabIndex = 1 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "ToolStripButton1" + Me.TSBtnSave.ToolTipText = "Daten speichern" + ' + 'C1Daten + ' + Me.C1Daten.AllowAddNew = True + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 49) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(556, 270) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 4 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ContextMenuStripAuswertung + ' + Me.ContextMenuStripAuswertung.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ReportdateiDBToolStripMenuItem, Me.ReportdateiFilesystemToolStripMenuItem}) + Me.ContextMenuStripAuswertung.Name = "ContextMenuStripAuswertung" + Me.ContextMenuStripAuswertung.Size = New System.Drawing.Size(210, 48) + ' + 'ReportdateiDBToolStripMenuItem + ' + Me.ReportdateiDBToolStripMenuItem.Name = "ReportdateiDBToolStripMenuItem" + Me.ReportdateiDBToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.ReportdateiDBToolStripMenuItem.Text = "Reportdatei -> DB" + ' + 'ReportdateiFilesystemToolStripMenuItem + ' + Me.ReportdateiFilesystemToolStripMenuItem.Name = "ReportdateiFilesystemToolStripMenuItem" + Me.ReportdateiFilesystemToolStripMenuItem.Size = New System.Drawing.Size(209, 22) + Me.ReportdateiFilesystemToolStripMenuItem.Text = "Reportdatei -> Filesystem" + ' + 'OpenFileDialog1 + ' + Me.OpenFileDialog1.FileName = "OpenFileDialog1" + ' + 'frmDomainEditor + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(556, 319) + Me.Controls.Add(Me.C1Daten) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MainMenuStrip = Me.MenuStrip1 + Me.Name = "frmDomainEditor" + Me.Text = "frmDomainEditor" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStripAuswertung.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnSave As System.Windows.Forms.ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ContextMenuStripAuswertung As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ReportdateiDBToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ReportdateiFilesystemToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog + Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.resx new file mode 100644 index 0000000..d98551a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.resx @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 125, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZOBDoAgCET9dD7NPyNPgpAIzY21oTzPg1rL + F4/0aaQEJqJXAIo8Vu9dL9gDYiGRgG6VCwBJLDvgbxRVsodvBPiEASDXF3mIB3AbBzPjBLDeHBVIcRbj + KScKuMGQElArmKZNSNJ7VYC2Ib48EIjE0gX1QPerLigkATytqxT4gQht3HsQx9H8+OpCeHL+R+FQnIPT + QiXaHPwtNMCu8ALckGXYKNsEDQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABeSURBVDhPYzhw4MB/SjADSDMDAwNZGKwXZkBDA8QQQq6B + qYHT5BgAczHZLkB2LVleGMQGwJyGL1pBanB6ASZJDI01GolxAUgjXhfgcj4sgQ1SA8jNUPCkTCgD4ZMH + ADk0Kh+zxKF0AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA3SURBVChTY2DABP+xiIGFkCVwsVEUwhThNREkiaEAJoiP + RnEmskKs7kd3C1YrYTrx+g6bIrAYAKCqHOQvFu6BAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style3{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style14{}Footer{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Wrap:True;AlignVert:Center;BackColor:Control;Border:Flat,ControlDark,0, 1, 0, 1;}Style5{}Editor{}Style10{AlignHorz:Near;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style6{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 554, 268</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 554, 268</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 228, 17 + + + 430, 17 + + + 566, 17 + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3d3d3d3d3d3d3d3d3d3AAAAAAAA + AAAAAAAAAAAABw///////////////////wcP//////////////////8HD/d3d3f/d3d3f/d3d3f/Bw// + /////////////////wcP93d3d/93d3d/93d3d/8HD///////////////////Bw/3d3d3/3d3d3/3d3d3 + /wcP//////////////////8HD/d3d3f/d3d3f/d3d3f/Bw///////////////////wcP93d3d/93d3d/ + 93d3d/8HD///////////////////Bw/3d3d3/3d3d3/3d3d3/wcP//////////////////8HD/d3d3f/ + d3d3f/d3d3f/Bw///////////////////wcP93d3d/93d3d/93d3d/8HD///////////////////Bw// + /////////////////wcAAAAAAAAAAAAAAAAAAAAHDMzMzMzMzMzMzMzMzMzMBwz/zMzM/8zMzM/8zMzP + /AcM/8zMzP/MzMzP/MzMz/wHDMzMzMzMzMzMzMzMzMzMBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////4AAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.vb new file mode 100644 index 0000000..5f5bcc4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditor.vb @@ -0,0 +1,236 @@ +''' +''' Form mit generalisiertem Domain-Table-Editor. +''' +''' +''' +''' +''' Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable +Public Class frmDomainEditor + +#Region "Deklarationen" + Dim Domaintable As Sysadmin.DomainTable + Dim tablename As String + Dim SpaltenTitel As New Utils.Tabellenspalte +#End Region + +#Region "Formular-Funktionen" + ''' + ''' Tabellenname bernehmen und Objekt DomainTable initialisieren + ''' Initialisierung der Komponenten + ''' + ''' Tabellenname der Tabelle, welche ber den Domaineditor editiert werden soll + ''' Bentigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + ''' pr_"Tablename"_SelectAll + ''' pr_"Tablename"_Update + ''' + Public Sub New(ByVal tblname As String) + Me.InitializeComponent() + Domaintable = New Sysadmin.DomainTable(tblname) + + Me.Text = "Domaineditor: " & tblname + Me.tablename = tblname + End Sub + ''' + ''' Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + ''' + ''' + ''' + ''' + Private Sub frmDomainEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + If Me.Domaintable.Tablename = "Auswertung" Then + Me.C1Daten.ContextMenuStrip = Me.ContextMenuStripAuswertung + End If + Me.C1Daten.DataSource = Domaintable.Tabledata + Me.C1Daten.DataMember = Domaintable.Tabledata.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Daten, Me.tablename, Me.Domaintable.Tabledata.Tables(0)) + End Sub + + + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + ''' + ''' Ruft BeendetnToolStipMenuItem_Click auf + ''' + ''' + ''' + ''' + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + BeendenToolStripMenuItem_Click(sender, e) + End Sub + ''' + ''' Prfung auf allfllige Daten-Changes. Wurden Daten verndert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + ''' das Formular nicht gespeichert werden soll. + ''' + ''' + ''' + ''' + Private Sub frmDomainEditor_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If Me.Domaintable.Tabledata.HasChanges Then + Dim msg As New Utils.MyMessage + Dim msgboxres As MsgBoxResult + msgboxres = msg.Show_MessageYesNoCancel(3) + If msgboxres = MsgBoxResult.Cancel Then + e.Cancel = True + Exit Sub + End If + If msgboxres = MsgBoxResult.Yes Then + Domaintable.Save_Data() + End If + End If + If UCase(Me.tablename) = "SPALTEN" Then + Globals.Spaltendaten.Rows.Clear() + End If + Domaintable.dispose() + + End Sub + + ''' + ''' Sichern der Daten + ''' + ''' + ''' + ''' + Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click + Try + Domaintable.Save_Data() + If UCase(Me.tablename) = "SPALTEN" Then + Globals.Spaltendaten.Rows.Clear() + End If + If UCase(Me.tablename) = "TOOLTIP" Then + Globals.ToolTipDaten.Tables.Clear() + End If + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub +#End Region + +#Region "C1 Handling" + ''' + ''' Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlsselwert gesetzt ist (bei neuem Datensatz) + ''' wird dieser aus der Keytabelle ausgelesen und zugewiesen. + ''' + ''' + ''' + ''' Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig + Private Sub C1Daten_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1Daten.AfterColUpdate + 'Aktualisieren von Mutierer und Mutiert_am + + Dim i As Integer + Try + For i = 0 To Me.C1Daten.Columns.Count - 1 + If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then Me.C1Daten.Columns(i).Value = Now + If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + Next + + 'neuer DB-Key auslsen, sofern kein Key vorhanden ist + If Me.C1Daten.Columns(0).Value Is DBNull.Value Then + Dim dbkey As New db.clsMyKey_Tabelle() + Dim key As Long + dbkey.cpMainConnectionProvider = conn + key = dbkey.get_dbkey(tablename) + Me.C1Daten.Columns(0).Value = key + For i = 0 To Me.C1Daten.Columns.Count - 1 + If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then + Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value + End If + If LCase(Me.C1Daten.Columns(i).DataField) = "erstellt_am" Then + Me.C1Daten.Columns(i).Value = Now + End If + If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then + Me.C1Daten.Columns(i).Value = 1 + End If + Next + dbkey.Dispose() + End If + Catch + End Try + + End Sub + + ''' + ''' Aktualisierung der Default-Werte + ''' + ''' + ''' + ''' + Private Sub C1Daten_AfterInsert(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Daten.AfterInsert + 'Dim i As Integer + ''Defaulwerte erstellt_am, mutiert_am, mutierer und aktiv setzen + 'Try + + ' For i = 0 To C1Daten.Columns.Count - 1 + ' If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then + ' Me.C1Daten.Columns(i).Value = 1 + ' End If + ' If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then + ' Me.C1Daten.Columns(i).Value = Now + ' End If + ' If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then + ' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + ' End If + ' If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then + ' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value + ' End If + ' If LCase(Me.C1Daten.Columns(i).DataField) = "mandnat" Then + ' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value + ' End If + ' Next + 'Catch + 'End Try + End Sub + + ''' + ''' Anzeige allflliger Cellen-Tips + ''' + ''' + ''' + ''' + Private Sub C1Daten_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1Daten.FetchCellTips + Dim ts As New Utils.Tabellenspalte + ts.Tabelle = Me.tablename + Try + 'ts.Feld = Me.C1Daten.Splits(0).DisplayColumns(e.ColIndex).Name + ts.Feld = Me.C1Daten.Columns(e.ColIndex).DataField + ts.getspalte() + e.CellTip = ts.TipText + Catch + End Try + ts = Nothing + + End Sub + +#End Region + + + Private Sub ReportdateiDBToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiDBToolStripMenuItem.Click + Me.OpenFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*" + Me.OpenFileDialog1.ShowDialog() + If Me.OpenFileDialog1.FileName <> "" Then + Dim dms As New TKB.VV.Utils.MyDocMgmt + Me.C1Daten.Columns("CR_Filename").Value = dms.Save_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.OpenFileDialog1.FileName) + dms = Nothing + + End If + End Sub + + Private Sub ReportdateiFilesystemToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiFilesystemToolStripMenuItem.Click + Me.SaveFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*" + Me.SaveFileDialog1.ShowDialog() + If Me.SaveFileDialog1.FileName <> "" Then + Dim dms As New TKB.VV.Utils.MyDocMgmt + dms.Get_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.SaveFileDialog1.FileName) + dms = Nothing + End If + + End Sub +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.designer.vb new file mode 100644 index 0000000..c3865ab --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.designer.vb @@ -0,0 +1,174 @@ + _ +Partial Class frmDomainEditorExtTables + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDomainEditorExtTables)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid + Me.ContextMenuStripAuswertung = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ReportdateiDBToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.ReportdateiFilesystemToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog + Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStripAuswertung.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(556, 24) + Me.MenuStrip1.TabIndex = 0 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(44, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(116, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(556, 25) + Me.ToolStrip1.TabIndex = 1 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "ToolStripButton1" + Me.TSBtnSave.ToolTipText = "Daten speichern" + ' + 'C1Daten + ' + Me.C1Daten.AllowAddNew = True + Me.C1Daten.AllowDelete = True + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 49) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75 + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(556, 270) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 4 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ContextMenuStripAuswertung + ' + Me.ContextMenuStripAuswertung.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ReportdateiDBToolStripMenuItem, Me.ReportdateiFilesystemToolStripMenuItem}) + Me.ContextMenuStripAuswertung.Name = "ContextMenuStripAuswertung" + Me.ContextMenuStripAuswertung.Size = New System.Drawing.Size(200, 48) + ' + 'ReportdateiDBToolStripMenuItem + ' + Me.ReportdateiDBToolStripMenuItem.Name = "ReportdateiDBToolStripMenuItem" + Me.ReportdateiDBToolStripMenuItem.Size = New System.Drawing.Size(199, 22) + Me.ReportdateiDBToolStripMenuItem.Text = "Reportdatei -> DB" + ' + 'ReportdateiFilesystemToolStripMenuItem + ' + Me.ReportdateiFilesystemToolStripMenuItem.Name = "ReportdateiFilesystemToolStripMenuItem" + Me.ReportdateiFilesystemToolStripMenuItem.Size = New System.Drawing.Size(199, 22) + Me.ReportdateiFilesystemToolStripMenuItem.Text = "Reportdatei -> Filesystem" + ' + 'OpenFileDialog1 + ' + Me.OpenFileDialog1.FileName = "OpenFileDialog1" + ' + 'frmDomainEditorExtTables + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(556, 319) + Me.Controls.Add(Me.C1Daten) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MainMenuStrip = Me.MenuStrip1 + Me.Name = "frmDomainEditorExtTables" + Me.Text = "frmDomainEditor" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStripAuswertung.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnSave As System.Windows.Forms.ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents ContextMenuStripAuswertung As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ReportdateiDBToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ReportdateiFilesystemToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog + Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.resx new file mode 100644 index 0000000..47c51c9 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.resx @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 125, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKNJREFUOE+VkwEO + wCAIA93PeZo/cyKiiMDYEmNC7FGpe4r9NaeeLjcAuFZXjxp+tVZs4jY6xFoIQCALwMR1QHYkVyTGXQNk + YQHQrhRJiAS00g/OwrET4OysHZDYWn1IGQet4EBCQOwAsyUIxWJcoYzYcHkzIMjOVQ1xw6MUGDJ2zjkz + A+t5Xg6sKMOXyFfyHKgru//IjHGnkBUycb2Dv8IF+BK+MTpb49UVguoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAF5JREFUOE9jPHDg + wH8GSgDUAJAhJGOwXpgBDQ0QA0B8fBimBk6TYwDMtWS7ANm1ZHlhEBsAcxq+KAWpwekFmCQxNNZoJMYF + II14XYDL+bDENUgNIDdDwZMyoQyETx4A+Fj5YOUZcUAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADdJREFUKFNjYMAE + /7GIgYWQJXCxURTCFOE1ESSJoQAmiI9GcSayQqzuR3cLVithOvH6DpsisBgAoKoc5C8W7oEAAAAASUVO + RK5CYII= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMEAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQAAAAAICAgIAgAAAGQAAABkAAAAZAAAAGQAAAABCgAAAAEAAAAJAwAAAAHz/////P///wAK + CgoB8v////z///8ACQ8AAAABDwAAAAYAAABkAAAAZAAAAGQAAABkAAAACw== + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style5{}RecordSelector{AlignImage:Center;}Heading{Wrap:True;AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;}Style6{}Group{BackColor:ControlDark;Border:None,,0, 0, 0, 0;AlignVert:Center;}Style8{}Footer{}Style13{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style12{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Editor{}Style4{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}EvenRow{BackColor:White;}Style11{}Style16{}Style1{}Caption{AlignHorz:Center;}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style9{}Style2{}Style14{}Normal{}Style7{}Style15{}Style10{AlignHorz:Near;}Style3{}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="16" DefRecSelWidth="16" VerticalScrollGroup="1" HorizontalScrollGroup="1"><Height>268</Height><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 554, 268</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>16</DefaultRecSelWidth><ClientArea>0, 0, 554, 268</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 228, 17 + + + 430, 17 + + + 566, 17 + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3d3d3d3d3d3d3d3d3d3AAAAAAAA + AAAAAAAAAAAABw///////////////////wcP//////////////////8HD/d3d3f/d3d3f/d3d3f/Bw// + /////////////////wcP93d3d/93d3d/93d3d/8HD///////////////////Bw/3d3d3/3d3d3/3d3d3 + /wcP//////////////////8HD/d3d3f/d3d3f/d3d3f/Bw///////////////////wcP93d3d/93d3d/ + 93d3d/8HD///////////////////Bw/3d3d3/3d3d3/3d3d3/wcP//////////////////8HD/d3d3f/ + d3d3f/d3d3f/Bw///////////////////wcP93d3d/93d3d/93d3d/8HD///////////////////Bw// + /////////////////wcAAAAAAAAAAAAAAAAAAAAHDMzMzMzMzMzMzMzMzMzMBwz/zMzM/8zMzM/8zMzP + /AcM/8zMzP/MzMzP/MzMz/wHDMzMzMzMzMzMzMzMzMzMBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////4AAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.vb new file mode 100644 index 0000000..e3fdb4a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmDomainEditorExtTables.vb @@ -0,0 +1,130 @@ +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +''' +''' Form mit generalisiertem Domain-Table-Editor. +''' +''' +''' +''' +''' Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable +Public Class frmDomainEditorExtTables + +#Region "Deklarationen" + Dim ds As New DataSet + Dim da As SqlDataAdapter + Dim co As New SqlConnection + Dim cb As SqlCommandBuilder + Dim tablename As String + Dim SpaltenTitel As New Utils.Tabellenspalte +#End Region + +#Region "Formular-Funktionen" + ''' + ''' Tabellenname bernehmen und Objekt DomainTable initialisieren + ''' Initialisierung der Komponenten + ''' + ''' Tabellenname der Tabelle, welche ber den Domaineditor editiert werden soll + ''' Bentigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + ''' pr_"Tablename"_SelectAll + ''' pr_"Tablename"_Update + ''' + Public Sub New(ByVal tblname As String, ByVal Connectionstring As String) + ' Domaintable = New TKB.VV.Sysadmin.DomainTable(tblname) + Me.InitializeComponent() + ' Me.Text = "Domaineditor: " & tblname + Me.tablename = tblname + Me.co.ConnectionString = Connectionstring + End Sub + ''' + ''' Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + ''' + ''' + ''' + ''' + Private Sub frmDomainEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Try + da = New SqlDataAdapter("Select * from " & Me.tablename, Me.co) + cb = New SqlCommandBuilder(da) + da.Fill(ds, "ExtTable") + Me.C1Daten.DataSource = ds.Tables(0) + Me.C1Daten.DataMember = ds.Tables(0).TableName + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + ''' + ''' Ruft BeendetnToolStipMenuItem_Click auf + ''' + ''' + ''' + ''' + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + BeendenToolStripMenuItem_Click(sender, e) + End Sub + ''' + ''' Prfung auf allfllige Daten-Changes. Wurden Daten verndert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + ''' das Formular nicht gespeichert werden soll. + ''' + ''' + ''' + ''' + Private Sub frmDomainEditor_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If Me.ds.HasChanges Then + Dim msg As New Utils.MyMessage + Dim msgboxres As MsgBoxResult + msgboxres = msg.Show_MessageYesNoCancel(3) + If msgboxres = MsgBoxResult.Cancel Then + e.Cancel = True + Exit Sub + End If + If msgboxres = MsgBoxResult.Yes Then + Try + da.Update(ds, "ExtTable") + + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End If + End If + Try + Me.co.Close() + da.Dispose() + co.Dispose() + cb.Dispose() + ds.Dispose() + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + + ''' + ''' Sichern der Daten + ''' + ''' + ''' + ''' + Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click + Try + da.Update(ds, "ExtTable") + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub +#End Region + +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.designer.vb new file mode 100644 index 0000000..414ab22 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.designer.vb @@ -0,0 +1,50 @@ + _ +Partial Class frmFormSelector + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFormSelector)) + Me.ListForms = New System.Windows.Forms.ListBox + Me.SuspendLayout() + ' + 'ListForms + ' + Me.ListForms.FormattingEnabled = True + Me.ListForms.Location = New System.Drawing.Point(28, 36) + Me.ListForms.Name = "ListForms" + Me.ListForms.Size = New System.Drawing.Size(259, 199) + Me.ListForms.TabIndex = 0 + ' + 'frmFormSelector + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(315, 322) + Me.Controls.Add(Me.ListForms) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmFormSelector" + Me.Text = "Form-Selector" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents ListForms As System.Windows.Forms.ListBox +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.resx new file mode 100644 index 0000000..c3606d5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2 + ZnAAAAAABmZgAAAAAAAHh+6HAAAAAHjuhwAAAAAABojuhwAAAAB47odgAAAAAAbuiOYAAAAAbojuYAAA + AAAGZojmAAAAAGaI7mAAAAAAAADuhwAAAAAAbodgAAAAAAAAbocAAAAAAGaHYAAAAAAAAADmAAAAAAAA + bmAAAAAAAAAAZgAAAAAAAGZgAAAAAHAAAAAAAAAAAAAGZwAAAABwAAAAAAAAAAAAAAcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////// + ///A/wP/wP8D/wA8AP8APAD/ADwA/wA8AP8wPMD/MDzA/zw88P88PPD/AMMA/wDDAP/P//z8z//8/PPz + /zzz8/88/PP/zPzz/8z/M//z/zP/8//P////z////////////////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.vb new file mode 100644 index 0000000..66fffb7 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmFormSelector.vb @@ -0,0 +1,11 @@ +Public Class frmFormSelector + + Private Sub ListForms_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListForms.DoubleClick + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub frmFormSelector_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.designer.vb new file mode 100644 index 0000000..b2d393f --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.designer.vb @@ -0,0 +1,183 @@ + _ +Partial Class frmSysadminMenu + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSysadminMenu)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SpaltentitelGenerierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.SysMenuTree = New System.Windows.Forms.TreeView() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.ContextMenu1 = New System.Windows.Forms.ContextMenu() + Me.MnuNeuerKnoten = New System.Windows.Forms.MenuItem() + Me.MnuKnotenLoeschen = New System.Windows.Forms.MenuItem() + Me.MenuKnotenRename = New System.Windows.Forms.MenuItem() + Me.MenuItem4 = New System.Windows.Forms.MenuItem() + Me.MnuSave = New System.Windows.Forms.MenuItem() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.AllowMerge = False + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem, Me.SpaltentitelGenerierenToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(299, 24) + Me.MenuStrip1.TabIndex = 0 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'SpaltentitelGenerierenToolStripMenuItem + ' + Me.SpaltentitelGenerierenToolStripMenuItem.Name = "SpaltentitelGenerierenToolStripMenuItem" + Me.SpaltentitelGenerierenToolStripMenuItem.Size = New System.Drawing.Size(137, 20) + Me.SpaltentitelGenerierenToolStripMenuItem.Text = "&Spaltentitel generieren" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(299, 25) + Me.ToolStrip1.TabIndex = 1 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'SysMenuTree + ' + Me.SysMenuTree.AllowDrop = True + Me.SysMenuTree.Dock = System.Windows.Forms.DockStyle.Fill + Me.SysMenuTree.ImageIndex = 0 + Me.SysMenuTree.ImageList = Me.ImageList1 + Me.SysMenuTree.Indent = 19 + Me.SysMenuTree.ItemHeight = 16 + Me.SysMenuTree.Location = New System.Drawing.Point(0, 49) + Me.SysMenuTree.Name = "SysMenuTree" + Me.SysMenuTree.SelectedImageIndex = 0 + Me.SysMenuTree.Size = New System.Drawing.Size(299, 521) + Me.SysMenuTree.TabIndex = 2 + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "") + Me.ImageList1.Images.SetKeyName(1, "") + Me.ImageList1.Images.SetKeyName(2, "") + Me.ImageList1.Images.SetKeyName(3, "") + Me.ImageList1.Images.SetKeyName(4, "") + Me.ImageList1.Images.SetKeyName(5, "Kette3.ico") + ' + 'ContextMenu1 + ' + Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MnuNeuerKnoten, Me.MnuKnotenLoeschen, Me.MenuKnotenRename, Me.MenuItem4, Me.MnuSave}) + ' + 'MnuNeuerKnoten + ' + Me.MnuNeuerKnoten.Index = 0 + Me.MnuNeuerKnoten.Text = "Neuer Eintrag " + ' + 'MnuKnotenLoeschen + ' + Me.MnuKnotenLoeschen.Index = 1 + Me.MnuKnotenLoeschen.Text = "Eintrag löschen" + ' + 'MenuKnotenRename + ' + Me.MenuKnotenRename.Index = 2 + Me.MenuKnotenRename.Text = "Eintrag umbenennen" + ' + 'MenuItem4 + ' + Me.MenuItem4.Index = 3 + Me.MenuItem4.Text = "-" + ' + 'MnuSave + ' + Me.MnuSave.Index = 4 + Me.MnuSave.Text = "Menu Speichern" + ' + 'frmSysadminMenu + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(299, 570) + Me.Controls.Add(Me.SysMenuTree) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MainMenuStrip = Me.MenuStrip1 + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmSysadminMenu" + Me.Text = "FrmSysadminMenu" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents SysMenuTree As System.Windows.Forms.TreeView + Friend WithEvents ImageList1 As System.Windows.Forms.ImageList + Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu + Friend WithEvents MnuNeuerKnoten As System.Windows.Forms.MenuItem + Friend WithEvents MnuKnotenLoeschen As System.Windows.Forms.MenuItem + Friend WithEvents MenuKnotenRename As System.Windows.Forms.MenuItem + Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem + Friend WithEvents MnuSave As System.Windows.Forms.MenuItem + Friend WithEvents SpaltentitelGenerierenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.resx new file mode 100644 index 0000000..7c3fc9c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.resx @@ -0,0 +1,580 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 125, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZOBDoAgCET9dD7NPyNPgpAIzY21oTzPg1rL + F4/0aaQEJqJXAIo8Vu9dL9gDYiGRgG6VCwBJLDvgbxRVsodvBPiEASDXF3mIB3AbBzPjBLDeHBVIcRbj + KScKuMGQElArmKZNSNJ7VYC2Ib48EIjE0gX1QPerLigkATytqxT4gQht3HsQx9H8+OpCeHL+R+FQnIPT + QiXaHPwtNMCu8ALckGXYKNsEDQAAAABJRU5ErkJggg== + + + + 227, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ + DAAAAk1TRnQBSQFMAgEBBgEAASQBAAEkAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8ARAAF+QIABfwzAAH5 + BPQB/wH5AfwB/wT0AfwDAAUHAgAFByIAAfkC9AH5CAAB/AL0AfwBAAIHCgACByEAAfkB9AH5AgAB/wT0 + Af8CAAH8AfQB/AEAAQcDAAYHAwABByEAAfkC9AH5CAAB/AL0AfwBAAIHCgACByIAAfkE9AH/AfkB/AH/ + BPQB/AMABQcCAAUHJAAF+QIABfz/AHkAAQMB/wsAAf8eAAHsA/8BBwL/AQcC/wEHAf8GAAHsAQMB7AH/ + CwAB+wEAAfscAAHsA/8BBwL/AQcC/wEHAf8EAAEDAewBAwHsAQMB/wsAAf8BAAH/AQcB+w4AAf8B+woA + AewLBwMAAQMB7AEDAewBAwHsAf8BAAHsCQAB+wEAAfsBBwH/AQcB+woAAf8BAAH7Af8B+wH/CAAB7AH/ + AuwBBwLsAQcC7AEHAf8DAAHsAQMB7AEDAewBAwH/AQAB7AkAAf8BAAL/AfsBBwH/AQcB+wcAAfsCAAH/ + AfsB/wH7Af8B+wYAAewB/wLsAQcC7AEHAuwBBwH/AwABAwHsAQMCAAHsAf8BAAHsCQAB+wEAAfsC/wEH + AfsBBwH/BgAB/wEAAf8BAAH7Af8B+wH/AfsB/wH7Af8EAAHsCwcDAAHsAQMB7AIHAQMB/wEAAewBAAEG + BwAB/wEAAv8B+wEHAf8BBwH7BQAB+wEAAv8BAAH/AfsB/wH7Af8B+wH/AfsB/wMAAewB/wLsAQcC7AEH + AuwBBwH/AwABAwHsAQMB7AEDAewB/wIAAQYF/gMAAfsBAAH7A/8B+wEHAf8GAAP/AgAB/wH7Af8B+wH/ + AfsB/wH7AwAB7AH/AuwBBwLsAQcC7AEHAf8DAAHsAQMB7AEDAewBAwH/AQABbQb+AwAB/wEAAv8B+wL/ + AQcB+wgAA/8CAAH7Af8B+wH/AfsB/wMAAewLBwMAAQMB7AEDAewBAwHsAf8BAAHsAW0B/gRtAwAB+wH/ + AgAC/wH7AQcB/wYAAfsB/wIAAv8BAAH/AfsB/wH7Af8B+wMAAewB/wLsAQcC7AEHAuwBBwH/AwAB7AED + AewBAwHsAQMB/wEAAewBAAJtBwAB+wH/AfsCAAH/AQcB+wcAAfsB/wH7AQAC/wIAAfsB/wH7Af8DAAHs + Af8C7AEHAuwBBwLsAQcB/wMAAQMB7AEDAewBBwH/AewBAAHsAgABbQkAAf8B+wH/AgAB/wkAAf8B+wEA + Av8DAAH/AfsDAAHsCAcGAAHsAQMBBwH/AewBAAPsDAAB+wH/AfsB/wH7DwAB/wH7BgAB7Aj7AewB/wHs + AwABBwH/AewBAAXsDQAB+wH/GQAB7Aj7Auw1AArsBAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEA + AQEGAAEBFgAD/wEABP8EAAT/BAAE/wQABP8EAAT/BAABwQGDAcEBgwQAAYABAQGAAQEMAAEQAQgBEAEI + DAABgAEBAYABAQQAAcEBgwHBAYMEAAT/BAAE/wQABP8EAAT/BAAB/AF/AecD/wHAAQEB8AF/AcMD/wHA + AQEBwAF/AcAB/wH4Af8BwAEBAQABHwHAAT8B8AE/AcABAQEAAR8BwAEPAeABDwHAAQEBAAEXAcABBwHA + AQMBwAEBAQABBwHAAQcBgAEAAcABAQIAAcABBwIAAcABAQIAAcABBwIAAcABAQIAAcABBwGAAQABwAEB + AgABwAEHAYABAAHAAQEBAAEHAcABBwHAAQABwAEBAQABFwHwAQcB4AEAAcABAQEAAR8B+AEHAfkBAAHA + AQMBAAEfAfgBBwH/Ac8BwAEHAQABHwH+AX8C/wHAAQ8L + + + + 354, 17 + + + + AAABAAYAMDAAAAEACACoDgAAZgAAACAgAAABAAgAqAgAAA4PAAAQEAAAAQAIAGgFAAC2FwAAMDAAAAEA + IACoJQAAHh0AACAgAAABACAAqBAAAMZCAAAQEAAAAQAgAGgEAABuUwAAKAAAADAAAABgAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNZ2cA0WtrANRubgDWcHAA2XNzANt1dQDdd3cA4Hp6AOJ8 + fADlf38A54GBAOmDgwDshoYA5oSDAO6IiADJc3MA8IqKAPKMjADriYgA9Y+PAPeRkQD5k5MA2YCAAMt4 + eAD8lpYA/piYAM17ewD/mpoA/5ycAP+engDzlpYA/6CgAKlqagD/oqIA5pKSAI9cXAD/paUA0IeHAP+n + pwD/qakAmGVlAP+rqwD/rq4AxYaGAP+wsADnn58ArHd3AP+ysgD/tLQA6KSkAP+2tgD9tbQA+7SzAH5a + WgD/uLgAs4KCAKZ5eQD/u7sAq35+AP+9vQCYcXEA/7+/AP/BwQCziYkA/8TEAP/GxgDRoqIAgmVlANys + rACKbGwAt5CQAP/KygDEoKAA3ba2ALmamgBnVlYAdGNjAFxUVACwoaEAy7y8AFNNTQCemZkAqKSkAKGe + ngBqaWkA03FvANl5dwDlg4EA3H58AOmHhQDriYcA9JKQAPOSkADdj4wAtHVzAOucmQD0pqMA76WiAMCE + gwD2trQA56upAPy/vgD7wb8AzHFtANJ6dgDXfnoA24R/AOGHgwDiiYUAzH97APWalgDrlZAA86qmAPSt + qgD3sa4AuY2LAPW9ugDmtrQAzq2rAIt2dQB7a2oAloOCAM9+dwDlkIoA752XAOqjnQDzubUAvJWSALCQ + jQDajoYA7bu1AOSckwCojIgAxK6rAMiDeADMiX0A0o2CAN6ZjgDXlIkA3ZyQAOKroQDptKsA1pqNAN2l + mQC3j4cAwqKbAK+TjQDJq6UAya6pANKVhwDBmY8A0ZmKANSejwDbrJ8Ay6GVALmbkwDGp54Ay5eHAM+b + iwDRn48A1aSVALORhgDDn5QAvpuQAL+spgDGlIIAzZ6NANSqnADHppoAxKOYAMGhlgC+oJUAyaqfAMqs + ogDKrqQAyJyKAM2ikADPp5cAyaeZAMWjlgDJqJsArKCbAK+qqADFmYYAyZ+MANWyowDEpZcAza2fAM2w + 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 + P/gADwAA/gA//AAfAADwAH/+AD8AAPAAf/4AfwAA4AB//wA/AADgAH//AA8AAOAAf/8AAwAA4AB//4AD + AADgAH//gAMAAPAAf/+AAwAA/gA//4ADAAD/AD//gAMAAP4AH/+ABwAA/AAf/wA/AAD4AA//AD8AAPAA + B/4AHwAA+AAD/AAPAAD4AAH4AA8AAPwAAAAADwAA/AAAAAAPAAD+MAAAAA8AAP/wAAAAHwAA//AAAAA/ + AAD/4AAAAH8AAP/gAAAD/wAA/+AAAAP/AAD/8AAAA/8AAP/4EAAD/wAA//wwAAf/AAD///AAH/8AAP// + 8Af//wAA///4D///AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9s + bQDRZmcA2W9wANdubwDTbG0A13BxANtzdADfdncA43l6AOV9fgDmfn8A6oKDAO6FhgD3i40A9oyNAPWN + jgC6bG0A/JOUAPuTlAD9nZ4A/6GiAP+lpgD/tbYA/7m6AP+6uwD/vb4A/8PEAP/FxgDVa2sA2HFxANVx + cADgd3cA2nR0AN54eADie3sA4Xt7AOWAfwDlf38A439+AOmDgwDlgIAA7oaGAOWCgQDjgIAA3Hx8AOyG + hgDphIQA8ImJANt+fQDwiooA7YqJAOeGhQDIdHMA9I6OAOuIiAD4kZEA/JSUAPuUlAD3kZEA9pOSAP2Y + lwD+mJgA6oyMAP+bmwD/np4A/6GhALh0dAD/paUArG9vAP+npwCfaGgA/6ioAP+srAD+q6sA+qqpAP+u + rgCvd3cA/6+vANuWlgDChoYA/rCwAO2kpAD/srIA76moAIVdXQD/tLQA9q2tAP+1tQD/trYAoXNzAI9n + ZwD/ubkA1pubAK9/fwD/vLwApXp6AOWrqwDVn58A/8DAAP2+vgCGZWUAfl9fAP/DwwCogIAAtYuLAP3E + xAD/x8cAjG1tAHRbWwD/ysoA/83NAJN3dwB5ZGQAiHFxAN25uQCrkJAAdGVlAF5SUgCjkpIAqJmZAGxn + ZwBeWloAioWFAIOAgABnZmYAZmVlAFZVVQClpKQAzmxqANJvbQDYdXMA2Hh2AOWGgwDskY4A+52aAPaa + lwDqlZIA4JWSAPynpQDRjYsA252cAPazsQD4t7UAyJWUAP2+vQD+wL8A3KqpAPnFwwDgtLMArI2MANF5 + dADbhH8A44uGAPOWkgDyqqYA+K+sAPmzsADVgXsA3IuFAOqinADuqaMA7rizAPK9uQCIbmwAinx7AG9k + YwDgk4sA6JuTAPCzrQCNengA042DAMqGfQDRk4oAt5uXAJqTkgDSkIUAy4yCAOWtpADIpJ4A5rasAJR/ + ewDFrKcAuqypAN+rngC4kokAxqmiANihkgCXhH8AyZSEANSgkADMmooA1qOUAMKnnwCpmZQAyZiHANGf + jgDRoZEAz6KSAMegkgDUq5wA0LSqAKeUjQC+mowAzaueALOWiwDGp5oAyKyhAMqvpACjjYQAyqCNAM6l + kgDOqZgAwJ6PAMirngC+pJkAzaeUANCrmADLp5UAwqKSAMamlgCfhnkAs5iLAMClmADEqp0AZGJhAM6p + lQDEpJIAyq6eAM6tmQDLrZoAyauZAMeqmQDKrZwAwaaWAMOrnQDJqpYAy6+dAMGmkgDHrJgAwaqZAJKR + jwCbm5sAmJiYAJSUlACTk5MAjIyMAIaGhgCEhIQAfX19AGpqagBlZWUAYGBgAFxcXABYWFgAAAAAAAAA + AAAAAAAAAAAAAAAA8/P49vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPN8+fPKrnS8efMAAAAAAAAAAAAA + AAAAAAAAAAAAAPO8s5WmzdSUbm619fPzAAAAAAAAAAAAAAAAAAAAAAAA3KNra5PcyGprb3B5vJZ1+gAA + AAAAAAAAAAAAAAAAANflohxnG7S0G2drkN20G6JyfQAAAAAAAAAAAAAAAAB7qu64Z2NjY2NjY2OSopFj + Y2SlAAAAAAAAAAAAAAAA3pNp3MgZX19fX19fX18aGl9fYa8AAAAAAAAAAAAAAOOyGBmPjlxcXFwYGBkY + XFxcXFxp9gAAAAAAAAAAAAC62Z1ZWFlZWFhZVo6pqZ1ZF1hYWGh6pXB+AAAAAAAAAM/Zm1ZTU1NTU1dz + AADJ1LicU1NTV41UUXH4AAAAAAAAAM7Ym05MTExStwAAAAAA0NihTkxMTE5MkH0AAAAAAAAAAODTS0lJ + SpYAAAAAAAAA5NibSUlJSUlLeAAAAAAAAK8BubiLSEhPgAAAAAAAAAAA6MBGSEhISGIAAAAAAAAAxUYW + FkRERGAAAAAAAAAAAADQ7KAWRERegAAAAAAAANvAQkJCQkJCcQAAAAAAAAAAAADmuxVCQmb79QAAAAAA + 1btBQUFBQUF1AAAAAAAAAAAAANbTFEFBiU1lfQAAAADOxYdAQEBAQG0AAAAAAAAAAAAAuuKIQEBAQED+ + AAAAAAAAzMCoPT4+W/YAAAAAAAAAAAC22Zo+Pj4+Pv0AAAAAAAAA19OaOTpD+wAAAAAAAAAAAMHiPDo6 + OhIT+AAAAAAAALfLiTs7Oz929AAAAAAAAAAA3744OziGiqAAAAAAAAAAx4YPNjY2NkX99AAAAAAAAADv + pxA2DqTxAAAAAAAAAOjEMDIyMjIyN1X89AAAAAAArsUzMjIwR3/yAAAAAAAAuuyZDSoNKi4uL1V/9wAA + AMLGmSouLi4qR/wAAAAAAAAA560MNKefDCgoKBFtf+G1rYUMKCgoKCgrbAAAAAAAAADk5OTk8L8nJiYm + KSwtMSsLCyYmJgoLJTF3AAAAAAAAAAAAAOTqsAkkJCQkJCQjIyQkJAmfXZgjUAAAAAAAAAAAAAAA5Nqe + CCIiCAgiIiIiCCIiIEPRXV0AAAAAAAAAAAAAAADP0oMHISGrniEhISGEISEhEXoAAAAAAAAAAAAAAAAA + AOTmsR8DQ+29BgYEntKXAwYepAAAAAAAAAAAAAAAAAAAAOTkv4wA68OCBR018L0FBTVdAAAAAAAAAAAA + AAAAAAAAAAAAAADg0oECAlq35qxdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTpsbGtAAAAAAAAAAAAAAAA + AAD//B///8AP//8AA///AAD//gAAf/wAAH/4AAB/8AAAf+AAAA/gAwAH8AfAB/gP4AfgD/AP4B/wD8Af + +AfAH/gDwB/4A/AP+AP4D/gD8Af4B/AD+A/gAfAH4ADgB/AAAAfwAAAH/gAAD/4AAB/+AAB//gAAf/8I + AH//+AH///g//ygAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzJmZAMSU + lADFlpYAw5SUAMycnAC7j48Auo6OALKIiADOnp4Av5OTALeNjQCziooAsomJALqQkADNoKAAu5KSAKuF + hQDQo6MAo4CAALWPjwCae3sAkXR0ANasrACYenoAk3Z2AI9zcwCnh4cAiG5uANOsrADOqKgAiG9vANCq + qgCJcHAAtZWVAMWlpQCzlpYAknt7AKeNjQCxmJgAppCQALegoACkkZEAuKSkAJyMjACYiIgAZ2FhAFJO + TgBjX18AYl5eAJ+fnwCYmJgAkZGRAImJiQCDg4MAgoKCAICAgAB5eXkAc3NzAG5ubgBtbW0AZ2dnAGVl + ZQBkZGQAX19fAF5eXgBWVlYAU1NTAE9PTwBNTU0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ADVDNAAAAAAAAAAAAAAtQCIBGT0sQTgAAAAAAAAPAR8MAQ0WAQY7AAAAAAA5EAEBAQEBAQEIRDw5AAAF + Cw0BAQEgAQEBAwgEMAAAAQEBASkAAAAAAQEBASoAACQBASUAAAAAAAABASE+Nx4OAQQ6AAAAAAAACQEN + E0MBAQERPwAAAAAAAB4BAQEzHh4BAkUyAAAAAAABAREmAAAjAQEcQjMAAAAnAQEVMQAAAQEBARovQi4Y + AQEBASgAABceDwEBAQEBAQEHGwEAAAAAABIBAQEBAQEBCjYAAAAAAAAXAR4dARQrAQEAAAAAAAAAAAAA + FwEBAAAAAAAAAP4/ALrwB1lY4AdYWMABjqmAAVkXg8FYaIfgcH4H4AAAB+AAzwPhVlOBwVNTgAEAAIAD + uJzgB1NX4A9Rcfx/AAAoAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAkAAAAPAAAAFQAAABAAAAADAAAAKgAAAGAAAACLAAAArAAAAKEAAACUAAAAfwAAAF0AAAAYAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAQAAAAJwAAAEwAAABxAAAAiwAAAG5ZRkJDhHFlr5Z8bOTnubT72a6u882kpO6xjo7lhWpq1hkU + FKYAAAA9AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAADQAAADEdGRd3ZFRLxKODfeHjtLL2v5eX6gAAAKebeXLMzq+d/8Ogi///ysr//8rK///K + yv//ysr//8rK/1JBQcYAAABbAAAADAAAAAkAAAAPAAAAEwAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAKOS0qaZF3bNjTq57/87+7///Hx///x8f//8fH/2JMTNGlhn3uza2b/8mk + kf//x8f//8fH///Hx///x8f//8fH/5Z1ddoAAABrAAAAHwAAAEsAAABwAAAAiAAAAH0AAAA9AAAADQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjfnd7xKWU98Ofiv//xsb//8bG///Gxv//xsb//8bG/+ay + svfFn5X/y6uX/9Cnl///xsb//8bG///Gxv//xsb//8bG/6N+fuAAAACLemdfoJJ6bNy6lInx2qio8j0v + L8gAAACdAAAAVAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0jIXRz7Ce/8Sijf/vubT//8TE///E + xP//xMT//8TE///ExP/rvbb/yaiU/9ytof//xMT//8TE///ExP//xMT//8TE/82enu5XREDMy6yb/86n + lv/7wb///8TE///ExP9yV1fXAAAApwAAAGsAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAADQAAABKSZ2V80rWk/8em + kv/brKD//8HB///Bwf//wcH//8HB///Bwf//wcH//L++///Bwf//wcH//8HB///Bwf//wcH//8HB/+au + rvfMppr/yaWS//O5tf//wcH//8HB///Bwf//wcH/sIWF5wAAAKMAAAAwAAAABgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAABDAAAAZwAA + AH8kGBiIyamb/8url//Joo///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/ + v///v7///7+///+/v///v7//97q4//+/v///v7///7+///+/v///v7///7+//1xFRbIAAAAcAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXNc + VoOIc2bUrYh87M6Zme1QOzvLoH938M6vnf/DoYz/87ay//+9vf//vb3//729//+9vf//vb3//729//+9 + vf//vb3//729//+9vf//vb3//729//+9vf//vb3//729//+9vf//vb3//729//+9vf//vb3/9LW1+gAA + AHEAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABfFlXa82unv/Io5D/97a0//+7u///u7v/56up/9Wyo//Io4//97a0//+7u///u7v//7u7//+7 + u///u7v//7u7//+7u///u7v//7u7//+7u///u7v//7u7//+7u///u7v//7u7//+7u///u7v//7u7//+7 + u///u7v/tISE4QAAAEUAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABYOjocuZiM68mplf/gqp///7i4//+4uP//uLj//7i4//+4uP/3tLL//7i4//+4 + uP//uLj//7i4//+4uP//uLj//7i4//+4uP//uLj//7i4//+4uP//uLj//7i4//+4uP//uLj//7i4//+4 + uP//uLj//7i4//+4uP//uLj/aUxMwwAAAC0AAAADAAAACQAAAA8AAAAVAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGWbmqPz7Gg/8eijv/7tLP//7a2//+2tv//trb//7a2//+2 + tv//trb//7a2//+2tv//trb//7a2//+2tv//trb//7a2//+2tv//trb//7a2//+2tv//trb//7a2//+2 + tv//trb//7a2//+2tv//trb//7a2//+2tv//trb/AAAAtQAAAGgAAAA6AAAATgAAAHEAAACCAAAASAAA + AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFWVhO+m5DxyqmW/9immP//tLT//7S0//+0 + tP//tLT//7S0//+0tP//tLT//7S0//+0tP//tLT//7S0//+0tP//tLT//bW0/++1r//jsqf/1qqb/9uq + nf/kq6L/97Gu//+0tP//tLT//7S0//+0tP//tLT//7S0//+0tP//tLT/oXJy4yMeG75rUUzKsH584eej + o/ZjRUXPAAAAiwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlmZiDMrZ7wzK2a/8ei + jv/zrqr//7Ky//+ysv//srL//7Ky//+ysv//srL//7Ky//+ysv//srL//7Ky//+ysv/Mj4+ghF1dHwAA + AAGZZmYwuZSLcsGekuDLrJv/yKeT/9KklP/zrqr//7Ky//+ysv//srL//7Ky//+ysv//srL//7Ky//ew + rf//srL//7Ky//+ysv/moaH3AAAArQAAAFEAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACkdXJgyaib/8urmP/HoY3/86yo//+wsP//sLD//7Cw//+wsP//sLD//7Cw//+wsP//sLD/9amp+XpU + VGQAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAACug31gw6CU8M2um//Fo47/36ab//+wsP//sLD//7Cw//+w + sP//sLD//7Cw//+wsP//sLD//7Cw//+wsP//sLD/c09P1QAAAIwAAAAbAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAApHVyYMinmf/Lq5j/xqCM//Oqpv//rq7//66u//+urv//rq7//66u//+u + rv//rq7/YEJCfwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmWZmELiSidDPsZ//xqWQ/9ej + lf//rq7//66u//+urv//rq7//66u//+urv//rq7//66u//+urv//rq7/5pyc9wAAAKcAAAA0AAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAB5hsaWfPsaH/yqqW/8Weiv//q6v//6ur//+r + q///q6v//6ur//+rq/+gbGzMAAAAKAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlm + ZhC4konQz7Gf/8Wjj//fpJn//6ur//+rq///q6v//6ur//+rq///q6v//6ur//+rq///q6v//6ur/2JC + QqcAAAAtAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAArAAAARQAAAFu0kojty6uY/9Cg + kP//qan//6mp//+pqf//qan//6mp//SiovokGBhxAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACZZmYgxKKW8M2um//DoYv/76Wg//+pqf//qan//6mp//+pqf//qan//6mp//+p + qf//qan/7p6e75BfX1UAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDEpJYNQQjnAmGRk15Zi + Ytnoo5//8qei//emo///p6f//6en//+np///p6f//6en/6dtbdsAAAA3AAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApHVyYM+xov/JqZX/zJ+N//+np///p6f//6en//+n + p///p6f//6en//+np//nl5flTTIyNQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvZyRt82t + m//Cnon//6Wl//+lpf//paX//6Wl//+lpf//paX//6Wl//+lpf//paX//6Wl/0QsLLQAAAAcAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKJguDPsJ7/xKKN/+ui + m///paX//6Wl//+lpf//paX//6Wl/7R0dOEsHBxdAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAt4+H/8ysmf/Jn4z//6Ki//+iov//oqL//6Ki//+iov//oqL//6Ki//+iov//oqL//6Ki/wAA + AI8AAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKR1 + cmDPsaH/yaiU/9Sej///oqL//6Ki//+iov//oqL//6Ki/2RAQMwAAABtAAAAIgAAAA0AAAAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAt4+H/8urmP/Rn4///6Cg//+goP//oKD//6Cg//+goP//oKD//6Cg//+g + oP//oKD/2omJ8gAAAIUAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADAnZLwzK2a/8Kfif//oKD//6Cg//+goP//oKD//6Cg/6FlZeMAAACyAAAAkQAA + AGcAAAA3AAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAt4+H/8urmP/Rn4///56e//+env//np7//56e//+e + nv//np7//56e//+env//np7/zoCA7QAAAIgAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxioOzz7Gf/8Sijf/vnZf//56e//+env//np7//56e//+e + nv/mj4/3oWRk4j8nJ8MAAACqAAAAiQAAABYAAAAAAAAAAAAAAAAAAAAAt4+H/8ysmf/Bnoj//5yc//+c + nP//nJz//5yc//+cnP//nJz//5yc//+cnP//nJz/zH197wAAAJsAAAAYAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACleXWD0bSi/8alkP/jm5L//5yc//+c + nP//nJz//5yc//+cnP//nJz//5yc//+cnP/zlZX7AAAApgAAABgAAAAAAAAAAAAAAAAAAAAAuZOK782u + nP/Eoo3/5JyT//Oalv//mpr//5qa//+amv//mpr//5qa//+amv//mpr/85KS+wAAAKcAAAAlAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSYWFU07al/8em + kv/fmo///5qa//+amv//mpr//5qa//+amv//mpr//5qa//+amv//mpr/AAAApwAAABgAAAAAAAAAAAAA + AAAAAAAAmWZmILCIgXLFpJiyyaiY/8qql//NopD/3ZyQ//eZlv/+mJj//piY//6YmP/+mJj//piY/xcO + DrQAAABGAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACQYGBE07em/8imkv/fmo///piY//6YmP/+mJj//piY//6YmP/+mJj//piY//6YmP/+mJj/AAAApwAA + ABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmWZmEKh7d4DIp5n/yqmV/8+bi//8lpb//JaW//yW + lv/8lpb//JaW/2I6Os0AAABzAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACKXFxH07al/8elkf/dmI3//JaW//yWlv/8lpb//JaW//yWlv/8lpb//JaW//yW + lv/8lpb/AAAApAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2+mpD/zKyZ/8ic + iv/5k5P/+ZOT//mTk//5k5P/+ZOT/6xlZecAAACgAAAAKwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYa2l30bSi/8Wkj//rlZD/+ZOT//mTk//5k5P/+ZOT//mT + k//5k5P/+ZOT//mTk//5k5P/AAAAgwAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkg2 + NHTAoJH5zp+O//SSkP/3kZH/95GR//eRkf/3kZH/95GR//eRkf8VDQ26AAAAZwAAABIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmgXubz7Ce/8Ogi//zkpD/95GR//eR + kf/3kZH/95GR//eRkf/3kZH/95GR//OSkP/pkI3kAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAWb1ZSn8urmf/Wmo3/9Y+P//WPj//1j4//9Y+P//WPj//1j4//9Y+P//WPj/+bWlrjAAAAoQAA + AD8AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa5lozny6yY/9GZ + iv/1j4//9Y+P//WPj//1j4//9Y+P/756duuWf3Gto4N2XY13ahcAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAmhg3qryKeV/9eWiv/yjIz/8oyM//KMjP/yjIz/8oyM//KMjP/yjIz/8oyM//KM + jP/yjIz/OiEhyQAAAIkAAAAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRO + TlTLq5z/xqSQ/+WQiv/yjIz/8oyM//KMjP/yjIz/8oyM/102NtAAAACFAAAAIgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZkZGLStaT/x6aS/9KVh//wior/8IqK//CKiv/wior/8IqK//CK + iv/wior/8IqK//CKiv/wior/2Hx89xUMDLwAAACAAAAALQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAADaqIf9TMrJn/0JiJ//CKiv/wior/8IqK//CKiv/wior/8IqK/8x1dfMAAACyAAAAawAA + AB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlmZiDCnpP/y6yY/8Wdif/riYj/7oiI/+6I + iP/uiIj/7oiI/+6IiP/uiIj/7oiI/+6IiP/uiIj/7oiI/8pzc/MUDAy7AAAAgwAAAD0AAAAQAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAMfF1Zh8ytnP/MnYz/64mH/+6IiP/uiIj/7oiI/+6IiP/uiIj/7oiI/+6I + iP+kXV3nAAAArQAAAGsAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzi4Sx0LKg/8Wk + j//bjob/7IaG/+yGhv/shob/7IaG/+yGhv/shob/7IaG/+yGhv/shob/7IaG/+yGhv/IcXHzOCAgyAAA + AKAAAABjAAAAMAAAABYAAAANAAAADAAAABlLOTZuwqKU+Myejf/ph4X/7IaG/+yGhv/shob/7IaG/+yG + hv/shob/7IaG/+yGhv/shob/olxc5wAAAKwAAABWAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACZZmZAza2f/8qql//Gmof/6YOD/+mDg//pg4P/6YOD/+KJhf/hh4P/6YOD/+mDg//pg4P/6YOD/+mD + g//pg4P/6YOD/4VKSt8nFha9AAAApgAAAIsAAABtAAAAZ1hHQqq+moz61pKI/+aEg//pg4P/6YOD/+mD + g//pg4P/6YOD/+mDg//pg4P/6YOD/+mDg//pg4P/6YOD/5dVVdwAAABLAAAACQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAt5CIwNCxoP/GpI//1o2D/+F9fdXKdXWXy6GV/8url//EnYn/5YOB/+eB + gf/ngYH/54GB/+eBgf/ngYH/54GB/+eBgf/ngYH/xW5u85JRUeGHS0varWto7N6OiP/ngYH/54GB/+eB + gf/ngYH/54GB/+eBgf/ngYH/54GB/+eBgf/ngYH/54GB/+eBgf/ngYH/54GB/3VBQb4AAAAlAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmWZmMMmqnIKxlINJAAAABgAAAAAAAAAAr4yEmdCy + oP/Foo3/3YR//+V/f//lf3//5X9//+V/f//lf3//5X9//+V/f//lf3//5X9//+V/f//lf3//5X9//+V/ + f//lf3//5X9//+V/f//lf3//5X9//+V/f//lf3//5X9//+V/f//lf3//5X9//+V/f//lf3//23p6+iIT + E2oAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADsY2E2M2tm//Fmof/4nx8/+J8fP/ifHz/4nx8/+J8fP/ifHz/4nx8/+J8fP/ifHz/4nx8/+J8 + fP/ifHz/4nx8/+J8fP/ifHz/4nx8/+J8fP/ifHz/4nx8/+J8fP/ifHz/2Y2G/8uXh//ZhH7/4nx8/+J8 + fP/ifHz/lFFRxAAAACcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAB3UFApyaia/8molP/OjYH/4Hp6/+B6ev/genr/4Hp6/+B6ev/genr/4Hp6/+B6 + ev/genr/4Hp6/+B6ev/genr/4Hp6/+B6ev/genr/4Hp6/+B6ev/genr/4Hp6/+B6ev/genr/wJeN+s6v + nf/GpZD/zZGD/9x+e//VdHTqPSEhOgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcdG970bOh/8Wjjv/Xfnr/3Xd3/913d//dd3f/3Xd3/913 + d//dd3f/3Xd3/913d//dd3f/3Xd3/913d//dd3f/3Xd3/913d//dd3f/3Xd3/913d//dd3f/3Xd3/913 + d//dd3f/ZTY202tPTLTEopbjw6WTtreWgoipW1sqAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1kIfUza2b/8WZhv/bdXX/23V1/9t1 + df/bdXX/23V1/9t1df/Yenj/zol+/9l3dv/bdXX/23V1/9t1df/bdXX/23V1/9t1df/bdXX/23V1/9t1 + df/bdXX/23V1/9t1df/bdXX/olZW6wAAAKEAAAAlAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCn5T/zKyZ/8Sd + if/Uenb/2XNz/9lzc//Zc3P/2XNz/9lzc//TqJr/yKeT/8uKfv/Zc3P/2XNz/9lzc//Zc3P/2XNz/9lz + c//RjYP/zId9/9lzc//Zc3P/2XNz/9lzc//Zc3P/2XNz/xQKCrQAAABCAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACkdXJgyaib/8ysmf/Fnor/z353/9ZwcP/WcHD/1nBw/5FSUr/Fo5b/yqmW/8aSgf/WcHD/1nBw/9Zw + cP/WcHD/1nBw/9Z9ev/Nrpv/w6GL/9B6df/WcHD/1nBw/9ZwcP/WcHD/1nBw/1ovL74AAABJAAAACgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAroN+MMKglODOr53/xaOP/8mIfP/TcW//sVxcvgAAAB/Cn5T/y6yZ/8SY + hf/Ubm7/1G5u/9Rubv/Ubm7/1G5u/8lxcP/QsqL/yqmW/8WVg//Ubm7/1G5u/9Rubv/Ubm7/1G5u/5lP + T5sAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlmZhC1jIWvxqaX4b+fi6e4hXd4hkREGQAA + AAG7lYzhza6b/8Kfif/Ra2v/0Wtr/9Fra//Ra2v/0Wtr/3s/P9mhe3bV0LKh/8alkP/Ig3j/0Wtr/9Fr + a//MaGj1nVBQawAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + KoMAAAATAAAABQAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAelVUP8Skkv7lraT//7m6//+6 + u//4t7X/9bWx//+5uf//ubn//7m5//+5uf//ubr//7m6//+6u///ubr//7m5//+5uf//ubn//7m5//+5 + uf+vf3/hAAAAcgAAACwAAAA2AAAAPQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAGwjIK+0auZ//my + r///trf//7W1//+2tv//trb//7W1//+1tf//trb//rS0//axsP/wtK7/8LGr//izsP//trf//7W2//+1 + tf//tbX//7W1/5xvb+EUEA+wUTs5rmxLS8EIBgaeAAAAQwAAAAcAAAAAAAAAAAAAAAAAAAAAl2NkBsCd + kNnPq5j/8a2n//+ztP//srL//7Ky//+ysv//srL//7Ky//esrPrGioqYxZGOTLePh2XBnZDDzqiY/96r + nv/4r6z//7Kz//+ysv//srL/9aqq+9mZmPTvqKf7/rCw/1U7O8sAAAB7AAAAFgAAAAAAAAAAAAAAAAAA + AACVX2EBoXNwRcGgkuvNqJX/8aql//+vr///rq7//66u//+urv/soaH3bUtLcwAAAA4AAAAAAAAAAAAA + AACsg3xYxKaW5M2mlP/uqaP//6+w//+urv//rq7//66v//+vr///rq7/x4iI7QAAAJkAAAApAAAABAAA + AAAAAAAAAAAAAAAAAAEAAAAXbVFPXL+llO3PpZP/+aqo//+srP//rKz//qur/4teXrYAAAAcAAAAAAAA + AAAAAAAAAAAAAAAAAAC5lIs8xaaW6M2nlP/0qKX//6yt//+srP//rKz//6ys//+srP/6qan8Vzo6hAAA + ABYAAAABAAAAAAAAAAAAAAAATEE7GEExLYZJLzC0tI2D8+KonP/8p6X//6io//+oqP/Zj4/vAAAAXgAA + AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwhX9hx6qY/tWjlP/+p6f//6io//+oqP//qKj//6io/8mE + hMZAKiokAAAAAQAAAAAAAAAAAAAAAAAAAAC9oJCzz56P+P+np///pqb//6Wm//+lpf//paX//6Wl/5Nf + X9QAAAA9AAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZiYwK5k4rAyKqV/+uimv//pab//6Wl//+l + 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 + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.vb new file mode 100644 index 0000000..da32d34 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminMenu.vb @@ -0,0 +1,375 @@ +Imports System.Data.SqlClient +Imports System.Data.SqlTypes +Imports System.Drawing +Imports System.Drawing.Color +Imports System.IO +Public Class frmSysadminMenu + +#Region "Deklarationen" + Const CtrlMask As Byte = 8 + Dim todelete(50) As Integer + Dim itodelete As Integer + Dim ssort As Integer + + Dim msg As New Utils.MyMessage +#End Region + +#Region "Formular" + ''' + ''' Load des Formulars + ''' + ''' + ''' + ''' + Private Sub FrmSysadminMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Dim menu As New db.clsMySysadminfunkion() + menu.LoadTreeMenu(SysMenuTree) + SysMenuTree.ExpandAll() + itodelete = 0 + Me.SysMenuTree.ContextMenu = Me.ContextMenu1 + Me.Height = Me.Parent.ClientSize.Height + End Sub + + ''' + ''' Doppelklick auf einen Eintrag: Es wird geprft, ob in der Tabelle SysadminFunktion im Attribut DomainTable + ''' einen Wert vorhanden ist. Sofern dies der Fall ist, wird der generelle Domain-Table-Editor aufgerufen + ''' + ''' + ''' + ''' + Private Sub SysMenuTree_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles SysMenuTree.DoubleClick + Dim sysadmfnkt As New db.clsSysadminfunktion + Dim wert As String + wert = Me.SysMenuTree.SelectedNode.Tag + If IsNumeric(wert) Then + sysadmfnkt.iSysadminfnktnr = New SqlInt32(CType(wert, Int32)) + sysadmfnkt.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + sysadmfnkt.SelectOne() + Globals.conn.CloseConnection(True) + If sysadmfnkt.sDomaintable.Value.IndexOf(";") > -1 Then + 'Verbindungseditor + Dim s As String = sysadmfnkt.sDomaintable.Value + Dim sArray() As String = s.Split(";") + Dim f As New FrmVerbindungEditor(sArray(0), sArray(1), sArray(2), sysadmfnkt.iSysadminfnktnr.Value) + f.Width = sysadmfnkt.iFwidth.Value + f.Height = sysadmfnkt.iFheight.Value + f.Top = sysadmfnkt.iFtop.Value + f.Left = sysadmfnkt.iFleft.Value + f.MdiParent = Me.MdiParent + f.Text = "Verbindungseditor: " + Me.SysMenuTree.SelectedNode.Text + f.Show() + Else + '20090810 - Externe Tabellen mit dem Domaineditor mutieren + If sysadmfnkt.sDomaintable.Value.IndexOf(":") > -1 Then + Dim s As String = sysadmfnkt.sDomaintable.Value + Dim sarray() As String = s.Split(":") + Dim ofile As System.IO.File + Dim oread As System.IO.StreamReader + Dim scstring As String + oread = ofile.OpenText(Application.StartupPath + "\" + sarray(0)) + sCString = oread.ReadLine + scstring = Crypto.DecryptText(scstring, "HutterundMueller") + scstring = Microsoft.VisualBasic.Left(scstring, Len(scstring) - 1) + oread.Close() + + Dim f As New frmDomainEditorExtTables(sarray(1), scstring) + f.MdiParent = Me.MdiParent + f.Text = "TicketXPert-Tabelle:" + sarray(1) + f.Show() + Else + 'Einzelne Domaintable + + If sysadmfnkt.sDomaintable.Value = "ToolTip-Editor" Then + Dim f As New FrmToolTipEditor + f.MdiParent = Me.MdiParent + f.Show() + Exit Sub + End If + If sysadmfnkt.sDomaintable.Value <> "" Then + Dim f As New frmDomainEditor(sysadmfnkt.sDomaintable.Value) + f.MdiParent = Me.MdiParent + f.Width = sysadmfnkt.iFwidth.Value + f.Height = sysadmfnkt.iFheight.Value + f.Top = sysadmfnkt.iFtop.Value + f.Left = sysadmfnkt.iFleft.Value + f.Text = "Tabellen-Editor: " + Me.SysMenuTree.SelectedNode.Text + f.Show() + End If + End If + End If + sysadmfnkt.Dispose() + End If + End Sub + ''' + ''' Schliessen des Formulares + ''' + ''' + ''' + ''' + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + + ''' + ''' Fenster schliessen + ''' + ''' + ''' + ''' + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub +#End Region + +#Region "SysMenuTree" + ''' + ''' Neuer Eintrag im Menu einfgen + ''' + ''' + ''' + ''' + Private Sub MnuNeuerKnoten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuNeuerKnoten.Click + Dim a As String + Dim tn As New TreeNode() + Dim tnnew As New TreeNode() + a = InputBox(msg.Get_Meldungstext(100)) + If a = "" Then Exit Sub + tn = Me.SysMenuTree.SelectedNode + tnnew = tn.Nodes.Add(a) + With tnnew + .Tag() = 0 + .ImageIndex() = 3 + .SelectedImageIndex() = 3 + End With + tn.ImageIndex = 1 + tn.SelectedImageIndex = 2 + If tn.GetNodeCount(True) > 0 Then + tn.ImageIndex = 1 + tn.SelectedImageIndex = 2 + End If + Me.SysMenuTree.Refresh() + End Sub + ''' + ''' Eintrag im Menu lschen + ''' + ''' + ''' + ''' + Private Sub MnuKnotenLoeschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuKnotenLoeschen.Click + Dim tn As New TreeNode() + Dim tnp As New TreeNode() + Dim i As Integer + tn = Me.SysMenuTree.SelectedNode + tnp = tn.Parent + If Not (Me.SysMenuTree.SelectedNode Is Nothing) Then + itodelete = itodelete + 1 + todelete(itodelete) = tn.Tag + If msg.Show_MessageYesNo(101) = MsgBoxResult.Yes Then + tn.Remove() + End If + If tnp.GetNodeCount(True) = 0 Then + tnp.ImageIndex = 3 + tnp.SelectedImageIndex = 3 + End If + Me.SysMenuTree.Refresh() + End If + End Sub + ''' + ''' Umbenennen des aktuellen Menu-Eintrages + ''' + ''' + ''' + ''' + Private Sub MenuKnotenRename_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuKnotenRename.Click + Dim a As String + a = InputBox("Neuer Name:") + If a = "" Then Exit Sub + Me.SysMenuTree.SelectedNode.Text = a + End Sub + ''' + ''' Menu Sichern + ''' + ''' + ''' + ''' + Private Sub MnuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuSave.Click + Dim i As Integer + conn.OpenConnection() + ListNodeCollectionRecursive(Me.SysMenuTree.Nodes(0), 0) + i = conn.CloseConnection(True) + End Sub + ''' + ''' Knoten rekursiv auslesen + ''' + ''' + ''' + ''' + Private Sub ListNodeCollectionRecursive(ByVal tnParent As TreeNode, ByRef iSort As Integer) + Dim tn As TreeNode + If tnParent.GetNodeCount(False) > 0 Then + tn = tnParent.Nodes(0) + Else + tn = Nothing + End If + ssort = 0 + Do Until tn Is Nothing + iSort = iSort + 1 + ListNodeSave(tn, iSort) + If tn.GetNodeCount(False) > 0 Then + Call ListNodeCollectionRecursive(tn, iSort) + End If + tn = tn.NextNode + Loop + End Sub + ''' + ''' einzelner Knoten sichern + ''' + ''' + ''' + ''' + Private Sub ListNodeSave(ByVal tn As TreeNode, ByRef isort As Integer) + Dim dbkey As New db.clsMyKey_Tabelle() + Dim t As DataTable + Dim key As Long + Dim i As Integer + Dim ftop, fleft, fheight, fwidth As Integer + Dim sDomaintable As String = "" + Dim sKeyfields As String = "" + Dim sysadmfnkt As New db.clsSysadminfunktion + dbkey.cpMainConnectionProvider = conn + sysadmfnkt.cpMainConnectionProvider = conn + If tn.Tag <> 0 Then + sysadmfnkt.iSysadminfnktnr = New SqlInt32(CType(tn.Tag, Int32)) + sysadmfnkt.SelectOne() + ftop = sysadmfnkt.iFtop.Value + fleft = sysadmfnkt.iFleft.Value + fwidth = sysadmfnkt.iFwidth.Value + fheight = sysadmfnkt.iFheight.Value + sDomaintable = sysadmfnkt.sDomaintable.Value + sKeyfields = sysadmfnkt.sKeyFields.Value + End If + sysadmfnkt.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + sysadmfnkt.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) + sysadmfnkt.sBezeichnung = New SqlString(CType(tn.Text, String)) + sysadmfnkt.sBeschreibung = New SqlString(CType("", String)) + sysadmfnkt.iParentID = New SqlInt32(CType(tn.Parent.Tag, Int32)) + sysadmfnkt.iImageIndex = New SqlInt32(CType(tn.ImageIndex, Int32)) + sysadmfnkt.iImageIndexOpen = New SqlInt32(CType(tn.SelectedImageIndex, Int32)) + sysadmfnkt.iSort = New SqlInt32(CType(isort, Int32)) + sysadmfnkt.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + sysadmfnkt.bAktiv = New SqlBoolean(CType(True, Boolean)) + sysadmfnkt.iSprache = New SqlInt32(CType(1, Int32)) + sysadmfnkt.iMandantnr = New SqlInt32(CType(Globals.clsmitarbeiter.iMandantnr.Value, Int32)) + sysadmfnkt.iFtop = New SqlInt32(CType(ftop, Int32)) + sysadmfnkt.iFleft = New SqlInt32(CType(fleft, Int32)) + sysadmfnkt.iFwidth = New SqlInt32(CType(fwidth, Int32)) + sysadmfnkt.iFheight = New SqlInt32(CType(fheight, Int32)) + sysadmfnkt.sDomaintable = New SqlString(CType(sDomaintable, String)) + sysadmfnkt.sKeyFields = New SqlString(CType(sKeyfields, String)) + + If tn.Tag <> 0 Then + sysadmfnkt.iSysadminfnktnr = New SqlInt32(CType(tn.Tag, Int32)) + sysadmfnkt.Update() + Else + key = dbkey.get_dbkey("sysadminfunktion") + conn.OpenConnection() + sysadmfnkt.iSysadminfnktnr = New SqlInt32(CType(key, Int32)) + sysadmfnkt.Insert() + tn.Tag = key + End If + + For i = 1 To itodelete + sysadmfnkt.iSysadminfnktnr = New SqlInt32(CType(todelete(i), Int32)) + t = sysadmfnkt.SelectOne + If t.Rows.Count > 0 Then + sysadmfnkt.Delete() + End If + Next + End Sub + + Private Sub SysMenutree_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles SysMenuTree.DragEnter + If (e.Data.GetDataPresent("System.Windows.Forms.TreeNode")) Then + If (e.KeyState And CtrlMask) = CtrlMask Then + e.Effect = DragDropEffects.Copy + Else + e.Effect = DragDropEffects.Move + End If + Else + e.Effect = DragDropEffects.None + End If + End Sub + + Private Sub SysMenuTree_ItemDrag(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles SysMenuTree.ItemDrag + If e.Button = MouseButtons.Left Then + DoDragDrop(e.Item, DragDropEffects.Move Or DragDropEffects.Copy) + End If + End Sub + + Private Sub SysMenuTree_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles SysMenuTree.DragDrop + Dim OriginationNode As TreeNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode) + + If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", False) Then + Dim pt As Point + Dim DestinationNode As TreeNode + pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y)) + DestinationNode = CType(sender, TreeView).GetNodeAt(pt) + DestinationNode.Nodes.Add(CType(OriginationNode.Clone, TreeNode)) + DestinationNode.Expand() + If (e.KeyState And CtrlMask) <> CtrlMask Then + OriginationNode.Remove() + End If + End If + End Sub + +#End Region + +#Region "Spaltentitel generieren" + ''' + ''' Generiert die Spaltentitel in der Tabelle Spalten aufgrund der im Formular frmSysadminTableSelector gewhlten Tabelle + ''' + ''' + ''' + ''' + Private Sub SpaltentitelGenerierenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpaltentitelGenerierenToolStripMenuItem.Click + Dim f As New frmSysadminTableSelector() + Dim tablename As String + tablename = (f.get_tablename()) + If tablename = "" Then Exit Sub + Generate_Data(tablename) + End Sub + ''' + ''' Ruft die SP zur Spalten-Generierung auf + ''' + ''' + ''' + Private Sub Generate_Data(ByVal tablename As String) + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dttable As New DataTable(tablename) + scmCmdToExecute.CommandText = "dbo.[sp_update_spalten]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@Tablename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, tablename)) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + Return + Catch ex As Exception + Throw New Exception(msg.Get_Meldungstext(103), ex) + Finally + scmCmdToExecute.Connection.Close() + End Try + End Sub +#End Region + + Private Sub FrmSysadminMenu_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize + If Me.Width > 300 Then Me.Width = 300 + End Sub + + + + Private Sub SysMenuTree_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles SysMenuTree.AfterSelect + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.resx new file mode 100644 index 0000000..df31b27 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.resx @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + False + + + False + + + 0, 0 + + + 152, 17 + + + False + + + False + + + 0, 0 + + + 280, 17 + + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAzd3d3MzMzAAAAAAAAAAAAM3d3dzMzMwAAAAAAAAAAM3eIiIi7MzMzAAAAAAAA + ADN3iIiIuzMzMwAAAAAAAAB3u4iIiLu7MzMAAAAAAAAAd7uIiIi7uzMzAAAAAAAAAHe7iIiIu7szMwAA + AAAAAAB3u4iIiLu7MzMAAAAAAAAAd7uIiIi7uzMzAAAAAAAAAHe7iIiIu7szMwAAAAAAAAB3u4iIiLu7 + MzMAAAAAAAAAd7uIiIi7uzMzAAAAAAAAAHe7iIiIu7szMwAAAAAAAAB3u4iIiLu7MzMAAAAAAAAAd7uI + iIi7uzMzAAAAAAAAAHe7iIiIu7szMwAAAAAAAAB3u4iIiLu7MzMAAAAAAAAAd7uIiIi7uzMzAAAAAAAA + AHe7iIiIiIi7dwAAAAAAAAB3u4iIiIiIu3cAAAAAAAAAiIj//////4h3AAAAAAAAAIiI//////+IdwAA + AAAAAAAzd3d3d3d3dzMAAAAAAAAAM3d3d3d3d3czAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////AAA//wA + AP/8AAD//AAA//wAAP/8AAD//AAA//wAAP/8AAD//AAA//wAAP/8AAD//AAA//wAAP/8AAD//AAA//wA + AP/8AAD//AAA//wAAP/8AAD//AAA//wAAP/8AAD//////////////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.vb new file mode 100644 index 0000000..c48989a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmSysadminTableSelector.vb @@ -0,0 +1,145 @@ +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class frmSysadminTableSelector + Inherits System.Windows.Forms.Form + +#Region " Vom Windows Form Designer generierter Code " + + Public Sub New() + MyBase.New() + + ' Dieser Aufruf ist fr den Windows Form-Designer erforderlich. + InitializeComponent() + + ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufgen + + End Sub + + ' Die Form berschreibt den Lschvorgang der Basisklasse, um Komponenten zu bereinigen. + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + If Not (components Is Nothing) Then + components.Dispose() + End If + End If + MyBase.Dispose(disposing) + End Sub + + ' Fr Windows Form-Designer erforderlich + Private components As System.ComponentModel.IContainer + + 'HINWEIS: Die folgende Prozedur ist fr den Windows Form-Designer erforderlich + 'Sie kann mit dem Windows Form-Designer modifiziert werden. + 'Verwenden Sie nicht den Code-Editor zur Bearbeitung. + Friend WithEvents SqlDataAdapter1 As System.Data.SqlClient.SqlDataAdapter + Friend WithEvents SqlSelectCommand1 As System.Data.SqlClient.SqlCommand + Friend WithEvents SqlInsertCommand1 As System.Data.SqlClient.SqlCommand + Friend WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection + Friend WithEvents DataSet1 As System.Data.DataSet + Friend WithEvents ListBox1 As System.Windows.Forms.ListBox + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSysadminTableSelector)) + Me.SqlDataAdapter1 = New System.Data.SqlClient.SqlDataAdapter + Me.SqlInsertCommand1 = New System.Data.SqlClient.SqlCommand + Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection + Me.SqlSelectCommand1 = New System.Data.SqlClient.SqlCommand + Me.DataSet1 = New System.Data.DataSet + Me.ListBox1 = New System.Windows.Forms.ListBox + CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'SqlDataAdapter1 + ' + Me.SqlDataAdapter1.InsertCommand = Me.SqlInsertCommand1 + Me.SqlDataAdapter1.SelectCommand = Me.SqlSelectCommand1 + Me.SqlDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "sysobjects", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("name", "name"), New System.Data.Common.DataColumnMapping("id", "id"), New System.Data.Common.DataColumnMapping("xtype", "xtype"), New System.Data.Common.DataColumnMapping("uid", "uid"), New System.Data.Common.DataColumnMapping("info", "info"), New System.Data.Common.DataColumnMapping("status", "status"), New System.Data.Common.DataColumnMapping("base_schema_ver", "base_schema_ver"), New System.Data.Common.DataColumnMapping("replinfo", "replinfo"), New System.Data.Common.DataColumnMapping("parent_obj", "parent_obj"), New System.Data.Common.DataColumnMapping("crdate", "crdate"), New System.Data.Common.DataColumnMapping("ftcatid", "ftcatid"), New System.Data.Common.DataColumnMapping("schema_ver", "schema_ver"), New System.Data.Common.DataColumnMapping("stats_schema_ver", "stats_schema_ver"), New System.Data.Common.DataColumnMapping("type", "type"), New System.Data.Common.DataColumnMapping("userstat", "userstat"), New System.Data.Common.DataColumnMapping("sysstat", "sysstat"), New System.Data.Common.DataColumnMapping("indexdel", "indexdel"), New System.Data.Common.DataColumnMapping("refdate", "refdate"), New System.Data.Common.DataColumnMapping("version", "version"), New System.Data.Common.DataColumnMapping("deltrig", "deltrig"), New System.Data.Common.DataColumnMapping("instrig", "instrig"), New System.Data.Common.DataColumnMapping("updtrig", "updtrig"), New System.Data.Common.DataColumnMapping("seltrig", "seltrig"), New System.Data.Common.DataColumnMapping("category", "category"), New System.Data.Common.DataColumnMapping("cache", "cache")})}) + ' + 'SqlInsertCommand1 + ' + Me.SqlInsertCommand1.CommandText = "[pv_sysobjects_insert]" + Me.SqlInsertCommand1.CommandType = System.Data.CommandType.StoredProcedure + Me.SqlInsertCommand1.Connection = Me.SqlConnection1 + Me.SqlInsertCommand1.Parameters.AddRange(New System.Data.SqlClient.SqlParameter() {New System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, False, CType(0, Byte), CType(0, Byte), "", System.Data.DataRowVersion.Current, Nothing), New System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.NVarChar, 128, "name"), New System.Data.SqlClient.SqlParameter("@id", System.Data.SqlDbType.Int, 4, "id"), New System.Data.SqlClient.SqlParameter("@xtype", System.Data.SqlDbType.VarChar, 2, "xtype"), New System.Data.SqlClient.SqlParameter("@uid", System.Data.SqlDbType.Int, 2, "uid"), New System.Data.SqlClient.SqlParameter("@info", System.Data.SqlDbType.Int, 2, "info"), New System.Data.SqlClient.SqlParameter("@status", System.Data.SqlDbType.Int, 4, "status"), New System.Data.SqlClient.SqlParameter("@base_schema_ver", System.Data.SqlDbType.Int, 4, "base_schema_ver"), New System.Data.SqlClient.SqlParameter("@replinfo", System.Data.SqlDbType.Int, 4, "replinfo"), New System.Data.SqlClient.SqlParameter("@parent_obj", System.Data.SqlDbType.Int, 4, "parent_obj"), New System.Data.SqlClient.SqlParameter("@crdate", System.Data.SqlDbType.DateTime, 8, "crdate"), New System.Data.SqlClient.SqlParameter("@ftcatid", System.Data.SqlDbType.Int, 2, "ftcatid")}) + ' + 'SqlConnection1 + ' + Me.SqlConnection1.ConnectionString = "data source=shu;initial catalog=edoka;persist security info=False;user id=sa;work" & _ + "station id=SHU;packet size=4096" + Me.SqlConnection1.FireInfoMessageEventOnUserErrors = False + ' + 'SqlSelectCommand1 + ' + Me.SqlSelectCommand1.CommandText = "[pv_sysobjects_select]" + Me.SqlSelectCommand1.CommandType = System.Data.CommandType.StoredProcedure + Me.SqlSelectCommand1.Connection = Me.SqlConnection1 + Me.SqlSelectCommand1.Parameters.AddRange(New System.Data.SqlClient.SqlParameter() {New System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, False, CType(0, Byte), CType(0, Byte), "", System.Data.DataRowVersion.Current, Nothing)}) + ' + 'DataSet1 + ' + Me.DataSet1.DataSetName = "NewDataSet" + Me.DataSet1.Locale = New System.Globalization.CultureInfo("de-CH") + ' + 'ListBox1 + ' + Me.ListBox1.Location = New System.Drawing.Point(8, 16) + Me.ListBox1.Name = "ListBox1" + Me.ListBox1.Size = New System.Drawing.Size(240, 316) + Me.ListBox1.TabIndex = 0 + ' + 'frmSysadminTableSelector + ' + Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) + Me.ClientSize = New System.Drawing.Size(256, 349) + Me.Controls.Add(Me.ListBox1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmSysadminTableSelector" + Me.Text = "Tabelle auswhlen" + CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + +#End Region + + Private Sub frmSysadminTableSelector_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "dbo.sp_sysobjects_select" + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + + + Dim i As Integer + For i = 0 To ds.Tables(0).Rows.Count - 1 + Me.ListBox1.Items.Add(ds.Tables(0).Rows(i)(0)) + Next + Me.SqlConnection1.Close() + End Sub + + Private Sub listbox1_dblclick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick + Close() + End Sub + + Public Function get_tablename() As String + get_tablename = "" + Me.ShowDialog() + Return Me.ListBox1.SelectedItem + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.designer.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.designer.vb new file mode 100644 index 0000000..e5655bb --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.designer.vb @@ -0,0 +1,342 @@ + _ +Partial Class frmVerbindungEditor + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmVerbindungEditor)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton + Me.TSBtnSave = New System.Windows.Forms.ToolStripButton + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer + Me.GrpBoxLeft = New System.Windows.Forms.GroupBox + Me.C1DatenLeft = New C1.Win.C1TrueDBGrid.C1TrueDBGrid + Me.GrpBoxRight = New System.Windows.Forms.GroupBox + Me.C1DatenRight = New C1.Win.C1TrueDBGrid.C1TrueDBGrid + Me.Panel1 = New System.Windows.Forms.Panel + Me.BtnFocusRight = New System.Windows.Forms.Button + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.BtnFocusLeft = New System.Windows.Forms.Button + Me.BtnVerbinden = New System.Windows.Forms.Button + Me.GrpBoxBottom = New System.Windows.Forms.GroupBox + Me.C1DatenBottom = New C1.Win.C1TrueDBGrid.C1TrueDBGrid + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + Me.GrpBoxLeft.SuspendLayout() + CType(Me.C1DatenLeft, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GrpBoxRight.SuspendLayout() + CType(Me.C1DatenRight, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + Me.GrpBoxBottom.SuspendLayout() + CType(Me.C1DatenBottom, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(953, 25) + Me.ToolStrip1.TabIndex = 3 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnSave + ' + Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) + Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSave.Name = "TSBtnSave" + Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSave.Text = "ToolStripButton1" + Me.TSBtnSave.ToolTipText = "Daten speichern" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(953, 24) + Me.MenuStrip1.TabIndex = 2 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(44, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(117, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + Me.SplitContainer1.Panel1.Controls.Add(Me.Panel1) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.GrpBoxBottom) + Me.SplitContainer1.Size = New System.Drawing.Size(953, 466) + Me.SplitContainer1.SplitterDistance = 276 + Me.SplitContainer1.TabIndex = 4 + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.GrpBoxLeft) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.GrpBoxRight) + Me.SplitContainer2.Size = New System.Drawing.Size(953, 243) + Me.SplitContainer2.SplitterDistance = 467 + Me.SplitContainer2.TabIndex = 1 + ' + 'GrpBoxLeft + ' + Me.GrpBoxLeft.Controls.Add(Me.C1DatenLeft) + Me.GrpBoxLeft.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpBoxLeft.Location = New System.Drawing.Point(0, 0) + Me.GrpBoxLeft.Name = "GrpBoxLeft" + Me.GrpBoxLeft.Size = New System.Drawing.Size(467, 243) + Me.GrpBoxLeft.TabIndex = 0 + Me.GrpBoxLeft.TabStop = False + Me.GrpBoxLeft.Text = "GroupBox1" + ' + 'C1DatenLeft + ' + Me.C1DatenLeft.AlternatingRows = True + Me.C1DatenLeft.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1DatenLeft.FilterBar = True + Me.C1DatenLeft.GroupByCaption = "Drag a column header here to group by that column" + Me.C1DatenLeft.Images.Add(CType(resources.GetObject("C1DatenLeft.Images"), System.Drawing.Image)) + Me.C1DatenLeft.Location = New System.Drawing.Point(3, 16) + Me.C1DatenLeft.Name = "C1DatenLeft" + Me.C1DatenLeft.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1DatenLeft.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1DatenLeft.PreviewInfo.ZoomFactor = 75 + Me.C1DatenLeft.PrintInfo.PageSettings = CType(resources.GetObject("C1DatenLeft.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1DatenLeft.Size = New System.Drawing.Size(461, 224) + Me.C1DatenLeft.TabIndex = 4 + Me.C1DatenLeft.Text = "C1TrueDBGrid1" + Me.C1DatenLeft.PropBag = resources.GetString("C1DatenLeft.PropBag") + ' + 'GrpBoxRight + ' + Me.GrpBoxRight.Controls.Add(Me.C1DatenRight) + Me.GrpBoxRight.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpBoxRight.Location = New System.Drawing.Point(0, 0) + Me.GrpBoxRight.Name = "GrpBoxRight" + Me.GrpBoxRight.Size = New System.Drawing.Size(482, 243) + Me.GrpBoxRight.TabIndex = 1 + Me.GrpBoxRight.TabStop = False + Me.GrpBoxRight.Text = "GroupBox1" + ' + 'C1DatenRight + ' + Me.C1DatenRight.AlternatingRows = True + Me.C1DatenRight.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1DatenRight.FilterBar = True + Me.C1DatenRight.GroupByCaption = "Drag a column header here to group by that column" + Me.C1DatenRight.Images.Add(CType(resources.GetObject("C1DatenRight.Images"), System.Drawing.Image)) + Me.C1DatenRight.Location = New System.Drawing.Point(3, 16) + Me.C1DatenRight.Name = "C1DatenRight" + Me.C1DatenRight.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1DatenRight.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1DatenRight.PreviewInfo.ZoomFactor = 75 + Me.C1DatenRight.PrintInfo.PageSettings = CType(resources.GetObject("C1DatenRight.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1DatenRight.Size = New System.Drawing.Size(476, 224) + Me.C1DatenRight.TabIndex = 4 + Me.C1DatenRight.Text = "C1TrueDBGrid1" + Me.C1DatenRight.PropBag = resources.GetString("C1DatenRight.PropBag") + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.BtnFocusRight) + Me.Panel1.Controls.Add(Me.BtnFocusLeft) + Me.Panel1.Controls.Add(Me.BtnVerbinden) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel1.Location = New System.Drawing.Point(0, 243) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(953, 33) + Me.Panel1.TabIndex = 0 + ' + 'BtnFocusRight + ' + Me.BtnFocusRight.ImageIndex = 2 + Me.BtnFocusRight.ImageList = Me.ImageList1 + Me.BtnFocusRight.Location = New System.Drawing.Point(920, 3) + Me.BtnFocusRight.Name = "BtnFocusRight" + Me.BtnFocusRight.Size = New System.Drawing.Size(30, 23) + Me.BtnFocusRight.TabIndex = 2 + Me.BtnFocusRight.UseVisualStyleBackColor = True + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "Kette3.ico") + Me.ImageList1.Images.SetKeyName(1, "Haken1.ico") + Me.ImageList1.Images.SetKeyName(2, "Haken2.ico") + ' + 'BtnFocusLeft + ' + Me.BtnFocusLeft.ImageIndex = 1 + Me.BtnFocusLeft.ImageList = Me.ImageList1 + Me.BtnFocusLeft.Location = New System.Drawing.Point(6, 4) + Me.BtnFocusLeft.Name = "BtnFocusLeft" + Me.BtnFocusLeft.Size = New System.Drawing.Size(30, 23) + Me.BtnFocusLeft.TabIndex = 1 + Me.BtnFocusLeft.UseVisualStyleBackColor = True + ' + 'BtnVerbinden + ' + Me.BtnVerbinden.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.BtnVerbinden.ImageIndex = 0 + Me.BtnVerbinden.ImageList = Me.ImageList1 + Me.BtnVerbinden.Location = New System.Drawing.Point(430, 4) + Me.BtnVerbinden.Name = "BtnVerbinden" + Me.BtnVerbinden.Size = New System.Drawing.Size(84, 23) + Me.BtnVerbinden.TabIndex = 0 + Me.BtnVerbinden.Text = "Verbinden" + Me.BtnVerbinden.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.BtnVerbinden.UseVisualStyleBackColor = True + ' + 'GrpBoxBottom + ' + Me.GrpBoxBottom.Controls.Add(Me.C1DatenBottom) + Me.GrpBoxBottom.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpBoxBottom.Location = New System.Drawing.Point(0, 0) + Me.GrpBoxBottom.Name = "GrpBoxBottom" + Me.GrpBoxBottom.Size = New System.Drawing.Size(953, 186) + Me.GrpBoxBottom.TabIndex = 2 + Me.GrpBoxBottom.TabStop = False + Me.GrpBoxBottom.Text = "GroupBox1" + ' + 'C1DatenBottom + ' + Me.C1DatenBottom.AlternatingRows = True + Me.C1DatenBottom.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1DatenBottom.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1DatenBottom.FilterBar = True + Me.C1DatenBottom.GroupByCaption = "Drag a column header here to group by that column" + Me.C1DatenBottom.Images.Add(CType(resources.GetObject("C1DatenBottom.Images"), System.Drawing.Image)) + Me.C1DatenBottom.Location = New System.Drawing.Point(3, 16) + Me.C1DatenBottom.Name = "C1DatenBottom" + Me.C1DatenBottom.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1DatenBottom.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1DatenBottom.PreviewInfo.ZoomFactor = 75 + Me.C1DatenBottom.PrintInfo.PageSettings = CType(resources.GetObject("C1DatenBottom.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1DatenBottom.Size = New System.Drawing.Size(947, 167) + Me.C1DatenBottom.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1DatenBottom.TabIndex = 4 + Me.C1DatenBottom.Text = "C1TrueDBGrid1" + Me.C1DatenBottom.PropBag = resources.GetString("C1DatenBottom.PropBag") + ' + 'frmVerbindungEditor + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(953, 515) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmVerbindungEditor" + Me.Text = "VerbindungEditor" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + Me.SplitContainer1.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.ResumeLayout(False) + Me.GrpBoxLeft.ResumeLayout(False) + CType(Me.C1DatenLeft, System.ComponentModel.ISupportInitialize).EndInit() + Me.GrpBoxRight.ResumeLayout(False) + CType(Me.C1DatenRight, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.GrpBoxBottom.ResumeLayout(False) + CType(Me.C1DatenBottom, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents SplitContainer2 As System.Windows.Forms.SplitContainer + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents GrpBoxLeft As System.Windows.Forms.GroupBox + Friend WithEvents GrpBoxRight As System.Windows.Forms.GroupBox + Friend WithEvents GrpBoxBottom As System.Windows.Forms.GroupBox + Friend WithEvents BtnVerbinden As System.Windows.Forms.Button + Friend WithEvents ImageList1 As System.Windows.Forms.ImageList + Friend WithEvents BtnFocusRight As System.Windows.Forms.Button + Friend WithEvents BtnFocusLeft As System.Windows.Forms.Button + Friend WithEvents TSBtnSave As System.Windows.Forms.ToolStripButton + Friend WithEvents C1DatenLeft As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents C1DatenRight As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents C1DatenBottom As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.resx b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.resx new file mode 100644 index 0000000..1125b58 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.resx @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 227, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKNJREFUOE+VkwEO + wCAIA93PeZo/cyKiiMDYEmNC7FGpe4r9NaeeLjcAuFZXjxp+tVZs4jY6xFoIQCALwMR1QHYkVyTGXQNk + YQHQrhRJiAS00g/OwrET4OysHZDYWn1IGQet4EBCQOwAsyUIxWJcoYzYcHkzIMjOVQ1xw6MUGDJ2zjkz + A+t5Xg6sKMOXyFfyHKgru//IjHGnkBUycb2Dv8IF+BK+MTpb49UVguoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAF5JREFUOE9jPHDg + wH8GSgDUAJAhJGOwXpgBDQ0QA0B8fBimBk6TYwDMtWS7ANm1ZHlhEBsAcxq+KAWpwekFmCQxNNZoJMYF + II14XYDL+bDENUgNIDdDwZMyoQyETx4A+Fj5YOUZcUAAAAAASUVORK5CYII= + + + + 329, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADdJREFUKFNjYMAE + /7GIgYWQJXCxURTCFOE1ESSJoQAmiI9GcSayQqzuR3cLVithOvH6DpsisBgAoKoc5C8W7oEAAAAASUVO + RK5CYII= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMEAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQAAAAAICAgIAgAAAGQAAABkAAAAZAAAAGQAAAABCgAAAAEAAAAJAwAAAAHz/////P///wAK + CgoB8v////z///8ACQ8AAAABDwAAAAYAAABkAAAAZAAAAGQAAABkAAAACw== + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style5{}RecordSelector{AlignImage:Center;}Heading{Wrap:True;AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;}Style6{}Group{BackColor:ControlDark;Border:None,,0, 0, 0, 0;AlignVert:Center;}Style8{}Footer{}Style13{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style12{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Editor{}Style4{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}EvenRow{BackColor:White;}Style11{}Style16{}Style1{}Caption{AlignHorz:Center;}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style9{}Style2{}Style14{}Normal{}Style7{}Style15{}Style10{AlignHorz:Near;}Style3{}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="16" DefRecSelWidth="16" VerticalScrollGroup="1" HorizontalScrollGroup="1"><Height>222</Height><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 459, 222</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>16</DefaultRecSelWidth><ClientArea>0, 0, 459, 222</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADdJREFUKFNjYMAE + /7GIgYWQJXCxURTCFOE1ESSJoQAmiI9GcSayQqzuR3cLVithOvH6DpsisBgAoKoc5C8W7oEAAAAASUVO + RK5CYII= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMEAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQAAAAAICAgIAgAAAGQAAABkAAAAZAAAAGQAAAABCgAAAAEAAAAJAwAAAAHz/////P///wAK + CgoB8v////z///8ACQ8AAAABDwAAAAYAAABkAAAAZAAAAGQAAABkAAAACw== + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style5{}RecordSelector{AlignImage:Center;}Heading{Wrap:True;AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;}Style6{}Group{BackColor:ControlDark;Border:None,,0, 0, 0, 0;AlignVert:Center;}Style8{}Footer{}Style13{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style12{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Editor{}Style4{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}EvenRow{BackColor:White;}Style11{}Style16{}Style1{}Caption{AlignHorz:Center;}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style9{}Style2{}Style14{}Normal{}Style7{}Style15{}Style10{AlignHorz:Near;}Style3{}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="16" DefRecSelWidth="16" VerticalScrollGroup="1" HorizontalScrollGroup="1"><Height>222</Height><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 474, 222</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>16</DefaultRecSelWidth><ClientArea>0, 0, 474, 222</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 437, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA6 + CAAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/6IADewzAA3sMwAC7AkA + AuwzAALsAwAB7AUAAuwUAAUHAgAFBxMAAuwCAAPsBAAC7BMAAgcKAAIHEgAC7AEABewDAALsEwABBwMA + BgcDAAEHEgAC7AEAAuwBAAPsAgAC7BMAAgcKAAIHEgAC7AEAAewDAAPsAQAC7BQABQcCAAUHEwAC7AYA + AuwBAALsMwAC7AcAAewBAALsMwAC7AkAAuwzAA3sMwAN7FIAAUIBTQE+BwABPgMAASgDAAFAAwABEAMA + AQEBAAEBBQABgBcAA/8BAAb/AgAG/wIAAv8BgAEDAYABAwIAAv8BgAEDAYABAwIAAv8BnwHzAZ8B8wIA + AcEBgwGdAfMBnQHzAgABgAEBAZgB8wGYAfMEAAGQAXMBkAFzAgABEAEIAZIBMwGSATMEAAGXARMBlwET + AgABgAEBAZ8BkwGfAZMCAAHBAYMBnwHTAZ8B0wIAAv8BnwHzAZ8B8wIAAv8BgAEDAYABAwIAAv8BgAED + AYABAwIABv8CAAs= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADdJREFUKFNjYMAE + /7GIgYWQJXCxURTCFOE1ESSJoQAmiI9GcSayQqzuR3cLVithOvH6DpsisBgAoKoc5C8W7oEAAAAASUVO + RK5CYII= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMEAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQAAAAAICAgIAgAAAGQAAABkAAAAZAAAAGQAAAABCgAAAAEAAAAJAwAAAAHz/////P///wAK + CgoB8v////z///8ACQ8AAAABDwAAAAYAAABkAAAAZAAAAGQAAABkAAAACw== + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style5{}RecordSelector{AlignImage:Center;}Heading{Wrap:True;AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;}Style6{}Group{BackColor:ControlDark;Border:None,,0, 0, 0, 0;AlignVert:Center;}Style8{}Footer{}Style13{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style12{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Editor{}Style4{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}EvenRow{BackColor:White;}Style11{}Style16{}Style1{}Caption{AlignHorz:Center;}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style9{}Style2{}Style14{}Normal{}Style7{}Style15{}Style10{AlignHorz:Near;}Style3{}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="16" DefRecSelWidth="16" VerticalScrollGroup="1" HorizontalScrollGroup="1"><Height>165</Height><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 945, 165</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>16</DefaultRecSelWidth><ClientArea>0, 0, 945, 165</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACIiIiIiAAAiIiIiIgAAAAAiIiIiIgAAIiIiIiIAAAAiIgAAAAAAAAA + AAAAiIgAAIiIAAAAAAAAAAAAAIiIAACIAAAAiIiIiIiIAAAAiAAAiAAAAIiIiIiIiAAAAIgAAIiIAAAA + AAAAAAAAAIiIAACIiAAAAAAAAAAAAACIiAAAAIiIiIiIAACIiIiIiAAAAACIiIiIiAAAiIiIiIgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////// + ////////////////////////8APAD/ADwA/AAAADwAAAAwAAAAAAAAAAAwAAwAMAAMAAAAAAAAAAAMAA + AAPAAAAD8APAD/ADwA///////////////////////////////////////////w== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.vb b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.vb new file mode 100644 index 0000000..bb5bdc9 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Sysadmin/frmVerbindungEditor.vb @@ -0,0 +1,316 @@ +''' +''' Verbindungseditor: Verbindet 2 Domain-Tables in einer dritten Tabelle. +''' +''' +''' +Public Class frmVerbindungEditor + +#Region "Deklarationen" + Dim Fokus As Integer = 1 + Dim Domaintableleft As Sysadmin.DomainTable + Dim Domaintableright As Sysadmin.DomainTable + Dim domaintablebottom As Sysadmin.DomainTable + Dim SpaltenTitel As New Utils.Tabellenspalte + Dim SysadminfunktionNr As Integer + + Dim TablenameLeft As String + Dim TablenameRight As String + Dim TablenameBottom As String + Dim first As Boolean = True + + Dim msg As New Utils.MyMessage +#End Region + + ''' + ''' Laden der linken und rechten Tabelle + ''' + ''' + ''' + ''' + ''' + ''' + Public Sub New(ByVal TableLeft As String, ByVal TableRight As String, ByVal TableBottom As String, ByVal SysadminfnktNr As Integer) + InitializeComponent() + Me.Domaintableleft = New Sysadmin.DomainTable(TableLeft) + Me.Domaintableright = New Sysadmin.DomainTable(TableRight) + Me.TablenameLeft = TableLeft + Me.TablenameRight = TableRight + Me.TablenameBottom = TableBottom + Me.SysadminfunktionNr = SysadminfnktNr + End Sub + ''' + ''' Laden smlticher Tabellen + ''' + ''' + ''' + ''' + Private Sub FrmVerbindungEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.C1DatenLeft.DataSource = Domaintableleft.Tabledata + Me.C1DatenLeft.DataMember = Domaintableleft.Tabledata.Tables(0).TableName + + Me.C1DatenRight.DataSource = Domaintableright.Tabledata + Me.C1DatenRight.DataMember = Domaintableright.Tabledata.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenLeft, TablenameLeft, Me.Domaintableleft.Tabledata) + SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenRight, TablenameRight, Me.Domaintableright.Tabledata) + + Refresh_Bottomtable() + + Me.C1DatenLeft.AllowAddNew = False + Me.C1DatenLeft.AllowDelete = False + Me.C1DatenLeft.AllowUpdate = False + + Me.C1DatenRight.AllowAddNew = False + Me.C1DatenRight.AllowDelete = False + Me.C1DatenRight.AllowUpdate = False + + Me.C1DatenBottom.AllowAddNew = False + Me.C1DatenBottom.AllowDelete = False + + Me.GrpBoxLeft.Text = Me.TablenameLeft + Me.GrpBoxRight.Text = Me.TablenameRight + Me.GrpBoxBottom.Text = Me.TablenameBottom + first = False + End Sub + ''' + ''' Aktualiserung der Verbindungstabelle + ''' + ''' + Private Sub Refresh_Bottomtable() + Try + check_changes() + Me.domaintablebottom.dispose() + Catch + End Try + + Dim keyvalue As String = "" + + If Fokus = 1 Then + keyvalue = Me.C1DatenLeft.Columns(0).Value + Else + keyvalue = Me.C1DatenRight.Columns(0).Value + End If + Me.domaintablebottom = New Sysadmin.DomainTable(Me.TablenameBottom, Fokus, keyvalue) + Me.C1DatenBottom.DataSource = domaintablebottom.Tabledata + Me.C1DatenBottom.DataMember = domaintablebottom.Tabledata.Tables(0).TableName + SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenBottom, TablenameBottom, Me.domaintablebottom.Tabledata) + End Sub + + + ''' + ''' Linker Fokus-Knopf bettigt + ''' + ''' + ''' + ''' + Private Sub BtnFocusLeft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFocusLeft.Click + Fokus = 1 + Me.BtnFocusLeft.ImageIndex = 1 + Me.BtnFocusRight.ImageIndex = 2 + Refresh_Bottomtable() + End Sub + + ''' + ''' Rechter Fokus-Knopf bettigt + ''' + ''' + ''' + ''' + Private Sub BtnFocusRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFocusRight.Click + Me.Fokus = 2 + Me.BtnFocusRight.ImageIndex = 1 + Me.BtnFocusLeft.ImageIndex = 2 + Refresh_Bottomtable() + End Sub + ''' + ''' Prfung, ob Verbindungstabelle gendert wurde. + ''' + ''' + Private Sub check_changes() + If first Then Exit Sub + Dim msgres As MsgBoxResult + If Me.domaintablebottom.Tabledata.HasChanges Then + msgres = msg.Show_MessageYesNo(3) + If msgres = MsgBoxResult.Yes Then + Me.domaintablebottom.Save_Data() + End If + End If + End Sub + + ''' + ''' Formular schliessen + ''' + ''' + ''' + ''' + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + check_changes() + Me.Close() + End Sub + ''' + ''' Formular schliessen + ''' + ''' + ''' + ''' + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + check_changes() + Me.Close() + End Sub + + ''' + ''' Formular-Resize: Button Verbinden und Button Focus-Rechts neu positionieren + ''' + ''' + ''' + ''' + Private Sub FrmVerbindungEditor_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize + Me.BtnFocusRight.Left = Me.Width - (Me.BtnFocusRight.Width + 10) + Me.BtnVerbinden.Left = Me.SplitContainer2.Panel1.Width - (Me.BtnVerbinden.Width / 2) + End Sub + ''' + ''' Verbindungstabelle sichern + ''' + ''' + ''' + ''' + Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click + Me.domaintablebottom.Save_Data() + End Sub + + ''' + ''' Nach Datenmutation der unteren Tabelle mutiert_am und mutierer nachfhren + ''' + ''' + ''' + ''' + Private Sub C1DatenBottom_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1DatenBottom.AfterColUpdate + Dim i As Integer + For i = 0 To Me.C1DatenBottom.Columns.Count - 1 + If LCase(Me.C1DatenBottom.Columns(i).DataField) = "mutiert_am" Then Me.C1DatenBottom.Columns(i).Value = Now + If LCase(Me.C1DatenBottom.Columns(i).DataField) = "mutierer" Then Me.C1DatenBottom.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value + Next + End Sub + + ''' + ''' Doppelklick in linken Grid + ''' + ''' + ''' + ''' + Private Sub C1DatenLeft_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1DatenLeft.DoubleClick + Try + Me.BtnVerbinden_Click(sender, e) + Catch + End Try + End Sub + ''' + ''' Linke Tabelle angeklickt + ''' + ''' + ''' + ''' + Private Sub TBLeft_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1DatenLeft.RowColChange + Try + check_changes() + Refresh_Bottomtable() + Catch + End Try + End Sub + ''' + ''' Doppelklick im rechten Grid + ''' + ''' + ''' + ''' + Private Sub C1DatenRight_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1DatenRight.DoubleClick + Try + Me.BtnVerbinden_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + ''' + ''' Rechte Tabelle angeklickt + ''' + ''' + ''' + ''' + Private Sub TBRight_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1DatenRight.RowColChange + check_changes() + Refresh_Bottomtable() + End Sub + ''' + ''' Die linke und rechte Domain-Table in der unteren Tabelle verbinden. + ''' Daten sichern und erneut laden + ''' + ''' + ''' + ''' + Private Sub BtnVerbinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVerbinden.Click + check_changes() + Dim ileft As Integer = Me.C1DatenLeft.SelectedRows.Count + Dim iright As Integer = Me.C1DatenRight.SelectedRows.Count + Dim ic As Integer = 0 + Dim Currentsel As Boolean + Dim colrows As C1.Win.C1TrueDBGrid.SelectedRowCollection + Dim keyvalueleft As Integer = 0 + Dim Keyvalueright As Integer = 0 + If (Me.Fokus = 1 And ileft > 1) Or (Me.Fokus = 2 And iright > 1) Then + Me.msg.show_standardmessage(4, MsgBoxStyle.Exclamation) + Exit Sub + End If + If Me.Fokus = 1 Then + ic = iright + colrows = Me.C1DatenRight.SelectedRows + End If + If Me.Fokus = 2 Then + ic = ileft + colrows = Me.C1DatenLeft.SelectedRows + End If + If ic = 0 Then + ic = ic + 1 + Currentsel = True + End If + Dim i As Integer + For i = 0 To ic - 1 + If Me.Fokus = 1 Then + keyvalueleft = Me.C1DatenLeft.Columns(0).Value + If Currentsel = True Then + Keyvalueright = Me.C1DatenRight.Columns(0).Value + Else + Keyvalueright = Me.C1DatenRight.Columns(0).CellValue(colrows(i)) + End If + Else + Keyvalueright = Me.C1DatenRight.Columns(0).Value + If Currentsel = True Then + keyvalueleft = Me.C1DatenLeft.Columns(0).Value + Else + keyvalueleft = Me.C1DatenLeft.Columns(0).CellValue(colrows(i)) + End If + End If + Next + Me.domaintablebottom.Insert_Bottom_Table(Me.Domaintableleft.Tabledata.Tables(0).Columns(0).ColumnName, keyvalueleft, Me.Domaintableright.Tabledata.Tables(0).Columns(0).ColumnName, Keyvalueright) + Me.domaintablebottom.Save_Data() + Me.Refresh_Bottomtable() + End Sub + + ''' + ''' Anzeige allflliger Cellen-Tips + ''' + ''' + ''' + ''' + Private Sub C1DatenBottom_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1DatenBottom.FetchCellTips + Dim ts As New Utils.Tabellenspalte + ts.Tabelle = Me.TablenameBottom + Try + ts.Feld = Me.C1DatenBottom.Columns(e.ColIndex).DataField.ToString + ts.getspalte() + e.CellTip = ts.TipText + Catch + End Try + ts = Nothing + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.Designer.vb b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.Designer.vb new file mode 100644 index 0000000..f0dbdaa --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.Designer.vb @@ -0,0 +1,137 @@ + _ +Partial Class FrmUebersicht + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmUebersicht)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ToolStrip1.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(977, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(977, 24) + Me.MenuStrip1.TabIndex = 5 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(266, 486) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 7 + Me.C1TrueDBGrid1.Text = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'FrmUebersicht + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(977, 688) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Name = "FrmUebersicht" + Me.Text = "Übersicht" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.resx b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.resx new file mode 100644 index 0000000..4a27e86 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.resx @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 349, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK1SURBVDhPnZLdS1NhHMcfCPoDuummi+i6KwcWlYjb3Obx + 7MzN1eY5Z9tJV86Mit5AS3v3rUwtrchhKhVFpVZGWfaiaKQoZiHWiuoivCiiCKSLgk9HjcUu6wcfeH4P + PB+e7+95xP/Ul9eDwZn34z879mTyZ2uhrlTm9nQdyqXnyBxSku7DElcr7DyO7+DzVB+fJm/z/c0Al8qs + qYLuSpm01XZWrbWxOuMv6WutrLSsYzbRR6LnAGMtfr4mnnBlvyNV0FUuk2l1YrNL2B2uJNZsJ+nrbLzq + iDB2XmfkTJDPL+9x/WBOqsDRKJCqF5Fj9yG5FKQcN5Ik43LJZFglptoNRs6FeNocZGasez7qn6NC2GoE + iZlOnKYkN0vD7QygSH4U2Yvs9pDlcPMiHma4RWegsYD3Q5e5U6UsCGzVgskPrbQPCDKrBPZ6gfOUQC5f + ilcJ4snzk53rY/y8xkCTzuzd5Uz3t3Gv1otw1QmevasiPixoHTLXb4sYfRdh4mN4XrLeEyY/P4jkCTB6 + RuVRg8aPvhW8vNNCf71/QfAwsZv4uCA+Jmh7IWifEjz/FsHRJAjmF7EhEMKdrzHcHKD/ZJDW3U4mumt4 + 0hiYj2CxmxF6pzfRmRBkzUU4LnA0CPIqlqGrUVTdwBc0GGz0c//Eem4cUnh2uZKhZjU5REt2raDnrQ/n + SYER2ImhlWKEizGMKBGjkEAoyqN6L3frfPRWexm8sIuRs6GUZ7Q4zSsrdYuJGtuIFpVQFC2ep9BE2xjj + QZ2H3qo8bh710NcSY7w1kiIQHaVr2FxSSklsOyVbtiaJmRQWb+N+rcytYwpdR9zcOhFisq0Qoes6uhZC + 08Ko6hzmWtXMXk2imv2GAp29sQAXKxXzB8pcO5zHVOemhSH+K+V6etnpfWt+vb4YS43wD7XEJE0IYfkN + WuDCfcAVxNMAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIPSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKgAV4rbN70Xmn5332lEWiA + ER4D6hmYzBdq2fiss7EPgGLLPjUn302WH7qulv/vuFLy33me3m37+doOPuss7D2A2GWdib3BImUrsH7h + Ak6T3BPJ//uuNv2feL3h/6Sbdf+n3Kr5330j73/H9cz/rdfS/3dez/3ffb3of9uVgv8NF/P+V57L/h+w + 1/U/Xxy7MoNYLqdFFVCg/3otUHPV/ym3K/5PvVP6v/1m3P+2m9H/W25G/O+6lfy/52bW//br6f8bLqf+ + rzyf/D/soPN/3hA2dQahDBaLiB2C/9MOCf/PPSn0v/CM0P+CM4L/a66Z/W+/4/O/9Y7n//LLOv/zT/P/ + zwPirOP8/5MO8P333coFNIBBnYHTiUFaMp5hs2wywzbFNIZtyulAGojTjkj87Hxg+7/9gdX/sM3iH0Bi + MAxSKx7PsIHPgkEIHA5AwIiC7RlYwg8xval7zPG/7jHXf/flTKBYQFUDwTgAMBoTzzG86XjF8B+EfdYw + kJ4Oci8IvFnwSf7//I/y/8M28pJuQNJe3TdzHnr8B+GAReokGsDAwCSVy7DDsI3hBgiLxTPMg4qTBFgY + VBjYwZiBgRkihA4YGADF/vNbfFD3FAAAAABJRU5ErkJggg== + + + + 456, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{}Style3{}Footer{}Style14{}Heading{Wrap:True;Border:Flat,ControlDark,0, 1, 0, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.vb b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.vb new file mode 100644 index 0000000..0a9c389 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Uebersichten/FrmUebersicht.vb @@ -0,0 +1,3 @@ +Public Class FrmUebersicht + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Utils/Crypto.vb b/SW/20211125/AssessmentMgmt/Utils/Crypto.vb new file mode 100644 index 0000000..258e707 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Utils/Crypto.vb @@ -0,0 +1,34 @@ +Module Crypto + Public Function EncryptText(ByVal strText As String, ByVal strPwd As String) + Dim i As Integer, c As Integer + Dim strBuff As String + + strPwd = UCase$(strPwd) + If Len(strPwd) Then + For i = 1 To Len(strText) + c = Asc(Mid$(strText, i, 1)) + c = c + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1)) + strBuff = strBuff & Chr(c And &HFF) + Next i + Else + strBuff = strText + End If + EncryptText = strBuff + End Function + + Public Function DecryptText(ByVal strText As String, ByVal strPwd As String) + Dim i As Integer, c As Integer + Dim strBuff As String + strPwd = UCase$(strPwd) + If Len(strPwd) Then + For i = 1 To Len(strText) + c = Asc(Mid$(strText, i, 1)) + c = c - Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1)) + strBuff = strBuff & Chr(c And &HFF) + Next i + Else + strBuff = strText + End If + DecryptText = strBuff + End Function +End Module diff --git a/SW/20211125/AssessmentMgmt/Utils/Globals.vb b/SW/20211125/AssessmentMgmt/Utils/Globals.vb new file mode 100644 index 0000000..8892882 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Utils/Globals.vb @@ -0,0 +1,61 @@ +Imports System.IO +Imports System.Reflection +Module Globals + ''' + ''' Applikationsversion + ''' + ''' + Public Version As String = "1.1" + Public Versionsdatum As String = "23. Juli 2017" + + ''' + ''' Applikationsdaten + ''' + ''' + Public Applikationsdaten As DataTable + Public AppldataRow As Integer + + 'Public TTContextMenuStrip As New ContextMenuStrip + + + ''' + ''' Angemelderter Mitarbeiter + ''' + ''' + Public clsmitarbeiter As New DB.clsMitarbeiter + ''' + ''' Applikationsparameter + ''' + ''' + Public clsapplication As New DB.clsApplication + ''' + ''' DB-Verbindungsklasse + ''' + ''' + Public sConnectionString As String + Public conn As New DB.clsConnectionProvider + Public ConnectionFileName As String = "" + Public dbconn As New DB.DB_Connection + + Public SecurityDaten As New DataSet + Public Spaltendaten As New DataTable + Public ToolTipDaten As New DataSet + Public Set_ToolTips As Boolean = False + Public treedata_for_search As New DataTable + + Public GueltigImages As New ImageList + Public StatusImages As New ImageList + + + ''' + ''' Aktueller Applikationspfad + ''' + ''' + ''' + Public Function ApplicationPath() As String + Return Path.GetDirectoryName([Assembly].GetEntryAssembly().Location) + "\" + End Function + + Public WithEvents MyEventHanlder As New MyGenericEventHandler + +End Module diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabe.vb b/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabe.vb new file mode 100644 index 0000000..117e04c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabe.vb @@ -0,0 +1,761 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents + +Public Class clsVorgabe + Inherits DB.clsVorgabe + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iVorgabeID = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Vorgabe") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iVorgabeID = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Vorgabe") + db.Dispose() + Me.iVorgabeID = New SqlInt32(CType(newkey, Int32)) + Me.iParentID = New SqlInt32(CType(0, Int32)) + Me.sBezeichnung = New SqlString(CType("", String)) + Me.sBeschreibung = New SqlString(CType("", String)) + Me.sKapitelNr = New SqlString(CType("", String)) + Me.sKapitelNr = New SqlString(CType("", String)) + Me.sDefinition = New SqlString(CType("", String)) + Me.sErgaenzungen = New SqlString(CType("", String)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iVorgabeID.Value + End Function + + +End Class + +Public Class clsVorgabeTree + +#Region "Deklarationen" + + Dim treedata As New DataSet + + Dim TreeaufbauSuche As Boolean = False + Dim TreeaufbauNr As Integer = 0 + Dim FoundNode As Integer = 0 + Dim Searchstring As String = "" + Public Treesearch As New AdvTree.AdvTree + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim m_imagelist As ImageList + Property imagelist As ImageList + Get + Return m_imagelist + End Get + Set(value As ImageList) + m_imagelist = value + End Set + End Property + + Dim m_pruefplannr As Integer + Property Pruefplannr As Integer + Get + Return m_pruefplannr + End Get + Set(value As Integer) + m_pruefplannr = value + End Set + End Property + + Dim m_Tree_from_Pruefplan As Boolean = False + Property Tree_From_Pruefplan As Boolean + Get + Return m_Tree_from_Pruefplan + End Get + Set(value As Boolean) + m_Tree_from_Pruefplan = value + End Set + End Property + + Dim m_tree_from_massnahmeplan As Boolean = False + Property Tree_from_Massnahmeplan As Boolean + Get + Return m_tree_from_massnahmeplan + End Get + Set(value As Boolean) + m_tree_from_massnahmeplan = value + End Set + End Property + +#End Region + +#Region "Tree" + + Public Sub Load_Treeview(ByRef tree As DevComponents.AdvTree.AdvTree) + tree.Nodes.Clear() + TreeaufbauNr = -1 + If Me.Tree_From_Pruefplan = True Then + load_treedata_pruefplan + Else + If Me.Tree_from_Massnahmeplan = True Then + Load_Treedata_Massnahmeplan() + Else + Load_Treedata("") + + End If + + End If + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", + oDS.Tables(0).Columns("id"), + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + End Sub + + + + + Public Sub Search_Eintraege(ByRef tree As DevComponents.AdvTree.AdvTree, Searchstring As String) + tree.Nodes.Clear() + TreeaufbauNr = -1 + Load_Treedata(Searchstring) + Try + If Not (treedata Is Nothing) Then + Dim oView As DataView = treedata.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", + oDS.Tables(0).Columns("id"), + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + tree.ExpandAll() + End If + Catch + End Try + + End Sub + + + + + Public Function Load_Treedata(ByVal datatype As String) As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_vorgabetree" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = datatype + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + + Public Function Load_Treedata_Pruefplan() As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_vorgabetree_pruefplan" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = Me.Pruefplannr + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + + Public Function Load_Treedata_Massnahmeplan() As DataTable + treedata.Tables.Clear() + Dim selectcommand As New SqlCommand + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + selectcommand.CommandText = "sp_get_vorgabetree_massnahmeplan" + selectcommand.Parameters.Add("@Root", SqlDbType.VarChar) + selectcommand.Parameters(0).Value = Me.Pruefplannr + selectcommand.CommandType = CommandType.StoredProcedure + selectcommand.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = selectcommand + da.Fill(treedata, "Tree") + If treedata_for_search.Rows.Count < 1 Then + For Each c As DataColumn In treedata.Tables(0).Columns + If c.ColumnName = "ErweiterteSuche" Then + Dim dc As New DataColumn + dc.ColumnName = "ErweiterteSuche" + dc.DataType = System.Type.GetType("System.String") + dc.DefaultValue = " " + Try + Globals.treedata_for_search.Columns.Add(dc) + Catch + End Try + Else + Try + Globals.treedata_for_search.Columns.Add(c.ColumnName) + Catch + End Try + End If + Next + End If + For Each row As DataRow In treedata.Tables(0).Rows + Globals.treedata_for_search.ImportRow(row) + Next + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + selectcommand.Dispose() + End Try + End Function + Protected Function GetAllNodes(ByVal treestruktur As DevComponents.AdvTree.AdvTree) As List(Of TreeNode) + + Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)() + + ' start recursion for each root node of the treeview + For i As Integer = 0 To treestruktur.Nodes.Count - 1 + GetAllNodes(treestruktur.Nodes(i), allNodes) + Next + + Return allNodes + + End Function + + Protected Sub GetAllNodes(ByVal subRoot As DevComponents.AdvTree.Node, ByVal allNodes As List(Of TreeNode)) + + ' check for null (this can be removed since within th + If (subRoot Is Nothing) Then + Exit Sub + End If + + ' add subroot + Dim r As DataRow + r = treedata_for_search.NewRow + r.Item(0) = subRoot.Tag + Try + r.Item(1) = subRoot.Parent.Tag + Catch + r.Item(1) = 0 + End Try + + r.Item(2) = subRoot.Text + r.Item(3) = subRoot.ImageIndex + treedata_for_search.Rows.Add(r) + 'allNodes.Add(subRoot) + ' add all it's children + For i As Integer = 0 To subRoot.Nodes.Count - 1 + GetAllNodes(subRoot.Nodes(i), allNodes) + Next + + + End Sub + + + ''' + ''' Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As DevComponents.AdvTree.AdvTree) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + 'If oDataRow.IsNull("Parentid") Then + Dim oNode As New DevComponents.AdvTree.Node + oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) + Try + 'oNode.ToolTipText = Trim(oDataRow("ErweiterteSuche").ToString) + Catch + End Try + oNode.Tag = oDataRow("id").ToString + oNode.ImageIndex = oDataRow("ImageIndex") + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + ''' + ''' Child-Nodes hinzufügen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New DevComponents.AdvTree.Node + oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) + oChildNode.Tag = oChildRow("id").ToString() + oChildNode.ImageIndex = oChildRow("ImageIndex") + + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree(oChildRow, oChildNode) + Next oChildRow + End Sub + Public Function FindNode(ByVal _nodeCollection As AdvTree.NodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As AdvTree.Node + Dim tmpNode As AdvTree.Node + For Each _child As AdvTree.Node In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + + Public Function Init_Search() + FoundNode = 0 + Searchstring = "" + Me.Treesearch.Nodes.Clear() + End Function + + Public Function SearchNode(ByRef tree As AdvTree.AdvTree, ByVal SearchString As String) As AdvTree.Node + 'Return tree.FindNodeByCellText(SearchString) + + Me.Treesearch.Nodes.Clear() + Dim dv As New DataView(treedata_for_search, "", "id,sortkey", DataViewRowState.CurrentRows) + For Each rowView As DataRowView In dv + Dim dr As DataRow = rowView.Row + 'InStr(UCase(SearchString), UCase(dr.Item("Bezeichnung"))) + If InStr(Trim(UCase(dr.Item("Bezeichnung"))), Trim(UCase(SearchString))) > 0 Then + Dim tn As New AdvTree.Node + tn.Text = dr.Item("Bezeichnung") + tn.Tag = dr.Item("id") + Treesearch.Nodes.Add(tn) + End If + Next + Return FindFirst(tree) + End Function + + Public Function FindFirst(ByRef Tree As AdvTree.AdvTree) As AdvTree.Node + Try + If Me.Treesearch.Nodes.Count > 0 Then Me.Treesearch.SelectedNode = Me.Treesearch.Nodes(0) + Return FindNode(Tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch + End Try + End Function + + Public Function FindNextNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.NextNode + If Treesearch.SelectedNode Is Nothing Then + Return FindFirst(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + + End Try + End Function + + Public Function FindPrevNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.SelectedNode.PrevNode + If Treesearch.SelectedNode Is Nothing Then + Return FindLastNode(tree) + End If + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + End Function + + Public Function FindLastNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + Try + Treesearch.SelectedNode = Treesearch.Nodes(Treesearch.Nodes.Count - 1) + Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + Catch ex As Exception + End Try + + End Function + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_Vorgaben" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "Vorgabe", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + + + + +#End Region + +#Region "ComboboxFilter" + Public Sub Refresh_Filter(ByRef cbx As ToolStripComboBox) + Dim s As String + s = cbx.SelectedText.ToString + cbx.Items.Clear() + cbx.Items.Add("-- Alle --") + For Each r As DataRow In treedata.Tables(0).Rows + Try + If r("Parentid") = 0 Then + cbx.Items.Add(r("bezeichnung")) + End If + Catch + End Try + + Next + If s <> "" Then cbx.Text = s + End Sub +#End Region + + '#Region "Suche" + ' Public Function Init_Search() + ' FoundNode = 0 + ' Searchstring = "" + ' Me.Treesearch.Nodes.Clear() + ' End Function + + ' Public Function SearchNode(ByRef tree As AdvTree.AdvTree, ByVal SearchString As String) As AdvTree.Node + ' 'Return tree.FindNodeByCellText(SearchString) + + ' Me.Treesearch.Nodes.Clear() + ' For Each dr As DataRow In treedata_for_search.Rows + ' 'InStr(UCase(SearchString), UCase(dr.Item("Bezeichnung"))) + ' If InStr(UCase(dr.Item("Bezeichnung")), UCase(SearchString)) > 0 Or InStr(UCase(dr.Item("ErweiterteSuche")), UCase(SearchString)) > 0 Then + ' Dim tn As New AdvTree.Node + ' tn.Text = dr.Item("Bezeichnung") + ' tn.Tag = dr.Item("id") + ' Treesearch.Nodes.Add(tn) + ' End If + ' Next + ' Return FindFirst(tree) + ' End Function + + ' Public Function FindFirst(ByRef Tree As AdvTree.AdvTree) As AdvTree.Node + ' Try + ' If Me.Treesearch.Nodes.Count > 0 Then Me.Treesearch.SelectedNode = Me.Treesearch.Nodes(0) + ' Return FindNode(Tree.Nodes, Treesearch.SelectedNode.Tag, "") + ' Catch + ' End Try + ' End Function + + + + ' Public Function FindNextNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + ' Try + ' Treesearch.SelectedNode = Treesearch.SelectedNode.NextNode + ' If Treesearch.SelectedNode Is Nothing Then + ' Return FindFirst(tree) + ' End If + ' Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + ' Catch ex As Exception + + ' End Try + ' End Function + + ' Public Function FindPrevNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + ' Try + ' Treesearch.SelectedNode = Treesearch.SelectedNode.PrevNode + ' If Treesearch.SelectedNode Is Nothing Then + ' Return FindLastNode(tree) + ' End If + ' Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + ' Catch ex As Exception + ' End Try + ' End Function + + ' Public Function FindLastNode(ByRef tree As AdvTree.AdvTree) As AdvTree.Node + ' Try + ' Treesearch.SelectedNode = Treesearch.Nodes(Treesearch.Nodes.Count - 1) + ' Return Me.FindNode(tree.Nodes, Treesearch.SelectedNode.Tag, "") + ' Catch ex As Exception + ' End Try + + ' End Function + + ' Public Function Get_DBObjektname(ByVal type As Integer) As String + ' For Each dr As DataRow In Globals.Objekt.Rows + ' If dr.Item("Objektnr") = type Then + ' Return dr.Item("DBOBject") + ' Exit For + ' End If + ' Next + ' End Function + + + + '#End Region + + + +End Class diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabeDefinition.vb b/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabeDefinition.vb new file mode 100644 index 0000000..c01e5a0 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/clsVorgabeDefinition.vb @@ -0,0 +1,212 @@ +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports DevComponents +Public Class clsVorgabeDefinition + Inherits DB.clsVorgabeDefinition + + + +#Region "Deklarationen" + Public daten As New DataTable + Public Neuer_Datensatz As Boolean = False + Public Mitarbeiterdaten As New DataTable + + Dim stammdaten As New DB.clsStammdaten + Dim SpaltenTitel As New Utils.Tabellenspalte + + Dim mMutierer As String + Property MutiererText() As String + Get + Return mMutierer + End Get + Set(ByVal value As String) + mMutierer = value + End Set + End Property +#End Region + + + Sub New() + MyBase.New() + End Sub + + Public Overloads Sub dispose() + MyBase.Dispose() + Try + Me.stammdaten = Nothing + Catch + End Try + End Sub + + ''' + ''' Mutierer auslesen + ''' + ''' + ''' + Public Function Get_Mutierer(ByVal nr As Integer) As String + Try + Dim ma As New DB.clsMitarbeiter + Dim dt As New DataTable + Dim Retvalue As String + ma.cpMainConnectionProvider = Globals.conn + ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) + dt = ma.SelectOne() + If dt.Rows.Count = 0 Then + Retvalue = ("{" + nr.ToString + "}") + Else + Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString + End If + ma.Dispose() + dt.Dispose() + Return Retvalue + Catch + Return "" + End Try + + End Function + + + Public Function Get_Data(ByVal Nr As Integer) + Me.cpMainConnectionProvider = Globals.conn + Me.iVorgabeDefinitionNr = New SqlInt32(CType(Nr, Int32)) + Globals.conn.OpenConnection() + Me.daten = Me.SelectOne() + Globals.conn.CloseConnection(True) + Try + Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) + Catch ex As Exception + Me.MutiererText = "" + + End Try + + End Function + + Public Function Save_Data() As Integer + Me.cpMainConnectionProvider = Globals.conn + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("VorgabeDefinition") + db.Dispose() + + Me.cpMainConnectionProvider = Globals.conn + Me.iVorgabeDefinitionNr = New SqlInt32(CType(newkey, Int32)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = True + Return newkey + End Function + + ''' + ''' Löschen eines Datensatzes erstellen. + ''' + ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + ''' + ''' + Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + If bAktiv.Value = False Then Exit Function + + Me.cpMainConnectionProvider = Globals.conn + Me.bAktiv = New SqlBoolean(CType(False, Boolean)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Globals.conn.OpenConnection() + Me.Update() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer + If Basenr <> 0 Then + Get_Data(Basenr) + End If + Me.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + MyBase.Delete() + Globals.conn.CloseConnection(True) + Me.Neuer_Datensatz = False + End Function + + ''' + ''' Neue Person einfügen + ''' + ''' + ''' + Public Function Add_New() As Integer + Dim db As New DB.clsMyKey_Tabelle + db.cpMainConnectionProvider = Globals.conn + Dim newkey = db.get_dbkey("Vorgabe") + db.Dispose() + Me.iVorgabeDefinitionNr = New SqlInt32(CType(newkey, Int32)) + Me.sDefinition = New SqlString(CType("", String)) + Me.iVorgabeNr = New SqlInt32(CType(0, Int32)) + Me.sBemerkungen = New SqlString(CType("", String)) + Me.daGueltig_bis = New SqlDateTime(CType("31.12.2099", DateTime)) + Me.bAktiv = New SqlBoolean(CType(True, Boolean)) + Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, Int32)) + Me.cpMainConnectionProvider = Globals.conn + Try + Globals.conn.OpenConnection() + Me.Insert() + Globals.conn.CloseConnection(True) + Catch ex As Exception + MsgBox(ex.Message) + End Try + Me.Neuer_Datensatz = True + Return Me.iVorgabeDefinitionNr.Value + End Function + + Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer) + Try + Dim ds As New DataSet + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "sp_get_VorgabeDefinitionen" + sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key)) + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(ds, "Datatable1") + c1daten.DataSource = Nothing + c1daten.DataSource = ds.Tables(0) + c1daten.DataMember = ds.Tables(0).TableName + + SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "VorgabeDefinition", ds.Tables(0)) + Catch ex As Exception + MsgBox(ex.Message) + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + +End Class diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.Designer.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.Designer.vb new file mode 100644 index 0000000..29121d0 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.Designer.vb @@ -0,0 +1,248 @@ + _ +Partial Class frmNeuerVorgabeEintrag + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmNeuerVorgabeEintrag)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.TreeVorgabe = New DevComponents.AdvTree.AdvTree() + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.lblKapitelNr = New System.Windows.Forms.Label() + Me.lblKapitel = New System.Windows.Forms.Label() + Me.txtKapitelnr = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.txtKapitel = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.btnSave = New System.Windows.Forms.Button() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.dtGueltigbis = New System.Windows.Forms.DateTimePicker() + Me.Label1 = New System.Windows.Forms.Label() + Me.ToolStrip1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + CType(Me.TreeVorgabe, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(728, 25) + Me.ToolStrip1.TabIndex = 6 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neu" + Me.ToolStripButton1.Visible = False + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.TreeVorgabe) + Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Left + Me.GroupBox1.Location = New System.Drawing.Point(0, 25) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(321, 308) + Me.GroupBox1.TabIndex = 7 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Übergeordnetes Sturktur-Element" + ' + 'TreeVorgabe + ' + Me.TreeVorgabe.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeVorgabe.AllowDrop = True + Me.TreeVorgabe.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeVorgabe.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeVorgabe.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeVorgabe.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeVorgabe.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeVorgabe.Location = New System.Drawing.Point(3, 16) + Me.TreeVorgabe.Name = "TreeVorgabe" + Me.TreeVorgabe.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeVorgabe.NodesConnector = Me.NodeConnector1 + Me.TreeVorgabe.NodeStyle = Me.ElementStyle1 + Me.TreeVorgabe.PathSeparator = ";" + Me.TreeVorgabe.Size = New System.Drawing.Size(315, 289) + Me.TreeVorgabe.Styles.Add(Me.ElementStyle1) + Me.TreeVorgabe.TabIndex = 1 + Me.TreeVorgabe.Text = "AdvTree1" + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'lblKapitelNr + ' + Me.lblKapitelNr.AutoSize = True + Me.lblKapitelNr.Location = New System.Drawing.Point(345, 41) + Me.lblKapitelNr.Name = "lblKapitelNr" + Me.lblKapitelNr.Size = New System.Drawing.Size(53, 13) + Me.lblKapitelNr.TabIndex = 8 + Me.lblKapitelNr.Text = "Kapitel-Nr" + ' + 'lblKapitel + ' + Me.lblKapitel.AutoSize = True + Me.lblKapitel.Location = New System.Drawing.Point(345, 66) + Me.lblKapitel.Name = "lblKapitel" + Me.lblKapitel.Size = New System.Drawing.Size(39, 13) + Me.lblKapitel.TabIndex = 9 + Me.lblKapitel.Text = "Kapitel" + ' + 'txtKapitelnr + ' + ' + ' + ' + Me.txtKapitelnr.Border.Class = "TextBoxBorder" + Me.txtKapitelnr.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtKapitelnr.Location = New System.Drawing.Point(414, 39) + Me.txtKapitelnr.Name = "txtKapitelnr" + Me.txtKapitelnr.PreventEnterBeep = True + Me.txtKapitelnr.Size = New System.Drawing.Size(100, 20) + Me.txtKapitelnr.TabIndex = 10 + ' + 'txtKapitel + ' + ' + ' + ' + Me.txtKapitel.Border.Class = "TextBoxBorder" + Me.txtKapitel.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtKapitel.Location = New System.Drawing.Point(414, 64) + Me.txtKapitel.Name = "txtKapitel" + Me.txtKapitel.PreventEnterBeep = True + Me.txtKapitel.Size = New System.Drawing.Size(291, 20) + Me.txtKapitel.TabIndex = 11 + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(348, 298) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 12 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(630, 298) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 13 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'dtGueltigbis + ' + Me.dtGueltigbis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtGueltigbis.Location = New System.Drawing.Point(414, 90) + Me.dtGueltigbis.Name = "dtGueltigbis" + Me.dtGueltigbis.Size = New System.Drawing.Size(100, 20) + Me.dtGueltigbis.TabIndex = 14 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(345, 96) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(50, 13) + Me.Label1.TabIndex = 15 + Me.Label1.Text = "Gültig bis" + ' + 'frmNeuerVorgabeEintrag + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(728, 333) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.dtGueltigbis) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.txtKapitel) + Me.Controls.Add(Me.txtKapitelnr) + Me.Controls.Add(Me.lblKapitel) + Me.Controls.Add(Me.lblKapitelNr) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmNeuerVorgabeEintrag" + Me.Text = "Vorgabe bearbeiten" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + CType(Me.TreeVorgabe, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents TreeVorgabe As DevComponents.AdvTree.AdvTree + Friend WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Friend WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Friend WithEvents lblKapitelNr As System.Windows.Forms.Label + Friend WithEvents lblKapitel As System.Windows.Forms.Label + Friend WithEvents txtKapitelnr As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents txtKapitel As DevComponents.DotNetBar.Controls.TextBoxX + Friend WithEvents btnSave As System.Windows.Forms.Button + Friend WithEvents btnAbbruch As System.Windows.Forms.Button + Friend WithEvents dtGueltigbis As System.Windows.Forms.DateTimePicker + Friend WithEvents Label1 As System.Windows.Forms.Label +End Class diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.resx b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.resx new file mode 100644 index 0000000..9922246 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.resx @@ -0,0 +1,3503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK1SURBVDhPnZLfS1NhGMdfCPoDuummi+i6KwcWZYjb3Obx + 7MzN5dY5Z9tJZ84Mi7IgK/vtr7I01CKHqVgUlVoZqdkPRSNDKQupVmQX0UUSRRBdFHw6aix2WQ984H1e + eD+83+d9xf/U59ejwdnZqZ+duzP5s7VYl6ty+3oO59J3dB4pSe8RiSsH7DyI72BuZpBP07f49maEi3ut + qYLeKpm0tXbWrLexdsNf0tdbWW3J4HtikETfQSZb/HxJPOTyfkeqoKdSJtPqxGaXsDtcSazZTtIzbLzq + jDB5XmeiNcjciwGuHcpJFTgaBVLNEnLsPiSXgpTjRpJkXC6ZDVaJmQ6DiXMhHjUH+TjZuxD1z1EhbLWC + xMcunKYkN0vD7QygSH4U2Yvs9pDlcPM8Hma8RWekcROzY5e4Xa0sCmw1gun3bXSMCDKrBfYGgfOMQK5c + jlcJ4snzk53rY+q8xkiTzvc7K3k53M5AnRfhqhc8fldNfFzQNmau3xbx5F2Epx/CC5KNnjD5+UEkT4An + rSr3T2v8GFzFi9stDDf4FwX3EhXEpwTxSUH7c0HHjODZ1wiOJkEwv4iCQAh3vsZ4c4DhU0HaKpw87a3l + YWNgIYLFbkbof1lMV0KQNR/hhMBxWpB3YAW6GkXVDXxBg9FGP0MnN3L9sMLjS1WMNavJIVqy6wR9b304 + TwmMwE4MrQwjXIJhRIkYhQRCUe43eLlT76O/xsvohV1MnA2lPKPFaV5ZqV9K1CgnWlRKUbRkgUITbXOM + u/Ue+qvzuHHMw2BLjKm2SIpAdJatY0tpGaWx7ZRu3ZYkZlJYUs5QnczN4wo9R93cPBliur0Qoes6uhZC + 08Ko6jzmWtXMXk2imn3BJp09sQDdVYr5A2WuHsljpqt4cYj/SqWevvf4vtW/XnfHUiP8Qy0zSRNCWH4D + OB/CWpV5QxgAAAAASUVORK5CYII= + + + + + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAERERAREREQETExMBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBExMTARISEgEQEBABDg4OAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBOzs7AxsbGwYdHR0HHh4eCSEhIQkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkjIyMJIyMjCSMjIwkjIyMJIyMjCSMj + IwkjIyMJIiIiCSIiIgkiIiIJISEhCR4eHggaGhoHKCgoBTIyMgMrKysBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdH + RwQSEhINAAAAGAAAACAAAAAjAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAjAAAAIQAA + AB0AAAAWAAAADyEhIQg/Pz8ENTU1AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4CExMTCgAAACIAAABAAAAAVgAAAFwAAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF0AAABaAAAAUgAAAEQAAAAwAAAAHQAAAA81NTUGPj4+AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERE + RAMAAAARAAAAOf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+ + /v/+/v7//f39//z8/P/8/Pz/+/v7//v7+//6+vr/+Pj4//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs + 7P3f39/1t7e31l9fX5oAAABLAAAALAAAABUSEhIJQ0NDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIBQAAABUAAABH//////r6+//29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//X19v/19fb/9fX2//X19v/09PX/9PT1//Pz9P/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//t7e7/6+vs/+rq6//o6On/5+fn/+Xl5v/j4+P/4ODh/8bGx+U2Njd7AAAANwAA + ABoTExMKRUVFBDc3NwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABOTk4FAAAAGAAAAEv/////9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X1 + 9v/19fb/9fX2//T09f/09PX/8/P0//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+zs7f/r6+z/6urr/+jo + 6f/n5+f/5OTl/+Hh4v/d3d7/19fY/9XV1fxxcXGgAAAAPwAAAB4TExMMR0dHBDg4OQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXVwUAAAAYAAAATP/////19fb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X19v/19fb/9PT1//T09f/z8/T/8/P0//Ly + 8//x8fL/8PDx/+/v8P/u7u//7e3u/+zs7f/q6uv/6Ojp/+jo6P/l5eb/4uLj/9/f4P/Z2dr/0tLT/9XV + 1f6RkZG8AAAARAAAACETExMMR0dIBDk5OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9fX2//X19v/09PX/9PT1//T09f/z8/T/8vLz//Hx8v/w8PH/7+/w/+7u7//t7e7/7Ozt/+rq + 6//p6er/6Ojo/+fn6P/k5OX/4ODh/9zc3f/W1tf/zc3O/9jY2f+fn6DJAAAARwAAACITExMNSUlJBDo6 + OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9fX2//X1 + 9v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//X19v/09PX/9PT1//Pz + 9P/y8vP/8vLz//Hx8v/w8PH/7+/w/+3t7v/s7O3/6+vs/+np6v/o6On/5+fo/+Xl5v/i4uP/39/g/9ra + 2//T09T/ycnK/9/f4P+hoaLOAwMDSQAAACMUFBQNSkpLBDs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//X19v/19fb/9fX2//X19f/09PX/8/P0//Pz9P/y8vP/8fHy//Hx8f/v7/D/7u7v/+3t + 7v/r6+z/6urr/+jo6f/n5+j/5ubn/+Pj5P/g4OH/3Nzd/9bW1//Ozs//ycnJ/+rq6v+oqKnTBwcITQAA + ACUAAAAONzc3BDs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////X1 + 9v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//X1 + 9f/09PT/9PT0//Pz8//y8vL/8fHx//Dw8P/v7+//7u7u/+3t7f/r6+v/6enp/+jo6P/n5+f/5OTl/+Li + 4//e3t//2trb/9PT1P/Jycr/3t7f/97e4P+wsLLYDQ0NUQAAACYAAAAPNzc3BTw8PAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/29vf/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Ly8//y8vL/8fHx/+/v + 8P/u7u//7e3u/+vr6//q6ur/6Ojo/+jo6P/m5ub/5OTk/+Hh4f/c3N3/1tbX/83Nzv/Ozs//6urr/9zc + 3v+5ubrcExMTVgAAACgAAAAQNzc4BTw8PQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//b2 + 9//19fb/9fX2//T09f/z8/T/8/P0//Ly8//x8fL/8PDx/+/v8P/t7e7/7Ozt/+rq6//p6er/6Ojo/+bm + 5v/k5OX/4uLi/97e3v/a2tr/0tLS/8fHx//w8PD/39/h/93d3//CwsPgGhoaWwAAACkAAAAQODg4BT4+ + PgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b29//19fb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//X19v/19fb/9PT1//T09f/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//s7O3/6+vs/+np6v/o6On/5+fn/+Xl5v/j4+T/39/g/9vb2//U1NX/ysrK/+jo + 6P/m5uf/39/h/93d3//KysvkICAgYQAAACsAAAAROTk5BT8/QAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9vb3//b29//29vf/9vb3//X19v/19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/19fb/9PT1//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+3t7v/r6+z/6urr/+jo + 6f/n5+f/5ubm/+Tk5f/h4eL/3d3e/9bW1//Nzc7/4ODg/+7u7//l5ef/39/h/93d3//Q0NHpJSUlZgAA + ACwAAAATOTk6BkBAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Pz + 9P/y8vP/8fHy//Dw8f/v7/D/7e3u/+zs7f/q6uv/6enq/+jo6P/m5ub/5OTl/+Hh4v/d3d7/2NjZ/8/P + 0P/W1tf/9PT0/+rq6//l5ef/39/h/9zc3v/U1NbtKSkpbAAAAC4AAAATOjo7B0FBQgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////b29//29vf/9vb3//b29//09PT/8/P0//Pz9P/09PX/9fX2//X19v/29vf/9vb3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/09PX/9PT1//T09f/z8/T/8/P0//Ly8//y8vP/8fHy//Dw8f/w8PH/7+/w/+3t7v/s7O3/6+vs/+np + 6v/o6On/5ubn/+Xl5f/k5OT/4eHi/93d3v/Y2Nn/z8/Q/8/P0P/4+Pj/7u7v/+rq6//l5ef/39/h/9vb + 3f/X19nwLS0tcAAAADAAAAAUOzs7B0JCQwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Ly + 8//x8fL/8fHy//T09f/19fX/9PT1//X19v/29vf/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/T09T/y8vL/8vLy//Ly8v/ysrK/8jI + yP/Gxsb/xcXG/8XFxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8XFxv/FxcX/xcXF/8TExf/ExMX/xMTE/8PD + xP/CwsP/wsLC/8HBwv/AwMH/v7/A/76+v/+9vb3/vLy8/7u7u/+6urr/uLi4/7a2t/+0tLX/sbGy/62t + rf+mpqf/p6eo//r6+//x8fL/7u7v/+rq6//l5ef/39/h/9ra3P/Z2dvzMDAwdQAAADEAAAAVOjo7B0FB + QgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBg + YAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9PT1//Hx8v/19fb/9vb3//b29v/29vb/9vb2//f3 + 9//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4/9bW1v/Q0NH/4eHi/+Dg4f/d3d7/1tbX/9DQ0f/Q0NH/0NDR/9DQ0f/Q0NH/0NDR/9DQ + 0f/Q0NH/0NDR/8/P0P/Pz9D/z8/Q/87Oz//Ozs//zc3O/83Nzv/Nzc3/zc3N/8zMzf/Ly8z/ysrL/8nJ + yv/Hx8j/xsbG/8XFxf/Dw8P/wMDB/76+vv+8vL3/uLi5/7Gxsv+pqar/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/39/h/9ra3P/a2tz2Nzc3ewAAADQAAAAWOjo6B0BAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/29vc/8fHyP/h4eL/4ODh/9zc + 3f/T09P/zMzN/8/P0P/R0dL/0tLS/9LS0v/S0tL/0tLS/9LS0//S0tP/0dHS/9HR0v/R0dL/0NDR/9DQ + 0P/Pz8//z8/P/87Oz//Ozs//zs7O/83Nzf/Ly8z/ysrL/8nJyv/Hx8n/xsbH/8XFxv/Dw8T/wMDB/76+ + vv+6urv/s7O0/6mpqv/19fX/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9nZ2//b29z4Pj4+gAAA + ADUAAAAXOTk6CD8/QAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Hx8f/v7/D/7Ozt/+/v7//x8fL/7+/w//Hx + 8v/z8/T/9PT1//T09f/19fb/9vb2//b29//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/Z2dr/ysrK/+Hh4f/h4eH/3d3e/9TU1P/Pz9D/1NTV/9jY2f/Z2dr/2dna/9nZ + 2v/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9jY2f/X19j/19fY/9bW1//W1tf/1dXW/9XV1v/U1NX/09PU/9LS + 0//R0dH/0NDQ/87Ozv/Nzc3/zMzN/8vLzP/Jycr/xcXG/8HBwv+6urv/sLCx//T09P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/39/h/9jY2//a2tv5QEBBgwAAADcAAAAXERERCT4+PwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b2 + 9//29vf/8PDx/+rq6//u7u//8/P0//Ly8//w8PH/7+/w//Hx8v/y8vL/9PT1//X19v/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4/9jY2P/f3+D/zMzN/+Hh + 4v/e3t//1tbX/9HR0v/U1NX/2dna/9vb3P/b29z/29vc/9vb3P/b29z/29vc/9vb3P/a2tv/2trb/9ra + 2//Z2dr/2dna/9jY2f/Y2Nn/19fY/9fX2P/W1tf/1dXW/9TU1f/T09T/0tLT/9DQ0f/Pz9D/zs7O/8zM + zP/Jycr/w8PF/729vv+0tLT/8/Pz//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9jY + 2v/X19r5Q0NDhgAAADgAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9/f3//f39//19fb/8/P0//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/+Pj4//j4+P/4+Pj/19fX/+Li4//Ly8v/4eHi/9/f4P/Z2dn/1NTU/9TU1f/Z2dn/3Nzd/93d + 3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Y2Nn/2NjZ/9jY + 2P/X19f/1dXW/9TU1f/T09T/0dHS/9DQ0f/Pz9D/zc3O/8rKy//Gxsb/vr6//7W1tf/z8/P/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9fX2f/W1tj6RUVGhwAAADkAAAAYERERCT09 + PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//f3 + 9//39/f/9/f3//b29//v7/D/9fX2//Ly8v/09PX/9PT1//X19v/09PT/9fX2//T09f/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/X19f/4uLj/8/P + z//d3d3/4ODg/9vb3P/X19j/1dXW/9fX2P/b29z/3d3e/93d3v/d3d7/3d3e/93d3v/d3d7/3Nzd/9zc + 3f/c3N3/29vc/9vb3P/a2tv/2trb/9nZ2v/Z2dr/2dnZ/9jY2P/X19f/1dXW/9TU1P/S0tP/0dHR/9DQ + 0f/Ozs//y8vM/8fHyP/AwMH/t7e3//T09P/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9bW2f/V1df6R0dIiQAAADoAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/8/Pz/+zs7P/n5+f/7+/v/+3t + 7f/v7+//7+/v//Dw8P/u7u7/8PDw//Ly8v/y8vL/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//f3 + 9//4+Pj/+Pj4//j4+P/4+Pj/+Pj4/9fX1//j4+P/4+Pj/8zMzP/g4OD/3Nzc/9nZ2f/W1tb/1tbW/9vb + 2//d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ + 2f/Z2dn/2NjY/9fX1//W1tb/1dXV/9PT0//S0tL/0dHR/8/Pz//Nzc3/yMjI/8HBwf+4uLj/9PT0//r6 + +v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/T09X6SUlJiwAA + ADkAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f3 + 9//39/f/9/f3//f39//y8vL/6Ojo//Hx8f/w8PD/9PT0//T09P/x8fH/8vLy//T09P/09PT/8fHx//Ly + 8v/19fX/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//b29v/4+Pj/+Pj4//j4+P/4+Pj/19fX/+Pj + 4//j4+P/y8vL/+Dg4P/d3d3/3d3d/9nZ2f/W1tb/2dnZ/93d3f/e3t7/3t7e/97e3v/e3t7/3t7e/93d + 3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9PT + 0//R0dH/0NDQ/87Ozv/Kysr/xMTE/7q6uv/19fX/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/S0tT7S0tMiwAAADgAAAAXNzc4Bz09PQIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/W1tb/5OTk/+Tk5P/W1tb/1tbW/97e3v/f39//3Nzc/9fX + 1//Y2Nj/3Nzc/93d3f/e3t7/3t7e/97e3v/e3t7/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/29vb/9vb + 2//a2tr/2tra/9ra2v/Z2dn/2NjY/9fX1//W1tb/1NTU/9PT0//R0dH/z8/P/8zMzP/Gxsb/vb29//b2 + 9v/7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV + 1//Pz9H6QEBBhQAAADYAAAAXNjY3Bzw8PQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///39/f/9/f3//f39//39/f/9PT0/+rq6v/v7+//7Ozs//Dw8P/v7+//8vLy//Dw8P/x8fH/8fHx//Pz + 8//09PT/9fX1//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//f39//39/f/9/f3/9bW + 1v/k5OT/5OTk/+Li4v/Jycn/3t7e/+Hh4f/f39//2dnZ/9fX1//b29v/3t7e/9/f3//f39//39/f/9/f + 3//e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ2f/Z2dn/2NjY/9bW + 1v/V1dX/1NTU/9LS0v/Q0ND/zs7O/8nJyf/AwMD/9/f3//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV1//Ly874NTU1fgAAADQAAAAWNjY3Bzs7 + PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f39//39/f/9/f3//f39//y8vL/6Ojo/+fn + 5//o6Oj/6urq/+3t7f/o6Oj/6+vr/+vr6//r6+v/7e3t/+/v7//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/9/f3//T09P/29vb/9fX1//X19f/29vb/1dXV/+Tk5P/k5OT/4+Pj/8vLy//f39//4uLi/+Li + 4v/c3Nz/19fX/9ra2v/d3d3/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/93d + 3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/19fX/9bW1v/V1dX/1NTU/9LS0v/Pz8//zMzM/8bG + xv/5+fn//Pz8//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9XV1//Hx8r1LCwsdwAAADEAAAAUNTU2Bjs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9/f3//f39//39/f/9/f3//Pz8//o6Oj/8fHx//b29v/29vb/9vb2//b29v/29vb/+Pj4//f3 + 9//x8fH/8vLy//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//X19f/29vb/9fX1//f3 + 9//X19f/4+Pj/+Tk5P/j4+P/2dnZ/9DQ0P/i4uL/4+Pj/97e3v/Y2Nj/2NjY/9zc3P/e3t7/39/f/9/f + 3//f39//3t7e/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9bW1v/V1dX/09PT/9HR0f/Ozs7/ysrK//b29v/4+Pj/9vb2//Pz8//x8fH/7+/v/+3t + 7f/q6ur/4+Pj/+bm5v/m5ub/7e3t//b29v/19fX/8vLz/+zs7f/l5ef/3t7g/9TU1v/CwsXyJiYmbwAA + AC8AAAASNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/7+/v/9zc3P/l5eX/5eXl/+Pj4//g4OD/ysrK/+Li + 4v/k5OT/4eHh/9vb2//Y2Nj/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f + 3//e3t7/3d3d/93d3f/c3Nz/29vb/9vb2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9DQ + 0P/Nzc3/ysrK/8bGxv/BwcH/vb29/7q6uv+3t7f/tbW1/7Ozs/+cnJz/q6ur/6urq/+vr6//rq6u/6Gh + of/CwsL/z8/P/9bW1v/l5eX/5+fo/9bW2P+9vcDuISEiaQAAACwAAAARNTU1BTs7OwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////f39//39/f/9/f3//f39//w8PD/6Ojo/+fn5//n5+f/6urq/+vr6//u7u7/6+vr/+zs + 7P/t7e3/8PDw//j4+P/19fX/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9PT0//Pz8//z8/P/9PT0//Pz + 8//k5OT/4eHh/+Li4v/k5OT/4+Pj/+Dg4P/MzMz/4eHh/+Xl5f/j4+P/3d3d/9jY2P/a2tr/3t7e/+Dg + 4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb + 2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9HR0f/Ozs7/y8vL/8nJyf/Gxsb/xMTE/8LC + wv+/v7//s7Oz/66urv+1tbX/ubm5/7y8vP+7u7v/q6ur/8HBwf/AwMD/v7+//7y8vP+9vb3/1tbW/+Pj + 5f+8vL7qHh4eYgAAACkAAAAPNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//Ly + 8v/k5OT/5+fn/+bm5v/r6+v/7e3t/+bm5v/p6en/6urq/+jo6P/z8/P/8fHx//T09P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/w8PD/8/Pz//Hx8f/09PT/8vLy/+Dg4P/j4+P/4eHh/+Xl5f/i4uL/39/f/97e + 3v/Pz8//5eXl/+Xl5f/g4OD/2dnZ/9nZ2f/d3d3/4ODg/+Hh4f/h4eH/4eHh/+Dg4P/g4OD/39/f/9/f + 3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/29vb/9nZ2f/Z2dn/19fX/9bW + 1v/V1dX/09PT/9LS0v/Q0ND/zs7O/8zMzP/Ly8v/ycnJ/8jIyP+wsLD/vr6+/729vf/Dw8P/xsbG/8XF + xf+4uLj/xcXF/83Nzf/Nzc3/ysrK/8XFxf/AwMD/vb29/9vb2//ExMXnGxscXQAAACYAAAAOSkpKBDs7 + OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9vb2/+fn5//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4/+/v7//w8PD/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//b29v/19fX/9vb2//f3 + 9//5+fn/4+Pj/+Tk5P/k5OT/5ubm/+Xl5f/h4eH/4eHh/9DQ0P/m5ub/5ubm/+Pj4//c3Nz/2NjY/9zc + 3P/f39//4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/d3d3/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9LS0v/R0dH/0NDQ/8/P + z//Ozs7/zMzM/7W1tf/Dw8P/xsbG/8vLy//MzMz/zMzM/8bGxv/Gxsb/1tbW/9bW1v/V1dX/0dHR/83N + zf/Hx8f/wMDA/8vLy//GxsflGhoaWAAAACQUFBQNSUlJAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+//b29v/29vb/9vb2//f3 + 9//39/f/9/f3//f39//29vb/9vb2//f39//39/f/9vb2//f39//29vb/9vb2//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/k5OT/5eXl/+bm5v/l5eX/4+Pj/+Dg + 4P/g4OD/1dXV/+Dg4P/l5eX/5OTk/97e3v/X19f/2tra/97e3v/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/f39//39/f/9/f3//f39//39/f/97e3v/f39//3t7e/97e3v/d3d3/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9TU1P/S0tL/0dHR/9HR0f/BwcH/wsLC/8jIyP/Nzc3/0dHR/9DQ + 0P/Pz8//zMzM/8jIyP/b29v/3d3d/9zc3P/a2tr/1tbW/9LS0v/Nzc3/xsbG/8fHx/+7u7vbBwcHSQAA + ABwpKSkIRUVFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz9/f3/9fX1//X19f/29vb/9vb2/+/v7//i4uL/2tra/+Hh4f/h4eH/5OTk/+fn + 5//k5OT/4+Pj/+Hh4f/o6Oj/6enp//Hx8f/19fX/9fX1//X19f/29vb/9vb2//b29v/v7+//6+vr/+zs + 7P/t7e3/7Ozs/9zc3P/d3d3/3t7e/+Dg4P/d3d3/29vb/93d3f/g4OD/0NDQ/+Pj4//j4+P/39/f/9jY + 2P/X19f/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e + 3v/e3t7/3t7e/97e3v/d3d3/3d3d/9zc3P/b29v/29vb/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9TU + 1P/T09P/0tLS/7u7u//Kysr/y8vL/9HR0f/U1NT/1NTU/9PT0//Q0ND/y8vL/97e3v/g4OD/4eHh/9/f + 3//e3t7/2tra/9bW1v/R0dH/zMzM/8rKyv+fn6DEAAAANwAAABJQUFAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPz8/P/09PT/9PT0//T0 + 9P/09PT/7Ozs/9fX1//n5+f/4+Pj/+vr6//s7Oz/4+Pj/+bm5v/p6en/6enp/+Li4v/o6Oj/7+/v//Pz + 8//z8/P/9PT0//T09P/09PT/9PT0/+/v7//p6en/5+fn/+vr6//t7e3/29vb/93d3f/Y2Nj/4ODg/97e + 3v/X19f/3Nzc/+Dg4P/Nzc3/4uLi/+Li4v/e3t7/2NjY/9XV1f/Y2Nj/29vb/9zc3P/d3d3/3d3d/93d + 3f/d3d3/3d3d/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc3P/b29v/29vb/9ra + 2v/a2tr/2tra/9nZ2f/Y2Nj/19fX/9bW1v/W1tb/1dXV/9TU1P/S0tL/u7u7/8vLy//Ozs7/1dXV/9bW + 1v/W1tb/1dXV/9PT0//Nzc3/4ODg/+Pj4//k5OT/4+Pj/+Li4v/g4OD/3d3d/9nZ2f/W1tb/0NDQ/9ra + 2v09PT5xAAAAISsrKwhCQkIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXl5eBQAAABgAAABM+fn5//Ly8v/y8vL/8vLy//Ly8v/y8vL/6Ojo//Hx8f/x8fH/8fHx//Hx + 8f/x8fH/8fHx//Dw8P/w8PD/7+/v/+7u7v/w8PD/8PDw//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+/v + 7//v7+//8PDw//Dw8P/c3Nz/39/f/97e3v/f3+D/3d3d/9ra2v/c3Nz/39/f/9fX1//X19f/4eHh/9/f + 3//Z2dn/0tLS/9LS0v/U1NT/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/19fX/9fX + 1//Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/X19f/19fX/9bW1v/W1tb/1tbW/9XV1f/V1dX/09PT/9LS + 0v/S0tL/0dHR/7+/v//Jycn/zMzM/9PT0//X19f/2NjY/9fX1//X19f/1dXV/87Ozv/h4eH/4+Pj/+bm + 5v/m5ub/5eXl/+Tk5P/i4uL/39/f/93d3f/a2tr/2tra/52dnb4AAAAwAAAADUtLSwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz39/f/8PDw//Dw + 8P/v7+//7+/v/+/v7//f39//6+vr/+Pj4//o6Oj/5+fn/+rq6v/l5eX/6enp/+Xl5f/n5+f/6urq/+nq + 6v/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/q6ur/6enp/+Xl5f/n5+f/6urq/9XV1f/a2tr/19fX/9vb + 2//Z2dn/1dXV/9fX1//b29v/29vb/8rKyv/d3d3/3d3d/9nZ2f/Q0ND/y8vL/8zMzP/Nzs7/zs7O/87O + zv/Ozs7/z8/P/9DQ0P/Pz8//z8/P/8/Pz//Q0ND/0NDQ/9DQ0P/R0dH/0tLS/9LS0v/S0tL/09PT/9LS + 0v/S0tL/0dHR/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/83Nzf/Nzc3/ubm5/8rKyv/Pz8//1tbW/9nZ + 2f/a2tr/2dnZ/9jY2P/W1tb/z8/P/+Pj4//l5eX/5+fn/+fn5//n5+f/5ubm/+Xl5f/k5OT/4uLi/+Dg + 4P/g4OD/zc3N5AAAADsAAAARVVVVAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPX19f/u7+//7u7u/+3t7v/t7e3/5eXl/9nZ2f/Nzc3/29vb/9fX + 1//a2tr/2tvb/9vb2//T1NT/2NjY/+Dg4P/b29v/6enq/+rq6v/q6ur/6urq/+rq6v/p6ur/6urq/+Xl + 5f/e3t7/4ODg/+Xm5v/b29v/z8/P/9LT0//T09P/19fX/9HR0f/Q0ND/0dHS/9TV1f/X19f/wsLD/7+/ + v/+/v7//vLy8/7W2tv+0tbX/tra2/7e3t/+4uLj/uLi5/7m5uf+5ubn/ubm5/7q7u/+6urv/urq6/7u7 + u/+7u7v/vLy8/729vf++vr7/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+7u7v/u7u7/7q6 + uv+5ubn/uLi4/7e3t/++vr7/0NDQ/9XV1f/a2tr/3Nzc/9vb2//b29v/2tra/9jY2P/Q0ND/5eXl/+fn + 5//p6en/6enp/+np6f/o6Oj/6Ojo/+bm5v/l5eX/5OTk/+Pj4//h4eL2AAAARAAAABReXl4EAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9fX1/+7u + 7v/t7e7/7e3t/+zt7f/k5OT/0dHR/+Li4v/e3t7/5ebm/+Xm5v/d3t7/4ODg/+Tl5f/h4uL/19fX/+Hh + 4f/k5eX/6erq/+np6v/p6en/6Onp/+jp6f/p6en/4uLj/97e3v/f4OD/39/f/+Tl5f/Nzc3/09PU/9LS + 0//W1tb/1dbW/83Nzf/T09T/19fY/9bX1//Fxsb/y8vM/8nKyv/IyMn/xcXG/8XFxf/HyMn/ycrK/8nJ + yv/Ly8v/y8vM/8zMzP/MzMz/zMzM/8zNzf/MzM3/zM3N/87Ozv/Pz8//0NDQ/9LS0v/S0tL/0tLS/9LS + 0v/S0tL/0dHR/9HR0f/R0dH/0dHR/9DQ0P/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8rKyv/Z2dn/2dnZ/9zc + 3P/e3t7/3d3d/9zc3P/b29v/2tra/9HR0f/m5ub/6enp/+vr6//r6+v/6urq/+rq6v/p6en/6enp/+jo + 6P/o6Oj/5ubm/+zs7P0AAABJAAAAFmVlZgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19fb/7e7v/+3t7v/s7e7/7O3u/+zs7f/s7O3/7Ozt/+zs + 7P/r6+z/6+vs/+rr6//q6+z/6+vs/+vr7P/q6+z/6uvr/+rr6//p6uv/6err/+nq6v/p6ur/6enq/+np + 6v/p6er/6enq/+np6v/p6er/6Onq/9LT1P/a29v/2tvb/9rb2//X2Nj/1NXW/9bW1//Z2dv/2tvc/8fI + yP/Nzs7/zc7O/8vMzP/HyMn/ycnK/8zNzv/Ozs//zs7P/83Oz//Oz8//zs/Q/8/P0P/Oz9D/zs/Q/87P + 0P/Pz8//0NDQ/9HR0f/T09P/1NTU/9XV1f/V1db/1dXV/9XV1f/V1dX/1NTV/9TU1P/U1NT/09PU/9PT + 0//T09P/0tLS/9HR0f/Q0ND/zc3N/9zc3f/b29v/3d3d/97e3//e3t//3t7e/93d3f/b29v/0dHR/+fn + 5//q6ur/7Ozs/+zs7P/s7Oz/6+vr/+vr6//q6ur/6urq/+np6v/o6On/8PDw/wAAAEsAAAAYampqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/t7vD/7e7v/+3u7//t7u//6Onq/9jZ2//h4eL/2tvc/+Dg4v/f4OH/5OXm/97f4f/g4eL/3uDh/+vs + 7f/k5eb/5ebo/+rr7f/q6+z/6uvs/+rr7P/q6+z/6uvs/+Hi4//j5OX/3t/g/+Lj5f/j5OX/zM3O/9bX + 2P/U1NX/2drb/9XX2P/Q0dP/1NXW/9bY2f/W19n/xcbH/8vMzf/Mzc//ysvN/8XGyf/HyMr/zM3P/83O + z//Mzc//zM3O/83Oz//Nz9D/zc/Q/83Oz//NztD/z8/Q/8/Q0P/Q0ND/0tLS/9PT1P/V1dX/1tbW/9bW + 1//W1tf/1tbX/9bW1v/W1tb/1dXW/9TU1f/U1NT/09PU/9PT1P/T09P/0tLT/9HR0v/MzMz/3Nzd/9vb + 3P/e3t7/4ODg/9/f4P/f3+D/3t7f/9zc3P/Q0ND/6enp/+zs7P/t7e7/7e3u/+zs7f/s7O3/6+vs/+vr + 7P/r6+z/6urr/+rq6//y8vL/AAAATAAAABhtbW0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3u8P/m5+j/1tfY/9PU + 1f/V1tf/2Nna/9vc3v/T1Nb/19jZ/9XW2P/V1tf/1tfY/9na3P/n6Or/6+zu/+vs7v/r7O3/6+3t/+vs + 7f/r7O3/5+jp/+Hi4//j5OX/4+Tl/9rb3P/Q0dP/19jZ/9XX2P/W19j/0dLT/87P0P/S1NX/1dXX/9bX + 2P/Exsf/y8zO/8nLzP/HyMr/wsTG/8XHyf/LzM3/y83O/8zNzv/Mzc//zM3O/8zOz//Mzs//zc7P/87P + 0P/Pz9H/0NDR/9HR0v/S0tP/1NTV/9bW1v/X19f/19fY/9jY2P/Y2Nj/19fX/9bW1//W1tb/1tbW/9XV + 1f/U1NX/1NTU/9PT1P/T09T/09PT/8zMzf/e3t7/3Nzc/97e3//g4OH/4eHh/+Dg4f/f3+D/3t7e/9HR + 0v/q6ur/7e3t/+/v7//u7u//7u7v/+3t7v/t7e7/7e3u/+zs7f/s7O3/7Ozt//Pz8/8AAABMAAAAGG5u + bgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7u/w/+7v8P/t7/D/7e7w/+jp6v/X2Nn/5Obm/+vs7f/r7e7/6+zu/+rr7P/q6+3/7O3v/+vs + 7f/n6Or/4ePk/+rr7f/r7O7/7O3u/+zt7v/r7e7/6+zt/+vs7f/j5Ob/4uPl/+Hi5P/k5uf/6evs/87P + 0f/X2Nr/1NbX/9na2//Z2tv/0tTV/9na3P/b3d//293f/8nKzP/P0dL/z9DR/83O0P/Ky83/y8zO/87Q + 0f/O0NH/zc/Q/8/Q0f/O0NH/z9DR/8/Q0f/P0NH/z9DR/8/Q0v/Q0dL/0tPU/9XV1f/W1tb/19fX/9fX + 2P/Y2Nj/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tf/1tbW/9bW1v/V1dX/1NTU/9PT1P/T09T/zc3O/97e + 3//d3d3/39/g/+Hh4v/h4eL/4eHh/+Dg4f/f3+D/0tLT/+vr6//t7e3/7+/v//Dw8P/v7/D/7+/w/+7u + 7//u7u//7u7v/+3t7v/t7e7/9fX1/wAAAEwAAAAYb29vBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7e/w/+3u8P/u7/D/7u/v/+7v + 7//t7u//7e7v/+3u8P/t7vD/7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/6+zu/+zt7v/r7e7/6+3u/+vs + 7f/r7O3/6+zt/+rs7f/q7O3/6uvt/+rr7f/q6+3/1NXW/93e3//c3t//2tze/9XX2f/W2Nr/2dvc/9zd + 3v/d3t//ycvN/9DR0v/Q0dL/zM7P/8fJyv/Lzc//z9HS/8/R0v/P0dL/z9HT/8/R0v/P0dL/z9HS/8/R + 0v/P0dL/z9DR/9DR0v/U1NX/1tbX/9fX2P/Y2Nn/2dnZ/9nZ2f/Z2dr/2dnZ/9nZ2f/Y2Nn/2NjY/9fX + 2P/W1tf/1tbX/9bW1v/V1db/1NTV/9TU1P/Nzc7/39/g/97e3//g4OD/4uLi/+Li4//i4uP/4eHh/+Dg + 4P/T09P/7Ozs/+7u7v/w8PD/8vLy//Hx8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u7//29vb/AAAATAAA + ABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb3/+7v8P/t7/D/7u/w/+7v8P/k5ef/19na/9XX2P/V19j/2drc/9na3P/f4OH/2tvd/9rb + 3P/b3N7/3+Dh/9/g4v/m6On/6+3u/+vt7v/r7O3/6+zt/+rs7f/q7O3/4uTm/9ze4P/f4OH/3+Dh/93e + 4P/Nz9D/0tTW/9PV1//W2Nn/z9HS/8/Q0v/S1NX/1dfY/9XW2P/Fx8j/yszO/8nLzf/Iycv/w8XH/8fJ + y//Mzs//ztDR/8zOz//MztD/zM3P/8zOz//Oz9D/zc7P/8zOz//Oz9H/0NDR/9PT1P/W1tb/2NjZ/9nZ + 2f/Z2dn/2dna/9nZ2v/Z2dr/2dna/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbX/9bW1v/W1tb/1dXW/87O + zv/g4OH/3t7f/+Hh4v/j4+P/4+Pk/+Li4//i4uP/4eHh/9TU1f/t7e7/7u7u//Hx8f/z8/P/8vLy//Ly + 8v/x8fL/8PDx//Dw8f/w8PH/8PDx//f39/8AAABMAAAAGHBwcQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+bn + 6f/T1NX/1tfZ/9XW1//b3N7/3d/g/9PU1f/W19n/2Nna/9PU1v/k5ef/2dvc/+Xn6P/r7O3/6+zt/+vs + 7f/q7O3/6uzu/+rs7f/h4uP/3d7g/9ja2//c3t//293e/8zOz//T1df/zc/Q/9bX2P/Q0dP/ztDR/9PU + 1v/U1df/1NbX/8LExf/Mzs//yMrL/8jJyv/Exsj/x8nL/8vMzv/O0NH/ysvN/8vNzv/Nz9D/y83O/8zO + z//Nz9D/zM3P/8/Q0f/Q0dL/09PT/9XW1v/Y2Nn/2dna/9nZ2v/a2tv/2tra/9nZ2v/Z2dr/2tra/9nZ + 2v/Z2dn/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tb/zs7O/+Hh4f/g4OD/4uLj/+Tk5f/k5OT/4+Pk/+Pj + 5P/i4uP/1NTV/+3t7v/v7/D/8vLy//Pz8//z8/P/8/Pz//Ly8//x8fL/8fHy//Hx8v/x8fL/+fn5/wAA + AEwAAAAYcXFxBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/u7/D/6uzt/9bX2f/o6ev/7O7v/+zu7//s7e//7O3v/+zt + 7//r7e7/6+zu/+Lk5f/l5uj/6+3t/+vt7f/r7O3/6uzt/+rs7v/q7O7/6uzt/+rr7f/k5ef/4uPl/+bo + 6v/l5+j/1dfY/9na3P/V19n/2tze/9jZ2//W2Nr/2dvd/9zd3//c3d//yMrL/9DR0//P0NL/zM3P/8nL + zP/KzM7/zc/R/87Q0v/O0NL/ztDS/8/R0v/P0dL/z9HT/9DR0//Q0dP/0dPT/9TU1P/W1tf/2NjZ/9nZ + 2v/a2tv/2trb/9vb3P/b29v/29vb/9ra2v/Z2dr/2dna/9nZ2f/Y2Nn/2NjZ/9jY2P/X19j/19fX/9bW + 1//Ozs//4uLj/+Dg4P/i4uP/5OTl/+Xl5v/l5eX/5OTk/+Pj5P/U1NX/7u7v//Dw8f/z8/T/9PT0//T0 + 9P/09PT/9PT0//Ly8//y8vP/8vLz//Ly8//6+vr/AAAATAAAABhxcXEFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+7v + 7//t7u//7O3v/+3u8P/s7e//7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/7O3u/+vt7v/r7e7/6+zt/+vs + 7f/q7O7/6uzu/+rs7v/q6+3/6uvt/+nr7P/p6+3/6ers/+Lj5P/Y2tv/3d7g/9ze4P/b3d7/09XX/9fZ + 2v/a29z/29ze/9jZ2v/Jy8z/zM3P/8nLzP/Exsf/v8HD/8bIyv/Jy8z/yszN/8rMzf/KzM7/yszO/8vM + zv/Lzc7/y83P/8zNz//Lzc7/zc7P/9PT1P/W1tb/19fX/9jY2P/Y2Nn/2NjZ/9jY2P/Y2Nj/19fY/9fX + 1//W1tb/1tbX/9bW1v/W1tb/1dXW/9XV1v/V1db/1tbW/8zMzf/h4eL/39/f/+Hh4f/j4+T/4+Pk/+Tk + 5f/k5OT/5OTk/9XV1v/v7/D/8PDx//Pz9P/19fX/9fX1//X19f/09PT/9PT0//Pz9P/z8/T/8/P0//v7 + +/8AAABMAAAAGHJycgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+Tl5v/S1NX/yMnK/9DR0//R0tP/09TW/9ja + 2//T1db/0tPU/87Q0f/R0tT/3+Hi/+Xm6P/r7O3/6uzu/+rs7v/q6+3/6uvt/+nr7f/h4+T/29ze/9TW + 1//f4eP/zs/R/9TV1//R09X/zM7P/9XX2P/NztD/zM3P/83P0f/MztD/xsjJ/76/wf/AwcP/u72//7q7 + vf+6vL3/vb/A/8DCxP/Dxcb/wMLD/8DBw/+/wcP/v8HC/8LExf/BwsT/wMLD/8TFx//Gx8j/yMnJ/8vL + zP/Q0ND/z8/P/8/Pz//R0dH/0NDQ/8/P0P/Q0NH/0tLS/9DQ0P/Q0ND/0NDQ/9DQ0f/Q0ND/0NDR/9DQ + 0P/Q0ND/x8fH/9zc3P/Z2dr/29vc/97e3v/g4OD/4uLj/+Li4//j4+P/1tbX/+vr7P/x8fL/9PT1//b2 + 9//19fX/9fX1//X19f/19fX/9PT1//T09f/z8/T/+/v7/wAAAEwAAAAYcnJyBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v + 8P/t7/D/4+Tl/8jJyv/c3d//19jZ/+Dh4//h4uT/1tfZ/9rb3P/d3+D/3t/g/+Di4//X2dr/5ebo/+rs + 7v/q7O7/6uzt/+rr7f/p6+3/6evt/+Hj5f/Z2tv/4OHj/9rb3f/T1db/1dfY/9LU1f/S1NX/1tja/9DS + 1P/Iycv/wsPE/8HDxP+3ubr/uLm6/72+v/+7vb7/ury+/7m6vP++v8D/wcLD/8PExv+9v8D/vr/B/8HC + w//AwcL/wMHD/8HDxf/BwsT/xcbH/8fIyv/MzM3/zs7P/9DQ0f/S0tL/0dHS/9HR0v/R0dH/0dHR/9HR + 0f/S0tL/z8/Q/8/Pz//Ozs//zs7O/83Nzv/Nzc7/zc3O/8zMzP/ExMX/1dXV/9TU1P/V1db/19fY/9jY + 2f/Z2dn/2trb/9vb3P/V1dX/4ODh/+/v8P/09PX/9vb3//b29//29vb/9vb2//b29v/19fX/9PT1//T0 + 9f/8/Pz/AAAATAAAABhycnMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3v8P/t7vD/4ePk/+3u7//s7e//7O3v/+zt + 7//t7u//7O7u/+zt7v/s7e7/6Onr/+nr7P/r7O7/6uzu/+rs7v/q7O3/6uvt/+nr7f/p6+3/6Orr/+fp + 6v/m6On/6Orr/9ze3//b3d7/3N7g/9rc3f/V19n/xMbI/7m7vf+8vsD/vsDC/7q7vf+7vb7/vsDB/77A + wv+9vsD/vL2//7/Awf/BwsT/wcPF/8DBw//AwcL/v8DC/77Awf+9v8D/vL7A/7y+v/+9vr//vr/B/8LC + w//ExMX/xcXF/8XFxf/Gxsb/xcXG/8XFxv/FxcX/xcXF/8TExf/ExMT/wsLD/8HBwv/BwcH/wMDA/7+/ + v/+/v7//v7+//7y8vP/BwcL/w8PD/8bGxv/R0dH/0NDR/83Nzv/MzMz/y8vM/8rKy//S0tL/6+vs//T0 + 9f/29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//39/f8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v + 8P/u7/D/7u/w/+zt7//Y2dv/6err/93f4P/k5ef/5OXm/+fp6v/h4+P/5+jp/+Hi4//q6+3/5+nq/+bn + 6f/q7O7/6uzt/+rr7f/p6+3/6evt/+rs7f/h4+T/4OLj/93f4P/h4uT/2dvc/9XX2f/Q0tT/ycvM/83O + 0P/Bw8X/t7m6/7a4uP+6vL7/tbe3/7e5uv+4ubv/tbe5/7S2t/+wsrP/uLq7/7u9vv+9v8D/vL7A/72+ + wP+8vr//vL7A/76/wf++v8H/vL6//72/wP++v8D/xMXG/8fIyP/Kysv/ysrK/8rKyv/Jycr/ycnJ/8nJ + yf/Jycn/yMjJ/8bGxv/Gxsf/xsbG/8TExf/CwsL/wsLD/8HBwf+/v8D/vr6+/76+v//Dw8P/wMDA/7u7 + vP+7u7v/vLy8/8DAwP/Gxsf/x8fI/83Nzv/r6+z/9PT1//b29//39/j/9/f4//f39//39/f/9vb2//b2 + 9v/19fb//f39/wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/t7vD/4+Tm/9PU1v/Excb/1tfZ/9LT + 1f/V19f/1tfY/9bY2f/NztD/09TW/+bo6v/d3+D/6evt/+rs7v/q7O3/6evt/+nr7f/q7O3/6uvs/+Hj + 5P/g4uP/293f/+Pl5v/Dxcb/v8HC/8jKy//Fx8j/ycvM/7y+v/+1t7n/s7W3/7a4uf+2uLr/tLa4/7a4 + uv+0trf/r7Gz/7Kztf+0tbf/tri6/7m7vP+3ubr/uLq7/7q7vf+6vL3/vL2//7u9vv+8vr//vb/A/8DB + wv/Cw8P/xcXF/8rKy//IyMn/yMjI/8nJyv/Hx8j/xMTE/8XFxf/Gxsf/wsLC/8DAwP/AwMH/vb29/7y8 + vP+8vLz/u7u7/7m5uf+4uLj/t7e4/7y8vf+9vb3/wMDA/8HBwv/CwsL/vLy9/7W1tv+1tbb/0tLS//Hx + 8v/19fb/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b29//+/v7/AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v + 8P/u7/H/7u/x/+3u8P/i5OX/y8zN/+Dh4//b3d7/5ufo/+bn6P/b3d7/3t/g/+Tm5//g4uP/3N7g/9/g + 4f/k5uf/6uzu/+rr7f/q6+3/6uzt/+rs7f/p6+z/4OHj/9vd3v/d3uD/293e/93f4P/Q0tP/1NbY/9LU + 1v/Z29z/1tja/83O0P/Jys3/0dLU/8zO0f/O0NL/0tTW/83P0v/O0NH/ycvM/83P0P/Q0tP/0dPU/8vO + z//Nz9D/z9HS/87Q0f/O0NL/0dLU/8/R0//U1db/1tfY/9zc3f/h4eH/4uLj/+Tk5f/h4eH/3t7e/9ra + 2//Z2dr/19fX/9jY2P/U1NT/09PU/9LS0v/T09P/0tLT/9TU1P/V1dX/1tbW/9fX1//W1tb/2NjY/9fX + 1//a2tr/2dnZ/9nZ2f/X19j/1tbX/9TU1P/w8PH/9vb3//f3+P/39/j/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//7+/v8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz09vb/7u/w/+7v8f/t7/D/7e/w/+3u8P/t7vD/7O7v/+zu + 7//t7u//7O7v/+zu7//s7e7/6+3v/+vt7//r7O7/6+zu/+rs7v/q7O3/6uzt/+rs7f/q7O3/6uvs/+rr + 7P/p6+z/6evs/+jq7P/m6Or/6Ors/9bY2f/g4uT/5Obn/+Tm5//i5Ob/3uDi/9fZ2//S1Nb/zM7Q/9HT + 1f/T1db/0dPV/87Q0v/P0dP/1dfY/9bY2f/W2Nn/1djZ/9TW2P/U1tf/1NbX/9PV1v/S1NX/0tPV/9PV + 1v/W19n/3N3d/+Hh4f/k5OT/5OTk/97e3//X19j/1tbW/9bW1v/W1tf/19fX/9jY2P/Y2Nn/2dna/9TU + 1P/Nzc7/zs7O/87Ozv/Nzc3/zc3N/87Ozv/e3t//5OTk/+fn6P/o6Oj/5+fn/+Tk5f/c3Nz/5ubn//b2 + 9//39/j/+Pj5//j4+f/4+Pn/+Pj5//f3+P/39/j/9/f3//f39//39/f//v7+/wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/u7/D/7u/x/+7v8P/t7vD/5+jq/9LU1f/d3uD/1NbX/93e3//b3d7/4eLj/9vc3f/c3d//29ze/+Dh + 4v/g4uT/5OXn/+rs7f/q7O3/6uzt/+rs7f/q7O3/6evs/+Hj5P/e4OL/3uDi/97g4v/c3d//19nb/8nL + zP/Y2tz/3uDh/97g4v/h4+X/1dfZ/83P0f/Hycv/ztDS/9TW1//R09T/z9HT/9DS1P/P0dP/0NLU/9HT + 1P/P0dP/0NLT/9LU1v/T1df/z9HT/9HT1f/Q0tP/0NLT/9TV1v/Y2Nn/2dra/9na2v/X19j/1dXW/9DQ + 0f/R0dL/zMzM/8zMzP/Ly8v/zc3N/87Ozv/Nzc7/09PT/9ra2v/b29v/29vc/9vb3P/b29v/2trb/+Tk + 5f/l5eb/6Ojo/+jo6f/m5uf/4+Pj/9vb2//19fX/+Pj4//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/+/v7/AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8f/u7/H/7u/w/+3v8P/k5ef/z9DS/8rM + zf/Nz9D/0tPU/9bX2f/Lzc7/z9DS/87P0f/Nzs//2Nrb/9bY2f/l5+j/6+3u/+vs7f/q7O3/6uzt/+nr + 7f/p6+z/2tzd/9ja3P/Q0tP/2tzd/9vd3v/X2dv/zc/Q/8bJyv/U1tf/1tjZ/9rc3f/P0dP/0NLU/8DC + xP/GyMr/yszO/8zO0P/Lzc7/ztHS/9LU1v/Q0tT/0NLT/8vNz//Jy83/yMrL/8fIyv/Excf/yczN/8vN + z//KzM3/zc7P/9fY2P/T09T/w8TE/7i4uf+5ubn/vLy8/8XFxf/Q0ND/1tbW/9PT1P/Y2Nn/2NjY/9jY + 2P/X19j/19fY/9fX1//Y2Nj/2dna/9vb2//b29v/5OTl/+Xl5v/o6Oj/5+fo/+Tk5f/Y2Nj/8vLy//f3 + 9//4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz19vb/7u/w/+7v8P/u7/D/7e/v/+Xm5//Q0tL/4ePk/+vs7f/r7O3/6+zt/+jq6//p6+z/6+3u/+nr + 7P/b3d7/3d/g/+nr7P/r7O3/6uzt/+rs7f/q6+3/6uvt/+nr7P/o6uv/6Onr/+fp6v/m6On/5+nq/+bo + 6v/n6er/2Nrb/9ve3//e4OL/4OLj/9ze3//a3N7/yczN/8vNzv/Q0tP/1NbY/9LU1f/U1tf/0NLT/9HT + 1P/Q0tP/ztDR/83P0P/O0NH/zc/Q/83P0P/KzM7/ycvN/8rMzf/O0NH/1tfY/9XW1v/FxcX/xMTE/7+/ + v//Hx8f/09PT/9XV1f/U1NT/0dHR/9TU1P/U1NT/1NTU/9TU1P/U1NT/09PT/9PT0//W1tb/2dnZ/9ra + 2v/l5eX/5eXl/+fn5//m5ub/3d3d/+jo6P/39/f/+Pj4//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+3v7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//s7u//7O3u/+zt7v/r7e7/6+zu/+vs7v/r7O3/6+zu/+vs7f/q7O3/6uzt/+rr + 7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq6//o6uv/5+nr/+jq6//o6uv/z9LT/93f4f/W2Nn/3uDh/93f + 4P/NztD/yszN/8vNzv/Q0tP/0dTV/9PV1v/T1db/0NLT/87Q0v/Q0tP/0tTV/9LU1f/R1NX/0tTV/9LU + 1f/S1Nb/09XW/9XW1//R0tL/2tra/87Ozv/Jycn/xMTE/8/Pz//Y2Nj/29vb/9vb2//a2tr/2tra/9ra + 2v/Z2dn/2dnZ/9jY2P/X19f/1NTU/9PT0//V1dX/2NjY/+Xl5f/k5OT/5eXl/+Tk5P/d3d3/9fX1//j4 + +P/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb2/+7v8P/u7/D/7u/v/+3u7//d3t//5ufo/9LT1P/Nzs//1tjZ/9na2//S1NX/ztDR/9nb + 3P/c3d7/3N7f/9ze3//U1tf/1tfZ/9ze3//e3+D/19na/9fZ2v/U1tf/5OXn/+jq7P/o6uv/6Orr/+jq + 7P/c3t//293f/9bZ2v/Y29z/zc/R/9DS0//R09T/1dfY/8vNz//Hycv/xcfJ/8HExf/Fx8n/w8XG/8LE + xf/Exsf/yMrM/8nLzf/MztD/zM7Q/8rMzf/Mzc7/zc/Q/83P0f/Mzs//0dLT/87P0P/Nzs7/zs7O/8HB + wf+8vLz/ycnJ/9HR0f/S0tL/09PT/9TU1P/S0tL/1NTU/9bW1v/V1dX/1NTU/9zc3P/a2tr/1dXV/9PT + 0//U1NT/4+Pj/+Li4v/i4uL/2dnZ//Pz8//39/f/+Pj4//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v8P/u7+//7e7v/9jZ + 2v/Iycr/0tTV/8HDxP/P0NH/2dvc/9HT1P/Nzs//zM7P/9PV1v/T1NX/0dLT/9LU1f/Mzs//19na/9jZ + 2v/W19n/ztDS/9TW1//j5eb/6ers/+jq6//p6+z/6Ors/9vd3//c3t//1djZ/93f4P/Q0tP/zdDR/8/R + 0//P0dP/ycvN/8jLzP/Fx8n/ury+/7u8vv+9v8H/vcDB/8HDxf/Mzs//ycvN/8vNz//Oz9H/yszO/8zO + z//Nz9D/z9HS/87Q0f/S1NX/z9DR/87Oz//Q0ND/xMTE/729vf/Ozs7/1dXV/9TU1P/V1dX/1tbW/9TU + 1P/W1tb/2dnZ/9nZ2f/X19f/1NTU/9zc3P/Z2dn/09PT/87Ozv/d3d3/39/f/9zc3P/p6en/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29v/u7/D/7u/w/+7v8P/t7+//5ebn/9PU1f/h4+T/7e7v/+3u7//s7u//7O7v/+zt + 7v/r7e7/6+zu/+zt7v/r7e7/6+zu/+vs7f/q7O3/6uzt/+nr7P/j5Ob/6evs/+nq7P/o6uv/6evs/+jq + 7P/o6uv/6Orr/+fp6//n6ev/5+nr/+bp6v/T1df/2dzd/9rc3v/Q09T/0tTV/8zOz/+7vb7/uLu8/7m7 + vP++wMH/xMbH/8jLzP/Iy8z/yczN/8zOz//Mz9D/zc/R/83P0f/O0NL/0NHT/9LU1f/Oz9D/0dLS/9HR + 0v/Dw8P/w8PD/87Ozv/X19f/19fX/9fX1//V1dX/1tbW/9XV1f/V1dX/1NTU/9TU1P/R0dH/zs7O/9bW + 1v/S0tL/yMjI/9bW1v/Z2dn/29vb//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8P/u7/D/7e/v/+3v + 7//t7u//7u/w/+3v7//s7u7/7e7v/+Dh4v/r7e7/7O3u/+vt7v/r7e7/6+3u/+rs7f/r7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+z/6Ors/+jq7P/p6+z/6Orr/+fp6//o6uv/5+nr/+fp6v/n6er/5+nq/+Lk + 5f/R1NX/2Nvc/8/S0//S1NX/yszO/8PGx/+3ubv/srS2/7S2t/+3ubr/uLq8/7q8vf+7vr//vb/A/7/B + w//Bw8X/wsXG/8TGx//GyMn/ycvL/8bHx//Jysr/ysrK/7y8vP+9vb3/ysrK/9DQ0P/Q0ND/0NDQ/8/P + z//Nzc3/zc3N/8zMzP/Ly8v/ysrK/8nJyf/FxcX/xMTE/8vLy//ExMT/09PT/8/Pz//w8PD/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7vDw/+7v8P/u7+//7e/v/9fY2f/Z29v/y83N/7i5uv/Jy8z/xsfI/87P + 0P/Mzc7/xMXG/9XX2P/Jy8z/z9DR/9TW1//n6er/6uzt/+rs7f/q6+3/6evs/+nr7P/a3N3/2tzd/9HS + 1P/a3N7/2Nrb/9fZ2v/T1df/19na/9vd3//d4OH/2tze/87R0v/MztD/xsnK/8fJy//Fx8n/xMfJ/7q8 + vv+3ubr/srS1/7K0tf+xs7T/sbK0/7Cys/+xs7X/ubu9/7u9vv+9v8H/v8LD/8PGx//Jysv/x8jJ/8vM + zP/MzMz/wMDA/8HBwf/Nzc3/0dHR/9HR0f/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8zMzP/Ly8v/y8vL/8rK + yv/Gxsb/ycnJ/8vLy//X19f/5ubm//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u8PD/7u/w/+7v + 8P/t7+//19jZ/8bHyP/Mzc7/0tPU/9na2//S1NX/3uDg/9vd3v/P0NH/2dvc/9rc3f/Z29z/3+Hi/+fo + 6v/q7O3/6uzt/+nr7P/p6+z/6evs/9bY2f/d3uD/2tzd/9vd3v/e4OH/3d/g/9nb3P/c3uD/293e/+Xn + 6f/e4OL/2t3e/87R0v/Hysv/x8rL/8vNz//JzM7/wsXH/8XHyf/Fx8n/xMbI/7/Bw/+/wcL/wMLE/77B + wv/AwsT/v8HD/77Awv+/wcP/wsTF/8jKy//Iycr/0NHR/9HR0f/Kysr/zc3N/9XV1f/Y2Nj/19fX/9fX + 1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1dXV/9TU1P/Q0ND/0NDQ/+Li4v/39/f/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7w8P/u7/D/7u/w/+3v7//q7Oz/3+Dh/+rs7f/t7u//7e7v/+3u + 7//s7u//6+zt/+nr7P/s7e7/6+3u/+vt7v/r7e7/6uzt/+rs7f/q7O3/6evs/+nr7P/p6+z/5+nq/+nr + 7P/n6Or/6Ors/+jq6//n6er/5ujp/+fp6v/m6er/5ujq/+Tm6P/l6On/4uTm/9HU1v/O0dL/zM7Q/8zO + 0P/O0dL/0NLU/9HT1f/R09X/0dPU/9DT1P/P0tP/ztHS/83P0P/Mzs//yszN/8fJy//HyMn/x8nK/8fI + yf/Ozs7/0dLS/9LS0v/a2tr/4ODg/+Li4v/h4eH/4eHh/+Dg4P/g4OD/4ODg/9/f3//e3t7/29vb/9nZ + 2f/a2tr/2tra/9ra2v/d3d3/+Pj4//n5+f/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7/Dw/+7v + 8P/u7/D/7u/v/+jq6v/r7e3/5OXm/9rc3P/l5uf/4uPk/+Tl5v/b3d3/4eLj/+Dh4v/f4eL/5Obn/+jq + 6//q7O3/6uzt/+rr7f/q6+3/6evs/+nr7f/o6uv/5ujp/+jq7P/o6uz/6Orr/+fp6//n6ev/5+nq/+bp + 6v/m6Or/5ujp/+bo6v/m6Or/5ejp/+Xo6f/l5+n/4+Xn/93f4f/a3d7/2Nvc/9XY2f/U19j/1djZ/9ja + 3P/Z293/2dvd/9nb3f/Z293/2Nrc/9fZ2v/X2dr/0tPT/9jY2P/d3d7/5OTk/+7u7v/v7+//7+/v//Dw + 8P/w8PD/8fHx//Ly8v/z8/P/8/Pz//T09P/39/f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//v8PD/7u/w/+7v8P/u7+//1tjY/8LDxP/Lzc3/wcLD/8HC + w//Hycn/zM3O/8jJyv/Iycr/0NLT/8nLzP/X2dr/6uzt/+vs7f/q7O3/6uzt/+rr7f/p6+z/6evt/+Tm + 6P/e4OH/6Ovs/+jq6//o6uv/5+nr/+fp6v/n6er/5ujq/+bo6v/m6er/5ujq/+Xo6f/l6On/5efp/+Xn + 6f/l5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/f4uT/2t3f/9ja3P/U19j/19nb/9nb3f/Z293/2tzd/9ze + 3//b3N3/5OXl/+fn5//s7Oz/9PT0//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+/w + 8f/u8PD/7u/w/+7v8P/Z2tr/zM3O/8/Q0f/X2dr/09TV/+Dh4v/k5eb/1tjY/+Lj5P/e4OH/3t/g/+Tl + 5v/n6er/6+3u/+rs7f/q7O3/6evs/+rs7f/q7O3/3N7f/9/h4v/p6+z/6Orr/+jq6//n6ev/5+nr/+bp + 6v/m6Or/5unq/+bp6v/m6Or/5ujq/+Xn6f/l5+n/5Ofo/+Tn6P/k5+j/5Obo/+Tm6P/j5uj/4+bn/+Tm + 6P/j5uj/4+bo/+Pm5//d3+H/2Nrc/9XX2P/a3N3/293e/+Lj5P/y8/P/9fb2//n5+f/6+vr/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19/f/7/Dx/+/w8P/u7/D/7u/w/+/w8f/u8PD/7u/w/+3v + 8P/t7+//7e7v/+zu7//s7u7/7O3u/+zu7//s7e7/6+3u/+vt7v/q7O3/6uzt/+rs7f/p6+3/6uzt/+nr + 7f/p6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5unq/+fp6//n6er/5ujq/+bo6f/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/4+bo/+Pm6P/j5uf/4+bn/+Pm5//j5uf/4+bn/+Pm5//j5uf/4uXm/9nb + 3f/U1tf/7O3u//T09f/4+fn/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPb3 + 9//v8PH/7/Dw/+7w8P/u7/D/7/Dx/9PU1f/n6On/0NHS/97g4P/c3d7/2Nna/9fY2v/W2Nj/3+Hi/+Dh + 4v/j5eb/6+3u/+vs7f/q7O3/6uzt/+rr7f/q7O3/6evt/+Di5P/j5eb/4ePk/+Pl5v/o6uv/4OPk/+fp + 6v/n6er/5+nr/+bp6v/m6Or/5ujp/+Xo6f/l5+n/5Ofp/+Tn6P/k5uj/5Obo/+Pm6P/j5uj/4+bn/+Pm + 5//j5ef/4+Xn/+Pm5//j5uf/4+bn/+Pm5//j5uj/5Obo/+Pl5v/s7u7/8/T0//n5+f/7+/v//Pz8//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9vf3/+/w8f/v8PH/7vDw/+7v8P/p6uv/vb6//8jJ + yv+3ubn/xcbH/8jJyv/Jysv/vr/A/8vMzf/LzM3/0NLT/+Xm5//r7e7/6+zt/+rs7f/q7O3/6uzt/+rs + 7f/R09X/0dPU/+Pl5v/Hycr/5Ofo/9XX2f/U1tf/5+nq/+fp6//n6er/5unq/+bo6v/l6On/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Ll5//j5ef/4+Xn/+Pl5//j5uf/4+bn/+Pm + 5//k5uj/5ujq/+zt7v/z9PT/+fn5//v7+//8/Pz/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7/Dx/+/w8f/u8PD/7vDw/9jZ2v/s7e7/19nZ/+vt7f/q7O3/6evr/+nq6//l5uf/6uzs/+rs + 7f/q7O3/6uvs/+vt7v/r7e3/6uzt/+rs7f/q7O3/6uzt/+fq6//a3N3/6evs/9nb3P/o6uz/5ujq/9vd + 3//n6ev/5+nr/+fp6v/m6er/5ujq/+Xo6f/l5+n/5efp/+Tn6P/k5+j/4+bo/+Pm5//j5uf/4+bn/+Pm + 5//j5uj/4+Xn/+Ll5//i5ef/4uXn/+Pl5//j5ef/4+bn/+Pm5//m6On/6+3u//Pz9P/4+fn/+/v7//z8 + /P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPb3+P/w8fH/7/Dx/+/w8f/v8PD/7u/w/+/w + 8f/u8PD/7u/w/+7v8P/t7/D/7e7v/+3u7//s7u//7e7v/+zu7//s7u7/6+3u/+vt7v/q7O3/6uzt/+rs + 7f/q7O3/5Obn/+nr7P/p6+z/6evs/+jq7P/o6uv/5+nr/+fp6//n6ev/5+nr/+bp6v/m6Or/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/j5uj/4+bo/+Pm6P/g4+X/3uHj/+Pm5//j5uf/4+bn/+Pl5//i5eb/4uXm/+Pl + 5//j5ef/4+bn/+bo6f/r7O3/8vPz//j5+f/7+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAA + ABgAAABM9vf4//Dx8f/v8fH/7/Dx/+/w8P/m5+j/xsfI/83Oz//W2Nj/09TV/+7v8P/t7+//7e7v/+zu + 7//t7u//7O7v/+zu7v/s7e7/6+3u/+rs7f/b3d7/3N7f/9fZ2v/Jy8z/0tXW/+Lk5f/d3+D/3+Lj/9XX + 2f/X2dv/19rb/9ja3P/Y2tz/2dvc/+Lk5v/b3t//2dvd/9jb3P/c3+D/3d/h/9/i5P/a3d//2t3e/93g + 4v/Y293/4+bn/+Pl5//j5ef/4+Xn/+Pl5//j5uf/4uXm/+Pl5//j5uf/5efp/+rs7f/y8/P/+Pj5//v7 + +//8/Pz//Pz8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz29/j/8PHy//Dx8f/v8PH/7/Dx/9TV + 1v/l5uf/w8TF/8HDw//Mzs7/7u/w/+3v7//t7u//7O7v/+3u7//s7u//7O7v/+zu7v/r7e7/6+3u/9DS + 0//U1tf/yszO/8fJyv/S1Nb/4ePk/9ze3//V19j/0tXW/9rd3v/U19j/1tja/9nc3f/V2Nn/4+Xn/9TX + 2P/b3t//1dfZ/9vd3//a3d7/4uXm/9rc3v/Z293/2t3f/9nc3v/i5ef/4uXn/+Pl5//i5ef/4uXn/+Pl + 5//j5uf/4uXm/+Pl5//l5+n/6uzt//Hy8//4+Pj/+vv7//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPb4+P/w8fL/8PHy//Dx8f/v8PH/5ebm/+vs7f/h4uP/6+zt/+bn6P/u7/D/7e/w/+3u + 7//s7u//7O7v/+zu7//s7u//7O7v/+zt7v/r7e7/4+Tl/+rs7f/l5+j/5ufo/+rs7f/p7O3/4+Xm/+Pl + 5v/o6uv/6Orr/+fq6//n6uv/5+nr/+fp6v/m6Or/4ePl/+Xn6f/h4+X/5Ofo/+Tn6f/k5uj/4+bo/+Pm + 5//j5ef/4+Xn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4+Xn/+Pl5//j5ef/4+Xn/+Xn6P/p6+z/8fLy//f4 + +P/6+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+/x8v/v8PL/7/Dx/+/w + 8f/v8PH/7u/w/+/w8f/u7/D/7u/w/+3v8P/u7/D/7e/w/+3u7//s7e//7O7v/+zt7//Y2tv/6+3u/+vt + 7v/r7O3/6+zt/+rs7f/q7O3/6evt/+nr7f/p6+z/6Orr/+jq6//m6Or/3eDh/+Di5P/d3+H/5ujq/+bo + 6v/m6On/5ejp/+Xn6f/k5uj/5Obo/+Pm5//j5uj/4+bn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4uXn/+Ll + 5//i5ef/4uXn/+Ll5//j5ef/5Ofo/+nr7P/w8fL/9/f4//r6+//7+/z/+/v8//v7+//7+/v/+/v7//v7 + +//7+/v/+vr7//r6+//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fr/+fn5//n5 + +f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz3+Pn/7/Hx/+/w8f/v8PH/7/Hx/+Di4v/Gx8j/tre4/7q8vP/Mzc7/z9DR/8nK + y//HyMn/x8nK/8bIyf+9v8D/0NLT/8LExf/f4eL/7O3u/+vt7v/r7O3/6uzt/+rs7f/p6+z/6evs/9DS + 1P/Q0tT/1tna/9ja2//O0NL/2dvc/9XX2f/P0tP/0tXW/9rd3//j5uf/2t3e/9jb3P/Z293/2Nvd/9ve + 4P/c3uD/4uXn/9ve4P/c3+D/3N/g/9jb3P/a3N7/2dzd/9nc3v/X2tz/2Nrc/+Pl5//k5+j/6evs//Dx + 8v/29/f/+vr6//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPf4+f/w8fH/7/Hx/+/w + 8f/v8PH/4OHi/7a3uP/Mzs7/3N3e/9PU1f/Mzc7/1dfX/8bHyP/Nzs//3N3e/9bX2P/O0NH/3N3e/9XX + 2P/s7e7/6+3u/+vt7v/q7O3/6uzt/+nr7P/p6+z/0tTU/9PW1//b3t//2tze/97g4f/b3d7/2tze/9ze + 3//c3uD/2dzd/+Xn6f/a3d7/3N7g/93f4f/d3+H/3N/g/97h4v/h5Ob/2t3e/9rd3//c3+D/3eDi/97g + 4v/Z3N7/2t3e/93g4v/d4OH/4+Xn/+Tm6P/o6uz/8PHx//b39//5+fn/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9///////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1eBQAAABgAAABM9/j5//Dx8v/w8fH/7/Dx/+/w8f/v8fH/3d/f/+7v8P/v8PH/7vDw/+7v + 8P/u7/D/7e/v/+7v8P/t7+//7e7v/+zu7//s7e7/6+3u/+vt7v/r7e7/6+3u/+vs7f/q7O3/6uzt/+nr + 7P/n6er/5Obn/+nr7P/o6uz/6Orr/+fp6//n6er/5+nq/+bp6v/m6er/5ujq/+Pm5//l5+n/5Ofo/+Tm + 6P/k5uj/4+bn/+Hk5v/e4eP/4OPk/+Ll5v/i5ef/4uXn/+Pl5//i5eb/4uXn/+Ll5//j5uf/5Obo/+jq + 6//v8PH/9vb2//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz3+fn/8PHy//Dx + 8f/w8fH/7/Dx/+/w8f/W2Nj/4ePj/+bn6P/b3N3/5+jp/9jZ2v/Nzs//4OHi/+Xm5//t7+//7e7v/+zu + 7//s7e7/6+3u/+vt7v/r7e7/6+3u/+Hi4//e3+H/09XW/+bo6f/d3+D/4ePk/9/h4v/i5Ob/5Obn/+Pl + 5//k5uf/4uTl/93g4f/j5uf/3d/g/+Ll5v/i5Ob/4eTm/+Hj5f/e4OL/3uHj/9/h4//b3uD/4uTm/+Ll + 5//j5uf/4uXn/+Ll5//j5ef/4+Xn/+Pm5//k5+j/6Orr/+/w8f/19vb/+fn5//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXgUAAAAYAAAATPj5+f/w8fL/8PHy//Dx8f/v8fH/1tjY/9bX2P++wMD/ysvM/8zN + zv+trq//ycvL/8jKyv/Mzs7/7O3u/+3v8P/t7u//7O7v/+zt7v/s7e7/6+3u/+zt7v/r7e7/1tjZ/8rM + zf/R09T/ztDR/8/R0v/W2Nn/zM7P/8rMzf/U1tf/2Nrb/9vd3//W2Nn/09XX/9fZ2//d3+H/1NfY/93f + 4f/W2Nr/2Nvc/9rd3v/a3N7/19rc/9ve4P/j5ef/4+Xn/+Ll5//i5ef/4+Xn/+Pm5//j5uf/4+bn/+Xn + 6P/o6uv/7u/w//X19v/5+fn/+vr7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39///////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+Pn6//Dx + 8v/v8PL/7/Dy/+/w8f/i5OX/x8jJ/9PU1v/S09T/19na/97g4f/k5eb/3N3e/97f4P/i4+T/7e7w/+zu + 7//s7e//7O7v/+zt7v/r7e7/6+3u/+vs7v/Nzs//1NbX/+Pl5v/f4eL/293e/9PU1v/d3+H/4OLk/9vd + 3v/d3+H/3N7g/9bZ2v/X2dv/2tze/+Di5P/U19j/3eDh/9nb3f/Z3N3/19nb/9bZ2//Z293/2t3f/+Pl + 5//j5uf/4+bn/+Pm5//j5uf/4+bo/+Tm6P/k5uj/5Obp/+jq6//u7/D/9fX1//n5+f/6+/v/+vr7//r6 + +//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABdXl4FAAAAGAAAAEz4+fr/8PHy/+/x8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+7w + 8f/u8PH/7u/x/+7v8P/u7/D/7u/w/+3v7//t7vD/7O7w/+zt7//s7e//7O7v/+zt7v/r7e7/6+3u/+rs + 7v/q7O7/6uzt/+rs7f/q7O3/6evs/+nr7P/o6uz/6Ors/+jq6//o6uv/5+rr/+fp6//m6er/5ujq/+Xo + 6v/l5+r/5efp/+Xn6f/k5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Pm6P/k5uj/4+bo/+Pm + 6P/k5+j/6Orr/+7v8P/09fX/+fn5//r6+v/6+vv/+vr7//r6+v/6+vr/+vr6//r6+v/6+vr/+fn6//n5 + +v/5+fr/+fn5//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9vb3//b29//29vf/9vb3//b29//29vb//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1eXgUAAAAYAAAATPn6 + +v/w8fP/8PHy/+/x8v/v8PL/3+Di/8rLzP/Z2tv/0dLU/9TV1v/R09T/3d7f/9rc3P/Mzc7/2dvc/9fZ + 2v/i5OX/7O7w/+zt7//s7e//7O3u/+zt7v/r7e7/293e/9TW2P/d3uD/09XW/9nb3P/q7O3/3N7f/9fZ + 2v/b3d7/3eDi/9XX2f/h4+T/5efp/+Hj5f/k5uj/5ujq/+bo6v/l5+r/5efq/+Xn6f/k5+n/5efp/+Tn + 6f/k5+j/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Xn6P/o6uv/7u/v//T19f/4+Pn/+fn6//r6 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+v/5+fr/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//b29v//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+fr6//Dx8v/w8fH/8PHx/+/w8f/P0NH/5+jp/8rL + zP+9vr//uru8/7i5uv/BwsP/w8TF/62vr//Bw8P/xcbH/+Tm5v/t7u//7O7v/+zt7v/s7e7/7O3u/+zt + 7v/Q0tP/6+zt/9DS0//a29z/xsjJ/9TW1//Mzs//6evs/9PV1v/W2Nn/0dPV/+fp6//i5Ob/2dvd/83P + 0P/i5OX/5ujq/+bo6v/m6On/5efp/+Xn6f/l5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tn6P/k5uj/5Ofo/+Tn + 6P/l5+n/5efp/+jq6//t7+//9PT0//f4+P/5+fn/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXl4FAAAAGAAA + AEz5+vr/8PHy//Dx8v/w8fH/8PHx/9vc3P/p6uv/4uPj/+rs7P/v8PH/7O3u/+vt7f/r7e3/6err/+3v + 7//s7e7/6+zt/+3v7//t7u//7O7v/+zt7v/s7e7/7O3u/9rb3P/r7e7/2dvc/9HS0//V19j/09TV/9LU + 1f/p6+z/5+nq/+Hj5P/T1db/5+nq/9ze3//f4eP/4+Xn/+fp6v/n6er/5ujq/+bo6v/m6Or/5ujq/+Xo + 6f/l6On/5efp/+Xn6f/l5+n/5efo/+Xn6P/l5+n/5efp/+Xn6f/m6On/6Orr/+zu7//y8/T/9/f4//n5 + +f/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPn6+//w8fH/8PHy//Dx8v/w8fH/8PHx/+/w + 8f/v8PH/7/Dx/+/x8f/v8PH/7/Dx/+7w8P/u7/D/7u/w/+7v8P/u7/D/7e/v/+3u7//t7u//7O7v/+zt + 7v/s7e7/7O3u/+vt7v/r7e7/6+zt/+rs7f/q6+z/6uvs/+rs7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq + 6//n6ev/5+nr/+fp6v/n6ev/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ejp/+Xo6f/l6On/5ejp/+Xn + 6f/l5+n/5efp/+Xn6f/o6er/7O3u//Lz9P/39/f/+fn5//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9fX1//X19f//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAA + ABgAAABM+fr7//Dx8f/w8fH/7/Dy/+/w8v/v8PH/1dbW/7m6vP/Nzs//0NHR/9LU1f/AwcL/vb6//9LU + 1f/W19j/7e/v/+3u7//t7vD/7O7v/+zt7//t7u//7O7u/+zt7v/r7e7/6+3u/+rs7v/q7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+3/6Ors/+jq7P/o6uz/6Orr/+jq6//o6uv/5+nr/+fp6v/m6er/5ujq/+bo + 6v/m6Or/5ujq/+bo6v/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/m6On/5ujp/+jp6//s7e7/8vP0//b2 + 9//4+Pn/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/4+Pj/+Pj4//f3 + +P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb2//b29v/29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fX/9fX1//////8AAABMAAAAGHNzdAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz5+vv/7/Dx//Dx8f/v8PH/7/Dy/9zd + 3//BwsT/zMzN/8XGyP/AwcL/vL2+/7u8vv+xsrP/zs/P/7/Awf/t7u//7e7v/+zu7//s7e//7O3v/+zt + 7v/s7e7/7O3u/+vt7f/r7O3/6+zu/+rs7f/q6+3/6uvt/+rs7f/q6+z/6evs/+nr7P/p6uz/6Ors/+jq + 7P/o6uz/5+nr/+jq6//n6ev/5+nr/+fp6//n6er/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ujp/+bo + 6f/m6On/5ujp/+bo6f/m6On/6Onr/+vt7//x8vT/9vb3//j4+f/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX1//X19f/09PX//////wAA + AEwAAAAYc3N0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPn5+v/u7/D/7+/w/+/v8P/u7/H/5ufo/9na3P/g4eL/7e7v/+3u7//t7u//7O7v/9/g + 4f/g4uP/09TV/+vt7f/r7O3/6+zt/+vs7f/q6+3/6uvt/+nr7P/q6+z/6uvs/+nr6//p6uv/6Ors/+jq + 6//o6ev/6Onr/+jq6//o6ur/5+nq/+fp6v/n6er/5+jq/+bo6v/m6Or/5ujq/+bo6v/m6Or/5ujp/+bo + 6f/m6On/5ujp/+bo6f/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+n/5efp/+bo6v/o6ev/7O3v//Hy + 8//29vb/+Pj4//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//X1 + 9v/19fb/9fX2//X19f/19fX/9PT1//T09f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+zt7//s7e7/7e3u/+zt + 7v/s7e7/6+zu/+vs7f/q6+z/6uvs/+rr7P/p6uv/6err/+nq6//o6ev/5+jp/+fo6f/W19j/5+jo/+fo + 6f/n6On/5ufo/+bn6P/l5+j/5ufo/+bn6P/l5uf/5ebn/+Tm5//k5ef/5OXn/9fY2f/k5ef/4+Xm/+Pl + 5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xn/+Pk5v/j5Ob/4+Tm/+Pl5//j5ef/4+Xn/+Pl + 5//j5ef/5Obo/+Tm6P/l5+j/5ujp/+jq6//t7u//8vPz//b29v/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//T09f/09PX/9PT1//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz19fb/6uvs/+rr7P/p6uv/6urr/8XGx/+ztLX/np+g/6anqP+8vb7/n6Cg/6ip + qf+4ubr/wMHB/7Cxsf+mp6j/uru8/7Cxsv+vr7D/pqeo/8DBwv+vsLH/uru8/6Giov/P0NL/4OLi/+Hi + 4v+vsLL/s7S2/72+v/+8vb7/tba3/7S1tv+ur7D/wMHC/72+v//e3+D/3t/g/97f4P/e3+D/3t/g/97f + 4P/e4OH/3+Dh/9/g4f/f4eL/3+Hj/+Di4//h4uT/4uPl/+Lk5f/j5eb/5Obn/+bn6P/n6er/6uvs/+/v + 8P/z9PT/9vf3//f3+P/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3 + +P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPT09P/p6en/6Ojp/+fo + 6P/m5+f/wsLD/52dnv+wsbH/zc7O/8XGxv+tra7/oKGh/6usrP+lp6f/wsPD/8LDw//Cw8P/wMDB/8zM + zf+3t7j/u7y8/8XFxv/Iycr/uLm6/8/Q0f/c3d3/1tfX/6qrrP+rrKz/x8jI/8vMzP+8vb3/xcbH/7/A + wf/Fxsf/y8zN/9na2//a29v/2tvc/9rb3P/b3Nz/293d/9zd3v/d3t7/3t/f/97g4P/f4OH/4eLj/+Lj + 5P/j5OX/5ebn/+bn6P/n6On/6Orr/+rs7P/t7u//8fHy//T19f/29vf/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9PT0//T09P/09PT/9PT0//T0 + 9P//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1dBQAAABgAAABM8/T0/+jo6v/n5+n/5ufo/+Xm5//g4eH/z8/Q/+Pk5f/j4+X/3N3e/9zc + 3v/c3d7/1dXW/8/P0P/f4OH/39/g/97e4P/d3t//3d7e/9jZ2f/c3d3/29zd/9vb3P/b29z/2trc/9ra + 3P/a2tv/z9DQ/9XW1v/Y2Nn/2Nna/9fY2v/Y2Nr/19jZ/9jZ2v/Z2tr/2trb/9rb2//a29z/29zd/9zd + 3v/d3t//3t/g/9/h4f/h4uP/4uPk/+Pl5f/l5uf/5ufo/+fo6f/o6uv/6evr/+rr7P/r7e3/7e7v//Dx + 8v/z9PT/9vb2//b39//39/j/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//X19f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz19fX/6enr/+jp + 6v/n6On/5ufo/+Xm5//Z2dr/y8zM/9jZ2v/Y2dr/4uLj/9XW1//Kysv/0NHR/9DR0f/Fxsf/zs7P/8rK + y//IyMn/ysvM/8PExP/Pz9D/1tfY/8PExf/Q0dL/0tPU/8nKy//R0dL/xcXG/9PT1P/T09T/29vc/9vc + 3f/c3N7/3N3e/9bX2P/R0tP/1NXW/8fHyP/Z2tr/1dbX/+Tl5v/l5uf/5ufo/+fo6f/o6er/6err/+rr + 7P/r7O3/7O3u/+zu7v/s7u//7e/v/+/w8f/w8fL/8/P0//X19v/29vf/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPj4+P/r7Oz/6uvs/+nq6//p6er/5ebn/7e3uP+oqan/t7i5/7q7 + vP/h4eL/tra3/6ipqf+2t7f/rKys/7Cxsf+jo6T/sLCx/6Kio/+7vLz/3d3f/7q6uv+xsrP/pqeo/6Sk + pP/Cw8P/tre4/6Giov/AwcH/tra3/8DBwv/e3+D/wMHC/9TV1f/j5OX/xsfI/8nKy//ExcX/xMXG/8zO + zv/Jy8v/6ers/+rr7P/r7O3/6+zu/+zt7v/s7u//7e7v/+3v8P/u7/D/7u/w/+7v8P/u8PH/8PHy//Lz + 9P/09Pb/9fb3//b3+P/39/f/9/f3//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8///////AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM+fr6/+3t + 7v/t7e7/7O3u/+vs7f/Ozs//u7u8/8nJyv/Jysv/oKCh/8rLy/+5ubr/xcbH/83Nzv/MzM3/09TU/8nJ + yf/Kysr/xsfH/9nZ2//g4eL/1dbX/9bX2P/HyMn/09TU/8nKyv/R0dL/zc3O/8vMzf/W19j/1NTV/+Tl + 5v/Nzs//5+jp/93e3//HyMn/xsfI/8nKy//Excb/ycrL/8jJyf/s7e//7O3v/+zu7//t7vD/7e/w/+7v + 8P/u7/H/7u/x/+7w8f/u8PH/7/Dx//Dx8v/y8/P/9PT1//X19v/29vf/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9f/19fX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/P/8vLz//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABeXl4FAAAAGAAAAEz7+/v/7u7w/+7u7//u7u//7e7v/+3t7//s7e7/6+zt/+rr + 7P/p6uv/6Onp/+fo6P/m5uj/5eXm/+Pj5f/i4uP/4OHi/93d3f/h4eL/4+Pk/+Tl5v/l5uf/5ufo/+bn + 6P/m5+n/5+jp/+jp6f/o6er/6erq/+nq6//p6uv/6evs/+rr7P/q6+3/6+zt/+zt7v/s7e7/7O3u/+zu + 7v/t7u//7e7v/+3v7//t7+//7e/v/+7v8P/u7/D/7vDw/+7w8P/u8PD/6uvs/+/w8f/w8fH/8fLz//P0 + 9P/19fX/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//Ly8//29vf/9vb2//b29v/29vb/9vb2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/P/8vLz//Ly8//y8vP//////wAAAEwAAAAYc3NzBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPv8 + /P/u7vD/7u7w/+3u8P/u7u//2dna/7u7vf/Jysv/uLm6/9PT1f/HyMj/tra3/9DQ0f/b3N3/xMTG/8DA + wf/Hx8j/q6ur/7m5uv/BwcH/09PU/87O0P/Oz9H/wMHB/9bX2P/p6uv/6err/8TFx//T1NX/2drb/9XW + 2P/Iycv/y8zN/9fY2f/Q0dP/3d7f/9vd3v/Y2tv/0dLT/9PU1v/Mzc//6+3u/93e3//u7/D/3d/g/9DR + 0v/a29z/2tvc/8zOz//P0dL/29zd/83Oz//X2Nn/29vc/97e3//e3t7/3d3e/+/v8P/i4uP/z8/P/9fX + 2P/e3t//xcXF/9zc3f/j4+P/9fX2/+Dg4P/U1NX/2NjZ/+Li4//X19j/3d3e/93d3v/i4uP/9PT1//T0 + 9f/09PX/8/P1//Pz9f/z8/X/8/P1//Pz9P/z8/T/8/P0//Pz9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//x8fP/8fHz//Hx8///////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXl5eBQAAABgAAABM/Pz8/+7u8P/u7vD/7u7w/+3u7//DxMX/rK2u/5WW + l/+8vL3/urq8/5SVlv+io6T/ra2u/6Kio/+ztLX/oqOj/7Cxsv+mpqf/ubm7/5ydnf+urrD/qKmq/7i5 + uv+bm5z/2drb/+nq7P/i4+T/t7i5/7e4uP+0tbb/v8DB/6mqq/+rrK3/wsPF/66vsP/Oz9H/xsfI/8XG + x/++v8H/sLGy/7Gys/+9v8D/vb6//9LU1f/Cw8X/r7Cx/72+v//GyMj/ra6v/8jJyv/Mzc//rKyt/8HB + wf+7vLz/yMjI/7CwsP+zs7P/6+vt/83Nzf+mpqf/v7+//8fHx//BwcL/sLCx/6Wlpf/Z2dn/xMTE/7+/ + v/+ysrP/vr6//7m5uv+7u7z/xsbH/8/Pz//09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx8v/x8fL/8fHy//////8AAABMAAAAGHNz + cwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAA + AEz8/f3/7+/w/+7v8P/u7vD/7u7v/9PT1P+3t7f/1NXW/+rr7P/c3N7/zs/P/8zMzf/AwcL/ubq7/+Dh + 4v/n5+j/5eXm/+Pk5f/j4+X/1tbX/+Lj5P/m5+j/6err/+Tk5f/n6On/6uvs/+rr7f/m5+j/6Onq/+fo + 6f/p6ur/5ebn/9TV1v/p6uv/6uvr/+zt7v/W19j/6uvs/+nq6//X2Nn/6+zt/+rs7f/Nz9D/7e/v/8rL + zP/Nz8//7O3v/+3u8P/p6uv/7e7v/+7v8P/s7e7/3N3e//Ly8//09PT/7u7v//Ly8//19fb/29vb/8/P + z//x8fH/8fHx//Hx8f/d3d7/zMzN//T09f/z8/P/2NjY//Hx8v/x8fL/8vLz//Hx8v/y8vL/29vb//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9fXwUAAAAYAAAATP39/f/u7u//7+/v/+7v8P/u7vD/7u7w/+7u + 7//t7u//7e7v/+7u7//t7u//7e7v/+3u7//s7e7/7O3u/+zs7f/q6+v/6Ojp/+fn6f/o6On/6err/+rq + 7P/q6+z/6uvs/+vs7P/r7Oz/5+jp/9jZ2v/Z2tv/2Nna/+vs7v/s7e7/7O3u/+zt7v/s7e//7e7v/+3u + 7//t7u//7e7v/+3u7//t7+//7u/w/+7v8P/u7/H/7u/x/+7v8f/u7/H/7u/x/+/w8f/w8fL/8vLz//Pz + 9P/09PX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly + 8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f//////AAAATAAA + ABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAA + ABgAAABM/f39/+7v8P/u7u//7+/v/+/v8P/Pz9D/1tbX/6OjpP+kpKX/qqqr/8fIyP/IyMr/s7O0/8zM + zf/l5eb/7Ozt/+rr7P/p6er/6Ojp/+np6v/q6uv/6uvs/+vr7f/U1db/uLm5/8PDxP/IyMn/rq6v/8fI + yf+0tbb/vL2+/7/AwP/P0NH/3+Dg/87P0P/Excb/xMXG/8HCw//R0tP/0NHR/+Tl5v+1trf/0tPV/8vM + zf/P0NH/09TU/8/Q0f++v7//yMnK//Hy8v/z8/P/9PT0//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz9/f7/7+/w/+7v8P/u7u//7u7v/8TE + xP+goKH/sbGy/5WWl/+mpqf/p6eo/7i4uf+fn6H/v7/A/+Tl5v/s7e7/6+vs/+np6v/o6er/6erq/+rr + 7P/r7Oz/6+zt/9PU1P+2t7j/wcLC/76+v/+6urv/u7y9/7u7vP+sra7/srKz/7W2t//b3N3/ysvM/7y9 + vv/DxMb/wMHC/8DBw//Fxsf/2Nna/6Chov+3uLn/xcbH/76/wf+6u7z/t7i5/7y9vv+1tbb/8fLz//Pz + 9P/z9PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/09PT/9PT0//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8PDx//Dw8f/w8PH//////wAA + AEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP7+/v/u7vD/7u7w/+7u8P/t7fD/3d3e/93d3v/X19n/7u7w/+3u7//t7e//7e3v/+3t + 7//t7u//7e3v/+zt7v/r6+3/6err/+np6//p6ev/6uvs/+vs7f/r7O3/6+zt/+vs7f/r7O7/6+zu/+vs + 7v/r7O7/7Ozu/+zt7v/t7e7/7e7v/+3u7//h4uP/7e7v/+3u7//t7u//7e7v/+3u8P/u7vD/1tfZ/+vs + 7v/u7vH/7u/x/+7v8f/u7/H/7/Dy//Hx8//y8vT/8/P1//Pz9f/z8/X/8/P1//Pz9f/z8/X/8/P0//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw + 8v/w8PL/8PDx//Dw8f/v7/H/7+/x/+/v8f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+/+7u7//u7vD/7u7w/+7u + 8P/t7fD/7e3w/+3t7//u7u//7u7w/+3u8P/t7e//7e3v/+3t7//s7e//7O3u/+vr7f/q6uz/6ers/+rq + 7P/q6+3/6+vt/+vs7f/r7O3/7Ozt/+zs7f/s7O7/6+zu/+zs7//s7e//7O3v/+zt7//s7e//7O3v/+3u + 7//t7u//7e7v/+3u8P/t7vD/7u7w/+7v8P/u7/D/7u/w/+7v8P/u7/D/7u/x/+/v8f/w8PL/8fHz//Ly + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly + 9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz+/v//7u7w/+7u7//u7vD/7u7w/+3u8P/t7vD/7e3w/+3t7//t7e//7e7v/+3u + 8P/t7fD/7e3v/+3t7//s7O7/6+zt/+vr7P/q6+z/6+vt/+vr7f/r7O7/6+zu/+vs7v/r7O7/7Ozu/+zt + 7v/s7e7/7O3u/+zt7//s7e//7O3v/+3t8P/t7fD/7e3w/+3u8P/t7vD/7e7w/+3u8P/t7vD/7u/w/+7v + 8P/u7/D/7u/w/+7v8f/v7/H/8PDy//Hx8v/y8vP/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly + 9P/y8vT/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8fHz//Hx + 8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx//Dw + 8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/D//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATP/////u7u//7u7v/+7u + 7//u7u//7u7v/+7u7//t7u//7e7v/+3t7//t7e7/7e3u/+3u7//t7u//7e3v/+zt7v/s7O3/6uvt/+vr + 7f/r6+z/7Ozt/+zs7v/s7O7/7Ozu/+zs7v/s7O7/7Ozu/+zt7v/s7e7/7e7u/+3u7v/t7u7/7e7v/+3u + 7//t7u//7e7v/+3u7//t7vD/7e7w/+7u8P/u7vD/7u/w/+7u8P/u7vD/7u/w/+7v8f/w8PL/8fHy//Hy + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f/w8PH/8PDx//Dw + 8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u + 7///////AAAATAAAABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAUlJTBQAAABYAAABK/////+7u7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7e7v/+3u + 7//t7e7/7e3u/+3t7v/t7u7/7e3u/+zs7v/r7O3/6+zt/+vs7f/r7O3/7Ozt/+zt7f/s7e3/7O3u/+zt + 7v/s7e7/7O3u/+3t7v/s7e7/7e3u/+3t7//t7e//7u7v/+7u7//u7u//7u7v/+7u8P/u7/D/7u/w/+7v + 8P/u7/D/7u/w/+7v8P/v7/H/7/Dx//Dx8v/x8fP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLz//Ly8v/y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v//////8AAABKAAAAFmNjYwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOTk4EAAAAFAAAAEP/////7+/w/+7u + 7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7u7v/+3u7//t7u//7e3u/+3t7v/t7e7/7e3u/+3t + 7v/s7e7/7Ozu/+zs7f/s7O7/7O3u/+zs7f/s7e7/7e3u/+3t7v/t7e//7e3v/+3t7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//t7u//7e7v/+7u7//u7u//7+/w/+/w8P/v8PD/7/Dw//Dw8f/w8fH/8fHy//Ly + 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8fHx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw + 8f/w8PH/8PDw/+/v8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v/+7u + 7//v7/D//////wAAAEMAAAAUXFxcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAEpKSwMAAAAOAAAAMf/////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/v7//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f7//f7+//7+/v/+/v7//v7+//7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAAMQAAAA5ZWVkDAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGASwsLAcAAAAYAAAALwAA + AD8AAABEAAAARQAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEUAAABEAAAAPwAAAC8AAAAYMDAxB1RUVAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVAi4uLwYYGBkNAAAAEgAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAASGRkZDTAwMQZbW1wCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAVZW + VgFbW1sDX19fA2pqagNzc3MDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnMDcnNzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNycnMDcnJzA3JycwNycnMDcnJzA3Jy + cwNxcXEDZGRkA1xcXANZWVkBVFRUAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////////////////////////////////////////////////////////////////////////// + ///////////AAAAAAAAAD//////////+AAAAAAAAAAH//////////gAAAAAAAAAAf/////////wAAAAA + AAAAAD/////////8AAAAAAAAAAAf/////////AAAAAAAAAAAB/////////wAAAAAAAAAAAP////////8 + AAAAAAAAAAAB/////////AAAAAAAAAAAAP////////wAAAAAAAAAAAB////////8AAAAAAAAAAAAP/// + /////AAAAAAAAAAAAB////////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAB////////AAAAAAAAAAA + AAP///////wAAAAAAAAAAAAB///////8AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAA + AAAAAAAAP//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAP//////wAAAAAAAAAAAAAB//////8 + AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAB//////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAB/ + /////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAAP/////AAAAAAAAAAA + AAAAB/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAAP////wAAAAA + AAAAAAAAAAB////8AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAAA/////AAAAAAAAAAAAAAAAf/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////ygAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaARwc + HAIfHx8CISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIgICACICAgAiAgIAIfHx8CHBwcAhgYGAIUFBQBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADw8PAIjIyMIBwcHEAcHBxQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUBwcHEwYGBhEUFBQLJiYmBjExMQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQcAAAAiAAAAQgAAAFAAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUAAAAEgAAAA3AAAAIQwMDQ44ODgEMjIzAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uAhMT + Ew8/Pz9t/v7+//39/f78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8 + /P79/f3//f39//z8/f79/f3//f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39 + /f/8/Pz+/Pz8//z8/P/7+/v++vr7//r6+v/5+fn++Pj4//f39//19fX+9PT0//Ly8v/w8PD+7e3t/uPj + 4/i0tLTYVlZWkAcHCD4AAAAYJiYmBzo6OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAMjIyAhQUFBM/Pz93+/v8//X19v719fb/9fX2//X19v719fb/9fX2//X1 + 9v719fb/9fX2//X19v729vf/9vb3//b29v729vf/9vb3//b29/729vf/9vb3//b29//29vf+9vb3//b2 + 9//29vf+9vb3//b29//29vf+9vb3//b29//19fb+9fX2//X19v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw + 8f/v7/D+7e3u/+vr7P/p6er+5+fo/+Xl5v7h4eH/2trb/aOjo9EeHh5XAQEBHigoKAk8PD0BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk5AhcXFxM/Pz95+fn6/vT0 + 9f709PX+9PT1/vT09f709PX+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vT0 + 9f709PX+8/P0/vPz9P7y8vP+8fHy/vDw8f7v7/D+7e3u/uzs7f7q6uv+6Ojo/uXl5v7h4eL+29vc/tPT + 1P69vb3lLCwsaQAAACIrKysJPT0+AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X19v719fb/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//X19v/09PX+9PT1//T09f/y8vP+8vLz//Dw8f/v7/D+7u7v/+zs + 7f/q6uv+6Ojp/+fn5/7k5OX/39/g/9jY2f7Ozs//z8/Q8jU1NXUAAAAkKSkpCkBAQAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b29//29vb+9vb3//X19v/19fX+9PT1//T0 + 9f/z8/P+8vLz//Hx8v/w8PD+7u7v/+3t7v/r6+z+6enq/+fn6P7l5eb/4eHi/9zc3f7T09T/zMzM/9bW + 1/Q4ODh2AQEBJh8fHws8PDwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6//X19v729vb/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//29vb+9vb3//b29//29vb+9vb3//f3 + 9//29vb+9/f3//b29v/19fX+9fX1//X19f/09PT+8/Pz//Ly8v/x8fH+8PDw/+7u7v/s7Oz+6urq/+jo + 6P7m5uf/4+Pk/97e3/7Y2Nn/zc3O/9ra2/7R0dP0QkJDfAAAACcSEhILPT09AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v729vb+9vb2/vb29v729vb+9vb2/vb2 + 9v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/719fb+9fX2/vX19v709PX+8/P0/vLy + 8/7x8fL+8PDx/u7u7/7t7e3+6+vr/ujo6f7n5+f+5eXl/uHh4f7b29z+09PT/szMzf7o6On+1tbY91JS + UogAAAApERERDD09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9v729vf/9/f3//f39//29vf+9/f3//f39//29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9/f4//b2 + 9//29vf+9vb3//X19v/09PX+9PT1//Pz9P/y8vP+8PDx/+/v8P/t7e7+6+vs/+np6v7n5+j/5ubm/+Pj + 4/7e3t7/19fX/8rKyv7q6ur/39/h/9nZ2/lZWVqLAgICLBEREQ0/P0ACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vT09f719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9vb2/vb29v729vb+9vb2/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb2 + 9/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9fX2/vX19v709PX+9PT1/vPz9P7y8vP+8fHy/u/v + 8P7u7u/+7Ozt/urq6/7o6On+5ubm/uTk5f7f3+D+2dna/s7Oz/7l5eb+5+fp/t/f4f7a2tz4YmJjkwAA + AC0TExMNQUFBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9vb2//X1 + 9f719fb/9fX2//X19v729vf/9vb3//b29v729vf/9/f3//b29/739/f/9/f4//b29/739/j/9/f4//f3 + +P/29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9vb3//b29//29vf+9vb3//b29//29vf+9fX2//X1 + 9v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw8f/u7u/+7Ozt/+rq6/7o6On/5+fn/+Tk5f7h4eL/29vc/9HR + 0v7e3t//7u7v/+fn6P7f3+H/3Nze+3BwcKAAAAAwEhISD0FBQgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//X19v729vf/9fX2//Hx8v7y8vP/9PT1//T09f729vb/9vb3//b29/739/f/9/f3//b2 + 9/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+vr6//b29z+29vc/9vb3P/a2tr+2NjZ/9jY + 2f/Z2dn+2dnZ/9nZ2f/Y2Nn+2NjY/9jY2P/X19j+19fY/9bW1//V1db+1NTV/9PT1P/R0dL+0NDR/87O + z/7Nzc3/y8vL/8jIyf7Gxsb/wcHB/7i4uf7Kysr/9PT0/+3t7v7m5uj/39/h/9zc3vxvb3ChAwMDNBIS + EhBCQkIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vLy8/709PX+9fX2/vX1 + 9f729vb+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/tzc + 3f7X19j+4ODh/t7e3/7W1tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0dHS/tHR0v7Q0NH+0NDR/s/P + 0P7Ozs/+zs7P/s7Ozv7MzM3+y8vM/snJyv7Hx8f+xcXG/sPDw/6/v8D+u7u8/rOztP7AwMH+9PT1/vHx + 8v7t7e7+5ubo/t7e4P7b29z8dHR1pwEBATUTExMQQUFCAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9fX2//Pz9P709PX/9fX1//X19f719fb/9vb3//b29/729vf/9vb3//b29/739/j/9/f4//b2 + 9/739/j/9/f4//f3+P/29vf+9/f4/+Li4v/Ozs/+4eHh/93d3v/R0dH+zs7P/9LS0//T09T+09PU/9PT + 1P/T09T+09PU/9LS0//S0tP+0tLS/9HR0f/Q0ND+z8/Q/8/Pz//Ozs7+zMzN/8rKy/7IyMn/x8fI/8XF + xv7BwcL/vb2+/7a2t/6+vr//9PT0//X19f7x8fL/7e3u/+fn6P7e3uD/2trc/YGBgrMCAgI3EhISEjg4 + OQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9fX1/+zs7f7v7+//8fHx/+/v7/7x8fL/8vLy//Pz + 9P719fb/9fX2//b29/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+Dg4f/S0tL+39/f/97e + 3//U1NX+0tLT/9jY2f/a2tv+2trb/9ra2//a2tv+2trb/9nZ2v/Z2dr+2NjZ/9jY2f/X19j+1tbX/9bW + 1//V1dX+09PU/9LS0v7Q0ND/zs7O/83Nzf7Kysv/xcXG/729vv7Dw8T/9fX1//f39/719fX/8fHy/+3t + 7v7m5uj/3t7g/9nZ2/17e32wBgYGPAMDAxMwMDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb29v729vb+9vb2/vHx + 8v719fb+9vb3/vT09f719fb+9PT0/vb29v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9/f3/vf3 + 9/739/f+9/f3/t/f3/7b29v+19fY/t/f4P7X19f+09PU/tjY2P7c3Nz+3Nzd/tzc3f7c3N3+3Nzd/tvb + 3P7b29z+29vb/tra2/7Z2dr+2dnZ/tjY2P7X19j+1tbW/tTU1f7S0tP+0NDR/s/P0P7MzM3+yMjI/r+/ + v/7FxcX+9fX1/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e4P7X19n9fX1+sQMDAzsEBAQSMDAwBAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//b29v739/f/9vb3//Hx8f7x8fL/8vLz//Ly8v7z8/T/8/P0//Pz9P709PX/9vb2//b2 + 9/739/f/9/f3//f39/739/j/+Pj4//j4+P/39/f++Pj4/9/f3//i4uL+0dHR/+Dg4P/a2tv+1tbX/9bW + 1//b29z+3d3d/93d3f/c3N3+3d3d/9zc3f/b29z+29vc/9vb2//a2tv+2dna/9nZ2f/Y2Nn+19fY/9bW + 1v7U1NT/0tLS/9DQ0f7Ozs7/ycnK/8HBwv7Gxsb/9/f3//n5+f74+Pj/9/f3//X19f7x8fL/7e3u/+fn + 6P7e3uD/1tbY/oSEhbkEBAQ8AwMDFC8vLwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+vr6/7t7e3/7+/v//Dw + 8P7u7u7/8fHx//Dw8P7x8fH/9PT0//f39/739/f/+Pj4//f39/739/f/9/f3//f39//39/f++Pj4/9/f + 3//j4+P+1tbW/9zc3P/c3Nz+2tra/9bW1v/a2tr+3d3d/93d3f/d3d3+3d3d/93d3f/c3Nz+3Nzc/9zc + 3P/b29v+2tra/9nZ2f/Z2dn+2NjY/9bW1v7V1dX/09PT/9HR0f7Pz8//y8vL/8PDw/7Gxsb/+Pj4//n5 + +f75+fn/+Pj4//f39/719fX/8fHy/+3t7v7m5uj/3t7g/9XV1/5+fn+1BwcHPgMDAxM9PT4DAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb2 + 9v729vb+9vb2/vLy8v729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/t7e3v7j4+P+39/f/tPT0/7e3t7+3t7e/tfX1/7Z2dn+3d3d/t3d + 3f7d3d3+3d3d/t3d3f7c3Nz+3Nzc/tzc3P7b29v+29vb/tra2v7Z2dn+2dnZ/tjY2P7W1tb+1NTU/tPT + 0/7Q0ND+zc3N/sbGxv7Kysr++fn5/vr6+v75+fn++fn5/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e + 4P7T09b+eXl7sgICAjkSEhIQPT09AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+3t7f7s7Oz/7u7u/+3t7f7w8PD/8fHx/+/v + 7/7x8fH/9fX1//f39/74+Pj/+Pj4//f39/74+Pj/9vb2//b29v/29vb+9/f3/97e3v/j4+P+4+Pj/9DQ + 0P/f39/+4eHh/9vb2//X19f+3d3d/97e3v/e3t7+39/f/97e3v/d3d3+3t7e/93d3f/c3Nz+3Nzc/9vb + 2//a2tr+2tra/9nZ2f7X19f/1tbW/9TU1P7S0tL/z8/P/8rKyv7Ozs7/+vr6//v7+/76+vr/+vr6//n5 + +f74+Pj/9/f3//X19f7x8fL/7e3u/+fn6P7e3uD/0tLV/XNzdbAAAAA1ERERETw8PAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn + 5/7t7e3/7+/v//Dw8P7u7u7/8fHx//Dw8P7s7Oz/9PT0//f39/74+Pj/+Pj4//f39/74+Pj/9PT0//b2 + 9v/19fX+9fX1/93d3f/k5OT+5OTk/9XV1f/b29v+4uLi/97e3v/X19f+29vb/97e3v/e3t7+39/f/97e + 3v/e3t7+3t7e/97e3v/d3d3+3d3d/9zc3P/b29v+29vb/9ra2v7Z2dn/19fX/9bW1v7U1NT/0dHR/83N + zf7U1NT/+/v7//v7+/75+fn/+Pj4//b29v7z8/P/8PDw//Dw8P7y8vP/8vLz/+7u7/7n5+j/3t7g/9HR + 0/1jY2WiAgICMxAQEQ87OzwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6/vb29v729vb+9vb2/vT09P729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9vb2/t7e3v7k5OT+5OTk/uHh4f7Q0ND+4+Pj/uHh + 4f7Z2dn+2tra/t7e3v7f39/+39/f/t/f3/7f39/+3t7e/t7e3v7e3t7+3d3d/t3d3f7c3Nz+29vb/tra + 2v7a2tr+2dnZ/tfX1/7W1tb+09PT/tDQ0P7Ozs7+0tLS/s3Nzf7Hx8f+w8PD/sDAwP64uLj+tLS0/ri4 + uP6+vr7+vr6+/sfHx/7X19j+3t7f/uTk5f7Pz9H7W1tdmQAAAC0RERIMOzs8AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn5/7n5+f/6enp/+np + 6f7r6+v/7e3t/+rq6v7y8vL/9vb2//f39/74+Pj/+Pj4//f39/739/f/8vLy//Ly8v/z8/P+7+/v/93d + 3f/i4uL+5OTk/+Dg4P/S0tL+4uLi/+Tk5P/c3Nz+2NjY/93d3f/g4OD+4ODg/+Dg4P/f39/+39/f/9/f + 3//e3t7+3t7e/97e3v/d3d3+3Nzc/9vb2/7b29v/2tra/9jY2P7X19f/1tbW/9TU1P7R0dH/zc3N/8rK + yv7Hx8f/xMTE/8LCwv6xsbH/tra2/7q6uv6+vr7/uLi4/7q6uv7Dw8P/wMDA/76+vv7S0tL/1dXX+11d + XpYAAAAqERERDDs7PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b2 + 9v739/f/9fX1/+bm5v7u7u7/8PDw//Ly8v7v7+//8fHx//Dw8P7t7e3/8/Pz//f39/74+Pj/+Pj4//f3 + 9/739/f/8vLy//T09P/19fX+8PDw/97e3v/j4+P+5eXl/+Dg4P/Y2Nj+3d3d/+Xl5f/g4OD+2dnZ/9zc + 3P/g4OD+4eHh/+Hh4f/g4OD+4ODg/9/f3//f39/+39/f/97e3v/e3t7+3d3d/9zc3P7b29v/29vb/9ra + 2v7Z2dn/2NjY/9bW1v7U1NT/0tLS/9DQ0P7Ozs7/zMzM/8rKyv62trb/wMDA/8bGxv7Jycn/xsbG/8LC + wv7S0tL/0dHR/8zMzP7FxcX/w8PD/9LS0vpXV1eLAQEBKCgoKAo/Pz8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz95+vr6/vb29v729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vb2 + 9v739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vj4+P74+Pj+8/Pz/uDg4P7l5eX+5eXl/uHh + 4f7h4eH+1tbW/uXl5f7j4+P+2tra/tnZ2f7e3t7+4ODg/uDg4P7g4OD+4ODg/t/f3/7f39/+39/f/t/f + 3/7e3t7+3t7e/t3d3f7c3Nz+29vb/tra2v7a2tr+2dnZ/tjY2P7W1tb+1dXV/tPT0/7S0tL+0dHR/sfH + x/7BwcH+ycnJ/s/Pz/7Pz8/+zc3N/sjIyP7a2tr+29vb/tnZ2f7U1NT+zc3N/sXFxf7MzMz3RkZHewAA + ACA3NzcGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+fn5//X19f729vb/9PT0/+Dg + 4P7f39//4ODg/+Li4v7h4eH/5eXl/9/f3/7k5OT/7u7u//X19f719fX/9fX1//b29v719fX/6urq/+3t + 7f/s7Oz+6enp/9jY2P/d3d3+39/f/9ra2v/d3d3+1dXV/+Dg4P/i4uL+29vb/9bW1v/c3Nz+39/f/9/f + 3//f39/+39/f/9/f3//e3t7+3t7e/97e3v/d3d3+3t7e/93d3f7d3d3/3Nzc/9zc3P7b29v/2tra/9nZ + 2f7Y2Nj/19fX/9bW1v7U1NT/09PT/8DAwP7Kysr/zs7O/9TU1P7U1NT/0tLS/8zMzP7f39//4eHh/+Dg + 4P7e3t7/2dnZ/9TU1P7MzMz/ycnJ8iQkJVkPDw8RREREAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM+Pj559/f3//Pz8/7z8/P/8vLy/+Li4v7s7Oz/7+/v/+/v7/7t7e3/7+/v/+/v7/7o6Oj/7u7u//Ly + 8v7y8vL/8vLy//Ly8v7y8vL/7Ozs/+3t7f/u7u7+6+vr/9jY2P/c3Nz+39/f/9ra2v/d3d3+3Nzc/9jY + 2P/h4eH+3Nzc/9TU1P/W1tb+2dnZ/9ra2v/a2tr+2tra/9ra2v/Z2dn+2tra/9ra2v/a2tr+2tra/9vb + 2/7b29v/2tra/9nZ2f7Z2dn/2NjY/9jY2P7X19f/1tbW/9TU1P7U1NT/0NDQ/8HBwf7MzMz/09PT/9fX + 1/7W1tb/1dXV/8/Pz/7h4eH/5OTk/+Xl5f7j4+P/4eHh/93d3f7Z2dn/1dXV/omJirMAAAAiNTU1BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PT0//Dw8P7w8PD/7+/w/+bm5v7r6+v/6enp/+jo + 6P7r6+v/6enp/+jo6P7p6en/6+vr/+7u7v7u7u7/7e3t/+3t7f7t7e3/6urq/+np6f/q6ur+5ebm/9XV + 1f/Z2dn+29vb/9bW1v/Y2Nj+3Nzc/8/Pz//d3d3+29vb/9LS0v/MzMz+zs7O/8/Pz//Pz8/+0NDQ/9DQ + 0P/Q0ND+0NDQ/9HR0f/R0dH+0tLS/9LS0v7T09P/09PT/9PT0/7S0tL/0dHR/9HR0f7R0dH/0NDQ/8/P + z/7Ozs7/xcXF/8TExP7Pz8//2NjY/9nZ2f7Z2dn/1tbW/9DQ0P7j4+P/5ubm/+fn5/7m5ub/5eXl/+Pj + 4/7h4eH/3t7e/8/Pz+gAAAAwKysrCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM9PT158fLy/u7u + 7v7t7e3+6+vr/tra2v7V1dX+2NjY/tna2v7W1tb+3Nzc/tbW1v7b3Nz+5OTk/urq6v7q6ur+6urq/unp + 6v7p6en+4ODh/uHh4f7g4OD+2dnZ/s/Pz/7U1NT+1dXV/s7Ozv7R0dL+1dXV/sjIyP7BwcH+wMDA/rq6 + uv64uLj+urq7/ru8vP68vL3+vb29/r29vv6+v7/+vr6+/r+/v/7AwMD+wcHB/sLCwv7CwsL+wsLC/sLC + wv7CwsL+wsLC/sHBwf7AwMD+v7+//r6+vv69vb3+urq6/tLS0v7W1tb+29vb/tvb2/7b29v+2dnZ/tLS + 0v7l5eX+6Ojo/unp6f7p6en+6Ojo/ufn5/7l5eX+5OTk/uPj5PkAAAA6MjIyCzo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9PT158fHy/+3t7v7s7e3/6+zs/97e3v7n6Oj/6enq/+np6v7n6Oj/6Ojp/+jo + 6f7g4eH/5+jo/+nq6v7p6er/6enq/+jp6f7o6en/4uPj/+Tk5f/l5ub+2tvb/9XW1v/V1tb+2NjY/9LT + 0//V1tb+2dna/8vMzP/MzM3+y8zM/8fIyP/IyMn+y8zM/8zMzf/Mzc3+zc7O/83Ozv/Nzs7+zs7O/87O + zv/Pz8/+0dHR/9PT0/7U1NT/1NTU/9TU1P7T09P/09PT/9PT0/7S0tL/0dHS/9HR0f7Pz9D/ycnJ/9vb + 2/7a2tr/3d3d/97e3v7d3d3/29vb/9PT0/7n5+f/6urr/+vr6/7r6+v/6urq/+rq6v7p6en/6Ojo/+zs + 7P4AAAA/NjY2DEJCQgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7s7e//6+zu/9/g + 4v7j4+T/4uLk/+Dh4v7k5eb/4uPk/+Li5P7o6er/5ufp/+rr7P7q6+z/6uvs/+nq7P7p6uv/4uPk/+Lj + 5P/k5ef+1tjZ/9fX2P/W19f+2drb/9LT1P/U1df+2Nna/8rLzP/LzM3+zM3O/8fIyv/Jycv+zc7P/83O + z//Mzc7+zc7P/87P0P/Nzs/+zs/Q/8/P0P/Q0ND+0tLT/9TU1P7V1db/1tbX/9bW1/7V1db/1dXV/9TU + 1P7T09T/09PU/9LS0/7S0tL/zc3N/9ra2/7b29z/3t7f/9/f4P7e3t//3d3d/9PT0/7p6en/7Ozs/+zs + 7f7s7O3/6+vs/+vr7P7q6uv/6urr/+/v8P4AAABBODg4DEdHRwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+zt/tfY2f7Y2dr+2tzd/t3e4P7X2Nn+3+Dh/tjZ2v7V1tj+4+Xm/urr + 7f7r7O3+6+zt/uvs7f7q6+z+4OHi/uLj5P7g4eL+1dfY/tXW2P7U1tf+1dbX/s7P0f7U1db+1tjZ/srL + zf7LzM7+ycvN/sXHyf7Hycr+y83O/szNz/7Nzs/+zM3P/s3O0P7Nzs/+zs/R/s/Q0f7S0tP+09PU/tXV + 1v7X19f+19fY/tfX2P7X19f+1tbW/tXV1v7V1dX+1NTU/tPT0/7T09P+0dHR/tjY2f7c3N3+39/g/uDg + 4f7g4OD+39/g/tTU1f7q6ur+7u7u/u/v7/7u7u/+7e3u/u3t7v7s7O3+7Ozt/vHx8v4AAABBOTk5DElJ + SQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+3u7/7t7vD/7e7v/+Xm5v7r7O3/7O3v/+zt + 7/7s7e7/6+zu/+vs7v7o6uv/6uvt/+vs7f7r7e7/6+3u/+vs7f7q6+z/5ujp/+fo6v/o6uv+3N3e/9rb + 3f/Z29z+2drc/9XX2P/Z293+3N3f/87P0f/P0NL+z9DR/8rLzf/Mzc/+z9DS/87Q0v/O0NL+z9DS/8/Q + 0v/P0NH+z9DS/9DR0v/T1NT+1tbX/9fX1/7Y2Nj/2NjZ/9jY2f7Y2Nn/19fY/9bW1/7W1tf/1dXW/9XV + 1f7U1NT/0dHS/9nZ2v7e3t7/4eHh/+Hh4v7h4eL/4ODg/9bW1v7s7Oz/7+/v//Hx8f7w8PD/7+/w/+/v + 8P7u7u//7u7v//Pz9P4AAABBOjo6DEpKSgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 7/7t7/D/7O3u/93f4P7c3d//3d/g/9zd3/7g4uP/4OHj/97f4f7g4eP/5efo/+vs7f7r7O3/6+zt/+rr + 7P7p6+z/4OLj/+Lk5f/h4uT+1dfY/9XX2P/V19n+1dfZ/8/Q0v/U1db+19na/8vMzv/Lzc7+yszO/8TG + yP/Jy8z+ztDR/83P0P/Nz9D+zM7P/83P0P/NztD+zs/Q/8/Q0f/U1NT+19fX/9jY2f7Z2dn/2dna/9nZ + 2v7Z2dn/2NjZ/9jY2P7X19j/1tbX/9XV1v7V1db/09PT/9ra2v7f3+D/4uLi/+Pj4/7i4uP/4eHi/9fX + 1/7t7e3/8PDw//Ly8v7y8vL/8fHx//Dw8f7w8PH/7+/w//X19f4AAABBOjo6DEtLSwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7O3u/tLT1f7b3N3+3d7f/t/h4v7Y2dv+3uDh/tja + 2/7b3d7+4+Xm/urs7f7q7Oz+6uvt/unr7f7p6+z+3N3e/t3e4P7e3+H+1NbX/tTV1/7P0dL+1dfY/s/R + 0v7U1df+19ja/sjKy/7MztD+ysvN/sbHyf7Iysz+zc/R/szNz/7Mzs/+zM7P/s3O0P7Oz9D+zs/R/tDR + 0v7U1NX+19fX/tnZ2v7Z2dr+2trb/tnZ2v7Z2dr+2dna/tnZ2f7Y2Nn+2NjY/tfX2P7W1tf+09PU/tra + 2/7g4OD+4+Pk/uTk5P7j4+T+4uLj/tfX2P7t7e7+8fHx/vPz8/7z8/P+8/Pz/vHx8v7x8fL+8fHy/vf3 + 9/4AAABBOjo6DEtLSwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+7v7/7u7/D/7e7v/+jp + 6/7s7e//7O3v/+vt7v7s7e//6+3u/+vs7v7p6uv/6+zt/+rs7f7q7O3/6uzu/+nr7f7q6+3/6Orr/+fp + 6//o6uz+2tzd/9zd3//b3N7+2drc/9bY2f/a3N3+293e/83P0P/Oz9H+yszO/8XHyf/Jy83+zM7P/8zO + 0P/MztD+zc7Q/83P0f/Oz9H+z9DR/9DR0v/V1db+2NjZ/9nZ2v7a2tr/2tra/9nZ2v7Z2dn/2NjY/9fX + 2P7X19j/19fX/9bW1/7W1tf/1NTU/9vb2/7g4OD/4+Pj/+Tk5f7k5OX/5OTk/9jY2f7u7u//8vLz//T0 + 9f709PT/9PT0//Pz9P7y8vP/8vLz//j4+P4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+7v7/7u7/D/7O3u/9rb3f7V1tf/2Nna/9bY2f7a3N3/3N7f/9TV1/7Y2tv/5ebo/+rs + 7f7q7O7/6uzu/+nr7f7p6uz/3+Hi/9rc3v/f4eP+0tPV/9XW2P/S1NX+09XW/8zOz//P0dL+z9HT/8LD + xf/Bw8T+vb/B/7q8vf+/wML+w8XH/8PExv/CxMb+wcPE/8PFx//Dxcb+xMbH/8bHyf/Ly8z+0NDQ/9HR + 0f7R0dL/0tLS/9HR0v7S0tL/0dHS/9HR0f7R0dH/0dHR/9HR0f7R0dH/zs7P/9bW1v7a2tv/3t7e/+Dg + 4f7i4uP/4+Pj/9nZ2f7t7e7/8/P0//X19v719fX/9fX1//T09P709PT/8/P0//n5+f4AAABBOzs7DExM + TAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u7/7t7vD+6+zu/tDR0v7f4OL+4OHj/uLj + 5f7c3d/+4OHi/uHi4/7c3t/+4+Tm/urr7f7p6+3+6evt/unq7P7o6uz+3N3f/uHj5P7e4OH+09XW/tTW + 1/7U1df+1dfZ/sTGyP7AwsP+v8DC/re5uv69v8D+vL6//rq7vf6/wMH+wsTF/r/Bwv6/wML+v8DC/r/A + wv6/wcP+wMLE/sPExv7Iycn+y8vM/s3Nzf7Nzc3+zc3O/s3Nzf7Nzc3+zMzN/svLy/7Ly8v+y8vL/svL + y/7Ly8z+ycnJ/s7Ozv7T09T+1dXW/tfX1/7X19f+19fY/tTU1f7h4eL+8fHy/vX19v719fb+9fX2/vX1 + 9f719fX+9PT1/vr6+v4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 8P7u7/D/7e7w/+bo6f7r7O7/6evs/+nq7P7r7O3/6evr/+nq6/7p6+3/6ers/+rr7f7q6+3/6uvt/+nr + 7P7p6+z/5ujp/+Xn6f/n6er+2Nrb/9nb3f/T1df+ycvM/7q8vf+5u7z+vL6//7e5uv+6vL7+ubu8/7a3 + uP+8vb7+vsDB/77Awv++wMH+vb/B/76/wf+9v8D+vr/B/76/wP/Fxcb+x8jI/8jIyf7Jycn/yMjJ/8jI + yP7IyMj/xsbH/8XFxv7Dw8T/wcHB/7+/wP6+vr7/vLy9/7u7vP6/v8D/wsLC/8TExf7Hx8f/x8fH/8fH + yP7U1NX/8PDx//b29/729vf/9vb3//b29v729vb/9fX2//r6+/4AAABBOzs7DExMTAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7u7/D/6+zu/9PU1f7R0tP/09XW/9TV1v7V1tj/2tvc/9HS + 1P7i5OX/5efo/+rr7f7q7O3/6evt/+nr7P7p6+z/2tze/9ze3//d3uD+xMbH/8XHyP/GyMn+xsfI/7S2 + uP+ztLb+uLq7/7S2uP+2t7n+srS1/7Cys/+0trf+ubu8/7m7vP+6vL3+uru9/7y9v/+8vb/+vL6//7/A + wf/DxMT+yMjI/8nJyv7Jycn/yMjI/8bGxv7Gxsf/xMTE/8LCw/7CwsL/vr6+/729vf68vLz/urq6/7m5 + uf69vb7/wMDA/8DAwf69vb3/u7u7/7q6uv7Y2Nn/8/P0//b29/739/j/9/f3//b29/739/f/9vb2//v7 + +/4AAABBOzs8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u8P7t7vD+6+zt/tXX + 2P7i4+T+5Obn/ufo6f7g4uP+4+Tl/uPl5/7e4OH+5ebo/unr7f7q6+3+6uvs/unr7P7o6uv+3uDh/t/h + 4v7g4uP+1dfZ/tfZ2/7X2dr+3N7f/tLU1f7MzdD+0dPV/svNz/7R09X+z9HT/szOz/7P0dL+0tTV/s/R + 0v7P0dL+z9HS/s/R0/7Q0tP+0tPV/tXX1/7d3d7+4uLi/uTk5f7g4OD+29vc/tjY2f7W1tf+1tbW/tTU + 1P7T09T+1NTU/tXV1v7U1NX+0dHR/tHR0f7Y2Nj+29vc/tzc3f7c3Nz+2dna/tfX1/7y8vP+9vb3/vf3 + +P739/j+9/f4/vb29/729vb+9vb2/vz8/P4AAABBPDw8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+3u8P7t7/D/7O7v/+fo6v7o6ev/6Onq/+fp6v7o6uv/5+nq/+fo6v7n6Or/6Ors/+rs + 7f7q7O3/6uzt/+nr7P7p6+z/5ufp/+bo6v/h4+X+4OLj/9TW1//h4+T+4uTl/+Di5P/W2Nr+0dPV/87Q + 0v/U1tf+0NLU/87Q0v/S1NX+1NbX/9TX2P/T1df+1NbY/9PV1v/S1Nb+0tTV/9XW1//b3Nz+39/g/9/f + 4P7Z2dr/1NTU/9TU1f7V1db/1NTU/9HR0f7R0dH/0NDR/9HR0f7T09P/19fX/9fX1/7i4uP/5ubm/+fn + 6P7m5ub/3t7f/+np6v739/f/+Pj5//f3+P74+Pn/+Pj5//f3+P739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7t7/D/6uzt/87P0P7Nz9D/zc7P/9DR + 0v7Lzc7/09TW/8rLzf7U1df/3uDh/+rs7f7q7O3/6uzt/+nr7P7n6er/1tja/9PV1v/Z29z+19nb/8/R + 0//Nz9H+1dfY/9rc3f/Q0tP+yMrM/8PGx//MztD+y83O/8/R0v/R1NX+z9HT/8vNz//Iysz+ycvN/8fJ + yv/KzM7+y83P/87P0P/W19f+zc3O/8DAwf7AwMD/w8PD/8rKyv7Pz8//0dHS/9jY2P7Y2Nn/2NjZ/9jY + 2P7Z2dn/29vb/9vb2/7k5OX/5+fn/+fn6P7j4+T/4eHh//b29v74+Pj/+Pj5//f3+P74+Pn/+Pj5//f3 + +P74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u + 7/7t7u/+6+zt/trb3P7l5+j+6+3u/uvs7f7q6+z+6uvs/urr7f7d3uD+5+nq/urs7f7q6+z+6evs/unq + 7P7o6uz+6Onr/ufp6v7n6er+5+nq/ubo6v7a3N3+3d/g/t/h4/7c3uD+1NbX/snLzP7Q0tP+09XW/tPV + 1v7R1NX+0NLT/s7Q0f7O0NH+ztDR/s7Q0f7Lzc/+y83O/s7Q0f7V1tb+zM3N/sbHx/7BwcH+zs7O/tXV + 1f7V1dX+1NTU/tXV1f7U1NT+1NTU/tPT0/7T09P+19fX/tra2v7l5eX+5eXl/uXl5f7e3t7+8/Pz/vj4 + +P74+Pj++Pj4/vf39/739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//6+zt/+fp6v7g4uP/4eLj/+Hj4/7f4eL/4+Xm/+Pk + 5v7j5eb/5Obn/+Hi5P7l5+j/4uTl/+Hj5P7g4uP/5+jq/+jq6//o6uv+5efp/+Hj5f/g4uT+0NLU/9TW + 1//Y2tv+0tTW/8rMzf/Iysz+ys3O/8zP0P/Nz9D+y83P/87Q0v/R09T+0dPU/9DT1P/S1NX+0dPV/9XW + 1//U1dX+0dHR/8nJyf7ExMT/09PT/9nZ2f7Z2dn/2dnZ/9jY2P7a2tr/2NjY/9nZ2f7W1tb/09PT/9bW + 1v7k5OT/5OTk/9/f3/7s7Oz/9/f3//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//5+np/8vM + zf7Lzc7/zM7P/9XW1/7P0dL/z9DS/8/R0v7Q0tP/09XW/9HS1P7Y2dv/1dbX/9LU1v7Y2tv/5ujp/+jq + 6//o6uv+4ePk/9ze3//X2dv+1dfY/83P0f/P0dP+y87P/8jLzf/Cxcb+vL2//72/wP+9v8H+xMbI/8jK + zP/Jy83+y8zO/8rMzf/Mzs/+zM7P/8/R0v/P0NH+zMzN/8TExP6/v7//zs7O/9LS0v7T09P/0tLS/9PT + 0/7W1tb/1dXV/9XV1f7b29v/1dXV/9DQ0P7f39//4ODg/+Li4v729vb/+Pj4//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+3t/tzd3v7m6On+7O7u/uzt7v7r7e7+6+zt/urs7f7r7O3+6uzt/urr + 7f7p6+z+6evs/uXn6P7o6uv+6Orr/ujq6/7o6uv+5+nr/ufp6v7m6Or+5ujq/trc3f7Y2tz+1NbY/tLU + 1f7Iysv+ury+/re5uv69v8D+w8bH/sXIyf7Hycr+ycvN/srNzv7Lzc/+zc/Q/s/R0v7P0NH+zs7O/sTE + xP7ExMT+0tLS/tXV1f7V1dX+1NTU/tTU1P7T09P+0tLS/tDQ0P7Nzc3+0tLS/snJyf7V1dX+2NjY/vLy + 8v74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v7/7t7+//6uvs/+Lk5P7Y2tr/2drb/8/Q + 0f7Y2tv/3N7e/97g4f7b3d7/2tzd/+fp6v7q7O3/6uvt/+nq7P7o6uv/4ePk/97f4f/e4OL+3uDh/9/h + 4v/d3+H+5Obn/+Di5P/P0dP+zdDR/83P0P/Hysz+vsDC/7S2t/+ytLX+s7W2/7S2t/+1t7j+ubu8/72/ + wP/AwsP+wsXG/8fJyv/Gx8j+y8vL/8DAwP7BwcH/zs7O/9DQ0P7Pz8//zc3N/8zMzP7Ly8v/ysrK/8nJ + yf7Gxsb/xsbG/8fHx/7U1NT/5+fn//f39/75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v + 7/7u7+//6Onp/8bHyP7Mzc7/09TV/9DS0v7Y2tr/1dfY/9PV1v7X2dr/19na/+fo6v7q7O3/6evs/+nq + 7P7n6er/19ja/9ja3P/d3+D+3N7f/9nb3P/b3d/+3uHi/93g4f/Y2tv+yczN/8fJy//JzM3+xcfJ/8HD + xf/AwsT+v8HD/7y+wP+8vr/+vb/B/77Awv++wML+wcPE/8fJyv/Iycr+0tLS/8nJyf7Nzc3/1dXV/9bW + 1v7V1dX/1dXV/9TU1P7U1NT/09PT/9PT0/7T09P/0NDQ/8/Pz/7l5eX/9/f3//j4+P75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7e7u/uTl5v7r7e7+7O7v/uzt7v7r7e7+6uvs/uvt + 7v7r7O3+6uzt/urs7f7p6+z+6evs/ujq6/7p6+z+6Orr/ufp6v7o6ev+5+nr/ubo6f7m6On+5ujp/uXn + 6P7l6On+3N7g/tTX2P7S1Nb+0dPV/tDS1P7Q0tT+0tTW/tLV1v7R1NX+0NLU/s/R0/7Nz9D+y83O/srM + zf7Jysv+1NTU/tXV1f7g4OD+5eXl/ubm5v7l5eX+4+Pj/uLi4v7i4uL+4uLi/uHh4f7i4uL+4uLi/uPj + 4/75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+7v7/7u7/D/6uvr/9nb + 2/7Q0dL/0tTU/9DS0v7T1db/0dPU/9PV1v7T1db/5Obn/+rs7f7q7O3/6uvt/+nr7P7p6+3/4ePk/+jq + 7P/n6uv+5+nr/+fp6//m6Or+5ujq/+bo6f/l6On+5ejp/+Xo6f/k5+j+4+Xn/+Hk5f/f4uP+3N7g/9nb + 3f/X2dv+19nb/9ja3P/Z293+2dvc/9rb3f/W19j+39/f/+Xl5f7x8fH/9PT0//T09P719fX/9/f3//j4 + +P75+fn/+fn5//n5+f76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fPz/u7v8P7t7+/+6Onq/sLDxP7Q0dL+09XV/tDS0v7b3N3+1tjZ/trb3P7Y2dr+5Obn/urs + 7f7p6+z+6evs/unr7P7o6+z+2dvd/ujq6/7o6uv+5+nq/ubo6v7m6On+5ujq/ubo6v7l6On+5efp/uTn + 6P7k5uj+5Obo/uPm5/7j5ef+4+Xn/uPl5/7j5ef+4OLk/tve3/7X2tv+2Nrb/tvd3v7l5uf+8/Pz/vf3 + 9/76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vn5+f75+fn++fn5/vn5+f75+fn++fn5/vn5 + +f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v8P7u7/D/7u/w/+7v8P7t7/D/7e/v/+zu + 7v7s7u//7O3u/+zt7v7s7e7/6+3u/+rs7f7q7O3/6evt/+nr7P7p6+3/6evs/+jq7P/n6ev+5+nr/+fp + 6v/m6er+5+nq/+bo6v/l5+n+5efp/+Xn6f/k5uj+5Obo/+Tm6P/j5ef+4+bn/+Pm5//i5eb+4+bn/+Pm + 5//j5ef+3+Lj/9fZ2//t7/D+9vb3//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6 + +v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v + 8P7u8PD/7u/w/8nLy/7R0tP/x8nJ/83Oz/7Ky8z/yszN/8/R0v7X2dr/6evs/+rs7f7q7O3/6uvt/+rr + 7f7W2Nr/3uDh/9XX2P/h4+X+1tja/+bo6f/n6er+5unq/+bo6v/l5+n+5efp/+Tn6f/j5uj+5Obo/+Pm + 6P/j5ef+4+Xn/+Pl5//i5eb+4+Xn/+Pm5//j5ef+4+bn/+Xn6P/t7+/+9vb3//v7+/77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkaGhM9PT558vP0/u7v8P7u7/D+6err/t3e3/7W19j+4eLj/tze3v7f4OH+3+Dh/uDi + 4/7i5OX+6uvs/urs7f7q7Oz+6uvt/urr7f7d3+D+5efo/trc3f7n6ev+293e/ufp6v7m6Or+5ujq/ubo + 6f7l5+n+5Ofo/uTm6P7j5uj+4+bn/uPm5/7j5ef+4+Xn/uLl5/7i5eb+4uXm/uLl5v7i5eb+4+bn/uXn + 6f7s7u/+9vb2/vr7+/77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v75+fn++fn5/vn5 + +f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9PT558/T0/+/w8P7v8PD/7u/w/+Tl + 5v7q6+z/6err/+vs7f7t7u//7O7v/+zu7v7s7u//6+3u/+vs7f7q7Oz/5+nq/+bo6f7e4OH/5efo/+bo + 6f/m6Or+5efp/+Xn6f/l5+n+5Obo/+Tm6P/j5uf+4uTm/+Ll5v/i5Ob+4uTm/+Lk5v/f4uT+4OPk/+Pl + 5//i5eb+4+Xn/+Ll5v/i5eb+4+Xn/+Xn6f/s7e7+9fb2//r7+/78/Pz/+/v7//r6+v77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahka + GhM9PT558/T0/+/w8f7v8PH/6uvs/9TW1v7Cw8T/z9DR/+rr7P7t7u//7O7v/+zu7/7s7u//7O7u/+vt + 7f7n6er/1dfX/9PU1v7Nz9D/2tzd/93g4f/X2dv+0dPV/9XX2f/V19n+1NbY/+Di5P/W2dr+2dzd/9ja + 3P/c3+H+3eDh/9nb3f/c3+H+3N/h/+Ll5//i5eb+4uXn/+Pl5//i5eb+4+Xn/+Xn6P/r7e7+9fX2//r6 + +v78/Pz/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5 + +f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T0/u/w8f7v8PD+6+zt/uPl5f7b3N3+293d/uvs + 7f7t7u/+7O7v/uzu7/7s7u7+6+3u/uvt7v7p6+z+3uDg/t7g4f7f4OL+5efo/uLk5f7h4+T+5efo/uTm + 5/7k5uf+5Obo/uXn6f7g4uP+4ePl/uDj5P7i5ef+4uTm/uHk5f7g4uT+4ePl/uHk5v7i5Ob+4uTm/uLk + 5v7i5eb+4+Xn/uXn6P7r7O3+9PX1/vr6+v77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6 + +v75+fn++fn5/vn5+f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf3 + 9/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w + 8f7v8PH/7u/w/9/g4f7i4+T/4eLk/+Tm5/7j5eb/5Obn/+Lj5P7g4eL/3+Hi/+Di4/7r7e7/6+zt/+rs + 7f7q7O3/6evt/+Tm5//i5OX+4uTl/93f4f/c3uD+3+Hj/+Hj5f/j5ef+4+bn/+Hj5f/g4+T+4OPl/+Hk + 5v/h5Ob+4OPl/+Dj5f/f4uT+4OPl/+Dj5P/f4uT+4eTl/+Tn6P/q7O3+8/T1//n6+v77+/z/+/v7//r6 + +v77+/v/+/v7//r6+v76+vv/+vr6//r6+v76+vr/+vr6//n5+f75+fr/+fn6//n5+f75+fn/+fn5//j4 + +P74+Pn/+Pj5//j4+P74+Pj/9/f4//f39/739/j/9/f4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w8f7v8PH/7O3t/8fIyf7Hycn/ysvM/8LExP7Gx8j/xMbH/8nL + zP7Bw8T/zs/Q/9bY2f7r7e7/6+zt/+rs7f7q7O3/6evs/9ja2//X2tv+0tTV/9bY2v/X2dv+09bX/9XX + 2f/a3d7+3+Lj/9nc3f/a3N7+2Nvd/9zf4P/g4+X+3N/h/9nc3v/Z3N3+2tze/9jb3f/Y293+3+Hj/+Tm + 6P/q6+z+8/T0//n5+f77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+fn5//n5 + +f75+fn/+fn5//j4+f75+fn/+Pj4//f3+P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//z8 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/u/w8f7v8PD+7u/w/trc + 3P7o6er+7e7v/uzt7v7s7e7+7O3u/uzt7v7r7O3+6uzt/urr7P7r7e7+6+zt/urs7f7q6+z+6evs/uLk + 5f7g4+T+6Orr/ufp6/7m6Or+5ujp/ubo6v7l6On+4+bn/uPl5/7j5uf+4+bn/uLl5/7g4+T+3uDi/uDj + 5f7h5Ob+4uTm/uHk5v7i5Ob+4uXm/uTm6P7p6+z+8/P0/vj4+P76+vr++vr6/vr6+v76+vr++vr6/vn5 + +f75+fn++fn5/vn5+f75+fn++fn5/vj4+P74+Pj++Pj4/vj4+P74+Pj++Pj4/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vb29v729vb+9vb2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahoa + GhM+Pj558/X1/+/w8f7v8fH/7u/w/9nb2/7X2dn/3t/g/9jZ2v7W19j/zc7P/+Tm5/7t7u//7O7v/+vt + 7v7r7e7/6+3u/+vs7f7c3t//2tzd/9rc3f/a3N3+3d/g/93f4P/i5OX+3uDi/+Hj5P/e4OL+3d/h/97h + 4v/g4uT+4OLk/93f4f/e4eP+3N/h/+Hj5f/i5ef+4uXn/+Ll5//i5eb+4+bn/+Tm6P/p6+z+8vPz//j4 + +P76+vv/+/v7//r6+v77+/v/+vr6//n5+f76+vr/+vr6//n5+f76+vr/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w8f7v8PH/6err/9DR0v7Exsb/y83N/8fJ + yv7Y2tr/y83N/9/h4f7t7vD/7O3v/+zt7v7r7e7/6+3u/+vs7f7S1NT/09XW/9TW1//Q0tP+0tTV/9PV + 1v/W2Nr+2dvc/9fa2//Z293+293f/9XX2f/a3d7+1tja/9vd3//b3d/+19rc/+Hj5f/i5ef+4uXn/+Pl + 5//j5ef+4+bn/+Tm6P/p6+z+8vLz//j4+P76+/v/+vr7//r6+v76+vr/+vr6//n5+f76+vr/+fn6//n5 + +f75+fn/+fn5//j4+P74+Pn/+Pj5//j4+P74+Pj/+Pj4//f39/739/j/9/f4//f39/739/f/9vb3//b2 + 9v729vf/9vb3//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/u/w + 8f7u8PH+7/Dx/uLk5P7o6er+7u/x/u3v8P7t7/D+7e/v/u3u7/7s7u/+7O3v/uzt7v7s7e7+6+zt/urs + 7f7i4+X+5+jq/urr7P7o6uv+5+nr/ujq7P7n6ev+5+nq/uPl5v7i5Ob+5Obn/uLk5v7j5ef+4+Xn/uDj + 5P7h4+X+3+Lk/uLl5v7j5ef+4+bn/uPm5/7j5ef+4+bo/uTm6P7p6uv+8fLy/vj4+P76+vr++vr6/vn5 + +v75+fn++fn5/vn5+f75+fn++Pj5/vj4+f74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vb2 + 9/729vf+9vb3/vb29/729vb+9vb2/vX19v719fb+9fX2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8v7v8PH/6uvs/8/Q0P7R09T/1NXW/8jJyv7V1tf/0dLT/83P + 0P7V1tf/6+zt/+zt7/7s7e7/7O3u/+vs7f7Y2tv/293f/9PV1v/X2dr+5Obn/9fZ2v/a3N3+1tja/+Di + 4//h4+X+4uTm/+Pl5//m6On+5efp/+Xn6f/k5+j+5Ofo/+Tn6P/k5uj+5Obo/+Tm6P/j5uj+5Obo/+Xn + 6P/o6uv+8fLy//f3+P75+fr/+vr6//n5+v76+vr/+vr6//n5+f75+fn/+fn5//j4+f75+fn/+Pj4//j4 + +P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//z8 + /P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8f7w8fH/6Onp/9vc + 3P7S09P/1dbX/9DR0v7P0dH/09TV/9XX1/7Z29v/6+zt/+zu7v7s7e7/7O3u/+vt7v7Z2tv/3uDh/9TW + 1//P0NH+ztDR/9/h4f/a3N3+2Nrb/97g4v/Z29z+3d/g/97g4v/m6Or+5ujp/+Xo6f/l5+n+5efo/+Tn + 6P/k5uj+5Ofo/+Tn6P/k5uj+5efo/+Xn6f/o6uz+8PHx//b39/75+fn/+vr6//n5+f76+vr/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//b2 + 9v729vb/9vb2//X19f729vb/9vb2//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/Ahoa + GhM+Pj559PX2/vDx8f7v8PH+7/Dw/u3u7/7t7u/+7/Dx/u7w8P7u7/D+7u/w/u3u7/7t7+/+7e7v/uzu + 7v7s7e7+7O3u/uvt7v7q6+z+6uzt/ubo6f7n6On+5+jp/unr7P7p6+z+5+nq/ujq6/7n6er+5+nq/ufp + 6v7n6er+5unq/ubo6v7m6On+5ejp/uXn6f7l5+n+5efp/uXn6f7l5+j+5efp/uXn6f7o6uv+7/Dx/vb2 + 9v75+fn++fn5/vn5+f75+fn++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/vf3 + 9/729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9fX1/vX19f719fX+9fX1/vz8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/+/w8f7v8PL/7u/x/9bX2P7Fxsf/wMHC/8/Q + 0f6/wcL/xsfI/8/Q0f7t7+//7e7v/+zt7/7s7e//7O7u/+vt7f7r7e7/6+zu/+rs7f/q7Oz+6uzt/+nr + 7P/p6uz+6ers/+jq7P/o6uv+6Orr/+jq6//n6er+5+nq/+bo6v/m6On+5ujq/+bo6v/l5+n+5efp/+Xn + 6f/l5+j+5ujp/+bo6f/o6uv+7/Dx//X29v74+Pn/+fn5//j4+f75+fn/+Pj5//j4+P74+Pn/+Pj4//f3 + +P74+Pj/9/f4//f39/739/j/9/f3//b29v729vf/9vb3//X19v729vf/9vb2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w + 8P7v8PH/6uvs/8nKy/7a29z/1dbX/9fY2f7Y2dv/yMnK/8LDxf7s7u7/7O3u/+vt7v7r7O7/6uzt/+vs + 7f7q7Oz/6uvs/+nr7f/p6uz+6ers/+nq7P/p6uv+6Orr/+jp6//n6ev+5+nr/+fp6v/n6Or+5ujq/+bo + 6v/m6On+5ujp/+Xo6f/l5+n+5efp/+Xn6f/l5+j+5efp/+bo6f/o6uz+7u/x//X19v74+Pj/+fn5//j4 + +P74+Pn/+Pj5//f3+P74+Pj/+Pj4//f39/739/j/9/f4//b29/739/f/9/f3//b29v729vf/9vb3//X1 + 9v729vb/9vb2//X19f719fb/9fX2//T09f719fX/9PT1//z8/P4AAABBOzs8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9Pj558vP0/uzt7v7t7u7+7O3u/uzt7v7r7O3+6+zt/uvr7P7q6+z+6ers/unq + 6/7o6er+3+Dh/ufo6P7n6On+5+jp/ubn6f7m6On+5ujo/ubn6P7l5+j+5ebo/uXm6P7d3uD+5Obn/uTm + 5/7k5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7k5uj+5Obo/uXn + 6f7o6uz+7/Dx/vX19v74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vf39/729vf+9vb3/vb2 + 9/729vb+9vb2/vX19v719fb+9fX2/vX19v719fX+9fX1/vT09f709PX+9PT1/vT09P709PT+8/P0/vz8 + /P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157/Dx/+nq6/7p6er/4ODh/6an + qP6qq6v/sbKz/6Gio/6vr7D/srO0/62ur/6qq6z/q6yt/7m6uv6mp6j/uru8/7W2tv6trq//1NbW/97f + 4P+wsrP+tba4/7i5uv+vsLH+s7W2/7m6u//Gx8j+3d7f/93e3//d3t/+3d7f/93f4P/e3+D+3uDh/9/h + 4v/g4uP+4ePk/+Lk5f/k5eb+5efo/+fp6v/r7O3+8fLy//b29v739/j/+Pj4//f3+P74+Pj/+Pj4//f3 + 9/739/f/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//X19f719fX/9fX1//T0 + 9f719fX/9fX1//T09P709PT/9PT0//z8/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZ + GRM9PT157u7v/+fo6f7m5+j/4OHh/7a3uP7S0tP/2NnZ/8fIyP7IyMn/tre3/8vLzP7X19j/09TV/9jZ + 2v7Nzs7/09TV/9XW1/7S09T/2NjZ/9nZ2v/BwsL+x8jJ/9TU1f/P0NH+0tPU/9LT0//V1tf+2dra/9na + 2//a29z+293d/9ze3//e3+D+3+Dh/+Hi4//i5OX+5OXn/+bn6f/n6er+6evr/+vt7f/v8PH+8/T0//b2 + 9v739/j/9/f4//f39/739/j/9/f3//f39/739/f/9vb3//b29v729vf/9vb2//b29v719fb/9fX2//X1 + 9f719fb/9fX1//X19f709PX/9PT1//T09P709PX/9PT0//Pz8/7z8/T/8/P0//z8/P4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157u/w/ujo6f7n5+j+5ebn/t7e3/7V1db+2NjZ/uHi + 4/7X19j+1NTV/tHS0v7Ozs/+zc3O/tDQ0f7Nzs7+zc7O/tbW1/7Nzc7+1NTV/s3Oz/7Q0dH+0NHR/tPT + 1P7a29v+2tvc/tvc3f7Y2Nn+09TU/s7P0P7X2Nn+3+Dg/uPk5f7l5uf+5ujo/ujp6f7p6uv+6uzs/uvt + 7f7s7e7+7e7v/u/w8f7z8/T+9fX2/vb29/729vf+9vb3/vb29/729vf+9vb2/vb29v729vb+9fX2/vX1 + 9v719fb+9fX2/vX19f719fX+9PT1/vT09f709PX+9PT1/vT09P7z8/T+8/P0/vPz9P7z8/T+8/Pz/vLy + 8/7y8vP+8vLz/vv7/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGhM+Pj558vLy/+vs + 7P7q6uz/5ubn/76+v/64uLn/p6eo/9ra2/6ztLX/uru8/6qrq/60tLX/qKip/6qqq/7IyMn/09PU/7O0 + tP6tra7/tLW2/7S0tf+zs7T+u7y8/7u7vP/W19j+yMjJ/+Dh4v/AwcL+xsfH/87Pz//Q0dL+0tPU/+rr + 7f/r7O3+7O3u/+zu7//t7vD+7u/w/+7v8P/u7/D+7/Dy//Lz9P/09fb+9vb3//b29/739/f/9/f3//b2 + 9v729vf/9vb3//X19v729vf/9vb2//X19v719fb/9fX2//T09f719fb/9fX1//T09f709PX/9PT1//Pz + 9P709PX/9PT0//Pz9P7z8/T/8/P0//Ly8/7z8/T/8/Pz//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhoaGhM+Pj559PT1/+3t7v7t7e7/6err/9PU1f7c3N7/zM3N/9jZ2f7Ozs//3t/g/9zc + 3f7d3d7/2NnZ/9vb2/7g4OH/4eLj/+Hh4/7f4OH/3+Dg/+Hh4v/c3d7+4uPl/+Lj5f/m5+j+5ufo/+fo + 6f/a29z+19jZ/9na2//c3d7+5OXm/+3u7//t7u/+7e/w/+7v8P/u7/D+7u/w/+7v8P/v8PH+8vLz//T0 + 9f/29vb+9vb3//b29v729vf/9vb3//X19v729vf/9vb2//X19v729vb/9fX2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//T09P709PX/9PT1//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7y8vP/8vLz//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj8/AhoaGhM+Pz959PX2/u7u8P7t7u/+6urr/snJ + y/7Q0NL+z9DR/s/Q0f7Ky8z+2dna/s7Oz/7MzM3+t7i4/sjIyf7Kysv+2tvc/tLT1P7P0NH+4OHi/ujp + 6/7R0tP+2tvb/tvc3f7R0tT+2drb/tbX2f7j5Ob+3d7f/tfZ2v7Y2tv+3+Hi/uTl5v7o6er+3+Hh/t3e + 3/7c3d7+2drb/tna2/7a29z+3t/f/uHh4v7j4+T+6enq/urq6/7a2tr+5OTl/tLS0/7n5+j+6+vr/unp + 6f7d3d7+39/g/uTk5f7g4OH+5OTl/vT09f709PT+9PT0/vPz9P7z8/T+8/P0/vPz9P7z8/P+8vLz/vLy + 8/7y8vP+8vLz/vLy8/7x8fL+8fHy/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959fX2/+7u8P7t7u//4+Pk/6ipqv6xsrP/wcHC/6Kjo/60tbb/pKSl/7Cwsv6ys7P/tbW2/8XG + x/6rq6z/u7y9/8DBwv65urv/4eLj/+Xm5//HyMn+u7y9/8fIyf+6u73+tLW3/8XGx//b3N7+vL2+/87P + 0f+5urv+x8jJ/7q7vP/Mzc7+wsTF/8HCw//Ky8z+ycrM/8/Q0f/Fxcb+vr+//8/Pz//AwMD+1dXW/9bW + 1/65ubn/yMjI/87Oz/63t7f/wcHC/9HR0v6/v8D/xMTF/8vLy/7Fxcb/y8vM//Pz9P7z8/T/8/P0//Ly + 9P7z8/T/8/Pz//Ly8/7y8vP/8vLz//Hx8/7y8vP/8vLy//Hx8v7x8fL/8fHy//v7+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fb2/+7u7/7u7vD/6+vt/9XV1v7o6er/6urs/+Li + 4/7j5OX/1dXW/+Tl5f7q6uv/5+fo/+Xm5/7i4uP/6Onq/+rq6/7p6ur/6uvs/+rr7P/m5+j+4+Tl/+rr + 7P/q6+z+5ufn/+vs7f/s7e7+5ufo/+zt7v/n6On+7e7v/+Xm6P/q6+z+4eLj/+nq7P/t7vD+7u/w//Dx + 8v/x8vP+7/Dw//T09f/z8/T+9PT1/+7u7v7p6en/9PT0//Pz8/7u7u//6+vs//Pz9P7s7O3/8/P0//Pz + 8/7z8/P/7Ozt//Pz8/7z8/T/8/P0//Ly8/7z8/P/8vLz//Ly8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw + 8f7x8fL/8fHy//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fX2/u7u + 7/7u7u/+6Ojq/tXV1v6ztLX+vL29/snKyv7LzM3+ycrL/uXl5v7r7O3+6erq/ujo6f7p6er+6urr/urr + 7P7X2Nj+ycrL/svLzP6+v8D+t7i5/sbHyP7R0tL+2Nna/tjZ2v7Q0dL+zc7P/tPU1f7a29v+1NXW/tXW + 2P7S09T+1dbX/t3e3/7Mzc7+4eLj/vLy8/7z9PT+9PT1/vT09P709PT+9PT0/vT09P709PT+9PT0/vPz + 9P7z8/T+8/P0/vPz9P7z8/T+8/P0/vPz8/7z8/P+8vLz/vLy8/7y8vP+8vLz/vLy8v7y8vL+8fHy/vHx + 8v7x8fL+8fHy/vHx8f7w8PH+8PDx/vDw8f7w8PH+8PDx/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7u//5OTl/6enqP61tbb/tLW1/7O0tP7AwMH/uru8/+Tl + 5v7s7O7/6urr/+jp6v7p6uv/6+vs/+vs7P7W19f/ysvL/8XGx//Iycr+xcbH/7/Awf/Excb+z9DR/9DR + 0v/Mzc7+zM3O/8nKzP/S09T+wcLC/7/Awf/MzM7+x8jK/8nKy//Iycr+29vc//Lz9P/z8/T+9PT1//T0 + 9f/z8/T+9PT1//Pz9P709PT/9PT0//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7z8/T/8/Pz//Ly + 8/7y8vP/8vLz//Hx8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7vD/7Ozu/+jo + 6v7p6ev/7e7v/+3t7/7t7e//7e3v/+3t7v7s7O7/6uvs/+np6/7p6uz/6+vt/+vs7f7r7O3/6+zt/+vs + 7v/r7O7+6+zu/+zt7v/s7e7+7e3v/+rr7P/t7u/+7e7v/+3u7//t7vD+6+vt/+zt7v/u7vD+7u/x/+7v + 8f/w8PL+8fHz//Lz9P/z8/T+8/P0//Pz9P/z8/T+8/P0//Pz9P7z8/T/8/P0//Ly8/7y8vT/8vL0//Ly + 8/7y8vT/8vLz//Ly8/7y8vP/8vLz//Hx8v7x8fP/8fHz//Hx8v7x8fL/8fHy//Dw8f7w8PL/8PDy//Dw + 8f7w8PH/8PDx/+/v8P7v7/H/7+/x//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959vb3/u3t7/7t7e/+7e3v/u3t7/7t7e/+7e3v/u3t7/7t7e/+7O3v/uzs7v7s7O7+6+vs/urq + 7P7q6u3+6+vt/uvr7f7r7O3+6+zt/uzs7f7s7O7+7Ozu/uzt7v7s7e/+7O3v/u3t7/7t7e/+7e7v/u3u + 7/7t7u/+7u7w/u7u8P7u7vD+7u/w/u/w8f7x8fL+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy + 8/7y8vP+8vLz/vHx8/7x8fP+8fHz/vHx8/7x8fP+8fHy/vHx8v7x8fL+8fHy/vDw8v7w8PL+8PDy/vDw + 8v7w8PH+8PDx/u/v8f7v7/H+7+/x/u/v8f7v7/D+7+/w/u7u8P7u7vD+7u7w/vr6+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPDw8AhkZGRM/Pz949vb3/+3t7/7u7u//7u7v/+3t7/7t7u//7e3v/+3t + 7v7t7e7/7e7v/+3t7/7s7O7/6+vt/+rr7P7r7Oz/7Ozt/+zs7f7s7O7/7Ozu/+zs7v/s7e7+7O3u/+3t + 7v/t7e7+7e7v/+3u7//t7e/+7e7v/+3u8P/t7vD+7u7w/+7u8P/u7vD+7u/w/+/w8v/x8fL+8vLz//Ly + 8//x8fP+8vLz//Ly8//x8fP+8vLz//Hx8/7y8vP/8vLz//Hx8v7y8vL/8fHy//Hx8v7x8fL/8fHy//Dw + 8v7x8fL/8fHy//Dw8f7w8PH/8PDx/+/v8f7w8PH/8PDx/+/v8f7w8PH/7+/w/+/v8P7v7/D/7+/w/+7u + 8P7u7vD/7u7v//r6+/4AAABAODg4DElJSQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU2AhYWFhE/Pz919vb3/+3t + 7v7u7u//7u7v/+7u7v7u7u//7u7v/+3t7v7t7e7/7e3u/+3t7v7t7e7/7O3u/+zs7f7s7O3/7Ozt/+zs + 7f7s7O3/7O3t/+zt7v/s7e7+7e3u/+3t7v/t7e7+7e7v/+3u7//t7u/+7e7v/+7u7//u7u/+7u/w/+/v + 8P/v7/D+8PDx//Dx8v/x8fL+8vLy//Ly8v/x8fL+8vLy//Ly8v/x8fL+8fHy//Hx8v7x8fL/8fHy//Hx + 8f7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//Dw8P7w8PH/8PDx/+/v8P7w8PD/7+/w/+/v + 8P7v7/D/7+/w/+7u7/7v7/D/7u7v/+7u7/7u7u//7u7v//r6+/4AAAA8MTExC0FBQQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMjIzARQUFA0/Pz9n/f39/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++fr6/vn5 + +v75+fn++fn6/vn5+f75+fn++Pn5/vj4+f74+Pn++Pn5/vj5+f74+fn++Pn5/vj5+f74+fn++Pn5/vj5 + +f75+fn++fn5/vn5+v75+fr++fr6/vr6+v76+vr++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vr6+/76+vv++vr7/vr6+/76+vv++vr6/vr6+v76+vr++vr7/v7+ + /v4AAAAtLi4uCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PQUAAAAYAAAALwAAADkAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA6AAAAOAAAACsGBgYRUVFRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABNTU4EMjIyBzAwMAk4ODgJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk5OTkJMTExCTw8PAdRUVECAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////+AAAAAAAP/// + ////4AAAAAAAD///////4AAAAAAAA///////wAAAAAAAAf//////wAAAAAAAAP//////wAAAAAAAAH// + ////wAAAAAAAAD//////wAAAAAAAAB//////wAAAAAAAAA//////wAAAAAAAAAf/////wAAAAAAAAAP/ + ////wAAAAAAAAAH/////wAAAAAAAAAD/////wAAAAAAAAAB/////wAAAAAAAAAA/////wAAAAAAAAAAf + ////wAAAAAAAAAAP////wAAAAAAAAAAH////wAAAAAAAAAAD////wAAAAAAAAAAB////wAAAAAAAAAAA + ////wAAAAAAAAAAAf///wAAAAAAAAAAAP///wAAAAAAAAAAAH///wAAAAAAAAAAAD///wAAAAAAAAAAA + B///wAAAAAAAAAAAB///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAA///4AAAAAAAAAAAA///8AAAAAAAAAAAB/////////////////////////////// + //////////////////////////////////8oAAAASAAAAJAAAAABACAAAAAAAGBUAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFAEXFxcBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGBgYARgYGAEYGBgBGBgYARcXFwEVFRUBERERAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA6OjoCFRUVDgUFBRoGBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYcBQUFFxYWFg0sLCwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIJNzc3X39/ + f6t/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/ + f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r35+fq9+fn6vfX19r3x8fK97e3uvenp6r3l5 + ea93d3eubW1toi8vL2cAAAAmHx8fCjQ0NAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEPb29vmPn5+f/19fb/9fX2//X1 + 9v/19fb/9fX2//b29v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//X19v/09PX/8/P0//Hx8v/v7/D/7e3u/+vr7P/o6On/5eXl/9zc + 3fyRkZHBERERQBcXFw86OjoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJycPb29vmvb29//09PX+9fX2//T09f719fb/9fX2/vb2 + 9v/29vf/9fX2/vb29//19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//X1 + 9v719fb/9PT1/vT09f/z8/T/8vLz/vHx8v/v7/D+7e3u/+vr7P7o6On/5eXm/t/f4P/V1db+srKy3Rwc + HFEYGBgQOzs8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvb29//19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//T0 + 9f/09PX/8vLz//Hx8v/w8PH/7u7v/+vr7P/p6er/5+fn/+Li4//b29z/z8/Q/8DAwegfHx9XGBgYEjo6 + OwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvb29//19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb2//X19v/19fX/9PT0//Ly + 8//x8fH/7+/v/+3t7f/q6ur/5+fo/+Tk5f/f3+D/1dXW/9DQ0P/Hx8jpJSUlWwoKChM2NjcCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//b29v729vf/9vb2/vb2 + 9//39/f/9vb3/vf39//29vf+9/f3//b29/739/j/9vb3/vb29//19fb/9PT1/vPz9P/x8fL+8PDw/+7u + 7v7r6+z/6Ojp/ubm5v/i4uL+29vb/87Ozv/i4uP+y8vN7jAwMGQJCQkVNzc4AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9fX2//X1 + 9v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+fn + 5//k5OX/3t7f/9PT0//f3+D/4uLk/8/P0e83NzhqCgoKFzo6OgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/19fb+9fX2//X19v719fb/9fX2/vb2 + 9//29vf/9vb2/vf39//29vf+9/f3//b29/739/j/9vb3/vf3+P/39/j/9vb3/vf3+P/29vf+9vb3//b2 + 9/729vf/9vb3/vb29//19fb/9PT1/vPz9P/y8vP+8fHy/+/v8P7s7O3/6urr/ufn6P/l5eX+39/g/9bW + 1//b29v+7Ozt/+Hh4/7T09XzPz8/cwoKChk7OzsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9PT1//Ly8//09PX/9fX1//b29v/39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/q6uv/3Nzd/9zc3f/a2tv/2NjZ/9jY2f/Y2Nn/2NjZ/9jY + 2P/X19j/1tbX/9bW1v/V1dX/09PU/9LS0v/Q0ND/zs7O/8vLzP/IyMn/xMTF/7y8vf/Dw8T/8/Pz/+vr + 7P/h4eP/1dXW9kFBQngKCgobPDw8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvf3+P/19fb+9fX2//X19f729vb/9vb2/vb29//29vf/9vb3/vf3+P/29vf+9/f4//b2 + 9/739/j/9vb3/vf3+P/m5ub/1NTV/t/f4P/V1dX+z8/P/9DQ0f7R0dH/0dHR/tHR0f/Q0NH/z8/Q/s/P + z//Nzc7+zc3O/8zMzf7Kysv/yMjJ/sXFxv/CwsP+vr6+/7e3uP+6urv+9PT0//Hx8v7r6+z/4eHj/tTU + 1vdJSUmACgoKHDo6OgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/29vf/8/Pz/+3t7v/x8fL/8PDx//Hx8v/09PT/9fX2//b29//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/m5uf/1NTU/+Dg4f/V1db/0tLT/9jY2f/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9fX2P/W1tf/1dXW/9TU + 1f/T09P/0NDR/87Ozv/MzM3/yMjJ/8DAwf/AwMH/9fX1//b29v/x8fL/6+vs/+Hh4//W1tj6SkpKgwMD + Ax4rKysFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vb+9fX2//T0 + 9f729vf/9fX2/vX19f/29vb/9vb3/vb29//29vf+9/f4//b29/739/j/9/f3/vf3+P/l5eX/2NjY/t7e + 3v/Z2dr+1NTV/9ra2/7c3N3/3Nzd/tzc3f/c3Nz/29vc/tvb2//a2tr+2dnZ/9jY2P7W1tf/1NTV/tHR + 0v/Pz9D+zMzN/8TExf/Dw8P+9vb2//j4+P729vb/8fHy/uvr7P/h4eP+0tLU+ExMTYYCAgIeKioqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+zs7P/v7+//7u7u//Ly + 8v/w8PD/8vLy//b29v/39/f/9/f3//f3+P/39/f/9/f3//j4+P/l5eX/4eHh/9bW1v/c3Nz/19fX/9jY + 2f/d3d3/3d3d/93d3f/c3N3/3Nzc/9vb3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9PT1P/R0dH/zs7O/8fH + x//ExMT/+Pj4//n5+f/4+Pj/9vb2//Hx8v/r6+z/4eHj/9PT1fpNTU6IAgICIC0tLQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9fX1//Ly8v/19fX/9fX1//X19f/29vb/9PT0//f3 + 9//4+Pj/+Pj4//j4+P/39/f/9/f3//j4+P/l5eX/4+Pj/9XV1f/e3t7/3Nzc/9fX1//c3Nz/3t7e/97e + 3v/d3d3/3d3d/9zc3P/c3Nz/29vb/9ra2v/Z2dn/19fX/9XV1f/T09P/0NDQ/8rKyv/IyMj/+fn5//r6 + +v/5+fn/+Pj4//b29v/x8fL/6+vs/+Hh4//Pz9L5SUlKhQoKChw3NzgEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvj4+P/29vb+9PT0/+rq6v7s7Oz/7Ozs/vDw8P/u7u7/8PDw/vb29v/39/f++Pj4//f3 + 9/729vb/9vb2/vb29v/k5OT/5OTk/tvb2//a2tr+4ODg/9jY2P7b29v/3t7e/t/f3//e3t7/3d3d/t7e + 3v/c3Nz+3Nzc/9vb2/7a2tr/2dnZ/tfX1//V1dX+0tLS/87Ozv/Ozs7++vr6//r6+v76+vr/+fn5/vj4 + +P/29vb+8fHy/+vr7P/h4eP+zs7R+UBAQH4JCQkbNjY2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4 + +P/39/f/9PT0/+/v7//09PT/9fX1//X19f/29vb/8vLy//f39//4+Pj/+Pj4//j4+P/29vb/9vb2//b2 + 9v/k5OT/5OTk/+Li4v/U1NT/4+Pj/9zc3P/a2tr/3t7e/9/f3//f39//3t7e/97e3v/e3t7/3d3d/9zc + 3P/b29v/2tra/9nZ2f/X19f/1dXV/9DQ0P/Q0ND/6Ojo/+Tk5P/f39//3Nzc/9PT0//V1dX/3Nzc/97e + 3v/o6Oj/4+Pk/8nJy/Y2NjdzCQkJFzU1NgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/29vb+9PT0/+np + 6f7t7e3/6+vr/vHx8f/t7e3/9PT0/vf39//39/f++Pj4//f39/709PT/9PT0/vX19f/g4OD/4+Pj/uLi + 4v/U1NT+4+Pj/+Dg4P7Z2dn/3t7e/uDg4P/g4OD/39/f/t/f3//e3t7+3t7e/93d3f7c3Nz/29vb/tra + 2v/Y2Nj+19fX/9TU1P/Q0ND+zMzM/8fHx/7CwsL/vr6+/q6urv+2trb+u7u7/7Kysv/AwMD+xMTE/87O + z/7KyszzNDQ0bAkJCRU1NTYCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+3t7f/y8vL/8vLy//Ly + 8v/z8/P/8PDw//b29v/39/f/+Pj4//f39//09PT/9fX1//b29v/h4eH/5OTk/+Pj4//c3Nz/3t7e/+Tk + 5P/a2tr/3d3d/+Dg4P/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/d3d3/3Nzc/9vb2//a2tr/2dnZ/9fX + 1//V1dX/0tLS/9DQ0P/Ozs7/xMTE/76+vv/Hx8f/ysrK/8DAwP/T09P/0tLS/8vLy//FxcX/xMTF8TEx + MmMWFhYSPT09AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf39//29vb+9PT0/+rq6v7s7Oz/6urq/vDw8P/r6+v/7+/v/vT0 + 9P/29vb+9vb2//b29v7y8vL/8vLy/vLy8v/e3t7/4uLi/uDg4P/e3t7+2NjY/+Pj4/7c3Nz/2dnZ/t/f + 3//g4OD/4ODg/t/f3//f39/+39/f/97e3v7e3t7/3t7e/t3d3f/b29v+29vb/9nZ2f/Y2Nj+1tbW/9TU + 1P7S0tL/w8PD/snJyf/R0dH+0tLS/8jIyP/d3d3+3t7e/9vb2/7V1dX/y8vL/r29veseHh5NLCwsCQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbm5umvT09P/09PT/7+/v/+Pj4//r6+v/6+vr/+vr6//r6+v/5+fn//Hx8f/z8/P/8/Pz//Pz + 8//t7e3/7Ozs/+/v7//a2tr/3d3d/93d3f/b29v/19fX/+Hh4f/d3d3/1dXV/9nZ2f/b29v/29vb/9vb + 2//a2tr/29vb/9vb2//b29v/29vb/9vb2//a2tr/2dnZ/9nZ2f/X19f/1tbW/9TU1P/R0dH/xMTE/8/P + z//W1tb/1tbW/83Nzf/h4eH/5OTk/+Pj4//g4OD/29vb/9TU1P+QkJC6CQkJGTo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvHx + 8f/v7+/+7Ozs/+Tk5P7l5eX/4+Pj/ufn5//l5eX/5+fn/uvr6//t7e3+7e3t/+zs7f7p6en/5+fn/ufn + 6P/V1dX/2dnZ/tfX1//W1tb+2dnZ/87Ozv7S0tL/yMjI/sXFxf/Gxsb/x8fH/sjIyP/IyMj+x8fI/8jI + yP7Jycn/ysrK/svLy//Kysr+ysrK/8nJyf/IyMj+x8fH/8bGxv7AwMD/yMjI/tXV1f/a2tr+2dnZ/8/P + z//j4+P+5+fn/+fn5/7m5ub/4+Pj/uDg4P/W1tbwAAAAKUBAQAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmu7v7//t7e3/6Ojo/9jY + 2P/g4eH/3+Dg/+Dh4f/e39//3N3d/+jo6P/p6er/6enp/+jp6f/i4uL/4eHh/+Hh4f/R0dH/1NXV/9PU + 1P/R0dL/1tfX/8fHyP/IyMn/w8TE/8TFxf/Hx8f/yMjJ/8nJyf/Jysr/ysrK/8vLy//Nzc3/z8/P/8/P + z//Pz8//z8/P/87Ozv/Ozs7/zMzM/8vLy//Gxsb/19fX/9vb2//d3d3/3Nzc/9LS0v/m5ub/6urq/+rq + 6v/p6en/6Ojo/+fn5//o6Oj9AAAAM0xMTQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/s7e//6uvs/+Pk5f/k5eb/4+Pk/+bn + 6P/k5eb/6Onq/+jp6//q6uz/6err/+nq6//l5uf/5OXm/+Hi4//V1tb/2NjZ/9bX2P/U1db/19jZ/8nK + y//Mzc7/x8jK/8vMzf/Nzs//zc7P/83O0P/Nzs//zs/Q/8/P0P/S0tL/1NTV/9bW1v/W1tb/1dXW/9TU + 1f/T09T/09PT/9LS0v/Ozs7/29vb/93d3f/f39//3t7f/9fX2P/j4+P/7Ozs/+zs7f/r6+z/6urr/+rq + 6//u7u7/AAAANlNTUwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8f/t7u/+5+jq/9fZ2v7f4OL/3t/g/uHi4//e3+D/2tzd/unq + 7P/r7O3+6+zt/+rs7f7j5OX/4ePk/t/g4v/T1db/1dbY/tTV1v/T1Nb+19jZ/8rLzP7LzM7/xsjK/svM + zv/Mzs//zc7Q/s3O0P/Nz9D+zs/R/9HR0v7U1NT/1tbW/tfX2P/Y2Nj+19fX/9bW1v/V1db+1NTV/9PT + 1P7R0dL/2dna/t7e3//g4OH+4ODh/93d3v/i4uL+7u7u/+/v7/7u7u//7e3u/u3t7v/w8PH+AAAANlZW + VgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7w8f/t7vD/7O3u/+Xm5//n6Or/5ufp/+jp6//n6Or/5+jp/+rr7P/r7e7/6+zt/+rs + 7f/o6uv/5+jq/+Pl5v/Y2dv/2dvc/9TW2P/X2Nr/2drc/8zNz//NztD/yMnL/83P0P/O0NL/ztDR/87Q + 0f/P0NL/z9DR/9LS0//W1tf/2NjZ/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbW/9XV1f/T09P/2trb/+Dg + 4P/i4uP/4eHi/9/f3//j4+P/8PDw//Hx8f/w8PH/7+/w/+/v8P/z8/P/AAAANldXVwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8P/t7+/+5ufp/9TV1v7b3d7/2drc/t3f4P/Z2tz/3N7f/unq6//q7O3+6uzt/+nr7f7d3uD/3N3f/tvd + 3v/Q0tP/0tPV/tLT1f/R09T+1dfY/8fJy/7Ky83/xsfJ/svMzv/MztD/zM7P/szNz//Nz9D+zs/R/9LS + 0/7W1tf/2dna/tra2v/Z2dr+2dna/9nZ2f/Y2Nn+19fY/9bW1/7U1NT/3Nzc/uHh4v/k5OT+4+Pk/+Hh + 4f/k5OX+8fHx//Pz8/7y8vP/8fHy/vHx8v/19fX+AAAANlhYWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7+//7O3u/+fp + 6v/q6+3/6evs/+rr7f/p6+z/6Onq/+rs7f/q7O3/6uzu/+rr7f/o6ev/5ujq/+Hj5f/a293/2tvd/9bX + 2f/Y2tv/2Nnb/8vMzv/Jy8z/w8XH/8nLzf/Lzc7/y83O/8vNz//Mzs//zc7Q/9HS0//W1tf/2NjZ/9nZ + 2f/Y2Nn/2NjY/9fX1//W1tf/1tbX/9bW1v/U1NT/29vc/+Hh4f/j4+T/5OTl/+Li4//l5eb/8vLz//T0 + 9f/09PT/8/P0//Ly8//39/f/AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/t7u/+5ufo/8/R0v7W2Nn/09XW/trb + 3f/V1tf/2drc/ufo6v/q6+3+6evt/+nq7P7e4OH/293e/tXX2f/T1db/0tTV/s7Q0v/GyMr+w8TG/7y+ + v/68vb//u7y9/sDBw//BwsT/wMHD/r/Awv/Bw8X+w8TG/8jJyv7Nzc7/0NDR/tDQ0f/Q0ND+0dHR/8/P + 0P/Pz8/+zs7P/87Oz/7MzMz/09PT/tfX2P/b29z+3d3e/97e3//h4eL+8/P0//X19v719fX/9fX1/vT0 + 9f/4+Pj+AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8P/t7/D/7O3u/+Xn6P/q6+3/6uvs/+rs7P/q6+z/5+nq/+rr + 7f/q6+3/6uvt/+nr7f/m5+n/5efo/9/h4v/Z293/09XX/8PExv+6vL3/ury9/7q8vf+7vL7/ubq7/77A + wf+/wML/vsDB/72/wP+9v8D/vb/A/8HCw//Gx8f/yMjI/8jIyP/Hx8j/x8fH/8XFxv/ExMT/wsLC/8HB + wf+/v8D/wcHB/8XFxf/IyMj/ycnK/8nJyv/T09P/8fHy//b29//29vf/9vb2//X19v/5+fn/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7v8f/t7vD+5ufo/9HS1P7V1tj/0tTV/tnb3P/T1db/3+Hj/ufp6v/p6+3+6evt/+nr + 7P7e4OL/3N7f/tDS1P/Iysz/ycvN/sLExf+4ubv+vL7A/7u9v/64urz/tri5/ry9v/+9v8D/vsDB/r7A + wf/Bw8T+wcPE/8bHyP7Nzc3/0NDQ/s3Nzv/Ly8v+y8vL/8fHx//Gxsb+wsLD/8LCwv7BwcH/wcHC/sfH + yP/IyMn+wMDB/7+/v//W1tf+9PT1//b29/739/f/9vb3/vb29v/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8f/t7/D/6+zt/+Pk5v/s7e7/7O3u/+vs7f/q7O7/5+jq/+rr7f/q6+3/6uzt/+nr7P/l5uj/5Obn/+Pl + 5//X2dv/4OLj/97g4v/U1dj/0NLU/9PU1v/S1Nb/0NLT/9TW1//U19j/09XX/9PV1v/S1NX/09XW/9na + 2//i4uL/4+Pj/9ra2//X19f/19fY/9XV1f/U1NT/0dHS/9LS0v/S0tP/1NTV/9zc3P/h4eL/5eXl/93d + 3v/z8/P/9/f4//f3+P/39/j/9/f3//f39//7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7w8f/t7/D/5ufp/8/Q + 0v/S09X/z9HS/9fZ2v/R0tP/2Nrb/+bo6f/q7O3/6uzt/+nr7P/c3t//2Nrc/9nb3P/R09T/0tTW/9nb + 3f/U1tj/x8nK/8zOz//Nz9H/0NLU/9DS1P/Nz9H/y83P/8vNz//Lzc//zc/Q/9PU1f/S0tP/xsbG/8XF + xv/Ly8v/z8/P/9PT1P/V1dX/2NjY/9nZ2f/a2tv/3d3e/+Xl5f/o6Oj/4uLi/+vr6//4+Pj/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/t7u/+6err/+Hj4/7s7e7/6+zt/urr + 7P/q7O3/4ePk/urs7f/q6+z+6uvt/+nq7P7o6uv/5+nq/ufp6v/n6er/293e/t3f4P/c3+D+0dPU/8zO + z/7S1NX/09XW/tHT1P/P0dL/z9HS/s/R0v/Nz9H+zc/Q/9LT1P7Q0dH/xsbG/snJyf/W1tb+1tbW/9bW + 1v/W1tb+1dXV/9PT0/7V1dX/3Nzc/uXl5f/l5eX+4+Pj//f39//4+Pj++Pj4//f39/74+Pj/9/f3/vj4 + +P/7+/v+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2trmu7w8P/t7u//4+Tl/9XX1//R09P/1tfY/9bY2f/Y2tv/2tvc/9fZ + 2v/a3N3/2dvc/9fZ2v/m5+n/6Orr/+bo6v/d3+H/2dvc/87Q0v/R1NX/zc/R/8bIyv/Cxcb/w8XH/8TG + yP/KzM7/zc/R/8zO0P/O0NH/zc/R/9HS0//Pz8//xMTE/8jIyP/U1NT/1dXV/9PT0//X19f/1tbW/9ra + 2v/V1dX/1tbW/+Li4v/f39//9PT0//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2trmu/w8P/t7u/+5ufo/93e3/7m6Oj/5efo/uXm5//j5eb/5OXm/ubn6f/l5uj+5Obn/+Lj + 5f7n6Or/6Orr/ujp6//k5uf/5Obo/t7g4v/V19n+0tTW/83P0f67vb//ubu8/sDDxP/Gycr/yMrM/svN + z//Lzc/+ztDR/9DR0v7Q0ND/w8PD/svLy//V1dX+1dXV/9TU1P/U1NT+09PT/9DQ0P7T09P/zc3N/tfX + 1//r6+v++Pj4//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w + 8P/t7+//5Obm/9vc3f/S1NT/z9HR/9na2//X2dr/2Nna/9/g4v/q7O3/6evs/+nr7P/g4uP/293e/93f + 4P/c3uD/3d/g/+Di4//U1tj/zM7Q/8nLzf/BxMX/tbe5/7O1t/+0trf/tLe4/7u9vv+/wcL/w8XG/8jJ + yv/Ly8v/wMDA/8nJyf/Q0ND/z8/P/87Ozv/MzMz/y8vL/8rKyv/Hx8f/zc3N/97e3v/29vb/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7w8P/t7u/+5OXm/9XX + 2P7j5eX/4OLi/uXm5//g4uP/4+Xm/ubn6P/p6+z+6evs/+nr7P7g4uT/4uPl/uPl5v/h4+T/4eTl/uPl + 5//h4+T+z9LT/8vNz/7Kzc7/yszO/srMzv/Iysv/xsnL/sXIyf/Dxcf+w8XG/8fIyf7Pz8//zs7O/tjY + 2P/b29v+29vb/9ra2v/Z2dn+2NjY/9bW1v7W1tb/2dnZ/vb29v/5+fn++fn5//n5+f/4+Pj++fn5//j4 + +P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7/D/5ufo/93e3//Y2dr/19jZ/9nb + 3P/Z29z/293e/+nr7P/q7O3/6evs/+nr7P/k5uj/6Ors/+jq6//n6ev/5ujq/+bo6f/m6On/5efp/+Pm + 5//h4+X/3uDi/9ve3//Z3N3/19rb/9ja3P/Y2tz/2Nrb/9bX2P/c3N3/5ubm//Ly8v/09PT/9PT0//X1 + 9f/29vb/9/f3//j4+P/5+fn/+fn5//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8f/u7+/+4uTk/9HS0/7a29z/2Nna/t7g4f/e4OH/3uDh/unr + 7P/q7O3+6evs/+nr7P7g4uP/6Orr/ufq6//n6er/5ujq/ubo6v/l6On+5efp/+Tm6P7k5uj/4+bn/uPm + 5//j5uf/4uXn/t/h4//b3d7+2Nrc/97g4f7y8/P/+Pj4/vr6+v/6+vr++/v7//v7+//6+vr++vr6//n5 + +f76+vr/+fn5/vr6+v/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2xsmu/w8f/u7/D/7e7v/97g4P/b3N3/3N3e/93f4P/f4eH/4+Xm/+vt7v/q7O3/6evt/+fp + 6//h4+X/4uTm/+Pl5v/k5uj/5+nq/+bo6v/l6On/5efp/+Tn6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Pm + 5//j5uf/4uXm/+Xn6P/19fb/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2xsmvDx + 8f/u7/D+5OXm/9TW1v7Y2tr/1tfY/trb3P/b3d3/4ePk/uvt7f/q7Oz+6uzt/+Xm6P7d3+D/2tzd/t/h + 4//i5Ob/5ujq/ubo6v/l5+n+5efp/+Tm6P7j5uf/4+bn/uPl5//i5ef/4uXm/uLl5//i5eb+4+bn/+jq + 6/709fX/+/v7/vv7+//6+vr++/v7//v7+//6+vr++vr6//n5+f76+vr/+fn5/vr6+v/5+fn++fn5//n5 + +f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8f/v8PD/7O3t/97f + 4P/j5eX/6+zt/+zu7//s7u//7O7u/+vt7v/p6+z/4+Xm/97f4P/h4+T/4+Xm/+Lk5v/i5OX/4uTl/+Lk + 5v/h4+X/4OLk/+Dj5P/h4+X/4OPl/93g4f/j5ef/4+Xn/+Ll5v/i5eb/4+Xn/+jq6//09fX/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8v/v8PH/4eLj/9XW1//P0dH/6+zt/+3u + 7//s7u//7O7v/+zt7v/o6uv/1dfY/9LT1f/e4OH/3N7f/9rc3f/b3d//297f/97g4f/c3+D/2t3e/93g + 4f/g4uT/3eDh/93f4f/i5ef/4uXn/+Ll5//i5eb/4+Xn/+fp6//z9PT/+vv7//z8/P/7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx8v/v8PH+7O3u/+Pl5f7k5ef/5ufo/ufo6f/l5uf/5Obn/uHj + 5P/p6+z+6uzt/+rs7f7p6+3/5Obn/uPm5//g4uT/3uHi/uLk5v/j5ef+4+bn/+Hk5v7h5OX/4uTm/uHk + 5v/g4+X/4OPl/uDj5f/g4+X+4uTm/+fp6v7y8/T/+vr6/vv7+//6+vr++/v7//r6+//6+vr++vr6//n5 + +f76+vr/+fn5/vn5+v/5+fn++fn5//j4+f/4+Pj++Pj4//f39/739/j/9/f3/vf3+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbGxsmvDx8v/v8PH/5OXm/8TFxv/V1tf/ysvM/9DS0//R0tP/zc/Q/9bY2f/o6er/6+zt/+rs + 7f/p6+z/2tzd/9TX2P/a3N3/2tze/9ja3P/c3uD/3uHi/9ze4P/b3uD/3+Hj/93g4v/b3t//297g/9ve + 3//a3d//4OPl/+bo6v/x8vP/+fn6//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx + 8v/v8PD+7u/w/+Lj5P7q6+z/5+jp/uHi4//p6+v/7O7v/uzt7v/r7e7+6+3u/+jq6/7j5eb/4uTl/uXn + 6P/k5uj/5ujp/uXn6f/j5ef+4uTm/+Pm5/7j5ef/4OPl/t/i5P/g4+X/4uXm/uLl5//i5Ob+4+Xn/+bo + 6f7x8vL/+fn5/vv7+//6+vr++vr6//r6+v/5+fn++vr6//n5+f75+fn/+Pj4/vn5+f/4+Pj++Pj4//j4 + +P/39/f++Pj4//f39/739/f/9vb2/vf39//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxtmvHy8//v8PH/4eLj/87P + 0P/Iycr/zs/Q/8nLy//b3d7/7O7v/+zt7//r7e7/6+3u/9/h4f/T1db/09XW/9HT1P/S1NX/19nb/9fZ + 2v/b3d//2dzd/9nb3f/X2dv/3N7g/9fa3P/g4uT/4uXn/+Ll5//j5ef/4+bn/+bo6v/w8fL/+fn5//r6 + +//6+vv/+vr6//r6+v/5+fr/+fn6//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f3 + 9//39/f/9vb3//b29//7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmvDy8//v8PH+7u/x/+Xm5/7u7/H/7e/w/u7v + 8P/t7+//7O7v/uzt7//s7e7+6+3u/+jq6/7m5+n/6uvs/ujq6//o6uz/6Orr/ubo6f/j5eb+5Ofo/+Pl + 5/7j5ef/4eTl/uHk5v/i5eb/4+bn/uPm6P/j5ej+4+bo/+bo6f7v8fH/+Pj5/vr6+v/5+fr++vr6//r6 + +v/5+fn++fn5//j4+f75+fn/+Pj4/vj4+f/39/j++Pj4//f3+P/29vf+9/f3//b29/729vf/9fX2/vb2 + 9//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbG1tmvHy8//v8fH/293d/9HS0//Excb/vL2+/8vNzf/AwsL/09TV/+zu + 7//s7e7/7O3u/9/h4v/X2Nn/0tPU/9HT1P/V19j/1NfY/9bY2f/d3+H/2tze/+Xn6P/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/5Obo/+bo6v/v8PH/9/f4//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b29v/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbG1tmvHy8//v8PH+6+zs/+vs7f7t7+//7u/w/u3u7//t7u//7e7v/u3u7//s7u7+7O3u/+nq + 6/7o6uv/4uPk/uDh4v/m5+j/6Orr/uPl5v/k5uf+5ujp/+fp6v7m6er/5ujp/uXo6f/l6On/5efp/uXn + 6f/l5+j+5efp/+bo6f7u7/D/9/f3/vn5+f/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4 + +P/39/f+9/f3//f39//29vb+9vb2//b29v729vb/9fX1/vX19f/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmvHy + 8v/v8PH/6ers/8XHyP/Fxsf/xsfI/8DCw//Nzs//7e7v/+zu7//s7e//7O3u/+vt7v/r7O3/6uzt/+rs + 7f/p6+z/6evs/+jq7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+fo + 6v/t7/D/9vb3//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f39//39/f/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX1//X19f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmu/w8f/u7/D/5+jp/9/g + 4v/o6ev/5+jp/+Dh4//a293/6uzs/+rr6//p6uz/6ers/+nq6//p6uv/6Onr/+fp6v/n6er/5+jp/+bo + 6f/m6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+j/5efo/+Xn6P/l5+j/5efp/+bo6v/u7/D/9vb2//n5 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f3//f39//29vf/9vb3//b29v/29vb/9fX2//X1 + 9v/19fb/9fX1//T09f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmuzs7f/p6uv+19jY/7a2t/7CwsP/uLm5/rq7 + vP+/wMD/u7y9/ra3t/+7vL3+wcLD/7u9vf7W19j/1NXW/r/Awv/Exsb/uru8/sPFxf/Iycr+3uDg/97f + 4P7e4OH/3uDh/t/g4v/g4eP/4eLk/uLk5f/j5eb+5efo/+nq6/7w8PH/9vb3/vj4+P/39/j++Pj4//j4 + +P/39/f+9/f3//b29/739/f/9vb2/vb29v/19fb+9vb2//b29v/19fX+9fX1//T09f709PX/9PT0/vT0 + 9P/6+vr+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPamtrmunq6//m5+j/2trb/8nJyv/c3d7/0NHR/8TFxf/Nzc7/2Nna/9fX + 2P/S09P/1NTV/9XW1v/Y2dr/0NHS/8vMzP/V1db/0tPU/9TV1v/V1tf/2tvb/9vc3P/c3d7/3t/g/+Dh + 4v/i4+T/5OXm/+bn6P/o6er/6uzs/+7v7//z9PT/9vb3//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/5+fr/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPa2xsmuvs7f/o6er+5OXm/7/AwP7BwsP/29zd/r6/v/+9vb7/ubm6/ra2t//Excb+yMnJ/7y9 + vv7DxMX/urq7/sHCwv/Fxsf/1tbX/tna2//R0dP+zM3O/8zNzf7X2Nn/5+jp/unq6//q7Oz/7O3u/u3u + 7//t7u/+7/Dx//Lz9P719fb/9vb3/vf39//29vf+9vb3//b29//19fb+9vb2//X19v719fb/9fX1/vX1 + 9v/09PX+9PT1//T09f/z8/T+9PT0//Pz9P7z8/T/8vLz/vPz8//5+fn+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmu/v + 8P/s7e7/3+Dh/9DQ0f/Jysv/0NDR/9LT1P/S0tP/09TV/8/P0P/Y2Nn/3N3e/9TV1v/V1tb/09TV/9na + 2//a29z/3+Di/+Xm5//V1tj/1tjY/9XW1//e39//7O7v/+3u8P/t7/D/7u/w/+7v8P/v8PH/8vLz//X1 + 9f/29vf/9vb3//b29//19fb/9vb3//b29v/29vb/9fX2//X19v/19fb/9fX1//X19f/09PX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//5+fn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8v/t7u/+39/g/8XF + x/7Ky8z/xMXG/sjIyf/Iycr/wsLD/ri4uf/CwsP+zc3P/8fIyP7f4OH/3+Dh/tTV1v/V1tj/x8jJ/s/Q + 0f/b3N7+09TV/9HS0/7T1Nb/2Nna/tzd3v/R0tP/09TV/s/Q0f/Z2tv+09PU/9zc3f7i4uP/4ODh/tbW + 1//W1tf+1tbW/+Pj4//V1dX+2dna/9XV1v7Z2dr/9PT1/vT09f/z8/T+8/P0//Pz9P/z8/P+8vL0//Ly + 8/7y8vP/8vLz/vHx8//5+fn+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u//2trb/7u8vP/a29z/x8jI/7i4 + uf/Gx8f/09TU/8/Q0f/Ozs//0tPU/9TV1v/j5OX/4uPk/9XW1//Y2dr/0tPU/9jZ2v/j5OX/1tfY/9LT + 1f/e3+D/2Nna/9XW1//U1db/3N3e/+Hi5P/f3+D/2dna/9/f3//j4+T/3Nzc/9XV1f/g4OD/0NDR/+rq + 6//V1dX/4ODh/+Pj4//b29z/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/4+Pn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u/+4+Tl/9DQ0f7IyMn/19fY/s3Oz//j4+T/6+zs/ujp + 6f/o6Or+6urs/+Xl5v7S09T/ysrL/snKy//LzM3/2NnZ/uHi4//W19j+1NXV/93e3/7d3t//3t/g/tfY + 2v/f4OH/1tbY/u7v7//z8/T+9PT1//T09f709PX/9PT0/vT09f/09PT+9PT1//T09P/z8/T+8/P0//Pz + 8/7z8/T/8vLz/vPz8//y8vP+8vLz//Ly8//x8fL+8fHy//Hx8v7x8fL/8PDx/vDw8f/4+Pj+AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPb29vmvDw8f/u7u//19fY/7q6u//Fxcb/xMXG/8bHyP/h4eL/6+zu/+nq6//p6uv/6+vs/+Xm + 5//S09T/z9DR/9DQ0f/MzM3/zc7P/93e3//R0tP/09TV/9TV1//Q0dL/0NHT/8/Q0f/R0tP/0dLT/+7u + 7//z8/T/8/P1//Pz9f/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly8//y8vP/8vLz//Ly + 8//x8fP/8fHz//Hx8v/x8fL/8PDy//Dw8v/w8PH/8PDx//Dw8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPb29vmvDw + 8f/u7vD/7e3w/+3t7//t7e//7e3v/+3t7//s7e//6+zu/+rq7P/q6uz/6+vt/+vs7f/r7O3/6+zu/+zs + 7v/s7e//7O3v/+zt7//t7e//7e7v/+3u8P/u7vD/7u7w/+7v8P/v7/H/8PHy//Ly9P/z8/T/8/P0//Pz + 9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fL/8PDy//Dw + 8v/w8PL/8PDy/+/v8f/v7/H/7+/x/+/v8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKSkPb29vmvDw8f/t7e/+7u7v/+3t + 7/7t7e//7e3u/u3t7//t7e//7Ozu/uvr7f/r6+z+6+zt/+vs7f7r7O7/7Ozu/uzt7v/s7e7/7e3v/u3u + 7//t7e/+7e7v/+3u8P7u7vD/7u7w/u7v8P/v8PH/8fHz/vLy8//y8vP+8vLz//Ly8/7y8vP/8fHz/vLy + 8//x8fP+8vLy//Hx8v/x8fL+8fHy//Dw8v7x8fL/8PDy/vDw8f/w8PH+8PDx//Dw8f/v7/H+7+/w/+/v + 8P7v7/D/7u7w/u7u8P/39/j+AAAANlZWVwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyMNb29vlvHx8v/v7/D/7+/w/+/v7//v7/D/7u7v/+7u + 7//u7u//7u7v/+3t7v/t7e7/7e3u/+3t7v/t7u7/7e7v/+3u7//t7u//7e7v/+7v7//u7+//7u/w/+7v + 8P/v8PH/8PDx//Dx8v/x8vL/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8v/y8vL/8vLy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PD/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/4+Pj/AAAAMEpKSgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAtLS0HNzc3Vn9/f6B/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jfn5+o35+ + fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn+jfn5/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6J/f3+bBwcHGUpK + SgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAANjY3ByMjIw4pKSkPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDycnJw8rKysMRkZGAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAA//////// + ////AAAA/8AAAAAf////AAAA/wAAAAAH////AAAA/wAAAAAB////AAAA/wAAAAAA////AAAA/wAAAAAA + f///AAAA/wAAAAAAP///AAAA/wAAAAAAH///AAAA/wAAAAAAD///AAAA/wAAAAAAB///AAAA/wAAAAAA + A///AAAA/wAAAAAAAf//AAAA/wAAAAAAAP//AAAA/wAAAAAAAH//AAAA/wAAAAAAAD//AAAA/wAAAAAA + AB//AAAA/wAAAAAAAA//AAAA/wAAAAAAAAf/AAAA/wAAAAAAAAP/AAAA/wAAAAAAAAH/AAAA/wAAAAAA + AAD/AAAA/wAAAAAAAAD/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/4AAAAAAAAD/AAAA////////////AAAA////////////AAAA//////// + ////AAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0CFxcXBBsb + GwUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwc + HAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRsbGwUbGxsFGhoaBRUVFQQcHBwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAzMzMEBAQEIgAAAD0AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEAAAAA7AAAAJhgYGA40NDQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAIyMjDH9/f5/7+/z/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr7//r6 + +//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr6//n5+v/5+fn/+Pj4//f3 + 9//19fX/8/Pz//Dw8f/t7e3/5ubm/La2tts/Pz92BAQEHDMzNAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQ5/f3+l9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//X1 + 9v/19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+bm5//g4OH/1tbW/nV1daYEBAQkNjY3BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfX1 + 9v/19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//T09f/09PX/8vLz//Hx8v/v7/D/7Ozt/+rq6//n5+j/4+Pk/9vb + 3P/Q0NH/iIiJtwUFBSc4ODgFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMDAwDn9/f6X19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29v/19fb/9fX1//Pz9P/y8vL/8PDw/+7u + 7v/r6+z/6Ojo/+Xl5v/f3+D/1NTV/9bW1/+Pj5G+AwMDKioqKgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//29vf/9vb3//X1 + 9v/09PX/8/P0//Hx8v/v7/D/7Ozt/+np6v/n5+f/4+Pj/9vb2//Nzc3/5eXn/5ubnMQGBgYvKysrBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/9fX2//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+3t7v/q6uv/6Ojo/+Tk5f/e3t//0NDR/+fn + 6P/g4OL/pqanywkJCTQsLC0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/ + f6X29vf/9vb3//T09f/09PX/9fX2//b29//29vf/9vb3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//T09f/z8/T/8fHy//Dw8f/t7e7/6urr/+jo + 6P/l5eX/39/g/9PT1P/k5OX/6urr/9/f4f+srK3SCwsLOC0tLgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//y8vP/9PT1//X19f/29vb/9vb3//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/l5eb/0tLS/9XV1f/Nzc7/y8vL/8vLzP/Ly8z/y8vL/8rKy//Jycr/yMjJ/8fH + yP/Gxsf/xcXF/8LCw//AwMD/vLy9/7i4uP+vr7D/0dHR//Hx8v/q6uv/39/h/6+vsNcNDQ09LS0tCgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/8/Pz//Ly8v/z8/T/9PT1//X1 + 9v/29vf/9vb3//f3+P/39/j/9/f4//f3+P/39/j/6Ojp/9XV1f/e3t//0NDR/9PT1P/V1db/1dXW/9XV + 1v/U1NX/1NTV/9PT1P/S0tL/0dHS/8/P0P/Nzc7/ysrL/8jIyP/Dw8T/urq7/9DQ0f/29vb/8fHy/+rq + 6//f3+H/s7O03BAQEEEiIiMKLS0tAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X29vf/9vb3//Hx + 8f/09PX/8/P0//Pz9P/09PX/9vb3//b29//39/j/9/f4//f3+P/39/j/9/f4/+fn6P/W1tb/4ODh/9XV + 1v/W1tf/3Nzc/9zc3f/c3N3/29vc/9vb3P/a2tv/2dnZ/9jY2P/W1tf/1NTV/9HR0v/Pz9D/y8vM/8HB + wv/U1NT/+Pj4//b29v/x8fL/6urr/97e4P+ysrPeERERRBgYGAsrKywBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw + MA5/f3+l9vb3//f39//x8fL/7+/v//Hx8f/y8vL/8vLy//T09P/29vf/9/f3//f3+P/39/f/+Pj4//j4 + +P/n5+f/3t7e/9ra2v/a2tr/1tbX/9zc3P/d3d3/3d3d/9zc3f/c3Nz/29vc/9ra2//Z2dn/2NjY/9bW + 1v/U1NT/0dHR/83Nzv/ExMT/1tbW//n5+f/4+Pj/9vb2//Hx8v/q6uv/3t7g/7Gxs98SEhJFGBgYCwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAwMDAOf39/pff39//39/f/8vLy//Pz8//19fX/9PT0//X19f/09PT/9/f3//j4 + +P/4+Pj/9/f3//f39//4+Pj/5+fn/+Pj4//W1tb/3t7e/9nZ2f/a2tr/3d3d/97e3v/d3d3/3d3d/9zc + 3P/b29v/2tra/9nZ2f/Y2Nj/1dXV/9PT0//Pz8//yMjI/9jY2P/6+vr/+fn5//j4+P/29vb/8fHy/+rq + 6//e3uD/sLCy4BAQEEMqKisKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X39/f/9/f3/+7u7v/q6ur/7e3t/+3t + 7f/u7u7/8fHx//b29v/4+Pj/+Pj4//f39//19fX/9vb2/+bm5v/k5OT/1tbW/+Dg4P/d3d3/2dnZ/97e + 3v/f39//3t7e/97e3v/d3d3/3Nzc/9zc3P/a2tr/2dnZ/9fX1//V1dX/0tLS/8zMzP/d3d3/+/v7//r6 + +v/5+fn/+Pj4//b29v/x8fL/6urr/97e4P+np6naCwsLPCkpKgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9/f3//f3 + 9//y8vL/9fX1//f39//39/f/9/f3//X19f/39/f/+Pj4//j4+P/39/f/9vb2//b29v/m5ub/5OTk/+Dg + 4P/X19f/4uLi/9nZ2f/d3d3/39/f/9/f3//e3t7/3t7e/93d3f/d3d3/29vb/9vb2//Z2dn/19fX/9XV + 1f/Q0ND/1tbW/93d3f/X19f/0tLS/8fHx//IyMj/0NDQ/9PT0//d3d7/39/h/5+fodMICAg1KSkpBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvLy8Of39/pff39//39/f/6+vr/+fn5//r6+v/6urq/+vr6//z8/P/9vb2//j4+P/4+Pj/9fX1//Ly + 8v/z8/P/4uLi/+Pj4//h4eH/19fX/+Tk5P/b29v/29vb/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/c3Nz/29vb/9nZ2f/X19f/1dXV/9HR0f/Nzc3/yMjI/8TExP+0tLT/vLy8/8DAwP+6urr/xsbG/8LC + wv/Nzc7/np6fzAYGBy8uLi8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALy8vDn9/f6X29vb/9vb2//Pz8//29vb/9/f3//f39//39/f/8/Pz//f3 + 9//39/f/9/f3//f39//29vb/+Pj4/+Tk5P/l5eX/4uLi/9nZ2f/k5OT/4ODg/9nZ2f/f39//4ODg/+Dg + 4P/g4OD/39/f/9/f3//e3t7/3d3d/9zc3P/b29v/2tra/9jY2P/V1dX/09PT/9HR0f/Ly8v/wMDA/8zM + zP/Ozs7/yMjI/9nZ2f/X19f/z8/P/8fHx/+YmJnGBgYHJTw8PAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw5+fn6l9fX1//X19f/l5eX/4eHh/+fn + 5//l5eX/5eXl/+fn5//y8vL/9PT0//X19f/y8vL/6urq/+zs7P/c3Nz/3d3d/9vb2//e3t7/2NjY/+Dg + 4P/X19f/3Nzc/97e3v/e3t7/3t7e/93d3f/e3t7/3d3d/93d3f/d3d3/3Nzc/9vb2//a2tr/2NjY/9bW + 1v/U1NT/xsbG/8vLy//U1NT/1NTU/8/Pz//g4OD/4uLi/97e3v/X19f/z8/P/21tbpoeHh4QAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8OfHx8pfHx + 8f/x8fH/6urq/+zs7P/s7Oz/7Ozs/+zs7P/r6+v/7u7u/+/v7//v7+//7u7u/+vr6//s7Oz/2trb/9zc + 3P/Z2dn/29vb/9XV1f/e3t7/1dXV/8/Pz//S0tL/0tLS/9PT0//S0tL/09PT/9TU1P/V1dX/1dXV/9XV + 1f/U1NT/09PT/9LS0v/R0dH/z8/P/8LCwv/R0dH/2NjY/9jY2P/S0tL/4+Pj/+bm5v/l5eX/4uLi/97e + 3v/JycnoAAAAIjs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp6eqXu7u7/7e3t/93d3f/a2tr/39/f/9zd3f/c3Nz/3d3d/+jo6f/p6ur/6enp/+bm + 5//f39//4eHh/9DQ0f/U1NX/0dHR/9TU1P/Nzc7/xcXF/7/AwP+9vr7/wMHB/8HCwv/CwsP/w8PE/8PD + xP/FxcX/x8fH/8jIyP/IyMj/x8fH/8fHx//FxcX/xMTE/8LCwv/MzMz/2dnZ/9zc3P/b29v/1dXV/+bm + 5v/q6ur/6enp/+jo6P/m5ub/5ubm/AAAAC5KSkoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enul7e7v/+zt7v/m5+j/5OXm/+Xm5//m5+f/5eXn/+np + 6v/o6ev/6urr/+nq6//n6On/5eXm/+Xm5//U1NX/2NnZ/9TV1v/W19j/z9DR/8zNzv/Iycv/ysvM/83O + z//Nzs//zs/Q/87Oz//Pz9D/0NDR/9TU1P/V1db/1dXW/9XV1f/U1NT/09PU/9LS0//R0dL/1NTV/9zc + 3f/f39//3t7e/9bW1v/p6en/7Ozt/+zs7P/r6+v/6urr/+3t7f8AAAAyVFRUAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/3+Dh/97f + 4P/i5OX/3+Di/+Dh4//e3+D/6evs/+vs7f/r7O3/6Onq/+Hj5P/i5OX/09TW/9bX2f/S09X/1tja/8/R + 0v/Mzs//yMnL/8rMzf/Mzs//zc/Q/83P0P/Oz9D/z9DR/9PT1P/W1tb/19fY/9jY2P/X19f/1tbW/9XV + 1f/U1NT/09PT/9XV1v/d3d7/4ODh/+Dg4f/Y2Nn/7Ozs/+/v7//u7u//7e3u/+3t7v/w8PH/AAAAMldX + VwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7 + e6Xt7/D/7e7w/+bn5//h4uP/4+Tm/+Tl5//j5Ob/5ebn/+rr7P/r7O3/6uzt/+jq6//j5ef/5OXm/9TV + 1//Y2tv/0tTV/9fY2v/Q0dP/zc7Q/8fJy//Lzc//ztDR/83P0f/Oz9H/zs/R/8/Q0f/U1dX/2NjZ/9nZ + 2f/Z2dn/2dnZ/9jY2P/X19f/1tbW/9XV1f/W1tf/39/g/+Li4//i4uL/2tra/+3t7f/x8fH/8fHx//Dw + 8f/v7/D/8/Pz/wAAADJYWFkCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg56e3ul7u/w/+7v8P/e4OH/4OHi/+Tl5//g4eP/4OLj/+Hi5P/p6+z/6uzt/+rs + 7f/n6er/3+Di/+Di5P/T1db/1dbY/9PV1v/X2Nr/ztDS/83O0P/Iycv/yszO/83P0f/Nz9D/zc/Q/87Q + 0f/R0tL/1dbW/9nZ2v/a2tv/2tra/9nZ2v/Z2dn/2NjZ/9fX2P/W1tf/2NjY/+Hh4f/k5OX/5OTk/9vb + 3P/u7u//8/Pz//Pz8//y8vP/8fHy//X19v8AAAAyWVlZAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/u7+//5OXm/9zd3//f4OL/4OLj/93f + 4P/i4+T/6evs/+rs7f/q6+3/5+nq/+Di4//e3+H/1tjZ/9bY2f/R0tT/1NXX/8nLzP/Exsf/vr/B/8PF + xv/Gx8n/xcfI/8XHyf/GyMn/ycrL/8/P0P/T09T/1NTU/9PT1P/U1NT/09PT/9PT0//S0tP/09PT/9TU + 1P/d3d3/4eHi/+Pj5P/c3N3/7+/w//T09f/19fX/9PT0//Pz9P/39/f/AAAAMlpaWgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/w/97f + 4f/j5OX/5ufp/+Lj5P/k5uf/4uTl/+nq7P/q7O3/6evt/+fp6v/h4+T/3N7f/9fZ2//W2Nn/xcfJ/7/B + w/+5urz/vb/A/7u8vv+/wcL/wMLD/7/Bwv++wMH/v8DC/8HDxP/IyMn/y8vL/8vLzP/Ly8v/y8vL/8nJ + yf/Hx8j/xsbH/8bGxv/Fxcb/zc3N/9TU1f/T09P/0dHS/+Pj5P/19fb/9vb2//b29v/19fX/+Pj5/wAA + ADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lg56e3ul7u/w/+3u8P/f4OH/2Nnb/9vd3v/d3t//2tvc/+Xn6P/p6uz/6evt/+nr7f/l5+j/3uDh/9ja + 2//Lzc//ycvM/7q8vf+2uLn/tre5/7a4uf+xs7T/t7m6/7q8vv+7vL7/vL2//7y+v/++v8D/xcXG/8nK + yv/Jycr/x8fI/8fHx//Dw8T/wsLC/7+/v/+9vb3/u7u7/7+/v/++vr7/vr6//76+vv/e3t//9vb3//f3 + +P/39/f/9vb2//n5+v8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/4ePk/+Xm6P/p6uv/5Obn/+bo6v/k5ef/6Ors/+rr + 7f/q6+z/5+jp/+Lk5f/h4+X/1tja/9ze4P/Z293/0dLU/87Q0v/R09X/zc/Q/9LU1f/S1NX/0dPU/9HS + 1P/R0tT/1dbX/97f3//j4+T/3d3e/9jY2P/X19f/1tbW/9TU1f/Q0NH/0dHS/9LS0v/c3Nz/4ODh/9/f + 3//b29v/9fX1//f3+P/39/j/9/f3//f39//6+vr/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e7w/9vc3v/S1NX/2Nna/9XX + 2P/U1tf/3N3e/+fp6//q7O3/6evt/+Pl5v/Z293/3N3f/9HT1P/U1tj/297f/9DS1P/Hycv/z9HS/87Q + 0v/Q0tT/ztHS/8zP0P/Lzc//zc/R/8/Q0f/X19j/y8vM/8bGx//Nzc3/0NDQ/9PT0//U1NT/2dnZ/9ra + 2v/b29v/5OTl/+jo6P/h4eL/7u7u//j4+P/4+Pn/+Pj5//j4+f/4+Pj/+/v7/wAAADJbW1sCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3u + 7//k5eb/6evs/+vt7v/q6+z/6uzt/+Pl5v/q7O3/6uzt/+nr7P/o6uv/6Onr/+fp6v/n6er/2t3e/9ze + 4P/c3uD/yszO/9DS0//S1db/0dPU/8/R0v/Q0tP/z9HT/87Q0f/Q0tP/1tbW/8jIyP/Gxsb/19fX/9bW + 1v/X19f/1tbW/9XV1f/U1NT/2NjY/+Xl5f/l5eX/5ubm//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7 + +/8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi4Oent7pe7v8P/t7u//2drb/8zOz//W19j/0NHS/9XX1//X2dr/0tTV/9rc3f/U1tj/3N7f/+jq + 6//o6uv/297f/9jb3P/P0dL/0dPU/8jLzP/BxMX/wMLD/8HDxP/JzM3/zM7Q/8vNzv/Nz9H/z9HS/87P + z//Jycn/xMTE/9PT0//U1NT/1NTU/9fX1//X19f/2dnZ/9LS0v/g4OD/4ODg//b29v/4+Pj/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/v/+Xm5//q6+z/6err/+vt7v/r7O7/6+zt/+rs + 7f/q7O3/5+nq/+jq7P/o6uv/6Orr/+fp6//n6er/4OLk/9fZ2//R09T/xcfJ/7e5uv+7vb7/wMPE/8PF + x//GyMr/yMvM/8zOz//MzM3/x8fH/8bGxv/T09P/09PT/9HR0f/Q0ND/zs7O/8vLy//Kysr/1NTU/+7u + 7v/4+Pj/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3v7//T1NX/yMnK/87Q + 0f/V1tf/0NLT/9LU1f/g4uP/6uzt/+nr7P/g4uP/2Nrc/9vd3v/Y2tv/2tze/97h4v/R09T/x8nL/8fK + y/++wML/u72//7i6u/+4urv/vb/A/77Bwv/Gx8j/y8vM/8rKyv/MzMz/1NTU/9PT0//S0tL/0dHR/9DQ + 0P/Ozs7/zc3N/+bm5v/4+Pj/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v + 8P/t7+//5+jp/+Xn5//o6er/5efo/+Xn6P/m6On/6evs/+rr7f/p6+z/6Ors/+fp6v/o6uv/5+nq/+bp + 6v/l6On/5Ofo/9rd3v/Y2tz/1djZ/9TW2P/S1db/09bX/9PV1v/Q0tT/z9HS/9DQ0f/Z2dn/5ubm/+jo + 6P/o6Oj/6enp/+np6f/p6en/6urq/+rq6v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp7e6Xu7/D/7u/v/8/Q0f/Nzs//ztDR/9PV1v/W19j/2Nrb/+nr7P/q7O3/6evs/+Xn + 6P/j5eb/6Orr/+fp6v/m6Or/5ujq/+Xo6f/l5+n/5Ofo/+Tm6P/j5uj/4uXm/97h4v/a3d//2Nrb/9vc + 3v/l5ub/8PDx//j4+P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7/Dw/+7v8P/n6en/5OXm/+Xm5//h4+T/4+Xm/+bo + 6f/q7O3/6uzt/+nr7f/n6er/5efo/+bo6v/l5+n/5unq/+bo6v/l6On/5Ofp/+Tm6P/j5uj/4+bn/+Pl + 5//j5ef/4+bn/+Pl5//d3+D/8PHx//r6+v/7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3t7pe/w8f/u7/D/29zd/9DS + 0v/Y2dr/1dbX/9rc3f/i5OX/6+zt/+rs7f/q7O3/2dvc/9vd3v/i5Ob/3+Hj/+fp6v/m6Or/5efp/+Tn + 6P/j5uj/4+bn/+Pl5//i5ef/4uXn/+Ll5//j5ef/5efo/+/w8f/6+vr/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxc + XAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt7 + fKXv8PH/7/Dw/+Lj5P/g4eL/5+jp/+3u7//s7u//7O7u/+vt7v/m6On/4uPl/9rc3f/k5uf/4ePl/9/h + 4//f4eP/4eTl/+Di4//f4uP/4ePl/9/h4//d4OL/4+Xn/+Pl5//i5eb/4uXm/+Tm6P/u7/D/+fr6//z8 + /P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg57e3yl8PHx/+/w8f/i4+T/1NXW/+Pk5f/t7u//7O7v/+zu7//r7e7/4uTl/9vd + 3v/a3N3/4uTl/9zf4P/f4uP/3+Lj/+Hj5f/d4OH/3eDh/+Hk5f/e4eL/3uHi/+Ll5//i5ef/4uXn/+Ll + 5v/k5uj/7e/w//n5+f/8/Pz/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3x8pe/w8f/v8PH/4eLj/9PU1f/d3+D/2tzd/9nb + 3P/Z29z/2dvc/+vs7f/q7O3/6evt/+Pl5v/d4OH/2tze/9vd3v/b3t//4uTm/9/h4//e4OL/3+Lk/+Dj + 5f/f4uP/3eDi/97g4v/d3+H/4+bn/+zu7//4+Pn/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//7+/v/AAAAMlxcXAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt8fKXv8fH/7/Dx/9na + 2//h4uP/3uDg/93f3//h4uP/3+Hh/+Lj5P/r7e7/6uzt/+rr7P/i5OX/3+Hi/+Lk5f/h4+T/4ePl/+Ll + 5v/f4uP/4OPk/+Dj5P/f4uP/3uHi/+Di5P/e4OL/4OLk/+Pm5//s7e7/+Pj4//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/+/v7/wAA + ADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lw57fHyl8PHx/+/w8f/c3t7/1NXW/8/Q0f/Nz8//3+Dh/+3u7//s7e7/6+3u/+vt7v/Y2dr/1tjZ/9nb + 3P/W2Nn/3d/g/97g4f/b3d7/3N7g/93g4v/c3+D/297g/9/h4//i5ef/4uXn/+Pl5//k5uf/6+3u//f3 + 9//6+vv/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//f3 + 9//39/f/9/f3//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLy8OfHx9pe/w8v/v8PH/4uPk/+Di4//k5uf/5+jp/+bo6f/s7u//7O3v/+zt + 7v/r7O7/3d/g/+Xn6P/g4uP/5Obn/+Lk5f/g4uT/3+Lj/+Di5P/g4uT/3uHi/97g4v/h5OX/4+bn/+Pm + 5//j5uj/5Obo/+vs7f/29/f/+vr6//r6+v/6+vr/+vr6//n5+v/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4 + +P/39/j/9/f4//f39//29vf/9vb3//b29//6+vr/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi8vDnx9faXw8fL/7/Dx/9jZ2v/Mzc7/xcfI/8/Q + 0f/Fxsf/2Nrb/+zu7//s7e7/6+3u/9rc3f/W2Nn/19na/9rc3f/Y2tz/293f/+Di5P/e4OL/5ujq/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tn6P/q7O3/9vb2//n5+v/6+vr/+vr6//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/+vr6/wAAADJcXFwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vLw58fX2l8PHx//Dx + 8f/p6ur/6uzs/+7v8P/t7u//7O3u/+zu7v/t7u//7O3u/+zt7v/n6On/4OHi/9/h4f/k5eb/5ujp/+Pl + 5v/i5Ob/5ujp/+fp6v/m6Or/5ujp/+Xo6f/l5+n/5efo/+Xn6f/l5+n/6uvs//X19f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//r6 + +v8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi8OfH19pe/w8f/v8PH/2Nna/8bHyP/HyMn/uru8/83Oz//t7u//7O3v/+zt7v/s7e7/6+zt/+rs + 7f/q6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+rr + 7f/09PX/+Pj5//n5+f/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b29//29vf/9vb2//X1 + 9v/19fb/9fX2//X19f/5+fr/AAAAMltbXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnx8fKXt7u//7e7v/+Xm6P/o6ev/7O3t/+fo6v/h4uP/6err/+Xm + 5v/o6ev/5+nq/+fp6v/n6On/5ujp/+bn6f/j5OX/5efo/+Xm6P/k5uj/5Obo/+Tm6P/k5uj/5Obn/+Tm + 6P/k5uj/5Obo/+Xn6f/q6+3/9PT1//j4+P/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b2 + 9//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/+fn6/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enql6err/+jp6f+1trf/sLGy/7O0 + tP+rrKz/tre3/7m6u/+6u7z/tre4/72+v/++v8D/3d7e/66vsP/CxMT/uru8/7y+vv/Q0dL/3N3e/9zd + 3v/d3t//3t/g/9/g4f/h4uP/4+Tl/+Xm5//o6er/7u7v//X19v/39/j/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9vb2//b29v/29vb/9vb2//X19f/19fX/9fX1//X19f/09PT/9PT0//n5+f8AAAAyW1tbAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oenp6pejo + 6v/m5+j/29zc/9rb3P/c3d7/1NTV/9PU1f/U1NX/09PU/9DR0f/X19j/0tLU/9TU1f/Oz8//1dbW/9na + 2//a29z/1tfY/9TV1f/Z2tv/4eLj/+Pk5f/m5+j/6Onq/+rr7P/r7e3/7u/w//Pz9P/29vf/9/f4//f3 + 9//39/f/9vb3//b29//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09f/z8/T/8/P0//Pz + 9P/5+fn/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnx8fKXs7O3/6uvs/8nJyv+8vb3/wcLD/7e4uP++v8D/vLy9/7m5uf/U1db/xcbH/7m5 + uv/Excb/vr+//8jJyf/U1db/3+Dh/8fIyf/Fxsf/ycvL/+vs7f/s7e7/7e7v/+3v8P/u7/D/7vDx//Ly + 9P/19fb/9vf3//b29//29vf/9vb3//b29//29vb/9fX2//X19v/19fb/9fX1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/P/+Pj5/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw59fX2l7u7w/+3u7//b3N3/1tbX/9vb3P/V1db/2trb/9LS + 1P/IyMn/1tfY/9ra3P/Z2dr/6Onq/9rb3P/g4eL/2tvc/9/g4f/k5eb/4OLi/97f4P/p6uv/6evr/+Hj + 4//h4uP/4eLj/+Hi4//o6On/6urq/+/v8P/k5OX/4+Pj/+rq6//w8PD/5ubm/+np6v/p6er/8PDx//T0 + 9f/z8/X/8/P1//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//j4+f8AAAAyW1tbAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Ofn5+pe7u8P/t7u//vr6//8TE + xf++vr//t7e4/7u8vf/HyMn/ycrL/8DBwv/Mzc7/0NDR/+jp6v/P0NH/0dLT/8PExf/R0tP/1tfY/9XW + 2P/Iycr/zM7P/9PU1f/Jysv/0tPU/9zd3v/Nzs7/2trb/9HR0f/i4uP/ycnJ/9ra2//AwMD/4eHh/87O + z//X19f/2dnZ/+Tk5f/z8/T/8/P0//Pz9P/y8vP/8vLz//Ly8//x8fL/8fHy//Hx8v/4+Pj/AAAAMltb + WwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8vDn5+ + fqXu7u//7u7v/+Dg4f/Iycr/09PU/9XW1//i4+T/6+vs/+jo6f/p6er/6uvs/9jZ2v/X2Nj/ycrL/83N + z//Z2tv/4eLj/9jZ2v/b3N3/4+Tl/9jZ2//d3uD/3+Di/9na2//x8vP/9PT0//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/w8PH/9/f4/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC8vLw5+fn+l7u7w/+7u7//Hx8j/w8PE/8rKy//MzM7/3+Dh/+vs7f/p6er/6urr/+vs + 7P/Y2Nr/1dbX/9PT1f/Q0NH/0NHS/93d3v/W19j/19jZ/97f4P/Gx8j/2Nja/9PU1f/U1db/8vL0//Pz + 9f/z8/X/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PH/7+/x//f3+P8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Of39/pe7u7//u7vD/7e3w/+3t7//t7e//7e3v/+zt + 7//r7O3/6urs/+rr7f/r6+3/6+zt/+zs7v/s7O7/7O3v/+zt7//t7e//7e7v/+3u8P/t7vD/7u/w/+7v + 8P/v7/H/8fHy//Ly9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHz//Hx + 8//x8fL/8fHy//Dw8v/w8PL/8PDy//Dw8f/v7/H/7+/x/+/v8f/39/f/AAAAMltbWwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyssDn9/f6Xu7u//7u7v/+7u + 7//t7u//7e3u/+3t7v/t7e//7Ozu/+vr7f/r7O3/7Ozt/+zs7v/s7O7/7O3u/+zt7v/t7e7/7e7v/+3u + 7//t7vD/7u7w/+7u8P/u7/D/7/Dx//Hx8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//Dw8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u8P/u7u//9vb3/wAA + ADFUVFQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYm + Jgp/f3+c9vb3//b29//29vf/9vb2//b29v/19vb/9fX2//X19v/19fX/9PT1//T09f/09PX/9fX1//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//b29v/29/f/9/f3//f4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b2 + 9//29vf/9vb3//v7+/8AAAAlSEhIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABCQkICERESFwAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwGBgYjLy8vCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkoBWFhYAVtbWwFbW1sBW1tbAVpb + WwFaWlsBWlpbAVpaWgFaWloBWlpaAVpaWgFaWloBWlpaAVpaWwFaWlsBWlpbAVpaWwFaWlsBWltbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFUVFQBSEhIAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////// + /////////wAAAAH////+AAAAAH////4AAAAAP////gAAAAAf///+AAAAAA////4AAAAAB////gAAAAAD + ///+AAAAAAH///4AAAAAAP///gAAAAAAf//+AAAAAAAf//4AAAAAAA///gAAAAAAD//+AAAAAAAH//4A + AAAAAAP//gAAAAAAAf/+AAAAAAAA//4AAAAAAAB//gAAAAAAAH/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAf/+A + AAAAAAD//////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PARAQEAEQEBABEBAQARAQ + EAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQ + EAEODg4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKwIKCgofBAQEMgQE + BDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQE + BDMEBAQzBAQEMwQEBDMEBAQyBgYGJxkZGQ4pKSkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIi + Igmenp64+fn5//j4+f/5+fn/+Pj5//n5+f/5+fr/+fn6//n5+v/5+fr/+fn6//n5+v/5+fr/+fn6//n5 + +v/4+Pn/+Pj5//f39//19fb/8vLz/+/v8P/r6+z+19fY83d3d6cRERElMDAwAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACsrKwucnJ289PT1/vX19f719fb/9fX2/vb29//19fb+9fX2/vX19v729vf/9fX2/vX1 + 9v729vf/9fX2/vX19v719fb/9PT1/vPz9P7y8vP/8PDx/u3t7v7p6er/5OTl/tnZ2v6ioqLQGBgYMTMz + MwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQucnJ289fX2/vX19v729vf/9fX2/vb29//19fb+9fX2/vX1 + 9v729vf/9fX2/vb29v729vf/9vb2/vb29v729vf/9fX2/vT09f7z8/P/8fHx/u7u7v7q6uv/5ubn/t/f + 4P7R0dL/rq6v1xgYGTUtLS0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/j/9vb3//X19v/09PX/8vLz/+/v + 8P/s7O3/6Ojp/+Tk5P/Z2dn/2trb/7i4ut4bGxs7Li4vBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289fX2/vX1 + 9v719fb/9fX2/vb29//29vb+9vb3/vb29/739/f/9vb3/vb29/739/j/9vb3/vb29/729vf/9vb3/vX1 + 9v709PX/8vLz/vDw8f7t7e7/6enq/uXl5v7d3d7/2dnZ/ufn6P++vr/hICAhQzExMQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289fX2/vPz9P709PX/9fX2/vb29//29vf+9vb3/vb29/739/j/9vb3/u3t7v7c3Nz/2trb/tXV + 1v7V1db/1dXW/tTU1f7U1NT/0tLT/tHR0f7Ozs//y8vL/sfHx/7AwMH/vb2+/vHx8v/m5uf+wcHD5iIi + I0gyMjIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb3//Ly8//y8vP/8vLz//T09f/29vb/9vb3//f3+P/39/j/9/f4/+zs + 7f/Y2Nj/2NjZ/9LS0//X19f/19fX/9bW1//V1db/1NTV/9PT0//Q0NH/zc3O/8rKyv/Dw8T/vb2+//X1 + 9f/x8fL/5ubo/8XFxuslJSZNJiYmBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vPz9P709PT/9PT0/vT09f/29vf+9vb3/vf3 + 9/739/j/9/f3/uvr6/7Z2dr/3Nzd/tbW1v7c3N3/3Nzd/tzc3f7b29z/2trb/tnZ2f7X19j/1NTU/tDQ + 0f7Ly8v/w8PD/vf39//39/f+8fHy/ubm5//CwsTrIyMkUSMjJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289/f3//Ly8v/y8vL/8/Pz//T0 + 9P/09PT/9/f3//j4+P/39/f/9/f3/+vr6//f39//2tra/9nZ2f/b29v/3d3d/93d3f/c3Nz/3Nzc/9ra + 2v/Z2dn/1tbW/9PT0//Ozs7/x8fH//n5+f/5+fn/9/f3//Hx8v/m5uf/wcHD7CEhIk8uLi4GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vDw + 8P7t7e3/7+/v/vDw8P/x8fH+9/f3/vf39/729vb/9vb2/urq6v7j4+P/19fX/t/f3/7a2tr/3t7e/t7e + 3v7e3t7/3d3d/tzc3P7a2tr/2dnZ/tbW1v7S0tL/zs7O/vr6+v/5+fn+9vb2/vPz8//x8fH+5ubo/r29 + v+oeHh5HLCwtBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289vb2/vLy8v7v7+//8fHx/vHx8f/19fX+9/f3/vf39/729vb/9fX1/ujo6P7k5OT/2dnZ/uPj + 4/7a2tr/3t7e/t/f3/7f39//3t7e/t3d3f7c3Nz/29vb/tnZ2f7W1tb/0dHR/s7Ozv/FxcX+u7u7/re3 + t/+8vLz+x8fH/tDQ0f+0tLbjGxscPiwsLAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb2/vLy8v7z8/P/9PT0/vT09P/z8/P+9/f3/vf39/729vb/9vb2/ujo + 6P7k5OT/39/f/t/f3/7d3d3/3d3d/uDg4P7g4OD/39/f/t/f3/7e3t7/3Nzc/tvb2/7Z2dn/1tbW/tLS + 0v/Pz8/+wsLC/sjIyP/Ly8v+zc3N/tTU1P/Kysr+rq6v3xwcHDM1NTUCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAubm5u89PT0/+rq6v/n5+f/6Ojo/+jo6P/q6ur/8/Pz//T0 + 9P/v7+//7e3t/+Hh4f/e3t7/29vb/9ra2v/f39//19fX/9zc3P/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9vb + 2//a2tr/2NjY/9bW1v/T09P/xsbG/9PT0//U1NT/19fX/+Li4v/f39//1dXV/5OTk78iIiIOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJi87+/v/ufn5/7g4OD/4eHh/uHh + 4f/l5eX+7Ozs/uvr6/7o6Oj/5eXl/tjZ2f7X19f/09PU/tLS0v7Ozs//xMTE/sXFxf7Gxsb/x8fH/sfH + x/7Jycn/y8vL/svLy/7Kysr/ycnJ/sfHx//CwsL+z8/P/tra2v/Z2dn+2tra/ujo6P/n5+f+5OTk/t3d + 3fcXFxcfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXl5i87e3u/uXl + 5v7l5ub/5ebn/uXm5//l5uf+6err/unq6v7l5uf/5OXl/tfY2f7X2Nj/09TV/tHS0/7LzM3/yMjK/szN + zv7Nzc7/zc7P/s7Oz/7R0dH/1NTU/tXV1f7U1NT/09PT/tLS0v/Ozs7+29vb/t7e3v/d3d3+3d3d/uzs + 7P/r6+z+6urq/uvr7P4bGxsmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/+Xm5//i5OX/4+Tm/+Pk5v/j5OX/6+zt/+vs7f/n6On/5Obn/9jZ2//X2Nr/1NbX/9LU + 1f/Nzs//ycrM/83P0P/Oz9D/zs/R/8/Q0f/U1NT/19fX/9jY2P/X19j/1tbW/9TU1f/S0tP/29vb/+Dg + 4f/g4OD/4ODg/+/v7//v7+//7e3u//Dw8P8cHBwnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/uLj5P7c3d//3d7g/t3e4P/h4uT+6+zt/urs7f7j5eb/3+Hi/tXW + 2P7U1tf/0dPU/tDS0/7Lzc7/x8jK/s3P0P7MztD/zc/Q/s/Q0f7V1db/2dnZ/tnZ2v7Z2dn/2NjZ/tfX + 1//U1NX+3d3d/uPj4//i4uP+4uLj/vHx8v/y8vL+8fHy/vPz9P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/v/ufo6f7h4uT/4uPl/uLj5P/k5uf+6uzt/unr + 7f7n6Or/4uTm/tfY2v7W2Nn/09TW/s7Q0f7Gx8n/wsPF/sfJy/7Hycv/yMrM/srMzf7S0tP/1dXW/tXV + 1v7V1dX/1NTV/tTU1P/S0tP+29vb/uHh4v/j4+T+4+Pk/vPz9P/09PT+8/P0/vb29v4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/w/+Tl5v/l5uj/5ebn/+Xm + 5//k5uf/6uvt/+nr7f/l5+j/4+Xm/9bY2f/R09X/vsDB/7q8vf+7vb7/u7y9/7/Bw/+/wMH/vsDB/8DB + w//IyMn/y8vL/8rKy//Kysr/x8fI/8XFxv/Dw8T/x8fH/8zMzf/Pz8//1NTV//Pz9P/29vb/9vb2//f3 + +P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7w/t/h + 4v7b3N3/3N3e/tze3//i5Ob+6uvt/unr7P7j5Ob/3uDh/s3P0f7Q0tP/wcPF/sLExv7CxMb/wMLD/sXH + yP7Exsf/xsfJ/snKy/7S09P/1dXW/tDQ0f7Ozs7/y8vL/snJyf/Hx8f+yMjI/s7Ozv/Ly8z+19fX/vb2 + 9//39/j+9vb3/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/uPk5v7a3N3/29zd/tvc3v/g4uP+6uzt/unr7P7j5eb/3d/g/tbY2v7Z293/2Nrc/svN + zv7P0dL/0NLU/tDT1P7O0NL/ztDR/tDR0/7X2Nj/zs7P/s3Nzv7S0tP/1NTV/tTU1f/X19j+3t7e/ufn + 5//i4uL+9PT0/vj4+f/39/j+9/f4/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/+bn6P/l5uf/5efo/+fo6f/j5Ob/5+jp/+bn6f/m6On/5+nq/+Xn + 6P/a3N3/2tzd/87Q0f/N0NH/z9HT/87Q0f/P0dP/z9HS/9DR0//S0tL/xcXF/9TU1P/X19f/19fX/9bW + 1v/V1dX/3t7e/+Tk5P/t7e3/+Pj4//j4+P/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7v/t7g4P7b3N3/3+Dh/t3f4P/e4OH+3+Hi/t3f + 4P7k5ef/6Orr/uPl5v7e4OL/09bX/s7R0v7AwsT/u72//sXIyf7Jy83/y83O/s7Q0f7Oz8//w8PD/tLS + 0v7U1NT/1NTU/tPT0//U1NT+09PT/uPj4//4+Pj++Pj4/vj4+P/39/f+9/f3/vr6+v4eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/v/t7g4P7U1db/1NXW/tna + 2//Z29z+6Orr/unr7P7i4+X/3N7f/tze4P7f4eL/2dvd/srNzv7Fx8n/ury9/ri6vP65vL3/vsDC/sTG + x/7Ly8z/xsbG/tLS0v7S0tL/0NDQ/s7Ozv/MzMz+1NTU/vPz8//4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/w/+Xm + 5//f4OH/3+Dh/9/g4f/j5eb/6uzt/+nr7P/n6er/6Orr/+fp6v/m6Or/5ejp/9/h4v/b3d//2Nvc/9bZ + 2v/U1tj/09XX/9LU1f/V1dX/4+Pj/+3t7f/t7e3/7e3t/+3t7f/u7u7/9PT0//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87u/w/uHj4/7f4eH/4eLj/uLk5P/k5uf+6uzt/unr7P7l5+j/6Orr/ufp6v7m6Or/5ujp/uXn + 6f7k5uj/4+bn/uPl5/7i5eb/3uHi/trc3v7v8PD/+fn5/vr6+v77+/v/+vr6/vr6+v/5+fn++fn5/vn5 + +f/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuYmJm87u/w/t/g4f7U1db/1NbX/tbY2f/j5eb+6uzt/urr7f7d3+H/3uDh/t/h + 4/7m6er/5ejp/uTn6P7j5uj/4+bn/uLl5/7i5ef/4uXn/uTm6P7x8vP/+/v7/vv7+/77+/v/+vr6/vr6 + +v/5+fn++fn5/vr6+v/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJm87/Dx/+Tl5v/Z2tv/7O3u/+zu7//s7e7/6uzs/93f + 4P/b3d7/4OLj/9ze4P/d3+D/3+Lj/93g4f/f4uP/3eDi/+Dj5P/i5ef/4uXm/+Tm6P/w8fL/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/ufo6f7e4OD/6Onq/ujp + 6v/l5+j+6Onq/uTm5/7m6On/4uTl/uLk5f7h4+T/4uTm/uHk5f7h5OX/4eTl/uHj5f7h4+X/4eTl/uPl + 5/7v8PH/+vr7/vv7+/77+/v/+vr6/vr6+v/5+fn++fn5/vn5+f/4+Pj++Pj4/vj4+P/39/f+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/9/g + 4f/a29z/2Nna/9nb3P/Z29v/5ufo/+rs7f/p6+z/3d/g/97g4f/e4OH/3uHi/+Di5P/e4eP/4OLk/93g + 4v/d4OL/3eDh/+Ll5v/u7/D/+vr6//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/39/f/9/f3//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuZmZq87/Dx/uDh4v7R09P/09XW/tfY2f/s7u/+6+3u/uvs7f7X2dr/1tjZ/tfZ2/7c3t//3N7f/trd + 3v7c3uD/3N/g/t3g4v7i5ef/4uXn/uPm5/7t7/D/+fn5/vr6+v76+vr/+fn5/vn5+v/5+fn++Pj4/vj4 + +f/4+Pj+9/f3/vf3+P/39/f+9vb2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuZmZq87/Dx/uLk5f7f4OH/3t/g/t7f4P/m5+n+7O3u/uvt7v7f4eL/3+Hi/uPl + 5v7g4uP/4ePl/uPl5v7k5uj/4uXn/uLl5/7j5uj/4+bo/uTm6P7t7u//+Pn5/vn5+v76+vr/+fn5/vn5 + +f/4+Pj++Pj4/vj4+P/39/f+9vb3/vf39//29vb+9fX2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmpq88PHx/+jp6f/h4uL/3+Dh/+Hi4//o6er/7O7v/+zt + 7v/j5OX/3N7f/9/h4v/h4+T/4ePl/+Lk5v/m6Or/5ujp/+Xn6f/l5+j/5efo/+Xn6f/s7e7/+Pj4//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//f39//39/f/9/f3//b29v/29vb/9vb2//n5+f8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmZq87/Dx/t7f4P7Nzs//z9HS/sjJ + yv/s7u7+7O3u/uvt7f7q7O3/6evt/unr7P7o6uz/6Onr/ufp6/7n6er/5ujq/ubo6f7l5+n/5efp/uXn + 6f7r7e7/9/f3/vj4+f74+Pn/+Pj4/vj4+P/39/f+9vb3/vb29//29vb+9fX2/vX19v/19fX+9PT1/vj4 + +P4dHR4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuXl5i86+zt/tfY + 2f7Mzc7/ycrL/szNzv/HyMn+y8zN/s/Q0f7U1db/1tjY/s7P0P7Jysv/0dPU/uDi4/7g4uP/4OLj/uHj + 5P7i5OX/4+Xn/ubn6f7t7u//9/f3/vj4+P74+Pj/9/f3/vf39//29vf+9vb3/vb29v/19fb+9fX1/vX1 + 9f/09PX+9PT0/vj4+P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuVlpa85+fp/9bX2P/W1tf/0tLT/8nKy//R0tP/0dHS/9PU1P/T09T/zs7P/9DQ0f/W1tf/1tfY/9XW + 1v/b3N3/4eLj/+Pl5f/n6On/6evr/+zt7v/z8/T/9/f3//f39//39/f/9vb3//b29//29vb/9fX2//X1 + 9v/19fX/9PT1//T09f/09PT/8/P0//f3+P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuYmZm87Ozt/tjY2f7CwsP/zc3O/sjIyf/ExMX+y8vM/tLT1P7IyMn/ycrK/s/P + 0P7a29z/2Nna/tHS0/7Y2tr/7O3u/u3u7/7t7/D/7u/w/vHy8/729vb/9vb3/vb29v729vb/9fX2/vX1 + 9v/19fX+9PT1/vT09f/09PT+8/P0/vPz9P/z8/P+8vLz/vf39/4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampq87u7w/s/Q0f7Excb/vL2+/r6/wP+6u7z+wcHC/srL + zP7S09T/2trc/s7P0P7Gx8j/1tjZ/s/R0v7Oz9D/1dbX/tDR0v7S09T/0tPU/tPT1P7Y2Nn/1dXV/tPT + 1P7S0tP/1tbW/tTU1f/V1db+9PT0/vPz9P/z8/T+8/Pz/vLy8//y8vP+8fHy/vb29/4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQuampq87u7v/9/f4f/R0dL/1tfY/9ra + 2//p6uv/5ubn/+nq6//d3t7/1tfY/9PU1f/e3+D/4OHi/93e3//g4eL/3t/g/9/g4f/i4+T/8vLz//Pz + 9P/09PT/8PDw//Pz9P/w8PH/8vLy//Pz9P/x8fL/8/Pz//Ly8//y8vP/8vLz//Hx8v/x8fL/8fHx//b2 + 9v8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampu87u7v/tjY + 2f7Q0NH/09PV/t7e4P/r6+3+6enr/uvr7P7d3t//2drb/tfX2f7b3N3/3d7f/tzd3v7b3N3/2drb/tvc + 3f7h4eP/8/P0/vPz9P7z8/T/8/P0/vPz9P7z8/T/8vLz/vLy8//y8vP+8vLz/vHx8//x8fL+8fHy/vDw + 8v/w8PH+7+/x/vX19v4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAubm5u77u7v/u3t7/7t7e//7e3v/u3t7//r7O3+6uvs/uvs7f7r7O7/7Ozu/uzt7v7t7e//7e3v/u3u + 7/7t7vD/7u7w/u/v8f7x8fP/8vLz/vLy8/7y8vP/8vLz/vLy8/7x8fP/8fHy/vHx8v/x8fL+8PDy/vDw + 8f/w8PH+7+/x/u/v8P/v7/D+7u7w/vT09f4dHR0mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACUlJQicnJ229PT0/vT09P709PT/8/T0/vPz9P/z8/T+8vLz/vLy8/7y8/P/8vPz/vLz + 9P7z8/T/8/P0/vP09P709PX/9PX1/vX29v729vf/9vb3/vb29/729vf/9vb2/vb29v729vb/9vb2/vb2 + 9v/19fb+9fX2/vX19v/19fX+9fX1/vX19f/09PX+9PT1/vj4+P8YGBgfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OAEgICAVGhoaIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIhsbGx09PT4FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP4AAA///wAA+AAAAf// + AAD4AAAA//8AAPgAAAB//wAA+AAAAD//AAD4AAAAH/8AAPgAAAAP/wAA+AAAAAf/AAD4AAAAA/8AAPgA + AAAB/wAA+AAAAAD/AAD4AAAAAH8AAPgAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAP///////wAA//////// + AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAXFxcBDg4OGQ0NDSMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw0N + DSMLCwshEhISDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABgYGAa7u7zQ9/f4//f3+P/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/9/f4//b2 + 9//z8/T/7+/w/+jo6f6rq6vTLCwsOiEhIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6utL19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vb/9PT1//Ly8//u7u//6enq/+Dg4f/BwcHtNDQ0RSAgIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hurq70vX19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//39/f/9/f3//b29//19fb/9PT1//Dw8f/r6+z/5eXm/9XV1v/S0tPwODg4TSQkJAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4eHge6urvS9PT1//X19f/29vf/9vb3//f3 + 9//39/j/8vLz/+Xl5v/h4eL/4ODh/+Dg4P/e3t//3Nzc/9jY2P/S0tL/xsbH/+Tk5f/V1dfzPT0+VSYm + JgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6u9L09PT/8/P0//T0 + 9f/29vf/9/f4//f3+P/v7/D/2trb/9TU1P/Y2Nn/2NjZ/9fX2P/V1dX/0tLS/8zMzf/CwsP/5eXl//Dw + 8f/W1tj2PT0+Wx4eHwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hu7u70vT0 + 9P/y8vL/8/Pz//X19f/39/f/9/f3/+/v7//c3Nz/2dna/9zc3P/d3d3/3Nzc/9ra2v/Y2Nj/09PT/8rK + yv/o6Oj/+Pj4//Dw8f/W1tf3Ojo7XSMjIwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4e + Hge7u7vS8/Pz//Hx8f/y8vL/9fX1//j4+P/39/f/7u7u/9/f3//d3d3/29vb/9/f3//e3t7/3Nzc/9ra + 2v/X19f/0dHR/+Pj4//n5+f/39/f/9/f4P/Q0NL1Nzc3UyEhIQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHh4eB7u7u9Lz8/P/8PDw//Hx8f/19fX/9/f3//X19f/s7Oz/4+Pj/97e3v/c3Nz/4ODg/+Dg + 4P/f39//3d3d/9vb2//X19f/0dHR/8rKyv+/v7//xMTE/87Ozv/AwMHyNTU1SAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HuLi40u3t7f/o6Oj/6Ojo/+zs7P/y8vL/7e3t/+Tk5P/b29v/2dnZ/9vb + 2//X19f/2NjY/9jY2P/Z2dn/2dnZ/9fX1//U1NT/y8vL/9LS0v/T09P/4+Pj/9/f3/+5ubngIiIiDQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tLTS5+fo/+Dh4f/h4eL/5ebn/+nq6v/k5eX/2tvc/9TV + 1f/R0tP/xsfH/8XGxv/HyMn/ycnK/8zMzP/Pz8//zs7O/8zMzP/Nzc3/3Nzc/9nZ2f/p6er/6urq/+np + 6f4nJycZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLo6er/4eLj/+Hj5P/l5+j/6+zt/+Xn + 6P/b3N7/1dbX/9PV1v/KzM3/zM7P/83P0P/O0NH/1dXW/9jY2f/X19j/1dXW/9XV1f/g4OD/3d3d/+7u + 7v/v7/D/8PDw/ywsLBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW10ufo6f/g4eL/3+Hi/+Xn + 6P/q6+3/4+Xm/9rc3f/T1df/0NLU/8bHyf/Iysv/ycvM/8vNzv/U1NX/19fX/9bW1//V1db/1dXW/+Hh + 4f/f3+D/8fHy//T09P/09PX/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tbXS5ufo/9/g + 4v/f4eL/5ujp/+nr7f/j5eb/1tfZ/8fJy/+5u7z/uLm7/7y+v/+9v8D/v8DB/8jIyf/Kysr/x8fI/8TE + xP/BwcH/x8fI/8jIyf/r6+z/9vb3//f39/8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1 + ttLm5+j/3t/g/93f4P/k5ef/6uvt/+Hj5P/Z293/2dvd/83P0f/P0dL/0NPU/87Q0v/Q0tP/2dna/9LS + 0v/U1NT/1NTV/9bW1v/i4uP/4uLj//f3+P/39/j/+fn5/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAdHR0HtLW10ubn5//e3+D/3uDh/97f4P/g4uP/5efo/+Tm6P/X2dv/0NLT/8nLzP/Lzc7/zc/R/8/Q + 0f/Nzc7/zc3N/9XV1f/W1tb/1tbW/+Pj4//z8/P/+Pj4//j4+P/5+fn/LS0tGgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAB0dHQe0tbXS5ebm/9rc3f/f4OH/4uTl/+nr7P/i5OX/4OLk/+Di5P/Q0tT/wMLE/7y+ + v/+/wsP/xsjJ/8rKyv/Ozs7/0tLS/9DQ0P/MzMz/6Ojo//j4+P/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLk5ub/2tvc/93e3//k5uf/6evs/+bo6f/n6ev/5ujp/+Ll + 5v/d4OH/293f/9ja3P/U1tj/3+Dg//Dw8P/y8vL/8vLy//Ly8v/5+fn/+fn5//n5+f/4+Pj/+fn5/y4u + LhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW20ufp6f/c3t7/3d/f/+fp6v/q6+3/4OLj/+Pl + 5//m6Or/5efp/+Pm6P/j5ef/4uXn/+Lk5f/09fX/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4 + +P/5+fn/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1trbS6Onq/9/h4f/s7u//6+3u/+Hj + 5P/f4eL/3+Hi/+Di5P/e4eL/4OLk/+Dj5P/i5eb/4+bn//P09f/7+/v/+/v7//r6+v/6+vr/+fn5//n5 + +f/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7W2t9Lm5+j/3N3e/9ze + 3//d3t//6+zt/+bo6f/e4OL/3uDi/+Hj5f/f4uT/3+Lj/97h4//h4+X/8vPz//v7+//6+vr/+vr6//n5 + +f/5+fn/+Pj4//j4+P/39/f/+fn5/y4uLhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0Htba30ufo + 6f/a29z/3uDh/+zu7//r7e7/3N7f/9ze4P/f4eP/3eDh/97g4v/e4eP/4+Xn/+Pm5//x8vL/+vr6//r6 + +v/5+fn/+fn5//j4+P/39/j/9/f3//b29//4+Pj/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0d + HQe2t7fS6Onp/9rc3P/b3N3/5+nq/+zt7v/e3+D/3d/g/9/h4v/i5OX/5ujq/+Xn6f/k5+j/5efo//Dx + 8f/5+fr/+fn5//j4+f/4+Pj/9/f4//f39//29vf/9vb2//j4+P8uLi4aAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHR0dB7W2ttLm5+n/2Nna/9TV1v/q6+z/6uvs/+nq6//o6ev/5ujp/+bo6f/l5+n/5efo/+Xn + 6P/l5+n/7/Dx//j4+f/4+Pj/9/f4//f39//29vf/9vb2//X19v/19fX/9/f3/y0tLRoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HsbKy0tjY2f/Hx8j/wsPD/8fHyP/Hx8j/0NHS/8XGxv/Ky8z/1dbX/93e + 3//h4+P/5efo/+nr7P/z8/T/9/f4//f39//29vf/9vb2//X19v/19fX/9PT1//T09P/29vb/LS0tGgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1tbbS39/h/8vMzf/Jycr/xMTF/9LT1P/P0NH/0NHS/9vc + 3f/U1db/3+Dh/+nq6//n6On/6uvs//Hx8v/t7e3/8fHy/+7u7//x8fH/9PT1//Pz9P/z8/T/8vLz//X1 + 9v8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7a2t9Le3+D/x8jJ/8rLzP/Z2dr/2NjZ/9ra + 2//Nzs//1NXV/9fZ2v/U1db/1tfY/97f4P/k5OX/5+fn/+Pj4//i4uP/4+Pj/+np6f/z8/P/8vLz//Hx + 8v/x8fL/9PT1/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Htra30uTk5v/a2tv/4eHj/+rr + 7P/q6+z/4eLj/97f4f/h4uT/4uPk/+Dh4v/i4+T/6uvs//Pz9P/z8/T/8/P0//Ly8//y8vP/8vLz//Hx + 8v/x8fL/8PDx/+/v8f/z8/T/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGga4uLnP8vLz//Hy + 8v/x8fL/8PDx//Dw8f/w8PH/8PHy//Hx8v/x8vP/8vLz//Pz9P/19fX/9fX1//X19f/19fX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/P/8vLz//X19v8nJycWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcn + KBAsLCwXLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0t + LRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XKSkpFDY2NgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + ///gAA//4AAD/+AAAf/gAAD/4AAAf+AAAD/gAAAf4AAAD+AAAA/gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB/AA + AAf/////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTA2lpaYJ+fn+Zfn5/mX9/f5l/f3+Zf39/mX9/ + f5l+fn+Zfn5+mXx8fJl5eXmZW1tbdB0dHQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd319fb+9fX2/vX19v719fb+9fX2/vb29v729vb+9PT1/vHx8v7r6+z+4eHi/o6O + j7UiIiIPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt319fb/9vb2/vb2 + 9//29vf/9vb3/vf39//29vf/9vb3//Pz9P7u7u//5+fn/tra2/+enp++JSUlEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt3z8/T/9fX1/vb29//39/j/8fHy/tnZ2v/V1db/1tbW/9TU + 1P7Q0NH/ysrL/sDAwP/v7/D/pKSlxiUlJRYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrK + yt3z8/P+8/P0/vb29v739/f+8fHx/tzc3P7a2tr+3d3d/tvb3P7Z2dn+09PU/sjIyf74+Pj+8PDw/qOj + pMkiIiIXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrKyt3w8PD/8PDw/vX19f/39/f/7+/v/t7e + 3v/d3d3/39/f/97e3v7c3Nz/2NjY/tLS0v/i4uL/19fX/tfX1/+YmJnFIiIiEgAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd3t7e3/7u7u/vLy8v/09PT/6+vr/t/f3//d3d3/3Nzc/97e3v7d3d3/29vb/tjY + 2P/S0tL/ycnJ/tHR0f/Y2Nj/jY2NtBwcHAQAAAAAAAAAAAAAAAAAAAAAFhYWBcPDw93k5OX+4+Pk/ujo + 6f7o6en+3t7f/tXW1v7P0ND+x8jI/srKy/7MzMz+0NDQ/s7Oz/7Kysr+2NjZ/tvb2/7p6er+5ubm/Rwc + HBEAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3h4uT/4OHj/ubo6f/o6er/3N7f/tTW1//O0NL/yszO/83P + 0P7S0tP/2NjZ/tfX2P/U1NX/39/f/uHh4v/w8PH/8PDx/iEhIRMAAAAAAAAAAAAAAAAAAAAAFRYWBcLD + xN3k5ef/4+Xm/ufp6v/o6ev/3d7g/s7Q0f/CxMX/wcLE/8PFxv7Jysv/0NDQ/s/Pz//MzMz/1NTU/tra + 2//09PX/9fX2/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3e3+D/293e/ubn6f/m6On/2Nrb/tDS + 1P/Hycv/ycvN/8nLzf7R0dL/0NDR/tDQ0P/Pz8//19fX/t7e3v/39/j/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFRYWBcLDxN3h4uP+4uPk/uLj5P7j5eb+5ujp/tnb3f7Kzc7+x8rL/szP0P7P0NH+y8vL/tXV + 1f7V1dX+3t7e/vX19f74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3d39//2tzd/uTl + 5v/n6Or/4uTl/uHj5P/S1Nb/yMrM/8jKy/7Nz8//2tra/t/f3//d3d3/7e3t/vn5+f/4+Pj/+fn5/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFRYWBcPExN3d3t/+293e/ufp6v7l5+n+4+Xm/ubo6v7k5+j+4+Xn/uHk + 5f7o6er++vr6/vr6+v76+vr++fn5/vj4+P74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcPE + xd3h4uP/6uvs/unq6//g4uP/4OLj/uDi4//g4uT/4OPk/+Lk5v7q6+z/+/v7/vr6+//6+vr/+fn5/vj4 + +f/4+Pj/+fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTFxd3a3Nz/19jZ/ubn6P/l5+j/2tzd/t3f + 4f/d4OH/3eDi/+Di5P7o6uv/+vr6/vr6+v/5+fn/+Pj5/vj4+P/39/f/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFhYWBcTFxt3i5OT+3+Dh/unr7P7m6On+3+Hi/uHj5P7k5uj+5Obo/uTm6P7o6uv++fn5/vn5 + +f74+Pj+9/f4/vf39/729vb+9/f3/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcLDxN3U1Nb/y8zN/tvc + 3f/e3+D/3t/g/tvc3v/k5ef/4+Xn/+Tm5/7p6uz/9/f4/vj4+P/39/f/9vb3/vb29v/19fX/9vb2/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFhYWBcDBwd3R0tP/zMzN/szNzf/Q0NH/zc7P/tjZ2f/W19j/5+jp/+vs + 7f7x8vP/9vb3/vb29//19fb/9fX1/vT09f/z8/T/9fX1/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTE + xd3R0dL+y8vM/tPT1P7Z2dr+1NXW/tfY2f7X2Nn+2Nna/t7f4P7l5eX+4+Pj/uLi4/7j4+T+8/P0/vLy + 8/7x8fL+8/P0/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTExd3g4eL/4+Pk/urr7P/o6Or/4uPk/uTl + 5//k5ef/5OXm/+7u7/7z8/T/8vLz/vLy8//x8fP/8fHy/vDw8v/v7/H/8vLz/iEhIRMAAAAAAAAAAAAA + AAAAAAAAFxcXAnJyc3uJiYmQiIiJkIiIiJCIiIiQiIiIkIiIiZCIiYmQiYmKkIqKipCKioqQioqKkIqK + ipCJiYqQiYmKkImJiZCJiYmQiYmJjyQkJAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wDAAP8AwAB/AMAAPwDAAB8AwAAPAMAABwDAAAMAwAADAMAAAwDAAAMAwAADAMAA + AwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMA////ACgAAAAQAAAAIAAAAAEA + IAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBw8HBwcRBwcHEQcHBxEHBwcRBwcHEQYG + BhEHBwcLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQPY2Nno9vb3//f3+P/39/j/9/f4//b2 + 9v/x8fH/19fY9FBQUVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw8D2NjY6PX19v/29vf/9fX2/+3t + 7f/r6+z/5+fo/9/f3//U1NX7W1tcZgAAAAAAAAAAAAAAAAAAAAAAAAAADw8PA9fX2Ojz8/T/9vb3//Pz + 9P/Z2dn/2trb/9jY2f/S0tP/1tbX/+zs7fxbW1xsAAAAAAAAAAAAAAAAAAAAAA8PDwPX19fo8fHx//b2 + 9v/x8fH/39/f/93d3f/e3t7/2tra/9fX1//U1NT/0NDR/FNTVGQAAAAAAAAAAAAAAAAODg4D0NDQ6OTl + 5f/r6+z/5OTk/9fX1//Pz9D/0NDR/9PT0//R0dH/0dHS/97e3v/b29v3EhISCQAAAAAAAAAADg4OA87P + z+jg4uP/6Onr/9/h4v/T1Nb/ycrM/8zNz//W1tf/1tbW/9vb2//n5+f/8vLy/xYWFg0AAAAAAAAAAA4O + DgPNzs/o3uDh/+fp6v/d3uD/yszN/8XHyP/HyMr/z8/Q/83Nzf/Q0ND/4+Pk//f3+P8WFhYNAAAAAAAA + AAAODg4DzM3O6N3f4P/i5OX/4+Xm/9bY2f/Exsf/yMrM/8zNzf/T09P/29vb//f39//4+Pj/FxcXDQAA + AAAAAAAADg4OA83Oz+jc3d7/6Onq/+Tm5//l5+n/4OLk/9ze4P/w8PD/9vb2//j4+P/5+fn/+Pj4/xcX + Fw0AAAAAAAAAAA4ODgPOz9Do4eLj/+Xn6P/g4uT/3+Lj/9/i5P/h5OX/9/f3//r6+v/5+fn/+Pj4//j4 + +P8XFxcNAAAAAAAAAAAODg4Dzs/Q6Nvd3v/q7O3/3d/g/9/h4//i5Ob/5Obo//X19v/5+fn/+Pj4//f3 + 9//39/f/FxcXDQAAAAAAAAAADg4OA8nKy+jNzs//2Nna/9nb3P/b3N3/4uTl/+bo6f/09fX/9/f4//b2 + 9//19fb/9fX2/xYWFg0AAAAAAAAAAA4ODgPKysvoycrL/9LS0//S0tP/1tjZ/9ze3//l5ub/6urq/+np + 6v/w8PH/8/Pz//Pz9P8WFhYNAAAAAAAAAAAODg4D0dHS6Ofo6f/t7u//6Ojq/+nq6//q6uv/8vLz//T0 + 9f/z8/T/8vLz//Ly8//y8vP/FRUVDAAAAAAAAAAAAAAAABUVFQoWFhYLFhYWCxYWFgsWFhYLFhYWCxYW + FgsWFhYLFhYWCxYWFgsWFhYLFRUVCgAAAAAAAAAAwD8AAIAfAACADwAAgAcAAIADAACAAQAAgAEAAIAB + AACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAwAMAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.vb new file mode 100644 index 0000000..bf62b7a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmNeuerVorgabeEintrag.vb @@ -0,0 +1,117 @@ +Imports System.Data.SqlClient +Imports System.Data.SqlDbType + +Public Class frmNeuerVorgabeEintrag + + Dim vorgabe As New clsVorgabe + + Dim mKey As Integer + Property Key As Integer + Get + Return mKey + End Get + Set(value As Integer) + mKey = value + End Set + End Property + + Dim m_tree As New DevComponents.AdvTree.AdvTree + Property Tree As DevComponents.AdvTree.AdvTree + Get + Return m_tree + End Get + Set(value As DevComponents.AdvTree.AdvTree) + m_tree = value + End Set + End Property + + Dim m_selectednode As DevComponents.AdvTree.Node + Property SelectedNode As DevComponents.AdvTree.Node + Get + Return m_selectednode + + End Get + Set(value As DevComponents.AdvTree.Node) + m_selectednode = value + End Set + End Property + + Dim m_parentnode As DevComponents.AdvTree.Node + Property Parentnode As DevComponents.AdvTree.Node + Get + Return m_parentnode + End Get + Set(value As DevComponents.AdvTree.Node) + m_parentnode = value + End Set + End Property + + Sub New() + InitializeComponent() + Me.TreeVorgabe.ImageList = Globals.GueltigImages + End Sub + + Private Sub frmNeuerVorgabeintrag_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.TreeVorgabe.Nodes.Clear() + For i As Integer = 0 To Me.Tree.Nodes.Count - 1 + Me.TreeVorgabe.Nodes.Add(Me.Tree.Nodes(i)) + Next i + Me.TreeVorgabe.SelectedNode = Me.SelectedNode + If Me.Key > -1 Then + Me.TreeVorgabe.SelectedNode = Me.TreeVorgabe.SelectedNode.Parent + End If + If m_parentnode IsNot Nothing Then + Me.TreeVorgabe.SelectedNode = Me.Parentnode + End If + If Me.TreeVorgabe.SelectedNode Is Nothing Then + Me.txtKapitelnr.Enabled = False + End If + Me.dtGueltigbis.Value = "31.12.2099" + Me.txtKapitelnr.Focus() + If Me.Key > -1 Then + vorgabe.Get_Data(Me.Key) + Me.txtKapitelnr.Text = vorgabe.sKapitelNr.Value.ToString + Me.txtKapitel.Text = vorgabe.sKapitel.Value.ToString + Try + Me.dtGueltigbis.Value = vorgabe.daGueltig_Bis.Value + Catch + Me.dtGueltigbis.Value = "31.12.2099" + End Try + + End If + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + + + If Me.Key = -1 Then + vorgabe.Add_New() + Me.Key = vorgabe.iVorgabeID.Value + Else + vorgabe.Get_Data(Me.Key) + If Me.Key = Me.TreeVorgabe.SelectedNode.Tag Then + MsgBox("Das übergeordnete Element ist ungültig. Bitte korrigieren.", vbExclamation) + Exit Sub + End If + End If + Me.DialogResult = DialogResult.OK + vorgabe.sKapitel = New SqlTypes.SqlString(CType(Me.txtKapitel.Text, String)) + vorgabe.sKapitelNr = New SqlTypes.SqlString(CType(Me.txtKapitelnr.Text, String)) + vorgabe.daGueltig_Bis = New SqlTypes.SqlDateTime(CType(Me.dtGueltigbis.Value, DateTime)) + If Me.txtKapitelnr.Enabled = False Then + Else + vorgabe.iParentID = New SqlTypes.SqlInt32(CType(Me.TreeVorgabe.SelectedNode.Tag, Int32)) + End If + vorgabe.Save_Data() + Me.Close() + End Sub + + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.DialogResult = DialogResult.Abort + Me.Close() + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + btnAbbruch_Click(sender, e) + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb new file mode 100644 index 0000000..502aa74 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb @@ -0,0 +1,820 @@ + _ +Partial Class frmVorgabe + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmVorgabe)) + Me.ToolStripMain = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.lblSearchStruktur_Definition = New System.Windows.Forms.ToolStripLabel() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.tsBtnSearchStruktur_Definition = New System.Windows.Forms.ToolStripButton() + Me.tsTxtSearchStruktur_Definition = New System.Windows.Forms.ToolStripTextBox() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.TreeVorgabe = New DevComponents.AdvTree.AdvTree() + Me.CtxMenuTree = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.NeuerEintragToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() + Me.NeueVorgabeErstellenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.Node1 = New DevComponents.AdvTree.Node() + Me.NodeConnector1 = New DevComponents.AdvTree.NodeConnector() + Me.ElementStyle1 = New DevComponents.DotNetBar.ElementStyle() + Me.ToolStripTree = New System.Windows.Forms.ToolStrip() + Me.tslabelFilter = New System.Windows.Forms.ToolStripLabel() + Me.tsCbxFilter = New System.Windows.Forms.ToolStripComboBox() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.lblSuche = New System.Windows.Forms.ToolStripLabel() + Me.tstxtSuche = New System.Windows.Forms.ToolStripTextBox() + Me.TSBtnSuche = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFilterAufheben = New System.Windows.Forms.ToolStripButton() + Me.TSBtnFirst = New System.Windows.Forms.ToolStripButton() + Me.TSBtnPrevious = New System.Windows.Forms.ToolStripButton() + Me.TSBtnNext = New System.Windows.Forms.ToolStripButton() + Me.TSBtnLast = New System.Windows.Forms.ToolStripButton() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.SplitContainer3 = New System.Windows.Forms.SplitContainer() + Me.GrpVorgaben = New System.Windows.Forms.GroupBox() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuVorgabe = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ToolStripMenuVorgabeNeu = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuVorgabeEdit = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuVorgabeDelete = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripStruktur = New System.Windows.Forms.ToolStrip() + Me.TsBtnAddNewStruktur = New System.Windows.Forms.ToolStripButton() + Me.TsBtnEditStruktur = New System.Windows.Forms.ToolStripButton() + Me.TsBtnDeleteStruktur = New System.Windows.Forms.ToolStripButton() + Me.GrpDokumente = New System.Windows.Forms.GroupBox() + Me.DokumenteAllgemein = New ThemenDokumente.Dokumente() + Me.GrpDefinitionen = New System.Windows.Forms.GroupBox() + Me.SplitContainer4 = New System.Windows.Forms.SplitContainer() + Me.C2Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ctxMenuDefinition = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.NeuerEintragToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragBearbeitenToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragLöschenToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripDefinition = New System.Windows.Forms.ToolStrip() + Me.TSBtnAddNewDefinition = New System.Windows.Forms.ToolStripButton() + Me.TsBtnEditDefinition = New System.Windows.Forms.ToolStripButton() + Me.TsBtnDeleteDefinition = New System.Windows.Forms.ToolStripButton() + Me.DokumenteDefinition = New ThemenDokumente.Dokumente() + Me.EintragAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragAnzeigenToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMain.SuspendLayout() + Me.MenuStrip1.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.TreeVorgabe, System.ComponentModel.ISupportInitialize).BeginInit() + Me.CtxMenuTree.SuspendLayout() + Me.ToolStripTree.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer3.Panel1.SuspendLayout() + Me.SplitContainer3.Panel2.SuspendLayout() + Me.SplitContainer3.SuspendLayout() + Me.GrpVorgaben.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuVorgabe.SuspendLayout() + Me.ToolStripStruktur.SuspendLayout() + Me.GrpDokumente.SuspendLayout() + Me.GrpDefinitionen.SuspendLayout() + CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer4.Panel1.SuspendLayout() + Me.SplitContainer4.Panel2.SuspendLayout() + Me.SplitContainer4.SuspendLayout() + CType(Me.C2Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ctxMenuDefinition.SuspendLayout() + Me.ToolStripDefinition.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStripMain + ' + Me.ToolStripMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.lblSearchStruktur_Definition, Me.ToolStripButton2, Me.tsBtnSearchStruktur_Definition, Me.tsTxtSearchStruktur_Definition, Me.ToolStripButton1}) + Me.ToolStripMain.Location = New System.Drawing.Point(0, 24) + Me.ToolStripMain.Name = "ToolStripMain" + Me.ToolStripMain.Size = New System.Drawing.Size(1249, 25) + Me.ToolStripMain.TabIndex = 7 + Me.ToolStripMain.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'lblSearchStruktur_Definition + ' + Me.lblSearchStruktur_Definition.Name = "lblSearchStruktur_Definition" + Me.lblSearchStruktur_Definition.Size = New System.Drawing.Size(46, 22) + Me.lblSearchStruktur_Definition.Text = "Suchen" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "Filter aufheben" + ' + 'tsBtnSearchStruktur_Definition + ' + Me.tsBtnSearchStruktur_Definition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsBtnSearchStruktur_Definition.Image = CType(resources.GetObject("tsBtnSearchStruktur_Definition.Image"), System.Drawing.Image) + Me.tsBtnSearchStruktur_Definition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsBtnSearchStruktur_Definition.Name = "tsBtnSearchStruktur_Definition" + Me.tsBtnSearchStruktur_Definition.Size = New System.Drawing.Size(23, 22) + Me.tsBtnSearchStruktur_Definition.Text = "Suchen" + ' + 'tsTxtSearchStruktur_Definition + ' + Me.tsTxtSearchStruktur_Definition.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.tsTxtSearchStruktur_Definition.Name = "tsTxtSearchStruktur_Definition" + Me.tsTxtSearchStruktur_Definition.Size = New System.Drawing.Size(100, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.ToolTipText = "Neu" + Me.ToolStripButton1.Visible = False + ' + 'MenuStrip1 + ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(1249, 24) + Me.MenuStrip1.TabIndex = 6 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 49) + Me.SplitContainer1.Name = "SplitContainer1" + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.TreeVorgabe) + Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStripTree) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer2) + Me.SplitContainer1.Size = New System.Drawing.Size(1249, 557) + Me.SplitContainer1.SplitterDistance = 478 + Me.SplitContainer1.TabIndex = 8 + ' + 'TreeVorgabe + ' + Me.TreeVorgabe.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline + Me.TreeVorgabe.AllowExternalDrop = False + Me.TreeVorgabe.AllowUserToResizeColumns = False + Me.TreeVorgabe.BackColor = System.Drawing.SystemColors.Window + ' + ' + ' + Me.TreeVorgabe.BackgroundStyle.Class = "TreeBorderKey" + Me.TreeVorgabe.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.TreeVorgabe.ContextMenuStrip = Me.CtxMenuTree + Me.TreeVorgabe.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeVorgabe.DragDropEnabled = False + Me.TreeVorgabe.DragDropNodeCopyEnabled = False + Me.TreeVorgabe.ImageList = Me.ImageList1 + Me.TreeVorgabe.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F" + Me.TreeVorgabe.Location = New System.Drawing.Point(0, 25) + Me.TreeVorgabe.Name = "TreeVorgabe" + Me.TreeVorgabe.Nodes.AddRange(New DevComponents.AdvTree.Node() {Me.Node1}) + Me.TreeVorgabe.NodesConnector = Me.NodeConnector1 + Me.TreeVorgabe.NodeStyle = Me.ElementStyle1 + Me.TreeVorgabe.PathSeparator = ";" + Me.TreeVorgabe.Size = New System.Drawing.Size(478, 532) + Me.TreeVorgabe.Styles.Add(Me.ElementStyle1) + Me.TreeVorgabe.TabIndex = 0 + Me.TreeVorgabe.Text = "AdvTree1" + ' + 'CtxMenuTree + ' + Me.CtxMenuTree.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.CtxMenuTree.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuerEintragToolStripMenuItem, Me.EintragLöschenToolStripMenuItem, Me.EintragBearbeitenToolStripMenuItem, Me.ToolStripMenuItem1, Me.NeueVorgabeErstellenToolStripMenuItem}) + Me.CtxMenuTree.Name = "CtxMenuTree" + Me.CtxMenuTree.Size = New System.Drawing.Size(196, 98) + ' + 'NeuerEintragToolStripMenuItem + ' + Me.NeuerEintragToolStripMenuItem.Name = "NeuerEintragToolStripMenuItem" + Me.NeuerEintragToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.NeuerEintragToolStripMenuItem.Text = "Neuer Eintrag" + ' + 'EintragLöschenToolStripMenuItem + ' + Me.EintragLöschenToolStripMenuItem.Name = "EintragLöschenToolStripMenuItem" + Me.EintragLöschenToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.EintragLöschenToolStripMenuItem.Text = "Eintrag löschen" + ' + 'EintragBearbeitenToolStripMenuItem + ' + Me.EintragBearbeitenToolStripMenuItem.Name = "EintragBearbeitenToolStripMenuItem" + Me.EintragBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.EintragBearbeitenToolStripMenuItem.Text = "Eintrag bearbeiten" + ' + 'ToolStripMenuItem1 + ' + Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" + Me.ToolStripMenuItem1.Size = New System.Drawing.Size(192, 6) + ' + 'NeueVorgabeErstellenToolStripMenuItem + ' + Me.NeueVorgabeErstellenToolStripMenuItem.Name = "NeueVorgabeErstellenToolStripMenuItem" + Me.NeueVorgabeErstellenToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.NeueVorgabeErstellenToolStripMenuItem.Text = "Neue Vorgabe erstellen" + ' + 'ImageList1 + ' + Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit + Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + ' + 'Node1 + ' + Me.Node1.Expanded = True + Me.Node1.Name = "Node1" + Me.Node1.Text = "Node1" + ' + 'NodeConnector1 + ' + Me.NodeConnector1.LineColor = System.Drawing.SystemColors.ControlText + ' + 'ElementStyle1 + ' + Me.ElementStyle1.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.ElementStyle1.Name = "ElementStyle1" + Me.ElementStyle1.TextColor = System.Drawing.SystemColors.ControlText + ' + 'ToolStripTree + ' + Me.ToolStripTree.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslabelFilter, Me.tsCbxFilter, Me.ToolStripSeparator1, Me.lblSuche, Me.tstxtSuche, Me.TSBtnSuche, Me.TSBtnFilterAufheben, Me.TSBtnFirst, Me.TSBtnPrevious, Me.TSBtnNext, Me.TSBtnLast}) + Me.ToolStripTree.Location = New System.Drawing.Point(0, 0) + Me.ToolStripTree.Name = "ToolStripTree" + Me.ToolStripTree.Size = New System.Drawing.Size(478, 25) + Me.ToolStripTree.TabIndex = 1 + Me.ToolStripTree.Text = "ToolStrip2" + ' + 'tslabelFilter + ' + Me.tslabelFilter.Name = "tslabelFilter" + Me.tslabelFilter.Size = New System.Drawing.Size(33, 22) + Me.tslabelFilter.Text = "Filter" + ' + 'tsCbxFilter + ' + Me.tsCbxFilter.Name = "tsCbxFilter" + Me.tsCbxFilter.Size = New System.Drawing.Size(121, 25) + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'lblSuche + ' + Me.lblSuche.Name = "lblSuche" + Me.lblSuche.Size = New System.Drawing.Size(46, 22) + Me.lblSuche.Text = "Suchen" + ' + 'tstxtSuche + ' + Me.tstxtSuche.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.tstxtSuche.Name = "tstxtSuche" + Me.tstxtSuche.Size = New System.Drawing.Size(100, 25) + ' + 'TSBtnSuche + ' + Me.TSBtnSuche.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSuche.Image = CType(resources.GetObject("TSBtnSuche.Image"), System.Drawing.Image) + Me.TSBtnSuche.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSuche.Name = "TSBtnSuche" + Me.TSBtnSuche.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSuche.Text = "Suchen" + ' + 'TSBtnFilterAufheben + ' + Me.TSBtnFilterAufheben.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFilterAufheben.Image = CType(resources.GetObject("TSBtnFilterAufheben.Image"), System.Drawing.Image) + Me.TSBtnFilterAufheben.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFilterAufheben.Name = "TSBtnFilterAufheben" + Me.TSBtnFilterAufheben.Size = New System.Drawing.Size(23, 22) + Me.TSBtnFilterAufheben.Text = "Filter aufheben" + ' + 'TSBtnFirst + ' + Me.TSBtnFirst.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnFirst.Image = CType(resources.GetObject("TSBtnFirst.Image"), System.Drawing.Image) + Me.TSBtnFirst.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnFirst.Name = "TSBtnFirst" + Me.TSBtnFirst.Size = New System.Drawing.Size(23, 22) + Me.TSBtnFirst.Text = "Erster Datensatz" + ' + 'TSBtnPrevious + ' + Me.TSBtnPrevious.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnPrevious.Image = CType(resources.GetObject("TSBtnPrevious.Image"), System.Drawing.Image) + Me.TSBtnPrevious.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnPrevious.Name = "TSBtnPrevious" + Me.TSBtnPrevious.Size = New System.Drawing.Size(23, 22) + Me.TSBtnPrevious.Text = "Vorheriger Datensatz" + ' + 'TSBtnNext + ' + Me.TSBtnNext.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnNext.Image = CType(resources.GetObject("TSBtnNext.Image"), System.Drawing.Image) + Me.TSBtnNext.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnNext.Name = "TSBtnNext" + Me.TSBtnNext.Size = New System.Drawing.Size(23, 22) + Me.TSBtnNext.Text = "Nächster Datensatz" + ' + 'TSBtnLast + ' + Me.TSBtnLast.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnLast.Image = CType(resources.GetObject("TSBtnLast.Image"), System.Drawing.Image) + Me.TSBtnLast.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnLast.Name = "TSBtnLast" + Me.TSBtnLast.Size = New System.Drawing.Size(23, 22) + Me.TSBtnLast.Text = "Letzter Datensatz" + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Name = "SplitContainer2" + Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer3) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.GrpDefinitionen) + Me.SplitContainer2.Size = New System.Drawing.Size(767, 557) + Me.SplitContainer2.SplitterDistance = 235 + Me.SplitContainer2.TabIndex = 0 + ' + 'SplitContainer3 + ' + Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer3.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer3.Name = "SplitContainer3" + ' + 'SplitContainer3.Panel1 + ' + Me.SplitContainer3.Panel1.Controls.Add(Me.GrpVorgaben) + ' + 'SplitContainer3.Panel2 + ' + Me.SplitContainer3.Panel2.Controls.Add(Me.GrpDokumente) + Me.SplitContainer3.Size = New System.Drawing.Size(767, 235) + Me.SplitContainer3.SplitterDistance = 415 + Me.SplitContainer3.TabIndex = 0 + ' + 'GrpVorgaben + ' + Me.GrpVorgaben.Controls.Add(Me.C1Daten) + Me.GrpVorgaben.Controls.Add(Me.ToolStripStruktur) + Me.GrpVorgaben.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpVorgaben.Location = New System.Drawing.Point(0, 0) + Me.GrpVorgaben.Name = "GrpVorgaben" + Me.GrpVorgaben.Size = New System.Drawing.Size(415, 235) + Me.GrpVorgaben.TabIndex = 10 + Me.GrpVorgaben.TabStop = False + Me.GrpVorgaben.Text = "Vorgaben" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C1Daten.ContextMenuStrip = Me.ctxMenuVorgabe + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(3, 41) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.Size = New System.Drawing.Size(409, 191) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 9 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ctxMenuVorgabe + ' + Me.ctxMenuVorgabe.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuVorgabe.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuVorgabeNeu, Me.ToolStripMenuVorgabeEdit, Me.ToolStripMenuVorgabeDelete, Me.EintragAnzeigenToolStripMenuItem}) + Me.ctxMenuVorgabe.Name = "ctxMenuDefinition" + Me.ctxMenuVorgabe.Size = New System.Drawing.Size(171, 92) + ' + 'ToolStripMenuVorgabeNeu + ' + Me.ToolStripMenuVorgabeNeu.Name = "ToolStripMenuVorgabeNeu" + Me.ToolStripMenuVorgabeNeu.Size = New System.Drawing.Size(180, 22) + Me.ToolStripMenuVorgabeNeu.Text = "Neuer Eintrag" + ' + 'ToolStripMenuVorgabeEdit + ' + Me.ToolStripMenuVorgabeEdit.Name = "ToolStripMenuVorgabeEdit" + Me.ToolStripMenuVorgabeEdit.Size = New System.Drawing.Size(180, 22) + Me.ToolStripMenuVorgabeEdit.Text = "Eintrag bearbeiten" + ' + 'ToolStripMenuVorgabeDelete + ' + Me.ToolStripMenuVorgabeDelete.Name = "ToolStripMenuVorgabeDelete" + Me.ToolStripMenuVorgabeDelete.Size = New System.Drawing.Size(180, 22) + Me.ToolStripMenuVorgabeDelete.Text = "Eintrag löschen" + ' + 'ToolStripStruktur + ' + Me.ToolStripStruktur.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnAddNewStruktur, Me.TsBtnEditStruktur, Me.TsBtnDeleteStruktur}) + Me.ToolStripStruktur.Location = New System.Drawing.Point(3, 16) + Me.ToolStripStruktur.Name = "ToolStripStruktur" + Me.ToolStripStruktur.Size = New System.Drawing.Size(409, 25) + Me.ToolStripStruktur.TabIndex = 13 + Me.ToolStripStruktur.Text = "ToolStrip3" + ' + 'TsBtnAddNewStruktur + ' + Me.TsBtnAddNewStruktur.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TsBtnAddNewStruktur.Image = CType(resources.GetObject("TsBtnAddNewStruktur.Image"), System.Drawing.Image) + Me.TsBtnAddNewStruktur.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TsBtnAddNewStruktur.Name = "TsBtnAddNewStruktur" + Me.TsBtnAddNewStruktur.Size = New System.Drawing.Size(23, 22) + Me.TsBtnAddNewStruktur.Text = "Neu" + ' + 'TsBtnEditStruktur + ' + Me.TsBtnEditStruktur.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TsBtnEditStruktur.Image = CType(resources.GetObject("TsBtnEditStruktur.Image"), System.Drawing.Image) + Me.TsBtnEditStruktur.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TsBtnEditStruktur.Name = "TsBtnEditStruktur" + Me.TsBtnEditStruktur.Size = New System.Drawing.Size(23, 22) + Me.TsBtnEditStruktur.Text = "ToolStripButton2" + ' + 'TsBtnDeleteStruktur + ' + Me.TsBtnDeleteStruktur.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TsBtnDeleteStruktur.Image = CType(resources.GetObject("TsBtnDeleteStruktur.Image"), System.Drawing.Image) + Me.TsBtnDeleteStruktur.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TsBtnDeleteStruktur.Name = "TsBtnDeleteStruktur" + Me.TsBtnDeleteStruktur.Size = New System.Drawing.Size(23, 22) + Me.TsBtnDeleteStruktur.Text = "Löschen" + ' + 'GrpDokumente + ' + Me.GrpDokumente.Controls.Add(Me.DokumenteAllgemein) + Me.GrpDokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDokumente.Location = New System.Drawing.Point(0, 0) + Me.GrpDokumente.Name = "GrpDokumente" + Me.GrpDokumente.Size = New System.Drawing.Size(348, 235) + Me.GrpDokumente.TabIndex = 68 + Me.GrpDokumente.TabStop = False + Me.GrpDokumente.Text = "Dokumente" + ' + 'DokumenteAllgemein + ' + Me.DokumenteAllgemein.ConnectionString = Nothing + Me.DokumenteAllgemein.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteAllgemein.Doktype = 0 + Me.DokumenteAllgemein.Location = New System.Drawing.Point(3, 16) + Me.DokumenteAllgemein.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteAllgemein.Mitarbeiternr = 0 + Me.DokumenteAllgemein.Name = "DokumenteAllgemein" + Me.DokumenteAllgemein.Pruefschrittnr = 0 + Me.DokumenteAllgemein.Size = New System.Drawing.Size(342, 216) + Me.DokumenteAllgemein.TabIndex = 32 + Me.DokumenteAllgemein.TempFilePath = Nothing + Me.DokumenteAllgemein.ThemaNr = 0 + ' + 'GrpDefinitionen + ' + Me.GrpDefinitionen.Controls.Add(Me.SplitContainer4) + Me.GrpDefinitionen.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrpDefinitionen.Location = New System.Drawing.Point(0, 0) + Me.GrpDefinitionen.Name = "GrpDefinitionen" + Me.GrpDefinitionen.Size = New System.Drawing.Size(767, 318) + Me.GrpDefinitionen.TabIndex = 0 + Me.GrpDefinitionen.TabStop = False + Me.GrpDefinitionen.Text = "Definitionen" + ' + 'SplitContainer4 + ' + Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer4.Location = New System.Drawing.Point(3, 16) + Me.SplitContainer4.Name = "SplitContainer4" + ' + 'SplitContainer4.Panel1 + ' + Me.SplitContainer4.Panel1.Controls.Add(Me.C2Daten) + Me.SplitContainer4.Panel1.Controls.Add(Me.ToolStripDefinition) + ' + 'SplitContainer4.Panel2 + ' + Me.SplitContainer4.Panel2.Controls.Add(Me.DokumenteDefinition) + Me.SplitContainer4.Size = New System.Drawing.Size(761, 299) + Me.SplitContainer4.SplitterDistance = 415 + Me.SplitContainer4.TabIndex = 0 + ' + 'C2Daten + ' + Me.C2Daten.AllowUpdate = False + Me.C2Daten.AlternatingRows = True + Me.C2Daten.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating + Me.C2Daten.ContextMenuStrip = Me.ctxMenuDefinition + Me.C2Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C2Daten.FilterBar = True + Me.C2Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C2Daten.Images.Add(CType(resources.GetObject("C2Daten.Images"), System.Drawing.Image)) + Me.C2Daten.Location = New System.Drawing.Point(0, 25) + Me.C2Daten.Name = "C2Daten" + Me.C2Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C2Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C2Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C2Daten.PrintInfo.PageSettings = CType(resources.GetObject("C2Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C2Daten.Size = New System.Drawing.Size(415, 274) + Me.C2Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C2Daten.TabIndex = 11 + Me.C2Daten.Text = "C1TrueDBGrid1" + Me.C2Daten.VisualStyle = C1.Win.C1TrueDBGrid.VisualStyle.Office2010Silver + Me.C2Daten.PropBag = resources.GetString("C2Daten.PropBag") + ' + 'ctxMenuDefinition + ' + Me.ctxMenuDefinition.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ctxMenuDefinition.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuerEintragToolStripMenuItem1, Me.EintragBearbeitenToolStripMenuItem1, Me.EintragLöschenToolStripMenuItem1, Me.EintragAnzeigenToolStripMenuItem1}) + Me.ctxMenuDefinition.Name = "ctxMenuDefinition" + Me.ctxMenuDefinition.Size = New System.Drawing.Size(181, 114) + ' + 'NeuerEintragToolStripMenuItem1 + ' + Me.NeuerEintragToolStripMenuItem1.Name = "NeuerEintragToolStripMenuItem1" + Me.NeuerEintragToolStripMenuItem1.Size = New System.Drawing.Size(170, 22) + Me.NeuerEintragToolStripMenuItem1.Text = "Neuer Eintrag" + ' + 'EintragBearbeitenToolStripMenuItem1 + ' + Me.EintragBearbeitenToolStripMenuItem1.Name = "EintragBearbeitenToolStripMenuItem1" + Me.EintragBearbeitenToolStripMenuItem1.Size = New System.Drawing.Size(170, 22) + Me.EintragBearbeitenToolStripMenuItem1.Text = "Eintrag bearbeiten" + ' + 'EintragLöschenToolStripMenuItem1 + ' + Me.EintragLöschenToolStripMenuItem1.Name = "EintragLöschenToolStripMenuItem1" + Me.EintragLöschenToolStripMenuItem1.Size = New System.Drawing.Size(170, 22) + Me.EintragLöschenToolStripMenuItem1.Text = "Eintrag löschen" + ' + 'ToolStripDefinition + ' + Me.ToolStripDefinition.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnAddNewDefinition, Me.TsBtnEditDefinition, Me.TsBtnDeleteDefinition}) + Me.ToolStripDefinition.Location = New System.Drawing.Point(0, 0) + Me.ToolStripDefinition.Name = "ToolStripDefinition" + Me.ToolStripDefinition.Size = New System.Drawing.Size(415, 25) + Me.ToolStripDefinition.TabIndex = 12 + Me.ToolStripDefinition.Text = "ToolStrip3" + ' + 'TSBtnAddNewDefinition + ' + Me.TSBtnAddNewDefinition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnAddNewDefinition.Image = CType(resources.GetObject("TSBtnAddNewDefinition.Image"), System.Drawing.Image) + Me.TSBtnAddNewDefinition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnAddNewDefinition.Name = "TSBtnAddNewDefinition" + Me.TSBtnAddNewDefinition.Size = New System.Drawing.Size(23, 22) + Me.TSBtnAddNewDefinition.Text = "Neu" + ' + 'TsBtnEditDefinition + ' + Me.TsBtnEditDefinition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TsBtnEditDefinition.Image = CType(resources.GetObject("TsBtnEditDefinition.Image"), System.Drawing.Image) + Me.TsBtnEditDefinition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TsBtnEditDefinition.Name = "TsBtnEditDefinition" + Me.TsBtnEditDefinition.Size = New System.Drawing.Size(23, 22) + Me.TsBtnEditDefinition.Text = "ToolStripButton2" + ' + 'TsBtnDeleteDefinition + ' + Me.TsBtnDeleteDefinition.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TsBtnDeleteDefinition.Image = CType(resources.GetObject("TsBtnDeleteDefinition.Image"), System.Drawing.Image) + Me.TsBtnDeleteDefinition.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TsBtnDeleteDefinition.Name = "TsBtnDeleteDefinition" + Me.TsBtnDeleteDefinition.Size = New System.Drawing.Size(23, 22) + Me.TsBtnDeleteDefinition.Text = "Löschen" + ' + 'DokumenteDefinition + ' + Me.DokumenteDefinition.ConnectionString = Nothing + Me.DokumenteDefinition.Dock = System.Windows.Forms.DockStyle.Fill + Me.DokumenteDefinition.Doktype = 0 + Me.DokumenteDefinition.Location = New System.Drawing.Point(0, 0) + Me.DokumenteDefinition.Margin = New System.Windows.Forms.Padding(5, 6, 5, 6) + Me.DokumenteDefinition.Mitarbeiternr = 0 + Me.DokumenteDefinition.Name = "DokumenteDefinition" + Me.DokumenteDefinition.Pruefschrittnr = 0 + Me.DokumenteDefinition.Size = New System.Drawing.Size(342, 299) + Me.DokumenteDefinition.TabIndex = 33 + Me.DokumenteDefinition.TempFilePath = Nothing + Me.DokumenteDefinition.ThemaNr = 0 + ' + 'EintragAnzeigenToolStripMenuItem + ' + Me.EintragAnzeigenToolStripMenuItem.Name = "EintragAnzeigenToolStripMenuItem" + Me.EintragAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.EintragAnzeigenToolStripMenuItem.Text = "Eintrag anzeigen" + ' + 'EintragAnzeigenToolStripMenuItem1 + ' + Me.EintragAnzeigenToolStripMenuItem1.Name = "EintragAnzeigenToolStripMenuItem1" + Me.EintragAnzeigenToolStripMenuItem1.Size = New System.Drawing.Size(180, 22) + Me.EintragAnzeigenToolStripMenuItem1.Text = "Eintrag anzeigen" + ' + 'frmVorgabe + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1249, 606) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.ToolStripMain) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmVorgabe" + Me.Text = "Vorgaben und Definitionen" + Me.ToolStripMain.ResumeLayout(False) + Me.ToolStripMain.PerformLayout() + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + CType(Me.TreeVorgabe, System.ComponentModel.ISupportInitialize).EndInit() + Me.CtxMenuTree.ResumeLayout(False) + Me.ToolStripTree.ResumeLayout(False) + Me.ToolStripTree.PerformLayout() + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + Me.SplitContainer3.Panel1.ResumeLayout(False) + Me.SplitContainer3.Panel2.ResumeLayout(False) + CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer3.ResumeLayout(False) + Me.GrpVorgaben.ResumeLayout(False) + Me.GrpVorgaben.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuVorgabe.ResumeLayout(False) + Me.ToolStripStruktur.ResumeLayout(False) + Me.ToolStripStruktur.PerformLayout() + Me.GrpDokumente.ResumeLayout(False) + Me.GrpDefinitionen.ResumeLayout(False) + Me.SplitContainer4.Panel1.ResumeLayout(False) + Me.SplitContainer4.Panel1.PerformLayout() + Me.SplitContainer4.Panel2.ResumeLayout(False) + CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer4.ResumeLayout(False) + CType(Me.C2Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ctxMenuDefinition.ResumeLayout(False) + Me.ToolStripDefinition.ResumeLayout(False) + Me.ToolStripDefinition.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents TreeVorgabe As DevComponents.AdvTree.AdvTree + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents SplitContainer2 As System.Windows.Forms.SplitContainer + Friend WithEvents SplitContainer3 As System.Windows.Forms.SplitContainer + Friend WithEvents GrpDokumente As System.Windows.Forms.GroupBox + Friend WithEvents DokumenteAllgemein As ThemenDokumente.Dokumente + Friend WithEvents GrpVorgaben As System.Windows.Forms.GroupBox + Friend WithEvents GrpDefinitionen As System.Windows.Forms.GroupBox + Friend WithEvents CtxMenuTree As System.Windows.Forms.ContextMenuStrip + Friend WithEvents NeuerEintragToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents EintragLöschenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents EintragBearbeitenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents NeueVorgabeErstellenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripTree As System.Windows.Forms.ToolStrip + Friend WithEvents tslabelFilter As System.Windows.Forms.ToolStripLabel + Friend WithEvents tsCbxFilter As System.Windows.Forms.ToolStripComboBox + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents lblSuche As ToolStripLabel + Friend WithEvents tstxtSuche As ToolStripTextBox + Friend WithEvents TSBtnSuche As ToolStripButton + Friend WithEvents TSBtnFilterAufheben As ToolStripButton + Friend WithEvents TSBtnFirst As ToolStripButton + Friend WithEvents TSBtnPrevious As ToolStripButton + Friend WithEvents TSBtnNext As ToolStripButton + Friend WithEvents TSBtnLast As ToolStripButton + Friend WithEvents SplitContainer4 As SplitContainer + Friend WithEvents ToolStripDefinition As ToolStrip + Friend WithEvents TSBtnAddNewDefinition As ToolStripButton + Friend WithEvents TsBtnEditDefinition As ToolStripButton + Friend WithEvents TsBtnDeleteDefinition As ToolStripButton + Friend WithEvents C2Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents DokumenteDefinition As ThemenDokumente.Dokumente + Friend WithEvents ToolStripStruktur As ToolStrip + Friend WithEvents TsBtnAddNewStruktur As ToolStripButton + Friend WithEvents TsBtnEditStruktur As ToolStripButton + Friend WithEvents TsBtnDeleteStruktur As ToolStripButton + Friend WithEvents ctxMenuDefinition As ContextMenuStrip + Friend WithEvents NeuerEintragToolStripMenuItem1 As ToolStripMenuItem + Friend WithEvents EintragBearbeitenToolStripMenuItem1 As ToolStripMenuItem + Friend WithEvents EintragLöschenToolStripMenuItem1 As ToolStripMenuItem + Friend WithEvents ctxMenuVorgabe As ContextMenuStrip + Friend WithEvents ToolStripMenuVorgabeNeu As ToolStripMenuItem + Friend WithEvents ToolStripMenuVorgabeEdit As ToolStripMenuItem + Friend WithEvents ToolStripMenuVorgabeDelete As ToolStripMenuItem + + Private WithEvents ElementStyle1 As DevComponents.DotNetBar.ElementStyle + Private WithEvents NodeConnector1 As DevComponents.AdvTree.NodeConnector + Private WithEvents Node1 As DevComponents.AdvTree.Node + Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel + Friend WithEvents tsTxtSearchStruktur_Definition As ToolStripTextBox + Friend WithEvents tsBtnSearchStruktur_Definition As ToolStripButton + Private WithEvents ImageList1 As ImageList + Friend WithEvents ToolStripButton2 As ToolStripButton + Friend WithEvents ToolStripMain As ToolStrip + Friend WithEvents EintragAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents EintragAnzeigenToolStripMenuItem1 As ToolStripMenuItem +End Class diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.resx b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.resx new file mode 100644 index 0000000..5bae06c --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.resx @@ -0,0 +1,3811 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 423, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyunJg0QviNrd5 + PDtzc7Z5ztl20pUzo6I3yFIrS9N8K7Qih6lUFJVaGWXZi6KRoZSFmCuyi+iiiCKILgo+HTUWu7QffOD5 + PfB8eL6/5xH/U1+mh4IzM+O/Ovdm8Hdrvi5X5PR2H86ht2oWKUnPEYkr5XYexXfyebKfTxO3+P5mkIv7 + ramCngqZtDV2Vq+zsWbDP9LXWVllWc+PRD+J3krGWv18TTzm8kFHqqC7TCbD6sRml7A7XEmsWU7S19t4 + 3Rlh7JzO6Okgn1/d5dqh7FSBo1kg1Swi2+5DcilI2W4kScblktlglZjsMBg9G+JJS5CPYz1zUf8eFcJ2 + XJD42IXTlORkaridARTJjyJ7kd0eMh1uXsbDjLTqDDYXMDN8idvVyrzAViOYeN9Gx6Ago1pgbxA4Twnk + sqV4lSCeXD9ZOT7Gz2kMntT5cWc5UwPt3K31Ilx1gqfvqomPCNqGzfXbIp69i/D8Q3hOku8Jk5cXRPIE + eHZa5WGTxs/+Fby63cpAg39e8CCxh/i4ID4maH8p6JgUvPgWwXFSEMwrYmMghDtPY6QlwEBjkLY9Tp73 + HOdxc2AugsVuRuib2kxXQpA5G+GEwNEkyC1fhq5GUXUDX9BgqNnPvfp8rh9WeHqpguEWNTlES1atoPet + D2ejwAjswtBKMcLFGEaUiFFIIBTlYYOXO3U++mq8DJ3fzeiZUMozWpzmlZW6xUSN7USLSiiKFs9RaKJt + inG/zkNfdS43jnrob40x3hZJEYjO0rVsKSmlJLaDkq3bksRMCou3c69W5uYxhe4qNzfrQ0y0FyJ0XUfX + QmhaGFWdxVyrmtmrSVSz31igsy8W4EKFYv5AmatHcpns2jw/xIVSpqfvrzyw8vf0hVhqhAXUEpM0IYTl + DzXbwlLPDlfpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEeSURBVFhH7ZJbEoMwCEVduktzZy0XIRKCkSbt9CdnPIyG + R+LotlhkedFlleUUo30NdlB22EiPB02sDlE5e4FnK0KvPg0aWR2kcvYCz0XkrSgYBc1FDLOiQMA9qzmV + sxNgQBEDrSgQcN/LfwyaGylU7vvORjnpGUOHerFON5XRmun5GB54HEd5My+FrlEPmeZ8I2LkAFG9mObx + AJBCdmM1DW/c+wSQwu8O8CSF0KjWmCZqZil0jXqMacJPQMFvhuDXuOfm06XhAfYnpOA3KvgcDn7z/6Sp + DoChVqkp+PzXDoAhGGhF7iy5sHmovVMHgBQqdR0FHq1Rg81hmmoYxJqxATXWc6kxB1X6YY+M9ITMDJrp + bZqhpNLM9i8Wf2Lb3g1pbK07+OH0AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACpSURBVFhH7ZLhCoQwDIP36Hu0vdl5DU7GbFx6KtyPfhBQ + 26aBWpIkEfhMYqh9YVRjtS+Maqz2hVGN1T6Z2RCqtULfZzC8M/0GMx2+d45QZCYMjFprzPCkvnwxIwMT + Qw1g6iG82i4ZKYCwcJYMjFcneDXAS5Lxhp+QzOoEDNQvTiMDg4ufkIG6BSfhZf4jwJ0T3A5gIstNjKMn + GPyENzyK4fWOSpIkcShlA/2ShGAugX0dAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= + + + + 648, 17 + + + 206, 17 + + + 17, 17 + + + 847, 17 + + + 1341, 17 + + + 1598, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 413, 272</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 413, 272</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 1064, 17 + + + + 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 + sQQvxQ+O+w0UG9zYwCvIHAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK5SURBVDhPfVJbSFRRFL13xqnMcfTOjHced5xH9lGSUVGQ + kRmFiUqkEFimTRlhiZVC2VhkgWbmA1LzUVIzSg+iHBs1SnEyK1EjP6JA+1A/+kmFPgI/QpjVOediZgxt + WGzO3Wuts8/elwsSCZwguRWbkicVSc4FxT6CLclT5JuH1HbJlOCh4wWpU5VSBPXlLmgr/dDXDkJX/QZC + WS/Cir1QJReCcJ4Trl6WLIVBIcWNh+fdg1T9GtZbb2GtHUD0zX5YKnohlb2E+VoPRJcX6pxGKMTYCaqR + pRzH84KlX8j3wFb/HjYitjUMwd4yCkfrRwZ74zAx88N0qRPGC08RkVUPPtLip1pqkB6+3yWL697B3jQC + BxUHAeUYL3ZAPPcIqxMLQLUcL9h8UkUfa5saMKO/EHdnBKWDU9jQMsy6s9YMQDz7ELoTreA1ko9bEbtn + 9s+ba8j7CYFmOzm7+r5ibv4XAoEAnB2fEF3lZzVTSSd0J+9DFbNzhgvfmx2gYgvpwnK9l+WM9g/48v0n + Ey7C+WQMUvkrxqED1eW2YlVcaoDTJB0N0Gmbr/YQdLP87cf8MjFFzoNRmK90wVxKOCRrnS0I3ZgW4NRb + 02boqkwlXhhdHQRebCvvRvfY9DKDbPcQjMXP2BDpJrRHGrHCFj/HhVjX+eieaVEsfAyxiIBmMqj06hf4 + PD3LDDKb5eHRWtTpNgiHGshP5fCxNeqPVbIO9KTwL0QyrIM3fDDnk3OeG/pTHna7evcZusYD1IBXmdb6 + DeflW3XH7/4X2uwmRGZUkdst/VRLDWgYVsZsnhALPIjKb4c2pxnC4YblyLrNckR6JZTi+nGiEWXpUuhD + 9FafJrWQtOlma6JGtF0tFWfWIWxHLvl5DF7C1cmS4JGo1BjalGvip0JtqQuhtpQFpWP7JB8mukktQaYs + Bsf9BvJ9y/Q7+ip/AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKfSURBVDhPfVNbSBRRGJ7ZdYVlL7qzs7tjro4mQUjkS0FU + YheMVCLqqcxbSaKJlVCWBiUUaeZCXnbd2lg1KB8yddOKNi95A7EL9LRSaiREKNRLj4vzdc7MrBeUPviY + M+f/vp///P85zCZIZwzWdk1axpwmszCsOUJI1nRPjv0HVtbE9+qyKiXjjZfg6ofBu8bAN47CcicIY1UP + dEcvS0TTR7WKZRV2jX17yFzqR/z9EYgPxpDoGkFCwxCcd4OIv/0G8bUDcFzvgbHADY09ZYZ6FCsBaxIG + ufJOiC2TEJvGkNQ6iWTvNJJ9H2UmeabkZHE1fRCquhGT2wzW5BhU7cxx07Fq1Twui2XzJhSbJyBcewH7 + pWcwHKgA9TKsQQjQMmnZYtOELCp7PYMvi39R8iok/69lous97Befwlr8GKyB9CM69dBS5MyJjQq9HxYQ + wfiPP8jsnF6JUcbV9IIv8UPn3LvImA/nS9TsrAuShr2V6Z36rtoVhJeX0fFpAamuYTlOG2o954N+Z8Yy + Y84skGiDttwaWGHb5JxqXQ/PxKyiudkPa6GXJMiRGN2unEXag7jqXghkTJSe0a+qRYEkSeiemsWO2oCi + ufocXJ4H0dvSl5gomxigc6bjcVR2yXQPh1Qr8PnbL2TX9cudj8RtZZ2wnGoBaxYC8hj5onq5AhqgLPON + YP7nb5S7g7Cd96/sR8jluWE8qI6RgI2yOYeEK13KeM76wBU9hOWMm6wfbSAtPfZkA7lIwjtqjsChTUib + sVd0wHbhCbj8NnCnW9czl35bEHviHrT2lBDxrF5lFTxrdgRisislvrRdvihyIlIJl+smZ26GYV+xxBqs + PUS74TGtRQZrsHRot+6Z14vZYb2YFdYm7Z5j9WY/ie1XJBEwzD9i2NfQid+uMAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK7SURBVDhPfVNtSFNRGL53OmHsQ93mds3pnUkR/UiIojDF + SoxULOpXmh+VEFZYSWZqUIJRZgr5MZNmU4O0rJwzIVx+tKVk1p9CVMiPggi07E8/gpb36ZyzDY2sBx7O + fc/7PGfved8zbhUkcEpdiyw2cUaWnOuR7SEk33SP5f4DHa/W2+UphZLqYg+0lYPQ17ihr3Yh9IoTquIu + yPeelYimm2q9lmUYZIYNk5p8GyJuDEG86UZUzRAiqwZguupERMVTRJT3wljSBVWOBTJDzBT1eK0EvFro + 155qg1g/ArHWDXPDCKKbxhBtfcNobhxlh4WXdUMofoTgzDrwamO/z87tV6eX+swvmJiZV6FYNwzhwmMY + zrRDubMA1MvxSsFBy6Rli7XDyLCPI7dngon9NJPDSwankf7gLbnacxhO34Murxm8kvQjaOPuBf+do6qH + 4P6wCEmS4CJrUssY24tvfgkK19wii8PL7NAft0FuipvnNEnZEjWbrjlJw/rgnv3KxBQ/fy3hzuuPSLWN + spjmqIY2VHfMCsWmxCVOk5wj0QatudzL6J7+wsQr0fZqjq00x3SXnkCX20QOSJM4+Za0edqD8FI7BDIm + 1/t5Jqb49v0HSjvHkFDdx2Kaoxrh/ENosxoRtC5hgQsMEx10znQ8xsIODEx8hoeUbnW+w/qi+2xvc7mD + 9cU5/onFYSfaEHqoHrxGcLAx6o9UsgpoIq6sE9uK26HPb2UxJf3eV2FH7Ll2FmuzLFDt8o2RgA8MMw0I + RR3e8Ry1Et7+J2npIQeryEMSnlGzH8aAyNgpQwH51ZN3oc2+BW1Gw5/MpGs9Qg5cR4AhZpJ4lp+yD3pe + Y3QEpxZK+vwW9lDYQYctxGwhd66DckeexCt1XUT7159pJRJ5ZWhrwNrtswox1aMQUzwB5q0zvEJjI7l4 + r8QPjvsNWSfc2bvcdIgAAAAASUVORK5CYII= + + + + 1871, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 407, 189</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 407, 189</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 1341, 17 + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + 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 + ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + AAABAAkAAAAAAAEAIADYlgAAlgAAAICAAAABACAAKAgBAG6XAABgYAAAAQAgAKiUAACWnwEASEgAAAEA + IACIVAAAPjQCAEBAAAABACAAKEIAAMaIAgAwMAAAAQAgAKglAADuygIAICAAAAEAIACoEAAAlvACABgY + AAABACAAiAkAAD4BAwAQEAAAAQAgAGgEAADGCgMAiVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABc + cqhmAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOy96ZscR3rY+YvMuqur7wNoAI37JEESJEGO + OAc5XA3HmpW9a413189+sL3P4/07/Pg/8Pf1F8vrx7ZsaTSSPFppDs4MQBIEQZAEQBxEo4HG0Wj0VdV1 + V1Zmxn6IvCurT5AoUP2Shc6MjCsj473fiIAd2IEd2IEd2IEd2IEd2IEd2IEd2IEd2IEd2IEd2IEd2IEd + 2IEd2IEd2IEd2IEd2IEd2IEd2IEd2IEdeH5BPOsOREDQe33agR34OkA6v2cKvYBsmvNXRP7S5X4HduB5 + hCiyy8hf+xvsiwfPErlE4KdFfjtIvwPfZpAohA/+JM9AKkh8k41FwEX8BKADqcC1+2wHduDbBi6yW4AJ + GIFr99k3Bs+KALicPoFC/Kzzy+ATgqhqsAM78DxDUNR3Eb8JNJwfTrqb5xuBZ0EAgrp+AoX4/cAgUADy + QBJfEgiW2YEdeB4hqO9bQBuoARWg5DyznWeg5vs3Igk8KwKg4Yv9OWBISvnxM+jLDuzAMwUhxJsozt92 + /rr2gW8lAQhycp2wBLAlkHIz4yTd/+OfeXV2NKL+itjbjvqi6XH5ggMRzdctLbawkyA6nonIbbiQEDtC + VY9AP1BFSQQ6vhrwjUgBvWADyKDEfgCq1Spmu735Gjc0XOEMIUQXqgLRlUB0lo/vRwTR1i+xXoUx7Ytw + vUJEGorpgwinC9GZb9uwKWK8xSa+hja9GrZRl9xE+UQiQV+h4N7mUTjg2r00/gHZAFwikHYfbhr5hVAD + v+bYd+HuwuWSjvclVI0MF3WaiXJaKcPcVMqI+yJImIKiwIZxzxU3wjFSHdJEMFvcYEih3tNFfAlCbKoj + 3XoW6MgadT0l4tBBDoNtbrEN77OIwEfdSh1CbIgQmKYZvE3jI38QN76VKoALUf//5vvhIf5a47Qe4vvZ + gogfW2WEHnilRRifO76cDF8H2+zILIhMaDrwMx7Fgu8pOvM4REEiUDivKpbbJALrlQqNQxxx2CZReNrE + IKgubVUq2AwhcCDI+b/xSNhnGQcA6mWD1v4NlNge4otoviDyS+lcx2n1MsKFZVCgjikTLe+W8hFO4V7k + 1SP2hdhq1xwt2VnEJQrCaV0KjwhsThrZHHSr1uvfUyQKXYnBM5IKNkEINo8DTxGedSDQxt18TxvxY648 + 5JfhnMLlzB7HDD6MlIl9k0CZoLrg/BtXRDqVCSJEI1KdX29cu35taiIK5zWkQwScV5AyHhm/Juj+vsQQ + xG1wcgIIvM26vkZCEMSBb5wIPGsJACIv3m1yiE0ivjvw4XrDyCsD6Z5+Lx10CakJ0uei0W5EOTYBW0FQ + pN8Ep42SiI6+e/ki6kJHR6KVSoeIKbISlEDE1ykKxECcjBUL20DgjjfaplSwnToEDhHpLPdMEN+FXiAA + XcH9gN1HpxOhgXURP5wSJB4+4gcJiSs+h0X9qEwRFKlF6N7j4jLirgsSii2AJ+xHbRoB+0QIPFrkSgLC + 8wb4tGCrndkCZ4xWsW6hzRGDbrRwK0TFV/widWzivUPSQI9A7xCA4EAKgZTxorGTueMyagSK5ZoyfpLJ + AKsIxhW4XFE6ZUPif7QmETfdohaFYL994Z6o4S442zwBcX3EjG0nUIVqE0XMHDuAlMIzBG5LE+hWcLMI + 4hbbTHubIAad/HdziBxLCJ4C8XtW0DsEwAFX3F93kEK41MH7OrN3fCNntnuI0JnZ09FdzhhUGwJ2gbg+ + BTsS3ycZuQsSHhdRA9OtS90bgSBhUJqAQDpEQESIwPaoQAxs0dAXLbVmiU0Qg3Wlgq0QgqehWjwj6BkC + EC9Yd8npZRZrlHPQN+6bRBBa3bl2AImMxTblRouK94SufSVBBEX/biJ5tD+hnvtXAVkhYodYp166PZa+ + J8BBftcoqPKHteenPq23QBQ2LB1sgRj8QyYEPUMANgSeYr4dxA9lU5PdIwS+JCADz5WuHJ0unazfk9Zj + cgpc9SJQV9CksAZ0FzKcdmXk5eKwJTJQMkAEpPPXNQpG4wM2Kg9sa9o/DS7erc4dQtAVem/NvRCdv8Az + KQS/+vWv+dUvf4kQgv/3P/0nvFBYx7DlcurwL1A/gTQhHNXYT/PwSfhqs0T6+dy8CPWfEI7YHteu8Ovx + 6nekDCm9+p3Oeb9avc707du4BCPu59YvnXeQAq7fuM6lTz+lVq+H+xOo2y/nvrf6KwNj0v1duv/W6+ea + v/XmwAba7FrvJuva7HtH69j0+z5D6H0JIEBFXeq6UizyySef8OprrzI/P49ptvlv/+2/U6mU+ad/8lPO + n/s9pdVV9k/tZ25ujvd+/B6LCwtcv36DV8+cwTRN9GSSw4cOhm0Jkk4JwEEsVy/37AIBI16ptMq53/+e + sbExjhw5wuPH8xhGi0w6w/jEOKZlYVsW1659SSaTZs+ePei6zp07d3jhhRdYXl7BaDVZWVnhvR//WLVk + S2wpuXXrBrOz93nh1ClarRZ37t7lxPHj1CoVGq0Wy0tL/Oi99wB4NDfHr99/nxdOnuTSpUuYpsn/9O67 + XLp8mVq1yhtnz/LFlSuslsuMjo5SWinyyqtnqNdqTE9Pc/TIUab270cIN2rw6dgDojXE8sVoO9vx2cfV + uwVjpMfNt2jk6+L26ynoLQkgbInDRzc1mIrTKvi///W/5t//P/8ehKBlGOzatQtN1/n00iWmp6f5l//i + X3Lh44959913ufDRR/z8L3/OyMgIP//rv+LY8WMK+UOt+QK79HT7oBgvHb1ehkgBwPvvv88/+kd/RLFY + JJFMcu3La8zNzXHw8CE+/vgily5dYmlpiV27Jti7bx9P5p/wm/ffZ3BwkN+8/z5zc4/Yt28fhmkyPz/P + Z59/TrFUZP7JE65cucqP33sPhOD6jRu894d/yKeffsr8wgKTu3eDEMzPz3Pl6lUKfX0c2H8APZHg5MmT + mJbFo7k5pm/fJpVKcfHiRR48eMCPf/Qjbt64wRtvvsG1K1f4/blzDAwO8vtz5wLvHx2BpwcReaRLpq1z + y9h6t1CXV882+tFrHD8KvSMBdCC/k+QMXnAINU2j0F/gre99j3/37/4d7/3oRzx69IgTJ05QKZfpK/Qj + NMHw8DCpZBLTshgYHOSll17CtCwMQy04SiWTnbZ4b/I77QaNe57RLNx1IQRG26DZbGKaJmbbZHV1lVwu + h2Vb6JrOyOgo92ZmsC0LIaC/r49jx44hpaS0ukqhv59UMomeSDA4OEhCTyCEIJ3JYNk2K8UilmVh2TaG + YSCEIF8okEyl0HSdgf5+kskkmqYIZSaTIZfJIIGRkREOHjxIrVqlUqshhWBgcJCErmPZknw+z9HDh7Es + i8CQKzXBu4+ZxF/DAh819tEMgRzbdStuRyLYbtkelAb0b7g9l6hqqF1/Mqj10EP/5t/8m38qAaPVBHzk + 76TmEikl4+PjHD18mHw+xxtn32D2/izJRJLdk5NMjI0xuWcSAUzumSSVSPLiS6e5cOEjXnzhBer1Oo1G + g/5CARfp1YLC8ETzVEicvniIIEMqwf59U1y8eJHdk5Nk0mmOHj3C5J492KZFs9Hg4KGDTO7eTbFUolyp + UCgUePHF01y9eoUjR45Q6O9naGiIRCLBxMQEI8PDJBI6yVSKg/v38+nlyxw9coTdk5NcvnSJs2fPUigU + FKFIJhkbHWVkZIRkMsnCwgJ79uzx6hsfH8eWkkePHnH8xAlSySTDIyPoQjA8MkIimeDo4cNcvXaN/VP7 + 6R/oV+8mAhwMReQ6v+bXo+OuKR1ssY2O+rZYx7bKBsqlMxkA/u2//bc/Q+0KVEZtEfaN7g34TcsmLvK7 + G4EMAnuBg5Zl/SlAeXU1lut74xEZlpCFwC23nggbsPqjmDpSKsIibaV6uAFBAte4g4cYnW/lJ4pAi+Vy + mfPnz/PHP/kJpm3zm1//Gikl77zzQ9LpVNcBiqs3Pi3srhORv93LxYOH+EKE3tutUYhtRrFtkwN2Lb2F + ejtKbCHMeDtt9/erPXCEEP8CuAs8RBGCBt8gEeg9AlAuxyN+18tuiB8p4KbIYLrj05dgO2KAlLZC/gBu + edZhl+8LuiJUtwF1CUOsbhpzvd6HEcF/QosPNtafLpX5dpYYItBVFXBgU7N1u5tvPKU6nxUhKPQIAegt + IyBrcP3AUDx+8oSPL37M1WvXfE7tPG8ZBkuLizx69NDLPz//hHbb5NPLl/ns8mXu3buHi/zSk/8dCcC7 + lR4hePx43mlHue1ksE9OHjfwJ9rXyJv4xSAUwQiwuLDgZJKhfC4sLS2Gx0jC4tJSpCFVatlJd+soV6vc + vXePlWKRpeXlzs650Y/ukmjpBkT5dpF222QtCIrupVIJwzBYXFjw3yuUWREX0zQ9wrcQk09K2fGOa6kI + i0tLmxLPt6sahNSC5xB6jAB0GgKjXF8C53//ewyjzWqpyH/9sz+jVq1hS0m1VsU021RrVf7u7/8egOXl + ZX7z619TrVa48NEFBoeH+Oijj7h69QpIyepq2eP+pdUSjUYds92m2WpimhaNZpNypUKj0aBcLmNbFo16 + HctS+zeulsvUalUkkmqlCgEfPxIMw6BarSKlVHWtrgJQb6idoFutFisOQl66dAkhJfV6HSEltVottAry + 8uXPAKjV1Puulst8dvkyAM1mC8tSm8rW6w3+y3/9Lz7RAs797ndkMxkazQaffa7qabZamE6Zaq1Gva7e + 3Wy3sYFms0mlUqFWr2MYLf7qr/4K27aVsdMxGDYaDUqlktcvF768do3VUolavc7FTz6hWql4/atUKhit + Fq1mk7/42c+wLYtbt27xP37xixAitU2TUqnEJ598ovpYrTrvV/fGzrYsjFZL9VlKPv7Y2Vt2q4jsJWyB + iPS4xT8OescLEOKRa10qkf/KlS+wLYvXz57lL372F/wf/9v/zs/+8i955wdvc/36DYQQ/Ob992k0Gly9 + epU/+qM/YmVlhVu3bmEYbYaHhvn5z3/O4NAQtVqNfD5PtVrl6pWr/LN/9s+Ynr7NSy+9zLVrV1leWeHe + 3RlaLYP9+6coFosUi0XefucdfvPrXzMwMMgP3/0h0zN3ePmll7z+NltNfv6Xf8nExAQHDh7kt++/z/j4 + OKl0mlKxyE9+8hM+/OADsrkcQ4ODaJrG7373O06+8AKfff45ffk89Xqdt/7gD9SrC8H58+c5ceIEH330 + ESMjIxSLRe4/eMDc4znK5Qrv/vAdLl26xLFjx12hHmlbNFstbCmZuTODJjQezs3x8MEDqrUqZ8++wQfn + zzM4MMDRY8eYmZlhfGKCVrPJ9PQ0A4NDvPDCC1RrVe7du8fs/fuUy2V+9KMf8R/+w39gat8+RYCrVf7J + P/7H5PN5z15w48YNlpeXuXHzJjMzM7zy8suqv3Nz/OAHP6BaqbBaLjP/5AkjIyPee5rtNn/+53/O2NgY + mqZx/vx5MpkMK8UimXSaF0+f5qMPP+Sll17i5q1bNBsNfvjuu2idLhpn2qwvTXsW+y2UdctLt1wPWvzj + oIcIQECVjUF84en66qP8r//kfyGXz/Mf/+OfMjIyoqQD23byKCv97N17/Kv/619RrVSQwJ49ezh54gSP + Hjxk164Jbk9Pc+L4CUyzTalY5Kd/8lPqtbrHvS3TROn9qt1333mH93/3W3K5HNlsFmnb9Pf3s1Jcodlo + 8PLp0w7HVsa00kqRo0eP8uqZM6yWyxw6dIipqSlazSYD/f1UymU0TaPdblOt1SgWizQzGUaGh3n06CFT + +6acPiiolMu0mk2Gh4ewbZszZ86wvLLC3bt3SaZS5DIZrl65SrlcplQqMXP3LnOPHjEwOMjY6ChjIyPc + nZlBCMHsvXtomkY2naHdNhgaHKS0uko6naZeq3F/dpa3v/99lldWKBaLpJNJRkfHuDd7D4Egn8+zWipx + 8OBBXjp9mvknTwBYXV2lL59HaJoy+GgaoyMjvHH2LAsLCzx69IgffP/7fPbZZ/QXCkxMTPC736oxffjg + ATN37nD9xg3279/P/qkpXnvtNX77u99x/8ED9u7di7RtXnvtNT788EM0XVfqnJTkcjlWSyU0XV/bCLoG + YvpzLabsBhA6ZOPZgsvwWUDPqAByTQFABgZUGar++q//mp/97C/Ys2cPBw4c5C/+4s+Ze/zYWUmoEPD0 + S6f5z//5PzM9PY2UknQ6zd49ezn90ml++atfcfLESQBsW/LKy6/wN3/zN3xx5Qr5vjy3p6e5+uWXqk1X + shOCl0+/pBC2WkUTgnqjQSqVotVqcfGTT/ywXGDXxDhzc3P83d/9HaViEc0xJmqahhCCVqtFq90moeu0 + DYPhkRHeeustPvzwQw4dPBQJK4XBwUG+853vcOHCBfKFPj65dIlqrcbx48exTZN6o8GpU6f44z/+n9m7 + dy8HDx7ke9//PqdPn0ZomjLoaRqapnHs6FEsy6TRaJBKJKk16mTSaQyjxcTuXaRSKQzDoF6rkc1kaLVa + VCoVDh08hGWZ1KpVCoWC9y66G6jl9FdzCYAzRr8/d47hoSFeeuklzp07x7Vr1wClDrz33nv8+Mc/5uDB + gxw+fJh//Md/zIunTvF4fp6LFy+iCcHxo0fRHKmiL59neWWF0y++yMmTJ7Ftm1qtRl9fX6cEEIU1nq9Z + cgPifaxdosdVgp7xAphm+08BapVqR3AOEAgKCnjrpavhgmXZaJoIR/G5bj3hW/tdF590DF+mZSlxVUps + 2+Jv/7+/4+233yabyaAndITQnG+vOQis6nVdZa6pLG7iuXqhtG0PAUPPANu20TWHDkfqkLaNpgVotGeF + d3iN0w/3XYXWhZ4HHQ2BGxko7xr9LFty8cIFTr34IkODg7hGQF1XISNC08D229ro+QLBtmzb5tKnn3Lo + 0CFGhofXRBJp26FyWsw7eoZgdyziO7ChfnrZn1b5LuXcbcGftRegp1QAiHHhSZyFNHgGMe9fD6fV5JK2 + v6+fu/JO4bmNkI6rD9fSb3tL36VtK5QSgu9+97tk0mmEpiniodkotLGROCvlPMQP9NYlPIHAGRunz0Lz + +glhl6CmhXegDYqQQtNCM0BE2nAj9QDQ1tjUKyDb+suKRRh5HYKmCZsTJ08yODDg1CcQmr9ZiHodEXId + bkTcDbalaRovvvgiqWQylB5XOkjU4pA/WnegV+H6tqDPh+rYpF7/vNgDeooAeEgkgwOPz7m9fAHi4OV3 + EVs6zNElAup5GPmd6yDBcK4LhQKuSxCBosMCbBHg+oHTQ1xi0DEJpQwgqIyEFPucKrhNt3pGaOZ2IIhn + JPFtHf7D6OpCv49+HucytLuR/x6apjE8POwONIFtA1QuKT0ZzFs05He2s/Eukz+Xzcb0s6ObkQzbROIt + 1hEiAltpv4ftAT1kAwggqONGk2669BHXtiU3btzkv//5n1OulDl37jxG26BUWuX69ev8j//xN3z88UVs + W/LVrZv89V/9NeVymY8ufIRhtJG2jW3b2LbDw6VzLYTXnis1SFs6bao8tm1j2Ra25dRhOfe2xPLqtZ18 + NrZl8eWXXyKd/DKSR9o2tvNOwX7ZTj9M0+Q3v/mN8oUvLnL+g/NcvXKVttHmwoULXLzwMYZhcOvWTc6f + P8/S0pISECI/NYV96UMQeI47UTt3YXLzBYIj/LpcNSrw7WIhaMfYIAiC/Vqjzk3W11HHJspvtWyofA/a + A3pGAnC5usd5AaTtpAU5PXz11S0O7D/AnTsztFotNE3HtixqtSqXP/uc//Of/3OQkjt3Zpia2sf9+7O0 + DQNd12k0G/zyl78ik8nw6quvslJcYXh4mJXlZeafLFApl3njjTdYKRaZvXePE8ePM7lnj1IjhGD2/n0K + hQJmu42Uksdzj2k0G7z2+ut8dvkyUkIul6VSqarFR+02lWqFzz//gkJ/gWNHj/Ll9es06g1eeeUVCoU+ + ms0mn16+zNDQECdOnCCRSCCAG9evU6/XsG2bL774gh/+8If8+le/Yu++vZw8cYLl5WUez80xN/eYt99+ + m/d/+1ve/eEP/UF1JXTp80JfQuiyy3FAMpDBfIHxd6V/t7wQIvBgDQgiwHa4eLS+rXDzTZb/tqoEPSQB + uNzXNdL5P9vhxrZUnPLdd9/Fti0ezz9mZHSUjy58RL3RYKVY5OjRIxw4cABp23z/+9/HsmyeLCwwPDLC + pU8vsbKywtLyMkNDQ1RrNRYXFqlWaywtLXHnzh2GhoaQUnLu3DkGBgY498EHiltLiW3ZjI6McvnyZ3z+ + +RdYlsnMvbsAXP70Mo/n53nzzTe4e+8efYU+LNPk4aM5Pv30MmfOnKHRaLCwsEh5tcypUye5efMGlm2T + SqU4+/pZlpeW+Oijj9SqP8vi+IkTZHN5bMsimUwibZtkOk02mwMpmbl7l4ldu8hkM0ipxHclVdjOWEl/ + 3CI/gvch3SD6c79JQDIL1oP0J7Rjw9gQn9ukZPC0JIKnKg18C6IGe0sC8CYnuLQ2JBk4kzCdznDs2DFK + Fz/hzp1p0uk05h7/TEFX389k0hw5cpjPP/uce/fukUqlmJqa4p23f8AHH37ouO+alIpFQPD6a69imhYX + P/6Yvr4+Dh0+jG1bntdAAOlMGsMw0HWNZDLN4OAQU/umaLSaFEslbNtW7kUp+fSzy0rFkDbNVpNms0m7 + 3VYrwYTAtCxM06RRr3P16lVOnjzJwOAglml6Mfm2bWNZFulMhnqjQbPZpNlo8Only3z3rbeUa0xCvVFH + 1zVs23a4s/A4js99fGlAioj9IHpEWIBdumqE9OwObjHh5fVNkL49I/R91/r42+HE26hnO9JAR9mtSiHP + GHqIADiLcGyfHwXtAuCv0AOYvjPDW2/9Abenp1leXmFgYIAD+/eza2ICKf3DVe/du8frZ89y9+5disUi + w0NDXP/yOlNTU5w6dZJz586TSOhM7pmkUqmyuDTPm9/5Ds1mky+++IJjx47gyLnYjt58+sUXSCQSDA4N + Mj46yr3Ze7zyyhmstolt2wjgydIir7z8CsvLy+zZM8n169cZGBhkdHQUISCh6YyPj2NZNql0mtdfP4sQ + YJmWb+RHsGdyEtO0OOqoDidPnKBULJJMJPjk0iUOHTzIgf37uXH9Bi+/9DKWrd5dOLED7maf/hLfINL6 + aa6VPwhRRA9NXilRfg7XUyE8PIhjcMGkdY18Tv1rwbqEYKvEZKtlN0kEegW+6b4IusQB1Gq1PwWo16pd + rfzeX4QvGai7DoOU/y0C1yIsUQiIzxcp89nly1iOP3pifII9e/YQnDYy9OHDZxrIyJwOaOOAUDpYB+IF + N+IgFHPgRti5bjs3QMmtxg3Eib320lzkjz5zaukgFOF0L9jH+6vFt7MObAhdNohUXXNttfwm9PRQzg2W + y/f1AezEAfgQFfXxBrMD+QPjEjoyzEVqAojmGKncel2B2HffETZuueWFP/pnXn01rIp4ffV64TeG3we3 + smB/bRksIbG9l41CYOch4S7NBeHt2uMjWlC3XJcIdL0OE4VOqcGJtXC2EBdCYDuxCja2ImWBPoWCjLrA + pqSCDUgE25UGnopK0GNGvvWghwhAlJPKMMd2xHAp1VLXhw8fks1kOXL0KJrmyp7+6jvDMBgfnwBNsLS4 + xODgILdu3QRgoH+AyT17CEoS7md09WYC3HpxaYnR0RFFYFwfvpSdcyQw4YWT5+Gjh/T391MoFCiXy/Tl + 8+i6Hn5X6ZAfrz6ncXevflsFIblZPGLlIWv4r0sUPBtAELk3cK0Jty/qr9e2d7ioH9KMu/5CA9D8/gXr + 2K5uHxzbNerqWscmiEhH+a0QkOeICPSMF8C3UjnbU6upjHDFS+GHnl785BPabZNKtcov/vYXNJpNEIJG + s4ktJfVGgw8+/BChCUqlEh9fvEi9UefKlasMDA7w+ZUvmJ6eRghBvVFHOPvoVes12u02tm2rv1L9rdcU + QanV60iplqFKVGRarVajZbQQmqDZbPhRcgLaZpurV66SSaep1+vcvn2blmFgmiYSME2LtmlSazRc+R2j + 3cbluY1GHaPVCg5QSFJxBgRkeA2/lEqysKX04gws6cczWNKOvw7GMHj3vhfGtdO4/6kYiIDHQdr4OxlE + COMGf/7mK11gg3VstWxs+a2UWy9/j0DvSAA+A/S4GYAba+b+FY7O+dXtrzBNk5dffplf/v3f80c/+Qm/ + +tWveOONN7hz5w6a0Pjk4ic0W01u3/6Kt9/+AeVKmfv3H2DbNkNDQ/z2d7+lv7+fZqNBNpej2VB53/vx + j7k/e5+jR49ye/o2pWKRx/PzGM7uw5VyhXJ5lVdfe41PLl6kUCjw2muv8WhujqNHj6qJICWtVgs9oXFv + dhbDaDH36BFHDh/m7t27HDp0iLszM8zPP2H/gf2sLC8zNTXF8soytVqdUydPcu3aNfJ9fZw8eZKErnsc + tWP6uBNKeP94ekw0r78mwpFitPA4K/uHi4g41z7XF0LiqiQqjFmq6EAnOtI7/IQu1sCNToeApPWsym+l + 7FbLPSvoGQnAMWmhCTWx1O62apGNhkAXmr/yTNd47w//kJ/+yZ9w7cpVNF1HExoCga5p6JqGpmvMzT3i + nXfe4YUXXkAXGrt37+bw4cNIKZmYGOfhw4e0Gk1s22Z5aYm33voD9h84oOrSFDLouq5+msabb7zJ4sIC + ErX8VAhBob+farWKaZqcPH7ca19PJBgeHmZsdIzy6iqvvPwKhw8dQtd1ErquLKGJBENDg5w4dgxN11lY + WEATglw2i9CEIk71OpZphvqhxf10Dc1dsOSMnybwOKrHfNz/nGeO6OD9DXpc1M8OXQe5ve39VVGNLmEJ + EvL1fuvOC7f/W6xro2Xjym+17EbK9Qr0jAQgNDUZg2KUR00d8dgNUtOExm9++1syqRS7J3czOjbGr371 + S5aWFhGa5iHLsRMn+Nu//VsePnyIpmvksln27dlD+eRJPr54kePOttzSlJw+fZrz588zc2eGs6+/ztzc + HLqmoxABcp4AACAASURBVGkaCae+hK5x/MQJ7t5VEYjJRALT8evblsXNWzc59cILqpNOXxO6zv79+7n8 + 6aeUVlc5cfIkKysrJFNJ9ISuYgCuXSOfy7Fv314ePHiIabZJJVOYpukF+bir8XwIex6iaSLmyr0VMQki + nKLqksEHjmTgmTQVgbRt0LRIoJGzbsK12awl0nf2vFtG8c0bArdT9jmxA3zTxEjQxQ3YbDb+FKBRq4es + 5m6x4LSLWtZx9FxXnHWyOCKpct95urMMlHT0YqFpIMFG8sH587x+9iypZDJ+9ZkXORdoS9qejcJPkx3l + vGWtTp+QahuwV19/TZnPBB7CKIeCo08LjQ2gSGC0Qs12Pl/jq4eRVXTmFb5HAlxJTaBpOponoehq34Go + brwBhNjQW65Tz5pPt9OHrZTtUiaXzwOw4wZ0IOiL9qLY3ISA+06lOfeuh0AIdBf/pFrYIzynu64Mds4z + 37aAg1uaV04TGm+//XZ41KXspO7Rjyp0p05XuQ5kJbx/AYAW0LzefPPNyFfu/s39rcq/eQgTBt9e4PlM + FbX1TIAi8DdQiVN8C5b8aD1breNrliSeN0mgtwiAowIE3Vzecyc1PLjguuuCBMMt69rNNVfFDUxAh4Hh + o7fm5A7osA7BiPB7t2CAmDiI6Ub9OGKK8P4NFKXzVsTceXmCSL8W6/ZoT6CRNY1wMvayM88GyI1v+Pcp + q0ckYuBpEIIN1rFDBNaGniEAgK/rezdBq5KfOjMzw+3bt/ned7/LjZs3OfPKK2gdOrJb1EfDi598wokT + x1leXmF+fp5CoeDr7A436+BYMoTC/od11Y2AdOKu5e/ov1vQoyx05ohuBODWLdZAhQDN8GlPDNIFJl+c + laA7jnc+WPPAUOmdzey1tSb52A4SB+vYIQJbhp4hALGiIp0ICCq+f//UPh7OzWG2lYUcIbj48cc0Wy3e + fPNNvvjiC1pGi/HRMSZ27eLSpUvcv3+f48ePYxgGX331FT/6wz/0pNewJSwgygcmu+8qC6QJHwtFADdc + O0HgMQ5Gq+dB2uZQDYmr7vhp0RHybAtCdNJI4hA9+A4SsQYd2QjIGNdiXC2iO//vhO2I9Bss/9SJwAbg + eSACPeMG9CDCXeIsyG+99RbSliwtLjIyNsrnV64w//gx92ZnEUJw+bPLzMzM8P3vfo/b09N89NGHvPPO + O4yPj9NutymtrjI1tc+LBvSQiSD3DqS7z4SmjH3BtMBUD8WBBC8cySak0sRghwaO667b2HTWo9KCMnik + /Whq5J1CXezSbBS81lw1y5XQYirYcL0bCJDZkDSx2bIbiFWIzbHBGIeOXD0UBAQ9RQA6p4pimp0UM5PJ + cODQIRLJJA9mZ6mUywghGB0d5dChQ+zatVsd/ClA03USeoJWq4lptlVawDIdbDUYTxPiqCFJIGroC4u9 + HqcPvo0vZuCX8vN2vLn/MNyxqFDgZ/Ali8AvDMpIh7MmIvga8WU2wKncOnyjTdcJvilCsNbj9cpuwOW4 + 2Ta7lv0WEIGeUQEUxGioEbHJvXr48CGvvfoq9+/PUiqWmNi1i8XFRe7du8fZs2cx22p/gGNHj7Jv714u + Xb7MgQMHyWdz7N2zxwm5deuUQbzthJAaEHkU+woOwgcQt0OQXcOi7xnyIuU73aPEjo1w7Blx/Y1CyKwa + NVkIN8TYzRzurUSiuRaQYEMBiaqzvQ30ax3bwLpi+Rqi9lNXB7YTY9AD8E2TIkGXOIC20VLLgRuNNf3G + oZTIc+VBiJ/Q6rYLVnR8nWCsQPd0L5DOyxfT30hFQRW+M2+8gt6J+GEEjxuvNUeuy0wMmitihyjYP89t + q9Zp6Lry/+u6igfQNB0/CjF+mm03ZHY75Z9F2WC5XC4HsBMHEIUNI39U531qyB9F6pgbGUHgGOSXMWW7 + IX+3CdV1ogVUEuFnjrbW0e3w8/i7DknDacvV+QOdC+lMnV319IKu8Czj/bcTs/9tWifQQzaAIOKtjfzF + 4gqmc1Jt21RGvaeH/HEfKIBSUclequOwgtBsNnn48CGVShmQFItF5p88YWVlBVCn4fivGm5vdXVVrTYM + IrRt02o28eMXAoK0o9dLXD3evep8A3cVH8FfR3YZeux00v+5eURgLwEpYySajXsBNnq4yNMuv512n0Wb + Xwf0DAHYKPKD5IsvrnhIZFnqtFrbluqUWieze1Jts9XEbKsjsEAhX6vVAgGWZdFsNQG1p148EYlyftGR + x91nANQJttev36BQKHD37j3KlQozMzMkE0kqlQp3795lZmZG4ZeUtB1bRLvd5tGjR7RaLaanp9XefoBp + mty4eZPllRWEENjSeU/cjTojYxfB7zVBRq670YRQGRkp54Y4Bye2CP3ZCDwrxHgW7fYSEeg5FSAKHeJq + SA0V1Gs17t69yycXL7J3315sW1KtVBgYGKDVamGaJqlUiocPH/K9732PL774gkw2w9nXz3Lu/DkGBwbZ + vXs39Uadw4cPRxoNcGEP+cPivNMTL/fs7CwnThxH1xNMTe0jk06DBNu2MFpN+goFqlV/AszMzHDkyBGm + p6c5efIESFhcWPA8IJoQ7N+/n/LqKm3TZHl5ieXlFTShViLGjUusJWAdYhCWfII+EOmkRCIi3ZDrYKkN + uPLWgmchlm+nbC+K9JuFniYA6yG/+1cItbT2zCtnMAyDP/uzPyOZSnof59Spkxhtg0wmQzqdplKp8Gju + EW1nb/9Gs+Ejf0zrayN/WD1Ip9O0WgaplBL9l5eXHe+YYP+BA6TTaZXmVDI5OcmD+/fVacMSpr/6iv0H + DnjGM3dlo7sDz0D/AI1Gk0zwZJ1uyB+r/69hFBCRhADGy85M4SyOEKD2a9hEEFAEdojANws9RwC62IvD + eQT87ne/I5vLcuzoMQSCgYEBPvjgA7LZLIePKGRWB4OiNtIUgkajgdE2SGg6w0NDpNNqi+90KsX169d5 + 4dQpH5PxL9dD/mazwdUrV0gkEhw7dowrX1whnUnTbDY5cOAA1WqV0dFRr1Sr1eL2V1+hJxIcOnSImzdv + 8tJLL3Fv5g5Gu83i4iKpPXtYWVlhYmICkB5ipTMZdo2Pk0wmY9Sl6MGpgbFzCWbM2WHuZh5xUYIh84lw + CEFUFfK/jJc3SASiOddDF9eu0A3WKr9e2bXKb5RoRctvpM312n5W0DNuQMNxA7YcXb1DjA1JqO5E85+F + /cudZdwJ3PkF4vV+jw6sg/z+bbTH8Z7fILfwcqxl94h17cVz96CbobtRVHYmxUDg+MNO373D8gV4x41r + uo6uJ5xNS9Q+CmqZdfx+ABtChC0SgfXKrll+q8uFNyEFSCDrSHDP2g3YM0ZAwBvEtXDUT1oH+aOwnsW/ + K/KHuhbfoY4mOxvzT9KJ5IhMHBkq2f0qhFKuhd7Rwb1tv8KVxXU0nC+QX8Zk8foerw0EMgQutfhMG+I8 + W4nq20DZNct/zVGBvQa9owLEUtCYtCB3Wwv5g5ddkD+q8oZ1324xa2v3M2b3gM5X8DJ3In93CL+bDF54 + YxLF3nin5rp8xaeA4U57BNrZGUj6G4ZE/QCe7SCoLkQDtzbQlY1G2n3TsKG+r1G2V6B3CIAD64n+Ltf8 + /e/PYZompmny7rvvkkgk4iqJPS4b4j5CnPwQJ/qHoVar89VXtwDYP7WfIfdo7WAtUlIpV0ilU8orQFgV + iAbSLC0uMjAwwPyTJ0rvT6cZGhqiWCoxOjxMrVFXxst6g5HRUcqrq0gpyfflkbakWq2STCZoNltIJNlM + hmwux9LiEolkAiFhcGgoFMkY2nClQ+h3M4ZHTYSuunD6p8EZuxCBdZFwHeLRtfxWiU6PEqu1oOcIQAhi + JW3J559/ztT+KQ7uP8Di0hL1Wo1r179EExq7d+/i0aNHHDp0iHK5zOHDR5i5c4fdk5N8/sXnJHSdV155 + ha++us3p0y92Cg0e949D/s4OLS0tMjw8wr59e1laWuLhwwfs3buXubk5stksKysrFAoFlpaW6O/vpy+f + Z7VcZnh4mFarpbYSdzbzTKfT9Pf3I6Xk8fxj9u3dC0KjUi57MQMSdUipu2U5gGVbIMFoGVRrVbURablM + f38/yWSSxaVFMtksqWSSwaFB7y38RTy+rCAi1/57RxDZSQo6DFUZlxiIzrIxCLJhTtqDRCC27HNGBHrK + BqCYTMB2LPyfDCDl4uIS42PjPHj0iMuXL7OwtMji4iLf+c53nDMDv8u1a1/y5MkCtm3zZHEBwzBIJBK8 + +OJpPv/iC06fPh1ow2037MeOR/7A5BYwNTWFdIhSy9nDf3V1lXK5TKlUQtd1kskk/f39DA4Ocv/BA9Lp + NI8ePqRWqzEyPEKtWmV8fJzVcplypeIRAYTGyvIyq6urah9Br32neTcKz0mrVis+vgm3z5JkIontBD2V + SiUq5Yr/Op7uH5CAIsKXyiIJKhQy8G02xeWF6PhtuHxM2Q3p3t3KrVd+vXLdym613DOAniEAvtraST2j + KSdOnODTTz9lz+QkBw8dolQqkcuqxRW2c7S2YRhouoZhGF7UoGEYGIZBMpGgZXQeuNG9RQdiPtz09G2G + h4d5+eWXWVlZYXJykps3bzIyMsLAwABjY2PMzs56W5qnUikGBwccEVyQSCRIplKeq7LZbJJOp0kmU9Tr + NYaGh7wYAMORAGq1GqlkCqEp12Y2m0UIwfDwCLlcjkq54nFi25aYlto0JZvNMjA4SH9/ITwXPWYt/fGP + 0cDUfZAsBFSZbnN6g8zwWYTl9kLbzxp6WwUg3iYwNTWFbdu8/9v3GRwY5MyZM8zemwXg5Zdf5uLFi3zn + O98hnU5z/fp1jhw+gtAElXKFu3dnePnlV5idneXQoUN+zRFDYCz3jxoLgUOHDjMzcxfbMjly5CiappHL + 5RgdHaXRaLCwsMDU1BTZbJbV1VX27dvH4uISw0NDmJaFpusMDg4CMDgwgNDUabu7d+9mZWWFcrnC4OAg + uq4zOjLC4uIi2VyWdCZD3lLrIdLpNFJKNE2Qz+ep1qokk0lq9RqaEKpeB9Mr5TIA+XweTXO2UfMkIPfF + HTEiZH8JjoYjdUiJd2IT7qGhkQ/4DSHI8x6Q86zgmyZfgi5xAK1W809B0mq2vMwdXNllNhFPQBTintUb + dRYXFti//0BczjUIgNdolFIEuuWnLS0tYZqmE8Djc4i4bcLDzXaQuoAWLUPNhkrKmDyethSpM9SH4KeX + AQIQ1wPnLmg0FM5eSIFzGFQcQMKLDVj3mK8YeFZLfL/ptjOZDMAzjwPoLQmg6+uGkX+t/N0IQzabjSB/ + XLtx3N/lLhvr8ujo6AYmQ5zaEa4vhPzdcm0A+bsRGBGtN7i816tEBq4jJQK2Pb9MjATwDcKOFLB56Bkb + wJo+8Q6mK5m9N8tXt7/a8AfvckpeZ90xDXdIA6G80TT/vtlssry8jGVZ0aZjG+2ub/tgWiaWaW2IN7hZ + zHabVquFYRi02ya2c8R4Z4FAqutyjej8EBjLDu4uneTnU6d+Xvu9HegdAuCAy3f8hMDEcwb55o2bLC0t + oWs6H3z4gbd+vtlqIm2lRlSrVaRUB3Ta0qbZanppzWYTiTIKVqqugbBFvdHwXGuGYdBqGVv+sI8ePWJl + ZQVd07h9+zaWpRDPtizn5GHnFF/LwnJP5HUIhWUq3d621Km8lukTkGaz6Rkw1SnDivtbtgUC57Re21tO + 7IwcpmVhmiZCQKPZRDqn+gJOX9zhtrEsS0Uu2rb3LezQ2mMvc0QIiPopvnl4XhHxWUFvqQAd0MmnJJLR + 0VGuXbvGvn37OPv6WS5cuMBbb73FxYsXeeHUC/z+3O8pFAr05fOsFIu89Qdvce7cOQr9BXLZHKXVEt/7 + 7ve4evUqiUSCkdERbt28yaFDh1leXuLVV1/l5s0bDA8Ps3fvvti+rMf9y5UKp06eREpJuVKm0WiysLAA + KDXBMAwAkskkpVKRRCJJOpXCtCySyaRHDIQmaNQb7J7c7RnckLC8vEwqnVLIb5kkEkksy8JdHWm02wwN + DoIQJBI6tq0+tZ5IYNXrShowTdWmaWJZFrlcjtVymYSuI4SGabYZGBhgtVJR3opkknQqHfkiIuZq+9z0 + WYnyz2o14rOCHiYAYcOXEL4O2mw2+elPf8ri4iLvv/8+uVwOiTq1FpyIvKEhNF0jmUzSbDbZt2+fY03X + SKWSNBp1QGKabRr1Ov39/Rw6dIh6vcbNW7c4cOAA/d56+0jPNvCNzcCmo81Gk+xkBl3XSOgJCoUCDx7c + RxMayUSCwcEhkokE9Xqder1KX18/OJb2/kK/w40lQg8OCPT19SFtm1JplXw+R7FYIpFIeAtNbFui6b4R + 0kVKXdNIZzKY1SqGYXguSNuWpFIpkkm1lFp33KjSliBlQKrw4yBi2f0OE35uoOdUALXFtr9VtvsL6qO2 + bfOLX/yCGzduMDIywvjEOB9//DErxRV3oRqAOnAzWE/A6d1qtZQbTtNpG4a3fPXw4cM8nnvMQH8/MzN3 + O/oXtAeE5r8M93lq3z6+unmTu3dnyOfztJpNxaVtm1arSSqVJp1Kke/ro1opUywWEULQ19ffwUnV+0vv + XRCQ0BOUV8vU6w10XadcrpBI6F6ZmA6H1Snnb8pxIdq2ciOqZ375RDKJpmvKzejF/ckYA2D0io5vuBm6 + EFd2o3Vs93ju9cquVX4jZXuJPvaOG9A5HbjlbNHV4faKCbG0HT86qB13tMAJvZ5l3EOGAAlxVVjbRtNE + KO3h3CNazSaHDx0ifMiVcxUhAHFWdrdNdwWgt5+A0yXbspibm2P37t0gBMWVFaSU9OXzZHM5vCPRo2MQ + tf5Ltw/OOUQxY7R5kTTScNxzgefic3cCDroBNV3zvkVUFdhUb7r0fUN1bHU58NMov4ExT++4ATshwOO8 + P2tORV335qsX1ILLLbvQtkCFmq75yO+sce3L59kzORl2ertFo50JBs900XmjyO+mjY2PkUgkkMDAwAC2 + tD39OqpLdvOIBJErrnWPcMZ2fiMQ/hZhaYLIOwu8sGqCfyM920w/uo0pGyBs69kgvs7yz5EhsmcIwGYp + csf820gbHZjUWYEbldclbscr6y9x7dJWjPvMBaFppNMZ70kylQxlDZboNi7+OYXRBcjdOHjwXbvVGizb + XbkXcYi9QXgeDWVx8G15jx6zAWxsQG/cvEnZ2Yr7woULXnqpVGJmZiamqqhHPYrAa7WrnjUadc+KD7C4 + uIht2xSdrb47yki1uadhtFktrcbnWePWhdVSyac+zp+yE87bESfg3cYE7azXUDeJaUN4LgL/bqrgM4Md + d6GCnpEA4iBWvwaqlQrm2BgA5dUylUqFy59dZshZYHPliyu89NJLnfVE6+/KvTvBsiwezz+mtFpk3959 + TE9PYxgG8/PzmJbadjyZTDIxMcHCwoK3B6C7ItCybRYXFpjYtYuVlWWSyRSgVuq5fv1CX4HSaom+fB+2 + bZNOp1Xgj23RqDdIZ9JUK1WarSaF/gK1ag1b2vTl+zxbRrVaBSCXz1Gv10FCIqFjmiaappPNZiJvFicZ + dCKHDKw6dHO4hlXfwKqeuKbCHSTrfeghCUB2wdQYEdoVvyResE8um1O6O4SQv1s13UXr7nf9/f1MjE9Q + KpUYHhxifGyc4eFhKpUKuyYmvNWGExMqz8DgAJZlkUmnWV0tUSwWPcmlWqlQr9UpVyo0my0veKler1Op + qsU8LjyZnyefz1NeLTM0NEQykXQClRThqNVrSMBoG+i6TiaToV6r0Tba9PXlabZa9PX1KUITuwwwNLpd + LmOIQjRfxCbwLZCQ14RvA4HrHQIQsS/JaGIAhkeGefjwIYZheAeAZLIZT5r3l/puvy9BSCaSynDnWuld + G5lQkXa2baFrOpZl0Wo1SSZTCKFW3i08WWD35CQPHj5koH/A872b7TbJRIK+vj5WikXyubxyS2oalm0j + hGBgcMhb0mxLFeknhCCRTJBOpUklU9iWjUAgpe38lJHTBdvx5Xd9R+H9E7h3skZ2L3KLdyUfgXHZgd6G + 3iEADnTYvmMIw8GDBxFC8PHHH/ODH/yAbDbLxPgEuWyOiYkJHtx/ECgTnelRi30Xa3vI9SdJObv1JJNJ + CoUCQ8MjNJtNb5IvLy9TKPSTSCZYXV2lL9+HaZoMDAwAMD4xzkB/P5O7d6PrOoODA/T393u/bDbL0OAg + fYUChUJBbfnVqJPNZsnlcui6ztCQIgTZbJZkUhGjltEimUwqgpNKIoRGq2XQV+gj7Ww/ls1maTRVvEAH + uIRMRtIC7x4V/b2/wcVD7nWIkHRS0m+D4ezbBD0TB9Bs1FUcgBMi231xkOwQR7svDe6y3LeLAbCbzSE6 + aaNLfJ88ecLY2Fg8x4u682LiBYL5QpKP9yf6fvGnF3euWHYNmA1MyyKdSpFKpbprWh0eu8hYeziuEF5z + lv3qegI9kfBiATRNnRgsolIFT5cAPI26ntUSYpc478QBbBa6yZ6xGTsv10yLSe/6BQIP3LX/G5oMMcE6 + 6+89F3U5BVh24NLfnSfsoswGTxHq3kigO9JrN+55+Db6MSS+YLmjAvQ69JQKsDYa+JaBhUXfHbe8shyD + eGHktyzLsY53ugM3cbvmg3q93pHmHkgaBNdw59fVTQWJNNiBgBHkjCCw9IKTor/oXaQvDtdfC/k7QLj1 + xekTXw/0iirxvNs5eooAKJAdHDGKtteuXqPeUAh36ZNL3l56tq2WwdbrDYx2m2qtphazSNtbfddsqFDj + dttwjHUKITsQcxPQbDa4fv16KM1otbh9+3YorW0YzNy5s4EaRZSGdcvl46bsSFGEIPBfh5VD4iG9uokh + C7GWPuGlx+0C1o1i9ArS7oAPz58KgHLzXb9+nf1T+5mYmODuzF1Wy6uUV8u8+OKLfPTRRxw/cZyFJwuk + 02mOHDnC/Pw892bvMdA/QL1RRxMaiYTO8vIyb7zxJktLS0xO7ulsrGusgKOtS8njx/OMBM4DkFLyZGGB + wYGBEENcWlqi3zEKuvm6oEp8oxtkrj73DpPOTvxbQ5/qmux0InAoiGcEfL6Z4T9I6EEJYA2QSuQaHR2l + XC5z69YtTp06xezsLLZle0t/Dxw8wIH9B9TGmLUqprPBhtk2OXT4EI16AyHU5qKDQ0OYZpvJPXv8Rui8 + 7OiIA0+ePME0DFbLZVYdH//S4iKmaVKpVimXlftueWUF0zSpVatUa7WADz2qTcvgjXMZJ45HOtfFrR9K + 7tAG1isQfRRVOzbK+3egV6FnCECcVbtTaPVhZGQEy9k848iRI5iWSbPZJJVKoWlKJTDNNpqmq78Ccrkc + X177klwu5wXDuEtcZ+/dW6O1SF8D2Xbt2sXRY8fVvv8DAyw8ecLY+DgHDx6kUCjQ7xwKMjw8zL6pKfr6 + +ujrywfq2qpYHCIXdN6s9xKRqtZAfJUlHOTTNWagW3M74n9PQs+4ARuOG9Boxe0KLH3G6Lrgurj+uh34 + GbwKHoMV5zbz7mRnWqCSaMbOGmL3+vPfxU0XIpxpI7sAh/J26Wa0hrVT4sHtWlBOcW0ueiJBLpfrOBlY + xOwI/LQJwNOq71m5EnvFDdgzEoCCrgr319fEJhFnA4V8iN0jr5Pmds6fNVlx5DZisd8AbKT38aE8Smpq + NtX+iu6iJLcHwnUHRNvb4f49Cz1kBNzuJFnfh7fZFja85DPOt7+R+gly9yhm+3W6ZMTj9nESQ0giodvN + uv1xS3SWErTNNuVyBU0IcrkctXody7JRAYbCdz86pb+uJbM7BOXpQQ8RgG7Q6bm//dVXzD+ZJ5lIous6 + Z8+eDeW5du0aL77wYpcavj4olkpI2449IXg9cNf3h5SJCKILlwhEkT8KIfYd5uWe2tGdYkSqErRaLaq1 + KlJCLpv1DIjZbJZiscj4+LhHhJRnQ4LwCcLz7iv/NkPvEIBYBh4/MWu1Gi++8CJDQ0P88pe/BODmzZsY + RpsTJ05Qq9Votprcmb5DLp/jwP793Lp5k5ZhcPToMZ48eUK9XuPAgQO0Wi2Wl1cYGxtzJite/P5aXY1O + 6WarRaVS8Y7/9qCDC3ZHNhdZZBjr44lA4F7Vuh6Zi1NHOvvj3rWaLer1Opaz1Vomk8E9K8BtUdM0DKPt + cXq1aahAComQ0jsdaIcI9C70DgFwINZVHQUBlz+7TKlY4syZM6ysrDA//4Th4WEv+ObG9Rvk+/I8fPCQ + sdFR8n19GMUS8/PzLC0teuG709PTTE5OMjNzhzNnXiVEerq54zsmtSSTTjM2Ouqt2uv6ArFeRl/cjyUC + oeIyytSdGkQ4z4bEnnCmRqOpvCeWiSY00uk0wfP+PK1EAk68v3cGgW1jCc3ZJ1CApQ4+1XW9Z4nAjirR + gwQgBDG44wrJr555lWwuy7lz5zj7+ln6B/qZnJyk3W5TrVZJJHTGRkdJJpNUq1VKpVV1YGezwdTUfgDu + 3r1LMpViZGTEiSK0kBJ0XVsbgdYwJMZZ/LvF74TSRZgIeK6BtcT9eEtd+FkXsEzL4/CmaYIEXddJJBOk + UqlYC344vFjdW6ZFsVTEtiXB8wLdcwTcv6lUikRi+9NtB2mfLvQ2AegCu3ftJpPNkElnOHXyFIlkguGh + YR7PP+bE8RNYtsX42Dh3790lk84wNjZGpVLFNNv0FwrYtmR1tcihQ4exLJNHjx4xNjbmxfP39fU5LW3O + kphIJunL52PzesgeMRiGiUDgJkgEvMcbFffDYJkWjWYDyzk63bZsp78JNKGRzWQ7EN5bEOS489w9ENzw + Yiw/r2laWJZNJpP2uqvCLAS6rjtLmxuBg0sCTkXnWtM0j0j0mqTwbYbeiQOo18LLgaHDsi4JBJ/F6Arx + YnunSB+/UW6krThOE8ONRaSycJXx+nV8/rAY4RnrYsQHGZcRtZ7BPQrNtvwjvhCQSChk13UdofkcPLq5 + aXSps6eSOETBdtYNuM2226Y6WsyWFAIHqei6TspZfuxuG74WYkspabfb3jmKbt5gjOdoewAAIABJREFU + Gc2RLFSw1/Y92M8ylqBX4gB6VALo9t5x5rcYsTiu+JpD2fkw1oXlSeUb/C5rcvuNLvENEz3TMmk2mupc + QClpm21sWyGnrmseB3URsLNPne8oAiK9y+HdJcge4junAtkhKivQdB2j0SCRSIakBfeMwXbghCTXKBgF + dxySyWRoK7Toc4B2u029XvcIU1SicPcoSKfTsXXtQBh6kACsj1yVcoWVlRU0XWN4aJh8PrehorZt0WoZ + ZLOZLYuZHQuKnYlo2TamaXpI12w2yaQzRL39qh8KOZLOuQA++Hq/abZJ6ImgfZBKucLy8hKapnvGOYGP + AJYJRkutctQTundUGvjI7msYAb0e20FakLb0Di5VzF5iS2XkC7r2QJ3FoGkatpTouk6z1UJKm3bb9Np0 + bQCuBNDVthAZ025/4whzsE/utXve4dmzZ72dkL7OyMTnFXqQAKwDUhnv+vr6SGfSnD9/nh//+D1sW4mQ + qVQK21bLf3Xn4I9kMuksCJIYRss5LNMmk8nQarVIpdJIaVOv18lmc6g99WTsFlrdglva7TalYonh4SGS + qZQ6GzCdoW22vclvWRa6pmE6S5WHh4awTBM9kXCO7JboegKQ6mRgXREDaUuEJlgtl0mmUkipdvpFgtDc + E3iU687dZ1Ad6eUMmdtfIcBZMi00gbQlmhBIqWFLZfmXGmApscN2yJ1Kd2L9hLL+K2kjiaZpNBoN0ukM + uXzeszO4C7A0TfOMgVEJIKiCBG0OoUNRItfB/HHqCuAsCa+TTqeZnZ31tpALtrEDCp4/AoD6gIuLi2Sr + Wfr7+2m3TT659AmFvgK7dk0wPX2HXbt28WjuEYW+AqdOneLWrZtM7d/P0tIyT55cZ2pqH41mk2wmg2ma + HkFYWVnxthfP5/IbEvfdiVWpljFNk0Khj3K5Qts0MQwD27LI59XuvK1WizFnS/OFxUVSyaQSk50JOjw0 + hJ7QqTfq5LU8xZUiqVSKSrXiGPAskskUxWKFvnyeltGiv9CPbduK6GjqZGDqdVrOhqPtdhvLtsllMlSq + VXRdx7Yltm2RyWZVXL+mITShpI6Y8UYINM+wp1QMtR2YjuZKI0KgCUHbkXBs20bTNE+FcNWTbki+FvK7 + 92tFF7rcv1qtMjw8TKvVIpFIhLZse9rI/7xLEs8FAYgb4qmpKcrlMrlcjqXlJSxTGbyaTbVJ5oEDB1he + Xg7opKqcEIJCoY99+/Zx4cIFxsfHsW2biYkJ7t+/TyqVUl6ANb5rNBjHhf7CAINDgxSLRUDtEjS5exJb + 2szPz7N7925KpRKtptqUxLYsBsfGmJ+fR08kGB4aol6v02y1SCYTmG2TbC6L5ez4m81ksW2bZqNBIpEg + kUjQNgyarSaGYZBI6EhLKi6s67RaLZqtJkLiuTlN00SCkjCkTb1ewzDaJBK6Os8v5SN8EGE8tPHSfHXA + sm00h/O7v6BBL2iLcAmC921jEChONVhLEgj+rVarDA4OYjrEd3BwkMXFRQqFgmc8jLMd/EOFHlsMBN5U + i0VAn/pnshmOHz/Oo0ePyOfzChnabdLpFH2FPFevXqXZbDA0NMStWzcpV8pKnA5wkfHxca/m1VVFTNpt + Fe9eqVbiuf86xsTg5BwcGGB+/jHz8/P09/ezuLBIrVYj5ViAk8kkS0tL6C5n1ASF/gJjo6NIqY7qbjSa + zD9+TDaXwzAMqrUa6WyGZDLhIV8qmSKXy2GbNtVa3fMGNBsNbNOm0WzQbLVot02Mdpt2u03bbGOaFtIx + IFqWjXReL2qaVMiC8h54CKdUCYkqa9sWhmFgWWaICLTbbQzD8HRyV9qK/txnbr52u+3dB8u66W69bhvt + dptisUg2m/V2enJ/hUKB6elp2u226nMX28M/ROhNN2BX95nSiTtPnA0YiQIW7c8//5wzZ17BlsHdbYNW + +TAnd0VWr941XIHxxCFoso+pI2rSd5OIoStOOZfAabqGQFCtVr2zBKVU25FpQsOyLUcaaNE22piW5YwV + yqYvgq415+3FOj8UxybALTWhoenOrr+Oxb1SrpLvy3v7MxhGW+1E7NgBUqmUZ5UPcuDg2Lhehuh1cBy7 + GQdt26bRaJDJZEg7x51LKanX65661Wq1yGazTE5OhiIUtysFbJWI7LgBI7D2m25sHEL71ws4c+aVjvTO + Wn3085B/rebEGh/ddfsFA12CwTvRySZ9CtxBngQUi+pYMRf5Q51ARUWm0xmq1TKa0Gg7nNI/BESA0Ejo + ymjnI7bwxXxNIFyiKoSyBYAK9XXfCRDC3+lX0/zgHU1TcQXZTJZiqeRFEUZFbX8LcT8eIDiO7tivRYSj + ln4XarUa2WzW2/3YVT2C7st0Ok2xWGR0dNQLTurVEOVvEnqGAKwF3XRu/3mH0BB+Lro9d5Ak5HjfeLtr + 1Rjbx3VS/FQVYlupVBgaGiIo+bjiuPs+0pakUmlv6zEAoYEu1P787n79mqaRcIKANE0RBhfB3V2REAEy + E/StCxFKCyO17gXnKJef8lK4QUiuN8W1WUQ573ouvWB6XL5ms0k+nyeXy3kIL4TAtm0vAElKtTBpbGyM + 2dlZjh075tkitoP83wYVomcIQKe3vDvcvXuXxcVFZ2LpvPzyy2vW2BW6YWvgcWxfheDx3GN27d7VUcAN + oPEmVoA6dfSoK2USzD1+zODAgMfr3eg95S1wJp8z4d1AIOVS1J04AcW1Xa6bSDiHduiaY7UXmEYbUL76 + oDux6wYjrvSg+Zxd1xOkkkn0hI/ktmV5yAd41n/TNP0FRijXqUucpFRnPLqi8UaQ3zAMz2jrGSQd7g+E + +uASrFwux+LiIrt27dqRAughArBhEMq6fvToUYaGhjh37hwAMzN3MNoGhw8dYXl5iZWVFSYn92AYBsXi + ChMTu2g0GtTrdTRNoGm6il1HhNLS6RQDA4M8eTJPKpVieHiEhYUnGEab3bt3Ua/XqVartFpN6rU6pdUS + 2WzW0z3zuXwMEfAR3TJNVopFkskE+XwfzaY6O8DlpAJYWl6m3WpRb9Q9X7vhIIdhtBwjmEHOjVlwxGZb + COq1Brl8HiEk7bZJOp1EBeeoOIlCoR+haUhbGcoy2ayyF1gW2UwWo63clqlMmrbRRjqc1JZSxSCgtjdP + JJOkkv6iIaNlYJkmQgiaLdVHIdReAu5Jxy6CBsX8oJ3ARUaXMLjnMMbFDrjlBgYGPOR3xX23nkwm4y1A + cglWX18fy8vLDA8Pe336h0wEetALEIaQVTpw8+WXX/KLX/yC/fv3UyyWePJEHRZy7949Hjx4yKlTp5BS + Mj8/z7Hjx5mdnaVaqbBr1wSl0ip79+5laWmJWrXK+PgYq6tlx01X5NGjh2iaxvLSMs1mA6NlsGvXBMvL + yxSLJfbt3QdAuVLGjXbLZXPkc/5CoI7TfJzJtbyy4mxoajuGqgaNRpNsNku5XKZUKlGpVOgrFEinM5hm + m2qlgp5IUK1WFZfXdZASo21Qq9cx220sy0WIfoRQbr7BgX4sUy3+SWjKjmCabUzDcIhdGiEg7SCf7RgS + NV2nbbSxLYtcLk/bNEmnM7QNg1azia7rtA1D5XdiDNx3bDab3tmFoHR7b02CA5qm0W63vbFz8wghMJyD + Ud0Q4qjLzg2oarfbDA4O+vPEIQBBw6C7DsFVPVz1Y3R0lNnZ2f+/vXcPkiVL68N+Jx+VWa+u6uft+565 + O8zsMOtgMRHiGRgLVkYiHEjGstmVF3axMQFShENhApAVjl2MkZe1hKQQoA15bQgwdmgDWYECIQUg44AQ + BozY2V1md2fvnfu+ffv2q7rrnc/jP875Tp48lVld3fdVfae+jo6qyjyZeTLzfO+XIhynEeVfBPEfmEcJ + oOy5Gtvf9773oVqt4o/+6I/w/vd/DZrNJjbWzyFJYvT7PaSpsAKnqeCQhCCO40prNBnCxDbPq4g0YAC2 + ZaPZbMKV3FdPj03TGKmMFKzX63BdF/fv31OxAxkX0TwTulFQ6qdisaZIVfILAM6FeHr+PIIggCX3Uctv + AOj1QtiWJUJ2k1RQcFvo4rCAekO0EU9kNGQUx6rLcBRHItpQdh4ej8dwbREyHIWCg4cSMVPJiZllqUCh + 8WiEVN5DHCcARDxDHMeIkxij0VAh83A4xHg8VuJ9r9dTUYO1Wg1BECgiQPo6uQg9z1Muu9wS0GwDy8vL + CuF1yUJHTM/zJqI5idvXajVsb29jc3PzXV24ZP4IgAFKb9bE6I2NDeXy+apXvwqO42J5uY29vT1cu/Yy + PM/HjRs3cPHSRTQaddy4cR1f9VWvivBgx8a5c8L/v76+IXVjC6urqwCAlZU1tGR5bzJuNZeacBwHzeaS + 3LeDtbV1+J6P/YN9rK9vIBiLasZCrcjTK+GehDz/CrpHR4LrgmFldUUgYBRjOBqh2WzC8zzhS49j2LaD + Wq2O4XAI3/fhOkIMdyoVMACu54mQXl8QsvFwhFarJcTvMMRGo4E05bAthihO4LpUvTefs58mKSzbQhwn + SJMYFc9DHCeoVFxUKh5c14Hn+bDkeWo1B5WKJ1SPlMP3fDSbS2g0GoJg2LaIfhyP4TiOIpau6yJNU9Tr + ddi2rXR2V0ZEiipDodqvP0M9YlAlJ2mxBGZEoe/7StUwRX2yBbzbVYH5iwMoaNFVVvqa3lO5hb9oPy8c + xrXz5S9XHAswzTtQJh6aD1sfNR6PcP36dVy79h4wAIeyyUhraQmWLaPnOHB0dATOgVRm2wFQhrTM9Qbl + 7oMmcaRpqgX2SFddYVrtpHWU4gK4Ol5cz7Jt7O3t4dy5TfR6PcRxDNd1EAShDAxKVGai53kTnoAiA99x + z1QnBvq9qXkyhsFggEuXLqkxtM88x+7urvIKzBoh+CTE/0UcwBOEYmN6mReg2OU306HaMaUuQl6+jwNA + CYfZ3n6Ea9feI1x0HNL9ZxzPU6QcSp0BsvRXx8n866q4qI7o8nuapjIwCuCylJeptugPQl/sTDsnsyxE + owgp50JiiWM4joPDw0M0m41cBB8Z/Y4TtWdBfv23bvgTU8viDcxr6dKBDo1GA1tbW7hw4cK7UhU4EwRA + IZSGmI8ePUIcx/LFnfJlyfN1e13FoZR/2hxU8HNanEDpPlqM2gLb2dkRDTYs4tpQ+8MwRMV1BceCKFcW + BBFcxwXTXHyWNPLROHEpMVldxxYiewpTpJ7G1dI0FXYHxpAmIqWaMQbf91H1PNF9KYmV8U6EBqcqJBiA + MtwVZVjS/iLuO40o6PPXkV/n5Cbim+evVqvY3d0VHhHff9epAnPjBchZ+4+Bu3fvotvtglkMb731FgCh + OohFkSKOhQFJJIRECAJhrCKXG8BUt+Cd3V30en3cuHFD+ZYBM2jPWAiseE+apkhSseCjOAIDVAYfAPWp + EIOLUlnDwQBLS0sARF0B5Baw4HCxtAkwzUJOCx5cuBHBWGaRlzAeB2o8BcmQGkCg+845EYc0FXkCKUcQ + jDEajzDo9xGGIaq+j1qtmmX68VTkHozHyiBX5McPgkBJBPo/SQr0Ds3jisAMW9Y5f1HhER2hzWPX1tZw + 8+bNmbwCL4r1n2DuJAA2Q/xOu93Gm2++iXPn1vHaa6/iwf37GAyGODw6wmuvvoqDTgerq6s4ONjH1tYW + Ll++gk7nACsrK0gTYR33q1XEcYTxeIxXXnlF5JAPhhiNRyp+vFi1oIkC0Lhtmqa4f/8+vIqHeqOOo6Mj + uK6LWq2GbreLcxsb2N/fRxzHqNXr6Ha7WF5exu3bt9FutZDGMXb39+H7PiqVCur1unITxlEsk3ki2JaF + kdy2vLyMbreLqu8jSVME4zHcigvGLFRcFwyAbTFwMERhiFq1Cs45+uMxqp6P3qAH3/ORSu7sez6GwyFs + 15UNVBn8qi8MN8yG4wlJJI4j8Fh4ChqNhiQEAJPBPOPxWNUkAIBmo5FLE47jGL7vI01TRFGEuqyjOBqN + slBhbshPJPbrv6X9wpLhy3reQk7flyqIuA+m7BjgXAVFtVot3L9/H5cuXZqqCpxGJphnkjF3BMCEIlE8 + DEN867d+K44OD/Hmm5+DY9v42q/793HznZuqLDeXBq9mo4GLFy/i6PAQFy9cRJzEePPNN7EqQ0Q9zwdP + OZJERNGtr62LxTWL+KdRiOFwiFarhWajge3tbaysrODu3btYX1/HaDTCQaeDVruN/f19tFstjIZD3Lt3 + D7VaFY7jIE5TVKtVNBoNDPt9HBwcwNOqCzWbTcRxjIP9ffjVKryKi1RauoW1XSTDjGSD1P6gLwhQtSaC + dwJR59+yLVSrVRFYVPGEZJHGSOIUAQsAxuD7VTgy+Mf3hf8/5Ry1alWew4HrOkjirH4fBTFdvHgRnKc4 + OjxCEIZI0xRH3W7Of6+H6DYaDTAZP+B7HhzbLk2MMq2+OiIzichMeydF3Fodo52P1Jnd3V0Vx1CoCrxg + 3B+YRwIw7RmT7Y5z/NEf/SGq1SrarRaaS0v44ltvYTgc4d973/vw5uc+J8pzuY56ybV6DTdv3YTrOFhb + XVOnW1tbw+07dxCHIXy/iocPH+L8+U1FBMR6mi6KigjAGu4/eIB+r4dWq4W9vT1cvHgRB/v7aLVaovLw + 2ho8z8P+/r5yldVqdWVAs5iM07csrC4vA5TlVhWJNnEYotZo4NH2I+HKqjeUL52DIYpjgbhJgka9oRZu + EIxR9auIB33RyAMM/f4AjWZDis8OHI8JqSiKUHEdxHEEmzGpXliwIDI1LS20lv6DIBRELIrEPdgOmktL + aEtxnET9KIrgui6CMES3K4qnUO2EJEngOA6WlpZUIJGeg6Aju/ptbJOLQ81P/03vW5F1no/UpFyBmzdv + qiCy3HlOCfNOMubKDcghugOXussMRFQVZ8DlIsj7fCdcgdpLF2Omuwi5mvLkvskpcW2DnnzM0e31kMaJ + KhbiVip458YNvP76V0vLOj0d6WqTOnguT54ChiwL+3t7aLfbsKT7L5sLV3YGssKDMTApLtuWBcd1RcYf + y47hXLtLjbsqwkfGNA3RGDUBkRWBhNgsRWftXHEcI5E6PiXl2LatkE4REgBRHGMwGCAYjRBpGX3gHBXP + Q61WywX36Nxef5kckFGfm8pTQOoBqQI6JNLuQaXE0iTB5StXJuZ3GigjAFQkxbKshRswg2PYv2EfyJWG + Ztn3IqotmFmGlroUmCHxNAPE5L488ZD7dS+CHFCpVOA3hd93qdXC/Xv3cPHSJVgWy52RkJ+O5xCLM01T + hXwWY6LenyWTejhHFCdIpOEzSbPcANd11Vj9uYiah/Ie0vz1snvTxGg1mJ5dJnaruAJJAHQDXJokYI6j + jk+SRJQV14J4MtqXxeo3m80J0T4IAgxkR2IyZnJpMK1Wq6jXanC1ykNEwLJqxlw9L12901UCBqDq+9jZ + 3cVoOJQ5FTrDOBkZ0AnhvMJcEYByOjv9AWYuN/P4DGl5yXagnAiIb0XnnXGO8sR6v8AoisA50G61kSdJ + GhLKhass5lwQgiRJAMYQhyFG47EyfNmO6LzDIBY6VfUVp8pSZHNITdc9xuqutinJhuIASOe2lCRC1YqJ + KFhS71fPguXdjYTA5LrUEUx9k9ssy8JSq4UWMmJBx45GI3SPjhDKBCHOucyPSFCv1VCt1bIWZeq0bOKN + 0Xk3SBV44408IZoBcvc30xHPF+aKABCYKJfzqTNgMBjiS1/6EhhjuHr1KtZkGG8xsImXYr7Kg04HURRj + Q1r/80fLl1rw/nP2AQ482nkEQIT7DodD4W3wfTQbTXCJ7Ldu3cLy8jIODg6wsiI+OYClpSXYMgx2PB4j + iWNV4INzDsd1UfWr8HwPURDA9zwEYaiIi54RZxIAnSvP5GbLbdes6gxC0pIc32K6312I1koiYAyx9O1b + tg2XZV2CRAVkgJOkwDVCKCWO1PAC6JICPXy6TsV14a2uKqIAAN2uSO7qdDrY2dlRxxKBclwX7VZLlWcz + bQXtdhu3b9/Gyy+/nNkigAlCMM/cfRaYSwJQCNpz3tndweraKq5evqIst7fv3EatVsP6+gYGgwEa9ToG + gz663R5SnmJpaQlHR0dYW18HT4WVenllGV6lgsPOoVgIDMIIuHk+d0ElIRQSASZ93zGWlpbAGBOx/p6P + 9bV1bD3cAk9T1Go13LhxA61WC8vtNra3tyHtX7CYqHLcaDRUbcMwimSuvY3BYADOOZaaTfS7XfT7fXi+ + jzgMMeAcrutiPBohjiORtZckCGUCj1+tIgjGsB03IxYAhsMBAJE/kMQJarVqlrrr+9LCz8EsW4b2ipLj + frWGMIpgxcLyzwGkoci8Y5alcv4pY5EzppJ8XNdVHgXyfJB0YjsOuDQUJqSzS0KQpikc21bqDSQxETfD + J4gCeNZlaGlpSb0XlREI4UnqHB4i2N+Xp8kIqO/7whtzdIR+r5fLS5hVFTgrZGGujIAAEISBUvcB40Fq + +vHtO7ext7OLjXPn0O/38Nqrr+HW7Vtot9oYjoZYWVnFwcEBOgcH+Jr3fw3+7M/ewhtvvIFur4vbN2/h + 3Llz2D/Yx1d/9VdjPBpj/+AAFy9e0C2OmPg2xT3IOZAmMR5sbeHihQuwbBu7u7vw/SpqtSru3r2LTkeU + +CbjmMhlT9Ht9rC01MRoJAKW+r0eqtUqDiUhAU8RRhGazaYw8klj1mAwkAlCDsIoRpKIbkFJHMPzfYxG + IhFHZP8l8DxPNPFgFqI4EklAqbCHCIQVOQaAsA34VV9WGxY1BUScv4s0FUSHDJOO4yBJUhXnb0lCQByX + agWSQZOIHJeEIIoilfsvruco74Z4tlnGn546nD17PiHZRFGEqozsoz22zH1Q3gMyuhprK5Qu00i+o2/+ + pm/K3RswKQlMrIepOzk8md25MAKaoNmbyh7xV77yFWxubuLKpcv43Oc/r7LnRIUbII5ijEYjgEEZhhyZ + UBOMxvC8ikgnVaKn1L455ALVstD0CxcYkQCxifMUWw8fitBk28be7i5qtRrq9bpoPuK6Sh897BxibW0N + tVoNB/v7uHTpMiyLwffHSCQXFD73ERgDarU6nFAUAAnCQOTMMyZ6GiSJ1P9FTH4cRYCUCuIoglupoCIr + CNvSIMcsC1Zowa24CnkIaT3XR5oK24NfEc0+mcXgOBWFvEmcoOJVYMeCGFG5cjAG1xGuV4oopPMKYpOq + /gBhJCIl6XtFZgmGkhhQ2DIgbAUcEG5G20YSx7CkOiGeP1dj6PtoPMbK6iq4NDxyIJeERGI9rbM4itDr + 98VcXRdr6+tYXl5GX0Y/itc/Y7LQ1L3zBXNFAIoeXM5cJxHwlVdewTs3buBeFOG1116D6zi4d/8+WsvL + WFtfQ7/fBwPQWmqhVhVtwy5dvoK7d+/i3LkN1Bt1PHr0CMsrIuHGcVwZigscHR1idXVNXTV3fS63GESA + MVERx3EcUYO+0UCSpqJy0HgMx63gwsWLuHnzHXieh+XlNsIgwHg4xDgM0e0eyuAbB5wL0fXg6AgVTxj2 + +sMhKo6DOIlFnYPRCEuNBgAG13GRUKlt2WBERPKNpahtIwxDkTfguLK092R9foCMZ6Ey6kVxDJGawBCM + x2BacY9gLIKGKl4Fo9FQFABhFuI4yrljCemDIJANScR3S36nkOhIKxcex7FKVlIzpKpHmuEQ2hhCfuLk + jDHwJBFeFI1QEPdPOceg38dYqjYi3buJtu9nXos4RigjMKeFGZ8EuPRKzIvtYK4IgAllUoBtWXj11Vdz + 265de1kd9NJLLxlcmqPeqKPeqCtsrl2pyz0cruvAcZoAIJEfmPAG5EUBkhvVdTzfx+ZmViOwrlqMZ1Cr + 1UX7cK2FeBTH6B4diTj4iuBeru3A96WYDOGaIoR1XVGDjwOwbFn7DyK9lJAgDEJwpHClZ6Cikpwynz8V + PyEjHzjgOvlmmpynMnRWSg/ybURSvK9UKkDKYTuupIlcNA/lafbASNSWSKfEbokIlPtAkZuk03MtP4Gy + G1KJ7BTOqwixZkQEy4KELNsWBUzktcbjsco3YIyhXqtheWUlZ2uItO7UlpwzSTC6qlGa0Wj+nhNEL4O5 + IgBldDXnzCtx1U+U4Mpxae2giePFAs+7AievTKeaJATZdYos7eYcTXAdR+QopCn2Dw4wHA7hVCiOX1au + NTLcGFje+q7mJhaoX82y2pS1nrFC88Usy5O85IRanlcBBf0oLwGNo8dBSCr35R6chqRy4soj4MjMRwBI + COE4V8E64Byh9t30eJB9hacpDjodZTNhTMQLrK6uqudKWZFJmsKS6gp41tyFc670/pkMf4bnomDADE/7 + 2cJcEYAiyBaKvoCA3d09xHGEzc3z5ZZMHTnpDJMkGv1+DxXPExytwAiY2zKpE6jrhGGIJE5Ed5o0EXHl + flVV9OXSmRmMx3AcF45jI44TxEmMiivsEs1GA52DA3T7fVjMgu9nKcqku9qOLUJypXVcMNmsBZqK7mP5 + Cr4WyyZPlYRJuhHRlILDisAjqDmDFrZ8GercAJAjRMU2kplBQyAmbli9Wx0JXe2dgoleBhyZjj4ajVCv + 1US3JI1A5ALHyOrPOWyuvUcN4jhGrVYT0ZNGOfNCt+rp7vq5wvwRgAJWLNZdFgvw4MEWxsEYjXoDX3n7 + y3jttfciiEJUHFdRdktavskoVKl4CMZjZX2luPRHO6L01/ajHbz88ktIkxSue8xjmdQJkCQJOgcHYJYN + gOOo28VScwm7u7tYXV0RHYBlqCkA9A47WFlZweHRIXzZoLTq+7BtB0utFqr1OoJgjF6vj1R28WUWU5Zy + ugff99XCzBBaiOIMgC0Nmvri12mYJfm67PwJpByO46qnbUm/PzgXlZNtCwwWmC0kC+pmTOnIDFBVhnia + ZhWHNJE5o5+Z5V1917bp92MeU3QePRW64nlCctKqAVmGES/lHI4m2unIzSFUBmFEdXMegLIko6lgeCnm + RTWYPwJQAkob5xzNZhP37t4F1jmuvecVbG9vYzgcotvNN7WdAAAgAElEQVTr4dq1azjsCOTqdDp49OgR + Lly4gKPeEVpLbXCeIgojYTFPEuX6OzjYBwPQ7fWwurKColeax/u8LmFbFlZWV3H//gMst9vYPLcpuvQy + YDQeIwxC9Lo9XLx0CcF4pMJ1V1dX0ZfcnkkxvdMRpcZ5wrG2toYkEdJEa6mFw8NDIWXUaoilq6xWr4uC + nBJZoyhExXEQBaFsfS7y+mv1mnyYHP1BX0TuAeBpgqpXFQYxmSeQxKl078WouC4SzhFFCTzHRxCEcG0b + CYDETSG6BiWy1TjPYgKSBDak9V4a0JR1n7EslyNNpY0Byn1IHJ04uCJwmpRBBILWB50rkZ4RIDN2MmRS + BKlUNjJJxuTuHMB4JEqs27ZdUjpthnVbIl3MC8xNQZAcHCNCxlGEr/+Gr8f6+jreeust7O7t4dq1a1hZ + bougGcgHzxgazTrOn9+EBYbz5zexsXEOh4eHiOIIaZqAc+DmrVu4cOESLNvGysoKTQJFVon81LIxwp9u + 4fzmJo66XYRRiP39PWysr6NRb+CoeyRbmYtaBI4rrPcU5FOtiYy/4WgMz/fQaDSyrj6MKaNdvVHH0lIT + rm1JY5ww1gk9OREuvCRV7rgoClUF4igYYzAYiNLfjMGVZcQs20ESRxA5AomMn+dwXFsimlQZGJBGMRzL + gi0NkVEkegeQ+O5If38oezymUgogBKdkIE4BQIZYTv0GCSjRyJLJTLotRCUhkYWeZQFCrsa1bXlNs0S4 + 4zhwtcKoVCSVvCAUSswsS0kPRaCjNnH3HJefU+QH5lECOO5hSa7w2c9+FlW/imaziaVmE9dv3MBgMMB7 + 3/tefOmLX0SaJsKqLQ1VfrWGO3fuwnEcrK6tqpdz7+4dRGGA/b1dVCoX0DnoYOPchrKWF1kdJ7UUITDv + 7DyCbVlYarVx//59NOp1le66ubmJu3fuAgwYDoaCU6UpukdHqFarGI8CtFttpGmKQa+Hbq8L27ZkUU0H + ji0q9IZhIBHfUnnrcRSLmAYmSnZZsmiIKAUm6vWBAZZjo+qKoB4eC6SmZ56QjVQawiCNh9IPCMe2EKcp + bFm9N0liWLYDh/oWaohpS+JDATsqiEciUCJLlJFLjzgyAFWgw+whSPq+svoXqBMkMeg9AOiaTCMW9J2O + 0fMkII8hVbLieZNhyBqkp0DueVIBTu/QPP31TtwdGMhetG5RTnkqF2nmluHQWnRz8xwkSkK4qpgpABm2 + B64/oOIXZk6VYv4nxjCGTqeDNE3gVbzcESTO0qI77HREXALLFiuJqZyLOIDBoIdKxZdcW4j4KRdtusej + AMwSCFjzfaG3s0lL9mRcu7adGeM4F/OByD4kruzK2AJGOQKGkQzIL7KJp2jo9Cp1t8AOROPNRB5dDeCc + 47DTwZWrV0XOAScvDpNu03zRkFxEoX69NMXW1hZee+971TX1NOQJAlQGJchOtijXdReRgDkooYzEh8ll + Bw6F/ED2IpXduOA0mauQFSC/fpXM4j9NEhDXzU+ZlUgMgAjKGQ5DeJXcXroxdaJGoymRKWN6QOZW8you + Bn1yE0riYXFY3EKaWqjVbKFqeBUwKysZrj+nCeAF+3J0gKkPz7bBwMBsW9gurMwLkL0H/f4nM+8KjXlA + hvwagql5aQZCnREomwGg7AkWY4AMHJp0oyKny+nHQ55Dv2vi8hOdi817gmEgnBMuPw3mjwAAhZ4AwEBB + A880tC3DVbmrLHXYPFd2HUEEyl+mEjZyk5s4E2zbAU+TKfMTFxNZc6mxSDPixm1bIKchvgpRmeIEVN35 + E9W8z66XQ2GJiHKOOT1cIwB05wUc0jLfqUYUCHHVdY19mmiSR37525QOdClENx4q5DfuL/cqTG9ECRKb + ev8sMFMm5jOG+SQAxzyc0WiE61+5DsYYLl66hJXl5aL4nhIky1xLYAzjYIy93V04tqO6/RYdWkYyzGtu + b29j89wmev0+ojCA5/uo14T13XFsJClHHCcYDAZotZbQ63ZFcc16XYjR+llzRqSMHduWhThOEUahKGVO + ko0mFZEbUCHqMcEshVxauzEducG0LfK6gFCpTDH6uGg5ndvq8yhCfGAS+SfGGUa4CQnCIIJFczkOOfX0 + 5TIw72teYT4JADBFCmDY39vH8vIyLl6+hP29PQRBgPsP7qPqV7GyuorhcIharYbRaIherw/OORqNOnq9 + PlZWViAy8Lpot9qwLIbzm5u4fecOAIadR4+wcW6jwNVPi7D85R8eHiGKhMFtMBhgZWUZh4eHSGXBz+Fw + CJ4m6Pd7sux2ijgRNoEwjGRuOsdgOEQSJ/B8H67rYDQagzGGRqOO4WgkkT1FmqQq0SgIQtkQ05VluERi + VMX3pRvOFqHBkrqFYQgOERJMjTT1DD3VTQcQXgLZjMR1XMTSBsAYA7Md1f2HQoAdSjoibl4QwpsJS5lR + z+TmAAq5M4rGKbtQsWqhqxUEOQNeEdJrRkj65AXnyU5hEO6y/TieyDwrmE83IKAr3xNw6dIlgDF84fNf + QBhGuHvvHq5efQlBGGLQ72M0HCKJY4yGI/S6XVy5fBl7u7u4euUKAI779x+gUqng4cOHqFZrGAxHAER3 + 3I1z59R1it9zsQGKgnMomtB1HXSPjuA6Lmq1OrYfPoTn+aLzb72eW1xBGMCyRRPOMIoQhhEaTdE6XLTn + Fhlzkcz0q/rC+j8OxqKkFxPFRJllIYoThFEEz68ijBOEoWi1FicReJogjsjdJ2wSJB6nqYj7Z2BIYtG3 + wLEd6SkQLk7yXAAAk/p1FMcAmEoSYlqYLfnwlX4OA0l43o+vb5+2Td+uc3olJZjSjIF4FAFYtJ9ATyDK + nSp32gKX3wn2zwPMHQHI4VzJM7t56xbarRbe97430OkcgDEmm22IIphxHIsmFYAq9OHIKMEgCFCpuGi1 + 2mi1WzjodFCtVuF7nlz4cW4WmREuP0uOvFiaxInoMzAaqsKSa2vriBORp++4FUEkGMNwOEQQCGT3KhU0 + G01EYQjbJmMdVyt9HAji4MhgFA6o9FYRzBSpRiOuI4pw2AzChiBnaFk2HEd0OGaGMZD0YhFAk4p4AwaB + 8PL+4jgRAr8W1aeMqaAAGyv//pieH8Az5C9CKJL2SpDc3EbSEy8iFPqnNtdcIk9uAuXEwXztHDge4dN0 + ZoIwD0RhflWAvNaXg5euXsXtu3eQPEpw7do1uG4FD7e2sLS0hNWVFQxktZtms6naap8/fx5bWw+wuraO + eq2Ovd1dtNtteJ6Hvf191BsNuJUKOp0DLC+vaNeVi6FQI8nUglpNFP6oVquo1WqwHQedw0O0Wm2EYYhz + GxsYDoeo1+pYWlqCW/HgVSpSjB+jWqsJi7MMKBoM+qjV67AshjiOZEtzC47tIAoDOLYtS2dXhLBkCb+6 + LduERVEIi1mouBVZSEMQEEvI4ILYMCaScMQJwOTiV5ZuJlQEZtlIJXFlDICMuANjcBxRhtzS/fYwDbZM + RT4qQmBY9vU3XrbdJCDTxuvIaOr8TDumlMOTnUGTMCzjXGpOBXOY2FcACwKgg1yIBXQTJhFgto2XX74m + d4sjrly5ovZfuXRZO1rsr1aruHjxktp+8eJFtY/ahYNzify5q0EnAtolc2PI/9+Qqb6+V1GNPSqyQ069 + Xsfe/j44mCJM1aovz0mLUYTS+hTLzhhct6KMeVTDjh0ewbGz16eXrAqSAGkKuBWRwkvRbfp8LdsR0o2G + jExG6+kIQlzfltfigPRkMDiWqCIk8gOgjKvKE6A/LBLLDW5P58x+HI/4uWMKEJ8VU+uMMBWcz7yerq7Q + cbmAoYmDT9ZSbB6QH5gnAgAYsrZEPMmxygwvOuEoGjGRJmzu05cfQ3bNibnIfdklJ85GyyVzNWXTLwIS + NE2bdI3SeeW56FOflz5v8/Su48K2bBRxpzIVixdvLpgxg+U4YOrVcBGyIk+sJ9rov/U5FF7jpIivHTOh + z5fo9FaJaD9xDu36OlExpQk1R2P+ue0FMC/iPzDvNgByfanVn4052N/H7s6OFNXEdnMRK71xmvtLHjwe + j/OTKHxB050/cRTKYhzCqDYajaW4mz80DAOtYWiMUBb+4JARdXJwrBXFoNvIWx/yhADI33f2nx2l/mlx + YxrCy3smpOJQ34uOpl+5HH3qaaCJ0hNIbOj5JL5P5fqGvp5DfM3AmvJyg1+RQdA0Uk6oEEU6/BTdfpre + Pw9EYO4IwCRo2C0f2Pb2NoaDASzLws1bNwFAVHKRLzPWimOKDsHCEh5o1V4iWUMeAA4OOnj0SJSOjuNE + Z0El85kkBEkSo3N4iHEQYNDv4eCgA8YYDg4OkCRU/SZBMBoiTYQbMk1i9PsDJHGsOhcTEiSSgAAMZtEL + saj1BcQBLivmyu8K5ZUxMF8rIIxidTHOIbwJXK17cLWvGGmZNlciBwoRNKRHbpz2XE+I+Pqx9Axy5zOA + 6/uNY6caBDXE1wkJ/U8QA80YmdtewOXnzQAIzJsKQAQcxosxtjQaDVy/fh0raSpKg++I0uDDfh+XrlxG + t9tDu9XCUbeLvd1dnDt3Dv3BAI1GQ5SejiPVGLPdbiNNE2HsAkO/35NNO2hOea6iZmSoAbbtYH19A0dH + R2CWg9W1NcSx6MMXBIEqh+1Xa/CroomnZdlotZYwHI3AkMW/9/t9UfwyiRGEIThPkaZcxjaMRInsJEYQ + BnDdCuI4Ev0FXRdREMKymSAQSSrE9SRV7bjSNBElxaRvnoGKbVpIkzQrlslFLYEkyVqKw7ZIpBLHKgbI + ASbPR9F3xtvLPcv86xbfCwJnTOQstfqb4w3kVw1IjGCo0vOQVMCzpir6PmUL0IjyxNxLEJxPOeZ5wJxJ + AAVUeWKIKCD5/ve/H6urq7hx/To6h4e4fPkyllotDGVpbQpkqTUaqt33+toaVtfW0O/2VBHKrQcPEEUx + Bj1R/bXdbpdcliP/hwlhoNftggGo1WqIohCHh4dYXllBrVpFfzAQLb8BHB0doSlrBorAHsDzKugPBkoV + qXqesPhHIXzPlzX1hTfAr1ZlLn9GhUT9fheW48B1PRVkxJMEHAI5bduCbdkAZDYc2SgYy86ndfrhshCJ + amGmpDCDU6rnk+fWCkmmSAPk0jNXQQ6ZybVmbDePAUQhT90gWhaRV3SeCZVA8wLkjtXnVCLuF20r2v68 + YX4kAI2z5Lfz/BAIzvbWW2/B933U6g3U6jXcvnUb4/EI1669B9dvXFfdZgk/Pc/D1tYWbMfB0vKyFI2B + l6+9DHCo2vV7e/uq09DkXOR8CmwKYRCgc3iIer2O0XCIvYMD1KpVdI+OAACrKyvodbui0USjgeFwCM/3 + 0e+L2v5BGKLZaIBzjiiOMBqLEuF+xcdwNAK4KOgxHo1lj71UFg3N1AC1gCHEeUdZ/vN0PqWxSRb6Sm3H + hEAv789iQjXQ0oaJanDlEckq7epWf5IuwJhKVaZzKJPqFImgkONr5y87JpSVno6z9JvX0PdzLqoumY1X + aWzZ/E+ybdr2ZwnTrVpP53qF6cBDmQ4cBkFuEU2AQUWhBafkxpjx40AuNl2JclPOXzoH7RonAQ6Ou3fv + od1qyYnlrZdU2CPVuAsF75jlrLYePkRDqzysL0oqr03HH1fOOkoSuDk3YQYT1nx1DhETwFMt0UafoxZo + pM9v8pmYG/IShbm98FgNOXv9PlqtFmqyVoJ6hkyrO1CCpIT8nIuS4YwxbJw7l3uG4MfEAhT8LtpO6cBL + S0uLdGAFXHtIOj6bz0H9lNwoPxiZbAslrhM34tqxXBszOZe8Fls4hjJuym9ncrdarBSAkx/Pkb15zjks + IHO5IX/CbEGx7LZ5Zvkm7kwnLqNXVFQzD0w5YcTPAv+9Nv0iRM5dbkbCeyLEB7IEHvk7jmNVDkwH5QbU + EDgnkqvLCfF+HARYWV7OqzhpvslqfprHE4EpHoDnJgrMDwEwVzjTEVNHaBqSib7QEST/Q27hykBVvGIL + EJyxGcYUnav4tuhYxqys951x7ITLCJIY8BS2KnxChjZZc8+2oT8cIiI5JKF24KkhBWgBC6a0lM2N5cYR + 4cpeV3GKcVHBjOMMYIXbDQPcxHcNITnnqtirrs8zZEVR869UxiwU2CDGWgFZ9T40qWZirua2KWMM/f+5 + 6gFzQwC48an/MOn0eBzg1q1bAESIb4tE6hxFn3yuVAJL10eDMMTDhw/hui7On98EKyoUMqEWFKILDjsd + pDxFu93GaDRCEidwKy6q1Wo2iAGHh4fwPR+1Wg2DgQhb9qs+LGaJS0lGOxqNUZPHktAgQhQ4HNdBHEe5 + oii5x0TEQEkBHAwpKEKf60QoJ4VQSRMNKXg2gIFnwosmTU+NkkM50h+3z9xf9D3HpTUVilqT63PTuf+0 + c+mEpEhimOV30TYiNhrRyQl9eMYEYW4IQCFMLCqx4jqdDlqtFs5vbuKg00EQBNje3obv+2i3WxiPA1R9 + H6PxCIPBEJxn6cDtdgucA/1+D0tLSxiPx6jX67KDrIX9/T2smu3GM3qR36AJ+WmaCgPgeCxbSdmoL9Wx + f3AAcJGUNB6PYFk2KhULYRTC576ooMuYmHO1CgYgjEVGYJokKuPOcRx4lYp0C4oy3MPhCK7ryXbb2YKO + 4wSMAUkiEMG2bdhE9CyRHBTHiSx/nrm0yDOQv0dx46q3QcZ4IewAGVecKL5hiP3Za2UTCFcEZQhWdiwh + fxzHEwhOrcn1sYXW/SmEoYjIzfK7bJ5JkkTII/8zh7kjAGa8/cRDZ0wm9mzhS1/+MpaXl9HtdnH58mVs + bz/EaDTGeDxGpVLBaDTGcDjAe97zCm7duoWXX34Jg8EQjx49RLu9jJ2dXaytiVZgjx5t48KFi1hTrcEm + 30i2hvMSAOey/LRlqVr91WoF3e4R6vUaKhUP+/v7aLVaqNfr2NnZgedVAIgCmv1+H41GQ6T7AojCCLVa + TTWm9HxR+y9OYpkbICrvRlEW/JQkCXzfx3Ao+vQFQSAKd1oWwlDGOTALSADGNCMhZG1Fy0IaGYgKwLKl + 3VYVMkpBXgUT4Wmb/r2Ig5ZxVPV0T4j4dC+AsAFQXQMgE/3JkEfjy66nI+xxBOOk89U/0zTFaDgcA0gg + iMAzMfqZMDcEIFt4tHhgshsFd+7cwdraGjY3N3Hjxg3RF49zyfmYakCpJ9IIXZlJ0a6imoGmaYparQbP + 85XYaJtJMZOzzc2NMbHwwihCa2kJ4yBAEATw/apI2ZUcPJbRh4Iri15zg8EAzWYDjGWWeuK2AJTlWlQI + s8B5oohAr9tDHCdqcbquKxqBMtmlKMmeB2NUIx+qySb5y1V9fgNB1TMw/OG0zRxb9PskUIRgOrKWidP6 + 7yiKcP78ebXNcRxFiCio5zhOrhMUkwjMKgWY59PHKQIgQj1j+a9LAc+MEMwdAcgbqfLNHwiuXLmC+/fv + I45jXL16FY7jYGdnB81mE8vLyxiPx7AsC0tLS0KsZgybm5vYlSnAtVoNh4eHIi3XddGRVXg9z8PR0VFm + U9CgyKCjAyFfFMdYWlrC0dERwjBUyL+6uorxeAzf93H37l0sLy+DMdGVdjQSEgvpnJ7nK0lCNOcQxr5K + RbToTtMU+/v7ePnaNTQaDfXMLCmBAFDXjmTzENpf9Mx1Ll34HrRnYO6f5diycxX9Ps4eUDReP+bWrVsY + jUZwXXdiPrbh6pwmSUxTB6bdS5EEYRIAql/R7fW6EMifyP93rw1g2uIxH7xt27h69SqA7KFevHhR7b9w + 4UJuPOcc1Wo1Z4zTv29sbKjvy8tt7bjJ+U2DZlO07AagGozoc6/LzjxCRfABMM3QJK5HnJy60RKRIOR1 + ZWpxEAS4coXSnjMOTZIGcTqHpBlFBJiao/58GKPmoeXImtfjxdiy91X0Psu265z8uOesz0WVLdOs+Vev + XsU777yDa9eu5WwCugpQpJboCG9uo3vSr11mJzC3UUyGfj6ax82bN98BECDv93+mRGDuCICqG1ewDwDA + 8/b9sgWjv4xZxVJzoZ9amuW88GCSZvQKOnQ9oV9zVaCDA+CaMU2v7BurcNeCCRr3rTe1nEDWbOAxtzNJ + AMzf01yB6t6N36aefhz3NxHT5OiqDZh8XnpAFSGiKQUBk6qEOcdpCF70Xb8mbdODs6gpShRFHQAhgAiZ + LUCdaurDeEIwdwQAjE3RvbP9nU4HSZJgZWXl2MVngrnQcvX8ZjxHGejuozAMlSiqn4sWABXfpO9SBFDd + eajLDzMIwb179/Dyyy9PhKpSpx0dCUziUYQAx4GJvLM8nyLknyZOT0P+MnG/7Hu1WsVoNFKdk0yEJEJR + dE2T65fNv2xu+rVM4mNIOoMf//Ef/00AYwgi8FxUgLlJBtLDVWmhmouf/nd3dzEajWDbNh48eKD6uJmu + KF0EBKD0YeIOliUKcY7HY3S7XSVWls2lbD70nyQJDg5EjcJerwfLskQlYG0+jInsQDLWjcdjcgnlrgNA + NdLU5wAgIxjIxFFzQVMPPtUDT6oVtG3Wf8uySo/Tr6H69xm/TUJkfi/6bT4HkwCWfSd46aWX8PDhQ7WP + ni8VLtWJAVDM6cuIDoHO0XUE16+VJAlimZJO9hiy0XQODm4/fPhwH8AQGQF45rXE504C0Bd0kdgKiFp/ + FAh08eJFHBwcYDweYzQa4eLFi+h2u2i1Wuh2u+h0OlhbWxP1+Op19Pt9xHEMz/PUSwKgFm2/31cegrL5 + lcFwOES1WlVIMxqNUKlUVLNM8jiQTq8TDl36ICMmgNwic10XvV4vF+lmis/kAyeLt0m4jrsHE2ZVpUyd + uuyYIlWg6Ly6fm/q3vq1TFuAqa7oCE+E3xxrzlvn4Obci2wCOkHRg5B0okDGW9u2sba2Fv2n3/M9Pw+g + BxH7r6sAz5QIzA0B0OE43TJJErzxxhsYDoe4c+cOLMvCtWvX8OjRI4xGI4UUlmWhXq9jbW0N9+/fx+rq + KpIkwZ07d3JGttXVVXS7XURRVOgBKJubDtTlVxQgEchOMQqNRgN7e3tot9sq8o84RaVSUYY7WqRk8adx + 5OYEgEePHuH111+fTBgyuCTNtUgNmAXK9H79ORRxx+NUr+PsAub2ou/63IjQmfNot9vY3xf9I+hYneub + qpCJzEWSlUlUTCmBJAx6t/onEeZz587hzc9+9guf/8IX7kIQAF0CWLgBZ9E1OefK/1+v11Gr1fDgwQME + QYDLly/j7t274JwrHzAg0oF3d3dh23aOw+suO0LY44hA0ZwajQYajQaOjo7g+74qTS4CkkZot9sYj8eq + EjG1ox7LyEGq+ksLiIJZXNmN17IsRRSiKFJ2BN0QZnJrXRw/KfKX6bxF1yp6Lsfp+LMa1Iq2mchXNH59 + fR1f/vKXsbKykuPmZYSrSF+n40hyKDNiEuHXj6HfuirQbrcxHo0OvuMDH/gkROZfH8ILoEcEPlOYGwIw + DUxO0W63ZSWfzKrbarXUmPe85z0Ti31jY6OUs/i+r76XFQSZBubcAKGmmEAITJIJIIqH6PcJCGKlL1pS + GXZ3ReQiuQLN4B1SZ0z1aRaE1mHWcQRFBPq439MMavp3fVtRQE3ZWN0epF9T5+768zMt9qYaUKQy6ASD + uL/O8XUbwMb6OlZWVoI/9/Vf/7fTNN1DngDoBsBFHMBxYwhMN1DZuKLtx6kZJ4HjxOWyY8qkHRNhabEd + Hh7i1Vdfnbiuvhj1uej/+vmfBJTdcxnxKELSsuPMsSbiH7cPEGrixsYG7t+/j/PnzyvkJCAJqkii0AkA + XcPk/rquT5+62E+InyQJrl69iqWlpeSvfehDP3X37t07AA4gxP8xil2AzwzmhgDMAmVIAzy5hf0kYJa5 + FI0hjmSKnKYBr0xv1s9T5LV42nAcpz8JcSjTs6dxfXNcs9nE1tZWDlF1KCJehMDAZICSSSSKLP8650+S + BK+//joqrss//rGPfeq3fvu33wSwC+AIwvhnuv8WKsBxwLnwr29tbYExhrW1tVxlnJNCv9/HaDRCFEVY + X19X4vVpIAgCxHGsPAFBEMCWHXwIaLGEYahUAvquL15atCTl3Lp1KxftSDCN+xM8K+SfVc8vGmMiur6t + SPQvIi5l59Ldf4SYZHMxRfs0TTEcDpVKZaoAtJ24PZ2fzkv/nufh677u63B4cMB/6hOf+PTP/8Iv/BYE + 8pPoT3kAz9zyr8OZIwAA0O12Ua/Xsb6+jm63izAMsb+/j0pFJPkEQQDP8xCGIUaymy4FhxCxGI1GqNVq + aDQaqNVqODg4gOu66Ha7hW7A44CQ0JOde8iQJ7LxQjiOk4tDIMQm67AOuk5J56X5FiW06KIsUC7+z3of + x+0/Tn+f5Tz6mGnIO4sEUEYg0jTFhQsXcPv2bVy+fDkXiQdgIkyakJnct/q7oedtuvl0pKf/y5cv49q1 + a7hz6xb/x5/61P/2j37u5/4lgB0AHQBd5Lk/If8z5/7AGSUAa2tr2Nvbw61bt7C0tITBYIBz585hb29P + dNiVCBcEAcbjMS5duoStrS1cuHABo9EIBwcHaDabODw8xObmZi4B6DTIDwjLvB5zTlwAEPH7g8FAeQeI + E9HCK/L565l6+qLVkd/UPYt0VTqmDE6KuLMg9izHmIE45qeO7GYsfdm/ORYQhleRGp09I/0Y/dnQfooZ + 0dOKdSOrbuGnd0kxHm+88QYcx8H1L38Zv/TLv/wr/+Af/sN/CcH5Se8nqz8h/3MR/QnOJAHY3t5Gq9XC + 6uoq7t27B9d11Qsh3zBFXBHiUEEIys7Tre8kEgJZauxJgeZQqVRUlB9JAOSOI8TWU1R1bkVgIuzNmzdx + 7do19bsIUcqQ/STW/9PCrKJ/ma5vfpoIrX8vstbTPgA5TwgRSMaY6KcgYz90HZ4Iqk4YgiBQKpypHujH + 6oj/+nvfi3qjgUcPH+Kw08Gv/bN/9n/+vZ/92X8Bwfn3kXF+svo/F7efCWeSAJw7dw47OzvodDrY3NyE + bdvodDqo1+toNBoYj8dgjHzQbmsAABZaSURBVKFarSo9u91uo9PpoNlsolKpoNfrKSJALjlAROHpxGFW + YExk3oVhqBp/6lZk4v4UVhvHcc73b4r1emizTqAITN1fP8fTMvydVPQ/zgYwK/Lr96kTAdNfT9uAjBCk + aYrz58/j9u3buHLlitqvhy6b6gSpjaGsvmTOh86xvLyMl156CUtLS9jf28PDt99GkiT4F7/xG//X3/nE + J/45gEfIOL8u9j+XoJ8iOJMEgDGGc+fO5bZRZR/zO4HneUokp98EemrwaZCfgIJ7CPSIRNoPiBiBwWCg + rmtGmNE2zjmOjo7yNQU1MCWAkwb8FJ3vtFBmGyi7xnGfOvKb9hBd/DbFevM3nZMMtLSPnpPuSqZjwzBU + 0Zw6wlcqFWxubuL8+fOo1+sIxmP0ez3c2t1FHEVI0xS//Tu/85sf/8mf/KcQnP8AgvNTtB/l/s8F8gNn + lABMg1n03ucN1WoVnU5nprFbW1t4/fXXJxCsTJc9rQRwEuQ97XEnQXqdk5uIr38WRe4VcW3btnFwcKCI + KRFMPWyarlOpVNBsNlGr1dBut1WxmDRNEUcRwiDA7qNHiKJIFF6RyP97v//7/+bH/9bf+lVkYv8R5hj5 + gTNMAAaDAZIkKTXamQaeaRAEgRLNHxfIhkCLySy7BQgCQCnIJ50rjdeRgpDF9FWf5Hyn2X9aolE0psie + oXPgV199VYnrOrIXSQLmdTnn+Nqv/VoMBgPUarXcvkqlAs/z4Ps+PM9TXht6G5Tb0et2VZFWyuxTyM85 + /r8/+ZN/+9/8zb/5iwC2kUd+3eg3V8gPnFECcHR0pBpA7OzsYGNjI+czJ2TTDULkhiNdmsaPRiOkaYrB + YKDixk9jBASgxEbfFyW96Jp0Pro+lfmiuQLFxrr79+9PqDOmvqpLPGbA0DR4XMPgNN1/2ngTyU1ELbJt + pGmas+fMcl7dSEf/nuflSn2TBOA4DizGEAYBkjRVff9ykoaJ/NLrwznH5z//+T/9wR/6oU9B6PyE/AMU + x/nPDfIDZ5QAUO0+zjlWV1fR6/UQRRGCIMDKygrG4zGq1SrG47FK7xVFOn2Vf0/FOHzfV7UAACENlOnc + xwHVBQSgAnsAYQMgt5++sEgMNfV+gl6vNzX4x7QZPKuIv1nhOKQ39xd9N91tRW7Oot+MZeXWCEzur+aV + pkjSVHRTmhH5kygCOMfbX/nKn33kB37gH0GI/WaMfwSouv/AnCE/MEcFQU4CaZriypUraDQa2NnZwXA4 + xMrKiuzKG6lxjDF4nqcKZ9brdWG8kX5hzrnK1KNS26dFfrqebtAjSz8RHN0oaObxF3GwMjC55LO2/B83 + xuTg02wHRcTM3F4UxjuLBDJtjI78nPOZkT8i5Adw6/bt6x/+/u//B2mabiOL8iPOT5V+KQFh7pAfOKMS + AAA8ePAArusq6/7+/j6iKMLa2hr29/eV4YeAimmQe5C4reu6yu1jWZYqJXVaIAQk0Z8q/ZiLcZqawTnH + zZs3ceXKlULpQDeSTZvD04Iibj3LWP2z7DymfSOKopwXoEhVeqbIL6WQew8e3PlrH/7wJ4Mg2ILg/oT8 + 1NyT3H3AnCI/cEYJQK1WU+IcLfZaraa+b2xsTCBBUXpuEaI8DvIDWdXex60vGASBukcTQcxY9Fn1/pNC + EYKfRiIwtxcRAXN/mRQxD8i//ejR1oc//OFP9vv9LRTH9z/3EN9Z4UwSAILHTe/Vues8ARUTNWEW3X8W + BD3JuMeB47g+fZqhvrr1X/8sO/+0bU8M+ZMEzLJwsL+/85GPfvRn9vb370IgfwcZ8uvx/RxzjvzAGbUB + PGmYRZR9lvDOO+/glVdeyW3TEd8MdHlamX+Po3dP+9Tvo+x8uhpg3u9x1y4732mRn6oz97rdzn/1Qz/0 + yXv3799CltxjRvmdGeQHzqgEEEWRqr7bbDYfS2yn1FzGmArhfRwkmlWqMO0CZlKKXsBSP2+R6+9x51wE + s+r2s56nSM8vOo8p9hdJAM8U+dMUlm1j0O8f/cjf+BuffPvtt69jembfmUF+4IwSADLUNZtN0YY7SVS1 + XPLBu66rXiQA9TvrIxirxB1yGdLLJ/39pEil+/RPCrRgKVNRN3jpi/lZxv6fFHRRvujzuO/m+GkRfjo8 + FeSPY3AZyNXv9w//6x/+4U/+6Wc/+0VkyH+EMyr263AmVQDRypthb28PaZqi1xOtvkXH3GiiNFOj0UAQ + BCrphyoHj8dj5QWgRaYb76YtOhMIISke/7SwtbWFK1euFGYL6oY/4On5/o9DMpNDz/KMpnFwk8ARIk6b + zyznemzkF52bD//LH/zBT/zpn/4pIf8BypH/zMGZlAAoQabRaODg4CCXgKMH2+jJHuR2owhA3cjm+z7C + MJwaCnycaH9SJCwbX4Z8plHMdIed1IZxEqSa5fxliHgS7l9kEzguHqLs92mRP45jQMZt9Lrdzkc++tGf + +bO33nobk8hv5vQDZ5AInBkCoKNLa2kJvV4Po+EQ7VZLdOAZjVBxXfiy4QcD4DoOHNsGA1CTFYF8z4Pr + OIikpd2yREdd13HAAJWyWwr6onsczluAUHfu3MH58+fVvTL9vjlX/7TdIgkAT9eTwXm+Q7P5u2ws17bp + +9W9GOMZ7U/T3H0CkzaTp4X8nHM4ojJU58Mf+cgnvvjFL34F+RBf4vxzmdxzUpg/AsB5IWJxZIuBMTaR + BNTQcvrrBSm9tm2jphkLdW6vi/1Tkb9orgQnlQBk/z/92KOjI1y9elUsXkiFUi7eIss/If+zhELpAJNY + wPWxuopQoC6UqRH0HEgKoOSqp8b5OaeycAf/xfd93//0pS99iQx+LyTyA/NIAICpRADAM1/0M8EpiIEi + anKhWkQU9AUNIJX7CREsyxLXeAo2gDIEL/puHkPcXUf2aecuUzUSQlxtjKVV7Sk7x2MhPwC3UsHR0dH+ + 937wg3/nK9evv4OsoMcLifzAvBIAYII76kAvzbKsXGEPcZjUlQE4kssnaQqLMfWiLduGfcqMvxPNHSgl + Bo5tI9HUjS9/+cv4Kt33T8iUpurfRCjGJlupzzzFGbcX6v7mtgKEL7IBlP3mOsLr2+neJUPgx8QNnAr5 + SV2UyP+ffe/3/vSNGzfeQbHB74VCfuAseAEKFuB4PFYvtt/v50REcYioAEPbQlnbLY5jWLIcl54qnF0q + b41+YvM39F5AZDQGWk2AKIoKiZlpAAQ024B57hn/FTE57XHGHKf9LtumI3wO6ZNEXUc/bprR8zTIT2vA + AlAR2aV73/NX/+pP37hx4wbeBZyfYH4lAB0MaYAKbgICkYajEeq1GkbjMbxKBVEcgwGKCOjInsrvetFO + +g1ohTuellFN3kutVsNBp4N6rYbhcFiY605zNnV//ZPGnGwK5eOPE7HLxhd96t9TXqLjk3QjNhSfn3NY + JcVOTov8lFpcqVTQ6XR2v/uv/JWfvnv37k3kS3m90MgPnBUCQCBFQcjUXsYYBoMBbKrvLocxAGAMKeeo + atF9VJ2XS/WBjEpJkoADsLUCnUWL8UlCtVpF8PAhOIDrN27gfe97X17X1hBfIZOB9Ket+Pu0CAB9T0uI + QO74gvtLk0QU5NAkHvpO9/6kkJ+arXY6nd3/+Lu/+6fuZ+G9ehHPCC8w8gNnjQAACjFHoxGYZcGWrr7R + aISU56vrUm8A3XhGlWBjmdyRpJONNoCnnyBU8TxE0vKcShuFukXtP+UcSSoKVpArjP6pcvBJoYwAnBT5 + dUQ3P3WDoNqenSxPMKQUkGiRf4TASZqKd1WgApxW7LctCxXfR+fgYOcvfdd3/Q9bDx/eRla7X+f8c1XB + 92nA2SMA0Nx8JYu/In3/AADNrUfBP0+i9t/jQkUWINnZ2ck6EtMC13Vu0CYtaw4AS9NjkX+ar74I0ikE + YNp5aJ5l4j+X+j70bWmq1AIz6y+hKE4ZyZkahO6xdH7Lguf72N/f3/nOv/gXP769vX0bopKP3rCzqHb/ + C4f8wBklAAoM20Bul/ycS5chMglja2sL73//+8vHcM0IJxc73bdCihNIAafh/qZBDjCwwUB4+tQJRFow + TkkymhGXJJskjhFHkfiX+nouPPo0nN+24fk+dnZ2Hn7gL/yFn9wXKb1UzKMsq2/idl8kONsEgOAME4Ky + lUULXldbUj4ZkSe/zH69JyT+6+K8PmYC8XXxXyNiE/YNZEZaM/CJI5PaTov8juPA93082Nq69+e//dt/ + stfrUSUfyud/1yE/cEYJQBiGSv+tVCpZeS25WGhRkHGQpylANfjS01f9fdKwvb2N1159tXQ/GS455xPp + waeFUxGA4gNy4woNfpYFZoxL0xSsiItzLmIz5DgiekmaoipbqVmWdWLkT2Vcf7Vaxe1bt25+27d/+/8Y + BMFD5Dn/mc/qOy2cSQLAOYfn+2AQ/nOy7idJAsu2M4ORxmHIb84sKxdW/DwhDEMsr6xMBt8AgFzw4iub + SLU9DZxK/C857iTWf/ml2DYgRX5SbaiOIqk3TpqqOg2u6yKJ45Mjf62Gt99+++3/4Nu+7achfPxUyWeA + dzHyA2eUADAmargThyR3HgHnXCGNZduKC8GwtAPPlxBcvHgRb731Vun+IiTT4aQegFmJR5n4X1bBp2i8 + OWdT5C8iBiT2k9hO6d3nz5+nk5wI+V3XRbVWwxe+8IUvfMcHPvBJZMiv1/Cbm069zwPOJAEARAKPHsyj + L7acceyYRa/vfdbE4Ju+8Run7p+FE88Ks3J/c1sZcpufUz0A+m99jIb4+j8hMVXlocSvWZp2UEZfpVJB + tVbDn/zJn/y7v/Rd3/X3IZB/Dxnn16v3viuRHzijBMCWnXWo+QMgub5liZRSQCTK6AcVSAEmzINUoIPp + +noWFX/KrvO42znniiCb44sSmvQip5QvobcBm4b8ruuiVq/j93//9//gP/me7/l5ZO26yqr3viuRHzir + BMCyJpJ5Zi6MqXO8sqIc+nlPM8GnAM+j3FcRctO2aftmOi+gpIHjSpv5vi+QXwsQOo7z/87v/M7vfvBD + H/pfkHF+qtu/QH4N5sMc/ryA8zxBKBqCF3eFPI5KMcs5y2wXJuh1/3I1ACG8NrV6Xen1pcgPkRdSq9fx + G7/xG//6gx/60D+B4Pxm6e53tc5vwpkkAKZu+QROOJMv/UUiBid5dseNncWLcNJnRm7ClHPRIKUE+SnR + y5Oc/zOf+cyvf/QHfuAXkSG/3q6LGnUukF/CmSUAT+nELyQxOM3zOs71Z46Z1XU4CzHR/23bFjUbZYlu + E/k55/A8D9Vajf/SL/7iP/2Rv/7X/w8UI38IgfgU238WXt1ThzNJAJ5JGewXlBhMg8clrDMfX+AONEue + UbdeT8YARGFYivye7/Nf+IVf+JUf/bEf+zVkBj9q0U1+fkJ+4Oy/qicGZ9II+MwNYjMYDtVQ4/fzNiI+ + LWmpSAooGnPcfjUOWemzRHMHtttt4RIMw0Lkr3he+j//3b/76U9+8pO/hax4ZxfAEJnBj8R+YIH8OTiT + BOC5wgmIAfB8CcKT0POnif2znmfC949MYqLKQNDG6Ndqt9sYDYeFyO+4bvqxj33s5//xpz71/2AS+alF + 9wudzvu4sCAAjwMnJAZA8Qp8GkThaQQNzTo+h8TmWLk/l+xjBA7pnoCVlRUcHR5OIL9l28l/+6M/+vd/ + 9Vd/9d8iX79vhAXyzwwLAvCkwESak6ToTtk3b8Sh7Dx61t+s9pAiG0CaJOq/2WiAMYbhYKCQv1KpAIzF + P/wjP/KJX//1X/93yMp2E+d/oUt4PWlYEICnBY9BEHKnmWHM01IrdPed/mlyd12EN48vO6/2A5CIn0hf + P/n7V1ZWMBwMckE+KefRR7/v+37q//7d3/0chKV/HyKjb4H8p4C5IwAUMvq8jWdPHIqQ4QkZM4tW+LRV + P218zrVnbDsub2DaGPLrKzuAFtdvSgJEAFbX1tA9PFTIH8dx+J9/8IP//R//8R9/CcVNOhfIf0KYOwIA + QCwQqn77nKfyVOEpEoWTTePJxAmofWmaLxiiuVMLxX4tEYhzjjhJ0F5eRpqmGA6HcF0XQRCMv/sv/+W/ + /ZZo1UXRfaTzv/DFO58WzCcBALIF824gBDoch4zPoBPwtO3aAPXJte/T5m8a+4B8C3AV6pskePnll3F0 + eEjdmwf/0Xd+50/cvnPnFjLk7yJfxWeB/KeA+SUABBoheNcQgWlwgmCbmfaZ43Rk1rYd5wYs3F5wnCny + m2J/FMeiSIq0C/T6/d5/+Of//I/t7OzcRVa5V6/iQ37+BfKfAuafABCQQWpBCB4LHtfFN23fNOJQlL9h + Ij8VA33p6lV0j47Q6XQ63/Kt3/pjvV7vATLO/64s3vm04OwQAIIFIXhqMCtxODb6r2R8EdfPFQJJEly5 + ehWj0QgPHz7c/aZv+ZafCIKAindOq98HLJD/VHAmcwEAKPFy8dafHswaxlsyYGJckciv/y8vL2N1dRXv + XL/+8M99wzf8WBAEDzBb8c7FMjglnD0JwISFRDAzzCrOl4n2pzYYFpwnZ/RLU3i+j5euXsXn3nzz/jd+ + 8zf/dyiu3/euLd75tODsSgAmLCQCBbP468u2Pc41zfOZHX9om478HKI19/nz5/EHf/AHX/nGb/7mn0C+ + kEeZzr941U8AXhwCQKARgsUKOTnMmhRUenzJ+CKdHxClvpeXl9N//a/+1e99xwc+8HEAD5FZ+6lhx6KK + z1OCF48AEFDEGd5dq+VJGPIe+1oF1n76zCF/pQLf96P//Vd+5de+/yMf+TnkkX9RufcZwDzYADiyXO0n + 1gEnO7sWt/6CBxU9aZF+ln3TVIsinz9kLwfLthFH0fBnfvZn/8mnP/3p34Mo3KnH9S+Kdz4DeJ4EgBA/ + 92Idx0EYhk/pii9udOGTRP5ZznscEZgAifhgDL7v85vvvHP/ez/4wZ/Z2tq6A8HxqTU3pfNSdN8C+Z8i + zAMBiOQ/AFHzv8KYyAB7kpLArGDWp3/2MzgxcH6yngEnHT8LmK3FGWOivRljsGR/Q56miMfj4f/66U// + 8499/OO/CcHx9yC4fheZpT9CCYNYwJOF50UA6MUmEGLeWN9Jvf4WMBvMwoFncfPp33Wrflk4r/69LLw3 + TVMwxtDrdnv/7x/+4Wc/8pGP/HKSJPvICnh0kdXuo6SeRQmvZwTPgwDQC6UijWMIDrCAU8Djiv5PWnXg + nCMIgrDX7Y4Gg8Hw4fb2o1/6pV/6N5/5zGe+BIHwhxBI30W+LTdZ+hdJPc8QnrWES9ezAFQA+ACWAKwA + WAfQkr8rEMTpxfVSvJhA4jpJdiEEgR9CIPtA+yRdX8/mW4T2PmN4Hioug0BsC4AHoAagof1XIQgAjTsL + avgCBOh6O9l2iAjQ/0jbTlxfPw5YIP8zg+dpAwDEAhhBvPAQgjNUANjICACwIALzDjriEjITVydJgAhC + jDzH10V+YIH8zxSeF2Lp3N2GIESu/G4i/wLODkwjBKn2WdSea4H4zwGeJ2fViQARAsvYt4CzByZSp8an + mcG3QPznCM+bABDoiL8Q918cMCUCfZv5fQHPAeYB2cw5zMOcFvDkwETyBdLPEcwbss3bfBbw+LBA+AUs + YAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCAZwD/PyiHNsJETgDeAAAAAElF + TkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAERERAREREQETExMBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUVFQEVFRUBFRUVARUV + FQEVFRUBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBFBQUARQUFAEUFBQBExMTARISEgEQEBABDg4OAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBOzs7AxsbGwYdHR0HHh4eCSEhIQkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQk + JAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkkJCQJJCQkCSQkJAkjIyMJIyMjCSMjIwkjIyMJIyMjCSMj + IwkjIyMJIiIiCSIiIgkiIiIJISEhCR4eHggaGhoHKCgoBTIyMgMrKysBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdH + RwQSEhINAAAAGAAAACAAAAAjAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAjAAAAIQAA + AB0AAAAWAAAADyEhIQg/Pz8ENTU1AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4CExMTCgAAACIAAABAAAAAVgAAAFwAAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAA + AF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF0AAABaAAAAUgAAAEQAAAAwAAAAHQAAAA81NTUGPj4+AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERE + RAMAAAARAAAAOf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+ + /v/+/v7//f39//z8/P/8/Pz/+/v7//v7+//6+vr/+Pj4//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs + 7P3f39/1t7e31l9fX5oAAABLAAAALAAAABUSEhIJQ0NDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIBQAAABUAAABH//////r6+//29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//X19v/19fb/9fX2//X19v/09PX/9PT1//Pz9P/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//t7e7/6+vs/+rq6//o6On/5+fn/+Xl5v/j4+P/4ODh/8bGx+U2Njd7AAAANwAA + ABoTExMKRUVFBDc3NwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABOTk4FAAAAGAAAAEv/////9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X1 + 9v/19fb/9fX2//T09f/09PX/8/P0//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+zs7f/r6+z/6urr/+jo + 6f/n5+f/5OTl/+Hh4v/d3d7/19fY/9XV1fxxcXGgAAAAPwAAAB4TExMMR0dHBDg4OQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXVwUAAAAYAAAATP/////19fb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//X19v/19fb/9PT1//T09f/z8/T/8/P0//Ly + 8//x8fL/8PDx/+/v8P/u7u//7e3u/+zs7f/q6uv/6Ojp/+jo6P/l5eb/4uLj/9/f4P/Z2dr/0tLT/9XV + 1f6RkZG8AAAARAAAACETExMMR0dIBDk5OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////X19v/19fb/9fX2//X19v/19fb/9fX2//X19v/29vb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9fX2//X19v/09PX/9PT1//T09f/z8/T/8vLz//Hx8v/w8PH/7+/w/+7u7//t7e7/7Ozt/+rq + 6//p6er/6Ojo/+fn6P/k5OX/4ODh/9zc3f/W1tf/zc3O/9jY2f+fn6DJAAAARwAAACITExMNSUlJBDo6 + OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9fX2//X1 + 9v/19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//X19v/09PX/9PT1//Pz + 9P/y8vP/8vLz//Hx8v/w8PH/7+/w/+3t7v/s7O3/6+vs/+np6v/o6On/5+fo/+Xl5v/i4uP/39/g/9ra + 2//T09T/ycnK/9/f4P+hoaLOAwMDSQAAACMUFBQNSkpLBDs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////19fb/9fX2//X19v/29vb/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//X19v/19fb/9fX2//X19f/09PX/8/P0//Pz9P/y8vP/8fHy//Hx8f/v7/D/7u7v/+3t + 7v/r6+z/6urr/+jo6f/n5+j/5ubn/+Pj5P/g4OH/3Nzd/9bW1//Ozs//ycnJ/+rq6v+oqKnTBwcITQAA + ACUAAAAONzc3BDs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////X1 + 9v/29vb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//X1 + 9f/09PT/9PT0//Pz8//y8vL/8fHx//Dw8P/v7+//7u7u/+3t7f/r6+v/6enp/+jo6P/n5+f/5OTl/+Li + 4//e3t//2trb/9PT1P/Jycr/3t7f/97e4P+wsLLYDQ0NUQAAACYAAAAPNzc3BTw8PAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/29vf/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Ly8//y8vL/8fHx/+/v + 8P/u7u//7e3u/+vr6//q6ur/6Ojo/+jo6P/m5ub/5OTk/+Hh4f/c3N3/1tbX/83Nzv/Ozs//6urr/9zc + 3v+5ubrcExMTVgAAACgAAAAQNzc4BTw8PQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//b2 + 9//19fb/9fX2//T09f/z8/T/8/P0//Ly8//x8fL/8PDx/+/v8P/t7e7/7Ozt/+rq6//p6er/6Ojo/+bm + 5v/k5OX/4uLi/97e3v/a2tr/0tLS/8fHx//w8PD/39/h/93d3//CwsPgGhoaWwAAACkAAAAQODg4BT4+ + PgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b29//19fb/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9vb3//X19v/19fb/9PT1//T09f/z8/T/8vLz//Hx + 8v/w8PH/7+/w/+7u7//s7O3/6+vs/+np6v/o6On/5+fn/+Xl5v/j4+T/39/g/9vb2//U1NX/ysrK/+jo + 6P/m5uf/39/h/93d3//KysvkICAgYQAAACsAAAAROTk5BT8/QAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9vb3//b29//29vf/9vb3//X19v/19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/19fb/9PT1//Pz9P/y8vP/8fHy//Dw8f/v7/D/7u7v/+3t7v/r6+z/6urr/+jo + 6f/n5+f/5ubm/+Tk5f/h4eL/3d3e/9bW1//Nzc7/4ODg/+7u7//l5ef/39/h/93d3//Q0NHpJSUlZgAA + ACwAAAATOTk6BkBAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9fX2//X19v/09PX/8/P0//Pz + 9P/y8vP/8fHy//Dw8f/v7/D/7e3u/+zs7f/q6uv/6enq/+jo6P/m5ub/5OTl/+Hh4v/d3d7/2NjZ/8/P + 0P/W1tf/9PT0/+rq6//l5ef/39/h/9zc3v/U1NbtKSkpbAAAAC4AAAATOjo7B0FBQgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////b29//29vf/9vb3//b29//09PT/8/P0//Pz9P/09PX/9fX2//X19v/29vf/9vb3//f3 + 9//39/f/9/f3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//b29//29vf/9fX2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9v/09PX/9PT1//T09f/z8/T/8/P0//Ly8//y8vP/8fHy//Dw8f/w8PH/7+/w/+3t7v/s7O3/6+vs/+np + 6v/o6On/5ubn/+Xl5f/k5OT/4eHi/93d3v/Y2Nn/z8/Q/8/P0P/4+Pj/7u7v/+rq6//l5ef/39/h/9vb + 3f/X19nwLS0tcAAAADAAAAAUOzs7B0JCQwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Ly + 8//x8fL/8fHy//T09f/19fX/9PT1//X19v/29vf/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/T09T/y8vL/8vLy//Ly8v/ysrK/8jI + yP/Gxsb/xcXG/8XFxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8XFxv/FxcX/xcXF/8TExf/ExMX/xMTE/8PD + xP/CwsP/wsLC/8HBwv/AwMH/v7/A/76+v/+9vb3/vLy8/7u7u/+6urr/uLi4/7a2t/+0tLX/sbGy/62t + rf+mpqf/p6eo//r6+//x8fL/7u7v/+rq6//l5ef/39/h/9ra3P/Z2dvzMDAwdQAAADEAAAAVOjo7B0FB + QgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBg + YAUAAAAYAAAATP/////29vf/9vb3//b29//29vf/9PT1//Hx8v/19fb/9vb3//b29v/29vb/9vb2//f3 + 9//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4/9bW1v/Q0NH/4eHi/+Dg4f/d3d7/1tbX/9DQ0f/Q0NH/0NDR/9DQ0f/Q0NH/0NDR/9DQ + 0f/Q0NH/0NDR/8/P0P/Pz9D/z8/Q/87Oz//Ozs//zc3O/83Nzv/Nzc3/zc3N/8zMzf/Ly8z/ysrL/8nJ + yv/Hx8j/xsbG/8XFxf/Dw8P/wMDB/76+vv+8vL3/uLi5/7Gxsv+pqar/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/39/h/9ra3P/a2tz2Nzc3ewAAADQAAAAWOjo6B0BAQQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/29vc/8fHyP/h4eL/4ODh/9zc + 3f/T09P/zMzN/8/P0P/R0dL/0tLS/9LS0v/S0tL/0tLS/9LS0//S0tP/0dHS/9HR0v/R0dL/0NDR/9DQ + 0P/Pz8//z8/P/87Oz//Ozs//zs7O/83Nzf/Ly8z/ysrL/8nJyv/Hx8n/xsbH/8XFxv/Dw8T/wMDB/76+ + vv+6urv/s7O0/6mpqv/19fX/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9nZ2//b29z4Pj4+gAAA + ADUAAAAXOTk6CD8/QAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABgYGAFAAAAGAAAAEz/////9vb3//b29//29vf/9vb3//Hx8f/v7/D/7Ozt/+/v7//x8fL/7+/w//Hx + 8v/z8/T/9PT1//T09f/19fb/9vb2//b29//29vf/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/Z2dr/ysrK/+Hh4f/h4eH/3d3e/9TU1P/Pz9D/1NTV/9jY2f/Z2dr/2dna/9nZ + 2v/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9jY2f/X19j/19fY/9bW1//W1tf/1dXW/9XV1v/U1NX/09PU/9LS + 0//R0dH/0NDQ/87Ozv/Nzc3/zMzN/8vLzP/Jycr/xcXG/8HBwv+6urv/sLCx//T09P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/39/h/9jY2//a2tv5QEBBgwAAADcAAAAXERERCT4+PwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////29vf/9vb3//b2 + 9//29vf/8PDx/+rq6//u7u//8/P0//Ly8//w8PH/7+/w//Hx8v/y8vL/9PT1//X19v/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4/9jY2P/f3+D/zMzN/+Hh + 4v/e3t//1tbX/9HR0v/U1NX/2dna/9vb3P/b29z/29vc/9vb3P/b29z/29vc/9vb3P/a2tv/2trb/9ra + 2//Z2dr/2dna/9jY2f/Y2Nn/19fY/9fX2P/W1tf/1dXW/9TU1f/T09T/0tLT/9DQ0f/Pz9D/zs7O/8zM + zP/Jycr/w8PF/729vv+0tLT/8/Pz//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/39/h/9jY + 2v/X19r5Q0NDhgAAADgAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAYGBgBQAAABgAAABM//////b29//29vf/9/f3//f39//19fb/8/P0//f3+P/39/j/9vb3//b2 + 9//29vf/9fX2//X19v/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/+Pj4//j4+P/4+Pj/19fX/+Li4//Ly8v/4eHi/9/f4P/Z2dn/1NTU/9TU1f/Z2dn/3Nzd/93d + 3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Y2Nn/2NjZ/9jY + 2P/X19f/1dXW/9TU1f/T09T/0dHS/9DQ0f/Pz9D/zc3O/8rKy//Gxsb/vr6//7W1tf/z8/P/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9fX2f/W1tj6RUVGhwAAADkAAAAYERERCT09 + PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9vb3//f3 + 9//39/f/9/f3//b29//v7/D/9fX2//Ly8v/09PX/9PT1//X19v/09PT/9fX2//T09f/19fb/9vb3//b2 + 9//39/j/9/f4//f3+P/39/j/9/f4//f3+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/X19f/4uLj/8/P + z//d3d3/4ODg/9vb3P/X19j/1dXW/9fX2P/b29z/3d3e/93d3v/d3d7/3d3e/93d3v/d3d7/3Nzd/9zc + 3f/c3N3/29vc/9vb3P/a2tv/2trb/9nZ2v/Z2dr/2dnZ/9jY2P/X19f/1dXW/9TU1P/S0tP/0dHR/9DQ + 0f/Ozs//y8vM/8fHyP/AwMH/t7e3//T09P/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9bW2f/V1df6R0dIiQAAADoAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/8/Pz/+zs7P/n5+f/7+/v/+3t + 7f/v7+//7+/v//Dw8P/u7u7/8PDw//Ly8v/y8vL/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//f3 + 9//4+Pj/+Pj4//j4+P/4+Pj/+Pj4/9fX1//j4+P/4+Pj/8zMzP/g4OD/3Nzc/9nZ2f/W1tb/1tbW/9vb + 2//d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ + 2f/Z2dn/2NjY/9fX1//W1tb/1dXV/9PT0//S0tL/0dHR/8/Pz//Nzc3/yMjI/8HBwf+4uLj/9PT0//r6 + +v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/T09X6SUlJiwAA + ADkAAAAYERERCT09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f3 + 9//39/f/9/f3//f39//y8vL/6Ojo//Hx8f/w8PD/9PT0//T09P/x8fH/8vLy//T09P/09PT/8fHx//Ly + 8v/19fX/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//b29v/4+Pj/+Pj4//j4+P/4+Pj/19fX/+Pj + 4//j4+P/y8vL/+Dg4P/d3d3/3d3d/9nZ2f/W1tb/2dnZ/93d3f/e3t7/3t7e/97e3v/e3t7/3t7e/93d + 3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9PT + 0//R0dH/0NDQ/87Ozv/Kysr/xMTE/7q6uv/19fX/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T0 + 9f/x8fL/7u7v/+rq6//l5ef/3t7g/9bW2P/S0tT7S0tMiwAAADgAAAAXNzc4Bz09PQIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgYGAFAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/W1tb/5OTk/+Tk5P/W1tb/1tbW/97e3v/f39//3Nzc/9fX + 1//Y2Nj/3Nzc/93d3f/e3t7/3t7e/97e3v/e3t7/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/29vb/9vb + 2//a2tr/2tra/9ra2v/Z2dn/2NjY/9fX1//W1tb/1NTU/9PT0//R0dH/z8/P/8zMzP/Gxsb/vb29//b2 + 9v/7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV + 1//Pz9H6QEBBhQAAADYAAAAXNjY3Bzw8PQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP// + ///39/f/9/f3//f39//39/f/9PT0/+rq6v/v7+//7Ozs//Dw8P/v7+//8vLy//Dw8P/x8fH/8fHx//Pz + 8//09PT/9fX1//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//f39//39/f/9/f3/9bW + 1v/k5OT/5OTk/+Li4v/Jycn/3t7e/+Hh4f/f39//2dnZ/9fX1//b29v/3t7e/9/f3//f39//39/f/9/f + 3//e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/c3Nz/29vb/9vb2//a2tr/2tra/9nZ2f/Z2dn/2NjY/9bW + 1v/V1dX/1NTU/9LS0v/Q0ND/zs7O/8nJyf/AwMD/9/f3//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4 + +P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq6//l5ef/3t7g/9XV1//Ly874NTU1fgAAADQAAAAWNjY3Bzs7 + PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAAABgAAABM//////f39//39/f/9/f3//f39//y8vL/6Ojo/+fn + 5//o6Oj/6urq/+3t7f/o6Oj/6+vr/+vr6//r6+v/7e3t/+/v7//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/9/f3//T09P/29vb/9fX1//X19f/29vb/1dXV/+Tk5P/k5OT/4+Pj/8vLy//f39//4uLi/+Li + 4v/c3Nz/19fX/9ra2v/d3d3/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/93d + 3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/19fX/9bW1v/V1dX/1NTU/9LS0v/Pz8//zMzM/8bG + xv/5+fn//Pz8//v7+//7+/v/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//T09f/x8fL/7u7v/+rq + 6//l5ef/3t7g/9XV1//Hx8r1LCwsdwAAADEAAAAUNTU2Bjs7PAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAFAAAAGAAA + AEz/////9/f3//f39//39/f/9/f3//Pz8//o6Oj/8fHx//b29v/29vb/9vb2//b29v/29vb/+Pj4//f3 + 9//x8fH/8vLy//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/29vb/9fX1//X19f/29vb/9fX1//f3 + 9//X19f/4+Pj/+Tk5P/j4+P/2dnZ/9DQ0P/i4uL/4+Pj/97e3v/Y2Nj/2NjY/9zc3P/e3t7/39/f/9/f + 3//f39//3t7e/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9bW1v/V1dX/09PT/9HR0f/Ozs7/ysrK//b29v/4+Pj/9vb2//Pz8//x8fH/7+/v/+3t + 7f/q6ur/4+Pj/+bm5v/m5ub/7e3t//b29v/19fX/8vLz/+zs7f/l5ef/3t7g/9TU1v/CwsXyJiYmbwAA + AC8AAAASNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/7+/v/9zc3P/l5eX/5eXl/+Pj4//g4OD/ysrK/+Li + 4v/k5OT/4eHh/9vb2//Y2Nj/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f + 3//e3t7/3d3d/93d3f/c3Nz/29vb/9vb2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9DQ + 0P/Nzc3/ysrK/8bGxv/BwcH/vb29/7q6uv+3t7f/tbW1/7Ozs/+cnJz/q6ur/6urq/+vr6//rq6u/6Gh + of/CwsL/z8/P/9bW1v/l5eX/5+fo/9bW2P+9vcDuISEiaQAAACwAAAARNTU1BTs7OwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgBQAA + ABgAAABM//////f39//39/f/9/f3//f39//w8PD/6Ojo/+fn5//n5+f/6urq/+vr6//u7u7/6+vr/+zs + 7P/t7e3/8PDw//j4+P/19fX/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/9PT0//Pz8//z8/P/9PT0//Pz + 8//k5OT/4eHh/+Li4v/k5OT/4+Pj/+Dg4P/MzMz/4eHh/+Xl5f/j4+P/3d3d/9jY2P/a2tr/3t7e/+Dg + 4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb + 2//b29v/2tra/9nZ2f/Y2Nj/19fX/9bW1v/V1dX/09PT/9HR0f/Ozs7/y8vL/8nJyf/Gxsb/xMTE/8LC + wv+/v7//s7Oz/66urv+1tbX/ubm5/7y8vP+7u7v/q6ur/8HBwf/AwMD/v7+//7y8vP+9vb3/1tbW/+Pj + 5f+8vL7qHh4eYgAAACkAAAAPNTU1BTs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz/////9/f3//f39//39/f/9/f3//Ly + 8v/k5OT/5+fn/+bm5v/r6+v/7e3t/+bm5v/p6en/6urq/+jo6P/z8/P/8fHx//T09P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/w8PD/8/Pz//Hx8f/09PT/8vLy/+Dg4P/j4+P/4eHh/+Xl5f/i4uL/39/f/97e + 3v/Pz8//5eXl/+Xl5f/g4OD/2dnZ/9nZ2f/d3d3/4ODg/+Hh4f/h4eH/4eHh/+Dg4P/g4OD/39/f/9/f + 3//f39//39/f/97e3v/e3t7/3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/29vb/9nZ2f/Z2dn/19fX/9bW + 1v/V1dX/09PT/9LS0v/Q0ND/zs7O/8zMzP/Ly8v/ycnJ/8jIyP+wsLD/vr6+/729vf/Dw8P/xsbG/8XF + xf+4uLj/xcXF/83Nzf/Nzc3/ysrK/8XFxf/AwMD/vb29/9vb2//ExMXnGxscXQAAACYAAAAOSkpKBDs7 + OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP/////39/f/9/f3//f39//39/f/9vb2/+fn5//19fX/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4/+/v7//w8PD/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//b29v/19fX/9vb2//f3 + 9//5+fn/4+Pj/+Tk5P/k5OT/5ubm/+Xl5f/h4eH/4eHh/9DQ0P/m5ub/5ubm/+Pj4//c3Nz/2NjY/9zc + 3P/f39//4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/d3d3/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2NjY/9fX1//V1dX/1NTU/9LS0v/R0dH/0NDQ/8/P + z//Ozs7/zMzM/7W1tf/Dw8P/xsbG/8vLy//MzMz/zMzM/8bGxv/Gxsb/1tbW/9bW1v/V1dX/0dHR/83N + zf/Hx8f/wMDA/8vLy//GxsflGhoaWAAAACQUFBQNSUlJAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+//b29v/29vb/9vb2//f3 + 9//39/f/9/f3//f39//29vb/9vb2//f39//39/f/9vb2//f39//29vb/9vb2//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9/f3//j4+P/4+Pj/+Pj4//j4+P/k5OT/5eXl/+bm5v/l5eX/4+Pj/+Dg + 4P/g4OD/1dXV/+Dg4P/l5eX/5OTk/97e3v/X19f/2tra/97e3v/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/f39//39/f/9/f3//f39//39/f/97e3v/f39//3t7e/97e3v/d3d3/3Nzc/9vb2//b29v/29vb/9ra + 2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9TU1P/S0tL/0dHR/9HR0f/BwcH/wsLC/8jIyP/Nzc3/0dHR/9DQ + 0P/Pz8//zMzM/8jIyP/b29v/3d3d/9zc3P/a2tr/1tbW/9LS0v/Nzc3/xsbG/8fHx/+7u7vbBwcHSQAA + ABwpKSkIRUVFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz9/f3/9fX1//X19f/29vb/9vb2/+/v7//i4uL/2tra/+Hh4f/h4eH/5OTk/+fn + 5//k5OT/4+Pj/+Hh4f/o6Oj/6enp//Hx8f/19fX/9fX1//X19f/29vb/9vb2//b29v/v7+//6+vr/+zs + 7P/t7e3/7Ozs/9zc3P/d3d3/3t7e/+Dg4P/d3d3/29vb/93d3f/g4OD/0NDQ/+Pj4//j4+P/39/f/9jY + 2P/X19f/3Nzc/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e + 3v/e3t7/3t7e/97e3v/d3d3/3d3d/9zc3P/b29v/29vb/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9TU + 1P/T09P/0tLS/7u7u//Kysr/y8vL/9HR0f/U1NT/1NTU/9PT0//Q0ND/y8vL/97e3v/g4OD/4eHh/9/f + 3//e3t7/2tra/9bW1v/R0dH/zMzM/8rKyv+fn6DEAAAANwAAABJQUFAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPz8/P/09PT/9PT0//T0 + 9P/09PT/7Ozs/9fX1//n5+f/4+Pj/+vr6//s7Oz/4+Pj/+bm5v/p6en/6enp/+Li4v/o6Oj/7+/v//Pz + 8//z8/P/9PT0//T09P/09PT/9PT0/+/v7//p6en/5+fn/+vr6//t7e3/29vb/93d3f/Y2Nj/4ODg/97e + 3v/X19f/3Nzc/+Dg4P/Nzc3/4uLi/+Li4v/e3t7/2NjY/9XV1f/Y2Nj/29vb/9zc3P/d3d3/3d3d/93d + 3f/d3d3/3d3d/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc3P/b29v/29vb/9ra + 2v/a2tr/2tra/9nZ2f/Y2Nj/19fX/9bW1v/W1tb/1dXV/9TU1P/S0tL/u7u7/8vLy//Ozs7/1dXV/9bW + 1v/W1tb/1dXV/9PT0//Nzc3/4ODg/+Pj4//k5OT/4+Pj/+Li4v/g4OD/3d3d/9nZ2f/W1tb/0NDQ/9ra + 2v09PT5xAAAAISsrKwhCQkIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXl5eBQAAABgAAABM+fn5//Ly8v/y8vL/8vLy//Ly8v/y8vL/6Ojo//Hx8f/x8fH/8fHx//Hx + 8f/x8fH/8fHx//Dw8P/w8PD/7+/v/+7u7v/w8PD/8PDw//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/+/v + 7//v7+//8PDw//Dw8P/c3Nz/39/f/97e3v/f3+D/3d3d/9ra2v/c3Nz/39/f/9fX1//X19f/4eHh/9/f + 3//Z2dn/0tLS/9LS0v/U1NT/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/19fX/9fX + 1//Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/X19f/19fX/9bW1v/W1tb/1tbW/9XV1f/V1dX/09PT/9LS + 0v/S0tL/0dHR/7+/v//Jycn/zMzM/9PT0//X19f/2NjY/9fX1//X19f/1dXV/87Ozv/h4eH/4+Pj/+bm + 5v/m5ub/5eXl/+Tk5P/i4uL/39/f/93d3f/a2tr/2tra/52dnb4AAAAwAAAADUtLSwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz39/f/8PDw//Dw + 8P/v7+//7+/v/+/v7//f39//6+vr/+Pj4//o6Oj/5+fn/+rq6v/l5eX/6enp/+Xl5f/n5+f/6urq/+nq + 6v/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/q6ur/6enp/+Xl5f/n5+f/6urq/9XV1f/a2tr/19fX/9vb + 2//Z2dn/1dXV/9fX1//b29v/29vb/8rKyv/d3d3/3d3d/9nZ2f/Q0ND/y8vL/8zMzP/Nzs7/zs7O/87O + zv/Ozs7/z8/P/9DQ0P/Pz8//z8/P/8/Pz//Q0ND/0NDQ/9DQ0P/R0dH/0tLS/9LS0v/S0tL/09PT/9LS + 0v/S0tL/0dHR/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/83Nzf/Nzc3/ubm5/8rKyv/Pz8//1tbW/9nZ + 2f/a2tr/2dnZ/9jY2P/W1tb/z8/P/+Pj4//l5eX/5+fn/+fn5//n5+f/5ubm/+Xl5f/k5OT/4uLi/+Dg + 4P/g4OD/zc3N5AAAADsAAAARVVVVAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPX19f/u7+//7u7u/+3t7v/t7e3/5eXl/9nZ2f/Nzc3/29vb/9fX + 1//a2tr/2tvb/9vb2//T1NT/2NjY/+Dg4P/b29v/6enq/+rq6v/q6ur/6urq/+rq6v/p6ur/6urq/+Xl + 5f/e3t7/4ODg/+Xm5v/b29v/z8/P/9LT0//T09P/19fX/9HR0f/Q0ND/0dHS/9TV1f/X19f/wsLD/7+/ + v/+/v7//vLy8/7W2tv+0tbX/tra2/7e3t/+4uLj/uLi5/7m5uf+5ubn/ubm5/7q7u/+6urv/urq6/7u7 + u/+7u7v/vLy8/729vf++vr7/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+7u7v/u7u7/7q6 + uv+5ubn/uLi4/7e3t/++vr7/0NDQ/9XV1f/a2tr/3Nzc/9vb2//b29v/2tra/9jY2P/Q0ND/5eXl/+fn + 5//p6en/6enp/+np6f/o6Oj/6Ojo/+bm5v/l5eX/5OTk/+Pj4//h4eL2AAAARAAAABReXl4EAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9fX1/+7u + 7v/t7e7/7e3t/+zt7f/k5OT/0dHR/+Li4v/e3t7/5ebm/+Xm5v/d3t7/4ODg/+Tl5f/h4uL/19fX/+Hh + 4f/k5eX/6erq/+np6v/p6en/6Onp/+jp6f/p6en/4uLj/97e3v/f4OD/39/f/+Tl5f/Nzc3/09PU/9LS + 0//W1tb/1dbW/83Nzf/T09T/19fY/9bX1//Fxsb/y8vM/8nKyv/IyMn/xcXG/8XFxf/HyMn/ycrK/8nJ + yv/Ly8v/y8vM/8zMzP/MzMz/zMzM/8zNzf/MzM3/zM3N/87Ozv/Pz8//0NDQ/9LS0v/S0tL/0tLS/9LS + 0v/S0tL/0dHR/9HR0f/R0dH/0dHR/9DQ0P/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8rKyv/Z2dn/2dnZ/9zc + 3P/e3t7/3d3d/9zc3P/b29v/2tra/9HR0f/m5ub/6enp/+vr6//r6+v/6urq/+rq6v/p6en/6enp/+jo + 6P/o6Oj/5ubm/+zs7P0AAABJAAAAFmVlZgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19fb/7e7v/+3t7v/s7e7/7O3u/+zs7f/s7O3/7Ozt/+zs + 7P/r6+z/6+vs/+rr6//q6+z/6+vs/+vr7P/q6+z/6uvr/+rr6//p6uv/6err/+nq6v/p6ur/6enq/+np + 6v/p6er/6enq/+np6v/p6er/6Onq/9LT1P/a29v/2tvb/9rb2//X2Nj/1NXW/9bW1//Z2dv/2tvc/8fI + yP/Nzs7/zc7O/8vMzP/HyMn/ycnK/8zNzv/Ozs//zs7P/83Oz//Oz8//zs/Q/8/P0P/Oz9D/zs/Q/87P + 0P/Pz8//0NDQ/9HR0f/T09P/1NTU/9XV1f/V1db/1dXV/9XV1f/V1dX/1NTV/9TU1P/U1NT/09PU/9PT + 0//T09P/0tLS/9HR0f/Q0ND/zc3N/9zc3f/b29v/3d3d/97e3//e3t//3t7e/93d3f/b29v/0dHR/+fn + 5//q6ur/7Ozs/+zs7P/s7Oz/6+vr/+vr6//q6ur/6urq/+np6v/o6On/8PDw/wAAAEsAAAAYampqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/t7vD/7e7v/+3u7//t7u//6Onq/9jZ2//h4eL/2tvc/+Dg4v/f4OH/5OXm/97f4f/g4eL/3uDh/+vs + 7f/k5eb/5ebo/+rr7f/q6+z/6uvs/+rr7P/q6+z/6uvs/+Hi4//j5OX/3t/g/+Lj5f/j5OX/zM3O/9bX + 2P/U1NX/2drb/9XX2P/Q0dP/1NXW/9bY2f/W19n/xcbH/8vMzf/Mzc//ysvN/8XGyf/HyMr/zM3P/83O + z//Mzc//zM3O/83Oz//Nz9D/zc/Q/83Oz//NztD/z8/Q/8/Q0P/Q0ND/0tLS/9PT1P/V1dX/1tbW/9bW + 1//W1tf/1tbX/9bW1v/W1tb/1dXW/9TU1f/U1NT/09PU/9PT1P/T09P/0tLT/9HR0v/MzMz/3Nzd/9vb + 3P/e3t7/4ODg/9/f4P/f3+D/3t7f/9zc3P/Q0ND/6enp/+zs7P/t7e7/7e3u/+zs7f/s7O3/6+vs/+vr + 7P/r6+z/6urr/+rq6//y8vL/AAAATAAAABhtbW0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3u8P/m5+j/1tfY/9PU + 1f/V1tf/2Nna/9vc3v/T1Nb/19jZ/9XW2P/V1tf/1tfY/9na3P/n6Or/6+zu/+vs7v/r7O3/6+3t/+vs + 7f/r7O3/5+jp/+Hi4//j5OX/4+Tl/9rb3P/Q0dP/19jZ/9XX2P/W19j/0dLT/87P0P/S1NX/1dXX/9bX + 2P/Exsf/y8zO/8nLzP/HyMr/wsTG/8XHyf/LzM3/y83O/8zNzv/Mzc//zM3O/8zOz//Mzs//zc7P/87P + 0P/Pz9H/0NDR/9HR0v/S0tP/1NTV/9bW1v/X19f/19fY/9jY2P/Y2Nj/19fX/9bW1//W1tb/1tbW/9XV + 1f/U1NX/1NTU/9PT1P/T09T/09PT/8zMzf/e3t7/3Nzc/97e3//g4OH/4eHh/+Dg4f/f3+D/3t7e/9HR + 0v/q6ur/7e3t/+/v7//u7u//7u7v/+3t7v/t7e7/7e3u/+zs7f/s7O3/7Ozt//Pz8/8AAABMAAAAGG5u + bgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7u/w/+7v8P/t7/D/7e7w/+jp6v/X2Nn/5Obm/+vs7f/r7e7/6+zu/+rr7P/q6+3/7O3v/+vs + 7f/n6Or/4ePk/+rr7f/r7O7/7O3u/+zt7v/r7e7/6+zt/+vs7f/j5Ob/4uPl/+Hi5P/k5uf/6evs/87P + 0f/X2Nr/1NbX/9na2//Z2tv/0tTV/9na3P/b3d//293f/8nKzP/P0dL/z9DR/83O0P/Ky83/y8zO/87Q + 0f/O0NH/zc/Q/8/Q0f/O0NH/z9DR/8/Q0f/P0NH/z9DR/8/Q0v/Q0dL/0tPU/9XV1f/W1tb/19fX/9fX + 2P/Y2Nj/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tf/1tbW/9bW1v/V1dX/1NTU/9PT1P/T09T/zc3O/97e + 3//d3d3/39/g/+Hh4v/h4eL/4eHh/+Dg4f/f3+D/0tLT/+vr6//t7e3/7+/v//Dw8P/v7/D/7+/w/+7u + 7//u7u//7u7v/+3t7v/t7e7/9fX1/wAAAEwAAAAYb29vBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7e/w/+3u8P/u7/D/7u/v/+7v + 7//t7u//7e7v/+3u8P/t7vD/7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/6+zu/+zt7v/r7e7/6+3u/+vs + 7f/r7O3/6+zt/+rs7f/q7O3/6uvt/+rr7f/q6+3/1NXW/93e3//c3t//2tze/9XX2f/W2Nr/2dvc/9zd + 3v/d3t//ycvN/9DR0v/Q0dL/zM7P/8fJyv/Lzc//z9HS/8/R0v/P0dL/z9HT/8/R0v/P0dL/z9HS/8/R + 0v/P0dL/z9DR/9DR0v/U1NX/1tbX/9fX2P/Y2Nn/2dnZ/9nZ2f/Z2dr/2dnZ/9nZ2f/Y2Nn/2NjY/9fX + 2P/W1tf/1tbX/9bW1v/V1db/1NTV/9TU1P/Nzc7/39/g/97e3//g4OD/4uLi/+Li4//i4uP/4eHh/+Dg + 4P/T09P/7Ozs/+7u7v/w8PD/8vLy//Hx8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u7//29vb/AAAATAAA + ABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb3/+7v8P/t7/D/7u/w/+7v8P/k5ef/19na/9XX2P/V19j/2drc/9na3P/f4OH/2tvd/9rb + 3P/b3N7/3+Dh/9/g4v/m6On/6+3u/+vt7v/r7O3/6+zt/+rs7f/q7O3/4uTm/9ze4P/f4OH/3+Dh/93e + 4P/Nz9D/0tTW/9PV1//W2Nn/z9HS/8/Q0v/S1NX/1dfY/9XW2P/Fx8j/yszO/8nLzf/Iycv/w8XH/8fJ + y//Mzs//ztDR/8zOz//MztD/zM3P/8zOz//Oz9D/zc7P/8zOz//Oz9H/0NDR/9PT1P/W1tb/2NjZ/9nZ + 2f/Z2dn/2dna/9nZ2v/Z2dr/2dna/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbX/9bW1v/W1tb/1dXW/87O + zv/g4OH/3t7f/+Hh4v/j4+P/4+Pk/+Li4//i4uP/4eHh/9TU1f/t7e7/7u7u//Hx8f/z8/P/8vLy//Ly + 8v/x8fL/8PDx//Dw8f/w8PH/8PDx//f39/8AAABMAAAAGHBwcQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+bn + 6f/T1NX/1tfZ/9XW1//b3N7/3d/g/9PU1f/W19n/2Nna/9PU1v/k5ef/2dvc/+Xn6P/r7O3/6+zt/+vs + 7f/q7O3/6uzu/+rs7f/h4uP/3d7g/9ja2//c3t//293e/8zOz//T1df/zc/Q/9bX2P/Q0dP/ztDR/9PU + 1v/U1df/1NbX/8LExf/Mzs//yMrL/8jJyv/Exsj/x8nL/8vMzv/O0NH/ysvN/8vNzv/Nz9D/y83O/8zO + z//Nz9D/zM3P/8/Q0f/Q0dL/09PT/9XW1v/Y2Nn/2dna/9nZ2v/a2tv/2tra/9nZ2v/Z2dr/2tra/9nZ + 2v/Z2dn/2NjZ/9jY2f/Y2Nj/19fY/9bW1//W1tb/zs7O/+Hh4f/g4OD/4uLj/+Tk5f/k5OT/4+Pk/+Pj + 5P/i4uP/1NTV/+3t7v/v7/D/8vLy//Pz8//z8/P/8/Pz//Ly8//x8fL/8fHy//Hx8v/x8fL/+fn5/wAA + AEwAAAAYcXFxBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/u7/D/6uzt/9bX2f/o6ev/7O7v/+zu7//s7e//7O3v/+zt + 7//r7e7/6+zu/+Lk5f/l5uj/6+3t/+vt7f/r7O3/6uzt/+rs7v/q7O7/6uzt/+rr7f/k5ef/4uPl/+bo + 6v/l5+j/1dfY/9na3P/V19n/2tze/9jZ2//W2Nr/2dvd/9zd3//c3d//yMrL/9DR0//P0NL/zM3P/8nL + zP/KzM7/zc/R/87Q0v/O0NL/ztDS/8/R0v/P0dL/z9HT/9DR0//Q0dP/0dPT/9TU1P/W1tf/2NjZ/9nZ + 2v/a2tv/2trb/9vb3P/b29v/29vb/9ra2v/Z2dr/2dna/9nZ2f/Y2Nn/2NjZ/9jY2P/X19j/19fX/9bW + 1//Ozs//4uLj/+Dg4P/i4uP/5OTl/+Xl5v/l5eX/5OTk/+Pj5P/U1NX/7u7v//Dw8f/z8/T/9PT0//T0 + 9P/09PT/9PT0//Ly8//y8vP/8vLz//Ly8//6+vr/AAAATAAAABhxcXEFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+7v + 7//t7u//7O3v/+3u8P/s7e//7O3v/+zt7//s7e//6+3u/+vt7v/r7O7/7O3u/+vt7v/r7e7/6+zt/+vs + 7f/q7O7/6uzu/+rs7v/q6+3/6uvt/+nr7P/p6+3/6ers/+Lj5P/Y2tv/3d7g/9ze4P/b3d7/09XX/9fZ + 2v/a29z/29ze/9jZ2v/Jy8z/zM3P/8nLzP/Exsf/v8HD/8bIyv/Jy8z/yszN/8rMzf/KzM7/yszO/8vM + zv/Lzc7/y83P/8zNz//Lzc7/zc7P/9PT1P/W1tb/19fX/9jY2P/Y2Nn/2NjZ/9jY2P/Y2Nj/19fY/9fX + 1//W1tb/1tbX/9bW1v/W1tb/1dXW/9XV1v/V1db/1tbW/8zMzf/h4eL/39/f/+Hh4f/j4+T/4+Pk/+Tk + 5f/k5OT/5OTk/9XV1v/v7/D/8PDx//Pz9P/19fX/9fX1//X19f/09PT/9PT0//Pz9P/z8/T/8/P0//v7 + +/8AAABMAAAAGHJycgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7u/w/+7v8P/u7/D/7u/w/+Tl5v/S1NX/yMnK/9DR0//R0tP/09TW/9ja + 2//T1db/0tPU/87Q0f/R0tT/3+Hi/+Xm6P/r7O3/6uzu/+rs7v/q6+3/6uvt/+nr7f/h4+T/29ze/9TW + 1//f4eP/zs/R/9TV1//R09X/zM7P/9XX2P/NztD/zM3P/83P0f/MztD/xsjJ/76/wf/AwcP/u72//7q7 + vf+6vL3/vb/A/8DCxP/Dxcb/wMLD/8DBw/+/wcP/v8HC/8LExf/BwsT/wMLD/8TFx//Gx8j/yMnJ/8vL + zP/Q0ND/z8/P/8/Pz//R0dH/0NDQ/8/P0P/Q0NH/0tLS/9DQ0P/Q0ND/0NDQ/9DQ0f/Q0ND/0NDR/9DQ + 0P/Q0ND/x8fH/9zc3P/Z2dr/29vc/97e3v/g4OD/4uLj/+Li4//j4+P/1tbX/+vr7P/x8fL/9PT1//b2 + 9//19fX/9fX1//X19f/19fX/9PT1//T09f/z8/T/+/v7/wAAAEwAAAAYcnJyBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v + 8P/t7/D/4+Tl/8jJyv/c3d//19jZ/+Dh4//h4uT/1tfZ/9rb3P/d3+D/3t/g/+Di4//X2dr/5ebo/+rs + 7v/q7O7/6uzt/+rr7f/p6+3/6evt/+Hj5f/Z2tv/4OHj/9rb3f/T1db/1dfY/9LU1f/S1NX/1tja/9DS + 1P/Iycv/wsPE/8HDxP+3ubr/uLm6/72+v/+7vb7/ury+/7m6vP++v8D/wcLD/8PExv+9v8D/vr/B/8HC + w//AwcL/wMHD/8HDxf/BwsT/xcbH/8fIyv/MzM3/zs7P/9DQ0f/S0tL/0dHS/9HR0v/R0dH/0dHR/9HR + 0f/S0tL/z8/Q/8/Pz//Ozs//zs7O/83Nzv/Nzc7/zc3O/8zMzP/ExMX/1dXV/9TU1P/V1db/19fY/9jY + 2f/Z2dn/2trb/9vb3P/V1dX/4ODh/+/v8P/09PX/9vb3//b29//29vb/9vb2//b29v/19fX/9PT1//T0 + 9f/8/Pz/AAAATAAAABhycnMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7v8P/u7/D/7u/w/+3v8P/t7vD/4ePk/+3u7//s7e//7O3v/+zt + 7//t7u//7O7u/+zt7v/s7e7/6Onr/+nr7P/r7O7/6uzu/+rs7v/q7O3/6uvt/+nr7f/p6+3/6Orr/+fp + 6v/m6On/6Orr/9ze3//b3d7/3N7g/9rc3f/V19n/xMbI/7m7vf+8vsD/vsDC/7q7vf+7vb7/vsDB/77A + wv+9vsD/vL2//7/Awf/BwsT/wcPF/8DBw//AwcL/v8DC/77Awf+9v8D/vL7A/7y+v/+9vr//vr/B/8LC + w//ExMX/xcXF/8XFxf/Gxsb/xcXG/8XFxv/FxcX/xcXF/8TExf/ExMT/wsLD/8HBwv/BwcH/wMDA/7+/ + v/+/v7//v7+//7y8vP/BwcL/w8PD/8bGxv/R0dH/0NDR/83Nzv/MzMz/y8vM/8rKy//S0tL/6+vs//T0 + 9f/29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//39/f8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v + 8P/u7/D/7u/w/+zt7//Y2dv/6err/93f4P/k5ef/5OXm/+fp6v/h4+P/5+jp/+Hi4//q6+3/5+nq/+bn + 6f/q7O7/6uzt/+rr7f/p6+3/6evt/+rs7f/h4+T/4OLj/93f4P/h4uT/2dvc/9XX2f/Q0tT/ycvM/83O + 0P/Bw8X/t7m6/7a4uP+6vL7/tbe3/7e5uv+4ubv/tbe5/7S2t/+wsrP/uLq7/7u9vv+9v8D/vL7A/72+ + wP+8vr//vL7A/76/wf++v8H/vL6//72/wP++v8D/xMXG/8fIyP/Kysv/ysrK/8rKyv/Jycr/ycnJ/8nJ + yf/Jycn/yMjJ/8bGxv/Gxsf/xsbG/8TExf/CwsL/wsLD/8HBwf+/v8D/vr6+/76+v//Dw8P/wMDA/7u7 + vP+7u7v/vLy8/8DAwP/Gxsf/x8fI/83Nzv/r6+z/9PT1//b29//39/j/9/f4//f39//39/f/9vb2//b2 + 9v/19fb//f39/wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+7v8P/t7vD/4+Tm/9PU1v/Excb/1tfZ/9LT + 1f/V19f/1tfY/9bY2f/NztD/09TW/+bo6v/d3+D/6evt/+rs7v/q7O3/6evt/+nr7f/q7O3/6uvs/+Hj + 5P/g4uP/293f/+Pl5v/Dxcb/v8HC/8jKy//Fx8j/ycvM/7y+v/+1t7n/s7W3/7a4uf+2uLr/tLa4/7a4 + uv+0trf/r7Gz/7Kztf+0tbf/tri6/7m7vP+3ubr/uLq7/7q7vf+6vL3/vL2//7u9vv+8vr//vb/A/8DB + wv/Cw8P/xcXF/8rKy//IyMn/yMjI/8nJyv/Hx8j/xMTE/8XFxf/Gxsf/wsLC/8DAwP/AwMH/vb29/7y8 + vP+8vLz/u7u7/7m5uf+4uLj/t7e4/7y8vf+9vb3/wMDA/8HBwv/CwsL/vLy9/7W1tv+1tbb/0tLS//Hx + 8v/19fb/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b29//+/v7/AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+7v + 8P/u7/H/7u/x/+3u8P/i5OX/y8zN/+Dh4//b3d7/5ufo/+bn6P/b3d7/3t/g/+Tm5//g4uP/3N7g/9/g + 4f/k5uf/6uzu/+rr7f/q6+3/6uzt/+rs7f/p6+z/4OHj/9vd3v/d3uD/293e/93f4P/Q0tP/1NbY/9LU + 1v/Z29z/1tja/83O0P/Jys3/0dLU/8zO0f/O0NL/0tTW/83P0v/O0NH/ycvM/83P0P/Q0tP/0dPU/8vO + z//Nz9D/z9HS/87Q0f/O0NL/0dLU/8/R0//U1db/1tfY/9zc3f/h4eH/4uLj/+Tk5f/h4eH/3t7e/9ra + 2//Z2dr/19fX/9jY2P/U1NT/09PU/9LS0v/T09P/0tLT/9TU1P/V1dX/1tbW/9fX1//W1tb/2NjY/9fX + 1//a2tr/2dnZ/9nZ2f/X19j/1tbX/9TU1P/w8PH/9vb3//f3+P/39/j/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//7+/v8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz09vb/7u/w/+7v8f/t7/D/7e/w/+3u8P/t7vD/7O7v/+zu + 7//t7u//7O7v/+zu7//s7e7/6+3v/+vt7//r7O7/6+zu/+rs7v/q7O3/6uzt/+rs7f/q7O3/6uvs/+rr + 7P/p6+z/6evs/+jq7P/m6Or/6Ors/9bY2f/g4uT/5Obn/+Tm5//i5Ob/3uDi/9fZ2//S1Nb/zM7Q/9HT + 1f/T1db/0dPV/87Q0v/P0dP/1dfY/9bY2f/W2Nn/1djZ/9TW2P/U1tf/1NbX/9PV1v/S1NX/0tPV/9PV + 1v/W19n/3N3d/+Hh4f/k5OT/5OTk/97e3//X19j/1tbW/9bW1v/W1tf/19fX/9jY2P/Y2Nn/2dna/9TU + 1P/Nzc7/zs7O/87Ozv/Nzc3/zc3N/87Ozv/e3t//5OTk/+fn6P/o6Oj/5+fn/+Tk5f/c3Nz/5ubn//b2 + 9//39/j/+Pj5//j4+f/4+Pn/+Pj5//f3+P/39/j/9/f3//f39//39/f//v7+/wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX2 + 9v/u7/D/7u/x/+7v8P/t7vD/5+jq/9LU1f/d3uD/1NbX/93e3//b3d7/4eLj/9vc3f/c3d//29ze/+Dh + 4v/g4uT/5OXn/+rs7f/q7O3/6uzt/+rs7f/q7O3/6evs/+Hj5P/e4OL/3uDi/97g4v/c3d//19nb/8nL + zP/Y2tz/3uDh/97g4v/h4+X/1dfZ/83P0f/Hycv/ztDS/9TW1//R09T/z9HT/9DS1P/P0dP/0NLU/9HT + 1P/P0dP/0NLT/9LU1v/T1df/z9HT/9HT1f/Q0tP/0NLT/9TV1v/Y2Nn/2dra/9na2v/X19j/1dXW/9DQ + 0f/R0dL/zMzM/8zMzP/Ly8v/zc3N/87Ozv/Nzc7/09PT/9ra2v/b29v/29vc/9vb3P/b29v/2trb/+Tk + 5f/l5eb/6Ojo/+jo6f/m5uf/4+Pj/9vb2//19fX/+Pj4//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/+/v7/AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8f/u7/H/7u/w/+3v8P/k5ef/z9DS/8rM + zf/Nz9D/0tPU/9bX2f/Lzc7/z9DS/87P0f/Nzs//2Nrb/9bY2f/l5+j/6+3u/+vs7f/q7O3/6uzt/+nr + 7f/p6+z/2tzd/9ja3P/Q0tP/2tzd/9vd3v/X2dv/zc/Q/8bJyv/U1tf/1tjZ/9rc3f/P0dP/0NLU/8DC + xP/GyMr/yszO/8zO0P/Lzc7/ztHS/9LU1v/Q0tT/0NLT/8vNz//Jy83/yMrL/8fIyv/Excf/yczN/8vN + z//KzM3/zc7P/9fY2P/T09T/w8TE/7i4uf+5ubn/vLy8/8XFxf/Q0ND/1tbW/9PT1P/Y2Nn/2NjY/9jY + 2P/X19j/19fY/9fX1//Y2Nj/2dna/9vb2//b29v/5OTl/+Xl5v/o6Oj/5+fo/+Tk5f/Y2Nj/8vLy//f3 + 9//4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz19vb/7u/w/+7v8P/u7/D/7e/v/+Xm5//Q0tL/4ePk/+vs7f/r7O3/6+zt/+jq6//p6+z/6+3u/+nr + 7P/b3d7/3d/g/+nr7P/r7O3/6uzt/+rs7f/q6+3/6uvt/+nr7P/o6uv/6Onr/+fp6v/m6On/5+nq/+bo + 6v/n6er/2Nrb/9ve3//e4OL/4OLj/9ze3//a3N7/yczN/8vNzv/Q0tP/1NbY/9LU1f/U1tf/0NLT/9HT + 1P/Q0tP/ztDR/83P0P/O0NH/zc/Q/83P0P/KzM7/ycvN/8rMzf/O0NH/1tfY/9XW1v/FxcX/xMTE/7+/ + v//Hx8f/09PT/9XV1f/U1NT/0dHR/9TU1P/U1NT/1NTU/9TU1P/U1NT/09PT/9PT0//W1tb/2dnZ/9ra + 2v/l5eX/5eXl/+fn5//m5ub/3d3d/+jo6P/39/f/+Pj4//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u7/D/7u/w/+3v7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//s7u//7O3u/+zt7v/r7e7/6+zu/+vs7v/r7O3/6+zu/+vs7f/q7O3/6uzt/+rr + 7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq6//o6uv/5+nr/+jq6//o6uv/z9LT/93f4f/W2Nn/3uDh/93f + 4P/NztD/yszN/8vNzv/Q0tP/0dTV/9PV1v/T1db/0NLT/87Q0v/Q0tP/0tTV/9LU1f/R1NX/0tTV/9LU + 1f/S1Nb/09XW/9XW1//R0tL/2tra/87Ozv/Jycn/xMTE/8/Pz//Y2Nj/29vb/9vb2//a2tr/2tra/9ra + 2v/Z2dn/2dnZ/9jY2P/X19f/1NTU/9PT0//V1dX/2NjY/+Xl5f/k5OT/5eXl/+Tk5P/d3d3/9fX1//j4 + +P/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAA + ABgAAABM9fb2/+7v8P/u7/D/7u/v/+3u7//d3t//5ufo/9LT1P/Nzs//1tjZ/9na2//S1NX/ztDR/9nb + 3P/c3d7/3N7f/9ze3//U1tf/1tfZ/9ze3//e3+D/19na/9fZ2v/U1tf/5OXn/+jq7P/o6uv/6Orr/+jq + 7P/c3t//293f/9bZ2v/Y29z/zc/R/9DS0//R09T/1dfY/8vNz//Hycv/xcfJ/8HExf/Fx8n/w8XG/8LE + xf/Exsf/yMrM/8nLzf/MztD/zM7Q/8rMzf/Mzc7/zc/Q/83P0f/Mzs//0dLT/87P0P/Nzs7/zs7O/8HB + wf+8vLz/ycnJ/9HR0f/S0tL/09PT/9TU1P/S0tL/1NTU/9bW1v/V1dX/1NTU/9zc3P/a2tr/1dXV/9PT + 0//U1NT/4+Pj/+Li4v/i4uL/2dnZ//Pz8//39/f/+Pj4//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vb/7u/w/+7v8P/u7+//7e7v/9jZ + 2v/Iycr/0tTV/8HDxP/P0NH/2dvc/9HT1P/Nzs//zM7P/9PV1v/T1NX/0dLT/9LU1f/Mzs//19na/9jZ + 2v/W19n/ztDS/9TW1//j5eb/6ers/+jq6//p6+z/6Ors/9vd3//c3t//1djZ/93f4P/Q0tP/zdDR/8/R + 0//P0dP/ycvN/8jLzP/Fx8n/ury+/7u8vv+9v8H/vcDB/8HDxf/Mzs//ycvN/8vNz//Oz9H/yszO/8zO + z//Nz9D/z9HS/87Q0f/S1NX/z9DR/87Oz//Q0ND/xMTE/729vf/Ozs7/1dXV/9TU1P/V1dX/1tbW/9TU + 1P/W1tb/2dnZ/9nZ2f/X19f/1NTU/9zc3P/Z2dn/09PT/87Ozv/d3d3/39/f/9zc3P/p6en/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd + XQUAAAAYAAAATPX29v/u7/D/7u/w/+7v8P/t7+//5ebn/9PU1f/h4+T/7e7v/+3u7//s7u//7O7v/+zt + 7v/r7e7/6+zu/+zt7v/r7e7/6+zu/+vs7f/q7O3/6uzt/+nr7P/j5Ob/6evs/+nq7P/o6uv/6evs/+jq + 7P/o6uv/6Orr/+fp6//n6ev/5+nr/+bp6v/T1df/2dzd/9rc3v/Q09T/0tTV/8zOz/+7vb7/uLu8/7m7 + vP++wMH/xMbH/8jLzP/Iy8z/yczN/8zOz//Mz9D/zc/R/83P0f/O0NL/0NHT/9LU1f/Oz9D/0dLS/9HR + 0v/Dw8P/w8PD/87Ozv/X19f/19fX/9fX1//V1dX/1tbW/9XV1f/V1dX/1NTU/9TU1P/R0dH/zs7O/9bW + 1v/S0tL/yMjI/9bW1v/Z2dn/29vb//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb2/+7v8P/u7/D/7e/v/+3v + 7//t7u//7u/w/+3v7//s7u7/7e7v/+Dh4v/r7e7/7O3u/+vt7v/r7e7/6+3u/+rs7f/r7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+z/6Ors/+jq7P/p6+z/6Orr/+fp6//o6uv/5+nr/+fp6v/n6er/5+nq/+Lk + 5f/R1NX/2Nvc/8/S0//S1NX/yszO/8PGx/+3ubv/srS2/7S2t/+3ubr/uLq8/7q8vf+7vr//vb/A/7/B + w//Bw8X/wsXG/8TGx//GyMn/ycvL/8bHx//Jysr/ysrK/7y8vP+9vb3/ysrK/9DQ0P/Q0ND/0NDQ/8/P + z//Nzc3/zc3N/8zMzP/Ly8v/ysrK/8nJyf/FxcX/xMTE/8vLy//ExMT/09PT/8/Pz//w8PD/9/f3//j4 + +P/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXV0FAAAAGAAAAEz19vf/7vDw/+7v8P/u7+//7e/v/9fY2f/Z29v/y83N/7i5uv/Jy8z/xsfI/87P + 0P/Mzc7/xMXG/9XX2P/Jy8z/z9DR/9TW1//n6er/6uzt/+rs7f/q6+3/6evs/+nr7P/a3N3/2tzd/9HS + 1P/a3N7/2Nrb/9fZ2v/T1df/19na/9vd3//d4OH/2tze/87R0v/MztD/xsnK/8fJy//Fx8n/xMfJ/7q8 + vv+3ubr/srS1/7K0tf+xs7T/sbK0/7Cys/+xs7X/ubu9/7u9vv+9v8H/v8LD/8PGx//Jysv/x8jJ/8vM + zP/MzMz/wMDA/8HBwf/Nzc3/0dHR/9HR0f/Q0ND/z8/P/87Ozv/Nzc3/zc3N/8zMzP/Ly8v/y8vL/8rK + yv/Gxsb/ycnJ/8vLy//X19f/5ubm//X19f/4+Pj/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//u8PD/7u/w/+7v + 8P/t7+//19jZ/8bHyP/Mzc7/0tPU/9na2//S1NX/3uDg/9vd3v/P0NH/2dvc/9rc3f/Z29z/3+Hi/+fo + 6v/q7O3/6uzt/+nr7P/p6+z/6evs/9bY2f/d3uD/2tzd/9vd3v/e4OH/3d/g/9nb3P/c3uD/293e/+Xn + 6f/e4OL/2t3e/87R0v/Hysv/x8rL/8vNz//JzM7/wsXH/8XHyf/Fx8n/xMbI/7/Bw/+/wcL/wMLE/77B + wv/AwsT/v8HD/77Awv+/wcP/wsTF/8jKy//Iycr/0NHR/9HR0f/Kysr/zc3N/9XV1f/Y2Nj/19fX/9fX + 1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1dXV/9TU1P/Q0ND/0NDQ/+Li4v/39/f/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXF1dBQAAABgAAABM9fb3/+7w8P/u7/D/7u/w/+3v7//q7Oz/3+Dh/+rs7f/t7u//7e7v/+3u + 7//s7u//6+zt/+nr7P/s7e7/6+3u/+vt7v/r7e7/6uzt/+rs7f/q7O3/6evs/+nr7P/p6+z/5+nq/+nr + 7P/n6Or/6Ors/+jq6//n6er/5ujp/+fp6v/m6er/5ujq/+Tm6P/l6On/4uTm/9HU1v/O0dL/zM7Q/8zO + 0P/O0dL/0NLU/9HT1f/R09X/0dPU/9DT1P/P0tP/ztHS/83P0P/Mzs//yszN/8fJy//HyMn/x8nK/8fI + yf/Ozs7/0dLS/9LS0v/a2tr/4ODg/+Li4v/h4eH/4eHh/+Dg4P/g4OD/4ODg/9/f3//e3t7/29vb/9nZ + 2f/a2tr/2tra/9ra2v/d3d3/+Pj4//n5+f/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19vf/7/Dw/+7v + 8P/u7/D/7u/v/+jq6v/r7e3/5OXm/9rc3P/l5uf/4uPk/+Tl5v/b3d3/4eLj/+Dh4v/f4eL/5Obn/+jq + 6//q7O3/6uzt/+rr7f/q6+3/6evs/+nr7f/o6uv/5ujp/+jq7P/o6uz/6Orr/+fp6//n6ev/5+nq/+bp + 6v/m6Or/5ujp/+bo6v/m6Or/5ejp/+Xo6f/l5+n/4+Xn/93f4f/a3d7/2Nvc/9XY2f/U19j/1djZ/9ja + 3P/Z293/2dvd/9nb3f/Z293/2Nrc/9fZ2v/X2dr/0tPT/9jY2P/d3d7/5OTk/+7u7v/v7+//7+/v//Dw + 8P/w8PD/8fHx//Ly8v/z8/P/8/Pz//T09P/39/f/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxdXQUAAAAYAAAATPX29//v8PD/7u/w/+7v8P/u7+//1tjY/8LDxP/Lzc3/wcLD/8HC + w//Hycn/zM3O/8jJyv/Iycr/0NLT/8nLzP/X2dr/6uzt/+vs7f/q7O3/6uzt/+rr7f/p6+z/6evt/+Tm + 6P/e4OH/6Ovs/+jq6//o6uv/5+nr/+fp6v/n6er/5ujq/+bo6v/m6er/5ujq/+Xo6f/l6On/5efp/+Xn + 6f/l5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/f4uT/2t3f/9ja3P/U19j/19nb/9nb3f/Z293/2tzd/9ze + 3//b3N3/5OXl/+fn5//s7Oz/9PT0//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9fb3/+/w + 8f/u8PD/7u/w/+7v8P/Z2tr/zM3O/8/Q0f/X2dr/09TV/+Dh4v/k5eb/1tjY/+Lj5P/e4OH/3t/g/+Tl + 5v/n6er/6+3u/+rs7f/q7O3/6evs/+rs7f/q7O3/3N7f/9/h4v/p6+z/6Orr/+jq6//n6ev/5+nr/+bp + 6v/m6Or/5unq/+bp6v/m6Or/5ujq/+Xn6f/l5+n/5Ofo/+Tn6P/k5+j/5Obo/+Tm6P/j5uj/4+bn/+Tm + 6P/j5uj/4+bo/+Pm5//d3+H/2Nrc/9XX2P/a3N3/293e/+Lj5P/y8/P/9fb2//n5+f/6+vr/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXV0FAAAAGAAAAEz19/f/7/Dx/+/w8P/u7/D/7u/w/+/w8f/u8PD/7u/w/+3v + 8P/t7+//7e7v/+zu7//s7u7/7O3u/+zu7//s7e7/6+3u/+vt7v/q7O3/6uzt/+rs7f/p6+3/6uzt/+nr + 7f/p6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5unq/+fp6//n6er/5ujq/+bo6f/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/4+bo/+Pm6P/j5uf/4+bn/+Pm5//j5uf/4+bn/+Pm5//j5uf/4uXm/9nb + 3f/U1tf/7O3u//T09f/4+fn/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxdXQUAAAAYAAAATPb3 + 9//v8PH/7/Dw/+7w8P/u7/D/7/Dx/9PU1f/n6On/0NHS/97g4P/c3d7/2Nna/9fY2v/W2Nj/3+Hi/+Dh + 4v/j5eb/6+3u/+vs7f/q7O3/6uzt/+rr7f/q7O3/6evt/+Di5P/j5eb/4ePk/+Pl5v/o6uv/4OPk/+fp + 6v/n6er/5+nr/+bp6v/m6Or/5ujp/+Xo6f/l5+n/5Ofp/+Tn6P/k5uj/5Obo/+Pm6P/j5uj/4+bn/+Pm + 5//j5ef/4+Xn/+Pm5//j5uf/4+bn/+Pm5//j5uj/5Obo/+Pl5v/s7u7/8/T0//n5+f/7+/v//Pz8//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXF1dBQAAABgAAABM9vf3/+/w8f/v8PH/7vDw/+7v8P/p6uv/vb6//8jJ + yv+3ubn/xcbH/8jJyv/Jysv/vr/A/8vMzf/LzM3/0NLT/+Xm5//r7e7/6+zt/+rs7f/q7O3/6uzt/+rs + 7f/R09X/0dPU/+Pl5v/Hycr/5Ofo/9XX2f/U1tf/5+nq/+fp6//n6er/5unq/+bo6v/l6On/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Ll5//j5ef/4+Xn/+Pl5//j5uf/4+bn/+Pm + 5//k5uj/5ujq/+zt7v/z9PT/+fn5//v7+//8/Pz/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXV0FAAAAGAAA + AEz29/f/7/Dx/+/w8f/u8PD/7vDw/9jZ2v/s7e7/19nZ/+vt7f/q7O3/6evr/+nq6//l5uf/6uzs/+rs + 7f/q7O3/6uvs/+vt7v/r7e3/6uzt/+rs7f/q7O3/6uzt/+fq6//a3N3/6evs/9nb3P/o6uz/5ujq/9vd + 3//n6ev/5+nr/+fp6v/m6er/5ujq/+Xo6f/l5+n/5efp/+Tn6P/k5+j/4+bo/+Pm5//j5uf/4+bn/+Pm + 5//j5uj/4+Xn/+Ll5//i5ef/4uXn/+Pl5//j5ef/4+bn/+Pm5//m6On/6+3u//Pz9P/4+fn/+/v7//z8 + /P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPb3+P/w8fH/7/Dx/+/w8f/v8PD/7u/w/+/w + 8f/u8PD/7u/w/+7v8P/t7/D/7e7v/+3u7//s7u//7e7v/+zu7//s7u7/6+3u/+vt7v/q7O3/6uzt/+rs + 7f/q7O3/5Obn/+nr7P/p6+z/6evs/+jq7P/o6uv/5+nr/+fp6//n6ev/5+nr/+bp6v/m6Or/5ejp/+Xn + 6f/k5+n/5Ofo/+Tm6P/j5uj/4+bo/+Pm6P/g4+X/3uHj/+Pm5//j5uf/4+bn/+Pl5//i5eb/4uXm/+Pl + 5//j5ef/4+bn/+bo6f/r7O3/8vPz//j5+f/7+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAA + ABgAAABM9vf4//Dx8f/v8fH/7/Dx/+/w8P/m5+j/xsfI/83Oz//W2Nj/09TV/+7v8P/t7+//7e7v/+zu + 7//t7u//7O7v/+zu7v/s7e7/6+3u/+rs7f/b3d7/3N7f/9fZ2v/Jy8z/0tXW/+Lk5f/d3+D/3+Lj/9XX + 2f/X2dv/19rb/9ja3P/Y2tz/2dvc/+Lk5v/b3t//2dvd/9jb3P/c3+D/3d/h/9/i5P/a3d//2t3e/93g + 4v/Y293/4+bn/+Pl5//j5ef/4+Xn/+Pl5//j5uf/4uXm/+Pl5//j5uf/5efp/+rs7f/y8/P/+Pj5//v7 + +//8/Pz//Pz8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz29/j/8PHy//Dx8f/v8PH/7/Dx/9TV + 1v/l5uf/w8TF/8HDw//Mzs7/7u/w/+3v7//t7u//7O7v/+3u7//s7u//7O7v/+zu7v/r7e7/6+3u/9DS + 0//U1tf/yszO/8fJyv/S1Nb/4ePk/9ze3//V19j/0tXW/9rd3v/U19j/1tja/9nc3f/V2Nn/4+Xn/9TX + 2P/b3t//1dfZ/9vd3//a3d7/4uXm/9rc3v/Z293/2t3f/9nc3v/i5ef/4uXn/+Pl5//i5ef/4uXn/+Pl + 5//j5uf/4uXm/+Pl5//l5+n/6uzt//Hy8//4+Pj/+vv7//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj//////wAA + AEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPb4+P/w8fL/8PHy//Dx8f/v8PH/5ebm/+vs7f/h4uP/6+zt/+bn6P/u7/D/7e/w/+3u + 7//s7u//7O7v/+zu7//s7u//7O7v/+zt7v/r7e7/4+Tl/+rs7f/l5+j/5ufo/+rs7f/p7O3/4+Xm/+Pl + 5v/o6uv/6Orr/+fq6//n6uv/5+nr/+fp6v/m6Or/4ePl/+Xn6f/h4+X/5Ofo/+Tn6f/k5uj/4+bo/+Pm + 5//j5ef/4+Xn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4+Xn/+Pl5//j5ef/4+Xn/+Xn6P/p6+z/8fLy//f4 + +P/6+/v//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6 + +v/6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+/x8v/v8PL/7/Dx/+/w + 8f/v8PH/7u/w/+/w8f/u7/D/7u/w/+3v8P/u7/D/7e/w/+3u7//s7e//7O7v/+zt7//Y2tv/6+3u/+vt + 7v/r7O3/6+zt/+rs7f/q7O3/6evt/+nr7f/p6+z/6Orr/+jq6//m6Or/3eDh/+Di5P/d3+H/5ujq/+bo + 6v/m6On/5ejp/+Xn6f/k5uj/5Obo/+Pm5//j5uj/4+bn/+Ll5//i5ef/4uXn/+Ll5//i5ef/4uXn/+Ll + 5//i5ef/4uXn/+Ll5//j5ef/5Ofo/+nr7P/w8fL/9/f4//r6+//7+/z/+/v8//v7+//7+/v/+/v7//v7 + +//7+/v/+vr7//r6+//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fr/+fn5//n5 + +f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f4//// + //8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz3+Pn/7/Hx/+/w8f/v8PH/7/Hx/+Di4v/Gx8j/tre4/7q8vP/Mzc7/z9DR/8nK + y//HyMn/x8nK/8bIyf+9v8D/0NLT/8LExf/f4eL/7O3u/+vt7v/r7O3/6uzt/+rs7f/p6+z/6evs/9DS + 1P/Q0tT/1tna/9ja2//O0NL/2dvc/9XX2f/P0tP/0tXW/9rd3//j5uf/2t3e/9jb3P/Z293/2Nvd/9ve + 4P/c3uD/4uXn/9ve4P/c3+D/3N/g/9jb3P/a3N7/2dzd/9nc3v/X2tz/2Nrc/+Pl5//k5+j/6evs//Dx + 8v/29/f/+vr6//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPf4+f/w8fH/7/Hx/+/w + 8f/v8PH/4OHi/7a3uP/Mzs7/3N3e/9PU1f/Mzc7/1dfX/8bHyP/Nzs//3N3e/9bX2P/O0NH/3N3e/9XX + 2P/s7e7/6+3u/+vt7v/q7O3/6uzt/+nr7P/p6+z/0tTU/9PW1//b3t//2tze/97g4f/b3d7/2tze/9ze + 3//c3uD/2dzd/+Xn6f/a3d7/3N7g/93f4f/d3+H/3N/g/97h4v/h5Ob/2t3e/9rd3//c3+D/3eDi/97g + 4v/Z3N7/2t3e/93g4v/d4OH/4+Xn/+Tm6P/o6uz/8PHx//b39//5+fn/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9///////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1eBQAAABgAAABM9/j5//Dx8v/w8fH/7/Dx/+/w8f/v8fH/3d/f/+7v8P/v8PH/7vDw/+7v + 8P/u7/D/7e/v/+7v8P/t7+//7e7v/+zu7//s7e7/6+3u/+vt7v/r7e7/6+3u/+vs7f/q7O3/6uzt/+nr + 7P/n6er/5Obn/+nr7P/o6uz/6Orr/+fp6//n6er/5+nq/+bp6v/m6er/5ujq/+Pm5//l5+n/5Ofo/+Tm + 6P/k5uj/4+bn/+Hk5v/e4eP/4OPk/+Ll5v/i5ef/4uXn/+Pl5//i5eb/4uXn/+Ll5//j5uf/5Obo/+jq + 6//v8PH/9vb2//n5+f/7+/v/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz3+fn/8PHy//Dx + 8f/w8fH/7/Dx/+/w8f/W2Nj/4ePj/+bn6P/b3N3/5+jp/9jZ2v/Nzs//4OHi/+Xm5//t7+//7e7v/+zu + 7//s7e7/6+3u/+vt7v/r7e7/6+3u/+Hi4//e3+H/09XW/+bo6f/d3+D/4ePk/9/h4v/i5Ob/5Obn/+Pl + 5//k5uf/4uTl/93g4f/j5uf/3d/g/+Ll5v/i5Ob/4eTm/+Hj5f/e4OL/3uHj/9/h4//b3uD/4uTm/+Ll + 5//j5uf/4uXn/+Ll5//j5ef/4+Xn/+Pm5//k5+j/6Orr/+/w8f/19vb/+fn5//v7+//7+/v/+/v7//v7 + +//7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9/f3//f3 + 9//39/f//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXgUAAAAYAAAATPj5+f/w8fL/8PHy//Dx8f/v8fH/1tjY/9bX2P++wMD/ysvM/8zN + zv+trq//ycvL/8jKyv/Mzs7/7O3u/+3v8P/t7u//7O7v/+zt7v/s7e7/6+3u/+zt7v/r7e7/1tjZ/8rM + zf/R09T/ztDR/8/R0v/W2Nn/zM7P/8rMzf/U1tf/2Nrb/9vd3//W2Nn/09XX/9fZ2//d3+H/1NfY/93f + 4f/W2Nr/2Nvc/9rd3v/a3N7/19rc/9ve4P/j5ef/4+Xn/+Ll5//i5ef/4+Xn/+Pm5//j5uf/4+bn/+Xn + 6P/o6uv/7u/w//X19v/5+fn/+vr7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39///////AAAATAAAABh0dHQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+Pn6//Dx + 8v/v8PL/7/Dy/+/w8f/i5OX/x8jJ/9PU1v/S09T/19na/97g4f/k5eb/3N3e/97f4P/i4+T/7e7w/+zu + 7//s7e//7O7v/+zt7v/r7e7/6+3u/+vs7v/Nzs//1NbX/+Pl5v/f4eL/293e/9PU1v/d3+H/4OLk/9vd + 3v/d3+H/3N7g/9bZ2v/X2dv/2tze/+Di5P/U19j/3eDh/9nb3f/Z3N3/19nb/9bZ2//Z293/2t3f/+Pl + 5//j5uf/4+bn/+Pm5//j5uf/4+bo/+Tm6P/k5uj/5Obp/+jq6//u7/D/9fX1//n5+f/6+/v/+vr7//r6 + +//6+vv/+vr6//r6+v/6+vr/+vr6//r6+v/5+fr/+fn6//n5+v/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//////8AAABMAAAAGHR0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABdXl4FAAAAGAAAAEz4+fr/8PHy/+/x8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+7w + 8f/u8PH/7u/x/+7v8P/u7/D/7u/w/+3v7//t7vD/7O7w/+zt7//s7e//7O7v/+zt7v/r7e7/6+3u/+rs + 7v/q7O7/6uzt/+rs7f/q7O3/6evs/+nr7P/o6uz/6Ors/+jq6//o6uv/5+rr/+fp6//m6er/5ujq/+Xo + 6v/l5+r/5efp/+Xn6f/k5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Pm6P/k5uj/4+bo/+Pm + 6P/k5+j/6Orr/+7v8P/09fX/+fn5//r6+v/6+vv/+vr7//r6+v/6+vr/+vr6//r6+v/6+vr/+fn6//n5 + +v/5+fr/+fn5//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/39/j/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9vb3//b29//29vf/9vb3//b29//29vb//////wAAAEwAAAAYdHR0BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1eXgUAAAAYAAAATPn6 + +v/w8fP/8PHy/+/x8v/v8PL/3+Di/8rLzP/Z2tv/0dLU/9TV1v/R09T/3d7f/9rc3P/Mzc7/2dvc/9fZ + 2v/i5OX/7O7w/+zt7//s7e//7O3u/+zt7v/r7e7/293e/9TW2P/d3uD/09XW/9nb3P/q7O3/3N7f/9fZ + 2v/b3d7/3eDi/9XX2f/h4+T/5efp/+Hj5f/k5uj/5ujq/+bo6v/l5+r/5efq/+Xn6f/k5+n/5efp/+Tn + 6f/k5+j/5Ofo/+Tm6P/k5uj/5Obo/+Tm6P/k5uj/5Obo/+Xn6P/o6uv/7u/v//T19f/4+Pn/+fn6//r6 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+v/5+fr/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb3//b29v//////AAAATAAAABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAAABgAAABM+fr6//Dx8v/w8fH/8PHx/+/w8f/P0NH/5+jp/8rL + zP+9vr//uru8/7i5uv/BwsP/w8TF/62vr//Bw8P/xcbH/+Tm5v/t7u//7O7v/+zt7v/s7e7/7O3u/+zt + 7v/Q0tP/6+zt/9DS0//a29z/xsjJ/9TW1//Mzs//6evs/9PV1v/W2Nn/0dPV/+fp6//i5Ob/2dvd/83P + 0P/i5OX/5ujq/+bo6v/m6On/5efp/+Xn6f/l5+n/5Ofo/+Tn6P/k5uj/5Obo/+Tn6P/k5uj/5Ofo/+Tn + 6P/l5+n/5efp/+jq6//t7+//9PT0//f4+P/5+fn/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//////8AAABMAAAAGHR0 + dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXl4FAAAAGAAA + AEz5+vr/8PHy//Dx8v/w8fH/8PHx/9vc3P/p6uv/4uPj/+rs7P/v8PH/7O3u/+vt7f/r7e3/6err/+3v + 7//s7e7/6+zt/+3v7//t7u//7O7v/+zt7v/s7e7/7O3u/9rb3P/r7e7/2dvc/9HS0//V19j/09TV/9LU + 1f/p6+z/5+nq/+Hj5P/T1db/5+nq/9ze3//f4eP/4+Xn/+fp6v/n6er/5ujq/+bo6v/m6Or/5ujq/+Xo + 6f/l6On/5efp/+Xn6f/l5+n/5efo/+Xn6P/l5+n/5efp/+Xn6f/m6On/6Orr/+zu7//y8/T/9/f4//n5 + +f/6+vr/+vr6//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX//////wAAAEwAAAAYdHR0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPn6+//w8fH/8PHy//Dx8v/w8fH/8PHx/+/w + 8f/v8PH/7/Dx/+/x8f/v8PH/7/Dx/+7w8P/u7/D/7u/w/+7v8P/u7/D/7e/v/+3u7//t7u//7O7v/+zt + 7v/s7e7/7O3u/+vt7v/r7e7/6+zt/+rs7f/q6+z/6uvs/+rs7f/p6+z/6evs/+nr7P/o6uv/6Orr/+jq + 6//n6ev/5+nr/+fp6v/n6ev/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ejp/+Xo6f/l6On/5ejp/+Xn + 6f/l5+n/5efp/+Xn6f/o6er/7O3u//Lz9P/39/f/+fn5//r6+v/6+vr/+fn5//n5+f/5+fn/+fn5//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f39//39/f/9/f3//f3 + 9//39/f/9/f3//f39//29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9fX1//X19f//////AAAATAAA + ABh0dHQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV5eBQAA + ABgAAABM+fr7//Dx8f/w8fH/7/Dy/+/w8v/v8PH/1dbW/7m6vP/Nzs//0NHR/9LU1f/AwcL/vb6//9LU + 1f/W19j/7e/v/+3u7//t7vD/7O7v/+zt7//t7u//7O7u/+zt7v/r7e7/6+3u/+rs7v/q7O7/6uzt/+rs + 7f/q7O3/6evs/+nr7P/p6+3/6Ors/+jq7P/o6uz/6Orr/+jq6//o6uv/5+nr/+fp6v/m6er/5ujq/+bo + 6v/m6Or/5ujq/+bo6v/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/m6On/5ujp/+jp6//s7e7/8vP0//b2 + 9//4+Pn/+fn6//n5+f/5+fn/+fn5//n5+f/4+Pn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/4+Pj/+Pj4//f3 + +P/39/j/9/f4//f3+P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb2//b29v/29vb/9fX2//X1 + 9v/19fb/9fX2//X19v/19fX/9fX1//////8AAABMAAAAGHNzdAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV4FAAAAGAAAAEz5+vv/7/Dx//Dx8f/v8PH/7/Dy/9zd + 3//BwsT/zMzN/8XGyP/AwcL/vL2+/7u8vv+xsrP/zs/P/7/Awf/t7u//7e7v/+zu7//s7e//7O3v/+zt + 7v/s7e7/7O3u/+vt7f/r7O3/6+zu/+rs7f/q6+3/6uvt/+rs7f/q6+z/6evs/+nr7P/p6uz/6Ors/+jq + 7P/o6uz/5+nr/+jq6//n6ev/5+nr/+fp6//n6er/5+nq/+bp6v/m6Or/5ujq/+bo6f/m6On/5ujp/+bo + 6f/m6On/5ujp/+bo6f/m6On/6Onr/+vt7//x8vT/9vb3//j4+f/5+fn/+fn5//n5+f/5+fn/+Pj5//j4 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX1//X19f/09PX//////wAA + AEwAAAAYc3N0BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XQUAAAAYAAAATPn5+v/u7/D/7+/w/+/v8P/u7/H/5ufo/9na3P/g4eL/7e7v/+3u7//t7u//7O7v/9/g + 4f/g4uP/09TV/+vt7f/r7O3/6+zt/+vs7f/q6+3/6uvt/+nr7P/q6+z/6uvs/+nr6//p6uv/6Ors/+jq + 6//o6ev/6Onr/+jq6//o6ur/5+nq/+fp6v/n6er/5+jq/+bo6v/m6Or/5ujq/+bo6v/m6Or/5ujp/+bo + 6f/m6On/5ujp/+bo6f/l6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+n/5efp/+bo6v/o6ev/7O3v//Hy + 8//29vb/+Pj4//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3 + +P/39/j/9/f4//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vb/9vb2//b29v/19fb/9fX2//X1 + 9v/19fb/9fX2//X19f/19fX/9PT1//T09f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM9/j4/+zt7//s7e7/7e3u/+zt + 7v/s7e7/6+zu/+vs7f/q6+z/6uvs/+rr7P/p6uv/6err/+nq6//o6ev/5+jp/+fo6f/W19j/5+jo/+fo + 6f/n6On/5ufo/+bn6P/l5+j/5ufo/+bn6P/l5uf/5ebn/+Tm5//k5ef/5OXn/9fY2f/k5ef/4+Xm/+Pl + 5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xm/+Pl5v/j5eb/4+Xn/+Pk5v/j5Ob/4+Tm/+Pl5//j5ef/4+Xn/+Pl + 5//j5ef/5Obo/+Tm6P/l5+j/5ujp/+jq6//t7u//8vPz//b29v/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//T09f/09PX/9PT1//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABdXV0FAAAAGAAAAEz19fb/6uvs/+rr7P/p6uv/6urr/8XGx/+ztLX/np+g/6anqP+8vb7/n6Cg/6ip + qf+4ubr/wMHB/7Cxsf+mp6j/uru8/7Cxsv+vr7D/pqeo/8DBwv+vsLH/uru8/6Giov/P0NL/4OLi/+Hi + 4v+vsLL/s7S2/72+v/+8vb7/tba3/7S1tv+ur7D/wMHC/72+v//e3+D/3t/g/97f4P/e3+D/3t/g/97f + 4P/e4OH/3+Dh/9/g4f/f4eL/3+Hj/+Di4//h4uT/4uPl/+Lk5f/j5eb/5Obn/+bn6P/n6er/6uvs/+/v + 8P/z9PT/9vf3//f3+P/4+Pn/+Pj5//j4+f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f4//f3 + +P/39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATPT09P/p6en/6Ojp/+fo + 6P/m5+f/wsLD/52dnv+wsbH/zc7O/8XGxv+tra7/oKGh/6usrP+lp6f/wsPD/8LDw//Cw8P/wMDB/8zM + zf+3t7j/u7y8/8XFxv/Iycr/uLm6/8/Q0f/c3d3/1tfX/6qrrP+rrKz/x8jI/8vMzP+8vb3/xcbH/7/A + wf/Fxsf/y8zN/9na2//a29v/2tvc/9rb3P/b3Nz/293d/9zd3v/d3t7/3t/f/97g4P/f4OH/4eLj/+Lj + 5P/j5OX/5ebn/+bn6P/n6On/6Orr/+rs7P/t7u//8fHy//T19f/29vf/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9PT0//T09P/09PT/9PT0//T0 + 9P//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXV1dBQAAABgAAABM8/T0/+jo6v/n5+n/5ufo/+Xm5//g4eH/z8/Q/+Pk5f/j4+X/3N3e/9zc + 3v/c3d7/1dXW/8/P0P/f4OH/39/g/97e4P/d3t//3d7e/9jZ2f/c3d3/29zd/9vb3P/b29z/2trc/9ra + 3P/a2tv/z9DQ/9XW1v/Y2Nn/2Nna/9fY2v/Y2Nr/19jZ/9jZ2v/Z2tr/2trb/9rb2//a29z/29zd/9zd + 3v/d3t//3t/g/9/h4f/h4uP/4uPk/+Pl5f/l5uf/5ufo/+fo6f/o6uv/6evr/+rr7P/r7e3/7e7v//Dx + 8v/z9PT/9vb2//b39//39/j/9/f4//f3+P/39/j/9/f4//f39//39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vf/9vb2//b29v/29vb/9fX2//X19v/19fb/9fX2//X19v/19fX/9fX1//X19f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0FAAAAGAAAAEz19fX/6enr/+jp + 6v/n6On/5ufo/+Xm5//Z2dr/y8zM/9jZ2v/Y2dr/4uLj/9XW1//Kysv/0NHR/9DR0f/Fxsf/zs7P/8rK + y//IyMn/ysvM/8PExP/Pz9D/1tfY/8PExf/Q0dL/0tPU/8nKy//R0dL/xcXG/9PT1P/T09T/29vc/9vc + 3f/c3N7/3N3e/9bX2P/R0tP/1NXW/8fHyP/Z2tr/1dbX/+Tl5v/l5uf/5ufo/+fo6f/o6er/6err/+rr + 7P/r7O3/7O3u/+zu7v/s7u//7e/v/+/w8f/w8fL/8/P0//X19v/29vf/9/f4//f3+P/39/j/9/f3//f3 + 9//39/f/9/f3//f39//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X1 + 9v/19fb/9fX1//X19f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXQUAAAAYAAAATPj4+P/r7Oz/6uvs/+nq6//p6er/5ebn/7e3uP+oqan/t7i5/7q7 + vP/h4eL/tra3/6ipqf+2t7f/rKys/7Cxsf+jo6T/sLCx/6Kio/+7vLz/3d3f/7q6uv+xsrP/pqeo/6Sk + pP/Cw8P/tre4/6Giov/AwcH/tra3/8DBwv/e3+D/wMHC/9TV1f/j5OX/xsfI/8nKy//ExcX/xMXG/8zO + zv/Jy8v/6ers/+rr7P/r7O3/6+zu/+zt7v/s7u//7e7v/+3v8P/u7/D/7u/w/+7v8P/u8PH/8PHy//Lz + 9P/09Pb/9fb3//b3+P/39/f/9/f3//f39//39/f/9/f3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8///////AAAATAAAABhzc3MFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dBQAAABgAAABM+fr6/+3t + 7v/t7e7/7O3u/+vs7f/Ozs//u7u8/8nJyv/Jysv/oKCh/8rLy/+5ubr/xcbH/83Nzv/MzM3/09TU/8nJ + yf/Kysr/xsfH/9nZ2//g4eL/1dbX/9bX2P/HyMn/09TU/8nKyv/R0dL/zc3O/8vMzf/W19j/1NTV/+Tl + 5v/Nzs//5+jp/93e3//HyMn/xsfI/8nKy//Excb/ycrL/8jJyf/s7e//7O3v/+zu7//t7vD/7e/w/+7v + 8P/u7/H/7u/x/+7w8f/u8PH/7/Dx//Dx8v/y8/P/9PT1//X19v/29vf/9/f3//f39//39/f/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29v/29vb/9vb2//X19v/19fb/9fX2//X19v/19fb/9fX2//X1 + 9f/19fX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/P/8vLz//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABeXl4FAAAAGAAAAEz7+/v/7u7w/+7u7//u7u//7e7v/+3t7//s7e7/6+zt/+rr + 7P/p6uv/6Onp/+fo6P/m5uj/5eXm/+Pj5f/i4uP/4OHi/93d3f/h4eL/4+Pk/+Tl5v/l5uf/5ufo/+bn + 6P/m5+n/5+jp/+jp6f/o6er/6erq/+nq6//p6uv/6evs/+rr7P/q6+3/6+zt/+zt7v/s7e7/7O3u/+zu + 7v/t7u//7e7v/+3v7//t7+//7e/v/+7v8P/u7/D/7vDw/+7w8P/u8PD/6uvs/+/w8f/w8fH/8fLz//P0 + 9P/19fX/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//Ly8//29vf/9vb2//b29v/29vb/9vb2//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/P/8vLz//Ly8//y8vP//////wAAAEwAAAAYc3NzBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXgUAAAAYAAAATPv8 + /P/u7vD/7u7w/+3u8P/u7u//2dna/7u7vf/Jysv/uLm6/9PT1f/HyMj/tra3/9DQ0f/b3N3/xMTG/8DA + wf/Hx8j/q6ur/7m5uv/BwcH/09PU/87O0P/Oz9H/wMHB/9bX2P/p6uv/6err/8TFx//T1NX/2drb/9XW + 2P/Iycv/y8zN/9fY2f/Q0dP/3d7f/9vd3v/Y2tv/0dLT/9PU1v/Mzc//6+3u/93e3//u7/D/3d/g/9DR + 0v/a29z/2tvc/8zOz//P0dL/29zd/83Oz//X2Nn/29vc/97e3//e3t7/3d3e/+/v8P/i4uP/z8/P/9fX + 2P/e3t//xcXF/9zc3f/j4+P/9fX2/+Dg4P/U1NX/2NjZ/+Li4//X19j/3d3e/93d3v/i4uP/9PT1//T0 + 9f/09PX/8/P1//Pz9f/z8/X/8/P1//Pz9P/z8/T/8/P0//Pz9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//x8fP/8fHz//Hx8///////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXl5eBQAAABgAAABM/Pz8/+7u8P/u7vD/7u7w/+3u7//DxMX/rK2u/5WW + l/+8vL3/urq8/5SVlv+io6T/ra2u/6Kio/+ztLX/oqOj/7Cxsv+mpqf/ubm7/5ydnf+urrD/qKmq/7i5 + uv+bm5z/2drb/+nq7P/i4+T/t7i5/7e4uP+0tbb/v8DB/6mqq/+rrK3/wsPF/66vsP/Oz9H/xsfI/8XG + x/++v8H/sLGy/7Gys/+9v8D/vb6//9LU1f/Cw8X/r7Cx/72+v//GyMj/ra6v/8jJyv/Mzc//rKyt/8HB + wf+7vLz/yMjI/7CwsP+zs7P/6+vt/83Nzf+mpqf/v7+//8fHx//BwcL/sLCx/6Wlpf/Z2dn/xMTE/7+/ + v/+ysrP/vr6//7m5uv+7u7z/xsbH/8/Pz//09PT/9PT0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx8v/x8fL/8fHy//////8AAABMAAAAGHNz + cwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAA + AEz8/f3/7+/w/+7v8P/u7vD/7u7v/9PT1P+3t7f/1NXW/+rr7P/c3N7/zs/P/8zMzf/AwcL/ubq7/+Dh + 4v/n5+j/5eXm/+Pk5f/j4+X/1tbX/+Lj5P/m5+j/6err/+Tk5f/n6On/6uvs/+rr7f/m5+j/6Onq/+fo + 6f/p6ur/5ebn/9TV1v/p6uv/6uvr/+zt7v/W19j/6uvs/+nq6//X2Nn/6+zt/+rs7f/Nz9D/7e/v/8rL + zP/Nz8//7O3v/+3u8P/p6uv/7e7v/+7v8P/s7e7/3N3e//Ly8//09PT/7u7v//Ly8//19fb/29vb/8/P + z//x8fH/8fHx//Hx8f/d3d7/zMzN//T09f/z8/P/2NjY//Hx8v/x8fL/8vLz//Hx8v/y8vL/29vb//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9fXwUAAAAYAAAATP39/f/u7u//7+/v/+7v8P/u7vD/7u7w/+7u + 7//t7u//7e7v/+7u7//t7u//7e7v/+3u7//s7e7/7O3u/+zs7f/q6+v/6Ojp/+fn6f/o6On/6err/+rq + 7P/q6+z/6uvs/+vs7P/r7Oz/5+jp/9jZ2v/Z2tv/2Nna/+vs7v/s7e7/7O3u/+zt7v/s7e//7e7v/+3u + 7//t7u//7e7v/+3u7//t7+//7u/w/+7v8P/u7/H/7u/x/+7v8f/u7/H/7u/x/+/w8f/w8fL/8vLz//Pz + 9P/09PX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//T09f/09PX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly + 8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f//////AAAATAAA + ABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAA + ABgAAABM/f39/+7v8P/u7u//7+/v/+/v8P/Pz9D/1tbX/6OjpP+kpKX/qqqr/8fIyP/IyMr/s7O0/8zM + zf/l5eb/7Ozt/+rr7P/p6er/6Ojp/+np6v/q6uv/6uvs/+vr7f/U1db/uLm5/8PDxP/IyMn/rq6v/8fI + yf+0tbb/vL2+/7/AwP/P0NH/3+Dg/87P0P/Excb/xMXG/8HCw//R0tP/0NHR/+Tl5v+1trf/0tPV/8vM + zf/P0NH/09TU/8/Q0f++v7//yMnK//Hy8v/z8/P/9PT0//X19f/19fX/9PT1//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PT/9PT0//T09P/09PT/8/P0//Pz9P/z8/T/8/P0//Pz + 9P/z8/T/8/P0//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//////8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX18FAAAAGAAAAEz9/f7/7+/w/+7v8P/u7u//7u7v/8TE + xP+goKH/sbGy/5WWl/+mpqf/p6eo/7i4uf+fn6H/v7/A/+Tl5v/s7e7/6+vs/+np6v/o6er/6erq/+rr + 7P/r7Oz/6+zt/9PU1P+2t7j/wcLC/76+v/+6urv/u7y9/7u7vP+sra7/srKz/7W2t//b3N3/ysvM/7y9 + vv/DxMb/wMHC/8DBw//Fxsf/2Nna/6Chov+3uLn/xcbH/76/wf+6u7z/t7i5/7y9vv+1tbb/8fLz//Pz + 9P/z9PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT1//T09f/09PX/9PT0//T09P/09PT/9PT0//T0 + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/Pz//Pz8//z8/P/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8PDx//Dw8f/w8PH//////wAA + AEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9f + XwUAAAAYAAAATP7+/v/u7vD/7u7w/+7u8P/t7fD/3d3e/93d3v/X19n/7u7w/+3u7//t7e//7e3v/+3t + 7//t7u//7e3v/+zt7v/r6+3/6err/+np6//p6ev/6uvs/+vs7f/r7O3/6+zt/+vs7f/r7O7/6+zu/+vs + 7v/r7O7/7Ozu/+zt7v/t7e7/7e7v/+3u7//h4uP/7e7v/+3u7//t7u//7e7v/+3u8P/u7vD/1tfZ/+vs + 7v/u7vH/7u/x/+7v8f/u7/H/7/Dy//Hx8//y8vT/8/P1//Pz9f/z8/X/8/P1//Pz9f/z8/X/8/P0//Pz + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly + 8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw + 8v/w8PL/8PDx//Dw8f/v7/H/7+/x/+/v8f//////AAAATAAAABhzc3MFAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fBQAAABgAAABM/v7+/+7u7//u7vD/7u7w/+7u + 8P/t7fD/7e3w/+3t7//u7u//7u7w/+3u8P/t7e//7e3v/+3t7//s7e//7O3u/+vr7f/q6uz/6ers/+rq + 7P/q6+3/6+vt/+vs7f/r7O3/7Ozt/+zs7f/s7O7/6+zu/+zs7//s7e//7O3v/+zt7//s7e//7O3v/+3u + 7//t7u//7e7v/+3u8P/t7vD/7u7w/+7v8P/u7/D/7u/w/+7v8P/u7/D/7u/x/+/v8f/w8PL/8fHz//Ly + 9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly + 9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x//// + //8AAABMAAAAGHNzcwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX18FAAAAGAAAAEz+/v//7u7w/+7u7//u7vD/7u7w/+3u8P/t7vD/7e3w/+3t7//t7e//7e7v/+3u + 8P/t7fD/7e3v/+3t7//s7O7/6+zt/+vr7P/q6+z/6+vt/+vr7f/r7O7/6+zu/+vs7v/r7O7/7Ozu/+zt + 7v/s7e7/7O3u/+zt7//s7e//7O3v/+3t8P/t7fD/7e3w/+3u8P/t7vD/7e7w/+3u8P/t7vD/7u/w/+7v + 8P/u7/D/7u/w/+7v8f/v7/H/8PDy//Hx8v/y8vP/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8/P0//Ly + 9P/y8vT/8vL0//Ly9P/y8vT/8vL0//Ly9P/y8vT/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8fHz//Hx + 8//x8fP/8fHz//Hx8//x8fP/8fHy//Hx8v/x8fL/8PDy//Dw8v/w8PL/8PDy//Dw8v/w8PL/8PDx//Dw + 8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/D//////wAAAEwAAAAYc3NzBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXQUAAAAYAAAATP/////u7u//7u7v/+7u + 7//u7u//7u7v/+7u7//t7u//7e7v/+3t7//t7e7/7e3u/+3u7//t7u//7e3v/+zt7v/s7O3/6uvt/+vr + 7f/r6+z/7Ozt/+zs7v/s7O7/7Ozu/+zs7v/s7O7/7Ozu/+zt7v/s7e7/7e7u/+3u7v/t7u7/7e7v/+3u + 7//t7u//7e7v/+3u7//t7vD/7e7w/+7u8P/u7vD/7u/w/+7u8P/u7vD/7u/w/+7v8f/w8PL/8fHy//Hy + 8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8f/w8PH/8PDx//Dw + 8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u + 7///////AAAATAAAABhwcHAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAUlJTBQAAABYAAABK/////+7u7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7e7v/+3u + 7//t7e7/7e3u/+3t7v/t7u7/7e3u/+zs7v/r7O3/6+zt/+vs7f/r7O3/7Ozt/+zt7f/s7e3/7O3u/+zt + 7v/s7e7/7O3u/+3t7v/s7e7/7e3u/+3t7//t7e//7u7v/+7u7//u7u//7u7v/+7u8P/u7/D/7u/w/+7v + 8P/u7/D/7u/w/+7v8P/v7/H/7/Dx//Dx8v/x8fP/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly + 8//y8vP/8vLz//Ly8v/y8vL/8vLy//Ly8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v//////8AAABKAAAAFmNjYwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOTk4EAAAAFAAAAEP/////7+/w/+7u + 7//u7u//7u7v/+7u7//u7u//7u7v/+7u7//u7u//7u7v/+3u7//t7u//7e3u/+3t7v/t7e7/7e3u/+3t + 7v/s7e7/7Ozu/+zs7f/s7O7/7O3u/+zs7f/s7e7/7e3u/+3t7v/t7e//7e3v/+3t7//t7u//7e7v/+3u + 7//t7u//7e7v/+3u7//t7u//7e7v/+7u7//u7u//7+/w/+/w8P/v8PD/7/Dw//Dw8f/w8fH/8fHy//Ly + 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHy//Hx8v/x8fH/8fHx//Dw8f/w8PH/8PDx//Dw8f/w8PH/8PDx//Dw + 8f/w8PH/8PDw/+/v8P/v7/D/7+/w/+/v8P/v7/D/7+/w/+/v8P/v7/D/7u7v/+7u7//u7u//7u7v/+7u + 7//v7/D//////wAAAEMAAAAUXFxcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAEpKSwMAAAAOAAAAMf/////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/v7//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f7//f7+//7+/v/+/v7//v7+//7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAAMQAAAA5ZWVkDAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGASwsLAcAAAAYAAAALwAA + AD8AAABEAAAARQAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAAAEYAAABGAAAARgAA + AEUAAABEAAAAPwAAAC8AAAAYMDAxB1RUVAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVAi4uLwYYGBkNAAAAEgAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA + ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAASGRkZDTAwMQZbW1wCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAVZW + VgFbW1sDX19fA2pqagNzc3MDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3Jy + cgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnIDcnJyA3JycgNycnMDcnNzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3Nz + cwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNzc3MDc3NzA3NzcwNycnMDcnJzA3JycwNycnMDcnJzA3Jy + cwNxcXEDZGRkA1xcXANZWVkBVFRUAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////////////////////////////////////////////////////////////////////////// + ///////////AAAAAAAAAD//////////+AAAAAAAAAAH//////////gAAAAAAAAAAf/////////wAAAAA + AAAAAD/////////8AAAAAAAAAAAf/////////AAAAAAAAAAAB/////////wAAAAAAAAAAAP////////8 + AAAAAAAAAAAB/////////AAAAAAAAAAAAP////////wAAAAAAAAAAAB////////8AAAAAAAAAAAAP/// + /////AAAAAAAAAAAAB////////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAB////////AAAAAAAAAAA + AAP///////wAAAAAAAAAAAAB///////8AAAAAAAAAAAAAP///////AAAAAAAAAAAAAB///////wAAAAA + AAAAAAAAP//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAP//////wAAAAAAAAAAAAAB//////8 + AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAB//////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAB/ + /////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAAP/////AAAAAAAAAAA + AAAAB/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAAP////wAAAAA + AAAAAAAAAAB////8AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAA + AAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8 + AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA + H////AAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAAA/////AAAAAAAAAAAAAAAAf/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////ygAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaARwc + HAIfHx8CISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEhIQIhISECISEhAiEh + IQIhISECISEhAiEhIQIhISECISEhAiEhIQIgICACICAgAiAgIAIfHx8CHBwcAhgYGAIUFBQBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADw8PAIjIyMIBwcHEAcHBxQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgICBQICAgUCAgIFAgI + CBQICAgUBwcHEwYGBhEUFBQLJiYmBjExMQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQcAAAAiAAAAQgAAAFAAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUgAA + AFIAAABSAAAAUgAAAFIAAABSAAAAUgAAAFIAAABSAAAAUAAAAEgAAAA3AAAAIQwMDQ44ODgEMjIzAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uAhMT + Ew8/Pz9t/v7+//39/f78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8/P78/P3//Pz9//z8 + /P79/f3//f39//z8/f79/f3//f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39/f/8/P3+/f39//39 + /f/8/Pz+/Pz8//z8/P/7+/v++vr7//r6+v/5+fn++Pj4//f39//19fX+9PT0//Ly8v/w8PD+7e3t/uPj + 4/i0tLTYVlZWkAcHCD4AAAAYJiYmBzo6OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAMjIyAhQUFBM/Pz93+/v8//X19v719fb/9fX2//X19v719fb/9fX2//X1 + 9v719fb/9fX2//X19v729vf/9vb3//b29v729vf/9vb3//b29/729vf/9vb3//b29//29vf+9vb3//b2 + 9//29vf+9vb3//b29//29vf+9vb3//b29//19fb+9fX2//X19v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw + 8f/v7/D+7e3u/+vr7P/p6er+5+fo/+Xl5v7h4eH/2trb/aOjo9EeHh5XAQEBHigoKAk8PD0BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk5AhcXFxM/Pz95+fn6/vT0 + 9f709PX+9PT1/vT09f709PX+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vT0 + 9f709PX+8/P0/vPz9P7y8vP+8fHy/vDw8f7v7/D+7e3u/uzs7f7q6uv+6Ojo/uXl5v7h4eL+29vc/tPT + 1P69vb3lLCwsaQAAACIrKysJPT0+AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X19v719fb/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//X19v/09PX+9PT1//T09f/y8vP+8vLz//Dw8f/v7/D+7u7v/+zs + 7f/q6uv+6Ojp/+fn5/7k5OX/39/g/9jY2f7Ozs//z8/Q8jU1NXUAAAAkKSkpCkBAQAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6//T09f719fb/9fX2//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9//19fb+9vb3//b29//19fb+9vb3//b29//19fb+9vb3//b29//29vb+9vb3//X19v/19fX+9PT1//T0 + 9f/z8/P+8vLz//Hx8v/w8PD+7u7v/+3t7v/r6+z+6enq/+fn6P7l5eb/4eHi/9zc3f7T09T/zMzM/9bW + 1/Q4ODh2AQEBJh8fHws8PDwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6//X19v729vb/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X1 + 9v729vf/9vb3//X19v729vf/9vb3//b29//19fb+9vb3//b29//29vb+9vb3//b29//29vb+9vb3//f3 + 9//29vb+9/f3//b29v/19fX+9fX1//X19f/09PT+8/Pz//Ly8v/x8fH+8PDw/+7u7v/s7Oz+6urq/+jo + 6P7m5uf/4+Pk/97e3/7Y2Nn/zc3O/9ra2/7R0dP0QkJDfAAAACcSEhILPT09AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9fX2/vX19v719fb+9fX2/vX19v719fb+9fX2/vX19v729vb+9vb2/vb29v729vb+9vb2/vb2 + 9v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/719fb+9fX2/vX19v709PX+8/P0/vLy + 8/7x8fL+8PDx/u7u7/7t7e3+6+vr/ujo6f7n5+f+5eXl/uHh4f7b29z+09PT/szMzf7o6On+1tbY91JS + UogAAAApERERDD09PgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//X19v729vf/9vb3//b2 + 9v729vf/9/f3//f39//29vf+9/f3//f39//29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9/f4//b2 + 9//29vf+9vb3//X19v/09PX+9PT1//Pz9P/y8vP+8PDx/+/v8P/t7e7+6+vs/+np6v7n5+j/5ubm/+Pj + 4/7e3t7/19fX/8rKyv7q6ur/39/h/9nZ2/lZWVqLAgICLBEREQ0/P0ACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vT09f719fb+9fX2/vX19v719fb+9fX2/vX1 + 9v719fb+9vb2/vb29v729vb+9vb2/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb2 + 9/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9fX2/vX19v709PX+9PT1/vPz9P7y8vP+8fHy/u/v + 8P7u7u/+7Ozt/urq6/7o6On+5ubm/uTk5f7f3+D+2dna/s7Oz/7l5eb+5+fp/t/f4f7a2tz4YmJjkwAA + AC0TExMNQUFBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9vb2//X1 + 9f719fb/9fX2//X19v729vf/9vb3//b29v729vf/9/f3//b29/739/f/9/f4//b29/739/j/9/f4//f3 + +P/29vf+9/f4//f3+P/29vf+9/f4//f3+P/29vf+9vb3//b29//29vf+9vb3//b29//29vf+9fX2//X1 + 9v/09PX+9PT1//Pz9P/y8vP+8fHy//Dw8f/u7u/+7Ozt/+rq6/7o6On/5+fn/+Tk5f7h4eL/29vc/9HR + 0v7e3t//7u7v/+fn6P7f3+H/3Nze+3BwcKAAAAAwEhISD0FBQgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//X19v729vf/9fX2//Hx8v7y8vP/9PT1//T09f729vb/9vb3//b29/739/f/9/f3//b2 + 9/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+vr6//b29z+29vc/9vb3P/a2tr+2NjZ/9jY + 2f/Z2dn+2dnZ/9nZ2f/Y2Nn+2NjY/9jY2P/X19j+19fY/9bW1//V1db+1NTV/9PT1P/R0dL+0NDR/87O + z/7Nzc3/y8vL/8jIyf7Gxsb/wcHB/7i4uf7Kysr/9PT0/+3t7v7m5uj/39/h/9zc3vxvb3ChAwMDNBIS + EhBCQkIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vX19v719fb+9fX2/vLy8/709PX+9fX2/vX1 + 9f729vb+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9vb3/tzc + 3f7X19j+4ODh/t7e3/7W1tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0dHS/tHR0v7Q0NH+0NDR/s/P + 0P7Ozs/+zs7P/s7Ozv7MzM3+y8vM/snJyv7Hx8f+xcXG/sPDw/6/v8D+u7u8/rOztP7AwMH+9PT1/vHx + 8v7t7e7+5ubo/t7e4P7b29z8dHR1pwEBATUTExMQQUFCAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr7//X1 + 9v729vf/9fX2//Pz9P709PX/9fX1//X19f719fb/9vb3//b29/729vf/9vb3//b29/739/j/9/f4//b2 + 9/739/j/9/f4//f3+P/29vf+9/f4/+Li4v/Ozs/+4eHh/93d3v/R0dH+zs7P/9LS0//T09T+09PU/9PT + 1P/T09T+09PU/9LS0//S0tP+0tLS/9HR0f/Q0ND+z8/Q/8/Pz//Ozs7+zMzN/8rKy/7IyMn/x8fI/8XF + xv7BwcL/vb2+/7a2t/6+vr//9PT0//X19f7x8fL/7e3u/+fn6P7e3uD/2trc/YGBgrMCAgI3EhISEjg4 + OQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+vr7//X19v729vf/9fX1/+zs7f7v7+//8fHx/+/v7/7x8fL/8vLy//Pz + 9P719fb/9fX2//b29/739/j/9/f4//b29/739/j/9/f4//f3+P/29vf+9/f4/+Dg4f/S0tL+39/f/97e + 3//U1NX+0tLT/9jY2f/a2tv+2trb/9ra2//a2tv+2trb/9nZ2v/Z2dr+2NjZ/9jY2f/X19j+1tbX/9bW + 1//V1dX+09PU/9LS0v7Q0ND/zs7O/83Nzf7Kysv/xcXG/729vv7Dw8T/9fX1//f39/719fX/8fHy/+3t + 7v7m5uj/3t7g/9nZ2/17e32wBgYGPAMDAxMwMDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb29v729vb+9vb2/vHx + 8v719fb+9vb3/vT09f719fb+9PT0/vb29v729vf+9vb3/vb29/729vf+9vb3/vb29/729vf+9/f3/vf3 + 9/739/f+9/f3/t/f3/7b29v+19fY/t/f4P7X19f+09PU/tjY2P7c3Nz+3Nzd/tzc3f7c3N3+3Nzd/tvb + 3P7b29z+29vb/tra2/7Z2dr+2dnZ/tjY2P7X19j+1tbW/tTU1f7S0tP+0NDR/s/P0P7MzM3+yMjI/r+/ + v/7FxcX+9fX1/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e4P7X19n9fX1+sQMDAzsEBAQSMDAwBAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr7//b29v739/f/9vb3//Hx8f7x8fL/8vLz//Ly8v7z8/T/8/P0//Pz9P709PX/9vb2//b2 + 9/739/f/9/f3//f39/739/j/+Pj4//j4+P/39/f++Pj4/9/f3//i4uL+0dHR/+Dg4P/a2tv+1tbX/9bW + 1//b29z+3d3d/93d3f/c3N3+3d3d/9zc3f/b29z+29vc/9vb2//a2tv+2dna/9nZ2f/Y2Nn+19fY/9bW + 1v7U1NT/0tLS/9DQ0f7Ozs7/ycnK/8HBwv7Gxsb/9/f3//n5+f74+Pj/9/f3//X19f7x8fL/7e3u/+fn + 6P7e3uD/1tbY/oSEhbkEBAQ8AwMDFC8vLwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+vr6/7t7e3/7+/v//Dw + 8P7u7u7/8fHx//Dw8P7x8fH/9PT0//f39/739/f/+Pj4//f39/739/f/9/f3//f39//39/f++Pj4/9/f + 3//j4+P+1tbW/9zc3P/c3Nz+2tra/9bW1v/a2tr+3d3d/93d3f/d3d3+3d3d/93d3f/c3Nz+3Nzc/9zc + 3P/b29v+2tra/9nZ2f/Z2dn+2NjY/9bW1v7V1dX/09PT/9HR0f7Pz8//y8vL/8PDw/7Gxsb/+Pj4//n5 + +f75+fn/+Pj4//f39/719fX/8fHy/+3t7v7m5uj/3t7g/9XV1/5+fn+1BwcHPgMDAxM9PT4DAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+vr6/vb2 + 9v729vb+9vb2/vLy8v729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/t7e3v7j4+P+39/f/tPT0/7e3t7+3t7e/tfX1/7Z2dn+3d3d/t3d + 3f7d3d3+3d3d/t3d3f7c3Nz+3Nzc/tzc3P7b29v+29vb/tra2v7Z2dn+2dnZ/tjY2P7W1tb+1NTU/tPT + 0/7Q0ND+zc3N/sbGxv7Kysr++fn5/vr6+v75+fn++fn5/vj4+P739/f+9fX1/vHx8v7t7e7+5ubo/t7e + 4P7T09b+eXl7sgICAjkSEhIQPT09AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9vb2/+3t7f7s7Oz/7u7u/+3t7f7w8PD/8fHx/+/v + 7/7x8fH/9fX1//f39/74+Pj/+Pj4//f39/74+Pj/9vb2//b29v/29vb+9/f3/97e3v/j4+P+4+Pj/9DQ + 0P/f39/+4eHh/9vb2//X19f+3d3d/97e3v/e3t7+39/f/97e3v/d3d3+3t7e/93d3f/c3Nz+3Nzc/9vb + 2//a2tr+2tra/9nZ2f7X19f/1tbW/9TU1P7S0tL/z8/P/8rKyv7Ozs7/+vr6//v7+/76+vr/+vr6//n5 + +f74+Pj/9/f3//X19f7x8fL/7e3u/+fn6P7e3uD/0tLV/XNzdbAAAAA1ERERETw8PAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn + 5/7t7e3/7+/v//Dw8P7u7u7/8fHx//Dw8P7s7Oz/9PT0//f39/74+Pj/+Pj4//f39/74+Pj/9PT0//b2 + 9v/19fX+9fX1/93d3f/k5OT+5OTk/9XV1f/b29v+4uLi/97e3v/X19f+29vb/97e3v/e3t7+39/f/97e + 3v/e3t7+3t7e/97e3v/d3d3+3d3d/9zc3P/b29v+29vb/9ra2v7Z2dn/19fX/9bW1v7U1NT/0dHR/83N + zf7U1NT/+/v7//v7+/75+fn/+Pj4//b29v7z8/P/8PDw//Dw8P7y8vP/8vLz/+7u7/7n5+j/3t7g/9HR + 0/1jY2WiAgICMxAQEQ87OzwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAhoa + GhM/Pz95+vr6/vb29v729vb+9vb2/vT09P729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9vb2/t7e3v7k5OT+5OTk/uHh4f7Q0ND+4+Pj/uHh + 4f7Z2dn+2tra/t7e3v7f39/+39/f/t/f3/7f39/+3t7e/t7e3v7e3t7+3d3d/t3d3f7c3Nz+29vb/tra + 2v7a2tr+2dnZ/tfX1/7W1tb+09PT/tDQ0P7Ozs7+0tLS/s3Nzf7Hx8f+w8PD/sDAwP64uLj+tLS0/ri4 + uP6+vr7+vr6+/sfHx/7X19j+3t7f/uTk5f7Pz9H7W1tdmQAAAC0RERIMOzs8AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b29v739/f/9fX1/+fn5/7n5+f/6enp/+np + 6f7r6+v/7e3t/+rq6v7y8vL/9vb2//f39/74+Pj/+Pj4//f39/739/f/8vLy//Ly8v/z8/P+7+/v/93d + 3f/i4uL+5OTk/+Dg4P/S0tL+4uLi/+Tk5P/c3Nz+2NjY/93d3f/g4OD+4ODg/+Dg4P/f39/+39/f/9/f + 3//e3t7+3t7e/97e3v/d3d3+3Nzc/9vb2/7b29v/2tra/9jY2P7X19f/1tbW/9TU1P7R0dH/zc3N/8rK + yv7Hx8f/xMTE/8LCwv6xsbH/tra2/7q6uv6+vr7/uLi4/7q6uv7Dw8P/wMDA/76+vv7S0tL/1dXX+11d + XpYAAAAqERERDDs7PAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+/v7//b2 + 9v739/f/9fX1/+bm5v7u7u7/8PDw//Ly8v7v7+//8fHx//Dw8P7t7e3/8/Pz//f39/74+Pj/+Pj4//f3 + 9/739/f/8vLy//T09P/19fX+8PDw/97e3v/j4+P+5eXl/+Dg4P/Y2Nj+3d3d/+Xl5f/g4OD+2dnZ/9zc + 3P/g4OD+4eHh/+Hh4f/g4OD+4ODg/9/f3//f39/+39/f/97e3v/e3t7+3d3d/9zc3P7b29v/29vb/9ra + 2v7Z2dn/2NjY/9bW1v7U1NT/0tLS/9DQ0P7Ozs7/zMzM/8rKyv62trb/wMDA/8bGxv7Jycn/xsbG/8LC + wv7S0tL/0dHR/8zMzP7FxcX/w8PD/9LS0vpXV1eLAQEBKCgoKAo/Pz8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz95+vr6/vb29v729vb+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vb2 + 9v739/f+9/f3/vf39/739/f+9/f3/vf39/739/f+9/f3/vj4+P74+Pj+8/Pz/uDg4P7l5eX+5eXl/uHh + 4f7h4eH+1tbW/uXl5f7j4+P+2tra/tnZ2f7e3t7+4ODg/uDg4P7g4OD+4ODg/t/f3/7f39/+39/f/t/f + 3/7e3t7+3t7e/t3d3f7c3Nz+29vb/tra2v7a2tr+2dnZ/tjY2P7W1tb+1dXV/tPT0/7S0tL+0dHR/sfH + x/7BwcH+ycnJ/s/Pz/7Pz8/+zc3N/sjIyP7a2tr+29vb/tnZ2f7U1NT+zc3N/sXFxf7MzMz3RkZHewAA + ACA3NzcGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz95+fn5//X19f729vb/9PT0/+Dg + 4P7f39//4ODg/+Li4v7h4eH/5eXl/9/f3/7k5OT/7u7u//X19f719fX/9fX1//b29v719fX/6urq/+3t + 7f/s7Oz+6enp/9jY2P/d3d3+39/f/9ra2v/d3d3+1dXV/+Dg4P/i4uL+29vb/9bW1v/c3Nz+39/f/9/f + 3//f39/+39/f/9/f3//e3t7+3t7e/97e3v/d3d3+3t7e/93d3f7d3d3/3Nzc/9zc3P7b29v/2tra/9nZ + 2f7Y2Nj/19fX/9bW1v7U1NT/09PT/8DAwP7Kysr/zs7O/9TU1P7U1NT/0tLS/8zMzP7f39//4eHh/+Dg + 4P7e3t7/2dnZ/9TU1P7MzMz/ycnJ8iQkJVkPDw8RREREAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM+Pj559/f3//Pz8/7z8/P/8vLy/+Li4v7s7Oz/7+/v/+/v7/7t7e3/7+/v/+/v7/7o6Oj/7u7u//Ly + 8v7y8vL/8vLy//Ly8v7y8vL/7Ozs/+3t7f/u7u7+6+vr/9jY2P/c3Nz+39/f/9ra2v/d3d3+3Nzc/9jY + 2P/h4eH+3Nzc/9TU1P/W1tb+2dnZ/9ra2v/a2tr+2tra/9ra2v/Z2dn+2tra/9ra2v/a2tr+2tra/9vb + 2/7b29v/2tra/9nZ2f7Z2dn/2NjY/9jY2P7X19f/1tbW/9TU1P7U1NT/0NDQ/8HBwf7MzMz/09PT/9fX + 1/7W1tb/1dXV/8/Pz/7h4eH/5OTk/+Xl5f7j4+P/4eHh/93d3f7Z2dn/1dXV/omJirMAAAAiNTU1BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PT0//Dw8P7w8PD/7+/w/+bm5v7r6+v/6enp/+jo + 6P7r6+v/6enp/+jo6P7p6en/6+vr/+7u7v7u7u7/7e3t/+3t7f7t7e3/6urq/+np6f/q6ur+5ebm/9XV + 1f/Z2dn+29vb/9bW1v/Y2Nj+3Nzc/8/Pz//d3d3+29vb/9LS0v/MzMz+zs7O/8/Pz//Pz8/+0NDQ/9DQ + 0P/Q0ND+0NDQ/9HR0f/R0dH+0tLS/9LS0v7T09P/09PT/9PT0/7S0tL/0dHR/9HR0f7R0dH/0NDQ/8/P + z/7Ozs7/xcXF/8TExP7Pz8//2NjY/9nZ2f7Z2dn/1tbW/9DQ0P7j4+P/5ubm/+fn5/7m5ub/5eXl/+Pj + 4/7h4eH/3t7e/8/Pz+gAAAAwKysrCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM9PT158fLy/u7u + 7v7t7e3+6+vr/tra2v7V1dX+2NjY/tna2v7W1tb+3Nzc/tbW1v7b3Nz+5OTk/urq6v7q6ur+6urq/unp + 6v7p6en+4ODh/uHh4f7g4OD+2dnZ/s/Pz/7U1NT+1dXV/s7Ozv7R0dL+1dXV/sjIyP7BwcH+wMDA/rq6 + uv64uLj+urq7/ru8vP68vL3+vb29/r29vv6+v7/+vr6+/r+/v/7AwMD+wcHB/sLCwv7CwsL+wsLC/sLC + wv7CwsL+wsLC/sHBwf7AwMD+v7+//r6+vv69vb3+urq6/tLS0v7W1tb+29vb/tvb2/7b29v+2dnZ/tLS + 0v7l5eX+6Ojo/unp6f7p6en+6Ojo/ufn5/7l5eX+5OTk/uPj5PkAAAA6MjIyCzo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9PT158fHy/+3t7v7s7e3/6+zs/97e3v7n6Oj/6enq/+np6v7n6Oj/6Ojp/+jo + 6f7g4eH/5+jo/+nq6v7p6er/6enq/+jp6f7o6en/4uPj/+Tk5f/l5ub+2tvb/9XW1v/V1tb+2NjY/9LT + 0//V1tb+2dna/8vMzP/MzM3+y8zM/8fIyP/IyMn+y8zM/8zMzf/Mzc3+zc7O/83Ozv/Nzs7+zs7O/87O + zv/Pz8/+0dHR/9PT0/7U1NT/1NTU/9TU1P7T09P/09PT/9PT0/7S0tL/0dHS/9HR0f7Pz9D/ycnJ/9vb + 2/7a2tr/3d3d/97e3v7d3d3/29vb/9PT0/7n5+f/6urr/+vr6/7r6+v/6urq/+rq6v7p6en/6Ojo/+zs + 7P4AAAA/NjY2DEJCQgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7s7e//6+zu/9/g + 4v7j4+T/4uLk/+Dh4v7k5eb/4uPk/+Li5P7o6er/5ufp/+rr7P7q6+z/6uvs/+nq7P7p6uv/4uPk/+Lj + 5P/k5ef+1tjZ/9fX2P/W19f+2drb/9LT1P/U1df+2Nna/8rLzP/LzM3+zM3O/8fIyv/Jycv+zc7P/83O + z//Mzc7+zc7P/87P0P/Nzs/+zs/Q/8/P0P/Q0ND+0tLT/9TU1P7V1db/1tbX/9bW1/7V1db/1dXV/9TU + 1P7T09T/09PU/9LS0/7S0tL/zc3N/9ra2/7b29z/3t7f/9/f4P7e3t//3d3d/9PT0/7p6en/7Ozs/+zs + 7f7s7O3/6+vs/+vr7P7q6uv/6urr/+/v8P4AAABBODg4DEdHRwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+zt/tfY2f7Y2dr+2tzd/t3e4P7X2Nn+3+Dh/tjZ2v7V1tj+4+Xm/urr + 7f7r7O3+6+zt/uvs7f7q6+z+4OHi/uLj5P7g4eL+1dfY/tXW2P7U1tf+1dbX/s7P0f7U1db+1tjZ/srL + zf7LzM7+ycvN/sXHyf7Hycr+y83O/szNz/7Nzs/+zM3P/s3O0P7Nzs/+zs/R/s/Q0f7S0tP+09PU/tXV + 1v7X19f+19fY/tfX2P7X19f+1tbW/tXV1v7V1dX+1NTU/tPT0/7T09P+0dHR/tjY2f7c3N3+39/g/uDg + 4f7g4OD+39/g/tTU1f7q6ur+7u7u/u/v7/7u7u/+7e3u/u3t7v7s7O3+7Ozt/vHx8v4AAABBOTk5DElJ + SQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+3u7/7t7vD/7e7v/+Xm5v7r7O3/7O3v/+zt + 7/7s7e7/6+zu/+vs7v7o6uv/6uvt/+vs7f7r7e7/6+3u/+vs7f7q6+z/5ujp/+fo6v/o6uv+3N3e/9rb + 3f/Z29z+2drc/9XX2P/Z293+3N3f/87P0f/P0NL+z9DR/8rLzf/Mzc/+z9DS/87Q0v/O0NL+z9DS/8/Q + 0v/P0NH+z9DS/9DR0v/T1NT+1tbX/9fX1/7Y2Nj/2NjZ/9jY2f7Y2Nn/19fY/9bW1/7W1tf/1dXW/9XV + 1f7U1NT/0dHS/9nZ2v7e3t7/4eHh/+Hh4v7h4eL/4ODg/9bW1v7s7Oz/7+/v//Hx8f7w8PD/7+/w/+/v + 8P7u7u//7u7v//Pz9P4AAABBOjo6DEpKSgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 7/7t7/D/7O3u/93f4P7c3d//3d/g/9zd3/7g4uP/4OHj/97f4f7g4eP/5efo/+vs7f7r7O3/6+zt/+rr + 7P7p6+z/4OLj/+Lk5f/h4uT+1dfY/9XX2P/V19n+1dfZ/8/Q0v/U1db+19na/8vMzv/Lzc7+yszO/8TG + yP/Jy8z+ztDR/83P0P/Nz9D+zM7P/83P0P/NztD+zs/Q/8/Q0f/U1NT+19fX/9jY2f7Z2dn/2dna/9nZ + 2v7Z2dn/2NjZ/9jY2P7X19j/1tbX/9XV1v7V1db/09PT/9ra2v7f3+D/4uLi/+Pj4/7i4uP/4eHi/9fX + 1/7t7e3/8PDw//Ly8v7y8vL/8fHx//Dw8f7w8PH/7+/w//X19f4AAABBOjo6DEtLSwEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7O3u/tLT1f7b3N3+3d7f/t/h4v7Y2dv+3uDh/tja + 2/7b3d7+4+Xm/urs7f7q7Oz+6uvt/unr7f7p6+z+3N3e/t3e4P7e3+H+1NbX/tTV1/7P0dL+1dfY/s/R + 0v7U1df+19ja/sjKy/7MztD+ysvN/sbHyf7Iysz+zc/R/szNz/7Mzs/+zM7P/s3O0P7Oz9D+zs/R/tDR + 0v7U1NX+19fX/tnZ2v7Z2dr+2trb/tnZ2v7Z2dr+2dna/tnZ2f7Y2Nn+2NjY/tfX2P7W1tf+09PU/tra + 2/7g4OD+4+Pk/uTk5P7j4+T+4uLj/tfX2P7t7e7+8fHx/vPz8/7z8/P+8/Pz/vHx8v7x8fL+8fHy/vf3 + 9/4AAABBOjo6DEtLSwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+7v7/7u7/D/7e7v/+jp + 6/7s7e//7O3v/+vt7v7s7e//6+3u/+vs7v7p6uv/6+zt/+rs7f7q7O3/6uzu/+nr7f7q6+3/6Orr/+fp + 6//o6uz+2tzd/9zd3//b3N7+2drc/9bY2f/a3N3+293e/83P0P/Oz9H+yszO/8XHyf/Jy83+zM7P/8zO + 0P/MztD+zc7Q/83P0f/Oz9H+z9DR/9DR0v/V1db+2NjZ/9nZ2v7a2tr/2tra/9nZ2v7Z2dn/2NjY/9fX + 2P7X19j/19fX/9bW1/7W1tf/1NTU/9vb2/7g4OD/4+Pj/+Tk5f7k5OX/5OTk/9jY2f7u7u//8vLz//T0 + 9f709PT/9PT0//Pz9P7y8vP/8vLz//j4+P4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+7v7/7u7/D/7O3u/9rb3f7V1tf/2Nna/9bY2f7a3N3/3N7f/9TV1/7Y2tv/5ebo/+rs + 7f7q7O7/6uzu/+nr7f7p6uz/3+Hi/9rc3v/f4eP+0tPV/9XW2P/S1NX+09XW/8zOz//P0dL+z9HT/8LD + xf/Bw8T+vb/B/7q8vf+/wML+w8XH/8PExv/CxMb+wcPE/8PFx//Dxcb+xMbH/8bHyf/Ly8z+0NDQ/9HR + 0f7R0dL/0tLS/9HR0v7S0tL/0dHS/9HR0f7R0dH/0dHR/9HR0f7R0dH/zs7P/9bW1v7a2tv/3t7e/+Dg + 4f7i4uP/4+Pj/9nZ2f7t7e7/8/P0//X19v719fX/9fX1//T09P709PT/8/P0//n5+f4AAABBOzs7DExM + TAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u7/7t7vD+6+zu/tDR0v7f4OL+4OHj/uLj + 5f7c3d/+4OHi/uHi4/7c3t/+4+Tm/urr7f7p6+3+6evt/unq7P7o6uz+3N3f/uHj5P7e4OH+09XW/tTW + 1/7U1df+1dfZ/sTGyP7AwsP+v8DC/re5uv69v8D+vL6//rq7vf6/wMH+wsTF/r/Bwv6/wML+v8DC/r/A + wv6/wcP+wMLE/sPExv7Iycn+y8vM/s3Nzf7Nzc3+zc3O/s3Nzf7Nzc3+zMzN/svLy/7Ly8v+y8vL/svL + y/7Ly8z+ycnJ/s7Ozv7T09T+1dXW/tfX1/7X19f+19fY/tTU1f7h4eL+8fHy/vX19v719fb+9fX2/vX1 + 9f719fX+9PT1/vr6+v4AAABBOzs7DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u + 8P7u7/D/7e7w/+bo6f7r7O7/6evs/+nq7P7r7O3/6evr/+nq6/7p6+3/6ers/+rr7f7q6+3/6uvt/+nr + 7P7p6+z/5ujp/+Xn6f/n6er+2Nrb/9nb3f/T1df+ycvM/7q8vf+5u7z+vL6//7e5uv+6vL7+ubu8/7a3 + uP+8vb7+vsDB/77Awv++wMH+vb/B/76/wf+9v8D+vr/B/76/wP/Fxcb+x8jI/8jIyf7Jycn/yMjJ/8jI + yP7IyMj/xsbH/8XFxv7Dw8T/wcHB/7+/wP6+vr7/vLy9/7u7vP6/v8D/wsLC/8TExf7Hx8f/x8fH/8fH + yP7U1NX/8PDx//b29/729vf/9vb3//b29v729vb/9fX2//r6+/4AAABBOzs7DExMTAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7u7/D/6+zu/9PU1f7R0tP/09XW/9TV1v7V1tj/2tvc/9HS + 1P7i5OX/5efo/+rr7f7q7O3/6evt/+nr7P7p6+z/2tze/9ze3//d3uD+xMbH/8XHyP/GyMn+xsfI/7S2 + uP+ztLb+uLq7/7S2uP+2t7n+srS1/7Cys/+0trf+ubu8/7m7vP+6vL3+uru9/7y9v/+8vb/+vL6//7/A + wf/DxMT+yMjI/8nJyv7Jycn/yMjI/8bGxv7Gxsf/xMTE/8LCw/7CwsL/vr6+/729vf68vLz/urq6/7m5 + uf69vb7/wMDA/8DAwf69vb3/u7u7/7q6uv7Y2Nn/8/P0//b29/739/j/9/f3//b29/739/f/9vb2//v7 + +/4AAABBOzs8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u8P7t7vD+6+zt/tXX + 2P7i4+T+5Obn/ufo6f7g4uP+4+Tl/uPl5/7e4OH+5ebo/unr7f7q6+3+6uvs/unr7P7o6uv+3uDh/t/h + 4v7g4uP+1dfZ/tfZ2/7X2dr+3N7f/tLU1f7MzdD+0dPV/svNz/7R09X+z9HT/szOz/7P0dL+0tTV/s/R + 0v7P0dL+z9HS/s/R0/7Q0tP+0tPV/tXX1/7d3d7+4uLi/uTk5f7g4OD+29vc/tjY2f7W1tf+1tbW/tTU + 1P7T09T+1NTU/tXV1v7U1NX+0dHR/tHR0f7Y2Nj+29vc/tzc3f7c3Nz+2dna/tfX1/7y8vP+9vb3/vf3 + +P739/j+9/f4/vb29/729vb+9vb2/vz8/P4AAABBPDw8DExMTAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/+3u8P7t7/D/7O7v/+fo6v7o6ev/6Onq/+fp6v7o6uv/5+nq/+fo6v7n6Or/6Ors/+rs + 7f7q7O3/6uzt/+nr7P7p6+z/5ufp/+bo6v/h4+X+4OLj/9TW1//h4+T+4uTl/+Di5P/W2Nr+0dPV/87Q + 0v/U1tf+0NLU/87Q0v/S1NX+1NbX/9TX2P/T1df+1NbY/9PV1v/S1Nb+0tTV/9XW1//b3Nz+39/g/9/f + 4P7Z2dr/1NTU/9TU1f7V1db/1NTU/9HR0f7R0dH/0NDR/9HR0f7T09P/19fX/9fX1/7i4uP/5ubm/+fn + 6P7m5ub/3t7f/+np6v739/f/+Pj5//f3+P74+Pn/+Pj5//f3+P739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u8P7t7/D/6uzt/87P0P7Nz9D/zc7P/9DR + 0v7Lzc7/09TW/8rLzf7U1df/3uDh/+rs7f7q7O3/6uzt/+nr7P7n6er/1tja/9PV1v/Z29z+19nb/8/R + 0//Nz9H+1dfY/9rc3f/Q0tP+yMrM/8PGx//MztD+y83O/8/R0v/R1NX+z9HT/8vNz//Iysz+ycvN/8fJ + yv/KzM7+y83P/87P0P/W19f+zc3O/8DAwf7AwMD/w8PD/8rKyv7Pz8//0dHS/9jY2P7Y2Nn/2NjZ/9jY + 2P7Z2dn/29vb/9vb2/7k5OX/5+fn/+fn6P7j4+T/4eHh//b29v74+Pj/+Pj5//f3+P74+Pn/+Pj5//f3 + +P74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/u3u + 7/7t7u/+6+zt/trb3P7l5+j+6+3u/uvs7f7q6+z+6uvs/urr7f7d3uD+5+nq/urs7f7q6+z+6evs/unq + 7P7o6uz+6Onr/ufp6v7n6er+5+nq/ubo6v7a3N3+3d/g/t/h4/7c3uD+1NbX/snLzP7Q0tP+09XW/tPV + 1v7R1NX+0NLT/s7Q0f7O0NH+ztDR/s7Q0f7Lzc/+y83O/s7Q0f7V1tb+zM3N/sbHx/7BwcH+zs7O/tXV + 1f7V1dX+1NTU/tXV1f7U1NT+1NTU/tPT0/7T09P+19fX/tra2v7l5eX+5eXl/uXl5f7e3t7+8/Pz/vj4 + +P74+Pj++Pj4/vf39/739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//6+zt/+fp6v7g4uP/4eLj/+Hj4/7f4eL/4+Xm/+Pk + 5v7j5eb/5Obn/+Hi5P7l5+j/4uTl/+Hj5P7g4uP/5+jq/+jq6//o6uv+5efp/+Hj5f/g4uT+0NLU/9TW + 1//Y2tv+0tTW/8rMzf/Iysz+ys3O/8zP0P/Nz9D+y83P/87Q0v/R09T+0dPU/9DT1P/S1NX+0dPV/9XW + 1//U1dX+0dHR/8nJyf7ExMT/09PT/9nZ2f7Z2dn/2dnZ/9jY2P7a2tr/2NjY/9nZ2f7W1tb/09PT/9bW + 1v7k5OT/5OTk/9/f3/7s7Oz/9/f3//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fLz/+3u7/7t7+//5+np/8vM + zf7Lzc7/zM7P/9XW1/7P0dL/z9DS/8/R0v7Q0tP/09XW/9HS1P7Y2dv/1dbX/9LU1v7Y2tv/5ujp/+jq + 6//o6uv+4ePk/9ze3//X2dv+1dfY/83P0f/P0dP+y87P/8jLzf/Cxcb+vL2//72/wP+9v8H+xMbI/8jK + zP/Jy83+y8zO/8rMzf/Mzs/+zM7P/8/R0v/P0NH+zMzN/8TExP6/v7//zs7O/9LS0v7T09P/0tLS/9PT + 0/7W1tb/1dXV/9XV1f7b29v/1dXV/9DQ0P7f39//4ODg/+Li4v729vb/+Pj4//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fLz/u3u7/7t7u/+6+3t/tzd3v7m6On+7O7u/uzt7v7r7e7+6+zt/urs7f7r7O3+6uzt/urr + 7f7p6+z+6evs/uXn6P7o6uv+6Orr/ujq6/7o6uv+5+nr/ufp6v7m6Or+5ujq/trc3f7Y2tz+1NbY/tLU + 1f7Iysv+ury+/re5uv69v8D+w8bH/sXIyf7Hycr+ycvN/srNzv7Lzc/+zc/Q/s/R0v7P0NH+zs7O/sTE + xP7ExMT+0tLS/tXV1f7V1dX+1NTU/tTU1P7T09P+0tLS/tDQ0P7Nzc3+0tLS/snJyf7V1dX+2NjY/vLy + 8v74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v7/7t7+//6uvs/+Lk5P7Y2tr/2drb/8/Q + 0f7Y2tv/3N7e/97g4f7b3d7/2tzd/+fp6v7q7O3/6uvt/+nq7P7o6uv/4ePk/97f4f/e4OL+3uDh/9/h + 4v/d3+H+5Obn/+Di5P/P0dP+zdDR/83P0P/Hysz+vsDC/7S2t/+ytLX+s7W2/7S2t/+1t7j+ubu8/72/ + wP/AwsP+wsXG/8fJyv/Gx8j+y8vL/8DAwP7BwcH/zs7O/9DQ0P7Pz8//zc3N/8zMzP7Ly8v/ysrK/8nJ + yf7Gxsb/xsbG/8fHx/7U1NT/5+fn//f39/75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158fPz/+3v + 7/7u7+//6Onp/8bHyP7Mzc7/09TV/9DS0v7Y2tr/1dfY/9PV1v7X2dr/19na/+fo6v7q7O3/6evs/+nq + 7P7n6er/19ja/9ja3P/d3+D+3N7f/9nb3P/b3d/+3uHi/93g4f/Y2tv+yczN/8fJy//JzM3+xcfJ/8HD + xf/AwsT+v8HD/7y+wP+8vr/+vb/B/77Awv++wML+wcPE/8fJyv/Iycr+0tLS/8nJyf7Nzc3/1dXV/9bW + 1v7V1dX/1dXV/9TU1P7U1NT/09PT/9PT0/7T09P/0NDQ/8/Pz/7l5eX/9/f3//j4+P75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkZGRM9PT158fLz/u7v7/7t7u/+7e7u/uTl5v7r7e7+7O7v/uzt7v7r7e7+6uvs/uvt + 7v7r7O3+6uzt/urs7f7p6+z+6evs/ujq6/7p6+z+6Orr/ufp6v7o6ev+5+nr/ubo6f7m6On+5ujp/uXn + 6P7l6On+3N7g/tTX2P7S1Nb+0dPV/tDS1P7Q0tT+0tTW/tLV1v7R1NX+0NLU/s/R0/7Nz9D+y83O/srM + zf7Jysv+1NTU/tXV1f7g4OD+5eXl/ubm5v7l5eX+4+Pj/uLi4v7i4uL+4uLi/uHh4f7i4uL+4uLi/uPj + 4/75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGRM9PT158vPz/+7v7/7u7/D/6uvr/9nb + 2/7Q0dL/0tTU/9DS0v7T1db/0dPU/9PV1v7T1db/5Obn/+rs7f7q7O3/6uvt/+nr7P7p6+3/4ePk/+jq + 7P/n6uv+5+nr/+fp6//m6Or+5ujq/+bo6f/l6On+5ejp/+Xo6f/k5+j+4+Xn/+Hk5f/f4uP+3N7g/9nb + 3f/X2dv+19nb/9ja3P/Z293+2dvc/9rb3f/W19j+39/f/+Xl5f7x8fH/9PT0//T09P719fX/9/f3//j4 + +P75+fn/+fn5//n5+f76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZ + GRM9PT158fPz/u7v8P7t7+/+6Onq/sLDxP7Q0dL+09XV/tDS0v7b3N3+1tjZ/trb3P7Y2dr+5Obn/urs + 7f7p6+z+6evs/unr7P7o6+z+2dvd/ujq6/7o6uv+5+nq/ubo6v7m6On+5ujq/ubo6v7l6On+5efp/uTn + 6P7k5uj+5Obo/uPm5/7j5ef+4+Xn/uPl5/7j5ef+4OLk/tve3/7X2tv+2Nrb/tvd3v7l5uf+8/Pz/vf3 + 9/76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vn5+f75+fn++fn5/vn5+f75+fn++fn5/vn5 + +f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v8P7u7/D/7u/w/+7v8P7t7/D/7e/v/+zu + 7v7s7u//7O3u/+zt7v7s7e7/6+3u/+rs7f7q7O3/6evt/+nr7P7p6+3/6evs/+jq7P/n6ev+5+nr/+fp + 6v/m6er+5+nq/+bo6v/l5+n+5efp/+Xn6f/k5uj+5Obo/+Tm6P/j5ef+4+bn/+Pm5//i5eb+4+bn/+Pm + 5//j5ef+3+Lj/9fZ2//t7/D+9vb3//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6 + +v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f3 + 9/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT4+AhkZGhM9PT158vP0/+7v + 8P7u8PD/7u/w/8nLy/7R0tP/x8nJ/83Oz/7Ky8z/yszN/8/R0v7X2dr/6evs/+rs7f7q7O3/6uvt/+rr + 7f7W2Nr/3uDh/9XX2P/h4+X+1tja/+bo6f/n6er+5unq/+bo6v/l5+n+5efp/+Tn6f/j5uj+5Obo/+Pm + 6P/j5ef+4+Xn/+Pl5//i5eb+4+Xn/+Pm5//j5ef+4+bn/+Xn6P/t7+/+9vb3//v7+/77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPT4+AhkaGhM9PT558vP0/u7v8P7u7/D+6err/t3e3/7W19j+4eLj/tze3v7f4OH+3+Dh/uDi + 4/7i5OX+6uvs/urs7f7q7Oz+6uvt/urr7f7d3+D+5efo/trc3f7n6ev+293e/ufp6v7m6Or+5ujq/ubo + 6f7l5+n+5Ofo/uTm6P7j5uj+4+bn/uPm5/7j5ef+4+Xn/uLl5/7i5eb+4uXm/uLl5v7i5eb+4+bn/uXn + 6f7s7u/+9vb2/vr7+/77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v75+fn++fn5/vn5 + +f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/v39 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9PT558/T0/+/w8P7v8PD/7u/w/+Tl + 5v7q6+z/6err/+vs7f7t7u//7O7v/+zu7v7s7u//6+3u/+vs7f7q7Oz/5+nq/+bo6f7e4OH/5efo/+bo + 6f/m6Or+5efp/+Xn6f/l5+n+5Obo/+Tm6P/j5uf+4uTm/+Ll5v/i5Ob+4uTm/+Lk5v/f4uT+4OPk/+Pl + 5//i5eb+4+Xn/+Ll5v/i5eb+4+Xn/+Xn6f/s7e7+9fb2//r7+/78/Pz/+/v7//r6+v77+/v/+/v7//r6 + +v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5+f75+fn/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahka + GhM9PT558/T0/+/w8f7v8PH/6uvs/9TW1v7Cw8T/z9DR/+rr7P7t7u//7O7v/+zu7/7s7u//7O7u/+vt + 7f7n6er/1dfX/9PU1v7Nz9D/2tzd/93g4f/X2dv+0dPV/9XX2f/V19n+1NbY/+Di5P/W2dr+2dzd/9ja + 3P/c3+H+3eDh/9nb3f/c3+H+3N/h/+Ll5//i5eb+4uXn/+Pl5//i5eb+4+Xn/+Xn6P/r7e7+9fX2//r6 + +v78/Pz/+/v7//r6+v77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+vr6//n5 + +f75+fn/+fn5//j4+P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//39/f4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T0/u/w8f7v8PD+6+zt/uPl5f7b3N3+293d/uvs + 7f7t7u/+7O7v/uzu7/7s7u7+6+3u/uvt7v7p6+z+3uDg/t7g4f7f4OL+5efo/uLk5f7h4+T+5efo/uTm + 5/7k5uf+5Obo/uXn6f7g4uP+4ePl/uDj5P7i5ef+4uTm/uHk5f7g4uT+4ePl/uHk5v7i5Ob+4uTm/uLk + 5v7i5eb+4+Xn/uXn6P7r7O3+9PX1/vr6+v77+/v++/v7/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6 + +v75+fn++fn5/vn5+f75+fn++fn5/vn5+f74+Pj++Pj4/vj4+P74+Pj++Pj4/vj4+P739/f+9/f3/vf3 + 9/739/f+9/f3/v39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w + 8f7v8PH/7u/w/9/g4f7i4+T/4eLk/+Tm5/7j5eb/5Obn/+Lj5P7g4eL/3+Hi/+Di4/7r7e7/6+zt/+rs + 7f7q7O3/6evt/+Tm5//i5OX+4uTl/93f4f/c3uD+3+Hj/+Hj5f/j5ef+4+bn/+Hj5f/g4+T+4OPl/+Hk + 5v/h5Ob+4OPl/+Dj5f/f4uT+4OPl/+Dj5P/f4uT+4eTl/+Tn6P/q7O3+8/T1//n6+v77+/z/+/v7//r6 + +v77+/v/+/v7//r6+v76+vv/+vr6//r6+v76+vr/+vr6//n5+f75+fr/+fn6//n5+f75+fn/+fn5//j4 + +P74+Pn/+Pj5//j4+P74+Pj/9/f4//f39/739/j/9/f4//39/f4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkaGhM9Pj558/T1/+/w8f7v8PH/7O3t/8fIyf7Hycn/ysvM/8LExP7Gx8j/xMbH/8nL + zP7Bw8T/zs/Q/9bY2f7r7e7/6+zt/+rs7f7q7O3/6evs/9ja2//X2tv+0tTV/9bY2v/X2dv+09bX/9XX + 2f/a3d7+3+Lj/9nc3f/a3N7+2Nvd/9zf4P/g4+X+3N/h/9nc3v/Z3N3+2tze/9jb3f/Y293+3+Hj/+Tm + 6P/q6+z+8/T0//n5+f77+/v/+/v7//r6+v77+/v/+/v7//r6+v76+vr/+vr6//n5+f76+vr/+fn5//n5 + +f75+fn/+fn5//j4+f75+fn/+Pj4//f3+P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//z8 + /f4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkaGhM9Pj558/T1/u/w8f7v8PD+7u/w/trc + 3P7o6er+7e7v/uzt7v7s7e7+7O3u/uzt7v7r7O3+6uzt/urr7P7r7e7+6+zt/urs7f7q6+z+6evs/uLk + 5f7g4+T+6Orr/ufp6/7m6Or+5ujp/ubo6v7l6On+4+bn/uPl5/7j5uf+4+bn/uLl5/7g4+T+3uDi/uDj + 5f7h5Ob+4uTm/uHk5v7i5Ob+4uXm/uTm6P7p6+z+8/P0/vj4+P76+vr++vr6/vr6+v76+vr++vr6/vn5 + +f75+fn++fn5/vn5+f75+fn++fn5/vj4+P74+Pj++Pj4/vj4+P74+Pj++Pj4/vf39/739/f+9/f3/vf3 + 9/739/f+9/f3/vb29v729vb+9vb2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Ahoa + GhM+Pj558/X1/+/w8f7v8fH/7u/w/9nb2/7X2dn/3t/g/9jZ2v7W19j/zc7P/+Tm5/7t7u//7O7v/+vt + 7v7r7e7/6+3u/+vs7f7c3t//2tzd/9rc3f/a3N3+3d/g/93f4P/i5OX+3uDi/+Hj5P/e4OL+3d/h/97h + 4v/g4uT+4OLk/93f4f/e4eP+3N/h/+Hj5f/i5ef+4uXn/+Ll5//i5eb+4+bn/+Tm6P/p6+z+8vPz//j4 + +P76+vv/+/v7//r6+v77+/v/+vr6//n5+f76+vr/+vr6//n5+f76+vr/+fn5//j4+P75+fn/+fn5//j4 + +P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//z8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w8f7v8PH/6err/9DR0v7Exsb/y83N/8fJ + yv7Y2tr/y83N/9/h4f7t7vD/7O3v/+zt7v7r7e7/6+3u/+vs7f7S1NT/09XW/9TW1//Q0tP+0tTV/9PV + 1v/W2Nr+2dvc/9fa2//Z293+293f/9XX2f/a3d7+1tja/9vd3//b3d/+19rc/+Hj5f/i5ef+4uXn/+Pl + 5//j5ef+4+bn/+Tm6P/p6+z+8vLz//j4+P76+/v/+vr7//r6+v76+vr/+vr6//n5+f76+vr/+fn6//n5 + +f75+fn/+fn5//j4+P74+Pn/+Pj5//j4+P74+Pj/+Pj4//f39/739/j/9/f4//f39/739/f/9vb3//b2 + 9v729vf/9vb3//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/u/w + 8f7u8PH+7/Dx/uLk5P7o6er+7u/x/u3v8P7t7/D+7e/v/u3u7/7s7u/+7O3v/uzt7v7s7e7+6+zt/urs + 7f7i4+X+5+jq/urr7P7o6uv+5+nr/ujq7P7n6ev+5+nq/uPl5v7i5Ob+5Obn/uLk5v7j5ef+4+Xn/uDj + 5P7h4+X+3+Lk/uLl5v7j5ef+4+bn/uPm5/7j5ef+4+bo/uTm6P7p6uv+8fLy/vj4+P76+vr++vr6/vn5 + +v75+fn++fn5/vn5+f75+fn++Pj5/vj4+f74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vb2 + 9/729vf+9vb3/vb29/729vb+9vb2/vX19v719fb+9fX2/vz8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8v7v8PH/6uvs/8/Q0P7R09T/1NXW/8jJyv7V1tf/0dLT/83P + 0P7V1tf/6+zt/+zt7/7s7e7/7O3u/+vs7f7Y2tv/293f/9PV1v/X2dr+5Obn/9fZ2v/a3N3+1tja/+Di + 4//h4+X+4uTm/+Pl5//m6On+5efp/+Xn6f/k5+j+5Ofo/+Tn6P/k5uj+5Obo/+Tm6P/j5uj+5Obo/+Xn + 6P/o6uv+8fLy//f3+P75+fr/+vr6//n5+v76+vr/+vr6//n5+f75+fn/+fn5//j4+f75+fn/+Pj4//j4 + +P74+Pj/+Pj4//f3+P74+Pj/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//z8 + /P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/AhoaGhM+Pj559PX2/+/w8f7w8fH/6Onp/9vc + 3P7S09P/1dbX/9DR0v7P0dH/09TV/9XX1/7Z29v/6+zt/+zu7v7s7e7/7O3u/+vt7v7Z2tv/3uDh/9TW + 1//P0NH+ztDR/9/h4f/a3N3+2Nrb/97g4v/Z29z+3d/g/97g4v/m6Or+5ujp/+Xo6f/l5+n+5efo/+Tn + 6P/k5uj+5Ofo/+Tn6P/k5uj+5efo/+Xn6f/o6uz+8PHx//b39/75+fn/+vr6//n5+f76+vr/+fn5//j4 + +P75+fn/+fn5//j4+P74+Pj/+Pj4//f39/74+Pj/+Pj4//f39/739/f/9/f3//b29v739/f/9/f3//b2 + 9v729vb/9vb2//X19f729vb/9vb2//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4/Ahoa + GhM+Pj559PX2/vDx8f7v8PH+7/Dw/u3u7/7t7u/+7/Dx/u7w8P7u7/D+7u/w/u3u7/7t7+/+7e7v/uzu + 7v7s7e7+7O3u/uvt7v7q6+z+6uzt/ubo6f7n6On+5+jp/unr7P7p6+z+5+nq/ujq6/7n6er+5+nq/ufp + 6v7n6er+5unq/ubo6v7m6On+5ejp/uXn6f7l5+n+5efp/uXn6f7l5+j+5efp/uXn6f7o6uv+7/Dx/vb2 + 9v75+fn++fn5/vn5+f75+fn++Pj4/vj4+P74+Pj++Pj4/vj4+P74+Pj+9/f3/vf39/739/f+9/f3/vf3 + 9/729vb+9vb2/vb29v729vb+9vb2/vb29v719fX+9fX1/vX19f719fX+9fX1/vz8/P4AAABBPDw8DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX2/+/w8f7v8PL/7u/x/9bX2P7Fxsf/wMHC/8/Q + 0f6/wcL/xsfI/8/Q0f7t7+//7e7v/+zt7/7s7e//7O7u/+vt7f7r7e7/6+zu/+rs7f/q7Oz+6uzt/+nr + 7P/p6uz+6ers/+jq7P/o6uv+6Orr/+jq6//n6er+5+nq/+bo6v/m6On+5ujq/+bo6v/l5+n+5efp/+Xn + 6f/l5+j+5ujp/+bo6f/o6uv+7/Dx//X29v74+Pn/+fn5//j4+f75+fn/+Pj5//j4+P74+Pn/+Pj4//f3 + +P74+Pj/9/f4//f39/739/j/9/f3//b29v729vf/9vb3//X19v729vf/9vb2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//z8/P4AAABBPDw8DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhoaGhM+Pj559PX1/+/w + 8P7v8PH/6uvs/8nKy/7a29z/1dbX/9fY2f7Y2dv/yMnK/8LDxf7s7u7/7O3u/+vt7v7r7O7/6uzt/+vs + 7f7q7Oz/6uvs/+nr7f/p6uz+6ers/+nq7P/p6uv+6Orr/+jp6//n6ev+5+nr/+fp6v/n6Or+5ujq/+bo + 6v/m6On+5ujp/+Xo6f/l5+n+5efp/+Xn6f/l5+j+5efp/+bo6f/o6uz+7u/x//X19v74+Pj/+fn5//j4 + +P74+Pn/+Pj5//f3+P74+Pj/+Pj4//f39/739/j/9/f4//b29/739/f/9/f3//b29v729vf/9vb3//X1 + 9v729vb/9vb2//X19f719fb/9fX2//T09f719fX/9PT1//z8/P4AAABBOzs8DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhkZGhM9Pj558vP0/uzt7v7t7u7+7O3u/uzt7v7r7O3+6+zt/uvr7P7q6+z+6ers/unq + 6/7o6er+3+Dh/ufo6P7n6On+5+jp/ubn6f7m6On+5ujo/ubn6P7l5+j+5ebo/uXm6P7d3uD+5Obn/uTm + 5/7k5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7j5ef+4+Xn/uPl5/7k5uj+5Obo/uXn + 6f7o6uz+7/Dx/vX19v74+Pj++Pj4/vj4+P739/j+9/f4/vf3+P739/f+9/f3/vf39/729vf+9vb3/vb2 + 9/729vb+9vb2/vX19v719fb+9fX2/vX19v719fX+9fX1/vT09f709PX+9PT1/vT09P709PT+8/P0/vz8 + /P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157/Dx/+nq6/7p6er/4ODh/6an + qP6qq6v/sbKz/6Gio/6vr7D/srO0/62ur/6qq6z/q6yt/7m6uv6mp6j/uru8/7W2tv6trq//1NbW/97f + 4P+wsrP+tba4/7i5uv+vsLH+s7W2/7m6u//Gx8j+3d7f/93e3//d3t/+3d7f/93f4P/e3+D+3uDh/9/h + 4v/g4uP+4ePk/+Lk5f/k5eb+5efo/+fp6v/r7O3+8fLy//b29v739/j/+Pj4//f3+P74+Pj/+Pj4//f3 + 9/739/f/9/f3//b29/739/f/9/f3//b29v729vb/9vb2//X19v729vb/9vb2//X19f719fX/9fX1//T0 + 9f719fX/9fX1//T09P709PT/9PT0//z8/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZ + GRM9PT157u7v/+fo6f7m5+j/4OHh/7a3uP7S0tP/2NnZ/8fIyP7IyMn/tre3/8vLzP7X19j/09TV/9jZ + 2v7Nzs7/09TV/9XW1/7S09T/2NjZ/9nZ2v/BwsL+x8jJ/9TU1f/P0NH+0tPU/9LT0//V1tf+2dra/9na + 2//a29z+293d/9ze3//e3+D+3+Dh/+Hi4//i5OX+5OXn/+bn6f/n6er+6evr/+vt7f/v8PH+8/T0//b2 + 9v739/j/9/f4//f39/739/j/9/f3//f39/739/f/9vb3//b29v729vf/9vb2//b29v719fb/9fX2//X1 + 9f719fb/9fX1//X19f709PX/9PT1//T09P709PX/9PT0//Pz8/7z8/T/8/P0//z8/P4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGRM9PT157u/w/ujo6f7n5+j+5ebn/t7e3/7V1db+2NjZ/uHi + 4/7X19j+1NTV/tHS0v7Ozs/+zc3O/tDQ0f7Nzs7+zc7O/tbW1/7Nzc7+1NTV/s3Oz/7Q0dH+0NHR/tPT + 1P7a29v+2tvc/tvc3f7Y2Nn+09TU/s7P0P7X2Nn+3+Dg/uPk5f7l5uf+5ujo/ujp6f7p6uv+6uzs/uvt + 7f7s7e7+7e7v/u/w8f7z8/T+9fX2/vb29/729vf+9vb3/vb29/729vf+9vb2/vb29v729vb+9fX2/vX1 + 9v719fb+9fX2/vX19f719fX+9PT1/vT09f709PX+9PT1/vT09P7z8/T+8/P0/vPz9P7z8/T+8/Pz/vLy + 8/7y8vP+8vLz/vv7/P4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AhkZGhM+Pj558vLy/+vs + 7P7q6uz/5ubn/76+v/64uLn/p6eo/9ra2/6ztLX/uru8/6qrq/60tLX/qKip/6qqq/7IyMn/09PU/7O0 + tP6tra7/tLW2/7S0tf+zs7T+u7y8/7u7vP/W19j+yMjJ/+Dh4v/AwcL+xsfH/87Pz//Q0dL+0tPU/+rr + 7f/r7O3+7O3u/+zu7//t7vD+7u/w/+7v8P/u7/D+7/Dy//Lz9P/09fb+9vb3//b29/739/f/9/f3//b2 + 9v729vf/9vb3//X19v729vf/9vb2//X19v719fb/9fX2//T09f719fb/9fX1//T09f709PX/9PT1//Pz + 9P709PX/9PT0//Pz9P7z8/T/8/P0//Ly8/7z8/T/8/Pz//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPj4+AhoaGhM+Pj559PT1/+3t7v7t7e7/6err/9PU1f7c3N7/zM3N/9jZ2f7Ozs//3t/g/9zc + 3f7d3d7/2NnZ/9vb2/7g4OH/4eLj/+Hh4/7f4OH/3+Dg/+Hh4v/c3d7+4uPl/+Lj5f/m5+j+5ufo/+fo + 6f/a29z+19jZ/9na2//c3d7+5OXm/+3u7//t7u/+7e/w/+7v8P/u7/D+7u/w/+7v8P/v8PH+8vLz//T0 + 9f/29vb+9vb3//b29v729vf/9vb3//X19v729vf/9vb2//X19v729vb/9fX2//X19f719fb/9fX2//T0 + 9f719fX/9fX1//T09P709PX/9PT1//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7y8vP/8vLz//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj8/AhoaGhM+Pz959PX2/u7u8P7t7u/+6urr/snJ + y/7Q0NL+z9DR/s/Q0f7Ky8z+2dna/s7Oz/7MzM3+t7i4/sjIyf7Kysv+2tvc/tLT1P7P0NH+4OHi/ujp + 6/7R0tP+2tvb/tvc3f7R0tT+2drb/tbX2f7j5Ob+3d7f/tfZ2v7Y2tv+3+Hi/uTl5v7o6er+3+Hh/t3e + 3/7c3d7+2drb/tna2/7a29z+3t/f/uHh4v7j4+T+6enq/urq6/7a2tr+5OTl/tLS0/7n5+j+6+vr/unp + 6f7d3d7+39/g/uTk5f7g4OH+5OTl/vT09f709PT+9PT0/vPz9P7z8/T+8/P0/vPz9P7z8/P+8vLz/vLy + 8/7y8vP+8vLz/vLy8/7x8fL+8fHy/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959fX2/+7u8P7t7u//4+Pk/6ipqv6xsrP/wcHC/6Kjo/60tbb/pKSl/7Cwsv6ys7P/tbW2/8XG + x/6rq6z/u7y9/8DBwv65urv/4eLj/+Xm5//HyMn+u7y9/8fIyf+6u73+tLW3/8XGx//b3N7+vL2+/87P + 0f+5urv+x8jJ/7q7vP/Mzc7+wsTF/8HCw//Ky8z+ycrM/8/Q0f/Fxcb+vr+//8/Pz//AwMD+1dXW/9bW + 1/65ubn/yMjI/87Oz/63t7f/wcHC/9HR0v6/v8D/xMTF/8vLy/7Fxcb/y8vM//Pz9P7z8/T/8/P0//Ly + 9P7z8/T/8/Pz//Ly8/7y8vP/8vLz//Hx8/7y8vP/8vLy//Hx8v7x8fL/8fHy//v7+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fb2/+7u7/7u7vD/6+vt/9XV1v7o6er/6urs/+Li + 4/7j5OX/1dXW/+Tl5f7q6uv/5+fo/+Xm5/7i4uP/6Onq/+rq6/7p6ur/6uvs/+rr7P/m5+j+4+Tl/+rr + 7P/q6+z+5ufn/+vs7f/s7e7+5ufo/+zt7v/n6On+7e7v/+Xm6P/q6+z+4eLj/+nq7P/t7vD+7u/w//Dx + 8v/x8vP+7/Dw//T09f/z8/T+9PT1/+7u7v7p6en/9PT0//Pz8/7u7u//6+vs//Pz9P7s7O3/8/P0//Pz + 8/7z8/P/7Ozt//Pz8/7z8/T/8/P0//Ly8/7z8/P/8vLz//Ly8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw + 8f7x8fL/8fHy//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959fX2/u7u + 7/7u7u/+6Ojq/tXV1v6ztLX+vL29/snKyv7LzM3+ycrL/uXl5v7r7O3+6erq/ujo6f7p6er+6urr/urr + 7P7X2Nj+ycrL/svLzP6+v8D+t7i5/sbHyP7R0tL+2Nna/tjZ2v7Q0dL+zc7P/tPU1f7a29v+1NXW/tXW + 2P7S09T+1dbX/t3e3/7Mzc7+4eLj/vLy8/7z9PT+9PT1/vT09P709PT+9PT0/vT09P709PT+9PT0/vPz + 9P7z8/T+8/P0/vPz9P7z8/T+8/P0/vPz8/7z8/P+8vLz/vLy8/7y8vP+8vLz/vLy8v7y8vL+8fHy/vHx + 8v7x8fL+8fHy/vHx8f7w8PH+8PDx/vDw8f7w8PH+8PDx/vv7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7u//5OTl/6enqP61tbb/tLW1/7O0tP7AwMH/uru8/+Tl + 5v7s7O7/6urr/+jp6v7p6uv/6+vs/+vs7P7W19f/ysvL/8XGx//Iycr+xcbH/7/Awf/Excb+z9DR/9DR + 0v/Mzc7+zM3O/8nKzP/S09T+wcLC/7/Awf/MzM7+x8jK/8nKy//Iycr+29vc//Lz9P/z8/T+9PT1//T0 + 9f/z8/T+9PT1//Pz9P709PT/9PT0//Pz9P709PT/8/P0//Pz8/7z8/T/8/P0//Ly8/7z8/T/8/Pz//Ly + 8/7y8vP/8vLz//Hx8v7y8vP/8vLz//Hx8v7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//v7 + +/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AhoaGhM/Pz959vb3/+7u7/7u7vD/7Ozu/+jo + 6v7p6ev/7e7v/+3t7/7t7e//7e3v/+3t7v7s7O7/6uvs/+np6/7p6uz/6+vt/+vs7f7r7O3/6+zt/+vs + 7v/r7O7+6+zu/+zt7v/s7e7+7e3v/+rr7P/t7u/+7e7v/+3u7//t7vD+6+vt/+zt7v/u7vD+7u/x/+7v + 8f/w8PL+8fHz//Lz9P/z8/T+8/P0//Pz9P/z8/T+8/P0//Pz9P7z8/T/8/P0//Ly8/7y8vT/8vL0//Ly + 8/7y8vT/8vLz//Ly8/7y8vP/8vLz//Hx8v7x8fP/8fHz//Hx8v7x8fL/8fHy//Dw8f7w8PL/8PDy//Dw + 8f7w8PH/8PDx/+/v8P7v7/H/7+/x//v7+/4AAABBOzs7DE1NTQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/Ahoa + GhM/Pz959vb3/u3t7/7t7e/+7e3v/u3t7/7t7e/+7e3v/u3t7/7t7e/+7O3v/uzs7v7s7O7+6+vs/urq + 7P7q6u3+6+vt/uvr7f7r7O3+6+zt/uzs7f7s7O7+7Ozu/uzt7v7s7e/+7O3v/u3t7/7t7e/+7e7v/u3u + 7/7t7u/+7u7w/u7u8P7u7vD+7u/w/u/w8f7x8fL+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy + 8/7y8vP+8vLz/vHx8/7x8fP+8fHz/vHx8/7x8fP+8fHy/vHx8v7x8fL+8fHy/vDw8v7w8PL+8PDy/vDw + 8v7w8PH+8PDx/u/v8f7v7/H+7+/x/u/v8f7v7/D+7+/w/u7u8P7u7vD+7u7w/vr6+/4AAABBOzs7DE1N + TQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPDw8AhkZGRM/Pz949vb3/+3t7/7u7u//7u7v/+3t7/7t7u//7e3v/+3t + 7v7t7e7/7e7v/+3t7/7s7O7/6+vt/+rr7P7r7Oz/7Ozt/+zs7f7s7O7/7Ozu/+zs7v/s7e7+7O3u/+3t + 7v/t7e7+7e7v/+3u7//t7e/+7e7v/+3u8P/t7vD+7u7w/+7u8P/u7vD+7u/w/+/w8v/x8fL+8vLz//Ly + 8//x8fP+8vLz//Ly8//x8fP+8vLz//Hx8/7y8vP/8vLz//Hx8v7y8vL/8fHy//Hx8v7x8fL/8fHy//Dw + 8v7x8fL/8fHy//Dw8f7w8PH/8PDx/+/v8f7w8PH/8PDx/+/v8f7w8PH/7+/w/+/v8P7v7/D/7+/w/+7u + 8P7u7vD/7u7v//r6+/4AAABAODg4DElJSQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU2AhYWFhE/Pz919vb3/+3t + 7v7u7u//7u7v/+7u7v7u7u//7u7v/+3t7v7t7e7/7e3u/+3t7v7t7e7/7O3u/+zs7f7s7O3/7Ozt/+zs + 7f7s7O3/7O3t/+zt7v/s7e7+7e3u/+3t7v/t7e7+7e7v/+3u7//t7u/+7e7v/+7u7//u7u/+7u/w/+/v + 8P/v7/D+8PDx//Dx8v/x8fL+8vLy//Ly8v/x8fL+8vLy//Ly8v/x8fL+8fHy//Hx8v7x8fL/8fHy//Hx + 8f7x8fL/8fHy//Dw8f7x8fL/8fHy//Dw8f7w8PH/8PDx//Dw8P7w8PH/8PDx/+/v8P7w8PD/7+/w/+/v + 8P7v7/D/7+/w/+7u7/7v7/D/7u7v/+7u7/7u7u//7u7v//r6+/4AAAA8MTExC0FBQQEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMjIzARQUFA0/Pz9n/f39/vr6+v76+vr++vr6/vr6+v76+vr++vr6/vr6+v76+vr++fr6/vn5 + +v75+fn++fn6/vn5+f75+fn++Pn5/vj4+f74+Pn++Pn5/vj5+f74+fn++Pn5/vj5+f74+fn++Pn5/vj5 + +f75+fn++fn5/vn5+v75+fr++fr6/vr6+v76+vr++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7+/77+/v++/v7/vv7 + +/77+/v++/v7/vv7+/77+/v++/v7/vr6+/76+vv++vr7/vr6+/76+vv++vr6/vr6+v76+vr++vr7/v7+ + /v4AAAAtLi4uCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PQUAAAAYAAAALwAAADkAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAA + ADsAAAA7AAAAOwAAADsAAAA6AAAAOAAAACsGBgYRUVFRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABNTU4EMjIyBzAwMAk4ODgJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7 + Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk7OzsJOzs7CTs7Owk5OTkJMTExCTw8PAdRUVECAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////+AAAAAAAP/// + ////4AAAAAAAD///////4AAAAAAAA///////wAAAAAAAAf//////wAAAAAAAAP//////wAAAAAAAAH// + ////wAAAAAAAAD//////wAAAAAAAAB//////wAAAAAAAAA//////wAAAAAAAAAf/////wAAAAAAAAAP/ + ////wAAAAAAAAAH/////wAAAAAAAAAD/////wAAAAAAAAAB/////wAAAAAAAAAA/////wAAAAAAAAAAf + ////wAAAAAAAAAAP////wAAAAAAAAAAH////wAAAAAAAAAAD////wAAAAAAAAAAB////wAAAAAAAAAAA + ////wAAAAAAAAAAAf///wAAAAAAAAAAAP///wAAAAAAAAAAAH///wAAAAAAAAAAAD///wAAAAAAAAAAA + B///wAAAAAAAAAAAB///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAAA///wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAAAf//wAAAAAAAAAAA + Af//wAAAAAAAAAAAA///4AAAAAAAAAAAA///8AAAAAAAAAAAB/////////////////////////////// + //////////////////////////////////8oAAAASAAAAJAAAAABACAAAAAAAGBUAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFAEXFxcBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZGQEZGRkBGRkZARkZ + GQEZGRkBGBgYARgYGAEYGBgBGBgYARcXFwEVFRUBERERAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA6OjoCFRUVDgUFBRoGBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYGBh0GBgYdBgYGHQYG + Bh0GBgYdBgYGHQYGBh0GBgYcBQUFFxYWFg0sLCwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIJNzc3X39/ + f6t/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r39/ + f69/f3+vf39/r39/f69/f3+vf39/r39/f69/f3+vf39/r35+fq9+fn6vfX19r3x8fK97e3uvenp6r3l5 + ea93d3eubW1toi8vL2cAAAAmHx8fCjQ0NAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEPb29vmPn5+f/19fb/9fX2//X1 + 9v/19fb/9fX2//b29v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//X19v/09PX/8/P0//Hx8v/v7/D/7e3u/+vr7P/o6On/5eXl/9zc + 3fyRkZHBERERQBcXFw86OjoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJycPb29vmvb29//09PX+9fX2//T09f719fb/9fX2/vb2 + 9v/29vf/9fX2/vb29//19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//X1 + 9v719fb/9PT1/vT09f/z8/T/8vLz/vHx8v/v7/D+7e3u/+vr7P7o6On/5eXm/t/f4P/V1db+srKy3Rwc + HFEYGBgQOzs8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvb29//19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9fX2//T0 + 9f/09PX/8vLz//Hx8v/w8PH/7u7v/+vr7P/p6er/5+fn/+Li4//b29z/z8/Q/8DAwegfHx9XGBgYEjo6 + OwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvb29//19fb/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb2//X19v/19fX/9PT0//Ly + 8//x8fH/7+/v/+3t7f/q6ur/5+fo/+Tk5f/f3+D/1dXW/9DQ0P/Hx8jpJSUlWwoKChM2NjcCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/19fb+9vb3//X19v729vf/9fX2/vb29//29vf/9fX2/vb29//19fb+9vb3//b29v729vf/9vb2/vb2 + 9//39/f/9vb3/vf39//29vf+9/f3//b29/739/j/9vb3/vb29//19fb/9PT1/vPz9P/x8fL+8PDw/+7u + 7v7r6+z/6Ojp/ubm5v/i4uL+29vb/87Ozv/i4uP+y8vN7jAwMGQJCQkVNzc4AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9fX2//X1 + 9v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/39/j/9vb3//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+fn + 5//k5OX/3t7f/9PT0//f3+D/4uLk/8/P0e83NzhqCgoKFzo6OgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/19fb+9fX2//X19v719fb/9fX2/vb2 + 9//29vf/9vb2/vf39//29vf+9/f3//b29/739/j/9vb3/vf3+P/39/j/9vb3/vf3+P/29vf+9vb3//b2 + 9/729vf/9vb3/vb29//19fb/9PT1/vPz9P/y8vP+8fHy/+/v8P7s7O3/6urr/ufn6P/l5eX+39/g/9bW + 1//b29v+7Ozt/+Hh4/7T09XzPz8/cwoKChk7OzsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vf/9PT1//Ly8//09PX/9fX1//b29v/39/f/9/f3//f3 + +P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/q6uv/3Nzd/9zc3f/a2tv/2NjZ/9jY2f/Y2Nn/2NjZ/9jY + 2P/X19j/1tbX/9bW1v/V1dX/09PU/9LS0v/Q0ND/zs7O/8vLzP/IyMn/xMTF/7y8vf/Dw8T/8/Pz/+vr + 7P/h4eP/1dXW9kFBQngKCgobPDw8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvf3+P/19fb+9fX2//X19f729vb/9vb2/vb29//29vf/9vb3/vf3+P/29vf+9/f4//b2 + 9/739/j/9vb3/vf3+P/m5ub/1NTV/t/f4P/V1dX+z8/P/9DQ0f7R0dH/0dHR/tHR0f/Q0NH/z8/Q/s/P + z//Nzc7+zc3O/8zMzf7Kysv/yMjJ/sXFxv/CwsP+vr6+/7e3uP+6urv+9PT0//Hx8v7r6+z/4eHj/tTU + 1vdJSUmACgoKHDo6OgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3 + +P/29vf/8/Pz/+3t7v/x8fL/8PDx//Hx8v/09PT/9fX2//b29//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/m5uf/1NTU/+Dg4f/V1db/0tLT/9jY2f/Z2dr/2dna/9nZ2v/Y2Nn/2NjZ/9fX2P/W1tf/1dXW/9TU + 1f/T09P/0NDR/87Ozv/MzM3/yMjJ/8DAwf/AwMH/9fX1//b29v/x8fL/6+vs/+Hh4//W1tj6SkpKgwMD + Ax4rKysFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvf3+P/29vb+9fX2//T0 + 9f729vf/9fX2/vX19f/29vb/9vb3/vb29//29vf+9/f4//b29/739/j/9/f3/vf3+P/l5eX/2NjY/t7e + 3v/Z2dr+1NTV/9ra2/7c3N3/3Nzd/tzc3f/c3Nz/29vc/tvb2//a2tr+2dnZ/9jY2P7W1tf/1NTV/tHR + 0v/Pz9D+zMzN/8TExf/Dw8P+9vb2//j4+P729vb/8fHy/uvr7P/h4eP+0tLU+ExMTYYCAgIeKioqBQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+zs7P/v7+//7u7u//Ly + 8v/w8PD/8vLy//b29v/39/f/9/f3//f3+P/39/f/9/f3//j4+P/l5eX/4eHh/9bW1v/c3Nz/19fX/9jY + 2f/d3d3/3d3d/93d3f/c3N3/3Nzc/9vb3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9PT1P/R0dH/zs7O/8fH + x//ExMT/+Pj4//n5+f/4+Pj/9vb2//Hx8v/r6+z/4eHj/9PT1fpNTU6IAgICIC0tLQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9fX1//Ly8v/19fX/9fX1//X19f/29vb/9PT0//f3 + 9//4+Pj/+Pj4//j4+P/39/f/9/f3//j4+P/l5eX/4+Pj/9XV1f/e3t7/3Nzc/9fX1//c3Nz/3t7e/97e + 3v/d3d3/3d3d/9zc3P/c3Nz/29vb/9ra2v/Z2dn/19fX/9XV1f/T09P/0NDQ/8rKyv/IyMj/+fn5//r6 + +v/5+fn/+Pj4//b29v/x8fL/6+vs/+Hh4//Pz9L5SUlKhQoKChw3NzgEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAArKysPb29vmvj4+P/29vb+9PT0/+rq6v7s7Oz/7Ozs/vDw8P/u7u7/8PDw/vb29v/39/f++Pj4//f3 + 9/729vb/9vb2/vb29v/k5OT/5OTk/tvb2//a2tr+4ODg/9jY2P7b29v/3t7e/t/f3//e3t7/3d3d/t7e + 3v/c3Nz+3Nzc/9vb2/7a2tr/2dnZ/tfX1//V1dX+0tLS/87Ozv/Ozs7++vr6//r6+v76+vr/+fn5/vj4 + +P/29vb+8fHy/+vr7P/h4eP+zs7R+UBAQH4JCQkbNjY2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4 + +P/39/f/9PT0/+/v7//09PT/9fX1//X19f/29vb/8vLy//f39//4+Pj/+Pj4//j4+P/29vb/9vb2//b2 + 9v/k5OT/5OTk/+Li4v/U1NT/4+Pj/9zc3P/a2tr/3t7e/9/f3//f39//3t7e/97e3v/e3t7/3d3d/9zc + 3P/b29v/2tra/9nZ2f/X19f/1dXV/9DQ0P/Q0ND/6Ojo/+Tk5P/f39//3Nzc/9PT0//V1dX/3Nzc/97e + 3v/o6Oj/4+Pk/8nJy/Y2NjdzCQkJFzU1NgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/29vb+9PT0/+np + 6f7t7e3/6+vr/vHx8f/t7e3/9PT0/vf39//39/f++Pj4//f39/709PT/9PT0/vX19f/g4OD/4+Pj/uLi + 4v/U1NT+4+Pj/+Dg4P7Z2dn/3t7e/uDg4P/g4OD/39/f/t/f3//e3t7+3t7e/93d3f7c3Nz/29vb/tra + 2v/Y2Nj+19fX/9TU1P/Q0ND+zMzM/8fHx/7CwsL/vr6+/q6urv+2trb+u7u7/7Kysv/AwMD+xMTE/87O + z/7KyszzNDQ0bAkJCRU1NTYCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysPb29vmvj4+P/39/f/9PT0/+3t7f/y8vL/8vLy//Ly + 8v/z8/P/8PDw//b29v/39/f/+Pj4//f39//09PT/9fX1//b29v/h4eH/5OTk/+Pj4//c3Nz/3t7e/+Tk + 5P/a2tr/3d3d/+Dg4P/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/d3d3/3Nzc/9vb2//a2tr/2dnZ/9fX + 1//V1dX/0tLS/9DQ0P/Ozs7/xMTE/76+vv/Hx8f/ysrK/8DAwP/T09P/0tLS/8vLy//FxcX/xMTF8TEx + MmMWFhYSPT09AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAArKysPb29vmvf39//29vb+9PT0/+rq6v7s7Oz/6urq/vDw8P/r6+v/7+/v/vT0 + 9P/29vb+9vb2//b29v7y8vL/8vLy/vLy8v/e3t7/4uLi/uDg4P/e3t7+2NjY/+Pj4/7c3Nz/2dnZ/t/f + 3//g4OD/4ODg/t/f3//f39/+39/f/97e3v7e3t7/3t7e/t3d3f/b29v+29vb/9nZ2f/Y2Nj+1tbW/9TU + 1P7S0tL/w8PD/snJyf/R0dH+0tLS/8jIyP/d3d3+3t7e/9vb2/7V1dX/y8vL/r29veseHh5NLCwsCQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbm5umvT09P/09PT/7+/v/+Pj4//r6+v/6+vr/+vr6//r6+v/5+fn//Hx8f/z8/P/8/Pz//Pz + 8//t7e3/7Ozs/+/v7//a2tr/3d3d/93d3f/b29v/19fX/+Hh4f/d3d3/1dXV/9nZ2f/b29v/29vb/9vb + 2//a2tr/29vb/9vb2//b29v/29vb/9vb2//a2tr/2dnZ/9nZ2f/X19f/1tbW/9TU1P/R0dH/xMTE/8/P + z//W1tb/1tbW/83Nzf/h4eH/5OTk/+Pj4//g4OD/29vb/9TU1P+QkJC6CQkJGTo6OgEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvHx + 8f/v7+/+7Ozs/+Tk5P7l5eX/4+Pj/ufn5//l5eX/5+fn/uvr6//t7e3+7e3t/+zs7f7p6en/5+fn/ufn + 6P/V1dX/2dnZ/tfX1//W1tb+2dnZ/87Ozv7S0tL/yMjI/sXFxf/Gxsb/x8fH/sjIyP/IyMj+x8fI/8jI + yP7Jycn/ysrK/svLy//Kysr+ysrK/8nJyf/IyMj+x8fH/8bGxv7AwMD/yMjI/tXV1f/a2tr+2dnZ/8/P + z//j4+P+5+fn/+fn5/7m5ub/4+Pj/uDg4P/W1tbwAAAAKUBAQAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmu7v7//t7e3/6Ojo/9jY + 2P/g4eH/3+Dg/+Dh4f/e39//3N3d/+jo6P/p6er/6enp/+jp6f/i4uL/4eHh/+Hh4f/R0dH/1NXV/9PU + 1P/R0dL/1tfX/8fHyP/IyMn/w8TE/8TFxf/Hx8f/yMjJ/8nJyf/Jysr/ysrK/8vLy//Nzc3/z8/P/8/P + z//Pz8//z8/P/87Ozv/Ozs7/zMzM/8vLy//Gxsb/19fX/9vb2//d3d3/3Nzc/9LS0v/m5ub/6urq/+rq + 6v/p6en/6Ojo/+fn5//o6Oj9AAAAM0xMTQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/s7e//6uvs/+Pk5f/k5eb/4+Pk/+bn + 6P/k5eb/6Onq/+jp6//q6uz/6err/+nq6//l5uf/5OXm/+Hi4//V1tb/2NjZ/9bX2P/U1db/19jZ/8nK + y//Mzc7/x8jK/8vMzf/Nzs//zc7P/83O0P/Nzs//zs/Q/8/P0P/S0tL/1NTV/9bW1v/W1tb/1dXW/9TU + 1f/T09T/09PT/9LS0v/Ozs7/29vb/93d3f/f39//3t7f/9fX2P/j4+P/7Ozs/+zs7f/r6+z/6urr/+rq + 6//u7u7/AAAANlNTUwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8f/t7u/+5+jq/9fZ2v7f4OL/3t/g/uHi4//e3+D/2tzd/unq + 7P/r7O3+6+zt/+rs7f7j5OX/4ePk/t/g4v/T1db/1dbY/tTV1v/T1Nb+19jZ/8rLzP7LzM7/xsjK/svM + zv/Mzs//zc7Q/s3O0P/Nz9D+zs/R/9HR0v7U1NT/1tbW/tfX2P/Y2Nj+19fX/9bW1v/V1db+1NTV/9PT + 1P7R0dL/2dna/t7e3//g4OH+4ODh/93d3v/i4uL+7u7u/+/v7/7u7u//7e3u/u3t7v/w8PH+AAAANlZW + VgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7w8f/t7vD/7O3u/+Xm5//n6Or/5ufp/+jp6//n6Or/5+jp/+rr7P/r7e7/6+zt/+rs + 7f/o6uv/5+jq/+Pl5v/Y2dv/2dvc/9TW2P/X2Nr/2drc/8zNz//NztD/yMnL/83P0P/O0NL/ztDR/87Q + 0f/P0NL/z9DR/9LS0//W1tf/2NjZ/9nZ2f/Z2dn/2NjZ/9jY2P/X19f/1tbW/9XV1f/T09P/2trb/+Dg + 4P/i4uP/4eHi/9/f3//j4+P/8PDw//Hx8f/w8PH/7+/w/+/v8P/z8/P/AAAANldXVwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8P/t7+/+5ufp/9TV1v7b3d7/2drc/t3f4P/Z2tz/3N7f/unq6//q7O3+6uzt/+nr7f7d3uD/3N3f/tvd + 3v/Q0tP/0tPV/tLT1f/R09T+1dfY/8fJy/7Ky83/xsfJ/svMzv/MztD/zM7P/szNz//Nz9D+zs/R/9LS + 0/7W1tf/2dna/tra2v/Z2dr+2dna/9nZ2f/Y2Nn+19fY/9bW1/7U1NT/3Nzc/uHh4v/k5OT+4+Pk/+Hh + 4f/k5OX+8fHx//Pz8/7y8vP/8fHy/vHx8v/19fX+AAAANlhYWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7+//7O3u/+fp + 6v/q6+3/6evs/+rr7f/p6+z/6Onq/+rs7f/q7O3/6uzu/+rr7f/o6ev/5ujq/+Hj5f/a293/2tvd/9bX + 2f/Y2tv/2Nnb/8vMzv/Jy8z/w8XH/8nLzf/Lzc7/y83O/8vNz//Mzs//zc7Q/9HS0//W1tf/2NjZ/9nZ + 2f/Y2Nn/2NjY/9fX1//W1tf/1tbX/9bW1v/U1NT/29vc/+Hh4f/j4+T/5OTl/+Li4//l5eb/8vLz//T0 + 9f/09PT/8/P0//Ly8//39/f/AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/t7u/+5ufo/8/R0v7W2Nn/09XW/trb + 3f/V1tf/2drc/ufo6v/q6+3+6evt/+nq7P7e4OH/293e/tXX2f/T1db/0tTV/s7Q0v/GyMr+w8TG/7y+ + v/68vb//u7y9/sDBw//BwsT/wMHD/r/Awv/Bw8X+w8TG/8jJyv7Nzc7/0NDR/tDQ0f/Q0ND+0dHR/8/P + 0P/Pz8/+zs7P/87Oz/7MzMz/09PT/tfX2P/b29z+3d3e/97e3//h4eL+8/P0//X19v719fX/9fX1/vT0 + 9f/4+Pj+AAAANllZWQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu7v8P/t7/D/7O3u/+Xn6P/q6+3/6uvs/+rs7P/q6+z/5+nq/+rr + 7f/q6+3/6uvt/+nr7f/m5+n/5efo/9/h4v/Z293/09XX/8PExv+6vL3/ury9/7q8vf+7vL7/ubq7/77A + wf+/wML/vsDB/72/wP+9v8D/vb/A/8HCw//Gx8f/yMjI/8jIyP/Hx8j/x8fH/8XFxv/ExMT/wsLC/8HB + wf+/v8D/wcHB/8XFxf/IyMj/ycnK/8nJyv/T09P/8fHy//b29//29vf/9vb2//X19v/5+fn/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2tsmu7v8f/t7vD+5ufo/9HS1P7V1tj/0tTV/tnb3P/T1db/3+Hj/ufp6v/p6+3+6evt/+nr + 7P7e4OL/3N7f/tDS1P/Iysz/ycvN/sLExf+4ubv+vL7A/7u9v/64urz/tri5/ry9v/+9v8D/vsDB/r7A + wf/Bw8T+wcPE/8bHyP7Nzc3/0NDQ/s3Nzv/Ly8v+y8vL/8fHx//Gxsb+wsLD/8LCwv7BwcH/wcHC/sfH + yP/IyMn+wMDB/7+/v//W1tf+9PT1//b29/739/f/9vb3/vb29v/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7v + 8f/t7/D/6+zt/+Pk5v/s7e7/7O3u/+vs7f/q7O7/5+jq/+rr7f/q6+3/6uzt/+nr7P/l5uj/5Obn/+Pl + 5//X2dv/4OLj/97g4v/U1dj/0NLU/9PU1v/S1Nb/0NLT/9TW1//U19j/09XX/9PV1v/S1NX/09XW/9na + 2//i4uL/4+Pj/9ra2//X19f/19fY/9XV1f/U1NT/0dHS/9LS0v/S0tP/1NTV/9zc3P/h4eL/5eXl/93d + 3v/z8/P/9/f4//f3+P/39/j/9/f3//f39//7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7w8f/t7/D/5ufp/8/Q + 0v/S09X/z9HS/9fZ2v/R0tP/2Nrb/+bo6f/q7O3/6uzt/+nr7P/c3t//2Nrc/9nb3P/R09T/0tTW/9nb + 3f/U1tj/x8nK/8zOz//Nz9H/0NLU/9DS1P/Nz9H/y83P/8vNz//Lzc//zc/Q/9PU1f/S0tP/xsbG/8XF + xv/Ly8v/z8/P/9PT1P/V1dX/2NjY/9nZ2f/a2tv/3d3e/+Xl5f/o6Oj/4uLi/+vr6//4+Pj/+Pj5//j4 + +f/4+Pn/+Pj4//j4+P/7+/v/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2trmu7v8P/t7u/+6err/+Hj4/7s7e7/6+zt/urr + 7P/q7O3/4ePk/urs7f/q6+z+6uvt/+nq7P7o6uv/5+nq/ufp6v/n6er/293e/t3f4P/c3+D+0dPU/8zO + z/7S1NX/09XW/tHT1P/P0dL/z9HS/s/R0v/Nz9H+zc/Q/9LT1P7Q0dH/xsbG/snJyf/W1tb+1tbW/9bW + 1v/W1tb+1dXV/9PT0/7V1dX/3Nzc/uXl5f/l5eX+4+Pj//f39//4+Pj++Pj4//f39/74+Pj/9/f3/vj4 + +P/7+/v+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2trmu7w8P/t7u//4+Tl/9XX1//R09P/1tfY/9bY2f/Y2tv/2tvc/9fZ + 2v/a3N3/2dvc/9fZ2v/m5+n/6Orr/+bo6v/d3+H/2dvc/87Q0v/R1NX/zc/R/8bIyv/Cxcb/w8XH/8TG + yP/KzM7/zc/R/8zO0P/O0NH/zc/R/9HS0//Pz8//xMTE/8jIyP/U1NT/1dXV/9PT0//X19f/1tbW/9ra + 2v/V1dX/1tbW/+Li4v/f39//9PT0//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2trmu/w8P/t7u/+5ufo/93e3/7m6Oj/5efo/uXm5//j5eb/5OXm/ubn6f/l5uj+5Obn/+Lj + 5f7n6Or/6Orr/ujp6//k5uf/5Obo/t7g4v/V19n+0tTW/83P0f67vb//ubu8/sDDxP/Gycr/yMrM/svN + z//Lzc/+ztDR/9DR0v7Q0ND/w8PD/svLy//V1dX+1dXV/9TU1P/U1NT+09PT/9DQ0P7T09P/zc3N/tfX + 1//r6+v++Pj4//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w + 8P/t7+//5Obm/9vc3f/S1NT/z9HR/9na2//X2dr/2Nna/9/g4v/q7O3/6evs/+nr7P/g4uP/293e/93f + 4P/c3uD/3d/g/+Di4//U1tj/zM7Q/8nLzf/BxMX/tbe5/7O1t/+0trf/tLe4/7u9vv+/wcL/w8XG/8jJ + yv/Ly8v/wMDA/8nJyf/Q0ND/z8/P/87Ozv/MzMz/y8vL/8rKyv/Hx8f/zc3N/97e3v/29vb/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu7w8P/t7u/+5OXm/9XX + 2P7j5eX/4OLi/uXm5//g4uP/4+Xm/ubn6P/p6+z+6evs/+nr7P7g4uT/4uPl/uPl5v/h4+T/4eTl/uPl + 5//h4+T+z9LT/8vNz/7Kzc7/yszO/srMzv/Iysv/xsnL/sXIyf/Dxcf+w8XG/8fIyf7Pz8//zs7O/tjY + 2P/b29v+29vb/9ra2v/Z2dn+2NjY/9bW1v7W1tb/2dnZ/vb29v/5+fn++fn5//n5+f/4+Pj++fn5//j4 + +P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8P/u7/D/5ufo/93e3//Y2dr/19jZ/9nb + 3P/Z29z/293e/+nr7P/q7O3/6evs/+nr7P/k5uj/6Ors/+jq6//n6ev/5ujq/+bo6f/m6On/5efp/+Pm + 5//h4+X/3uDi/9ve3//Z3N3/19rb/9ja3P/Y2tz/2Nrb/9bX2P/c3N3/5ubm//Ly8v/09PT/9PT0//X1 + 9f/29vb/9/f3//j4+P/5+fn/+fn5//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKioPa2tsmu/w8f/u7+/+4uTk/9HS0/7a29z/2Nna/t7g4f/e4OH/3uDh/unr + 7P/q7O3+6evs/+nr7P7g4uP/6Orr/ufq6//n6er/5ujq/ubo6v/l6On+5efp/+Tm6P7k5uj/4+bn/uPm + 5//j5uf/4uXn/t/h4//b3d7+2Nrc/97g4f7y8/P/+Pj4/vr6+v/6+vr++/v7//v7+//6+vr++vr6//n5 + +f76+vr/+fn5/vr6+v/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAApKioPa2xsmu/w8f/u7/D/7e7v/97g4P/b3N3/3N3e/93f4P/f4eH/4+Xm/+vt7v/q7O3/6evt/+fp + 6//h4+X/4uTm/+Pl5v/k5uj/5+nq/+bo6v/l6On/5efp/+Tn6P/k5uj/4+bo/+Pm5//j5ef/4+Xn/+Pm + 5//j5uf/4uXm/+Xn6P/19fb/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKioPa2xsmvDx + 8f/u7/D+5OXm/9TW1v7Y2tr/1tfY/trb3P/b3d3/4ePk/uvt7f/q7Oz+6uzt/+Xm6P7d3+D/2tzd/t/h + 4//i5Ob/5ujq/ubo6v/l5+n+5efp/+Tm6P7j5uf/4+bn/uPl5//i5ef/4uXm/uLl5//i5eb+4+bn/+jq + 6/709fX/+/v7/vv7+//6+vr++/v7//v7+//6+vr++vr6//n5+f76+vr/+fn5/vr6+v/5+fn++fn5//n5 + +f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4+P/7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8f/v8PD/7O3t/97f + 4P/j5eX/6+zt/+zu7//s7u//7O7u/+vt7v/p6+z/4+Xm/97f4P/h4+T/4+Xm/+Lk5v/i5OX/4uTl/+Lk + 5v/h4+X/4OLk/+Dj5P/h4+X/4OPl/93g4f/j5ef/4+Xn/+Ll5v/i5eb/4+Xn/+jq6//09fX/+/v7//v7 + +//7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2xsmvDx8v/v8PH/4eLj/9XW1//P0dH/6+zt/+3u + 7//s7u//7O7v/+zt7v/o6uv/1dfY/9LT1f/e4OH/3N7f/9rc3f/b3d//297f/97g4f/c3+D/2t3e/93g + 4f/g4uT/3eDh/93f4f/i5ef/4uXn/+Ll5//i5eb/4+Xn/+fp6//z9PT/+vv7//z8/P/7+/v/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4 + +P/7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx8v/v8PH+7O3u/+Pl5f7k5ef/5ufo/ufo6f/l5uf/5Obn/uHj + 5P/p6+z+6uzt/+rs7f7p6+3/5Obn/uPm5//g4uT/3uHi/uLk5v/j5ef+4+bn/+Hk5v7h5OX/4uTm/uHk + 5v/g4+X/4OPl/uDj5f/g4+X+4uTm/+fp6v7y8/T/+vr6/vv7+//6+vr++/v7//r6+//6+vr++vr6//n5 + +f76+vr/+fn5/vn5+v/5+fn++fn5//j4+f/4+Pj++Pj4//f39/739/j/9/f3/vf3+P/7+/v+AAAANltb + WwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbGxsmvDx8v/v8PH/5OXm/8TFxv/V1tf/ysvM/9DS0//R0tP/zc/Q/9bY2f/o6er/6+zt/+rs + 7f/p6+z/2tzd/9TX2P/a3N3/2tze/9ja3P/c3uD/3uHi/9ze4P/b3uD/3+Hj/93g4v/b3t//297g/9ve + 3//a3d//4OPl/+bo6v/x8vP/+fn6//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//7+/v/AAAANltbWwUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxsmvDx + 8v/v8PD+7u/w/+Lj5P7q6+z/5+jp/uHi4//p6+v/7O7v/uzt7v/r7e7+6+3u/+jq6/7j5eb/4uTl/uXn + 6P/k5uj/5ujp/uXn6f/j5ef+4uTm/+Pm5/7j5ef/4OPl/t/i5P/g4+X/4uXm/uLl5//i5Ob+4+Xn/+bo + 6f7x8vL/+fn5/vv7+//6+vr++vr6//r6+v/5+fn++vr6//n5+f75+fn/+Pj4/vn5+f/4+Pj++Pj4//j4 + +P/39/f++Pj4//f39/739/f/9vb2/vf39//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbGxtmvHy8//v8PH/4eLj/87P + 0P/Iycr/zs/Q/8nLy//b3d7/7O7v/+zt7//r7e7/6+3u/9/h4f/T1db/09XW/9HT1P/S1NX/19nb/9fZ + 2v/b3d//2dzd/9nb3f/X2dv/3N7g/9fa3P/g4uT/4uXn/+Ll5//j5ef/4+bn/+bo6v/w8fL/+fn5//r6 + +//6+vv/+vr6//r6+v/5+fr/+fn6//n5+f/5+fn/+Pj5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f3 + 9//39/f/9vb3//b29//7+/v/AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmvDy8//v8PH+7u/x/+Xm5/7u7/H/7e/w/u7v + 8P/t7+//7O7v/uzt7//s7e7+6+3u/+jq6/7m5+n/6uvs/ujq6//o6uz/6Orr/ubo6f/j5eb+5Ofo/+Pl + 5/7j5ef/4eTl/uHk5v/i5eb/4+bn/uPm6P/j5ej+4+bo/+bo6f7v8fH/+Pj5/vr6+v/5+fr++vr6//r6 + +v/5+fn++fn5//j4+f75+fn/+Pj4/vj4+f/39/j++Pj4//f3+P/29vf+9/f3//b29/729vf/9fX2/vb2 + 9//7+/v+AAAANltbWwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbG1tmvHy8//v8fH/293d/9HS0//Excb/vL2+/8vNzf/AwsL/09TV/+zu + 7//s7e7/7O3u/9/h4v/X2Nn/0tPU/9HT1P/V19j/1NfY/9bY2f/d3+H/2tze/+Xn6P/l6On/5efp/+Xn + 6f/k5+j/5Obo/+Tm6P/k5uj/5Obo/+bo6v/v8PH/9/f4//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/9/f3//b29v/29vb/9vb2//b29v/7+/v/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPbG1tmvHy8//v8PH+6+zs/+vs7f7t7+//7u/w/u3u7//t7u//7e7v/u3u7//s7u7+7O3u/+nq + 6/7o6uv/4uPk/uDh4v/m5+j/6Orr/uPl5v/k5uf+5ujp/+fp6v7m6er/5ujp/uXo6f/l6On/5efp/uXn + 6f/l5+j+5efp/+bo6f7u7/D/9/f3/vn5+f/5+fn++fn5//n5+f/4+Pj++fn5//j4+P74+Pj/9/f3/vj4 + +P/39/f+9/f3//f39//29vb+9vb2//b29v729vb/9fX1/vX19f/6+vr+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmvHy + 8v/v8PH/6ers/8XHyP/Fxsf/xsfI/8DCw//Nzs//7e7v/+zu7//s7e//7O3u/+vt7v/r7O3/6uzt/+rs + 7f/p6+z/6evs/+jq7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+fo + 6v/t7/D/9vb3//n5+f/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4+P/39/j/9/f4//f39//39/f/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX1//X19f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbG1tmu/w8f/u7/D/5+jp/9/g + 4v/o6ev/5+jp/+Dh4//a293/6uzs/+rr6//p6uz/6ers/+nq6//p6uv/6Onr/+fp6v/n6er/5+jp/+bo + 6f/m6On/5efp/+Xn6f/l5+n/5efp/+Xn6f/l5+j/5efo/+Xn6P/l5+j/5efp/+bo6v/u7/D/9vb2//n5 + +f/4+Pn/+Pj5//j4+P/4+Pj/+Pj4//f3+P/39/j/9/f3//f39//29vf/9vb3//b29v/29vb/9fX2//X1 + 9v/19fb/9fX1//T09f/6+vr/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPa2trmuzs7f/p6uv+19jY/7a2t/7CwsP/uLm5/rq7 + vP+/wMD/u7y9/ra3t/+7vL3+wcLD/7u9vf7W19j/1NXW/r/Awv/Exsb/uru8/sPFxf/Iycr+3uDg/97f + 4P7e4OH/3uDh/t/g4v/g4eP/4eLk/uLk5f/j5eb+5efo/+nq6/7w8PH/9vb3/vj4+P/39/j++Pj4//j4 + +P/39/f+9/f3//b29/739/f/9vb2/vb29v/19fb+9vb2//b29v/19fX+9fX1//T09f709PX/9PT0/vT0 + 9P/6+vr+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPamtrmunq6//m5+j/2trb/8nJyv/c3d7/0NHR/8TFxf/Nzc7/2Nna/9fX + 2P/S09P/1NTV/9XW1v/Y2dr/0NHS/8vMzP/V1db/0tPU/9TV1v/V1tf/2tvb/9vc3P/c3d7/3t/g/+Dh + 4v/i4+T/5OXm/+bn6P/o6er/6uzs/+7v7//z9PT/9vb3//f3+P/39/f/9/f3//f39//29vf/9vb3//b2 + 9//29vb/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/5+fr/AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPa2xsmuvs7f/o6er+5OXm/7/AwP7BwsP/29zd/r6/v/+9vb7/ubm6/ra2t//Excb+yMnJ/7y9 + vv7DxMX/urq7/sHCwv/Fxsf/1tbX/tna2//R0dP+zM3O/8zNzf7X2Nn/5+jp/unq6//q7Oz/7O3u/u3u + 7//t7u/+7/Dx//Lz9P719fb/9vb3/vf39//29vf+9vb3//b29//19fb+9vb2//X19v719fb/9fX1/vX1 + 9v/09PX+9PT1//T09f/z8/T+9PT0//Pz9P7z8/T/8vLz/vPz8//5+fn+AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbW1tmu/v + 8P/s7e7/3+Dh/9DQ0f/Jysv/0NDR/9LT1P/S0tP/09TV/8/P0P/Y2Nn/3N3e/9TV1v/V1tb/09TV/9na + 2//a29z/3+Di/+Xm5//V1tj/1tjY/9XW1//e39//7O7v/+3u8P/t7/D/7u/w/+7v8P/v8PH/8vLz//X1 + 9f/29vf/9vb3//b29//19fb/9vb3//b29v/29vb/9fX2//X19v/19fb/9fX1//X19f/09PX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//5+fn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8v/t7u/+39/g/8XF + x/7Ky8z/xMXG/sjIyf/Iycr/wsLD/ri4uf/CwsP+zc3P/8fIyP7f4OH/3+Dh/tTV1v/V1tj/x8jJ/s/Q + 0f/b3N7+09TV/9HS0/7T1Nb/2Nna/tzd3v/R0tP/09TV/s/Q0f/Z2tv+09PU/9zc3f7i4uP/4ODh/tbW + 1//W1tf+1tbW/+Pj4//V1dX+2dna/9XV1v7Z2dr/9PT1/vT09f/z8/T+8/P0//Pz9P/z8/P+8vL0//Ly + 8/7y8vP/8vLz/vHx8//5+fn+AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u//2trb/7u8vP/a29z/x8jI/7i4 + uf/Gx8f/09TU/8/Q0f/Ozs//0tPU/9TV1v/j5OX/4uPk/9XW1//Y2dr/0tPU/9jZ2v/j5OX/1tfY/9LT + 1f/e3+D/2Nna/9XW1//U1db/3N3e/+Hi5P/f3+D/2dna/9/f3//j4+T/3Nzc/9XV1f/g4OD/0NDR/+rq + 6//V1dX/4ODh/+Pj4//b29z/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/4+Pn/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAqKioPbm5umvDw8f/u7u/+4+Tl/9DQ0f7IyMn/19fY/s3Oz//j4+T/6+zs/ujp + 6f/o6Or+6urs/+Xl5v7S09T/ysrL/snKy//LzM3/2NnZ/uHi4//W19j+1NXV/93e3/7d3t//3t/g/tfY + 2v/f4OH/1tbY/u7v7//z8/T+9PT1//T09f709PX/9PT0/vT09f/09PT+9PT1//T09P/z8/T+8/P0//Pz + 8/7z8/T/8vLz/vPz8//y8vP+8vLz//Ly8//x8fL+8fHy//Hx8v7x8fL/8PDx/vDw8f/4+Pj+AAAANlpa + WgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqKioPb29vmvDw8f/u7u//19fY/7q6u//Fxcb/xMXG/8bHyP/h4eL/6+zu/+nq6//p6uv/6+vs/+Xm + 5//S09T/z9DR/9DQ0f/MzM3/zc7P/93e3//R0tP/09TV/9TV1//Q0dL/0NHT/8/Q0f/R0tP/0dLT/+7u + 7//z8/T/8/P1//Pz9f/z8/T/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly8//y8vP/8vLz//Ly + 8//x8fP/8fHz//Hx8v/x8fL/8PDy//Dw8v/w8PH/8PDx//Dw8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioPb29vmvDw + 8f/u7vD/7e3w/+3t7//t7e//7e3v/+3t7//s7e//6+zu/+rq7P/q6uz/6+vt/+vs7f/r7O3/6+zu/+zs + 7v/s7e//7O3v/+zt7//t7e//7e7v/+3u8P/u7vD/7u7w/+7v8P/v7/H/8PHy//Ly9P/z8/T/8/P0//Pz + 9P/z8/T/8vL0//Ly9P/y8vT/8vL0//Ly8//y8vP/8vLz//Hx8//x8fP/8fHz//Hx8//x8fL/8PDy//Dw + 8v/w8PL/8PDy/+/v8f/v7/H/7+/x/+/v8f/4+Pj/AAAANlpaWgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKSkPb29vmvDw8f/t7e/+7u7v/+3t + 7/7t7e//7e3u/u3t7//t7e//7Ozu/uvr7f/r6+z+6+zt/+vs7f7r7O7/7Ozu/uzt7v/s7e7/7e3v/u3u + 7//t7e/+7e7v/+3u8P7u7vD/7u7w/u7v8P/v8PH/8fHz/vLy8//y8vP+8vLz//Ly8/7y8vP/8fHz/vLy + 8//x8fP+8vLy//Hx8v/x8fL+8fHy//Dw8v7x8fL/8PDy/vDw8f/w8PH+8PDx//Dw8f/v7/H+7+/w/+/v + 8P7v7/D/7u7w/u7u8P/39/j+AAAANlZWVwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyMNb29vlvHx8v/v7/D/7+/w/+/v7//v7/D/7u7v/+7u + 7//u7u//7u7v/+3t7v/t7e7/7e3u/+3t7v/t7u7/7e7v/+3u7//t7u//7e7v/+7v7//u7+//7u/w/+7v + 8P/v8PH/8PDx//Dx8v/x8vL/8vLz//Ly8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8v/y8vL/8vLy//Hx + 8v/x8fL/8fHy//Hx8v/x8fL/8fHx//Hx8f/w8PH/8PDx//Dw8f/w8PD/8PDx//Dw8P/v7/D/7+/w/+/v + 8P/4+Pj/AAAAMEpKSgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAtLS0HNzc3Vn9/f6B/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jfn5+o35+ + fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn6jfn5+o35+fqN+fn+jfn5/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/ + f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6N/f3+jf39/o39/f6J/f3+bBwcHGUpK + SgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAANjY3ByMjIw4pKSkPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDyws + LA8sLCwPLCwsDywsLA8sLCwPLCwsDywsLA8sLCwPLCwsDycnJw8rKysMRkZGAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAA//////// + ////AAAA/8AAAAAf////AAAA/wAAAAAH////AAAA/wAAAAAB////AAAA/wAAAAAA////AAAA/wAAAAAA + f///AAAA/wAAAAAAP///AAAA/wAAAAAAH///AAAA/wAAAAAAD///AAAA/wAAAAAAB///AAAA/wAAAAAA + A///AAAA/wAAAAAAAf//AAAA/wAAAAAAAP//AAAA/wAAAAAAAH//AAAA/wAAAAAAAD//AAAA/wAAAAAA + AB//AAAA/wAAAAAAAA//AAAA/wAAAAAAAAf/AAAA/wAAAAAAAAP/AAAA/wAAAAAAAAH/AAAA/wAAAAAA + AAD/AAAA/wAAAAAAAAD/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAAAAB/AAAA/wAAAAAA + AAB/AAAA/wAAAAAAAAB/AAAA/4AAAAAAAAD/AAAA////////////AAAA////////////AAAA//////// + ////AAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0CFxcXBBsb + GwUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwc + HAUcHBwFHBwcBRwcHAUcHBwFHBwcBRwcHAUcHBwFHBwcBRsbGwUbGxsFGhoaBRUVFQQcHBwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAzMzMEBAQEIgAAAD0AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEAAAAA7AAAAJhgYGA40NDQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAIyMjDH9/f5/7+/z/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr7//r6 + +//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr6//n5+v/5+fn/+Pj4//f3 + 9//19fX/8/Pz//Dw8f/t7e3/5ubm/La2tts/Pz92BAQEHDMzNAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKQ5/f3+l9fX2//X19v/19fb/9fX2//X1 + 9v/19fb/9vb2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//X1 + 9v/19fb/9PT1//Pz9P/y8vP/8PDx/+7u7//s7O3/6enq/+bm5//g4OH/1tbW/nV1daYEBAQkNjY3BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfX1 + 9v/19fb/9fX2//X19v/29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9fX2//T09f/09PX/8vLz//Hx8v/v7/D/7Ozt/+rq6//n5+j/4+Pk/9vb + 3P/Q0NH/iIiJtwUFBSc4ODgFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMDAwDn9/f6X19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b29v/19fb/9fX1//Pz9P/y8vL/8PDw/+7u + 7v/r6+z/6Ojo/+Xl5v/f3+D/1NTV/9bW1/+Pj5G+AwMDKioqKgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/f/9/f3//f39//29vf/9vb3//X1 + 9v/09PX/8/P0//Hx8v/v7/D/7Ozt/+np6v/n5+f/4+Pj/9vb2//Nzc3/5eXn/5ubnMQGBgYvKysrBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/9fX2//b2 + 9//29vf/9vb3//b29//29vf/9vb3//b29//39/f/9/f3//f39//39/j/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//b29//19fb/9PT1//Pz9P/y8vP/8PDx/+3t7v/q6uv/6Ojo/+Tk5f/e3t//0NDR/+fn + 6P/g4OL/pqanywkJCTQsLC0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/ + f6X29vf/9vb3//T09f/09PX/9fX2//b29//29vf/9vb3//f39//39/f/9/f4//f3+P/39/j/9/f4//f3 + +P/39/j/9vb3//b29//29vf/9vb3//b29//19fb/9fX2//T09f/z8/T/8fHy//Dw8f/t7e7/6urr/+jo + 6P/l5eX/39/g/9PT1P/k5OX/6urr/9/f4f+srK3SCwsLOC0tLgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADAwMA5/f3+l9vb3//b29//y8vP/9PT1//X19f/29vb/9vb3//f3+P/39/j/9/f4//f3 + +P/39/j/9/f4//f3+P/l5eb/0tLS/9XV1f/Nzc7/y8vL/8vLzP/Ly8z/y8vL/8rKy//Jycr/yMjJ/8fH + yP/Gxsf/xcXF/8LCw//AwMD/vLy9/7i4uP+vr7D/0dHR//Hx8v/q6uv/39/h/6+vsNcNDQ09LS0tCgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAOf39/pfb29//29vf/8/Pz//Ly8v/z8/T/9PT1//X1 + 9v/29vf/9vb3//f3+P/39/j/9/f4//f3+P/39/j/6Ojp/9XV1f/e3t//0NDR/9PT1P/V1db/1dXW/9XV + 1v/U1NX/1NTV/9PT1P/S0tL/0dHS/8/P0P/Nzc7/ysrL/8jIyP/Dw8T/urq7/9DQ0f/29vb/8fHy/+rq + 6//f3+H/s7O03BAQEEEiIiMKLS0tAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X29vf/9vb3//Hx + 8f/09PX/8/P0//Pz9P/09PX/9vb3//b29//39/j/9/f4//f3+P/39/j/9/f4/+fn6P/W1tb/4ODh/9XV + 1v/W1tf/3Nzc/9zc3f/c3N3/29vc/9vb3P/a2tv/2dnZ/9jY2P/W1tf/1NTV/9HR0v/Pz9D/y8vM/8HB + wv/U1NT/+Pj4//b29v/x8fL/6urr/97e4P+ysrPeERERRBgYGAsrKywBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw + MA5/f3+l9vb3//f39//x8fL/7+/v//Hx8f/y8vL/8vLy//T09P/29vf/9/f3//f3+P/39/f/+Pj4//j4 + +P/n5+f/3t7e/9ra2v/a2tr/1tbX/9zc3P/d3d3/3d3d/9zc3f/c3Nz/29vc/9ra2//Z2dn/2NjY/9bW + 1v/U1NT/0dHR/83Nzv/ExMT/1tbW//n5+f/4+Pj/9vb2//Hx8v/q6uv/3t7g/7Gxs98SEhJFGBgYCwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAwMDAOf39/pff39//39/f/8vLy//Pz8//19fX/9PT0//X19f/09PT/9/f3//j4 + +P/4+Pj/9/f3//f39//4+Pj/5+fn/+Pj4//W1tb/3t7e/9nZ2f/a2tr/3d3d/97e3v/d3d3/3d3d/9zc + 3P/b29v/2tra/9nZ2f/Y2Nj/1dXV/9PT0//Pz8//yMjI/9jY2P/6+vr/+fn5//j4+P/29vb/8fHy/+rq + 6//e3uD/sLCy4BAQEEMqKisKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwDn9/f6X39/f/9/f3/+7u7v/q6ur/7e3t/+3t + 7f/u7u7/8fHx//b29v/4+Pj/+Pj4//f39//19fX/9vb2/+bm5v/k5OT/1tbW/+Dg4P/d3d3/2dnZ/97e + 3v/f39//3t7e/97e3v/d3d3/3Nzc/9zc3P/a2tr/2dnZ/9fX1//V1dX/0tLS/8zMzP/d3d3/+/v7//r6 + +v/5+fn/+Pj4//b29v/x8fL/6urr/97e4P+np6naCwsLPCkpKgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA5/f3+l9/f3//f3 + 9//y8vL/9fX1//f39//39/f/9/f3//X19f/39/f/+Pj4//j4+P/39/f/9vb2//b29v/m5ub/5OTk/+Dg + 4P/X19f/4uLi/9nZ2f/d3d3/39/f/9/f3//e3t7/3t7e/93d3f/d3d3/29vb/9vb2//Z2dn/19fX/9XV + 1f/Q0ND/1tbW/93d3f/X19f/0tLS/8fHx//IyMj/0NDQ/9PT0//d3d7/39/h/5+fodMICAg1KSkpBwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvLy8Of39/pff39//39/f/6+vr/+fn5//r6+v/6urq/+vr6//z8/P/9vb2//j4+P/4+Pj/9fX1//Ly + 8v/z8/P/4uLi/+Pj4//h4eH/19fX/+Tk5P/b29v/29vb/+Dg4P/g4OD/4ODg/9/f3//f39//3t7e/93d + 3f/c3Nz/29vb/9nZ2f/X19f/1dXV/9HR0f/Nzc3/yMjI/8TExP+0tLT/vLy8/8DAwP+6urr/xsbG/8LC + wv/Nzc7/np6fzAYGBy8uLi8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALy8vDn9/f6X29vb/9vb2//Pz8//29vb/9/f3//f39//39/f/8/Pz//f3 + 9//39/f/9/f3//f39//29vb/+Pj4/+Tk5P/l5eX/4uLi/9nZ2f/k5OT/4ODg/9nZ2f/f39//4ODg/+Dg + 4P/g4OD/39/f/9/f3//e3t7/3d3d/9zc3P/b29v/2tra/9jY2P/V1dX/09PT/9HR0f/Ly8v/wMDA/8zM + zP/Ozs7/yMjI/9nZ2f/X19f/z8/P/8fHx/+YmJnGBgYHJTw8PAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw5+fn6l9fX1//X19f/l5eX/4eHh/+fn + 5//l5eX/5eXl/+fn5//y8vL/9PT0//X19f/y8vL/6urq/+zs7P/c3Nz/3d3d/9vb2//e3t7/2NjY/+Dg + 4P/X19f/3Nzc/97e3v/e3t7/3t7e/93d3f/e3t7/3d3d/93d3f/d3d3/3Nzc/9vb2//a2tr/2NjY/9bW + 1v/U1NT/xsbG/8vLy//U1NT/1NTU/8/Pz//g4OD/4uLi/97e3v/X19f/z8/P/21tbpoeHh4QAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8OfHx8pfHx + 8f/x8fH/6urq/+zs7P/s7Oz/7Ozs/+zs7P/r6+v/7u7u/+/v7//v7+//7u7u/+vr6//s7Oz/2trb/9zc + 3P/Z2dn/29vb/9XV1f/e3t7/1dXV/8/Pz//S0tL/0tLS/9PT0//S0tL/09PT/9TU1P/V1dX/1dXV/9XV + 1f/U1NT/09PT/9LS0v/R0dH/z8/P/8LCwv/R0dH/2NjY/9jY2P/S0tL/4+Pj/+bm5v/l5eX/4uLi/97e + 3v/JycnoAAAAIjs7OwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp6eqXu7u7/7e3t/93d3f/a2tr/39/f/9zd3f/c3Nz/3d3d/+jo6f/p6ur/6enp/+bm + 5//f39//4eHh/9DQ0f/U1NX/0dHR/9TU1P/Nzc7/xcXF/7/AwP+9vr7/wMHB/8HCwv/CwsP/w8PE/8PD + xP/FxcX/x8fH/8jIyP/IyMj/x8fH/8fHx//FxcX/xMTE/8LCwv/MzMz/2dnZ/9zc3P/b29v/1dXV/+bm + 5v/q6ur/6enp/+jo6P/m5ub/5ubm/AAAAC5KSkoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enul7e7v/+zt7v/m5+j/5OXm/+Xm5//m5+f/5eXn/+np + 6v/o6ev/6urr/+nq6//n6On/5eXm/+Xm5//U1NX/2NnZ/9TV1v/W19j/z9DR/8zNzv/Iycv/ysvM/83O + z//Nzs//zs/Q/87Oz//Pz9D/0NDR/9TU1P/V1db/1dXW/9XV1f/U1NT/09PU/9LS0//R0dL/1NTV/9zc + 3f/f39//3t7e/9bW1v/p6en/7Ozt/+zs7P/r6+v/6urr/+3t7f8AAAAyVFRUAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/3+Dh/97f + 4P/i5OX/3+Di/+Dh4//e3+D/6evs/+vs7f/r7O3/6Onq/+Hj5P/i5OX/09TW/9bX2f/S09X/1tja/8/R + 0v/Mzs//yMnL/8rMzf/Mzs//zc/Q/83P0P/Oz9D/z9DR/9PT1P/W1tb/19fY/9jY2P/X19f/1tbW/9XV + 1f/U1NT/09PT/9XV1v/d3d7/4ODh/+Dg4f/Y2Nn/7Ozs/+/v7//u7u//7e3u/+3t7v/w8PH/AAAAMldX + VwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7 + e6Xt7/D/7e7w/+bn5//h4uP/4+Tm/+Tl5//j5Ob/5ebn/+rr7P/r7O3/6uzt/+jq6//j5ef/5OXm/9TV + 1//Y2tv/0tTV/9fY2v/Q0dP/zc7Q/8fJy//Lzc//ztDR/83P0f/Oz9H/zs/R/8/Q0f/U1dX/2NjZ/9nZ + 2f/Z2dn/2dnZ/9jY2P/X19f/1tbW/9XV1f/W1tf/39/g/+Li4//i4uL/2tra/+3t7f/x8fH/8fHx//Dw + 8f/v7/D/8/Pz/wAAADJYWFkCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg56e3ul7u/w/+7v8P/e4OH/4OHi/+Tl5//g4eP/4OLj/+Hi5P/p6+z/6uzt/+rs + 7f/n6er/3+Di/+Di5P/T1db/1dbY/9PV1v/X2Nr/ztDS/83O0P/Iycv/yszO/83P0f/Nz9D/zc/Q/87Q + 0f/R0tL/1dbW/9nZ2v/a2tv/2tra/9nZ2v/Z2dn/2NjZ/9fX2P/W1tf/2NjY/+Hh4f/k5OX/5OTk/9vb + 3P/u7u//8/Pz//Pz8//y8vP/8fHy//X19v8AAAAyWVlZAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/u7+//5OXm/9zd3//f4OL/4OLj/93f + 4P/i4+T/6evs/+rs7f/q6+3/5+nq/+Di4//e3+H/1tjZ/9bY2f/R0tT/1NXX/8nLzP/Exsf/vr/B/8PF + xv/Gx8n/xcfI/8XHyf/GyMn/ycrL/8/P0P/T09T/1NTU/9PT1P/U1NT/09PT/9PT0//S0tP/09PT/9TU + 1P/d3d3/4eHi/+Pj5P/c3N3/7+/w//T09f/19fX/9PT0//Pz9P/39/f/AAAAMlpaWgIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/w/97f + 4f/j5OX/5ufp/+Lj5P/k5uf/4uTl/+nq7P/q7O3/6evt/+fp6v/h4+T/3N7f/9fZ2//W2Nn/xcfJ/7/B + w/+5urz/vb/A/7u8vv+/wcL/wMLD/7/Bwv++wMH/v8DC/8HDxP/IyMn/y8vL/8vLzP/Ly8v/y8vL/8nJ + yf/Hx8j/xsbH/8bGxv/Fxcb/zc3N/9TU1f/T09P/0dHS/+Pj5P/19fb/9vb2//b29v/19fX/+Pj5/wAA + ADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lg56e3ul7u/w/+3u8P/f4OH/2Nnb/9vd3v/d3t//2tvc/+Xn6P/p6uz/6evt/+nr7f/l5+j/3uDh/9ja + 2//Lzc//ycvM/7q8vf+2uLn/tre5/7a4uf+xs7T/t7m6/7q8vv+7vL7/vL2//7y+v/++v8D/xcXG/8nK + yv/Jycr/x8fI/8fHx//Dw8T/wsLC/7+/v/+9vb3/u7u7/7+/v/++vr7/vr6//76+vv/e3t//9vb3//f3 + +P/39/f/9vb2//n5+v8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v8P/t7vD/4ePk/+Xm6P/p6uv/5Obn/+bo6v/k5ef/6Ors/+rr + 7f/q6+z/5+jp/+Lk5f/h4+X/1tja/9ze4P/Z293/0dLU/87Q0v/R09X/zc/Q/9LU1f/S1NX/0dPU/9HS + 1P/R0tT/1dbX/97f3//j4+T/3d3e/9jY2P/X19f/1tbW/9TU1f/Q0NH/0dHS/9LS0v/c3Nz/4ODh/9/f + 3//b29v/9fX1//f3+P/39/j/9/f3//f39//6+vr/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e7w/9vc3v/S1NX/2Nna/9XX + 2P/U1tf/3N3e/+fp6//q7O3/6evt/+Pl5v/Z293/3N3f/9HT1P/U1tj/297f/9DS1P/Hycv/z9HS/87Q + 0v/Q0tT/ztHS/8zP0P/Lzc//zc/R/8/Q0f/X19j/y8vM/8bGx//Nzc3/0NDQ/9PT0//U1NT/2dnZ/9ra + 2v/b29v/5OTl/+jo6P/h4eL/7u7u//j4+P/4+Pn/+Pj5//j4+f/4+Pj/+/v7/wAAADJbW1sCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3u + 7//k5eb/6evs/+vt7v/q6+z/6uzt/+Pl5v/q7O3/6uzt/+nr7P/o6uv/6Onr/+fp6v/n6er/2t3e/9ze + 4P/c3uD/yszO/9DS0//S1db/0dPU/8/R0v/Q0tP/z9HT/87Q0f/Q0tP/1tbW/8jIyP/Gxsb/19fX/9bW + 1v/X19f/1tbW/9XV1f/U1NT/2NjY/+Xl5f/l5eX/5ubm//j4+P/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7 + +/8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi4Oent7pe7v8P/t7u//2drb/8zOz//W19j/0NHS/9XX1//X2dr/0tTV/9rc3f/U1tj/3N7f/+jq + 6//o6uv/297f/9jb3P/P0dL/0dPU/8jLzP/BxMX/wMLD/8HDxP/JzM3/zM7Q/8vNzv/Nz9H/z9HS/87P + z//Jycn/xMTE/9PT0//U1NT/1NTU/9fX1//X19f/2dnZ/9LS0v/g4OD/4ODg//b29v/4+Pj/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnp7e6Xu7/D/7e/v/+Xm5//q6+z/6err/+vt7v/r7O7/6+zt/+rs + 7f/q7O3/5+nq/+jq7P/o6uv/6Orr/+fp6//n6er/4OLk/9fZ2//R09T/xcfJ/7e5uv+7vb7/wMPE/8PF + x//GyMr/yMvM/8zOz//MzM3/x8fH/8bGxv/T09P/09PT/9HR0f/Q0ND/zs7O/8vLy//Kysr/1NTU/+7u + 7v/4+Pj/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7u/w/+3v7//T1NX/yMnK/87Q + 0f/V1tf/0NLT/9LU1f/g4uP/6uzt/+nr7P/g4uP/2Nrc/9vd3v/Y2tv/2tze/97h4v/R09T/x8nL/8fK + y/++wML/u72//7i6u/+4urv/vb/A/77Bwv/Gx8j/y8vM/8rKyv/MzMz/1NTU/9PT0//S0tL/0dHR/9DQ + 0P/Ozs7/zc3N/+bm5v/4+Pj/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oent7pe7v + 8P/t7+//5+jp/+Xn5//o6er/5efo/+Xn6P/m6On/6evs/+rr7f/p6+z/6Ors/+fp6v/o6uv/5+nq/+bp + 6v/l6On/5Ofo/9rd3v/Y2tz/1djZ/9TW2P/S1db/09bX/9PV1v/Q0tT/z9HS/9DQ0f/Z2dn/5ubm/+jo + 6P/o6Oj/6enp/+np6f/p6en/6urq/+rq6v/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/7+/v/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnp7e6Xu7/D/7u/v/8/Q0f/Nzs//ztDR/9PV1v/W19j/2Nrb/+nr7P/q7O3/6evs/+Xn + 6P/j5eb/6Orr/+fp6v/m6Or/5ujq/+Xo6f/l5+n/5Ofo/+Tm6P/j5uj/4uXm/97h4v/a3d//2Nrb/9vc + 3v/l5ub/8PDx//j4+P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56e3ul7/Dw/+7v8P/n6en/5OXm/+Xm5//h4+T/4+Xm/+bo + 6f/q7O3/6uzt/+nr7f/n6er/5efo/+bo6v/l5+n/5unq/+bo6v/l6On/5Ofp/+Tm6P/j5uj/4+bn/+Pl + 5//j5ef/4+bn/+Pl5//d3+D/8PHx//r6+v/7+/v/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6 + +v/6+vr/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3t7pe/w8f/u7/D/29zd/9DS + 0v/Y2dr/1dbX/9rc3f/i5OX/6+zt/+rs7f/q7O3/2dvc/9vd3v/i5Ob/3+Hj/+fp6v/m6Or/5efp/+Tn + 6P/j5uj/4+bn/+Pl5//i5ef/4uXn/+Ll5//j5ef/5efo/+/w8f/6+vr/+/v7//v7+//7+/v/+/v7//v7 + +//6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/7+/v/AAAAMlxc + XAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt7 + fKXv8PH/7/Dw/+Lj5P/g4eL/5+jp/+3u7//s7u//7O7u/+vt7v/m6On/4uPl/9rc3f/k5uf/4ePl/9/h + 4//f4eP/4eTl/+Di4//f4uP/4ePl/9/h4//d4OL/4+Xn/+Pl5//i5eb/4uXm/+Tm6P/u7/D/+fr6//z8 + /P/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4 + +P/4+Pj/+/v7/wAAADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC4uLg57e3yl8PHx/+/w8f/i4+T/1NXW/+Pk5f/t7u//7O7v/+zu7//r7e7/4uTl/9vd + 3v/a3N3/4uTl/9zf4P/f4uP/3+Lj/+Hj5f/d4OH/3eDh/+Hk5f/e4eL/3uHi/+Ll5//i5ef/4uXn/+Ll + 5v/k5uj/7e/w//n5+f/8/Pz/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5 + +f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oe3x8pe/w8f/v8PH/4eLj/9PU1f/d3+D/2tzd/9nb + 3P/Z29z/2dvc/+vs7f/q7O3/6evt/+Pl5v/d4OH/2tze/9vd3v/b3t//4uTm/9/h4//e4OL/3+Lk/+Dj + 5f/f4uP/3eDi/97g4v/d3+H/4+bn/+zu7//4+Pn/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//7+/v/AAAAMlxcXAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uDnt8fKXv8fH/7/Dx/9na + 2//h4uP/3uDg/93f3//h4uP/3+Hh/+Lj5P/r7e7/6uzt/+rr7P/i5OX/3+Hi/+Lk5f/h4+T/4ePl/+Ll + 5v/f4uP/4OPk/+Dj5P/f4uP/3uHi/+Di5P/e4OL/4OLk/+Pm5//s7e7/+Pj4//v7+//7+/v/+/v7//r6 + +v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/9/f3//f39//39/f/+/v7/wAA + ADJcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4u + Lw57fHyl8PHx/+/w8f/c3t7/1NXW/8/Q0f/Nz8//3+Dh/+3u7//s7e7/6+3u/+vt7v/Y2dr/1tjZ/9nb + 3P/W2Nn/3d/g/97g4f/b3d7/3N7g/93g4v/c3+D/297g/9/h4//i5ef/4uXn/+Pl5//k5uf/6+3u//f3 + 9//6+vv/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/+Pj4//f3 + 9//39/f/9/f3//v7+/8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAuLy8OfHx9pe/w8v/v8PH/4uPk/+Di4//k5uf/5+jp/+bo6f/s7u//7O3v/+zt + 7v/r7O7/3d/g/+Xn6P/g4uP/5Obn/+Lk5f/g4uT/3+Lj/+Di5P/g4uT/3uHi/97g4v/h5OX/4+bn/+Pm + 5//j5uj/5Obo/+vs7f/29/f/+vr6//r6+v/6+vr/+vr6//n5+v/5+fn/+fn5//j4+f/4+Pn/+Pj4//j4 + +P/39/j/9/f4//f39//29vf/9vb3//b29//6+vr/AAAAMlxcXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi8vDnx9faXw8fL/7/Dx/9jZ2v/Mzc7/xcfI/8/Q + 0f/Fxsf/2Nrb/+zu7//s7e7/6+3u/9rc3f/W2Nn/19na/9rc3f/Y2tz/293f/+Di5P/e4OL/5ujq/+Xn + 6f/k5+n/5Ofo/+Tm6P/k5uj/5Obo/+Tn6P/q7O3/9vb2//n5+v/6+vr/+vr6//n5+f/5+fn/+fn5//j4 + +P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/+vr6/wAAADJcXFwCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vLw58fX2l8PHx//Dx + 8f/p6ur/6uzs/+7v8P/t7u//7O3u/+zu7v/t7u//7O3u/+zt7v/n6On/4OHi/9/h4f/k5eb/5ujp/+Pl + 5v/i5Ob/5ujp/+fp6v/m6Or/5ujp/+Xo6f/l5+n/5efo/+Xn6f/l5+n/6uvs//X19f/5+fn/+fn5//n5 + +f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//39/f/9vb2//b29v/29vb/9fX1//r6 + +v8AAAAyXFxcAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAuLi8OfH19pe/w8f/v8PH/2Nna/8bHyP/HyMn/uru8/83Oz//t7u//7O3v/+zt7v/s7e7/6+zt/+rs + 7f/q6+3/6evs/+nr7P/o6uz/6Orr/+fp6//n6er/5ujq/+bo6v/m6Or/5efp/+Xn6f/l5+n/5ujp/+rr + 7f/09PX/+Pj5//n5+f/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b29//29vf/9vb2//X1 + 9v/19fb/9fX2//X19f/5+fr/AAAAMltbXAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALi4uDnx8fKXt7u//7e7v/+Xm6P/o6ev/7O3t/+fo6v/h4uP/6err/+Xm + 5v/o6ev/5+nq/+fp6v/n6On/5ujp/+bn6f/j5OX/5efo/+Xm6P/k5uj/5Obo/+Tm6P/k5uj/5Obn/+Tm + 6P/k5uj/5Obo/+Xn6f/q6+3/9PT1//j4+P/4+Pn/+Pj5//j4+P/4+Pj/9/f4//f3+P/39/f/9/f3//b2 + 9//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/+fn6/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4uLg56enql6err/+jp6f+1trf/sLGy/7O0 + tP+rrKz/tre3/7m6u/+6u7z/tre4/72+v/++v8D/3d7e/66vsP/CxMT/uru8/7y+vv/Q0dL/3N3e/9zd + 3v/d3t//3t/g/9/g4f/h4uP/4+Tl/+Xm5//o6er/7u7v//X19v/39/j/+Pj4//j4+P/39/f/9/f3//f3 + 9//39/f/9vb2//b29v/29vb/9vb2//X19f/19fX/9fX1//X19f/09PT/9PT0//n5+f8AAAAyW1tbAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4Oenp6pejo + 6v/m5+j/29zc/9rb3P/c3d7/1NTV/9PU1f/U1NX/09PU/9DR0f/X19j/0tLU/9TU1f/Oz8//1dbW/9na + 2//a29z/1tfY/9TV1f/Z2tv/4eLj/+Pk5f/m5+j/6Onq/+rr7P/r7e3/7u/w//Pz9P/29vf/9/f4//f3 + 9//39/f/9vb3//b29//29vf/9vb2//X19v/19fb/9fX2//X19f/09PX/9PT1//T09f/z8/T/8/P0//Pz + 9P/5+fn/AAAAMltbWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALi4uDnx8fKXs7O3/6uvs/8nJyv+8vb3/wcLD/7e4uP++v8D/vLy9/7m5uf/U1db/xcbH/7m5 + uv/Excb/vr+//8jJyf/U1db/3+Dh/8fIyf/Fxsf/ycvL/+vs7f/s7e7/7e7v/+3v8P/u7/D/7vDx//Ly + 9P/19fb/9vf3//b29//29vf/9vb3//b29//29vb/9fX2//X19v/19fb/9fX1//T09f/09PX/9PT1//T0 + 9P/z8/T/8/P0//Pz9P/z8/P/+Pj5/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLw59fX2l7u7w/+3u7//b3N3/1tbX/9vb3P/V1db/2trb/9LS + 1P/IyMn/1tfY/9ra3P/Z2dr/6Onq/9rb3P/g4eL/2tvc/9/g4f/k5eb/4OLi/97f4P/p6uv/6evr/+Hj + 4//h4uP/4eLj/+Hi4//o6On/6urq/+/v8P/k5OX/4+Pj/+rq6//w8PD/5ubm/+np6v/p6er/8PDx//T0 + 9f/z8/X/8/P1//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//j4+f8AAAAyW1tbAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Ofn5+pe7u8P/t7u//vr6//8TE + xf++vr//t7e4/7u8vf/HyMn/ycrL/8DBwv/Mzc7/0NDR/+jp6v/P0NH/0dLT/8PExf/R0tP/1tfY/9XW + 2P/Iycr/zM7P/9PU1f/Jysv/0tPU/9zd3v/Nzs7/2trb/9HR0f/i4uP/ycnJ/9ra2//AwMD/4eHh/87O + z//X19f/2dnZ/+Tk5f/z8/T/8/P0//Pz9P/y8vP/8vLz//Ly8//x8fL/8fHy//Hx8v/4+Pj/AAAAMltb + WwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8vDn5+ + fqXu7u//7u7v/+Dg4f/Iycr/09PU/9XW1//i4+T/6+vs/+jo6f/p6er/6uvs/9jZ2v/X2Nj/ycrL/83N + z//Z2tv/4eLj/9jZ2v/b3N3/4+Tl/9jZ2//d3uD/3+Di/9na2//x8vP/9PT0//T09f/09PX/9PT1//T0 + 9f/09PX/9PT1//T09P/09PT/8/P0//Pz9P/z8/T/8/Pz//Ly8//y8vP/8vLz//Ly8v/x8fL/8fHy//Hx + 8v/w8PH/9/f4/wAAADJbW1sCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC8vLw5+fn+l7u7w/+7u7//Hx8j/w8PE/8rKy//MzM7/3+Dh/+vs7f/p6er/6urr/+vs + 7P/Y2Nr/1dbX/9PT1f/Q0NH/0NHS/93d3v/W19j/19jZ/97f4P/Gx8j/2Nja/9PU1f/U1db/8vL0//Pz + 9f/z8/X/8/P0//Pz9P/z8/T/8/P0//Pz9P/z8/T/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHy//Hx + 8v/x8fL/8PDy//Dw8v/w8PH/7+/x//f3+P8AAAAyW1tbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLy8Of39/pe7u7//u7vD/7e3w/+3t7//t7e//7e3v/+zt + 7//r7O3/6urs/+rr7f/r6+3/6+zt/+zs7v/s7O7/7O3v/+zt7//t7e//7e7v/+3u8P/t7vD/7u/w/+7v + 8P/v7/H/8fHy//Ly9P/z8/T/8/P0//Ly9P/y8vT/8vL0//Ly9P/y8vP/8vLz//Ly8//x8fP/8fHz//Hx + 8//x8fL/8fHy//Dw8v/w8PL/8PDy//Dw8f/v7/H/7+/x/+/v8f/39/f/AAAAMltbWwIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyssDn9/f6Xu7u//7u7v/+7u + 7//t7u//7e3u/+3t7v/t7e//7Ozu/+vr7f/r7O3/7Ozt/+zs7v/s7O7/7O3u/+zt7v/t7e7/7e7v/+3u + 7//t7vD/7u7w/+7u8P/u7/D/7/Dx//Hx8//y8vP/8vLz//Ly8//y8vP/8vLz//Ly8//x8fL/8fHy//Hx + 8v/x8fL/8fHy//Hx8v/w8PH/8PDx//Dw8f/w8PH/8PDx/+/v8P/v7/D/7+/w/+7u8P/u7u//9vb3/wAA + ADFUVFQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYm + Jgp/f3+c9vb3//b29//29vf/9vb2//b29v/19vb/9fX2//X19v/19fX/9PT1//T09f/09PX/9fX1//X1 + 9v/19fb/9fX2//X19v/19fb/9fX2//b29v/29/f/9/f3//f4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4 + +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f4//f3+P/39/j/9/f3//f39//39/f/9/f3//b2 + 9//29vf/9vb3//v7+/8AAAAlSEhIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABCQkICERESFwAAACoAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAA + ACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwGBgYjLy8vCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkoBWFhYAVtbWwFbW1sBW1tbAVpb + WwFaWlsBWlpbAVpaWgFaWloBWlpaAVpaWgFaWloBWlpaAVpaWwFaWlsBWlpbAVpaWwFaWlsBWltbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtb + WwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFbW1sBW1tbAVtbWwFUVFQBSEhIAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////// + /////////wAAAAH////+AAAAAH////4AAAAAP////gAAAAAf///+AAAAAA////4AAAAAB////gAAAAAD + ///+AAAAAAH///4AAAAAAP///gAAAAAAf//+AAAAAAAf//4AAAAAAA///gAAAAAAD//+AAAAAAAH//4A + AAAAAAP//gAAAAAAAf/+AAAAAAAA//4AAAAAAAB//gAAAAAAAH/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4A + AAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAA + AD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAf/+A + AAAAAAD//////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PARAQEAEQEBABEBAQARAQ + EAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQEAEQEBABEBAQARAQ + EAEODg4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKwIKCgofBAQEMgQE + BDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQEBDMEBAQzBAQEMwQE + BDMEBAQzBAQEMwQEBDMEBAQyBgYGJxkZGQ4pKSkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIi + Igmenp64+fn5//j4+f/5+fn/+Pj5//n5+f/5+fr/+fn6//n5+v/5+fr/+fn6//n5+v/5+fr/+fn6//n5 + +v/4+Pn/+Pj5//f39//19fb/8vLz/+/v8P/r6+z+19fY83d3d6cRERElMDAwAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACsrKwucnJ289PT1/vX19f719fb/9fX2/vb29//19fb+9fX2/vX19v729vf/9fX2/vX1 + 9v729vf/9fX2/vX19v719fb/9PT1/vPz9P7y8vP/8PDx/u3t7v7p6er/5OTl/tnZ2v6ioqLQGBgYMTMz + MwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQucnJ289fX2/vX19v729vf/9fX2/vb29//19fb+9fX2/vX1 + 9v729vf/9fX2/vb29v729vf/9vb2/vb29v729vf/9fX2/vT09f7z8/P/8fHx/u7u7v7q6uv/5ubn/t/f + 4P7R0dL/rq6v1xgYGTUtLS0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb3//b29//29vf/9vb3//b2 + 9//29vf/9vb3//b29//29vf/9vb3//f39//39/f/9/f3//f39//39/j/9vb3//X19v/09PX/8vLz/+/v + 8P/s7O3/6Ojp/+Tk5P/Z2dn/2trb/7i4ut4bGxs7Li4vBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289fX2/vX1 + 9v719fb/9fX2/vb29//29vb+9vb3/vb29/739/f/9vb3/vb29/739/j/9vb3/vb29/729vf/9vb3/vX1 + 9v709PX/8vLz/vDw8f7t7e7/6enq/uXl5v7d3d7/2dnZ/ufn6P++vr/hICAhQzExMQUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289fX2/vPz9P709PX/9fX2/vb29//29vf+9vb3/vb29/739/j/9vb3/u3t7v7c3Nz/2trb/tXV + 1v7V1db/1dXW/tTU1f7U1NT/0tLT/tHR0f7Ozs//y8vL/sfHx/7AwMH/vb2+/vHx8v/m5uf+wcHD5iIi + I0gyMjIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb3//Ly8//y8vP/8vLz//T09f/29vb/9vb3//f3+P/39/j/9/f4/+zs + 7f/Y2Nj/2NjZ/9LS0//X19f/19fX/9bW1//V1db/1NTV/9PT0//Q0NH/zc3O/8rKyv/Dw8T/vb2+//X1 + 9f/x8fL/5ubo/8XFxuslJSZNJiYmBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vPz9P709PT/9PT0/vT09f/29vf+9vb3/vf3 + 9/739/j/9/f3/uvr6/7Z2dr/3Nzd/tbW1v7c3N3/3Nzd/tzc3f7b29z/2trb/tnZ2f7X19j/1NTU/tDQ + 0f7Ly8v/w8PD/vf39//39/f+8fHy/ubm5//CwsTrIyMkUSMjJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289/f3//Ly8v/y8vL/8/Pz//T0 + 9P/09PT/9/f3//j4+P/39/f/9/f3/+vr6//f39//2tra/9nZ2f/b29v/3d3d/93d3f/c3Nz/3Nzc/9ra + 2v/Z2dn/1tbW/9PT0//Ozs7/x8fH//n5+f/5+fn/9/f3//Hx8v/m5uf/wcHD7CEhIk8uLi4GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQudnZ289vb2/vDw + 8P7t7e3/7+/v/vDw8P/x8fH+9/f3/vf39/729vb/9vb2/urq6v7j4+P/19fX/t/f3/7a2tr/3t7e/t7e + 3v7e3t7/3d3d/tzc3P7a2tr/2dnZ/tbW1v7S0tL/zs7O/vr6+v/5+fn+9vb2/vPz8//x8fH+5ubo/r29 + v+oeHh5HLCwtBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0t + LQudnZ289vb2/vLy8v7v7+//8fHx/vHx8f/19fX+9/f3/vf39/729vb/9fX1/ujo6P7k5OT/2dnZ/uPj + 4/7a2tr/3t7e/t/f3/7f39//3t7e/t3d3f7c3Nz/29vb/tnZ2f7W1tb/0dHR/s7Ozv/FxcX+u7u7/re3 + t/+8vLz+x8fH/tDQ0f+0tLbjGxscPiwsLAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAC0tLQudnZ289vb2/vLy8v7z8/P/9PT0/vT09P/z8/P+9/f3/vf39/729vb/9vb2/ujo + 6P7k5OT/39/f/t/f3/7d3d3/3d3d/uDg4P7g4OD/39/f/t/f3/7e3t7/3Nzc/tvb2/7Z2dn/1tbW/tLS + 0v/Pz8/+wsLC/sjIyP/Ly8v+zc3N/tTU1P/Kysr+rq6v3xwcHDM1NTUCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAubm5u89PT0/+rq6v/n5+f/6Ojo/+jo6P/q6ur/8/Pz//T0 + 9P/v7+//7e3t/+Hh4f/e3t7/29vb/9ra2v/f39//19fX/9zc3P/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9vb + 2//a2tr/2NjY/9bW1v/T09P/xsbG/9PT0//U1NT/19fX/+Li4v/f39//1dXV/5OTk78iIiIOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJi87+/v/ufn5/7g4OD/4eHh/uHh + 4f/l5eX+7Ozs/uvr6/7o6Oj/5eXl/tjZ2f7X19f/09PU/tLS0v7Ozs//xMTE/sXFxf7Gxsb/x8fH/sfH + x/7Jycn/y8vL/svLy/7Kysr/ycnJ/sfHx//CwsL+z8/P/tra2v/Z2dn+2tra/ujo6P/n5+f+5OTk/t3d + 3fcXFxcfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXl5i87e3u/uXl + 5v7l5ub/5ebn/uXm5//l5uf+6err/unq6v7l5uf/5OXl/tfY2f7X2Nj/09TV/tHS0/7LzM3/yMjK/szN + zv7Nzc7/zc7P/s7Oz/7R0dH/1NTU/tXV1f7U1NT/09PT/tLS0v/Ozs7+29vb/t7e3v/d3d3+3d3d/uzs + 7P/r6+z+6urq/uvr7P4bGxsmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/+Xm5//i5OX/4+Tm/+Pk5v/j5OX/6+zt/+vs7f/n6On/5Obn/9jZ2//X2Nr/1NbX/9LU + 1f/Nzs//ycrM/83P0P/Oz9D/zs/R/8/Q0f/U1NT/19fX/9jY2P/X19j/1tbW/9TU1f/S0tP/29vb/+Dg + 4f/g4OD/4ODg/+/v7//v7+//7e3u//Dw8P8cHBwnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/uLj5P7c3d//3d7g/t3e4P/h4uT+6+zt/urs7f7j5eb/3+Hi/tXW + 2P7U1tf/0dPU/tDS0/7Lzc7/x8jK/s3P0P7MztD/zc/Q/s/Q0f7V1db/2dnZ/tnZ2v7Z2dn/2NjZ/tfX + 1//U1NX+3d3d/uPj4//i4uP+4uLj/vHx8v/y8vL+8fHy/vPz9P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/v/ufo6f7h4uT/4uPl/uLj5P/k5uf+6uzt/unr + 7f7n6Or/4uTm/tfY2v7W2Nn/09TW/s7Q0f7Gx8n/wsPF/sfJy/7Hycv/yMrM/srMzf7S0tP/1dXW/tXV + 1v7V1dX/1NTV/tTU1P/S0tP+29vb/uHh4v/j4+T+4+Pk/vPz9P/09PT+8/P0/vb29v4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/w/+Tl5v/l5uj/5ebn/+Xm + 5//k5uf/6uvt/+nr7f/l5+j/4+Xm/9bY2f/R09X/vsDB/7q8vf+7vb7/u7y9/7/Bw/+/wMH/vsDB/8DB + w//IyMn/y8vL/8rKy//Kysr/x8fI/8XFxv/Dw8T/x8fH/8zMzf/Pz8//1NTV//Pz9P/29vb/9vb2//f3 + +P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7w/t/h + 4v7b3N3/3N3e/tze3//i5Ob+6uvt/unr7P7j5Ob/3uDh/s3P0f7Q0tP/wcPF/sLExv7CxMb/wMLD/sXH + yP7Exsf/xsfJ/snKy/7S09P/1dXW/tDQ0f7Ozs7/y8vL/snJyf/Hx8f+yMjI/s7Ozv/Ly8z+19fX/vb2 + 9//39/j+9vb3/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87e7w/uPk5v7a3N3/29zd/tvc3v/g4uP+6uzt/unr7P7j5eb/3d/g/tbY2v7Z293/2Nrc/svN + zv7P0dL/0NLU/tDT1P7O0NL/ztDR/tDR0/7X2Nj/zs7P/s3Nzv7S0tP/1NTV/tTU1f/X19j+3t7e/ufn + 5//i4uL+9PT0/vj4+f/39/j+9/f4/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuXmJi87e/v/+bn6P/l5uf/5efo/+fo6f/j5Ob/5+jp/+bn6f/m6On/5+nq/+Xn + 6P/a3N3/2tzd/87Q0f/N0NH/z9HT/87Q0f/P0dP/z9HS/9DR0//S0tL/xcXF/9TU1P/X19f/19fX/9bW + 1v/V1dX/3t7e/+Tk5P/t7e3/+Pj4//j4+P/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e7v/t7g4P7b3N3/3+Dh/t3f4P/e4OH+3+Hi/t3f + 4P7k5ef/6Orr/uPl5v7e4OL/09bX/s7R0v7AwsT/u72//sXIyf7Jy83/y83O/s7Q0f7Oz8//w8PD/tLS + 0v7U1NT/1NTU/tPT0//U1NT+09PT/uPj4//4+Pj++Pj4/vj4+P/39/f+9/f3/vr6+v4eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87e/v/t7g4P7U1db/1NXW/tna + 2//Z29z+6Orr/unr7P7i4+X/3N7f/tze4P7f4eL/2dvd/srNzv7Fx8n/ury9/ri6vP65vL3/vsDC/sTG + x/7Ly8z/xsbG/tLS0v7S0tL/0NDQ/s7Ozv/MzMz+1NTU/vPz8//4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACssLAuXmJi87u/w/+Xm + 5//f4OH/3+Dh/9/g4f/j5eb/6uzt/+nr7P/n6er/6Orr/+fp6v/m6Or/5ejp/9/h4v/b3d//2Nvc/9bZ + 2v/U1tj/09XX/9LU1f/V1dX/4+Pj/+3t7f/t7e3/7e3t/+3t7f/u7u7/9PT0//n5+f/5+fn/+fn5//n5 + +f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACss + LAuXmJi87u/w/uHj4/7f4eH/4eLj/uLk5P/k5uf+6uzt/unr7P7l5+j/6Orr/ufp6v7m6Or/5ujp/uXn + 6f7k5uj/4+bn/uPl5/7i5eb/3uHi/trc3v7v8PD/+fn5/vr6+v77+/v/+vr6/vr6+v/5+fn++fn5/vn5 + +f/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACssLAuYmJm87u/w/t/g4f7U1db/1NbX/tbY2f/j5eb+6uzt/urr7f7d3+H/3uDh/t/h + 4/7m6er/5ejp/uTn6P7j5uj/4+bn/uLl5/7i5ef/4uXn/uTm6P7x8vP/+/v7/vv7+/77+/v/+vr6/vr6 + +v/5+fn++fn5/vr6+v/4+Pj++Pj4/vn5+f/4+Pj+9/f3/vr6+v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmJm87/Dx/+Tl5v/Z2tv/7O3u/+zu7//s7e7/6uzs/93f + 4P/b3d7/4OLj/9ze4P/d3+D/3+Lj/93g4f/f4uP/3eDi/+Dj5P/i5ef/4uXm/+Tm6P/w8fL/+/v7//v7 + +//7+/v/+/v7//r6+v/6+vr/+vr6//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//r6+v8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/ufo6f7e4OD/6Onq/ujp + 6v/l5+j+6Onq/uTm5/7m6On/4uTl/uLk5f7h4+T/4uTm/uHk5f7h5OX/4eTl/uHj5f7h4+X/4eTl/uPl + 5/7v8PH/+vr7/vv7+/77+/v/+vr6/vr6+v/5+fn++fn5/vn5+f/4+Pj++Pj4/vj4+P/39/f+9/f3/vr6 + +v4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuYmZm87/Dx/9/g + 4f/a29z/2Nna/9nb3P/Z29v/5ufo/+rs7f/p6+z/3d/g/97g4f/e4OH/3uHi/+Di5P/e4eP/4OLk/93g + 4v/d4OL/3eDh/+Ll5v/u7/D/+vr6//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/39/f/9/f3//r6+v8eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuZmZq87/Dx/uDh4v7R09P/09XW/tfY2f/s7u/+6+3u/uvs7f7X2dr/1tjZ/tfZ2/7c3t//3N7f/trd + 3v7c3uD/3N/g/t3g4v7i5ef/4uXn/uPm5/7t7/D/+fn5/vr6+v76+vr/+fn5/vn5+v/5+fn++Pj4/vj4 + +f/4+Pj+9/f3/vf3+P/39/f+9vb2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuZmZq87/Dx/uLk5f7f4OH/3t/g/t7f4P/m5+n+7O3u/uvt7v7f4eL/3+Hi/uPl + 5v7g4uP/4ePl/uPl5v7k5uj/4uXn/uLl5/7j5uj/4+bo/uTm6P7t7u//+Pn5/vn5+v76+vr/+fn5/vn5 + +f/4+Pj++Pj4/vj4+P/39/f+9vb3/vf39//29vb+9fX2/vn5+f4eHh4nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmpq88PHx/+jp6f/h4uL/3+Dh/+Hi4//o6er/7O7v/+zt + 7v/j5OX/3N7f/9/h4v/h4+T/4ePl/+Lk5v/m6Or/5ujp/+Xn6f/l5+j/5efo/+Xn6f/s7e7/+Pj4//n5 + +f/5+fn/+fn5//n5+f/4+Pj/+Pj4//f39//39/f/9/f3//b29v/29vb/9vb2//n5+f8eHh4nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuZmZq87/Dx/t7f4P7Nzs//z9HS/sjJ + yv/s7u7+7O3u/uvt7f7q7O3/6evt/unr7P7o6uz/6Onr/ufp6/7n6er/5ujq/ubo6f7l5+n/5efp/uXn + 6f7r7e7/9/f3/vj4+f74+Pn/+Pj4/vj4+P/39/f+9vb3/vb29//29vb+9fX2/vX19v/19fX+9PT1/vj4 + +P4dHR4nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuXl5i86+zt/tfY + 2f7Mzc7/ycrL/szNzv/HyMn+y8zN/s/Q0f7U1db/1tjY/s7P0P7Jysv/0dPU/uDi4/7g4uP/4OLj/uHj + 5P7i5OX/4+Xn/ubn6f7t7u//9/f3/vj4+P74+Pj/9/f3/vf39//29vf+9vb3/vb29v/19fb+9fX1/vX1 + 9f/09PX+9PT0/vj4+P4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAuVlpa85+fp/9bX2P/W1tf/0tLT/8nKy//R0tP/0dHS/9PU1P/T09T/zs7P/9DQ0f/W1tf/1tfY/9XW + 1v/b3N3/4eLj/+Pl5f/n6On/6evr/+zt7v/z8/T/9/f3//f39//39/f/9vb3//b29//29vb/9fX2//X1 + 9v/19fX/9PT1//T09f/09PT/8/P0//f3+P8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACwsLAuYmZm87Ozt/tjY2f7CwsP/zc3O/sjIyf/ExMX+y8vM/tLT1P7IyMn/ycrK/s/P + 0P7a29z/2Nna/tHS0/7Y2tr/7O3u/u3u7/7t7/D/7u/w/vHy8/729vb/9vb3/vb29v729vb/9fX2/vX1 + 9v/19fX+9PT1/vT09f/09PT+8/P0/vPz9P/z8/P+8vLz/vf39/4dHR0nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampq87u7w/s/Q0f7Excb/vL2+/r6/wP+6u7z+wcHC/srL + zP7S09T/2trc/s7P0P7Gx8j/1tjZ/s/R0v7Oz9D/1dbX/tDR0v7S09T/0tPU/tPT1P7Y2Nn/1dXV/tPT + 1P7S0tP/1tbW/tTU1f/V1db+9PT0/vPz9P/z8/T+8/Pz/vLy8//y8vP+8fHy/vb29/4dHR0nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQuampq87u7v/9/f4f/R0dL/1tfY/9ra + 2//p6uv/5ubn/+nq6//d3t7/1tfY/9PU1f/e3+D/4OHi/93e3//g4eL/3t/g/9/g4f/i4+T/8vLz//Pz + 9P/09PT/8PDw//Pz9P/w8PH/8vLy//Pz9P/x8fL/8/Pz//Ly8//y8vP/8vLz//Hx8v/x8fL/8fHx//b2 + 9v8dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAuampu87u7v/tjY + 2f7Q0NH/09PV/t7e4P/r6+3+6enr/uvr7P7d3t//2drb/tfX2f7b3N3/3d7f/tzd3v7b3N3/2drb/tvc + 3f7h4eP/8/P0/vPz9P7z8/T/8/P0/vPz9P7z8/T/8vLz/vLy8//y8vP+8vLz/vHx8//x8fL+8fHy/vDw + 8v/w8PH+7+/x/vX19v4dHR0nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACws + LAubm5u77u7v/u3t7/7t7e//7e3v/u3t7//r7O3+6uvs/uvs7f7r7O7/7Ozu/uzt7v7t7e//7e3v/u3u + 7/7t7vD/7u7w/u/v8f7x8fP/8vLz/vLy8/7y8vP/8vLz/vLy8/7x8fP/8fHy/vHx8v/x8fL+8PDy/vDw + 8f/w8PH+7+/x/u/v8P/v7/D+7u7w/vT09f4dHR0mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACUlJQicnJ229PT0/vT09P709PT/8/T0/vPz9P/z8/T+8vLz/vLy8/7y8/P/8vPz/vLz + 9P7z8/T/8/P0/vP09P709PX/9PX1/vX29v729vf/9vb3/vb29/729vf/9vb2/vb29v729vb/9vb2/vb2 + 9v/19fb+9fX2/vX19v/19fX+9fX1/vX19f/09PX+9PT1/vj4+P8YGBgfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OAEgICAVGhoaIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0d + HSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIh0dHSIdHR0iHR0dIhsbGx09PT4FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP4AAA///wAA+AAAAf// + AAD4AAAA//8AAPgAAAB//wAA+AAAAD//AAD4AAAAH/8AAPgAAAAP/wAA+AAAAAf/AAD4AAAAA/8AAPgA + AAAB/wAA+AAAAAD/AAD4AAAAAH8AAPgAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAP///////wAA//////// + AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAXFxcBDg4OGQ0NDSMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw4ODiMODg4jDg4OIw0N + DSMLCwshEhISDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABgYGAa7u7zQ9/f4//f3+P/4+Pj/+Pj5//j4+f/4+Pn/+Pj5//j4+f/4+Pn/9/f4//b2 + 9//z8/T/7+/w/+jo6f6rq6vTLCwsOiEhIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6utL19fb/9fX2//b29//29vf/9vb3//b29//29vf/9vb3//b2 + 9//29vb/9PT1//Ly8//u7u//6enq/+Dg4f/BwcHtNDQ0RSAgIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hurq70vX19v/29vf/9vb3//b29//29vf/9vb3//b2 + 9//39/f/9/f3//b29//19fb/9PT1//Dw8f/r6+z/5eXm/9XV1v/S0tPwODg4TSQkJAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4eHge6urvS9PT1//X19f/29vf/9vb3//f3 + 9//39/j/8vLz/+Xl5v/h4eL/4ODh/+Dg4P/e3t//3Nzc/9jY2P/S0tL/xsbH/+Tk5f/V1dfzPT0+VSYm + JgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eB7q6u9L09PT/8/P0//T0 + 9f/29vf/9/f4//f3+P/v7/D/2trb/9TU1P/Y2Nn/2NjZ/9fX2P/V1dX/0tLS/8zMzf/CwsP/5eXl//Dw + 8f/W1tj2PT0+Wx4eHwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Hu7u70vT0 + 9P/y8vL/8/Pz//X19f/39/f/9/f3/+/v7//c3Nz/2dna/9zc3P/d3d3/3Nzc/9ra2v/Y2Nj/09PT/8rK + yv/o6Oj/+Pj4//Dw8f/W1tf3Ojo7XSMjIwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4e + Hge7u7vS8/Pz//Hx8f/y8vL/9fX1//j4+P/39/f/7u7u/9/f3//d3d3/29vb/9/f3//e3t7/3Nzc/9ra + 2v/X19f/0dHR/+Pj4//n5+f/39/f/9/f4P/Q0NL1Nzc3UyEhIQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHh4eB7u7u9Lz8/P/8PDw//Hx8f/19fX/9/f3//X19f/s7Oz/4+Pj/97e3v/c3Nz/4ODg/+Dg + 4P/f39//3d3d/9vb2//X19f/0dHR/8rKyv+/v7//xMTE/87Ozv/AwMHyNTU1SAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HuLi40u3t7f/o6Oj/6Ojo/+zs7P/y8vL/7e3t/+Tk5P/b29v/2dnZ/9vb + 2//X19f/2NjY/9jY2P/Z2dn/2dnZ/9fX1//U1NT/y8vL/9LS0v/T09P/4+Pj/9/f3/+5ubngIiIiDQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tLTS5+fo/+Dh4f/h4eL/5ebn/+nq6v/k5eX/2tvc/9TV + 1f/R0tP/xsfH/8XGxv/HyMn/ycnK/8zMzP/Pz8//zs7O/8zMzP/Nzc3/3Nzc/9nZ2f/p6er/6urq/+np + 6f4nJycZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLo6er/4eLj/+Hj5P/l5+j/6+zt/+Xn + 6P/b3N7/1dbX/9PV1v/KzM3/zM7P/83P0P/O0NH/1dXW/9jY2f/X19j/1dXW/9XV1f/g4OD/3d3d/+7u + 7v/v7/D/8PDw/ywsLBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW10ufo6f/g4eL/3+Hi/+Xn + 6P/q6+3/4+Xm/9rc3f/T1df/0NLU/8bHyf/Iysv/ycvM/8vNzv/U1NX/19fX/9bW1//V1db/1dXW/+Hh + 4f/f3+D/8fHy//T09P/09PX/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe0tbXS5ufo/9/g + 4v/f4eL/5ujp/+nr7f/j5eb/1tfZ/8fJy/+5u7z/uLm7/7y+v/+9v8D/v8DB/8jIyf/Kysr/x8fI/8TE + xP/BwcH/x8fI/8jIyf/r6+z/9vb3//f39/8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1 + ttLm5+j/3t/g/93f4P/k5ef/6uvt/+Hj5P/Z293/2dvd/83P0f/P0dL/0NPU/87Q0v/Q0tP/2dna/9LS + 0v/U1NT/1NTV/9bW1v/i4uP/4uLj//f3+P/39/j/+fn5/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAdHR0HtLW10ubn5//e3+D/3uDh/97f4P/g4uP/5efo/+Tm6P/X2dv/0NLT/8nLzP/Lzc7/zc/R/8/Q + 0f/Nzc7/zc3N/9XV1f/W1tb/1tbW/+Pj4//z8/P/+Pj4//j4+P/5+fn/LS0tGgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAB0dHQe0tbXS5ebm/9rc3f/f4OH/4uTl/+nr7P/i5OX/4OLk/+Di5P/Q0tT/wMLE/7y+ + v/+/wsP/xsjJ/8rKyv/Ozs7/0tLS/9DQ0P/MzMz/6Ojo//j4+P/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHR0dB7S1tdLk5ub/2tvc/93e3//k5uf/6evs/+bo6f/n6ev/5ujp/+Ll + 5v/d4OH/293f/9ja3P/U1tj/3+Dg//Dw8P/y8vL/8vLy//Ly8v/5+fn/+fn5//n5+f/4+Pj/+fn5/y4u + LhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0HtLW20ufp6f/c3t7/3d/f/+fp6v/q6+3/4OLj/+Pl + 5//m6Or/5efp/+Pm6P/j5ef/4uXn/+Lk5f/09fX/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4 + +P/5+fn/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1trbS6Onq/9/h4f/s7u//6+3u/+Hj + 5P/f4eL/3+Hi/+Di5P/e4eL/4OLk/+Dj5P/i5eb/4+bn//P09f/7+/v/+/v7//r6+v/6+vr/+fn5//n5 + +f/4+Pj/+Pj4//n5+f8uLi4aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7W2t9Lm5+j/3N3e/9ze + 3//d3t//6+zt/+bo6f/e4OL/3uDi/+Hj5f/f4uT/3+Lj/97h4//h4+X/8vPz//v7+//6+vr/+vr6//n5 + +f/5+fn/+Pj4//j4+P/39/f/+fn5/y4uLhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR0Htba30ufo + 6f/a29z/3uDh/+zu7//r7e7/3N7f/9ze4P/f4eP/3eDh/97g4v/e4eP/4+Xn/+Pm5//x8vL/+vr6//r6 + +v/5+fn/+fn5//j4+P/39/j/9/f3//b29//4+Pj/Li4uGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0d + HQe2t7fS6Onp/9rc3P/b3N3/5+nq/+zt7v/e3+D/3d/g/9/h4v/i5OX/5ujq/+Xn6f/k5+j/5efo//Dx + 8f/5+fr/+fn5//j4+f/4+Pj/9/f4//f39//29vf/9vb2//j4+P8uLi4aAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHR0dB7W2ttLm5+n/2Nna/9TV1v/q6+z/6uvs/+nq6//o6ev/5ujp/+bo6f/l5+n/5efo/+Xn + 6P/l5+n/7/Dx//j4+f/4+Pj/9/f4//f39//29vf/9vb2//X19v/19fX/9/f3/y0tLRoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAdHR0HsbKy0tjY2f/Hx8j/wsPD/8fHyP/Hx8j/0NHS/8XGxv/Ky8z/1dbX/93e + 3//h4+P/5efo/+nr7P/z8/T/9/f4//f39//29vf/9vb2//X19v/19fX/9PT1//T09P/29vb/LS0tGgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHQe1tbbS39/h/8vMzf/Jycr/xMTF/9LT1P/P0NH/0NHS/9vc + 3f/U1db/3+Dh/+nq6//n6On/6uvs//Hx8v/t7e3/8fHy/+7u7//x8fH/9PT1//Pz9P/z8/T/8vLz//X1 + 9v8tLS0aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dB7a2t9Le3+D/x8jJ/8rLzP/Z2dr/2NjZ/9ra + 2//Nzs//1NXV/9fZ2v/U1db/1tfY/97f4P/k5OX/5+fn/+Pj4//i4uP/4+Pj/+np6f/z8/P/8vLz//Hx + 8v/x8fL/9PT1/y0tLRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4Htra30uTk5v/a2tv/4eHj/+rr + 7P/q6+z/4eLj/97f4f/h4uT/4uPk/+Dh4v/i4+T/6uvs//Pz9P/z8/T/8/P0//Ly8//y8vP/8vLz//Hx + 8v/x8fL/8PDx/+/v8f/z8/T/LS0tGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGga4uLnP8vLz//Hy + 8v/x8fL/8PDx//Dw8f/w8PH/8PHy//Hx8v/x8vP/8vLz//Pz9P/19fX/9fX1//X19f/19fX/9PT1//T0 + 9f/09PT/8/P0//Pz9P/z8/P/8vLz//X19v8nJycWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcn + KBAsLCwXLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XLS0tFy0t + LRctLS0XLS0tFy0tLRctLS0XLS0tFy0tLRctLS0XKSkpFDY2NgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + ///gAA//4AAD/+AAAf/gAAD/4AAAf+AAAD/gAAAf4AAAD+AAAA/gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB/AA + AAf/////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTA2lpaYJ+fn+Zfn5/mX9/f5l/f3+Zf39/mX9/ + f5l+fn+Zfn5+mXx8fJl5eXmZW1tbdB0dHQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd319fb+9fX2/vX19v719fb+9fX2/vb29v729vb+9PT1/vHx8v7r6+z+4eHi/o6O + j7UiIiIPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt319fb/9vb2/vb2 + 9//29vf/9vb3/vf39//29vf/9vb3//Pz9P7u7u//5+fn/tra2/+enp++JSUlEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAFhYWBcnJyt3z8/T/9fX1/vb29//39/j/8fHy/tnZ2v/V1db/1tbW/9TU + 1P7Q0NH/ysrL/sDAwP/v7/D/pKSlxiUlJRYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrK + yt3z8/P+8/P0/vb29v739/f+8fHx/tzc3P7a2tr+3d3d/tvb3P7Z2dn+09PU/sjIyf74+Pj+8PDw/qOj + pMkiIiIXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWBcrKyt3w8PD/8PDw/vX19f/39/f/7+/v/t7e + 3v/d3d3/39/f/97e3v7c3Nz/2NjY/tLS0v/i4uL/19fX/tfX1/+YmJnFIiIiEgAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWBcnJyd3t7e3/7u7u/vLy8v/09PT/6+vr/t/f3//d3d3/3Nzc/97e3v7d3d3/29vb/tjY + 2P/S0tL/ycnJ/tHR0f/Y2Nj/jY2NtBwcHAQAAAAAAAAAAAAAAAAAAAAAFhYWBcPDw93k5OX+4+Pk/ujo + 6f7o6en+3t7f/tXW1v7P0ND+x8jI/srKy/7MzMz+0NDQ/s7Oz/7Kysr+2NjZ/tvb2/7p6er+5ubm/Rwc + HBEAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3h4uT/4OHj/ubo6f/o6er/3N7f/tTW1//O0NL/yszO/83P + 0P7S0tP/2NjZ/tfX2P/U1NX/39/f/uHh4v/w8PH/8PDx/iEhIRMAAAAAAAAAAAAAAAAAAAAAFRYWBcLD + xN3k5ef/4+Xm/ufp6v/o6ev/3d7g/s7Q0f/CxMX/wcLE/8PFxv7Jysv/0NDQ/s/Pz//MzMz/1NTU/tra + 2//09PX/9fX2/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3e3+D/293e/ubn6f/m6On/2Nrb/tDS + 1P/Hycv/ycvN/8nLzf7R0dL/0NDR/tDQ0P/Pz8//19fX/t7e3v/39/j/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFRYWBcLDxN3h4uP+4uPk/uLj5P7j5eb+5ujp/tnb3f7Kzc7+x8rL/szP0P7P0NH+y8vL/tXV + 1f7V1dX+3t7e/vX19f74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFRYWBcLDxN3d39//2tzd/uTl + 5v/n6Or/4uTl/uHj5P/S1Nb/yMrM/8jKy/7Nz8//2tra/t/f3//d3d3/7e3t/vn5+f/4+Pj/+fn5/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFRYWBcPExN3d3t/+293e/ufp6v7l5+n+4+Xm/ubo6v7k5+j+4+Xn/uHk + 5f7o6er++vr6/vr6+v76+vr++fn5/vj4+P74+Pj++fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcPE + xd3h4uP/6uvs/unq6//g4uP/4OLj/uDi4//g4uT/4OPk/+Lk5v7q6+z/+/v7/vr6+//6+vr/+fn5/vj4 + +f/4+Pj/+fn5/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTFxd3a3Nz/19jZ/ubn6P/l5+j/2tzd/t3f + 4f/d4OH/3eDi/+Di5P7o6uv/+vr6/vr6+v/5+fn/+Pj5/vj4+P/39/f/+Pj4/iIiIhMAAAAAAAAAAAAA + AAAAAAAAFhYWBcTFxt3i5OT+3+Dh/unr7P7m6On+3+Hi/uHj5P7k5uj+5Obo/uTm6P7o6uv++fn5/vn5 + +f74+Pj+9/f4/vf39/729vb+9/f3/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcLDxN3U1Nb/y8zN/tvc + 3f/e3+D/3t/g/tvc3v/k5ef/4+Xn/+Tm5/7p6uz/9/f4/vj4+P/39/f/9vb3/vb29v/19fX/9vb2/iIi + IhMAAAAAAAAAAAAAAAAAAAAAFhYWBcDBwd3R0tP/zMzN/szNzf/Q0NH/zc7P/tjZ2f/W19j/5+jp/+vs + 7f7x8vP/9vb3/vb29//19fb/9fX1/vT09f/z8/T/9fX1/iIiIhMAAAAAAAAAAAAAAAAAAAAAFhYWBcTE + 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 + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.vb new file mode 100644 index 0000000..561ad39 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabe.vb @@ -0,0 +1,668 @@ +Public Class frmVorgabe + +#Region "Deklarationen" + Dim sec As New Utils.MySecurity + Dim msg As New Utils.MyMessage + Dim FormReadonly As Boolean = False + Dim FormDataChanged As Boolean = False + Private Anzeige As Boolean = False + + Dim Vorgabe As New clsVorgabe + Dim VorgabeTree As New clsVorgabeTree + Dim VorgabeDefinition As New clsVorgabeDefinition + Dim OnGetData As Boolean + + Dim Pruefplannr As Integer = 0 + + +#End Region + + +#Region "Closing / Check_Changes" + ''' + ''' Schliessen des Formulars + ''' + ''' + ''' + ''' + Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Me.FormReadonly = True + If Me.FormReadonly = True Then Exit Sub + If Check_Changes() = False Then + e.Cancel = True + Else + Vorgabe.dispose() + Me.Dispose() + End If + End Sub + + ''' + ''' Prüfung, ob Datenänderungen vorgenommen wurden. + ''' + ''' + Private Function Check_Changes() As Boolean + If Me.FormReadonly Then + Return True + Exit Function + End If + Dim msgres As MsgBoxResult + If Me.FormDataChanged Then + msgres = msg.Show_MessageYesNoCancel(3) + Select Case msgres + Case MsgBoxResult.Yes + Return True + Case MsgBoxResult.Cancel + Return False + Case MsgBoxResult.No + Me.FormDataChanged = False + Return True + End Select + Else + Return True + End If + End Function + +#End Region + +#Region "Eventhandler ChangeEreignisse" + ''' + ''' Allg Eventhandler für Chanage-Ereignise festlegen + ''' + ''' + ''' + Private Sub AddChanges(ByVal Container As Control) + Dim l As New List(Of Control) + Me.GetControl(Me, "*", l) + Dim evh As EventHandler = AddressOf ChangesMade + For Each c As Control In l + If TypeOf c Is TextBox Then + Dim ctl As TextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is MaskedTextBox Then + Dim ctl As MaskedTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is ComboBox Then + Dim ctl As ComboBox = c + AddHandler ctl.SelectedValueChanged, evh + End If + If TypeOf c Is RichTextBox Then + Dim ctl As RichTextBox = c + AddHandler ctl.TextChanged, evh + End If + If TypeOf c Is CheckBox Then + If c.Name <> "cboxNurAktive" Then + Dim ctl As CheckBox = c + AddHandler ctl.CheckedChanged, evh + End If + End If + If TypeOf c Is CheckedListBox Then + Dim ctl As CheckedListBox = c + AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange + End If + Next + End Sub + ''' + ''' Envent-Handler für Change-Ereignisse + ''' + ''' + ''' + ''' + Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) + Me.FormDataChanged = True + Dim objtype As System.Type = sender.GetType + If objtype.Name = "MaskedTextBox" Then + Dim o As MaskedTextBox = sender + If o.Text = "01.01.1900" Then o.Text = " . . " + End If + End Sub + Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) + Me.FormDataChanged = True + End Sub + + + ''' + ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlüssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + +#Region "Formular" + + Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.GueltigImages + Me.TreeVorgabe.ImageList = Me.ImageList1 + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + + Sub New(ByVal Pruefplannr As Integer, Optional from_Massnahme As Boolean = False) + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + Me.ImageList1 = Globals.GueltigImages + Me.Pruefplannr = Pruefplannr + Me.VorgabeTree.Pruefplannr = Me.Pruefplannr + Me.VorgabeTree.Tree_From_Pruefplan = True + If from_Massnahme = True Then + Me.VorgabeTree.Tree_from_Massnahmeplan = True + Me.VorgabeTree.Tree_From_Pruefplan = False + End If + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + + End Sub + Private Sub frmVorgabe_Load(sender As Object, e As EventArgs) Handles MyBase.Load + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + VorgabeTree.Refresh_Filter(Me.tsCbxFilter) + Me.TreeVorgabe.SelectedNode = Me.TreeVorgabe.Nodes(0) + AddChanges(Me) + sec.Set_Form_Security(Me) + If Me.ToolStripStruktur.Visible = False Then + Me.DokumenteAllgemein.Show_Toolbar = False + ' Me.DokumenteAllgemein.Set_ShowToolbar() + Me.DokumenteDefinition.Show_Toolbar = False + ' Me.DokumenteDefinition.Set_ShowToolbar() + End If + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + +#End Region + +#Region "Tree" + Private Sub TreeVorgabe_AfterNodeSelect(sender As Object, e As DevComponents.AdvTree.AdvTreeNodeEventArgs) Handles TreeVorgabe.AfterNodeSelect + Me.OnGetData = True + Try + VorgabeTree.Get_Eintraege(Me.C1Daten, Me.TreeVorgabe.SelectedNode.Tag) + If Me.C1Daten.Splits(0).DisplayColumns.Count < 1 Then Me.ToolStripDefinition.Enabled = False Else Me.ToolStripDefinition.Enabled = True + Dim bmp0 As New Bitmap(Me.ImageList1.Images(0)) + Dim bmp1 As New Bitmap(Me.ImageList1.Images(1)) + Dim bmp2 As New Bitmap(Me.ImageList1.Images(2)) + Dim bmp3 As New Bitmap(Me.ImageList1.Images(3)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + v0.DisplayValue = bmp0 + v0.Value = 0 + + v1.DisplayValue = bmp1 + v1.Value = 1 + + v2.DisplayValue = bmp2 + v2.Value = 2 + + v3.DisplayValue = bmp3 + v3.Value = 3 + + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v0) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v1) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v2) + Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v3) + Me.C1Daten.Columns("Icon").ValueItems.Translate = True + Me.C1Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + Catch + End Try + Refresh_Details() + Me.OnGetData = False + End Sub + + + Private Sub NeuerEintragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuerEintragToolStripMenuItem.Click + Dim f As New frmNeuerVorgabeEintrag + f.SelectedNode = Me.TreeVorgabe.SelectedNode + f.Tree = Me.TreeVorgabe + f.Key = -1 + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + If Me.tsCbxFilter.Text <> "" Then + Me.tsCbxFilter_SelectedIndexChanged(sender, e) + End If + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindNode(Me.TreeVorgabe.Nodes, f.Key, f.Key.ToString) + End If + End Sub + + + Private Sub EintragBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem.Click + Dim f As New frmNeuerVorgabeEintrag + f.SelectedNode = Me.TreeVorgabe.SelectedNode + f.Tree = Me.TreeVorgabe + f.Key = Me.TreeVorgabe.SelectedNode.Tag + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + If Me.tsCbxFilter.Text <> "" Then + Me.tsCbxFilter_SelectedIndexChanged(sender, e) + End If + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindNode(Me.TreeVorgabe.Nodes, f.Key, f.Key.ToString) + End If + End Sub + + Private Sub NeueVorgabeErstellenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueVorgabeErstellenToolStripMenuItem.Click + Dim s As String + s = InputBox("Titel der neuen Vorgabe", "Titel der neuen Vorgabe") + If s <> "" Then + Vorgabe.Add_New() + Dim key As Integer = Vorgabe.iVorgabeID.Value + Vorgabe.iParentID = New SqlTypes.SqlInt32(CType(0, Int32)) + Vorgabe.sKapitelNr = New SqlTypes.SqlString(CType("", String)) + Vorgabe.sKapitel = New SqlTypes.SqlString(CType(s, String)) + Vorgabe.Save_Data() + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + VorgabeTree.Refresh_Filter(Me.tsCbxFilter) + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindNode(Me.TreeVorgabe.Nodes, key, key.ToString) + End If + End Sub + + Private Sub tsCbxFilter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tsCbxFilter.SelectedIndexChanged + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + If tsCbxFilter.Text = "-- Alle --" Then Exit Sub + Try + For Each n As DevComponents.AdvTree.Node In Me.TreeVorgabe.Nodes + If Trim(n.Text) <> Trim(tsCbxFilter.Text) Then + n.Remove() + End If + Next + Catch + End Try + + End Sub + + Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click + Me.tstxtSuche.Text = "" + Me.VorgabeTree.Init_Search() + End Sub + + Private Sub TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click + Me.VorgabeTree.Init_Search() + Me.TreeVorgabe.SelectedNode = VorgabeTree.SearchNode(Me.TreeVorgabe, Trim(Me.tstxtSuche.Text)) + Try + Me.TreeVorgabe.SelectedNode.EnsureVisible() + Catch + MsgBox("Der Suchbegriff wurde nicht gefunden.", vbInformation) + End Try + + + End Sub + + Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindFirst(Me.TreeVorgabe) + End Sub + + Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindPrevNode(Me.TreeVorgabe) + End Sub + + Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindNextNode(Me.TreeVorgabe) + End Sub + + Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click + Me.TreeVorgabe.SelectedNode = VorgabeTree.FindLastNode(Me.TreeVorgabe) + End Sub + + Private Sub tstxtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles tstxtSuche.KeyDown + If e.KeyCode = Keys.Enter Then TSBtnSuche_Click(sender, e) + End Sub + + Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click + Try + If C1Daten.Splits(0).Rows.Count > 0 Then + If MsgBox("Struktureintragwirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Me.Vorgabe.Get_Data(Me.C1Daten.Columns("Vorgabeid").Value) + Dim selnode As DevComponents.AdvTree.Node + selnode = Me.TreeVorgabe.SelectedNode.Parent + Me.Vorgabe.Get_Data(Me.TreeVorgabe.SelectedNode.Tag) + Me.Vorgabe.Delete_Data() + + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + Try + Me.TreeVorgabe.SelectedNode = selnode + Catch ex As Exception + Me.TreeVorgabe.SelectedNode = Me.TreeVorgabe.Nodes(0) + End Try + + End If + End If + + Catch ex As Exception + + End Try + End Sub + +#End Region + +#Region "C1Daten" + Private Sub C1Daten_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1Daten.RowColChange + If Me.OnGetData Then Exit Sub + Refresh_Details() + Refresh_C2Daten() + End Sub + + Sub Refresh_Details() + 'Me.DokumenteAllgemein.Show_Toolbar = True + Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString + Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteAllgemein.Doktype = 1 + Me.DokumenteAllgemein.ThemaNr = C1Daten.Columns("vorgabeid").Value + Me.DokumenteAllgemein.Refresh() + Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + + Refresh_C2Daten() + + + End Sub + + Private Sub C1Daten_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Daten.MouseDown + Me.C1Daten.Bookmark = Me.C1Daten.RowContaining(e.Y) + End Sub + + + Private Sub TsBtnAddNewStruktur_Click(sender As Object, e As EventArgs) Handles TsBtnAddNewStruktur.Click + NeuerEintragToolStripMenuItem_Click(sender, e) + End Sub + + Private Sub TsBtnEditStruktur_Click(sender As Object, e As EventArgs) Handles TsBtnEditStruktur.Click + Try + Dim bookamark + Dim selnode As DevComponents.AdvTree.Node + selnode = Me.TreeVorgabe.SelectedNode + bookamark = C1Daten.Bookmark + Dim f As New frmNeuerVorgabeEintrag + f.SelectedNode = Me.TreeVorgabe.SelectedNode + f.Parentnode = Me.TreeVorgabe.SelectedNode.Parent + f.Tree = Me.TreeVorgabe + f.Key = Me.C1Daten.Columns("Vorgabeid").Value + If Me.EintragBearbeitenToolStripMenuItem.Enabled = False Then + f.btnSave.Enabled = False + f.TreeVorgabe.AllowDrop = False + End If + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + If Me.tsCbxFilter.Text <> "" Then + Me.tsCbxFilter_SelectedIndexChanged(sender, e) + End If + Me.TreeVorgabe.SelectedNode = selnode + Me.C1Daten.Bookmark = bookamark + End If + Catch + End Try + + End Sub + + Private Sub TsBtnDeleteStruktur_Click(sender As Object, e As EventArgs) Handles TsBtnDeleteStruktur.Click + + Try + If C1Daten.Splits(0).Rows.Count > 0 Then + If MsgBox("Struktureintragwirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Me.Vorgabe.Get_Data(Me.C1Daten.Columns("Vorgabeid").Value) + Dim selnode As DevComponents.AdvTree.Node + selnode = Me.TreeVorgabe.SelectedNode + Me.Vorgabe.Get_Data(Me.C1Daten.Columns("Vorgabeid").Value) + Me.Vorgabe.Delete_Data() + + Me.TreeVorgabe.Nodes.Clear() + VorgabeTree.Load_Treeview(Me.TreeVorgabe) + Try + Me.TreeVorgabe.SelectedNode = selnode + Catch ex As Exception + Me.TreeVorgabe.SelectedNode = Me.TreeVorgabe.Nodes(0) + End Try + + End If + End If + + Catch ex As Exception + + End Try + + End Sub + + Private Sub ToolStripMenuVorgabeNeu_Click(sender As Object, e As EventArgs) Handles ToolStripMenuVorgabeNeu.Click + TsBtnAddNewStruktur_Click(sender, e) + End Sub + + Private Sub ToolStripMenuVorgabeEdit_Click(sender As Object, e As EventArgs) Handles ToolStripMenuVorgabeEdit.Click + TsBtnEditStruktur_Click(sender, e) + End Sub + + Private Sub ToolStripMenuVorgabeDelete_Click(sender As Object, e As EventArgs) Handles ToolStripMenuVorgabeDelete.Click + TsBtnDeleteStruktur_Click(sender, e) + End Sub + + Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Try + ToolStripMenuVorgabeEdit_Click(sender, e) + Catch + End Try + + End Sub + +#End Region + +#Region "C2Daten" + Private Sub C2Daten_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C2Daten.RowColChange + If Me.OnGetData Then Exit Sub + Refresh_DetailsDefinition() + End Sub + + Sub Refresh_C2Daten() + VorgabeDefinition.Get_Eintraege(Me.C2Daten, Me.C1Daten.Columns("vorgabeid").Value) + Dim bmp0 As New Bitmap(Me.ImageList1.Images(0)) + Dim bmp1 As New Bitmap(Me.ImageList1.Images(1)) + Dim bmp2 As New Bitmap(Me.ImageList1.Images(2)) + Dim bmp3 As New Bitmap(Me.ImageList1.Images(3)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem() + + v0.DisplayValue = bmp0 + v0.Value = 0 + + v1.DisplayValue = bmp1 + v1.Value = 1 + + v2.DisplayValue = bmp2 + v2.Value = 2 + + v3.DisplayValue = bmp3 + v3.Value = 3 + + Me.C2Daten.Columns("Icon").ValueItems.Values.Add(v0) + Me.C2Daten.Columns("Icon").ValueItems.Values.Add(v1) + Me.C2Daten.Columns("Icon").ValueItems.Values.Add(v2) + Me.C2Daten.Columns("Icon").ValueItems.Values.Add(v3) + Me.C2Daten.Columns("Icon").ValueItems.Translate = True + Me.C2Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + Refresh_DetailsDefinition() + End Sub + + + Private Sub C2Daten_MouseDown(sender As Object, e As MouseEventArgs) Handles C2Daten.MouseDown + Me.C2Daten.Bookmark = Me.C2Daten.RowContaining(e.Y) + End Sub + + Sub Refresh_DetailsDefinition() + Try + 'Me.DokumenteDefinition.Show_Toolbar = True + Me.DokumenteDefinition.ConnectionString = Globals.sConnectionString + Me.DokumenteDefinition.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + Me.DokumenteDefinition.Doktype = 2 + Try + Me.DokumenteDefinition.ThemaNr = C2Daten.Columns("VorgabeDefinitionNr").Value + Catch + Me.DokumenteDefinition.ThemaNr = -1 + End Try + + Me.DokumenteDefinition.Refresh() + Me.DokumenteDefinition.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + Catch + End Try + + End Sub + + Private Sub TSBtnAddNewDefinition_Click(sender As Object, e As EventArgs) Handles TSBtnAddNewDefinition.Click + Try + Dim f As New frmVorgabeDefinition + f.Key = -1 + f.VorgabeID = Me.C1Daten.Columns("VorgabeID").Value + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then Refresh_C2Daten() + Catch + End Try + + End Sub + + Private Sub TsBtnEditDefinition_Click(sender As Object, e As EventArgs) Handles TsBtnEditDefinition.Click + Try + Dim f As New frmVorgabeDefinition + f.Key = Me.C2Daten.Columns("VorgabeDefinitionNr").Value + f.VorgabeID = Me.C1Daten.Columns("VorgabeID").Value + If Me.EintragBearbeitenToolStripMenuItem.Enabled = False Then + f.btnSave.Enabled = False + + End If + f.ShowDialog() + If f.DialogResult = DialogResult.OK Then Refresh_C2Daten() + Catch + End Try + + End Sub + + Private Sub TsBtnDeleteDefinition_Click(sender As Object, e As EventArgs) Handles TsBtnDeleteDefinition.Click + Try + If C2Daten.Splits(0).Rows.Count > 0 Then + If MsgBox("Definition wirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + Dim vorgabedefinition As New clsVorgabeDefinition + vorgabedefinition.Get_Data(Me.C2Daten.Columns("VorgabeDefinitionNr").Value) + vorgabedefinition.Delete_Data() + Me.Refresh_C2Daten() + vorgabedefinition = Nothing + End If + End If + + Catch ex As Exception + + End Try + End Sub + + Private Sub NeuerEintragToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles NeuerEintragToolStripMenuItem1.Click + Me.TSBtnAddNewDefinition_Click(sender, e) + End Sub + + Private Sub EintragBearbeitenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem1.Click + TsBtnEditDefinition_Click(sender, e) + End Sub + + Private Sub EintragLöschenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem1.Click + TsBtnDeleteDefinition_Click(sender, e) + End Sub + + Private Sub C2Daten_DoubleClick(sender As Object, e As EventArgs) Handles C2Daten.DoubleClick + Try + TsBtnEditDefinition_Click(sender, e) + Catch ex As Exception + + End Try + End Sub + + + + +#End Region + +#Region "Toolbar Form" + Private Sub tsBtnSearchStruktur_Definition_Click(sender As Object, e As EventArgs) Handles tsBtnSearchStruktur_Definition.Click + VorgabeTree.search_Eintraege(Me.TreeVorgabe, Me.tsTxtSearchStruktur_Definition.Text) + End Sub + + Private Sub tsTxtSearchStruktur_Definition_KeyDown(sender As Object, e As KeyEventArgs) Handles tsTxtSearchStruktur_Definition.KeyDown + If e.KeyCode = Keys.Enter Then tsBtnSearchStruktur_Definition_Click(sender, e) + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + tsTxtSearchStruktur_Definition.Text = "" + tsBtnSearchStruktur_Definition_Click(sender, e) + End Sub + + Private Sub TreeVorgabe_Click(sender As Object, e As EventArgs) Handles TreeVorgabe.Click + + End Sub + + Private Sub EintragAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragAnzeigenToolStripMenuItem.Click + TsBtnEditStruktur_Click(sender, e) + End Sub + + Private Sub EintragAnzeigenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles EintragAnzeigenToolStripMenuItem1.Click + TsBtnEditDefinition_Click(sender, e) + End Sub + + + + +#End Region + +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.Designer.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.Designer.vb new file mode 100644 index 0000000..2f1be8d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.Designer.vb @@ -0,0 +1,225 @@ + _ +Partial Class frmVorgabeDefinition + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmVorgabeDefinition)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.lblDefinitioin = New System.Windows.Forms.Label() + Me.lblBemerkung = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.dtGueltigbis = New System.Windows.Forms.DateTimePicker() + Me.txtDefinition = New System.Windows.Forms.TextBox() + Me.txtBemerkung = New System.Windows.Forms.TextBox() + Me.btnAbbruch = New System.Windows.Forms.Button() + Me.btnSave = New System.Windows.Forms.Button() + Me.cbaktiv = New System.Windows.Forms.CheckBox() + Me.lblAktiv = New System.Windows.Forms.Label() + Me.lblBezeichnung = New System.Windows.Forms.Label() + Me.txtBezeichnung = New DevComponents.DotNetBar.Controls.TextBoxX() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(709, 25) + Me.ToolStrip1.TabIndex = 7 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "ToolStripButton1" + Me.ToolStripButton1.Visible = False + ' + 'lblDefinitioin + ' + Me.lblDefinitioin.AutoSize = True + Me.lblDefinitioin.Location = New System.Drawing.Point(13, 71) + Me.lblDefinitioin.Name = "lblDefinitioin" + Me.lblDefinitioin.Size = New System.Drawing.Size(51, 13) + Me.lblDefinitioin.TabIndex = 18 + Me.lblDefinitioin.Text = "Definition" + ' + 'lblBemerkung + ' + Me.lblBemerkung.AutoSize = True + Me.lblBemerkung.Location = New System.Drawing.Point(13, 176) + Me.lblBemerkung.Name = "lblBemerkung" + Me.lblBemerkung.Size = New System.Drawing.Size(61, 13) + Me.lblBemerkung.TabIndex = 19 + Me.lblBemerkung.Text = "Bemerkung" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(14, 277) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(50, 13) + Me.Label1.TabIndex = 21 + Me.Label1.Text = "Gültig bis" + ' + 'dtGueltigbis + ' + Me.dtGueltigbis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.dtGueltigbis.Location = New System.Drawing.Point(83, 277) + Me.dtGueltigbis.Name = "dtGueltigbis" + Me.dtGueltigbis.Size = New System.Drawing.Size(100, 20) + Me.dtGueltigbis.TabIndex = 3 + ' + 'txtDefinition + ' + Me.txtDefinition.Location = New System.Drawing.Point(83, 68) + Me.txtDefinition.Multiline = True + Me.txtDefinition.Name = "txtDefinition" + Me.txtDefinition.Size = New System.Drawing.Size(605, 97) + Me.txtDefinition.TabIndex = 1 + ' + 'txtBemerkung + ' + Me.txtBemerkung.Location = New System.Drawing.Point(83, 176) + Me.txtBemerkung.Multiline = True + Me.txtBemerkung.Name = "txtBemerkung" + Me.txtBemerkung.Size = New System.Drawing.Size(605, 97) + Me.txtBemerkung.TabIndex = 2 + ' + 'btnAbbruch + ' + Me.btnAbbruch.Location = New System.Drawing.Point(616, 335) + Me.btnAbbruch.Name = "btnAbbruch" + Me.btnAbbruch.Size = New System.Drawing.Size(75, 23) + Me.btnAbbruch.TabIndex = 6 + Me.btnAbbruch.Text = "Abbruch" + Me.btnAbbruch.UseVisualStyleBackColor = True + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(16, 335) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 5 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'cbaktiv + ' + Me.cbaktiv.AutoSize = True + Me.cbaktiv.Location = New System.Drawing.Point(83, 303) + Me.cbaktiv.Name = "cbaktiv" + Me.cbaktiv.Size = New System.Drawing.Size(15, 14) + Me.cbaktiv.TabIndex = 4 + Me.cbaktiv.UseVisualStyleBackColor = True + ' + 'lblAktiv + ' + Me.lblAktiv.AutoSize = True + Me.lblAktiv.Location = New System.Drawing.Point(13, 304) + Me.lblAktiv.Name = "lblAktiv" + Me.lblAktiv.Size = New System.Drawing.Size(31, 13) + Me.lblAktiv.TabIndex = 27 + Me.lblAktiv.Text = "Aktiv" + ' + 'lblBezeichnung + ' + Me.lblBezeichnung.AutoSize = True + Me.lblBezeichnung.Location = New System.Drawing.Point(14, 44) + Me.lblBezeichnung.Name = "lblBezeichnung" + Me.lblBezeichnung.Size = New System.Drawing.Size(69, 13) + Me.lblBezeichnung.TabIndex = 28 + Me.lblBezeichnung.Text = "Bezeichnung" + ' + 'txtBezeichnung + ' + ' + ' + ' + Me.txtBezeichnung.Border.Class = "TextBoxBorder" + Me.txtBezeichnung.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square + Me.txtBezeichnung.Location = New System.Drawing.Point(83, 42) + Me.txtBezeichnung.Name = "txtBezeichnung" + Me.txtBezeichnung.PreventEnterBeep = True + Me.txtBezeichnung.Size = New System.Drawing.Size(591, 20) + Me.txtBezeichnung.TabIndex = 0 + ' + 'frmVorgabeDefinition + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(709, 364) + Me.Controls.Add(Me.txtBezeichnung) + Me.Controls.Add(Me.lblBezeichnung) + Me.Controls.Add(Me.lblAktiv) + Me.Controls.Add(Me.cbaktiv) + Me.Controls.Add(Me.btnAbbruch) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.txtBemerkung) + Me.Controls.Add(Me.txtDefinition) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.dtGueltigbis) + Me.Controls.Add(Me.lblBemerkung) + Me.Controls.Add(Me.lblDefinitioin) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmVorgabeDefinition" + Me.Text = "Vorgabe-Definition" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents TSBtnQuit As ToolStripButton + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents lblDefinitioin As Label + Friend WithEvents lblBemerkung As Label + Friend WithEvents Label1 As Label + Friend WithEvents dtGueltigbis As DateTimePicker + Friend WithEvents txtDefinition As TextBox + Friend WithEvents txtBemerkung As TextBox + Friend WithEvents btnAbbruch As Button + Friend WithEvents btnSave As Button + Friend WithEvents cbaktiv As CheckBox + Friend WithEvents lblAktiv As Label + Friend WithEvents lblBezeichnung As Label + Friend WithEvents txtBezeichnung As DevComponents.DotNetBar.Controls.TextBoxX +End Class diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.resx b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.resx new file mode 100644 index 0000000..0864f3d --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.resx @@ -0,0 +1,3682 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+gyumpgkYW4zW0e + z87cXG2ec7addOXMsOgNsrLsRdPypdCKHKZSUVRqZZhllqKhopSFVCuyi/CiiCKILgo+HV9Y7LJ+8IHn + 98Dz4fn+nkf8T315Mxicnp741bY3g4Wt+bpWntPVUZFD17FZpCSdRyWuH7LzOL6Tz1O9fJq8y/e3A1zZ + b00VdJbLrF5rZ026jbUb/pKWbmWVZT0/Er0kug4z3uTna+IJ1w46UgUdZTIZVic2u4Td4UpizXKStt7G + 67YI4xd1Rs8F+fzyPjePZKcKHA0CqWoR2XYfkktBynYjSTIul8wGq8RUq8HohRBPG4PMjHfORV04KoTt + pCAx047TlORkaridARTJjyJ7kd0eMh1uXsTDDDfpDDTkMz10lXuVyrzAViWY/NBM64Ago1JgrxU4zwrk + sqV4lSCeXD9ZOT4mLmoMnNH50bOcV30t3K/2Ilw1gpH3lcSHBc1D5vpdIWPvIzz7GJ6TbPSEycsLInkC + jJ1T6a/X+Nm7gpf3muir9c8LHiX2EJ8QxMcFLS8ErVOC598iOM4IgnmFbAqEcOdpDDcG6KsL0rzHybPO + kzxpCMxFsNjNCN2vttCeEGTORjglcNQLcg8tQ1ejqLqBL2gw2ODnwemN3KpQGLlazlCjmhyiJata0PXO + h7NOYAR2YWglGOEiDCNKxCggEIrSX+ulp8ZHd5WXwUu7GT0fSnlGi9O8slKzmKhRSrSwmMJo0RwFJtrm + GA9rPHRX5nL7uIfephgTzZEUgWgrWcfW4hKKYzso3rY9ScykoKiUB9Uyd04odBxzc+d0iMmWAoSu6+ha + CE0Lo6qzmGtVM3s1iWr2m/J19sUCXC5XzB8oc+NoLlPtW+aH+K+U6Wn7Kw6s/P3mciw1wj/UEpPVQgjL + HzZtwlS2NU9YAAAAAElFTkSuQmCC + + + + + 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 + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.vb b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.vb new file mode 100644 index 0000000..b9ea756 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/Vorgabe/frmVorgabeDefinition.vb @@ -0,0 +1,64 @@ +Public Class frmVorgabeDefinition + + Dim Vorgabedefinition As New clsVorgabeDefinition + + Dim mKey As Integer + Property Key As Integer + Get + Return mKey + End Get + Set(value As Integer) + mKey = value + End Set + End Property + + Dim m_VorgabeID As Integer + Property VorgabeID As Integer + Get + Return m_VorgabeID + End Get + Set(value As Integer) + m_VorgabeID = value + End Set + End Property + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub btnAbbruch_Click(sender As Object, e As EventArgs) Handles btnAbbruch.Click + Me.DialogResult = DialogResult.Abort + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + Me.DialogResult = DialogResult.OK + If Me.Key = -1 Then + Vorgabedefinition.Add_New() + Me.Key = Vorgabedefinition.iVorgabeDefinitionNr + Else + Vorgabedefinition.Get_Data(Me.Key) + End If + Vorgabedefinition.sDefinition = New SqlTypes.SqlString(CType(Me.txtDefinition.Text, String)) + Vorgabedefinition.sBemerkungen = New SqlTypes.SqlString(CType(Me.txtBemerkung.Text, String)) + Vorgabedefinition.daGueltig_bis = New SqlTypes.SqlDateTime(CType(Me.dtGueltigbis.Value, DateTime)) + Vorgabedefinition.iVorgabeNr = New SqlTypes.SqlInt32(CType(Me.VorgabeID, Int16)) + Vorgabedefinition.bAktiv = New SqlTypes.SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) + Vorgabedefinition.sBezeichnung = New SqlTypes.SqlString(CType(Me.txtBezeichnung.Text, String)) + Vorgabedefinition.Save_Data() + Me.Close() + End Sub + + Private Sub frmVorgabeDefinition_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If Me.Key > 0 Then + Vorgabedefinition.Get_Data(Me.Key) + Me.txtDefinition.Text = Vorgabedefinition.sDefinition.Value.ToString + Me.txtBemerkung.Text = Vorgabedefinition.sBemerkungen.Value.ToString + Me.dtGueltigbis.Value = Vorgabedefinition.daGueltig_bis.Value + Me.cbaktiv.Checked = Vorgabedefinition.bAktiv.Value = True + Me.txtBezeichnung.Text = Vorgabedefinition.sBezeichnung.Value.ToString + Else + Me.cbaktiv.Checked = True + Me.dtGueltigbis.Value = "31.12.2099" + End If + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg new file mode 100644 index 0000000..171c016 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg @@ -0,0 +1 @@ +¹µÈ¦rȽ¹¿¸ª‰¿­Çx…½³»É·¥¹u¨­À¦¾·¼‘•¸ÅºÁ·ºº³À™¬¿¼‡„†v‚€vˆÅª¾¿®Å¼uǹ¨ÇÇ·¸Æu®º²´Ž¶ÀǪÌ½¶¸È¹­À®Á¶u½¸‚¥£½¶¨·±¹r»¾Î¹‚†…‡zˆÊ¸±¾e»¬’ǵ€Â¶Á·ÄÄ·°‰oŰʆ€ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg_sql2019 b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg_sql2019 new file mode 100644 index 0000000..ed850e5 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg_sql2019 @@ -0,0 +1 @@ +¹µÈ¦rȽ¹¿¸ª‰¿¶¾z……€»Ã·¸¶¶±l¯¦Æ©Áû‚“ÈÁ©ÀȲ±º¹Ÿ¯Âȏµ·ÇÁ­ÀÉe¿±¨Çº¾ÈÍe»Ã´³Š›¦¸¿ª¿ÄÆ¿¸Æ¶Â­¼Ãeµ°‚¥ªÄ¦µÀ³¸mȮƱ‚†xŽŠºÅºÀd¶¹‚¿­€Â©ÈÇ˴Ĺ‹·µÊo}€ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe new file mode 100644 index 0000000..d999390 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe.config b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe.config new file mode 100644 index 0000000..b3289b4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb new file mode 100644 index 0000000..5f143fe Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe new file mode 100644 index 0000000..681ab77 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe.config b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe.config new file mode 100644 index 0000000..b3289b4 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/SW/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.vshost.exe.manifest b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe.manifest similarity index 100% rename from SW/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.vshost.exe.manifest rename to SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.vshost.exe.manifest diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.xml b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.xml new file mode 100644 index 0000000..96fff3a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.xml @@ -0,0 +1,3195 @@ + + + + +AssessmentMgmt + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'Application'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
  • sVersion. May be SqlString.Null
  • +
  • bShowlogin. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sTmp_filepath. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
  • sVersion. May be SqlString.Null
  • +
  • bShowlogin. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sTmp_filepath. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iApplikationsnr
  • +
  • sVersion
  • +
  • bShowlogin
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • sTmp_filepath
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'funktionsgruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sZugehoerigkeit. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sZugehoerigkeit. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iFunktionsgruppenr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • sZugehoerigkeit
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'funktionsgruppe_rolle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr
  • +
  • iRollenr
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'meldungstexte'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method using PK field 'meldungstextnr'. This method will + delete one or more rows from the database, based on the Primary Key field 'meldungstextnr'. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method using PK field 'sprache'. This method will + delete one or more rows from the database, based on the Primary Key field 'sprache'. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt
  • +
  • sBeschreibung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'mitarbeiter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
  • sVorname. May be SqlString.Null
  • +
  • sName. May be SqlString.Null
  • +
  • sTgnummer. May be SqlString.Null
  • +
  • sEmail. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
  • sVorname. May be SqlString.Null
  • +
  • sName. May be SqlString.Null
  • +
  • sTgnummer. May be SqlString.Null
  • +
  • sEmail. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiternr
  • +
  • sVorname
  • +
  • sName
  • +
  • sTgnummer
  • +
  • sEmail
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'mitarbeiter_funktionsgruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr
  • +
  • iFunktionsgruppenr
  • +
  • bAktiv
  • +
  • iMandantnr
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'rolle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bSysadminrolle. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bSysadminrolle. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRollenr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • bSysadminrolle
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Rolle_SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iSecurityobjectnr. May be SqlInt32.Null
  • +
  • bReadonly. May be SqlBoolean.Null
  • +
  • bInvisible. May be SqlBoolean.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iSecurityobjectnr. May be SqlInt32.Null
  • +
  • bReadonly. May be SqlBoolean.Null
  • +
  • bInvisible. May be SqlBoolean.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRolle_securityobjectnr
  • +
  • iRollenr
  • +
  • iSecurityobjectnr
  • +
  • bReadonly
  • +
  • bInvisible
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'rolle_sysadminfunktion'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iSysadminfnktnr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandant. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iSysadminfnktnr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandant. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iSysadminfnktnr
  • +
  • iRollenr
  • +
  • iMandant
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSecurityObjectNr
  • +
  • sSecurityForm
  • +
  • sSecurityObjectType
  • +
  • sSecurityObject
  • +
  • sSecurityObjectItem
  • +
  • sSecurityObjectDescriotion
  • +
  • iLevel
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'spalten'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iEintragnr
  • +
  • sTabelle
  • +
  • sTabellenspalte
  • +
  • sSpalte
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite
  • +
  • iReihenfolge
  • +
  • sTiptext
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
  • sNumberFormat
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'sysadminfunktion'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • iParentID. May be SqlInt32.Null
  • +
  • iSort. May be SqlInt32.Null
  • +
  • iImageIndex. May be SqlInt32.Null
  • +
  • iImageIndexOpen. May be SqlInt32.Null
  • +
  • iFtop. May be SqlInt32.Null
  • +
  • iFleft. May be SqlInt32.Null
  • +
  • iFwidth. May be SqlInt32.Null
  • +
  • iFheight. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sDomaintable. May be SqlString.Null
  • +
  • sKeyFields. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • iParentID. May be SqlInt32.Null
  • +
  • iSort. May be SqlInt32.Null
  • +
  • iImageIndex. May be SqlInt32.Null
  • +
  • iImageIndexOpen. May be SqlInt32.Null
  • +
  • iFtop. May be SqlInt32.Null
  • +
  • iFleft. May be SqlInt32.Null
  • +
  • iFwidth. May be SqlInt32.Null
  • +
  • iFheight. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sDomaintable. May be SqlString.Null
  • +
  • sKeyFields. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSysadminfnktnr
  • +
  • sBezeichnung
  • +
  • iParentID
  • +
  • iSort
  • +
  • iImageIndex
  • +
  • iImageIndexOpen
  • +
  • iFtop
  • +
  • iFleft
  • +
  • iFwidth
  • +
  • iFheight
  • +
  • sBeschreibung
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • sDomaintable
  • +
  • sKeyFields
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'ToolTip'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
  • sFormularName. May be SqlString.Null
  • +
  • sControlName. May be SqlString.Null
  • +
  • sToolTip. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
  • sFormularName. May be SqlString.Null
  • +
  • sControlName. May be SqlString.Null
  • +
  • sToolTip. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iToolTipNr
  • +
  • sFormularName
  • +
  • sControlName
  • +
  • sToolTip
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Dynamische Datenbank-Verbindung aufbauen. Verwendet wird standardmässig Vertragsverwaltung.cfg. + Sollen Datenbank-Verbindungen zur Auswahl angezeigt werden, werden sämntliche Datenbank-Verbindungsdateien + mit dem Namen "Vertragsverwaltung....cfg" berücksichtigt + + + + + + Liest sämtlcihe CFG-Dateien mit dem Namen "Vertragsverwaltung...". Sind meherere Dateien vorhanden, + wird ein Auswahldialog zur Datenbank-Selektion angezeigt. + Standardmässig wird Vertragsverwaltung.cfg als CFG-Datei benutzt. + + Die CFG-Datei ist verschlüsselt und wird über die Crypto-Funktionen entschlüsselt. + + + + + + Alle Mitarbeiter inkl. vollständigem Name (Fullname) auslesen + + Datatable + + + + + Mitarbeiter mittels TGNummer auslesen + + Datatable + + + + + Security-Deklaration zum Auslesen der UserID vom Windows-User + + + + + + Windows-User auslesen + + + + + + + Form für die Datenbankauswahl + + + + + + Form für den Login. Wird nur angezeigt, sofern in der Tabelle Application Show-Login = true + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Form mit generalisiertem Domain-Table-Editor. + + + + + Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable + + + + Tabellenname übernehmen und Objekt DomainTable initialisieren + Initialisierung der Komponenten + + Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll + Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + pr_"Tablename"_SelectAll + pr_"Tablename"_Update + + + + + Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + + + + + + + + Schliessen des Formulars + + + + + + + + Ruft BeendetnToolStipMenuItem_Click auf + + + + + + + + Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + das Formular nicht gespeichert werden soll. + + + + + + + + Sichern der Daten + + + + + + + + Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlüsselwert gesetzt ist (bei neuem Datensatz) + wird dieser aus der Keytabelle ausgelesen und zugewiesen. + + + + Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig + + + + Aktualisierung der Default-Werte + + + + + + + + Anzeige allfälliger Cellen-Tips + + + + + + + + Form mit generalisiertem Domain-Table-Editor. + + + + + Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable + + + + Tabellenname übernehmen und Objekt DomainTable initialisieren + Initialisierung der Komponenten + + Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll + Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + pr_"Tablename"_SelectAll + pr_"Tablename"_Update + + + + + Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + + + + + + + + Schliessen des Formulars + + + + + + + + Ruft BeendetnToolStipMenuItem_Click auf + + + + + + + + Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + das Formular nicht gespeichert werden soll. + + + + + + + + Sichern der Daten + + + + + + + + Load des Formulars + + + + + + + + Doppelklick auf einen Eintrag: Es wird geprüft, ob in der Tabelle SysadminFunktion im Attribut DomainTable + einen Wert vorhanden ist. Sofern dies der Fall ist, wird der generelle Domain-Table-Editor aufgerufen + + + + + + + + Schliessen des Formulares + + + + + + + + Fenster schliessen + + + + + + + + Neuer Eintrag im Menu einfügen + + + + + + + + Eintrag im Menu löschen + + + + + + + + Umbenennen des aktuellen Menu-Eintrages + + + + + + + + Menu Sichern + + + + + + + + Knoten rekursiv auslesen + + + + + + + + einzelner Knoten sichern + + + + + + + + Generiert die Spaltentitel in der Tabelle Spalten aufgrund der im Formular frmSysadminTableSelector gewählten Tabelle + + + + + + + + Ruft die SP zur Spalten-Generierung auf + + + + + + + Verbindungseditor: Verbindet 2 Domain-Tables in einer dritten Tabelle. + + + + + + + Laden der linken und rechten Tabelle + + + + + + + + + + Laden sämlticher Tabellen + + + + + + + + Aktualiserung der Verbindungstabelle + + + + + + Linker Fokus-Knopf betätigt + + + + + + + + Rechter Fokus-Knopf betätigt + + + + + + + + Prüfung, ob Verbindungstabelle geändert wurde. + + + + + + Formular schliessen + + + + + + + + Formular schliessen + + + + + + + + Formular-Resize: Button Verbinden und Button Focus-Rechts neu positionieren + + + + + + + + Verbindungstabelle sichern + + + + + + + + Nach Datenmutation der unteren Tabelle mutiert_am und mutierer nachführen + + + + + + + + Doppelklick in linken Grid + + + + + + + + Linke Tabelle angeklickt + + + + + + + + Doppelklick im rechten Grid + + + + + + + + Rechte Tabelle angeklickt + + + + + + + + Die linke und rechte Domain-Table in der unteren Tabelle verbinden. + Daten sichern und erneut laden + + + + + + + + Anzeige allfälliger Cellen-Tips + + + + + + + + Tabellenname übernehmen und Daten ab DB laden + + + + + + + Daten ab Datenbank laden + + + + + + Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt + + + + + + Update-Statement dynamisch für das UpdateCommand generieren + + + + + + Insert-Statement dynamisch für das InsertCommand generieren + + + + + + Prefixt für den SP-Übergabeparameter generieren + + Aktuelle Columnt + Prefis für SP-Übergabeparameter + + + + + SQL-DB-Type für den SP-Übergabeparameter festlegen + + Aktuelle Column + SQLDBType + + + + + Feldlänge für den SP-Übergabeparemter festlegen + + Aktulle Column + Feldlänge + + + + + Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + + + + + + Dispose von Tabledata + + + + + + Load der Verbindungstabelle + + + + + + + + + Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. + + + + + + + + + + Laden des Formulars + + + + + + + + + Löschen der Dateien im Temp-Verzeichnis + + + + + + System-Initialosierung + - Applikationsdaten auslesen + - Aktueller Mitarbeiter auslesen bzw. Login-Dialog anzeigen + + + + + + Login-Fenster anzeigen und neuen User anmelden + + + + + + Daten ab Datenbank laden + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Standard-Messages in div. Formatenm + + + + + + Dataview Meldungstexte um Textelemente für die Ausgabe zu suchen + + + + + + Meldungen aus der Datenbanklesen, sofern diese noch nicht ausgelesen worden sind. Nach dem ersten Lesen werden + die Daten aus der Tabelle Meldungstexte ohne erneutem DB-Zugriff verwendet + + + + + + + + Standardmessage + + Messagenr + Messagetyp + + + + + + Yes-No-Meldung + + Meldungsnr + MsgboxResult + + + + + Standard-Meldung, welcher 2 Strings als Parameter übergeben werden, damit diese im Meldungstext ersetzt werden können. + Parameter im Meldungstext #1 oder #2 + + + + + + + + + + + Yes-No-Meldung, welcher 2 Strings als Parameter übergeben werden, damit diese im Meldungstext ersetzt werden können. + Parameter im Meldungstext #1 oder #2 + + MeldungsNr + erster Text zum ersetzen + zweiter Text zum ersetzen + + + + + + Ausgabe der Meldung, welche übergeben wird. Als Option können 2 Texte zum Ersetzen übergeben werden. + Parameter im Meldungstext #1 oder #2 + + Meldungstext + erster Text zum ersetzen + zweiter Text zum ersetzen + + + + + + Meldung Yes-No-Cancel + + + + + + + + Zeig den eigenen Messagebox-Dialog + + + + + + + + + Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + + + + + + Formularsecurity setzen + + Aktuelles Formular + + + + + + Daten ab Datenbank laden + + + + + + Prüft die DB-Einträge mit den Formcontrols und bei Übereinstimmung werden die Security-Einstellungen gesetzt + + + + + + Security-Einstellungen setzen + + Betroffenes Objeckt (Menuitem, Conrol usw.) + Readonly ja/nein + Sichtbar ja/nein + Name des Unterobjektes - wird für die Spalteneinstellungen von C1TruedbGrids verwendet + + + + + Alle Controls des Formulars zusammensuchen und auf der DB speichern + + Betroffenes Formular + + + + + + Sämtliche Controls vom Formular auslesen + + + + + + + + Auslesen von MenuItems + + + + + + + + + Auslesen von ContextMenuItems + + + + + + + + + Auslesen von Menu-Subitems + + + + + + + + Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + Formular + Objekttyp + Objektname + Objektitem + + + + + + Klasse für ein Control-Objekt + + + + + + Neue Instanz erstellen + + Control-Objekt + Betroffenes Formular + Objekttyp + Objektname + Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + + + + + Schreibt einen Datnsatz in die Tabelle SecurityObjects + + + + + + +Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + + + + + + Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + + + + + + + + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Applikationsversion + + + + + + Applikationsdaten + + + + + + Angemelderter Mitarbeiter + + + + + + Applikationsparameter + + + + + + DB-Verbindungsklasse + + + + + + Aktueller Applikationspfad + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + +
+
diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.zip b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.zip new file mode 100644 index 0000000..abe1f51 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/AssessmentMgmt.zip differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/Assessmentmgmt_Dokumente.zip b/SW/20211125/AssessmentMgmt/bin/Debug/Assessmentmgmt_Dokumente.zip new file mode 100644 index 0000000..2821369 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/Assessmentmgmt_Dokumente.zip differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/C1.Data.2.dll b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Data.2.dll new file mode 100644 index 0000000..1955c40 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Data.2.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.dll b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.dll new file mode 100644 index 0000000..f6c5f51 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml similarity index 99% rename from SW/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml rename to SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml index 9e74a65..8d617d5 100644 --- a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml +++ b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1Command.2.xml @@ -1139,13 +1139,6 @@ This method is for internal use only. - - - This method is for internal use only. - - - - This method is for internal use only. @@ -1922,6 +1915,18 @@ + + + Opens a submenu for linked . + + True - opens all the tree of menu. False - opens only the current submenu. + Opens a submenu, if the linked command is of type. Otherwise, does nothing. + + + + Closes a submenu for linked . + + Occurs when the value of the Command property of the command link changes. @@ -2957,7 +2962,7 @@ - This class implements the familiar tab control interface: several overlaying pages (each of which can + This class implements the familiar tab control interface: several overlaying pages (each of which can contain arbitrary controls) accessible via tabs at the side of the control. @@ -3026,6 +3031,11 @@ This method is for internal use only. + + + Fires the AutoHidingChanging event. + + Releases the resources used by the C1DockingTab. @@ -3242,6 +3252,12 @@ The array of automatically created C1DockingTab controls. + + + Raises the event. + + An EventArgs that contains the event data. + This method is for internal use only. @@ -3255,7 +3271,7 @@ Raises the event. - An EventArgs that contains the event data. + An EventArgs that contains the event data. @@ -3490,7 +3506,7 @@ The tab page to float out. - Floats out the page to a default position. + Floats out the page to a default position. @@ -3528,6 +3544,16 @@ List of controls whose children are excluded from SaveLayout / RestoreLayout. + + + Occurs when the page header of DockingTab is clicked. + + + + + Event fires when the AutoHiding property is about to change. Allows to cancel the change. + + Fired when a new C1DockingTab is automatically created in response to user actions (e.g. tearing off a tab and dropping it elsewhere). @@ -3939,7 +3965,7 @@ Gets or sets whether tabs area is displayed within the . - Use the ShowTabs property to control the display of the tabs. + Use the ShowTabs property to control the display of the tabs. If this property is set to false, the tabs area is not displayed. @@ -4247,6 +4273,12 @@ + + + Raises the event. + + An EventArgs that contains the event data. + This method is for internal use only. @@ -4284,6 +4316,11 @@ + + + Occurs when the page header is clicked. + + Occurs when the caption text changes. @@ -4618,6 +4655,13 @@ Gets the current element in the collection. + + + Removes the IList item at the specified index. + + + + This method is for internal use only. @@ -8096,6 +8140,11 @@ Gets or sets the value indicating whether the link is enabled. + + + Gets or sets the value indicating whether the link was pressed. + + Represents a collection of C1TopicLink objects. @@ -9542,6 +9591,15 @@ selectors to specify where the dragged view will be docked if you release it. + + + Visual studio 2012 - like docking style. + + + The VS2012 docking style feedback is similar to Visual Studio 2012, using docking zone + selectors to specify where the dragged view will be docked if you release it. + + Members of this enumeration are used to determine the value of the ClickSource property in the ClickEventArgs class. diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.dll b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.dll new file mode 100644 index 0000000..a78931e Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.dll differ diff --git a/SW/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml similarity index 99% rename from SW/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml rename to SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml index 433945e..3153e23 100644 --- a/SW/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml +++ b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml @@ -1361,6 +1361,16 @@ Gets or sets the border for the control. + + + Gets or sets the border color of the control. + + + Use the BorderColor property to specify the border color of the control. + This property is set using a object. + The BorderColor property has an effect only when the BorderStyle property is set to FixedSingle. + + Gets or sets a value indicating whether the InactiveStyle is applied to the grid when it loses focus. @@ -2410,6 +2420,21 @@ + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Raises the FetchRowStyle event. @@ -3316,6 +3341,11 @@ Occurs whenever a grouped cell that contains an aggregate is to be rendered and is true. + + + Occurs when the BorderColor property has changed. + + Occurs whenever the grid renders a row and the property has been set. @@ -3650,6 +3680,21 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Gets the current selected index. @@ -3993,6 +4038,11 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Occurs when the BorderColor property has changed. + + Gets or sets the object that controls the appearance of the caption area. @@ -4435,7 +4485,7 @@ - Performs internal reset. + Performs internal reset. @@ -4568,12 +4618,12 @@ Gets or sets the type of border rendered for a split. - + Base class for typeconverter. - + Returns an object from it's string representation. @@ -4582,7 +4632,7 @@ - + Returns a string representation from a given object. @@ -4591,7 +4641,7 @@ - + Returns true if the source type is string. @@ -4602,7 +4652,7 @@ - + Returns true of the type of string. @@ -4613,7 +4663,7 @@ - + Overloaded. Returns whether this converter can convert an object of one type to the type of this converter. @@ -4626,7 +4676,7 @@ - + Overloaded. Converts the given value object to the specified type. @@ -6916,6 +6966,12 @@ Row number to add. The index at which the row has been added. + + + Adds a range of rows to the end of the collection. + + The range of rows' numbers to add. + Inserts a row at the specified index. diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.4.dll b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.4.dll new file mode 100644 index 0000000..90413f2 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.4.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll b/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll new file mode 100644 index 0000000..f054f62 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml b/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml new file mode 100644 index 0000000..9f06eb7 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml @@ -0,0 +1,79349 @@ + + + + DevComponents.DotNetBar2 + + + + + Represents advanced multi-column Tree control. + + + + + Specifies the notification interface that node uses to communicate status changes to it's parent tree. + + + + Called when Node.Expanded property has changed. + Node which Expanded property has changed. + + + Called before node is collapsed + Context information. + + + Called before node is expanded + Context information. + + + Called after node is collapsed. + Context information. + + + Called after node is expanded + Context information + + + + Required designer variable. + + + + + Raises Render event. + + Provides event arguments. + + + Creates new instance of the class. + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the current renderer used by the control. + + Reference to the TreeRenderer used by the control. + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Invalidates node bounds on canvas. + + Reference node. + + + + Invalidates node bounds on canvas. + + Reference node. + + + + Finds the node based on the Node.Name property. + + Name of the node to find. + Reference to a node with given name or null if node cannot be found. + + + + Finds the node based on the Node.DataKey property. + + Data key to look for. + Reference to a node with given key or null if node cannot be found. + + + + Finds the node based on the Node.BindingIndex property. + + Index to look for. + Reference to a node with given key or null if node cannot be found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Reference to a node or null if no node is found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Reference node to start searching from + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Reference node to start searching from + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Indicates whether SelectionBoxFillColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets SelectionBoxFillColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBorderColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandLineColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandLineColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandForeColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandForeColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverForeColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverForeColor to it's default value. Used by windows forms designer design-time support. + + + + + Returns the zero based flat index of the node. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Reference to the node to return index for. + Zero based node index or -1 if index cannot be determined. + + + + Returns node based on the flat index. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Index to return node for. + Reference to a node or null if node at specified index cannot be found. + + + + Returns color scheme part color if set otherwise returns color passed in. + + Color. + Color scheme part. + Color. + + + + Collapses all nodes in a tree. + + + + + Expands all the tree nodes. + + + + + Paints control to canvas. This method might be used for print output. + + Graphics object to paint control to. + Indicates whether to paint control background. + + + + Paints control to canvas. This method might be used for print output. + + Graphics object to paint control to. + Indicates whether to paint control background. + Indicates clipping rectangle. Nodes outside of clipping rectangle will not be painted. You can pass Rectangle.Empty and all nodes will be painted. + + + + Processes the keyboard character and executes the search through the nodes. + + Character to process. + + + + + Raises ColumnResized event. + + ColumnHeader that was resized. + Event arguments + + + + Raises ColumnMoved event. + + ColumnHeader that was moved. + Provides event arguments. + + + + Raises ColumnResizing event. + + Column being resized + Event arguments + + + + Deselect specified node. Use this method when multiple node selection is enabled to deselect single node or all nodes. + + Reference to node to select or null to deselect all selected nodes. + Action that is selecting the node. + + + + Raises SelectionChanged event. + + Event arguments + + + + Raises CellSelected event. + + Event arguments. + + + + Raises CellUnselected event. + + Event arguments. + + + + Selected specified node. + + Node to select. + Action that is selecting the node. + + + + Invalidates the size for all top-level nodes and their sub-nodes. + + + + + Invalidates the size for a node and its sub-nodes. + + Node to invalidate size for. + + + + Ensures that selected node is visible i.e. that all parents of the selected node are expanded. If not selects the first parent node not expanded. + + + + + Starts editing specified cell, places the cell into the edit mode. + + Cell to start editing. + Action that is a cause for the edit. + + + + Starts editing specified cell, places the cell into the edit mode. + + Cell to start editing. + Action that is a cause for the edit. + Specifies the text to be edited instead of the text of the cell. Passing the NULL value will edit the text of the cell. + + + + Called just before cell editor is released for editing. + + Reference to the cell being edited. + Reference to the editor control. + + + + Raises the ProvideCustomCellEditor event. + + Event arguments. + + + + Ends cell editing. + + Specifies which action is cause for end of the editing. + Returns true if edits were applied to the cell or false otherwise. + + + + Ends cell editing. + + Specifies which action is cause for end of the editing. + Returns true if edits were applied to the cell or false otherwise. + + + + Raises the AfterCellEditComplete event. + + Provides information about event. + + + + Cancels the cell editing if it is in progress. + + Specifies which action is cause for canceling of editing. + + + + Raises BeforeNodeInsert event + + Node that is about to be inserted + Source of the event + + + + Raises AfterNodeInsert event + + Node that is inserted + Source of the event + + + + Raises BeforeNodeRemove event + + Node that is about to be removed + Source of the event + + + + Raises AfterNodeRemove event + + Node that is removed + Source of the event + + + + Called after node has been removed + + Node that is removed + Source of the event + + + + Invokes BeforeNodeDrop event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes AfterNodeDrop event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseDown event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseUp event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseMove event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeClick event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeDoubleClick event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseEnter event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseLeave event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseHover event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Save nodes to XmlDocument. New Node AdvTree is created and nodes are serialized into it. + + Reference to an instance of XmlDocument object + + + + Saves nodes to a file. + + File name to save nodes to. + + + + Saves nodes to specified stream. + + Stream to save nodes to. + + + + Saves nodes to specified writer. + + Writer to save nodes to. + + + + Saves nodes to specified writer. + + Writer to save nodes to. + + + + Load nodes from file. + + File to load nodes from + + + + Load nodes from stream. + + Stream to load from + + + + Load nodes from reader. + + Reader to load from. + + + + Load nodes from reader. + + Reader to load from. + + + + Load nodes from an XmlDocument object. + + Document to load Nodes from. + + + + Forces the control to invalidate its client area and immediately redraw itself + and any child controls. Note however that this method will node do anything if refresh + is suspended as result of call to BeginUpdate method without corresponding EndUpdate + call or if SuspendPaint property is set to true. + + + + + Disables any redrawing of the tree control. To maintain performance while items + are added one at a time to the control, call the BeginUpdate method. The BeginUpdate + method prevents the control from painting until the + EndUpdate method is called. + + + + + Enables the redrawing of the tree view. To maintain performance while items are + added one at a time to the control, call the BeginUpdate + method. The BeginUpdate method prevents the control from painting until the EndUpdate + method is called. + + + Call to EndUpdate will enable the layout and painting in tree control. If there + are any pending layouts the EndUpdate will call + RecalcLayout method to perform the layout and it will + repaint the control. + + + + + Enables the redrawing of the tree view. To maintain performance while items are + added one at a time to the control, call the BeginUpdate + method. The BeginUpdate method prevents the control from painting until the EndUpdate + method is called. + + Gets or sets whether layout and refresh of control is performed if there are no other update blocks pending. + + + + Retrieves the tree node that is at the specified location. + + The Node at the specified point, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Point to evaluate and retrieve the node from. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Whether to enumerated displayed nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.Y coordinates of the + MouseDown event as the y parameter. + + The Y position to evaluate and retrieve the node from. + + + + Retrieves the node cell that is at the specified location. + + The Point to evaluate and retrieve the cell from. + The Cell at the specified point, in tree view coordinates. + + + + Retrieves the node cell that is at the specified location. + + The X position to evaluate and retrieve the cell from. + The Y position to evaluate and retrieve the cell from. + The Cell at the specified point, in tree view coordinates. + + + + Retrieves the node cell that is at the specified location. + + The X position to evaluate and retrieve the cell from. + The Y position to evaluate and retrieve the cell from. + Whether to enumerated displayed nodes only. + The Cell at the specified point, in tree view coordinates. + + + Applies any layout changes to the tree control. + + Layout will not be performed if BeginUpdate is called. Any calls to the + RecalcLayout will return without executing requested layout operation. + + + + + Recalculates layout for the tree control. Not affected by BeginUpdate call. + + + + + Returns translation matrix for current Zoom. Translation matrix is used to translate internal node coordinates to screen + coordinates when Zoom is not set to 1. + + Returns new instance of Matrix object. + + + + Returns layout based rectangle from screen rectangle. Layout based rectangle will be different + from screen rectangle when Zoom is not set to 1. This method will translate the screen rectangle enlarged by Zoom + to layout rectangle which does not have Zoom applied. + + Screen rectangle + Layout rectangle + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + Mouse event arguments + Returns translated position + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + Mouse position + Returns translated position + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + X coordinate + Y coordinate + + + + + Returns rectangle translated to screen rectangle if Zoom is not equal 1. + + Rectangle to translate + Screen Rectangle + + + + Returns size translated to screen dimension if Zoom is not equal 1. + + Size to translate + Screen Size + + + + Raises ColumnHeaderMouseUp event. + + Reference to ColumnHeader + Event arguments + + + + Raises ColumnHeaderMouseDown event. + + Reference to ColumnHeader + Event arguments + + + + Calls OnBeforeCheck method which fired + OnBeforeCheck event. + + Event arguments. + + + Raises the BeforeCheck event. + + A AdvTreeCellBeforeCheckEventArgs that contains the event + data. + + + + + Calls OnAfterCheck method which fired + AfterCheck event. + + Event arguments. + + + Raises the AfterCheck event. + + A AdvTreeEventArgs that contains the event + data. + + + + + Invokes CommandButtonClick event. + + Context node. + Event arguments. + + + + Invokes DeserializeNode event. + + Provides more information about the event + + + + Invokes SerializeNode event. + + Provides more information about the event + + + + Invokes the MarkupLinkClick evcent. + + Sender of the event, usually instance Cell object. + Event arguments + + + + Raises the NodeDragFeedback event. + + Provides event arguments. + + + + Processes drag over event. + + Drag event arguments. + + + + Raises the NodeDragStart event. + + Reference to node being dragged. + Event parameters + + + + Raises BeforeNodeDragStart event. + + Provides event arguments. + + + + Returns the display root node. + + Instance of node or null if there is no display root node. + + + + Returns reference to the node involved in drag-drop operation if any. + + Reference to node object or null if there is no drag node. + + + + + This member supports the .NET Framework infrastructure and is not intended to be + used directly from your code. + + + + + This member supports the .NET Framework infrastructure and is not intended to be + used directly from your code. + + + + + Raises FormattingEnabledChanged event. + + Event arguments. + + + + Raises FormatStringChanged event. + + Event arguments. + + + + Raises FormatInfoChanged event. + + Event arguments. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + Raises the DisplayMemberChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Disposes all nodes in Nodes collection and clears it. + + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Creates a new node for the data item. + + Item to create node for. + New instance of the node. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + Called when ParentFieldName property has changed. + + + + + Called when GroupingMembers property has changed. + + + + + Raises the Format event. + + Event parameters + + + + Clears internal property descriptors cache when data-binding is used. In most cases it is not needed that you call this method. Do so only if instructed by DevComponents support. + + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Raises the ValueMemberChanged event. + + Event arguments. + + + + Raises the SelectedValueChanged event. + + Event arguments. + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Occurs just before cell editor is released for editing. It allows you to customize any properties on edit control. + + + + + Occurs when mouse button is pressed over the column header. + + + + + Occurs when mouse button is released over the column header. + + + + + Occurs after the cell check box is checked. + + + + + Occurs before the cell check box is checked and provides opportunity to cancel the event. + + + + + Occurs after the tree node is collapsed. + + + + + Occurs before the tree node is collapsed. + + + + + Occurs after the tree node is expanded. + + + + + Occurs before the tree node is expanded. + + + + + Occurs when command button on node is clicked. + + + + + Occurs before cell is edited. The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs just before the cell editing is ended. The text box for editing is still visible and you can cancel + the exit out of editing mode at this point. The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs after cell editing has ended and before the new text entered by the user is assigned to the cell. You can abort the edits in this event. + The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs after cell editing has been completed. This event cannot be canceled. + + + + + Occurs after node selection has changed. + + + + + Occurs before Node has been selected by user or through the SelectedNode property. Event can be cancelled. + + + + + Occurs after node has been selected by user or through the SelectedNode property. + + + + + Occurs after node has been deselected by user or through the SelectedNode or SelectedNodes properties. + + + + + Occurs before node has been removed from its parent. + + + + + Occurs after node has been removed from its parent. + + + + + Occurs before node is inserted or added as child node to parent node. + + + + + Occurs after node is inserted or added as child node. + + + + + Occurs when node drag & drop operation is initiated. + + + + + Occurs before internal node drag & drop support is initiated and allows you to cancel the drag & drop. + + + + + Occurs before Drag-Drop of a node is completed and gives you information about new parent of the node that is being dragged + as well as opportunity to cancel the operation. + + + + + Occurs while node is being dragged. You can handle this event to disable the drop at specific nodes or to even change the + drop location for the node by modifying event arguments. + + + + + Occurs after Drag-Drop of a node is completed. This operation cannot be cancelled. + + + + + Occurs when the mouse pointer is over the node and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the node and a mouse button is released. + + + + + Occurs when the mouse pointer is moved over the node. + + + + + Occurs when the mouse enters the node. + + + + + Occurs when the mouse leaves the node. + + + + + Occurs when the mouse hovers over the node. + + + + + Occurs when the node is clicked with left mouse button. If you need to know more information like if another mouse button is clicked etc. use + NodeMouseDown event. + + + + + Occurs when the node is double-clicked. + + + + + Occurs after an node has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data associated with the node and load it back up in DeserializeNode event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeNodeEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an node has been de-serialized (loaded) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrieve any data you saved in SerializeNode event. + + + + + Occurs when hyperlink in text-markup is clicked. + + + + + Occurs when cell with custom editor type is about to be edited by user. Handle this event to provide + custom editors. + + + + + Occurs when the DataSource changes. + + + + + Occurs when the DisplayMembers property changes. + + + + + Occurs when the control is bound to a data value that need to be converted. + + + + + Occurs when FormattingEnabled property changes. + + + + + Occurs when FormatString property changes. + + + + + Occurs when FormatInfo property has changed. + + + + + Occurs when a Node for an data-bound object item has been created and provides you with opportunity to modify the node. + + + + + Occurs when a group Node is created as result of GroupingMembers property setting and provides you with opportunity to modify the node. + + + + + Occurs when value of ValueMember property has changed. + + + + + Occurs when value of SelectedValue property has changed. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding and provides you with opportunity to modify it. + + + + + Occurs after column has been resized by end-user. + + + + + Occurs while column is being resized by end-user. + + + + + Occurs after cell has been selected. + + + + + Occurs after cell has been unselected. + + + + + Occurs after users has moved the column. + + + + + Occurs while tree control is being rendered. + + + + + Indicates whether nodes are disposed when control is disposed. + + + + + Indicates whether sorting of node collection sorts child nodes as well. Default value is false. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Gets the column header control which renderes the columns. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets the proposed size of the tile in Tile view. The size of the tile might be larger than specified if Style assigned to node, cells adds padding, margins etc. or if Node.Image or font is greater than width or height specified here. + + + + + Gets or sets a value indicating whether the selected tree node remains highlighted even when the tree control has lost the focus. + + + + + Gets whether keyboard focus is within the control. + + + + + Gets or sets whether cell editing is completed when control loses input focus. Default value is true. + + + + + Gets or sets the reference to DotNetBar ContextMenuBar component which is used to provide context menu for nodes. This property + is automatically maintained by AdvTree. + + + + + Gets or sets zoom factor for the control. Default value is 1. To zoom display of the nodes for 20% set zoom factor to 1.2 + To zoom view 2 times set zoom factor to 2. Value must be greater than 0. Zoom is supported only when non-column tree setup is used. + Please note that Zoom functionality is designed only for very special use cases and only for + plain tree control setup which does not use editing, alternating row colors, drag & drop or any other + advanced functionality. + + + + + Gets the size of the tree. + + + + + Gets or sets custom node renderer. You can set this property to your custom renderer. When set the RenderMode should be set to Custom to enable + your custom renderer. To choose one of the system renderer use RenderMode property. Default value is null. + + + + + Gets or sets the render mode used to render all nodes. Default value is eNodeRenderMode.Default which indicates that system default renderer is used. + Note that if you specify custom renderer you need to set AdvTree.NodeRenderer property to your custom renderer. + + + + + Gets the style for the background of the control. + + + + + Gets or sets internal layout cell horizontal spacing. This property is for advanced internal use and you should not set it. + + + + + Gets or sets whether automatic drag and drop is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting the tree. + + + + + Gets or sets the delimiter string that the tree node path uses. + + + + + Gets or sets whether user can resize the columns. Default value is true. + + + + + Gets or sets whether user can reorder the columns. Default value is false. + + + + + Gets the collection of column headers that appear in the tree. + + + By default there are no column headers defined. In that case tree control + functions as regular tree control where text has unrestricted width. + If you want to restrict the horizontal width of the text but not display + column header you can create one column and set its width to the width desired and + set its Visible property to false. + + + + + Gets or sets whether column headers are visible if they are defined through Columns collection. Default value is true. + + + + + Gets the collection of all style elements created for the tree. + + + + + Gets or sets default style for the node cell. + + + + + Gets or sets default style for the node cell when mouse is pressed. + + + + + Gets or sets default style for the node cell when mouse is over the cell. + + + + + Gets or sets default style for the node cell when cell is selected. + + + + + Gets or sets default style for the node cell when cell is disabled. + + + + + Gets or sets default style for the node when node is expanded. + + + + + Gets or sets default style for all nodes where style is not specified + explicity. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets style for the node when node is selected. Note that this style is applied to the default node style. + + + Reference to the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets style for the node when mouse is over node. Note that this style is applied to the default node style. + + + Reference to the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + + + A NodeCollection that represents the tree nodes + assigned to the tree control. + + + The Nodes property holds a collection of Node objects, each of which has a + Nodes property that can contain its own NodeCollection. + + + + + Gets or sets the vertical spacing between nodes in pixels. Default value is 3. + + + + + Gets or sets the horizontal spacing between nodes in pixels when control is in Tile layout. Default value is 4. + + + + + Gets or sets whether horizontal grid lines between each row are displayed. Default value is false. + + + + + Gets or sets whether column can be resized when mouse is over the column grid line and outside of the column header. + GridColumnLines must be set to true to make column lines visible. + + + + + Gets or sets whether grid lines are displayed when columns are defined. Default value is true. + + + + + Gets or sets the grid lines color. + + + + + Gets or sets the alternate row color applied to every other row. Default value is Color.Empty. + + + + + Gets or sets the background style for the child nodes columns. Background style defines the appearance of the column header background. + + + Reference to the style assigned to the column header. + + + + + Gets or sets the background style for the columns. Background style defines the appearance of the column header background. + + + Reference to the style assigned to the column header. + + ColumnStyleNormal Property + ColumnStyleMouseDown Property + ColumnStyleMouseOver Property + + + + Gets or sets the default style class assigned to the column headers. + + + Reference to the style assigned to the column header. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleMouseDown Property + ColumnStyleMouseOver Property + + + + Gets or sets default style class assigned to the column which is applied when mouse + button is pressed over the header. + + + Name of the style assigned to the column. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleNormal Property + ColumnStyleMouseOver Property + + + + Gets or sets default style class assigned to the column which is applied when mouse is + over the column. + + + Name of the style assigned to the column. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleNormal Property + ColumnStyleMouseDown Property + + + + Gets collection that holds definition of column headers associated with nodes. + + + + + Gets or sets the tree node that is currently selected in the tree control. + + + If no Node is currently selected, the + SelectedNode property is a null reference (Nothing in Visual + Basic). + + + + + Gets or sets the collection of currently selected nodes in tree control. + + + + + Gets or sets whether multi-node selection is enabled. Default value is false. When + multi-selection is enabled use SelectedNodes property to retrive collection of selected nodes. + Use MultiSelectRule property to change the multi-node selection rule. + + + + + Gets or sets the rule that governs the multiple node selection. Default value indicates that only nodes + belonging to same parent can be multi-selected. + + + + + Returns reference to node layout object. + + + + + Returns reference to node display object. + + + + + Gets whether layout is suspended for tree control. Layout is suspended after + call to BeginUpdate method and it is resumed after the + call to EndUpdate method. + + + + + Gets whether control has layout operation pending on next paint or update. + + + + + Gets or sets whether paint operations are suspended for the control. You should use this method + if you need the RecalcLayout operations to proceed but you want to stop painting of the control. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is in indeterminate state. + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between nested nodes. RootConnector property specifies the connector + between root node and it's imidate nested nodes. This property specifies connector for all other nested levels. + Default value is null. + + + You can use + Node.ParentConnector + property to specify per node connectors. + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between linked nodes. Connector specified here is used to display the connection + between nodes that are on the path to the selected node. When set you can use it to visually indicate the path to the currently selected node. + Default value is null. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + You can specify cell layout on each node by using + Node.CellLayout + property. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + You can specify cell layout on each node by using + Node.CellLayout + property. + + + + + Gets or sets the color scheme style. Color scheme provides predefined colors based on popular visual styles. + We recommend that you use "SchemePart" color settings since they maintain consistant look that is + based on target system color scheme setting. + + + + + Gets the reference to the color scheme object. + + + + + Gets or sets whether the content of the control is centered within the bounds of control. Default value is true. + + + + + Gets or sets whether per cell selection mode is enabled. In cell selection mode the selection box is drawn over selected cell only + instead of all cells in the node. + Default value is false. + + + + + Gets or sets whether selection appearance changes depending on whether control has input focus. Default value is true. Setting this value to false causes selection box to be rendered as if control has focus all the time. + + + + + Gets or sets the node selection box style. + + SelectionBox Property + SelectionBoxSize Property + SelectionBoxFillColor Property + SelectionBoxBorderColor Property + + + + Gets or sets the value that indicates whether selection box is drawn around the + selected node. Default value is true. Another way to provide the visual indication that + node is selected is by using selected state style properties like + NodeStyleSelected + and + CellStyleSelected. + + CellStyleSelected Property + NodeStyleSelected Property + + + + Gets or sets the size/thickness in pixel of the selection box drawn around selected + node. + + + + + Gets or sets whether node is selected when mouse is pressed anywhere within node vertical bounds. Default value is true. + + + When set to false the node is selected only when mouse is pressed over the node content. + + + + + Gets or sets the total node expand area width in pixels. The expand button with ExpandButtonSize is fitted into this area. Default value is 24. + + + + + Gets or sets the size of the expand button that is used to expand/collapse node. Default value is 8,8. + + + + + Gets or sets expand button border color. Note that setting ExpandBorderColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme border color. Setting + this property overrides the setting of the corresponding ExpandBorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBorderColor property. + + + + + Gets or sets expand button back color. Note that setting ExpandBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme back color. Setting + this property overrides the setting of the corresponding ExpandBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBackColor property. + + + + + Gets or sets expand button target gradientback color. Note that setting ExpandBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme target gradient back color. Setting + this property overrides the setting of the corresponding ExpandBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBackColor2 property. + + + + + Gets or sets expand button line color. Note that setting ExpandLineColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme line color. Setting + this property overrides the setting of the corresponding ExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandLineColor property. + + + + + Gets or sets the expand button background gradient angle. + + + + + Gets or sets the expand button image which is used to indicate that node will be expanded. To use images as expand buttons you also need to set ExpandButtonType=eExpandButtonType.Image. + + + + + Gets or sets the expand button image which is used to indicate that node will be collapsed. To use images as expand buttons you also need to set ExpandButtonType=eExpandButtonType.Image. + + + + + Gets or sets the type of the expand button used to expand/collapse nodes. + + + + + Gets or sets the display root node. Setting this property allows you to use any + Node as root display node. Default value is Null which means that first node from + AdvTree.Nodes collection is used as display root node. + + + + + Gets or sets the width of the command button. Default value is 10 pixels. + + + + + Gets or sets command button back color. Note that setting CommandBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme back color. Setting + this property overrides the setting of the corresponding CommandBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandBackColor property. + + + + + Gets or sets command button target gradient back color. Note that setting CommandBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme target gradient back color. Setting + this property overrides the setting of the corresponding CommandBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandBackColor2 property. + + + + + Gets or sets command button foreground color. Note that setting CommandForeColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme foreground color. Setting + this property overrides the setting of the corresponding CommandForeColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandForeColor property. + + + + + Gets or sets the command button background gradient angle. + + + + + Gets or sets command button mouse over back color. Note that setting CommandMouseOverBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme mouse over back color. Setting + this property overrides the setting of the corresponding CommandMouseOverBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverBackColor property. + + + + + Gets or sets command button mouse over target gradient back color. Note that setting CommandMouseOverBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets command button mouse over color scheme target gradient back color. Setting + this property overrides the setting of the corresponding CommandMouseOverBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverBackColor2 property. + + + + + Gets or sets command button mouse over foreground color. Note that setting CommandMouseOverForeColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button mouse over color scheme foreground color. Setting + this property overrides the setting of the corresponding CommandMouseOverForeColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverForeColor property. + + + + + Gets or sets the command button mouse over background gradient angle. + + + + + Gets or sets a value indicating whether the label text of the node cells can be edited. Default value is false. + + + + + Returns whether cell editing is in progress. + + + + + Gets or sets whether keyboard incremental search through Node.Text property is enabled. Default value is true. + + + + + Gets or sets the keyboard search buffer expiration timeout. Default value is 1000 which indicates that + key pressed within 1 second will add to the search buffer and control will be searched for node text + that begins with resulting string. Setting this value to 0 will disable the search buffer. + + + + + Indicates whether search buffer is auto-cleared regardless of the expiration timeout if node is not found using current buffer content. + + + + + Gets or sets whether double-clicking the node will toggle its expanded state. Default value is true. + + + + + Gets or sets whether node is highlighted when mouse enters the node. Default value is false. + + + There are two ways to enable the node hot-tracking. You can set the HotTracking property to true in which case the + mouse tracking is enabled using system colors specified in TreeColorTable. You can also define the NodeStyleMouseOver + style which gets applied to the node when mouse is over the node. + + + + + Gets whether tree is in process of moving the column in response to user finishing the column move action. + + + + + Gets or sets how control positions the items. Default value is standard TreeView layout. + + + + + Gets or sets the color of the group divider line when in tile view. + + + + + Returns the reference to the node mouse is currently over or null (Nothing) if mouse is not over any node in tree. + + + + + Specifies the mouse cursor displayed when mouse is over the cell. Default value + is null which means that default control cursor is used. + + + To specify cursor for each individual cell use + Cell.Cursor property. + + + + + Gets reference to array of Cell objects that have HostedControl property set. + + + + + Gets or sets whether hosted controls are clipped so they don't overlap the control borders. Default value is true. + + + + + Gets or sets whether control border needs to be updated by calling UpdateControlBorderPanel() + + + + + Gets the reference to internal vertical scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets whether Vertical Scroll-bar is shown if needed because content of the control exceeds available height. Default value is true. + + + + + Gets or sets whether Horizontal Scroll-bar is shown if needed because content of the control exceeds available width. Default value is true. + + + + + Gets the reference to internal horizontal scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets a value indicating whether the tree control enables the user to scroll to any nodes placed outside of its visible boundaries. + This property is managed internally by AdvTree control and should not be modified. + + + + + Gets or sets the minimum size of the auto-scroll. Returns a Size that represents the minimum height and width of the scrolling area in pixels. + This property is managed internally by AdvTree control and should not be modified. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Gets the list of all checked nodes in tree including child nodes. + + + + + Gets or sets the offset in pixels from node's X position that is used during drag & drop operation to indicate that + dragged node is dropped as child node of the parent's node. + + + + + Gets or sets whether drag & drop internal implementation allows the copying of the node being dragged when CTRL key is pressed. + + + + + Gets or sets whether control accepts the dragged nodes from other AdvTree controls. Default value is true. + + + + + Gets or sets the distance to indent each of the child tree node levels. Default value is 16. + + + + + Indicates whether drop marker is displayed during drag-drop operation. + + + + + Gets or sets whether drag and drop operation is in progress. This member supports + the AdvTree infrastructure and is not intended to be used directly from your + code. + + + + + Gets or sets whether number of nodes being dragged is displayed on drag node preview. Default value is true. + + + + + Gets or sets whether multiple nodes drag & drop is enabled. Default value is true. + + + + + Indicates whether AutoScrollPosition is reset to 0,0 when all nodes are cleared from the tree. Default value is true. + + + + + Gets or sets the comma separated list of property or column names to display on popup tree control. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMembers property of the control. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets comma separated field or property names that holds the value that is used to identify node and parent node. Format expected is: FieldNodeId,ParentNodeFieldId. For example if your table represents departments, you have DepartmentId field which uniquely identifies a department and ParentDepartmentId field which identifies parent of the department if any you would set this property to DepartmentId,ParentDepartmentId. + Note that you can only use ParentFieldNames or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets comma separated list of field or property names that are used for grouping when data-binding is used. Note that you can only use ParentFieldName or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets style for automatically created group nodes when data-binding is used and GroupingMembers property is set. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the property to use as the actual value for the items in the control. Applies to data-binding scenarios. SelectedValue property will return the value of selected node as indicated by this property. + + + + + Gets or sets the value of the member property specified by the ValueMember property. + + + + + Indicates whether control changes the CurrencyManager.DataPosition when selected node is changed during data binding. + Default value is true. + + + + + Indicates whether touch support for scrolling is enabled. + + + + + Static class that holds AdvTree settings that are not commonly used. + + + + + Gets or sets whether tree control is scrolled horizontally so selected node is brought into the view. Default value is false. + You can set this property to false to disable the horizontal scrolling of tree control when selected node has changed. + + + + + Gets or sets whether AdvTree node comparer that provides column sorting uses standard text comparer instead of default + hybrid alpha-numeric comparer. Default value is false. + + + + + Defines an interface for cell edit control that allows custom controls to be used as cell editors. AdvTree control + expects that editing control inherits from System.Windows.Forms.Control. + + + + + Called when edit operation is started. The AdvTree control will first set CurrentValue, then call BeginEdit and will call EditComplete once + editing is completed. + + + + + Called when edit operation is completed. + + + + + Gets or sets current edit value. + + + + + AdvTree control subscribes to this event to be notified when edit operation is completed. For example when Enter key is + pressed the edit control might raise this event to indicate the completion of editing operation. + + + + + AdvTree control subscribes to this event to be notified that user has cancelled the editing. For example when Escape key is + pressed the edit control might raise this event to indicate that editing has been cancelled. + + + + + Gets or sets whether cell requests the word-wrap based on the current cell style. If your editor does not support + word-wrap functionality this can be ignored. + + + + + Defines delegate for PrepareCellEditor event. + + + + + + + Event arguments for PrepareCellEditor event. + + + + + Gets reference to the cell being edited. + + + + + Gets reference to the cell editor control. + + + + + Initializes a new instance of the PrepareCellEditorEventArgs class. + + + + + + + Defines delegate for PrepareCellEditor event. + + + + + + + Event arguments for AdvTree.Render event. + + + + + Indicates the rendering operation being performed. + + + + + Indicates graphics canvas to render on. + + + + + Initializes a new instance of the AdvTreeRenderEventArgs class. + + Specifies rendering type + Specifies graphics canvas to render on + + + + Specifies the rendering type being performed on AdvTree control Render event. + + + + + Control background is being painted. + + + + Represents a cell assigned to the Node. + + The Cell with Index 0 (zero) always exists for a Node and it is a cell that + you can interact with through the properties on a node, which are forwarding to the + Cell(0), or you can go directly to the Cell(0). + When Node has multiple columns defined each column corresponds to Cell in + Node's Cells collection. The first Column has Index 0, second Column Index 1 and so + forth. + Note that there is always at least one Cell in a Node even if multiple + columns are not used. + + + + + Initializes new instance of Cell class. + + + + + Initializes new instance of Cell class. + + Cell text. + + + + Initializes new instance of Cell class. + + Cell text. + + + + Initializes new instance of Cell class. + + Cell text. + + + + Releases the resources used by the Component. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Occurs after Tooltip text has changed. + + + + + Called when tooltip is shown and hidden. + + true if tooltip is being shown otherwise false. + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Sets the bounds of the cell. + + New cell bounds. + + + + Sets the bounds of the image inside of the cell. + + New cell bounds. + + + + Sets the bounds of the check box inside of the cell. + + New cell bounds. + + + + Sets whether cells is visible or not. This is set by node layout manager and it is based on column visibility. + + True if visible otherwise false. + + + + Sets the parent of the cell. + + Parent node. + + + + Occurs after text has changed. + + + + + Sets the Images to the new CellImages object. + + CellImages object. + + + + Returns whether Images property should be serialized. Used internally for windows forms designer support. + + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the mouse over flag. + + true if mouse is over the cell otherwise false. + + + + Sets the mouse down flag. + + true if left mouse button is pressed while over the cell otherwise false. + + + + Returns effective editor type used for cell editing. + + Editor type. + + + Makes a copy of a Cell. + + + + Ensures that the cell is visible, expanding nodes and scrolling the control as necessary. + + + + + Occurs when any image property for the cell has changed. + + + + + Invokes AfterCheck event on AdvTree + control. + + + + + Invokes BeforeCheck event on AdvTree + control. + + + + + Called just before cell layout is to be performed. + + + + + Occurs when text markup link is clicked. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets whether tooltip is visible or not. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Gets or sets whether cell content is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets whether cell can be edited. Cell can be edited if both Editable property is set to true and ColumnHeader.Editable property is set to true. + + + + + Gets or sets the item hosted inside of the cell. Only items that do not generate + popups are supported. Note that cell can only host either HostedItem or HostedControl but not both. + + + + + Gets or sets the control hosted inside of the cell. Note that cell can only host either HostedItem or HostedControl but not both. + + + When control is hosted inside of the cell, cell size is determined by the + size of the control hosted inside of it. The cell will not display its text but it will display any image assigned + or check box when control is hosted inside of it. The Style settings like Margin + and Padding will still apply. + + + + + Gets or sets whether hosted control size change event is ignored. + + + + + Gets or sets the hosted control size. Property is used to correctly scale control when AdvTree.Zoom is used to zoom view. + + + + + Returns name of the cell that can be used to identify it from the code. + + + + + Gets the relative bounds of the cell. + + + + + Gets the bounds of the cell. + + + + + Gets or sets the available content bounds for the text. Text will fitted into these bounds + but it's true location can be obtained only after it is displayed. + + + + + Gets the bounds of the text inside of cell. + + + + + Gets the relative bounds of the image inside of cell. + + + + + Gets the bounds of the image inside of cell. + + + + + Gets the bounds of the image inside of cell. + + + + + Gets the bounds of the check box inside of cell. + + + + + Gets a value indicating whether the cell is in an editable state. true if the cell is in editable state; otherwise, false. + + + + + Gets a value indicating whether the cell is in the selected state. true if the cell is in the selected state; otherwise, false. + + + + + Gets a value indicating whether the cell is visible. Cell is considered to be visible when it's parent column is visible. + + + + + Gets the parent node of the current cell. + + + + + Gets or sets the object that contains data about the cell. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the cell. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the format that is applied to the value of Text property for display purposes. See "Formatting Overview" in MSDN + for description on available format strings. For example you can specify "C" to format text as currency, or "D" to format text as decimal number etc. + + + + + + Gets the formatted display text. + + + + + Gets or sets the text displayed in the cell. + + + + + Gets the parent tree control that the cell belongs to. + + + + + Gets or sets the style class assigned to the cell. Null value indicates that + default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null (VB Nothing) indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null (VB Nothing) the style setting from parent tree + controls is used. CellStyleNormal on AdvTree control is a root style for a cell. + + StyleDisabled Property + StyleMouseDown Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the style name used by cell. This member is provided for internal use only. To set or get the style use StyleNormal property instead. + + + + + Gets or sets the style class that is to when cell is selected. Null value indicates that + default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default is null value. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleSelected on AdvTree control is a root style for a cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseDown Property + StyleMouseOver Property + + + + Gets or sets the selected style name used by cell. This member is provided for internal use only. To set or get the style use StyleSelected property instead. + + + + + Gets or sets the disabled style class assigned to the cell. Null value indicates + that default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleDisabled on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseDown Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the disabled style name used by cell. This member is provided for internal use only. To set or get the style use StyleDisabled property instead. + + + + + Gets or sets the style class assigned to the cell which is applied when mouse + button is pressed while mouse is over the cell. Null value indicates that default + style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value style setting from parent tree + controls is used. CellStyleMouseDown on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the mouse down style name used by cell. This member is provided for internal use only. To set or get the style use StyleMouseDown property instead. + + + + + Gets or sets the style class assigned to the cell which is applied when mouse is + over the cell. Null value indicates that default style is used as specified on cell's + parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleMouseOver on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseDown Property + StyleSelected Property + + + + Gets or sets the mouse over style name used by cell. This member is provided for internal use only. To set or get the style use StyleMouseOver property instead. + + + + + Gets or sets whether cell is enabled or not. + + + + + Gets the reference to images associated with this cell. + + + + + Gets or sets the image alignment in relation to the text displayed by cell. + + + + + Gets or sets the checkbox alignment in relation to the text displayed by cell. + + + + + Gets or sets whether check box is visible inside the cell. + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets whether mouse is over the cell. + + + + + Gets whether left mouse button is pressed while over the cell. + + + + + Gets or sets the layout of the cell parts like check box, image and text. Layout can be horizontal (default) + where parts of the cell are positioned next to each other horizontally, or vertical where + parts of the cell are positioned on top of each other vertically. + Alignment of the each part is controlled by alignment properties. + + ImageAlignment Property + CheckBoxAlignment Property + + + + Specifies the mouse cursor displayed when mouse is over the cell. + + + + + Gets or sets whether cell wrapped the text during the layout. + + + + + Gets or sets the editor type used to edit the cell. Setting this property to value other than Default + overrides the cell editor type specified on column cell belongs to. + + + + + Gets or sets whether cell can be selected by user by clicking it with the mouse or using keyboard. Default value is true. + + + + + Gets whether cell can be selected. Cell must be Visible, Enabled and Selectable in order for it to be selected. + + + + + Returns ColumnHeader cell is under if one is defined and cell is already parented to the tree. Otherwise it returns null/nothing. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether cell supports and renders text markup. Default value is true. + + + + + Gets whether item supports text markup. Default is false. + + + + + A strongly-typed collection of objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Gets the cell based on the column name. Node must be able to reach AdvTree control for this method to work. + + Column name. + Cell object or null. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Cell array. + + Array to copy to. + + + + Sets the node collection belongs to. + + Cell that is parent of this collection. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. Returns null/nothing if cell with given name is not found. + + + + + Gets or sets the node this collection is associated with. + + + + + Represents event arguments for cell editing events. + + + + + Indicates the action that caused the event. + + + + + Indicates the cell that is affected. + + + + + Indicates new text that will be assigned to the cell if one is appropriate for given event. + + + + + Indicates whether the current action is cancelled. For BeforeCellEdit event setting this + property to true will cancel the editing. For AfterCellEdit event setting this property to + true will cancel any changes made to the text and edits will not be accepted. For CellEditEnding + event setting this property to true will keep the cell in edit mode. + + + + + Indicates whether editing operation was canceled by the end user, usually by pressing ESCAPE key. + + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + Indicates whether action is canceled by the end user. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + Indicates whether action is canceled by the end user. + + + + Gets reference to the cell editor control. + + + + + Represents class that holds images for a cell. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Initializes new instance of CellImages class. + + Reference to parent cell. + + + + Resets Image property to it's default value (null, VB nothing). + + + + + Resets ImageMouseOver to it's default value (null, VB nothing). + + + + + Resets ImageDisabled to it's default value (null, VB nothing). + + + + + Resets ImageExpanded to it's default value (null, VB nothing). + + + + Makes a copy of a CellImages object. + + + + Changes the image and invokes largest image size calculation if the + image size truly changed. + + + + + + + Returns image from image list based on the image index. + + Index of the image to return. + Image object from image list. + + + + Returns image from image list based on the image key. + + Key of the image to return. + Image object from image list. + + + + Gets or sets default cell image. Setting this property to valid image will + override any setting of ImageIndex property. + + + The image set through this property will be serialized with the cell. If you + plan to use ImageList then use ImageIndex + property. + + If you plan to use alpha-blended images we recommend using PNG-24 format + which supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 + do not support alpha-blending when used through Image class. + + + Image object or null (Nothing) if no image is assigned. + + + + Gets or sets the image that is displayed when mouse is over the cell. Setting + this property to valid image will override any setting of ImageMouseOverIndex + property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writting .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the image that is displayed when cell is disabled. If not assigned + disabled image is created from default cell image. Setting this property to valid image + will override any setting of ImageDisabledIndex property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets image that is displayed when Node that this cell belongs to is + expanded. Setting this property to valid image will override any setting of + ImageExpandedIndex property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the Index of default cell image from ImageList specified on AdvTree + control. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the key of the default cell image from ImageList specified on AdvTree control. + + + + + Property Editor support for ImageIndex selection + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of cell image when mouse is over the cell from ImageList + specified on AdvTree control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of cell image when mouse is over the cell from ImageList + specified on AdvTree control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of disabled cell image from ImageList specified on AdvTree + control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of disabled cell image from ImageList specified on AdvTree + control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of cell image from ImageList specified on AdvTree control + that is used when Node associated with this cell is expanded + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of cell image from ImageList specified on AdvTree control + that is used when Node associated with this cell is expanded + + + + + Gets or sets the parent node of the cell. + + + + + Gets whether CellImages object should be serialized or not. If object has all + default values then this property will return false. + + + + + Returns largest image size in this set of images. + + + + + Indicates whether assigned images are automatically disposed when the cell and node are disposed. Default value is false. + + + + Represents the node or tree ColumnHeader. + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with text. + + Text to initialize object with. + + + + Makes a copy of ColumnHeader object. + + Returns new instance of column header object. + + + + Sets the column bounds. + + + + + Resets Image property to it's default value (null, VB nothing). + + + + + Called when DataFieldName property has changed. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SortingEnabled property has changed. + + Old property value + New property value + + + + Called when SortDirection property has changed. + + Old property value + New property value + + + + Invalidates the appearance of column header. + + + + + Occurs after Tooltip text has changed. + + + + + Called when tooltip is shown and hidden. + + true if tooltip is being shown otherwise false. + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Automatically sets the column width (Width.Absolute) property based on the content of the column. + This will perform the one-time auto sizing of the column. To make column auto-size all the time + set Width.AutoSize=true. + + + + + Raises MouseMove event. + + Provides event arguments. + + + + Raises MouseEnter event. + + Provides event arguments. + + + + Raises MouseLeave event. + + Provides event arguments. + + + + Raises MouseHover event. + + Provides event arguments. + + + + Sort first level nodes that belong directly to this column. Calling this method repeatedly will + alternate between A-Z and Z-A sorting. + + + + + Sort first level nodes that belong directly to this column. + + true to use reverse Z-A sorting, false to sort from A-Z + + + + Called when SortComparer property has changed. + + Old property value + New property value + + + + Called when SortComparerReverse property has changed. + + Old property value + New property value + + + + Occurs when header size has changed due to the user resizing the column. + + + + + Occurs when mouse button is pressed over the column header. + + + + + Occurs when mouse button is released over the column header. + + + + + Occurs when header is double clicked. + + + + + Occurs when header is clicked. + + + + + Gets or sets whether cells content in this column is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets or sets the maximum number of characters the user can type or paste when editing cells in this column. + + + + + Returns name of the column header that can be used to identify it from the code. + + + + + Returns rectangle that this column occupies. If the layout has not been performed on the column the return value will be Rectangle.Empty. + + + + + Gets the reference to the object that represents width of the column as either + absolute or relative value. + + + Set Width using Absolute or Relative properties of ColumnWidth object. + + Absolute Property (DevComponents.AdvTree.ColumnWidth) + Relative Property (DevComponents.AdvTree.ColumnWidth) + + + + Gets or sets the minimum column width in pixels that is enforced when user is resizing the columns using mouse. + Default value is 0 which indicates that there is no minimum size constraint. + + + + + Gets or sets whether column is stretched to fill any empty space horizontally in tree when all columns consume less width than available. + Only one column in tree may have this property set to true and only last column with this property set will be stretched. + You should always set the Width for the column since Width will be used when columns consume more space in tree horizontally than available. + Applies to top-level columns only. + + + + + Gets or sets the style class assigned to the column. Empty value indicates that + default style is used as specified on cell's parent's control. + + + Name of the style assigned to the cell or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleNormal on AdvTree control is a root style for a cell. + + StyleMouseDown Property + StyleMouseOver Property + + + + Gets or sets the style class assigned to the column which is applied when mouse + button is pressed over the header. Empty value indicates that default + style is used as specified on column's parent. + + + Name of the style assigned to the column or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleMouseDown on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseOver Property + + + + Gets or sets the style class assigned to the column which is applied when mouse is + over the column. Empty value indicates that default style is used as specified on column's + parent control. + + + Name of the style assigned to the column or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleMouseOver on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseDown Property + + + + Gets or sets the name of the column in the ColumnHeaderCollection. + + + + + Gets or sets the column caption. + + + + + Gets or sets whether column is visible. Hiding the header column will also hide corresponding data column. + + + + + + Gets or sets Image alignment inside of column. Default value is Left. + + + + + Gets or sets the data-field or property name that is used as source of data for this column when data-binding is used. + + + + + Gets or sets additional custom data associated with the column. + + + + + Gets or sets the color of the cells background for this column. + + + + + Gets or sets display index of the column. -1 indicates default value and is modified to actual display index when the column is added to a ColumnHeaderCollection. + + + A lower display index means a column will appear first (to the left) of columns with a higher display index. + Allowable values are from 0 to num columns - 1. (-1 is legal only as the default value and is modified to something else + when the column is added to a AdvTree's column collection). AdvTree enforces that no two columns have the same display index; + changing the display index of a column will cause the index of other columns to adjust as well. + + + + + Gets or sets whether user can sort by this column by clicking it. + + + + + Gets or sets the sort direction. Sort direction can be changed by clicking the column header if SortingEnabled=true. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets whether tooltip is visible or not. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Returns reference to AdvTree control this column belongs to. + + + + + Gets or sets whether column is automatically sized to the content when user double-clicks the column + on the column resize line. Column resizing must be enabled in order for this property to function. + Default value is true which indicates that column will be auto-sized to content when user double-clicks the + column resize marker. + + + + + Gets or sets whether column size has changed and it's layout needs to be recalculated. + + + + + Gets whether mouse left button is pressed on the column. + + + + + Gets whether mouse is over the column. + + + + + Occurs when mouse is moving over the column header. + + + + + Occurs when mouse enters column header. + + + + + Occurs when mouse leaves the column header. + + + + + Occurs when mouse hovers over the column. + + + + + Gets or sets the editor type used to edit the cell. Setting this property to value other than Default + overrides the cell editor type specified on column cell belongs to. + + + + + Gets or sets ascending (A-Z) column comparer used to sort nodes when this column is clicked. Your comparer will be passed to NodeCollection.Sort method and should know how to sort by appropriate column. + + + + + Gets or sets descending (Z-A) column comparer used to sort nodes when this column is clicked. Your comparer will be passed to NodeCollection.Sort method and should know how to sort by appropriate column. + + + + + Gets or sets whether to cancel internal sorting performed by AdvTree. + + + + + Gets or sets the column header being sorted. + + + + + Gets or sets the IComparer used for sorting. + + + + + Defines column related event arguments. + + + + + Gets reference to the column. + + + + + Initializes a new instance of the ColumnEventArgs class. + + + + + + Defines delegate for ColumnMoved event. + + + + + Defines column moved event arguments. + + + + + Gets the column display index before the column was moved. + + + + + Gets the column display index before the column was moved. + + + + + Initializes a new instance of the ColumnMovedEventArgs class. + + Column affected + Old display index + New display index + + + + Represents collection for ColumnHeader objects. + + + + + Default constructor. + + + + + Sets the node collection belongs to. + + ColumnHeader that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns index of the object inside of the collection. + + Name of column to return index for. + Index of the column or -1 if column not found. + + + + Returns index of the object inside of the collection based on column DataFieldName. + + DataFieldName of column to return index for. + Index of the column or -1 if column not found. + + + + Returns index of the object inside of the collection based on column DataFieldName. + + DataFieldName of column to return index for. + Index of the column or -1 if column not found. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Called when SortDirection property on column header is set to value other than None. + + Ref to column header + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColumnHeader array. + + Array to copy to. + + + + Gets the display index for specified column. + + Column that is part f ColumnHeaderCollection + Display index or -1 column is not part of this collection. + + + + Returns the column that is displayed at specified display index.. + + 0 based display index. + ColumnHeader + + + + Invalidates the display indexes and causes them to be re-evaluated on next layout. + + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Occurs before the cells are sorted. + + + + + Gets whether a column that is part of this collection has SortDirection set. + + + + + A map of display index (key) to index in the column collection (value). Used to quickly find a column from its display index. + + + + + Gets reference to last visible column or null if there is no last visible column. + + + + + Gets reference to first visible column or null if there is no first visible column. + + + + + Gets the column header rendering bounds. + + + + + Initializes a new instance of the IndexToDisplayIndex class. + + + + + + + Initializes a new instance of the ColumnHeaderControl class. + + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + X coordinate + Y coordinate + + + + + Gets or sets the column move marker that marks insertion point for column that is dragged. Marker is drawn before the column specified by this index. + + + + + Gets or sets the column header collection to be rendered. + + + + + Represents the width of the Column. Supports absolute width in Pixels and + relative width as percentage of the width of parent control. + + + + + Creates new instance of the object. + + + + + Gets or sets relative width expressed as percentage between 1-100. 0 indicates that + absolute width will be used. + + + Relative width is expressed as percentage between 1-100 of the parent controls + width. 0 indicates that absolute width will be used. Absolute width always takes + priority over relative width. For example value of 30 assigned to this property + indicates that width of the column will be 30% of the total client width of the + control. + + + + Gets or sets the absolute width of the column in pixels. + + Absolute width always takes precedence over the relative width of the + column. + + + + + Gets or sets whether column width is automatically set based on the column's content. Default value is false. + When set absolute and relative size values are ignored. + + + + + Gets or sets whether column auto-width is set to minimum of the column header text width. Applies to AutoSize=true only. + + + + + Gets the auto-size calculated width of the column after tree layout is performed and column has AutoSize=true. + + + + + Provides event arguments for command button events. + + + + + Default constructor. + + Action type. + Context node. + + + + Indicates the action type that caused the event. + + + + + Indicates the node action is peformed on. + + + + + Represents collection of connector points for a node. + + + + + Default constructor. + + + + + Sets the node collection belongs to. + + Node that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds range of objects to the array. + + Array to add. + + + + Copies objects of the collection to the array. + + + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColumnHeader array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Control for input of the integer value. + + + + + Represents an control that allows numeric input. + + + + + Closes all popups managed by the owner control. + + + + + Defines interface that should be implemented by controls that support per control renderers. + + + + + Gets the renderer control will be rendered with. This can be either custom renderer set on the control or the + Rendering.GlobalManager specified renderer. + + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Defines interface for internal accessibility support for DotNetBar control. + + + + + Gets or sets the item default accesibility action will be performed on. + + + + + Provides support for custom localization. + + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Forces the button to perform internal layout. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Generates a Click event for the control. + + + + + Returns the collection of items with the specified name. This member is not implemented and should not be used. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. This member is not implemented and should not be used. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Control is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Gets/Sets the visual style for the button. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets button Color Scheme. ColorScheme does not apply to Office2007 styled buttons. + + + + + Specifies whether button is drawn using Windows Themes when running on OS that supports themes like Windows XP. + + + + + Gets whether Windows Themes should be used to draw the button. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets or sets the form button is attached to. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Creates new instance of the class. + + + + + Resets the input position so the new input overwrites current value. + + + + + Called when InputHorizontalAlignment property value has changed. + + Old value. + New Value. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Selects next input field if possible. + + true if next input field was selected otherwise false. + + + + Selects previous input field if possible. + + true if previous input field was selected otherwise false. + + + + ISupportInitialize.BeginInit implementation. While initialization is in progress ValueChanged events will not be fired. + + + + + ISupportInitialize.EndInit implementation. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Gets or sets whether control system buttons are rendered. Default value is true. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets whether watermark text should be rendered. + + + + + Gets or sets whether mouse wheel affects the input control. Default value is true. + + + + + Gets whether keyboard focus is within the control. + + + + + Gets the reference to internal visual item used as the root visual for the control. Using this property is in all cases not necessary except for some + very advanced usage scenarios. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed if set for the input items. Default value is true. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets the watermark text alignment. Default value is left. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Specifies the background style of the control. + + + + + Gets the preferred height of the control. + + + + + Gets or sets the keys used to navigate between the input fields provided by this control. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that background is not changed when control is disabled. + + + + + Gets or sets the control text color when control is disabled. Default value is an empty color which indicates that background is not changed when control is disabled. + + + + + Gets the system colors used by the control. + + + + + Defines an interface for the object that knows how to invoke a command. + + + + + Gets or sets the command that will be executed when the command source is invoked. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Initializes a new instance of the NumericInputBase class. + + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Gets or sets a value indicating whether a spin button control (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control is shown to adjust value of currently focused input item. + The value can be adjusted by using the up and down buttons to change the value. + + + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Called when Command property value changes. + + + + + + + + + + + Occurs when the Value or IsEmpty property changes. + + This event is not raised when the entered date is earlier than MinDateTime or later than MaxDateTime. + + + + + + Occurs when the Value or IsEmpty property changes. This event occurs at the same time and has same function as ValueChanged event. It is provided for binding support. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes read-only and does not allow the typing. However, drop-down and up/down buttons part if visible still allows user to possibly change the value of the control through the method you can provide on drop-down or through up/down buttons. Use this property to allow change of the value through drop-down or up/down buttons only. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the input value. + Set to true if a check box is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the input in the control. When the check box is selected, the value can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets the object that describes the settings for the button that displays popup calculator. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose only, not for the input purpose. + For example to display the number in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that IsEmpty property + may return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether control is empty i.e. it does not hold a valid value. + + + + + Specifies the behavior of ValueChanged event triggering. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the keyboard key that will toggle FreeTextEntryMode. Default value is Keys.None. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to dates like Today to today's date or Now to date and time now etc. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets the value displayed in the control. + + + + + Gets or sets the value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is int type or null. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Control for input of the integer value. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets the value displayed in the control. + + + + + Gets or sets the value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is int type or null. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Initializes a new instance of the DateTimeInput class. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Gets or sets the default date-time values that are used by the control. + + + + + Gets or sets a value indicating whether a spin button control (up-down control) is used to adjust the date/time value. The default is false. + + When the ShowUpDown property is set to true, a spin button control is shown to adjust value of currently focused input item. + The date and time can be adjusted by selecting each element individually and using the up and down buttons to change the value. + + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Resets Value property to default value. Used by Windows Forms designer. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Gets the Culture used by the date time input and month calendar controls + + reference to CultureInfo + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Called when DateTimeSelectorVisibility property has changed. + + Old property value + New property value + + + + Called when TimeFormat property has changed. + + Old property value + New property value + + + + Called when TimeSelectorType property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + + + + + + + Occurs when the Value or IsEmpty property changes. + + This event is not raised when the entered date is earlier than MinDateTime or later than MaxDateTime. + + + + + + Occurs when the Value or IsEmpty property changes. This event occurs at the same time and has same function as ValueChanged event. It is provided for binding support. + + + + + Occurs when the Format property value has changed. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Gets whether popup calendar is open. + + + + + Gets or sets whether selected date on popup calendar can be changed using keyboard arrow keys. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Set to true if a check box is displayed to the left of the selected date; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the date in the control. When the check box is selected, the date/time value can be updated. When the check box is cleared, the date/time value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets the date time value of the control. You can use IsEmpty property to check whether control holds an empty value. + Setting this property to System.DateTime(0) will also make the control Empty if AllowEmptyState=true. + + + + + Gets or sets the date/time value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is DateTime object or null to indicate no date selected. + + + + + Gets or sets the values of the nested DateTimeGroup items. + + When nested date-time groups are used note that some of the features of the control are disabled, notably minimum and maximum values + for nested date-times. + + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that IsEmpty property + may return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether control is empty i.e. it does not hold a valid DateTime value. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the format date/time is displayed in. To specify custom format set this value to Custom and specify custom format using CustomFormat property. + + + + + Gets or sets the custom date/time format string. + + + + To display string literals that contain date and time separators or format strings listed below, + you must use escape characters in the substring. For example, to display the date as "June 15 at 12:00 PM", + set the CustomFormat property to "MMMM dd 'at' t:mm tt". If the "at" substring is not enclosed by escape characters, + the result is "June 15 aP 12:00PM" because the "t" character is read as the one-letter A.M./P.M. format string (see the format string table below). + + + To display single quote in custom format use two single quotes characters like so '' after each other and they will be displayed as single quote. + + The following list shows all the valid format strings and their descriptions: + + + Format String + Description + + + d + The one- or two-digit day. + + + dd + The two-digit day. Single-digit day values are preceded by a 0. + + + ddd + The three-character day-of-week abbreviation. + + + dddd + The full day-of-week name. + + + jjj + The three-digit day-of-year day. Single and two-digit values are preceded by 0. + + + j + The three-digit day-of-year day. + + + h + The one- or two-digit hour in 12-hour format. + + + hh + The two-digit hour in 12-hour format. Single digit values are preceded by a 0. + + + H + The one- or two-digit hour in 24-hour format. + + + HH + The two-digit hour in 24-hour format. Single digit values are preceded by a 0. + + + m + The one- or two-digit minute. + + + mm + The two-digit minute. Single digit values are preceded by a 0. + + + M + The one- or two-digit month number. + + + MM + The two-digit month number. Single digit values are preceded by a 0. + + + MMM + The three-character month abbreviation. + + + MMMM + The full month name. + + + s + The one- or two-digit seconds. + + + ss + The two-digit seconds. Single digit values are preceded by a 0. + + + t + The one-letter A.M./P.M. abbreviation (A.M. is displayed as "A"). + + + tt + The two-letter A.M./P.M. abbreviation (A.M. is displayed as "AM"). + + + y + The one-digit year (2001 is displayed as "1"). + + + yy + The last two digits of the year (2001 is displayed as "01"). + + + yyyy + The full year (2001 is displayed as "2001"). + + + { + Starts the nested date-time group inside of the control. Note that nested groups must always be closed. + Nested date-time groups can be used to represent range of input date/time values in the control + To access nested values use Values property. For example to have control represent the input from two time values you could set + CustomFormat to 'from' {HH:mm} 'to' {HH:mm} which will create two nested date/time groups that represent the time value. Entered + time values can be accessed through Values property which return an array of all input values. + + + } + Ends the nested date-time input group. + + + + + + + Gets or sets the CultureInfo for the culture used by the DateTime Input controls and Month Calendar controls. + Default value is null which indicates that controls will use CurrentUICulture. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + Gets the object that describes the settings for the button that shows drop-down calendar when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes + read-only and does not allow the typing. However, drop-down part if visible still allows user to change the value of the control + Use this property to allow change of the value through drop-down picker only. + + + + + Gets or sets whether empty input values (year, month or day) are set to defaults while user is entering data. Default value is true. + + + + + Gets the reference to the internal MonthCalendarItem control which is used to display calendar when drop-down is open. + + + + + Gets or sets whether first day in month is automatically selected on popup date picker when month or year is changed. + + + + + Gets or sets whether input focus is automatically advanced to next input field when input is complete in current one. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets the date-time selectors visibility on popup. Default value is Auto which will select selector visibility based on Format property setting. + + + + + Returns reference to internal time selector item which is used on drop-down to select time when control is used in time entry mode. + + + + + Gets or sets the popup time selector time format used to present time by the selector i.e. 12H or 24H format. + + + + + Indicates the type of popup time selector used. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to dates like Today to today's date or Now to date and time now etc. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Initializes a new instance of the DateTimeCellEditor class. + + + + + Represents cell display class. + + + + + Represents information necessary to paint the cell on canvas. + + + + + Initializes the tree color tables. + + + + + Provides data for RenderColumnHeader event. + + + + + Gets the column header that is rendered. + + + + + Target Graphics canvas. + + + + + Gets the bounds of the column header. + + + + + Gets the effective style for the column. + + + + + Gets the AdvTree control header is rendered for. + + + + + Gets or sets the color of the column sort indicator. + + + + + Initializes a new instance of the ColumnHeaderRendererEventArgs class. + + + + + Initializes a new instance of the ColumnHeaderRendererEventArgs class. + + + + + + + + + Represents helper class for node connector display. + + + + + From node reference. + + + + + From node style reference. + + + + + To node reference. + + + + + To node style reference. + + + + + Graphics object used for drawing. + + + + + Node offset since some node coordinates are relative. + + + + + Indicates whether from node is a root node. + + + + + Reference to node connector object that describes connector type. + + + + + Gets or sets whether connector is link connector. + + + + + Reference to the collection of the connector path points. Default value is null indicating there are no path points. + + + + + Provides data for the NodeRenderer.RenderDragDropMarker event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the selection bounds. + + + + + Initializes a new instance of the DragDropMarkerRendererEventArgs class. + + + + + Initializes a new instance of the DragDropMarkerRendererEventArgs class. + + + + + + + Represents the line connector display class. + + + + + Base class for drawing node connectors. + + + + + Creates new instance of the object. + + + + + Draws connector line between two nodes. + + Connector context information. + + + + Returns new instance of pen object for node connector line. Caller is responsible for + disposing of this object. + + Node connector display info. + New instance of Pen object. + + + + Draws connector line between two nodes. + + Connector context information. + + + + Provides information for cell rendering methods and events. + + + + + Summary description for NodeRendererEventArgs. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to Node object being rendered. + + + + + Gets or sets the absolute node bounds. + + + + + Gets or sets the reference to element style for rendered node or cell. Style provided here is the style + for current node or cell state. + + + + + Gets or sets color that is passed to renderer. May be Color.Empty. + + + + + Creates new instance of the class. + + + + + Gets or sets the cell being rendered. + + + + + Gets or sets absolute cell bounds. + + + + + Gets or sets the internal cell offset. + + + + + Gets or sets the color scheme. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + Reference to context node. + Reference to node bounds + Reference to cell style + Reference to cell + Reference to cell bounds + + + + Represents custom connector path info. + + + + + Summary description for NodeDisplay. + + + + Creates new instance of the class + Object to initialize class with. + + + + Paints the layout on canvas. + + + + + Sets locked offset to specific value. Point.Empty means there is no locked offset set. + + New locked offset. + + + + + + + + + + Gets or sets the offset of the tree content relative to the size of the container control. + + + + Gets or sets whether offset is locked, i.e. cannot be changed. + + + + Returns the default offset for the tree content relative to the size of the container. + + + + + Gets or sets the reference to the tree control managed by display class. + + + + + Base class for node expand button display. + + + + Creates new instance of the class + + + Draws expand button. + Context parameters for drawing expand button. + + + + Represents class that paints elliptical expand button. + + + + Draws ellipse type expand button. + Expand context drawing information. + + + + Represents expand button display using predefined images. + + + + + Draws image type expand button. + + Expand context information + + + + Represents event arguments for RenderExpandPart event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to Node object being rendered. + + + + Expand part bounds + + + Expand part border color + + + Expand part line color + + + Expand part background color + + + Expand part target gradient background color + + + Gradient angle + + + Expand part image when node is expanded + + + Expand part image when node is collapsed + + + Internal support for expand button types + + + Gets whether mouse is over expand part + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + + + + Represents class that paints rectangular expand button. + + + + + Draw rectangular type expand button. + + Expand button context information. + + + + Draw triangular type expand button. + + Expand button context information. + + + + Represent class that paints selection around node. + + + + + Represents default system node and cell renderer. + + + + + Represents abstract renderer class for node objects. + + + + + Draws node background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeBackground event. + + Event arguments. + + + + Draws node expand part. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeExpandPart method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeExpandPart event. + + + + + + Draws cell background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellBackground event. + + Event arguments + + + + Draws cell check box. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellCheckBox method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellCheckBox event. + + Event arguments + + + + Draws cell image. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellImage method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellImage event. + + Event arguments + + + + Draws cell text. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellText method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellImage event. + + Event arguments + + + + Draws selection for SelectedNode. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSelection method so events can occur. + + Information provided for rendering. + + + + Raises RenderSelection event. + + Event data. + + + + Draws hot-tracking marker for mouse over node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderHotTracking method so events can occur. + + Information provided for rendering. + + + + Raises RenderHotTracking event. + + Event data. + + + + Draws connector between nodes. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderConnector method so events can occur. + + Information provided for rendering. + + + + Raises RenderConnector event. + + Event data. + + + + Draws the tree background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTreeBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderTreeBackground event. + + Event data. + + + + Draws the drag & drop marker that indicates the insertion point for the node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderDragDropMarker method so events can occur. + + Information provided for rendering. + + + + Raises RenderDragDropMarker event. + + Event data. + + + + Draws the column header. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColumnHeader method so events can occur. + + Information provided for rendering. + + + + Raises RenderDragDropMarker event. + + Event data. + + + + Draws node group line when in tile view. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTileGroupLine method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeBackground event. + + Event arguments. + + + + Occurs when node background is being drawn. + + + + + Occurs when node expand part is being drawn. + + + + + Occurs when cell background is being drawn. + + + + + Occurs when cell check-box is being drawn. + + + + + Occurs when cell image is being drawn. + + + + + Occurs when cell text is being drawn. + + + + + Occurs when node selection marker is rendered. + + + + + Occurs when node hot-tracking marker is rendered. + + + + + Occurs when node connector is being drawn. + + + + + Occurs when tree background is rendered. + + + + + + Renders the Column Header. + + + + + Occurs when node group line is being rendered while control is in tile view. + + + + + Gets or sets the color table used by the renderer. + + + + + Gets or sets the color table used by the renderer. + + + + + Returns ElementStyleDisplayInfo class that provides information for ElementStyle rendering. + + Reference to style. + Reference to graphics object. + Style bounds + New instance of ElementStyleDisplayInfo + + + + Draws node background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeBackground method so events can occur. + + Information provided for rendering. + + + + Draws node expand part. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeExpandPart method so events can occur. + + Information provided for rendering. + + + + Draws cell background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellBackground method so events can occur. + + Information provided for rendering. + + + + Draws cell check box. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellCheckBox method so events can occur. + + Information provided for rendering. + + + + Draws cell image. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellImage method so events can occur. + + Information provided for rendering. + + + + Draws cell text. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellText method so events can occur. + + Information provided for rendering. + + + + Draws selection for SelectedNode. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSelection method so events can occur. + + Information provided for rendering. + + + + Draws hot-tracking marker for mouse over node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderHotTracking method so events can occur. + + Information provided for rendering. + + + + Draws connector between nodes. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderConnector method so events can occur. + + Information provided for rendering. + + + + Draws the tree background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTreeBackground method so events can occur. + + Information provided for rendering. + + + + Draws the drag & drop marker that indicates the insertion point for the node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderDragDropMarker method so events can occur. + + Information provided for rendering. + + + + Draws the column header. If you need to provide custom rendering this is the method that you should override in your custom renderer. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColumnHeader method so events can occur. + + Information provided for rendering. + + + + Draws node group line when in tile view. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTileGroupLine method so events can occur. + + Information provided for rendering. + + + + Summary description for NodeTreeDisplay. + + + + Creates new instance of the class + Object to initialize class with. + + + + Paints the tree on canvas. + + + + + Defines the color table for tree selection. + + + + + Gets or sets the outer border for the selection. + + + + + Gets or sets the outer border corner radius. + + + + + Gets or sets the inner border for the selection. + + + + + Gets or sets the selection fill. + + + + + Gets or sets the selection text color. + + + + + Data form RenderSelection event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to selected Node object. + + + + + Gets or sets the selection bounds. + + + + + Gets or sets the node selection box style. + + + + + Gets or sets whether tree control is active, focused. + + + + + Provides data for tree background rendering events. + + + + + Gets or sets reference to Graphics object, canvas tree background is rendered on. + + + + + Gets or sets the reference to AdvTree control. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + + + + Defines the Tree color table. + + + + + Gets or sets the color table used for the node selection display. + + + + + Gets or sets the color for node drag & drop marker. + + + + + Gets or sets the color of tree expand button type of rectangle. + + + + + Gets or sets the color of tree expand button type of Ellipse. + + + + + Gets or sets the color of tree expand button type of Triangle. + + + + + Gets or sets the color for tree grid lines. + + + + + Gets or sets the color of the column sort indicator which is rendered on columns when sorted. + + + + + Defines the color table for node expand button. + + + + + Gets or sets the border for the expand button which expands the node. + + + + + Gets or sets the expand button fill for button that expands the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which expands the node. + + + + + Gets or sets the expand button fill for button that expands the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which collapses the node. + + + + + Gets or sets the expand button fill for button that collapses the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which collapses the node. + + + + + Gets or sets the expand button fill for button that collapses the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Defines the color table for tree selection. + + + + + Gets or sets the color table for FullRowSelect selection type. + + + + + Gets or sets the color table for FullRowSelect selection type when tree control is inactive. + + + + + Gets or sets the color table for HighlightCells selection type. + + + + + Gets or sets the color table for HighlightCells selection type when tree control is inactive. + + + + + Gets or sets the color table for NodeMarker selection type. + + + + + Gets or sets the color table for NodeMarker selection type when tree control is inactive. + + + + + Gets or sets the color table used for node hot-tracking. + + + + + Creates the pen for the border. + + Returns pen or null if pen cannot be created. + + + + Gets or sets the border width. Default value is 0. + + + + + Represents Collection for the ColorStop objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColorStop array. + + Array to copy to. + + + + Creates ColorBlend object based on the members of the collection. ColorBlend object will be valid only if all members of the collection + represents relative/percentage based color blends. + + + + + + Adds the ColorStop objects from the collection. + + Collection to copy objects from + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Returns reference to the object in collection based on it's index. + + + + + Defines single color blend point for the multicolor gradient fills. + + + + + Creates new instance of the class. When defining multicolor gradient blends and using the percentage positions the positions created + must start with 0f and end with 1f. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Gets or sets Color to use in multicolor gradient blend at specified position. + + + + + Gets or sets the color position in multicolor gradient blend. Values less or equal to 1 are used as percentage specifing percentages of distance along the gradient line. + Values greater than 1 are used as absolute pixel values of distance along the gradient line. + + + + + Represents BackgroundColorBlend object converter. + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Creates a pen based on fill parameters. + + Width of the pen to create + new instance of pen or null if pen cannot be created. + + + + Initializes a new instance of the GradientFill class. + + + + + Initializes a new instance of the GradientFill class. + + + + + + + Initializes a new instance of the GradientFill class. + + + + + + + + Initializes a new instance of the GradientFill class. + + + + + + Initializes a new instance of the GradientFill class. + + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Creates a pen based on fill parameters. + + Width of the pen to create + new instance of pen or null if pen cannot be created. + + + + Gets or sets the starting gradient fill color. + + + + + Gets or sets the end gradient fill color. + + + + + Gets the collection that defines the multicolor gradient background. + + + Setting this property creates a multicolor gradient with one color at each position along the gradient line. Setting this property nullifies all previous color, position, and falloff settings for this gradient fill. + + + + + Gets or sets the gradient fill angle. Default value is 90. + + + + + Defines a visual shape. + + + + + Renders shape on canvas. + + Target graphics to render shape on. + Shape bounds. + + + + Gets or sets the single piece of content inside of the shape. + + + + + Gets or sets whether to clip the Content of this shape. Default value is false. + + + + + Renders rectangle on canvas. + + Target graphics to render shape on. + Shape bounds. + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Gets or sets shape border. + + + + + Gets or sets the shape fill. + + + + + Gets or sets the CornerRadius. + + + + + Initializes a new instance of the SolidBorder class. + + + + + + + Initializes a new instance of the SolidBorder class. + + + + + + Initializes a new instance of the SolidBorder class. + + + + + Creates the pen for the border. + + Returns pen or null if pen cannot be created. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets or sets the fill color. + + + + + Initializes a new instance of the SolidFill class. + + + + + + Initializes a new instance of the SolidFill class. + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets or sets the fill color. + + + + + Specifies layout of the items in AdvTree control. + + + + + Standard TreeView layout. + + + + + ListView style tile layout. + + + + Specifies the way background image is displayed on background. + + + Image is stretched to fill the background + + + Image is centered inside the background + + + Image is tiled inside the background + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + Indicates alignment of a part of the cell like image or check box in relation to the text. + + + + Part is aligned to the left center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the right center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the top left of the text assuming left-to-right + orientation. + + + + Part is aligned above the text and centered. + + + + Part is aligned to the top right of the text assuming left-to-right + orientation. + + + + + Part is aligned to the bottom left of the text assuming left-to-right + orientation. + + + + Part is aligned below the text and centered. + + + + Part is aligned to the bottom right of the text assuming left-to-right + orientation. + + + + + Part has default alignment that depends on the parent control view. + + + + + Specifies how to trim characters from a text that does not completely fit into a element's shape. + + + + + Specifies that the text is trimmed to the nearest character. + + + + + Specifies that the text is trimmed to the nearest character, and an ellipsis is inserted at the end of a trimmed line. + + + + + The center is removed from trimmed lines and replaced by an ellipsis. The algorithm keeps as much of the last slash-delimited segment of the line as possible. + + + + + Specifies that text is trimmed to the nearest word, and an ellipsis is inserted at the end of a trimmed line. + + + + + Specifies no trimming. + + + + + Specifies that text is trimmed to the nearest word. + + + + + Indicates absolute vertical alignment of the content. + + + + + Content is aligned to the top + + + + + Content is aligned in the middle + + + + + Content is aligned at the bottom + + + + + Indicates absolute horizontal alignment + + + + + Content is left aligned + + + + + Content is centered + + + + + Content is right aligned + + + + + Indicates prefered node layout position on Map tree layout when node is the child node of the top-level root node. + + + + + Node is positioned based on default algorithm. + + + + + Sub-root node and all nodes after it are positioned to the left of the root. + + + + + Sub-root node and all nodes before it are positioned to the right of the root. + + + + + Specifies the column header visibility for the node. + + + + + Column header is automatically shown/hidden based on the node's position in the tree. When + Node is first child node i.e. with index=0 the header will be shown, otherwise header will + be hidden. + + + + + Column header is always displayed regardless of node's position. + + + + + Column header is always hidden regardless of node's position. + + + + + Indicates the part of the node. + + + + + Bounds of complete node content except expand button. This also includes the child node bounds if node is expanded. + + + + + Bounds of the expand button which collapses/expands the node. + + + + + Hit test bounds of the expand button which collapses/expands the node used by mouse routines to trigger node expansion/collapse. + + + + + Bounds of all child nodes of give node. + + + + + Bounds for cells inside a node. + + + + + Complete node bounds including expand button. + + + + + Bounds of the command button. + + + + + Bounds of child node columns if node has columns defined. + + + + + Indicates the part of the cell. + + + + + Bounds of check box or Rectangle.Empty if there is no check-box. + + + + + Bounds of image inside the cell or Rectangle.Empty if there is no image. + + + + + Text bounds inside of cell. + + + + + Cell bounds + + + + + Indicates part of the node mouse is placed over. + + + + + Mouse is not over any node part. + + + + + Mouse is placed over the node. + + + + + Mouse is placed over node expand button. + + + + + Mouse is placed over the cell. + + + + + Mouse is placed over the command button. + + + + + Indicates the visibility of node expand part which allows user to expand/collaps node. + + + + + Default setting which indicates that when node has child nodes expand part is visible otherwise it is hidden. + + + + + Expand part is always visible regardless of whether child nodes are present or not. + + + + + Expand part is always hidden regardless of whether child nodes are present or not. + + + + + Specifies the action that raised a AdvTreeEventArgs event + + + + + The event was caused by a keystroke. + + + + + The event was caused by a mouse operation. + + + + + The event was caused by the Node collapsing. + + + + + The event was caused by the Node expanding. + + + + + The event is caused programmatically from user code. + + + + + Specifies node connector type. Node connector is the type of the line/connection that is drawn to connect child node to it's parent node. + + + + + Straight line connector type. + + + + + Specifies the layout type used to position the cells within the nodes. + + + + + Specifies that default setting is to be used for cell layout. Default is Horizontal. When set to default on the Node, setting from Tree control is used. + + + + Horizontal layout positions the cells horizontally next to each other. + + + + Vertical layout positions cell vertically on top of each other. + + + + + Specifies the layout type used to position the parts of the cell like image, checkbox and text. + + + + + Specifies that default setting is to be used for cell parts layout. Default is Horizontal. When set to default on the Cell, setting from Tree control is used. + + + + Horizontal layout positions the parts of the cell horizontally next to each other. + + + + Vertical layout positions parts of the cell vertically on top of each other. + + + + + Specifies the color scheme loaded by ColorScheme object. + + + + + Indicates Office 2003 like color scheme. + + + + + Indicates VS.NET 2005 like color scheme. + + + + + Indicates Office 2007 like color scheme. + + + + + Specifies the currently selected system color scheme if running on Windows XP. + + + + + Color scheme cannot be determined. + + + + + Blue color scheme. + + + + + Olive green color scheme. + + + + + Silver color scheme. + + + + + Specifies the flow of diagram layout related to the root node. + + + + + Nodes are positioned from left to right with root node being the left-most node. + + + + + Nodes are positioned from right to left with root node being the right-most + node. + + + + + Nodes are positioned from top to bottom with root node being the top node. + + + + + Nodes are positioned from bottom to top with root node being bottom node. + + + + + Specifies the flow of the map layout. + + + + + Nodes are arranged around the root node. + + + + + Nodes are arranged from below the root node. + + + + + Nodes are arranged above the root node. + + + + + Nodes are arranged to the right of the root node. + + + + + Nodes are arranged to the left of the root node. + + + + + Specifies the type of the expand button. + + + + + Indicates elliptical expand button. + + + + + Indicates rectangular expand button. + + + + + Indicates that images are used for expand button. + + + + + Indicates the Windows Vista style expand button. + + + + + Specifies the visual style for the tree control. + + + + + Indicates default visual style. + + + + + Specifies the layout type for the nodes. + + + + + Nodes are arranged around root node in map format. + + + + + Nodes are arranged from left-to-right in diagram format. + + + + + Specifies renderer type used to render nodes. + + + + + Specifies default renderer which allows most customization through AdvTree + properties. Default renderer integrates with the Style architecture to provide + customization on renderer behavior. + + + + + Specifies that custom renderer is used. When set you must also set NodeRenderer + to renderer you want to use. + + + + + Specifies the node selection style. + + + + + Node selector highlights the complete node row when node is selected. + + + + + Node selector draws the rectangle that highlights the node content. Appearance similar to system tree view in Windows Vista. + + + + + Node selector draws hollow selection rectangle around the node. + + + + + Specifies the rule for multi-node selection. + + + + + Allows multiple selection of nodes with same parent node only. + + + + + Allows multiple selection of any node. + + + + + Gets or sets the image alignment inside of column header. + + + + + Image is left aligned. + + + + + Image is right aligned. + + + + + Specifies the editor type used when cell is edited. + + + + + Indicates default, text based editor. + + + + + Indicates that Integer numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that Double numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that Currency numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that date editor will be used for editing the value of the cell or column. + + + + + Indicates that time editor will be used for editing the value of the cell or column. + + + + + Indicates that date and time editor will be used for editing the value of the cell or column. + + + + + Indicates that cell will use custom editor that you provide by handling AdvTree.ProvideCustomCellEditor event. + + + + + Specifies the sort direction for the column header. + + + + + No sort is specified. + + + + + Ascending sorting is in effect, i.e. A-Z + + + + + Descending sorting is in effect, i.e. Z-A + + + + + Defines the delegate for AdvTree cell based action events. + + + + + Defines the delegate for AdvTree cell based action events. + + + + + Defines the delegate for AdvTree node based action events that can be cancelled. + + + + + Defines the delegate for AdvTree node based action events. + + + + + Defines delegate for Command button events. + + + + + Defines delegate for label editing events. + + + + + Defines the delegate for AdvTree node based action events. + + + + + Defines the delegate for BeforeNodeDrop and AfterNodeDrop events + + + + + Defines the delegate for NodeDragFeedback event. + + + + + Defines the delegate for mouse based node events + + + + + Defines delegate for node rendering events. + + + + + Defines delegate for cell rendering events. + + + + + Defines delegate for RenderExpandPart event. + + + + + Defines delegate for RenderExpandPart event. + + + + + Defines delegate for RenderConnector event. + + + + + Defines delegate for TreeBackgroundRenderer events. + + + + + Defines delegate for RenderDragDropMarker event. + + + + + Defines delegate for RenderColumnHeader event. + + + + + Provides data for the ProvideCustomCellEditor event. + + + + + Gets or sets the cell editor. You must set this property in your event handler to the custom + editor to be used for cell editing. + + + + + Gets the cell editor will be used for. + + + + + Initializes a new instance of the CustomCellEditorEventArgs class. + + + + + + Defines delegate for ProvideCustomCellEditor event. + + + + + Provides more information about MarkupLinkClick event. + + + + + Gets the value of href attribute from the markup link that was clicked. + + + + + Gets the value of name attribute from the markup link that was clicked. + + + + + Creates new instance of the object. + + Value of name attribute. + Value of href attribute. + + + + Defines delegate for MarkupLinkClick event. + + + + + Represents arguments for SerializeNode event which allows you to add custom serialization data to definitions saved by control. + + + + + Gets reference to the node being serialized or de-serialized. + + + + + Gets reference to instance of XmlElement that item is serialized to or is being de-serialized from. You should not change any data directly on this element. + + + + + Gets the reference to XmlElement that you can serialize to or de-serialize any custom data from. You can add child elements or set the attributes on + this XmlElement when handling SerializeItem event. When handling DeserializeItem event you can load your data from this element. + + + + + Defines delegate for SerializeItem event. + + + + + Represents the table header. + + + + + Default constructor. + + + + + Gets the reference to the collection that contains the columns associated with header. + + + + + Gets or sets the name associated with this header definition. + + + + + Represents collection for HeaderDefinition objects. + + + + + Sets the node collection belongs to. + + HeaderDefinition that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the HeaderDefinition array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Provides WinApi functions to rest of the application. + + + + + Resets Hoover timer for specified control. + + + + + Provides AdvTree Keyboard handling. + + + + + Represents class for Node's cell layout. + + + + + Offset cell bounds, check box bounds, image bounds and text bounds by specified offset. + + Cell to offset. + Horizontal offset in pixels. + Vertical offset in pixels. + + + + Returns spacing between check box and image if both are displayed + + + + + Returns spacing between image or checkbox and text + + + + + Returns vertical spacing between cells in a node + + + + + Spacing between different parts of the cell, like image, option button, text and expand button area + + + + + Initializes a new instance of the CellTileLayout class. + + + + + Class that is used to layout column header. + + + + + Gets or sets the vertical spacing between nodes in pixels. + + + + + Gets or sets the horizontal spacing between nodes in pixels. + + + + + Returns horizontal spacing between cells in a node + + + + + Returns width of the expand button area. Default is 24 pixels. + + + + + Gets or sets the size of the expand part that is expanding/collapsing the node. Default value is 8,8. + + + + + Gets or sets width of command button area. Default is 8 pixels. + + + + + Summary description for NodeLayout. + + + + + Performs layout of the nodes inside of the tree control. + + + + + Performs layout for single unassigned node. Node does not have to be part of the tree control. + + Node to perform layout on. + + + + Resizes all styles and prepares them for layout. + + + + + Returns default top-level columns for tree control. + + Returns array list of ColumnInfo objects. + + + + Returns column information for a given node. + + Node to return column information for + Returns array list of ColumnInfo objects or null if there are no columns defined. + + + + Returns column header collection for the given column template name. + + Name of the column template. + Column header collection or null if template name cannot be found. + + + + Sets the position and size of the node command button. + + Node layout context information + + + + Determines the rectangle of the +/- part of the tree node that is used to expand node. + + Node layout context information + + + + Returns the size of the node expand part. + + Size of the expand part, default 8,8. + + + + Provides the layout for single node. + + Layout information. + + + + Returns true if given node has expand part. + + Layout context information. + + + + + Returns whether given node has command part. + + Layout context information. + True if command part should be drawn otherwise false. + + + + Returns class responsible for cell layout. + + Cell layout class. + + + + Offsets node location and location of it's child nodes bounds. + + Node to offset. + Horizontal offset. + Vertical offset. + + + + Gets or sets layout settings. + + + + + Gets or sets the child node indent in pixels. + + + + + Returns true if root node should have expanded part + + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Initializes a new instance of the NodeColumnInfo structure. + + + + + + + Gets or sets the list of column info object for the columns. + + + + + Gets or sets whether columns have auto-size column. + + + + + Used to pass node contextual information used for layout of the node. + + + + + Performs ListView Tile style layout. + + + + + Returns default top-level columns for tree control. + + Returns array list of ColumnInfo objects. + + + + Gets whether the expand part of the node +/- is aligned to the left of the node in left-to-right layout. + + Node to get expand part alignment for + true if node expand part is aligned to the left in left-to-right layout. + + + + Returns column information for a given node. + + Node to return column information for + Returns array list of ColumnInfo objects or null if there are no columns defined. + + + + Returns true if given node has expand part. + + Layout context information. + + + + + Returns class responsible for cell layout. + + Cell layout class. + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Gets or sets whether parent/child node relationship is displayed as groups. + + + + + Performs classic TreeView layout. + + + + + Gets whether the expand part of the node +/- is aligned to the left of the node in left-to-right layout. + + Node to get expand part alignment for + true if node expand part is aligned to the left in left-to-right layout. + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Represents the Node in Tree control. + + + + Default Constructor. + + + + Creates node and initializes its text. + + + + + Creates node and initializes its text and Style property. + + + + + Sets the bounds of the node. + + New location and size of the node. + + + + Sets the content bounds of the node. Content bound is bound for the the cells inside the node + and it excludes the expand rectangle. Bounds also include the node style padding and + reflect node margin. + + New location and size of the node. + + + + Sets cell bounds. + + New cells bounds. + + + + Sets node parent. + + Parent node object. + + + + Called when Parent of the node has changed. + + + + + Sets the bounds of the expand part. + + New part bounds. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets whether node is in edit mode or not. + + True indicating that node is in edit mode false otherwise. + + + + Sets selected cell and provides information on the action that caused the selection change. + + New selected cell. + Action source. + + + + Resets image to its default value. Windows Forms designer support. + + + + + Resets image to its default value. Windows Forms designer support. + + + + + Resets ImageMouseOver to its default value. Windows Forms designer support. + + + + + Resets ImageExpanded to its default value. Windows Forms designer support. + + + + + Called after node has been deselected. + + Provides information on how selection was performed + + + + Called after node has been selected. + + Provides information on how selection was performed + + + + Returns cell within a node which contains specified coordinates. + + + + Cell which contains specified coordinates or null/nothing if no cell contains coordinates. + + + + Invalidates the layout for this node and causes the layout to be performed on next layout request. + + + + + Invalidates the layout for this node and causes the layout to be performed on next layout request. + + Indicates whether to invalidate layout for all child nodes as well. + + + + Invalidates node and causes a paint message to be sent to the tree. + + + + Initiates the editing of node text. + + This method by default edits text stored in Node.Text. Call to this method is + same as calling the overload method BeginData(0) with zero as parameter. Use BeginData + overload method to begin editing the specific column for multi-column nodes. + + + + Initiates the editing of node text. + + The initial text to be entered into the edit TextBox. Specify null to use existing text. + + + + Initiates text editing of certain Node column. + + Zero based index of a column to begin editing for. Column 0 always corresponds to + Node.Text property. + + + + Initiates text editing of certain Node column. + + Zero based index of a column to begin editing for. Column 0 always corresponds to + Node.Text property. + + + The initial text to be entered into the edit TextBox. Specify null to edit existing text. + + + + + Creates new instance of the node for the Copy() and DeepCopy() methods. Allows you to returns your own node type copy if you inherit from node to add custom properties. + + New instance of a node. + + + Makes a "shallow" copy of a Node. + + Shallow copy of a Node is a exact copy of Node but without copy + of all child nodes in Nodes collection. + + + + + Copies this node properties to a node. + + Node top copy properties to. + + + Makes a "deep" copy of a node. + + Deep copy of Node is a exact copy of Node including exact copies of all child nodes + in this node's Nodes collection. + + + + + Collapses the tree node. + + + + + Collapses the tree node. + + Action that caused the event + + + + Collapses all the child tree nodes. + + + + + Ends the editing of the node text or column. + + true if the editing of the tree node label text was canceled without being saved; otherwise, false. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Indicates the position within a tree visible area node is scrolled to + + + + Expands the node. + + + The Expand method expands the current Node down to the next level of nodes. + The state of a Node is persisted. For example, if the next level of child nodes was not collapsed previously, when the Expand method is called, the child nodes appear in their previously expanded state. + + + + + Expands the node. + + + The Expand method expands the current Node down to the next level of nodes. + The state of a Node is persisted. For example, if the next level of child nodes was not collapsed previously, when the Expand method is called, the child nodes appear in their previously expanded state. + + Action that caused the event. + + + + Expands all the child tree nodes. + + + + + Expands all the child tree nodes. + + + + + Removes the current node from the control. + + + When the Remove method is called, the node and any child nodes assigned to the Node are removed from the Tree. The removed child nodes are removed from the Tree, but are still attached to this node. + + + + + Removes the current node from the control and provides information about source of action + + + When the Remove method is called, the node and any child nodes assigned to the Node are removed from the Tree. The removed child nodes are removed from the Tree, but are still attached to this node. + + + + + Toggles the node to either the expanded or collapsed state. + + + + + Toggles the node to either the expanded or collapsed state. + + Action that caused the event. + + + Returns string representation of the Node. + + + + Called after new cell has been added to Cells collection. + + Reference to the new cell added. + + + + Called after cell has been removed from Cells collection. + + Reference to the removed cell. + + + + Occurs when property on the node has changed that influences the size of the node. + + + + + Occurs when any image property for the cell has changed. + + + + + Occurs when size of the child nodes has changed. + + + + + Called before Expanded state of the node has changed. + + New Expand State + Action Source + + + + Called when visual part of the node has changed due to the changes of its properties or properties of the cells contained by node. + + + + + Called after new node has been added to Nodes collection. + + Reference to the new node. + + + + Called after node has been removed from Nodes collection. + + Reference to the node that is removed. + + + + Creates new cells based on the columns defined on either parent node or the columns in tree control. Node + must be parented so it can get reference to a parent tree control. + + + + + Raises the Click event on node and parent tree if available. + + + + + Provides implementation for IComparable interface. This is used for sorting and it compares the Text property on nodes. + + + + + + + Occurs when the mouse pointer is over the node and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the node and a mouse button is released. + + + + + Occurs when the mouse pointer is moved over the node. + + + + + Occurs when the mouse enters the node. + + + + + Occurs when the mouse leaves the node. + + + + + Occurs when the mouse hovers over the node. + + + + + Occurs when the node is clicked with left mouse button. If you need to know more information like if another mouse button is clicked etc. use + NodeMouseDown event. + + + + + Occurs when the node is double-clicked. + + + + + Occurs when hyperlink in text-markup is clicked. + + + + + Gets whether node has child nodes. + + + + + Gets or sets the context menu assigned to this node. Standard Context Menus, VS.NET 2005 Context Menus and DotNetBar Suite context menus are supported. + Default value is null (Nothing) which indicates that no context menu is assigned. + + + + + Gets whether any of the cells inside the node has HostedControl property set. + + + + + Gets or sets custom node renderer. You can set this property to your custom renderer. When set the RenderMode should be set to custom to enable + your custom renderer. To choose one of the system renderer use RenderMode property. Default value is null. + + + + + Gets or sets the render mode used to render the node. Default value is eNodeRenderMode.Default which indicates that system default renderer is used. + Note that if you specify custom renderer you need to set either AdvTree.NodeRenderer or Node.NodeRenderer property. + + + + + Gets or sets whether node is expanded. Expanded node shows it's child nodes. + + + + + Returns name of the node that can be used to identify it from the code. + + + + + Gets or sets whether node can be dragged and dropped. Default value is true. + + + + + Gets or sets visibility of the expand button. Default value is Auto meaning that + expand button is displayed only if node has at least one child node. + + + You can use this property for example to dynamically load the child nodes when user + tries to expand the node. You could for example handle BeforeExpand event to load child + nodes into the node. + + + + + Gets or sets whether any operation on the node has been performed that would affect node's size. Size changed flag + internally indicates that node's size needs to be recalculated because it has changed + due to the changes in data. + + + + + Gets the relative bounds of the tree node including the expand part of the node. + + + + + Gets the absolute bounds of the tree node including the expand part of the node. + + + + + Gets the node content bounds. + + + + + Gets the bounds for all the cells inside the node. The bounds do not include the expand part. + + + + + Gets the bounds for all the cells inside the node. The bounds do not include the expand part. + + + + + Gets or sets the bounds of child nodes. + + + + + Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + + + Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + + + Indicates vertical alignment within the node bounds of expand part of the node, if one is visible. + + + + + Gets or sets the Command part bounds if command part is visible. + + + + + Gets or sets a value indicating whether the tree node is in a checked state. + + + + + Gets or sets the checkbox alignment in relation to the text displayed by first default cell. + + + + + Gets or sets whether check box is visible inside the cell. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets whether first cell content is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets the path from the root tree node to the current tree node. The path consists of the labels of all the tree nodes that must be navigated to get to this tree node, starting at the root tree node. The node labels are separated by the delimiter character specified in the PathSeparator property of the Tree control that contains this node. + + + + + Gets the zero based index of position of the tree node in the tree node collection. -1 is returned if node is not parented. If node is root node + the index of node in AdvTree.Nodes collection is returned. + + + + + Gets a value indicating whether the tree node is in an editable state. true if the tree node is in editable state; otherwise, false. + + + + + Gets whether left mouse button is pressed on any cell contained by this node. + + + + + Gets whether mouse cursor is over on any cell contained by this node. + + + + + Gets a value indicating whether the tree node is in the selected state. true if the tree node is in the selected state; otherwise, false. + + + + + Gets or sets whether node can be selected by user by clicking it with the mouse or using keyboard. Default value is true. + + + + + Gets whether node can be selected. Node must be Visible, Enabled and Selectable in order for it to be selected. + + + + + Gets or sets a cell that is in selected state otherwise it returns null. + + + + + Gets a value indicating whether the tree node is visible. Node is considered to be visible when it's Visible property is set to true and path to the node is available i.e. all parent nodes are expanded. + + + + + Returns whether node is displayed on the screen and visible to the user. When node is outside of the viewable area this property will return false. It will also return false if node is not visible. + + + + + Gets the last child tree node. The LastNode is the last child Node in the NodeCollection stored in the Nodes property of the current tree node. If the Node has no child tree node, the LastNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the next sibling tree node. The NextNode is the next sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no next tree node, the NextNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the zero-based depth of the tree node in the tree control. The root node is considered the first level of nesting and returns 0. + + + + + Gets the collection of Node objects assigned to the current tree node. The Nodes property can hold a collection of other Node objects. Each of the tree node in the collection has a Nodes property that can contain its own NodeCollection. Nesting of tree nodes can make it difficult to navigate a tree structure. The FullPath property makes it easier to determine your location in a tree. + + + + + Gets whether there is at least one child node that has its Visible property set to true. + + + + + Gets the parent tree node of the current tree node. If the tree node is at the root level, the Parent property returns a null reference (Nothing in Visual Basic). + + + + + Gets the previous sibling tree node. The PrevNode is the previous sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the previous visible tree node. The PrevVisibleNode can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevVisibleNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets or sets the object that contains data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the Binding index in CurrencyManager list if node is bound. You should not change this value directly since + it is used internally by the control for data binding scenarios. + + + + + Gets or sets the object that contains additional data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + This property has same function as Tag property and provides you with additional separate storage of data. + + + + + Gets or sets the object that contains additional data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + This property has same function as Tag property and provides you with additional separate storage of data. + + + + + Gets or sets the format that is applied to the value of Text property for display purposes (applies to first cell in a node, i.e. Cells[0]). See "Formatting Overview" in MSDN + for description on available format strings. For example you can specify "C" to format text as currency, or "D" to format text as decimal number etc. + + + + + + Gets or sets the text displayed in the tree node. + + + + + Gets or sets the control hosted inside of the first node cell. + + + When control is hosted inside of the cell, cell size is determined by the + size of the control hosted inside of it. The cell will not display its text but it will display any image assigned + or check box when control is hosted inside of it. The Style settings like Margin + and Padding will still apply. + + + + + Gets or sets the item hosted inside of the first cell. Only items that do not generate + popups are supported. Note that cell can only host either HostedItem or HostedControl but not both. + + + + + Gets the parent tree control that the tree node is assigned to. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + + + Gets or sets the cell alignment when CellLayout=Vertical. Default value is center which means that cells are center aligned. + + + + + Gets or sets the layout of the cell parts like check box, image and text. Layout can be horizontal (default) + where parts of the cell are positioned next to each other horizontally, or vertical where + parts of the cell are positioned on top of each other vertically. + Alignment of the each part is controlled by alignment properties. This property affects only the first cell inside of the node. + Use Cell.Layout property to change the part layout on each cell contained by node. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets the collection of all Cells assigned to this node. There should be always at least one cell in a node which is default cell. Default + collection contains a single cell. + + + + + Gets or sets whether column header for child nodes if defined is visible. Default value is true. + + + + + Gets whether node has child nodes columns defined. + + + + + Get collection of child node columns. + + + + Gets or sets the style of the cells when node is expanded. + + Reference to the style assigned to the node/cell or null value indicating that + default style setting from tree control is applied. Default value is null. + + + When node is expanded the style specified here will be used on all cells + associated with this node instead of the + Cell.StyleNormal. That way you can give + different appearance to your node's cells when node is expanded. + When property is set to null value the style setting from parent tree + controls is used. NodeStyleExpanded on + AdvTree control is a root style for a cell. + + + + + Gets or sets the expanded style name used by node. This member is provided for internal use only. To set or get the style use StyleExpanded property instead. + + + + + Gets or sets the style used when Node is selected. Default value is NULL (VB + Nothing) + + + + + Gets or sets the selected style name used by node. This member is provided for internal use only. To set or get the style use StyleSelected property instead. + + + + + Gets or sets the style used when mouse is over the Node. Default value is NULL + (VB Nothing) + + + + + Gets or sets the mouse over style name used by node. This member is provided for internal use only. To set or get the style use StyleMouseOver property instead. + + + + + Gets or sets the node style. + + + Reference to the style assigned to the node or null value indicating that default + style setting from tree control is applied. Default value is null. + + + Style specified by this property will be used as default style for the node. + Each cell within the node can also specify it's own style. Since node contains the + cells using this style property can you for example create a border around all cell + contained by the node. + When this property is set to null value (default value) NodeStyle + property on AdvTree control is used. + + + + + Gets or sets the style name used by node. This member is provided for internal use only. To set or get the style use Style property instead. + + + + + Gets or sets the part of the node mouse is over. + + + + + Gets or sets the node horizontal offset from the position determined by the layout manager. + + + + + Gets or sets the image alignment in relation to the text displayed by cell. This property affects only first default cell inside the node. + Property with same name is available on each cell and you can use it to affect each cell individually. + + + + + Gets or sets whether node is enabled. Default value is true. Setting this value to false will set Enabled=false on all child cells. + + + + + Gets or sets the image displayed when the tree node is disabled. If image is not specified control will create + gray-scale disabled image automatically. + + + Image specified will be used as image when node is disabled. + + + + + Gets or sets the image-list index value of the disabled image. + + + + + Gets or sets the image displayed when the tree node is in the unselected state. + + + Image specified will be used as a default image for any other node state where + different image is not specified. + + + + + Gets or sets the image-list key value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the image displayed when mouse is over the tree node. + + + + + Gets or sets the image-list index value of the image that is displayed by the tree nodes when mouse is over the node. + + + + + Gets or sets the image-list key value of the image that is displayed by the tree nodes when mouse is over the node. + + + + + Gets or sets the image displayed when node is expanded. + + + + + Gets or sets the image-list index value of the image that is displayed by the tree nodes when node is expanded. + + + + + Gets or sets the image-list key value of the image that is displayed by the tree nodes when node is expanded. + + + + + Property Editor support for ImageIndex selection + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between current node and its parent node. + Default value is null which means that settings from AdvTree control are used. + + RootConnector Property (DevComponents.AdvTree.AdvTree) + NodesConnector Property (DevComponents.AdvTree.AdvTree) + + + + Gets or sets whether node is visible. + + + + + Gets or sets whether command button is visible. Default value is false. + Command button can be used to display for example popup menu with commands for node, + or to display the list of linked nodes. + + + + + Gets or sets internal value that indicates that node is on "path" of the selected node. + + + + + + Gets or sets whether node selection is visible in UI when node is selected. Default value is true. You can + set this value to false to temporary disable the display of selection for a node. + + + + + Gets or sets the additional indent for the child nodes that is added to the AdvTree.Indent value when performing child node layout. Default value i 0. + + + + + Gets or sets whether Left/Right navigation through the cells when SingleCellSelection on tree is set is enabled. Default value is true. + + + + + Gets or sets whether style background that is applied to the node is drawn across the width of the tree control instead of only + behind the node content. Default value is false. + + + + + Gets or sets the child column header height. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the default action description of the control for use by accessibility client applications. + + + + + Gets or sets the description of the control used by accessibility client applications. + + + + + Gets or sets the name of the control used by accessibility client applications. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets a value indicating whether the node is visible to accessibility applications. + + + + + Represents collection for Node objects. + + + + + Sets the node collection belongs to. + + Node that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new object to the collection and provides information about the source of the command + + Node to add + Source action + + + + + Adds an array of objects to the collection. + + Array of Node objects. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + Action that is causing the event + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Removes specified object from the collection and provides information about source of the command + + Node to remove + Source action + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Node array. + + Array to copy to. + + + + Sorts the elements in the entire collection using the IComparable implementation of each element. + + + + + Sorts the elements in the entire collection using the specified comparer. + + The IComparer implementation to use when comparing elements.-or- null to use the IComparable implementation of each element. + + + + Sorts the elements in a range of elements in collection using the specified comparer. + + + + + + + + Finds the tree nodes with specified key, optionally searching sub-nodes. + + The name of the tree node to search for. + true to search child nodes of tree nodes; otherwise, false. + An array of Node objects whose Name property matches the specified key. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + Column/Cell index to use for sorting. + + + + Gets or sets the Column/Cell index that is used for sorting. + + + + + Reverse sort nodes. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + Column/Cell index to use for sorting. + + + + Sort by flat node index. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + + + + Represents node connector. Node connector is the line that is drawn to indicate connection between child and parent node. + + + + + Default Constructor. + + + + + Creates new instance of the object with specified parameters. + + Connector line width. + Connector type. + + + + Returns true if editor should serialize LineColor property. + + + + + Occurs when appearance of the connector has changed as result of changed settings on the connector. + + + + + Gets or sets the connector line width. + + + + + Gets or sets the color of the connector line. + + + + + Gets or sets the type of the connector. + + + See eNodeConnectorType enum for list of + available connectors. + + eNodeConnectorType Enumeration + + + + Gets or sets the DashStyle for the connector line. Default value is DashStyle.Dot. + + + + + Represents node operations. + + + + + Returns full path to the given node. + + Node to return path to. + Full path to the node. + + + + Gets the last child tree node. The LastNode is the last child Node in the NodeCollection stored in the Nodes property of the current tree node. If the Node has no child tree node, the LastNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Last node if found or null if there is no last node. + + + + Returns last rendered node on screen. + + Tree control. + Last rendered node or null + + + + Returns first rendered node on screen. + + Tree control. + Last rendered node or null + + + + Gets first visible node. + + Reference to tree. + Last visible node found or null + + + + Gets last visible node in tree control. + + Reference to tree. + Last visible node found or null + + + + Gets last visible top-level node in tree control. + + Reference to tree. + Last visible node found or null + + + + Gets the next sibling tree node. The NextNode is the next sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no next tree node, the NextNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Returns next visible sibling tree node. + + Reference node + Node object or null if next visible node cannot be found + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets a value indicating whether the tree node is visible. Node is considered to be visible when it's Visible property is set to true and path to the node is available i.e. all parent nodes are expanded. + + + + + + + Returns whether node is displayed on the screen and visible to the user. When node is outside of the viewable area this property will return false. It will also return false if node is not visible. + + + + + + + Gets the zero based index of position of the tree node in the tree node collection. -1 is returned if node is not added to the nodes collection. + + Reference node. + Zero based index or -1 if node is not in collection. + + + + Gets the previous sibling tree node. The PrevNode is the previous sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the previous visible tree node. The PrevVisibleNode can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the previous tree node. The Previous Node can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Returns true if node passed is considered root node for display purposes. + + Reference to the tree control. + Node to test. + true if node is root node for display purposes otherwise false. + + + + Ensures that the cell is visible, expanding nodes and scrolling the control as necessary. + + Cell to be made visible. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + + + + Returns number of visible child nodes for given node. + + Reference node. + Number of visible child nodes. + + + + Returns true if node has at least single visible child node. + + Reference node. + True if at least single child node is visible otherwise false. + + + + Retrieves the tree node that is at the specified location. + + The Node at the specified point, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Point to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + Tree control to find node at. + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + Tree control to find node at. + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + Enumerates rendered nodes only. + + + + Gets the count of visible child nodes (Visible=true) for given node. + + Reference to Node object. + Number of visible nodes. + + + + Gets the first visible child node or returns null if node cannot be found. + + Reference to Node object. + First visible node or null if node cannot be found. + + + + Gets the last visible child node or returns null if node cannot be found. + + Reference to Node object. + Last visible node or null if node cannot be found. + + + + Gets whether any node from array is child node of parent on any level. + + Reference to parent node. + Reference to child nodes. + + + + + Gets whether node is child node of parent on any level. + + Reference to parent node. + Reference to child node. + + + + + Returns true if child node is child of any parent node at any level. + + Parent nodes array + Child node + true if child otherwise false + + + + Finds the node based on the Node.Name property. + + Reference to a tree control. + Reference to a node with given name or null if node cannot be found. + + + + Finds the node based on the Node.DataKey property. + + Reference to a tree control. + Reference to a node with given key or null if node cannot be found. + + + + Finds the node based on the Node.BindingIndex property. + + Reference to a tree control. + Index to look for + + + + Returns next visible cell in node. + + Reference to a node + The index at which to start search. + Reference to cell or null if there are no visible cells + + + + Returns previous visible cell in node. + + Reference to a node + The index at which to start search. + Reference to cell or null if there are no visible cells + + + + Returns the zero based flat index of the node. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Reference to parent tree control. + Reference to the node to return index for. + Zero based node index or -1 if index cannot be determined. + + + + Returns node based on the flat index. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Parent tree control. + Index to return node for. + Reference to a node or null if node at specified index cannot be found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Parent tree control. + Partial text to look for + Reference node to start searching from + Gets or sets whether search ignores the letter case + Reference to a node or null if no node is found. + + + + Returned as information about the node or its column header at given coordinates. + + + + + Defines options for EnsureVisible method which brings node into the view. + + + + + Scrolls the tree so node is displayed at the bottom of the tree, if possible. + + + + + Scrolls the tree so node is displayed in the middle of the tree, if possible. + + + + + Scrolls the tree so node is displayed at the top of the tree, if possible. + + + + + Class that provides predefined styles for the nodes. Styles are defined as static memeber of the class + + + + + Returns Apple element style + + + + + Returns Blue element style + + + + + Returns BlueLight element style + + + + + Returns BlueNight element style + + + + + Returns BlueMist element style + + + + + Returns Cyan element style + + + + + Returns Green element style + + + + + Returns Lemon element style + + + + + Returns Magenta element style + + + + + Returns Orange element style + + + + + Returns OrangeLight element style + + + + + Returns Purple element style + + + + + Returns PurpleMist element style + + + + + Returns Red element style + + + + + Returns Silver element style + + + + + Returns SilverMist element style + + + + + Returns Tan element style + + + + + Returns Teal element style + + + + + Returns Yellow element style + + + + + Returns Gray element style + + + + + Indicates predefined element style. + + + + + Represents the selected nodes collection. + + + + + Initializes a new instance of the SelectedNodesCollection class. + + + + + Adds new object to the collection and provides information about the source of the command + + Node to add + Source action + + + + + Adds an array of objects to the collection. + + Array of Node objects. + + + + Represents the text box for editing cell's text. + + + + + Gets or sets whether the editing is in word-wrap mode. + + + + + Gets or sets whether control prevents Beep sound when Enter key is pressed. + + + + + Summary description for TreeAreaInfo. + + + + + Reference to parent node in which child bounds the coordinates are. Can be null if no parent node contains given coordinates. + + + + + Node which contains specified coordinates. Can be null if no node contains coordinates. + + + + + Previous reference node for given coordinates. If coordinates fall between two nodes this will indicate previous node or null. + + + + + Next reference node for given coordinates. If coordinates fall between two nodes this will indicate next node or null. + + + + + Gets or sets the parent node drag node will be added to. When null the drag node is being added as top-level node. + + + + + Gets or sets the insert index of drag node into the parent's node Nodes collection. + + + + + Initializes a new instance of the NodeDragInfo class. + + + + + Initializes a new instance of the NodeDragInfo class. + + + + + + + Provides data for AdvTree Cell events that can be canceled. + + + + + Provides data for AdvTree Cell events. + + + + + Default constructor for event data. + + Type of the action event is raised for. + Cell that event is raised for. + + + + Indicates the type of the action performed on a cell. + + + + + Indicates the cell that action is performed on. + + + + + Default constructor for event data. + + Type of the action event is raised for. + Cell that event is raised for. + + + + Indicates that event action should be canceled. + + + + + Provides data for AdvTree.BeforeCheck event. + + + + + Initializes a new instance of the AdvTreeCellBeforeCheckEventArgs class. + + + + + + Represents event arguments for BeforeNodeDrop and AfterNodeDrop events + + + + + Provides data for AdvTree Node events that can be cancelled. + + + + + Provides data for AdvTree Node events that can be cancelled. + + + + + Provides data for AdvTree Node events. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates the type of the action performed on a node. + + + + + Indicates the node that action is performed on. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates that event action should be canceled. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates the array of nodes that action is performed on. + + + + + Returns reference to the old parent node. + + + + + Reference to the new parent node if event is not cancelled. + + + + + Gets or sets whether drag node is being copied instead of moved. + + + + + Gets or sets the new insert position inside of NewParentNode.Nodes collection for the node being dragged. If InsertPosition is -1 + the ParentNode refers to the current mouse over node and drag & drop node will be added as child node to it. + + + + + Defines the data for NodeDragFeedback event. + + + + + Gets or sets whether this drop location is accepted. Default value is true. You can set this to false to disable drop at this location. + + + + + Gets or sets the parent node for the node that is being dragged. This can be null/nothing value to indicate a root top-level node that + is in AdvTree.Nodes collection. + + + + + Gets or sets the new insert position inside of ParentNode.Nodes collection for the node being dragged. If InsertPosition is -1 + the ParentNode refers to the current mouse over node and drag & drop node will be added as child node to it. + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + Gets reference to the node being dragged. + + + + + Gets or sets the drop effect for the drag-drop operation. + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Gets reference to the node being dragged. + + + + + Represents event arguments for NodeCollection based events, like BeforeNodeInsert, AfterNodeInsert etc. + + + + + Creates new instance of the class. + + Source action + Affected node + Parent of the node if any + + + + Indicates parent node of the affected node. For example if event handled is BeforeNodeInsert parent of the Node is has + not been set yet so this property provides information on the node that will become parent. If this property returns null + then node is being added or removed from the main AdvTree.Nodes collection. + + + + + Represents event arguments for node mouse based events. + + + + + Gets node affected by mouse action. + + + + + Gets which mouse button was pressed. + + + + + Gets the number of times the mouse button was pressed and released. + + + + + Gets a signed count of the number of detents the mouse wheel has rotated. A detent is one notch of the mouse wheel. + + + + + Gets the x-coordinate of the mouse. + + + + + Gets the y-coordinate of the mouse. + + + + + Provides means for AdvTree serialization. + + + + + Saves Nodes to specified file. + + AdvTree to save + Target file name + + + + Saves Nodes to stream. + + AdvTree to save + Stream to save nodes to. + + + + Saves Nodes to TextWriter + + AdvTree to save + TextWriter to write nodes to. + + + + Saves nodes to XmlWriter. + + AdvTree to save + XmlWriter to write nodes to + + + + + Saves AdvTree to an existing XmlDocument. New node AdvTree is created in document and Nodes are serialized into it. + + AdvTree to serialize + XmlDocument instance. + + + + Serializes AdvTree object to XmlElement object. + + Instance of AdvTree to serialize. + XmlElement to serialize to. + + + + Serializes Node and all child nodes to XmlElement object. + + Node to serialize. + Provides serialization context. + + + + Load AdvTree Nodes from file. + + Reference to AdvTree to populate + File name. + + + + Load AdvTree Nodes from stream. + + Reference to AdvTree to populate + Reference to stream + + + + Load AdvTree Nodes from reader. + + Reference to AdvTree to populate + Reference to reader. + + + + Load AdvTree Nodes from reader. + + Reference to AdvTree to populate + Reference to reader. + + + + Load AdvTree from XmlDocument that was created by Save method. + + Tree Control to load + XmlDocument to load control from + + + + Load nodes from XmlElement. + + Reference to AdvTree to be populated. + XmlElement that tree was serialized to. + + + + Load single node and it's child nodes if any. + + New instance of node that is populated with loaded data. + Provides deserialization context. + + + + Provides context information for serialization. + + + + + Gets or sets reference to context parent XmlElement when serializing or actual Node element when deserializing. + + + + + Gets or sets whether SerializeNode event handler has been defined and whether event should be fired. + + + + + Gets or sets whether DeserializeNode event handler has been defined and whether event should be fired. + + + + + Provides access to serializer. + + + + + Represents class for static tree utilities. + + + + + Initializes control with default settings for connectors and nodes. + + Control to initialize. + + + + Initializes control with default settings for connectors and nodes. + + Control to initialize. + Factory to use to create new instances of objects. + + + + Creates new style and adds it to styles collection + + Tree to assign style to + Style factory + + + + + + + + Returns reference to a node that is hosting given control. + + Reference to the AdvTree control instance + Control instance to look for + Reference to a node hosting control or null if node could not be found + + + + Represents internal component factory with design-time support. + + + + + Creates new instance of the class. + + Reference to DesignerHost to use for creation of new components. + + + + Creates new instance of the class. + + + + + Creates component and returns reference to the new instance. + + Type that identifies component to create. + New instance of the component. + + + + Represents class that holds padding information for user interface elements. + + + + + Gets or sets padding on left side. Default value is 0 + + + + + Gets or sets padding on right side. Default value is 0 + + + + + Gets or sets padding on top side. Default value is 0 + + + + + Gets or sets padding on bottom side. Default value is 0 + + + + + Creates new instance of the class and initializes it. + + Left padding + Right padding + Top padding + Bottom padding + + + + Gets amount of horizontal padding (Left+Right) + + + + + Gets amount of vertical padding (Top+Bottom) + + + + + Gets whether Padding is empty. + + + + + Analog clock control. + + + + + Resets the property to default value. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockControl class + + + + + Releases all resources used by the class. + + + + + Renders the clock's center cap. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's glass overlay. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's hands. + + Graphics object used for rendering. + Bounding rectangle. + True if this is the rending pass after the cap has been rendered. + + + + Renders the clock's numeric hour indicators. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's tick hour/minute indicators. + + Graphics object used for rendering. + Bounding rectangle. + + + + Called when TimeZone property has changed. + + Old property value + New property value + + + + Default minimum size. Defaults to 100, 100. + + + + + Gets or sets whether anti-aliasing is used when rendering the control. Default value is true. + + + + + Gets or sets the state for automatic mode. When true the clock will auto redraw once a second and display the current date/time. Default value is false. + + + + + Gets or sets clock style for this control. + + + + + Gets or sets the clock style data elements for this control. + + + + + Gets or sets a the indicator style the clock control. Default value is Ticks. + + + + + Gets or sets whether the time can be changed by moving the clock hands. Default value is false. + + + + + Gets or sets a value indicating whether to display the glass overlay on the clock control. Default value is true. + + + + + Gets or sets a value indicating whether to display the second hand on the clock control. Default value is true. + + + + + Occurs while user is dragging the mouse in order to change time. + + + + + Occurs when Value i.e. time clock is displaying has changed. + + + + + Gets or sets the current date/time value for this control. + + + + + Gets or sets the time-zone string identifier that is used to display the time when AutomaticMode=true and clock is displaying current time. + + + + + Enumeration containing the available hour/minute indicators. + + + + + Control will use ticks for hour/minute indicators. + + + + + Control will use numbers for hour indicators. + + + + + Enumeration containing the available mouse edit states. + + + + + Control is not currently in an edit state. + + + + + Control is currently in an hour edit state. + + + + + Control is currently in an minute edit state. + + + + + Control is currently in an second edit state. + + + + + Provides event arguments for TimeValueChanging event. + + + + + Gets the current time represented by the control. + + + + + Initializes a new instance of the TimeValueChangingEventArgs class. + + + + + + Defines delegate for TimeValueChanging event. + + Source of event. + Event arguments + + + + Data storage class for clock hand visual style. + + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockHand class. + + + + + Initializes a new instance of the ClockHand class. + + The hand style for this item. + The length of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle + The width of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. + + + + Indicates whether the specified point is contained within the bounds of this hand. + + The bounding rectangle of the parent clock control. + The clockwise angle for this clock hand in degrees from the 12 o'clock position. + A Point that represents the point to test. + + + + + Generates a scaled and rotated graphics path based on the given style, rectangle and angle. + + The bounding rectangle of the parent clock control. + The clockwise angle for this clock hand in degrees from the 12 o'clock position. + + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets a value indicating whether the hand is drawn over the cap. + + + + + Gets or sets the hand color data for this hand. + + + + + Gets or sets the hand style for this clock hand. Default value is Style1. + + + + + Gets or sets the length of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. Default value is 1.0. + + + + + Gets or sets the width of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. Default value is 0.1. + + + + + Occurs when property value has changed. + + + + + Enumeration containing the available hand styles. + + + + + Style 1. + + + + + Style 2. + + + + + Style 3. + + + + + Style 4. + + + + + Data storage class for clock visual styles. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockStyle class. + + + + + Initializes a new instance of the ClockStyle class. + + Predefined style from the PredefinedStyles enum. + + + + Initializes a new instance of the ClockStyle class. + + Predefined style from the PredefinedStyles enum. + + + + Releases all resources used by the class. + + + + + Loads a predefined style + + The predefined style to load. + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the PredefinedStyles value for this style. + + + + + Gets or sets the clock shape value for this style. + + + + + Gets or sets the bezel color data for this style. + + + + + Gets or sets the width of clock bezel as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the face color data for this style. + + + + + Gets or sets the face background image for this style. + + + + + Gets or sets the hour hand style for this style. + + + + + Gets or sets the minute hand style for this style. + + + + + Gets or sets the second hand style for this style. + + + + + Gets or sets the center cap color data for this style. + + + + + Gets or sets the center cap diameter as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the face number color for this style. + + + + + Gets or sets the center cap color data for this style. + + + + + Gets or sets the large tick color data for this style. + + + + + Gets or sets the large tick length as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the large tick width as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the small tick color data for this style. + + + + + Gets or sets the small tick length as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the small tick width as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the overlay glass angle, in degrees for this style. + + + + + Occurs when property value has changed. + + + + + Gets the parent of the style. + + + + + Enumeration containing the predefined clock styles. + + + + + Style 1. Default style, + + + + + Style 2. + + + + + No predefined style. + + + + + Enumeration containing the predefined clock shapes. + + + + + Round clock shape. + + + + + Data storage and utility class for defining gradient colors. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The gradient angle. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Loads data into the class, called by constructors. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Creates Pen object using the BorderColor and BorderWidth properties. + + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The angle used for the gradients, allowing an override of BrushAngle + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The center point of the gradient as a percentage value typically ranging from 0.0 to 1.0. + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The center point of the gradient as a percentage value typically ranging from 0.0 to 1.0. + The angle used for the gradients, allowing an override of BrushAngle + + + + Creates SolidBrushObject using Color1. + + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + + + + Creates a PathGradientBrush object. + + The graphics path used to construct the brush. + The center point of the gradient. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + The focus for the SigmaBellShape. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the border color for this item. Default value is white. + + + + + Gets or sets the border width for this item. Default value is 0. + + + + + Gets or sets the brush angle for this item. Only applies to Linear and Reflected brush types. Default value is 0. + + + + + Gets or sets the brush SigmaBellShape focus for this item. Only applies to Reflected brush types. Default value is 0.5. + + + + + Gets or sets the brush SigmaBellShape scale for this item. Only applies to Reflected brush types. Default value is 0.5. + + + + + Gets or sets the brush type for this item. Default value is Solid. + + + + + Gets or sets the first color for this item. Default value is white. + + + + + Gets or sets the second color for this item. Default value is white. + + + + + Occurs when property value has changed. + + + + + Enumeration containing predefined brush types for the ColorData class. + + + + + Solid brush. + + + + + Linear gradient brush. + + + + + Centered path gradient brush. + + + + + Reflected linear gradient brush. + + + + + Math helper class + + + + + Converts radians to degrees. + + Value to be converted in radians. + Converted value in degrees. + + + + Converts degrees to radians. + + Value to be converted in degrees. + Converted value in radians. + + + + Raises AnimationCompleted event. + + Provides event arguments. + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Stops animation if one is currently running. + + + + + Sets the method which is called each time value on target object property is set. This method may execute the visual updates on animation client. + + Method to call + + + + Occurs after animation has completed. + + + + + Gets or sets whether animation is auto-disposed once its completed. Default value is false. + + + + + Gets whether animation run is complete. + + + + + Gets the animation duration in milliseconds. + + + + + Gets the animation easing function. + + + + + Gets or sets the number of fixed steps animation will perform from star to finish instead of using the easing function in time. + Stepped animation executes specified number of steps always with Duration specifying delays between each step. + + + + + Initializes a new instance of the AnimationRequest class. + + Target object for animation. + Target property name for animation. + From value. + To value. + + + + Initializes a new instance of the AnimationRequest class. + + Target object for animation. + Target property name for animation. + From value. + To value. + + + + Target object for animation. + + + + + Animation from value. + + + + + Animation to value. + + + + + Specifies the animation easing function + + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Runs all animations from Animations list. + + + + + Returns whether Storyline is disposed. + + + + + Gets the list of animations to run using this storyline. + + + + + Gets or sets number of times storyline is repeated. Default value is 0 which indicates that storyline is run only once meaning not repeated. + + + + + Gets or sets whether storyline is auto-disposed when finished. + + + + + Clean up any resources being used. + + + + + Returns the reference to DockContainerItem tab if any under specified coordinates. + + X - client mouse coordinate + Y - client mouse coordinate + Reference to DockContainerItem whose tab is at specified coordinates or null if there is no tab at given coordinates + + + + Sets bars position on the auto-hide panel. + + Bar for which position should be changed. + New indexed position of the bar. + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the timeout in milliseconds for auto hide/show action. + When timeout has elapsed and mouse has left the bar the bar will be automatically hidden. + If mouse is hovering over the collapsed bar and timeout has elapsed the bar will be displayed. + + + + + Gets or sets whether bars on auto-hide panel are displayed when mouse hovers over the tab. + + + + + Gets or sets whether bars that have focus are collapsed automatically or not. + + + + + Gets or sets the style of auto-hide panel. + + + + + Gets or sets the ColorScheme object used by this panel. Default value is null which means that ColorScheme is + automatically created as specified by Style property. Note that if your DotNetBarManager has UseGlobalColorScheme set to true + ColorScheme from DotNetBarManager will be used. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class. + + + + + Indicates the Balloon tip position. + + + + + Tip is on the top. + + + + + Tip is on the left side. + + + + + Tip is on the right side. + + + + + Tip is on the bottom. + + + + + Indicates the style of the balloon. + + + + + Indicates type of Alert animation performed when alert is displayed. + + + + + No animation take place when alert is displayed. + + + + + Alert is animated from bottom to top. (Default) + + + + + Alert is animated from top to bottom. + + + + + Alert is animated from left to right. + + + + + Alert is animated from right to left. + + + + + Delegate for custom paint event handler. + + + + + Summary description for Balloon. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Auto resize balloon to the content. Balloon width is calculated so image and caption text can fit in single line. + + + + + Recalculates layout of the balloon. + + + + + Displays balloon using control to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain control. + + Control used for balloon positioning. + + + + Displays balloon using control to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain control. + + Control used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Displays balloon using rectangle to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain screen region. + + Rectangle in screen coordinates used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Displays balloon using item to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain item. + + Item used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Display balloon. + + Indicates whether balloon receives input focus. + + + + Displays balloon. + + + + + Called when balloon is hidden. + + + + + Hides balloon. + + + + + Occurs when background is redrawn. + + + + + Occurs when caption image is redrawn. + + + + + Occurs when caption text is redrawn. + + + + + Occurs when text is redrawn. + + + + + Occurs when close button is clicked. + + + + + Occurs when TipPosition property has changed. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the target gradient background color. + + + + + Gets or sets gradient fill angle. + + + + + Specifies the transparency of background image. + + + + + Specifies background image position when container is larger than image. + + + + + Gets or sets the border color.. + + + + + Specifies balloon style. + + + + + Gets or sets whether the Close button is displayed. + + + + + Gets or sets the animation type used to display Alert type balloon. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after balloon closes automatically. + + + + + Gets or sets the custom image for Close Button. + + + + + Gets or sets the custom image for Close Button when mouse is over the button. + + + + + Gets or sets the custom image for Close Button when button is pressed. + + + + + Gets or sets the Caption image. + + + + + Gets or sets the Caption icon. Icon is used to provide support for alpha-blended images in caption. + + + + + Gets or sets the Caption font. + + + + + Gets or sets text displayed in caption. + + + + + Gets or sets color of caption text. + + + + + Gets or set position of the balloon tip. + + + + + Gets or sets tip distance from the edge of the balloon. + + + + + Returns length of the tip. + + + + + Gets/Sets whether Balloon is visible. + + + + + Represents a balloon style pop-up window that displays a brief description of a control's purpose when the mouse hovers over the control or when controls receives input focus. + + + + + Initializes a new instance of the BalloonTip class. + + + + + Clean up any resources being used. + + + + + Retrieves the Balloon Caption text associated with the specified control. + + + + + Associates Balloon Caption text with the specified control. + + The Control to associate the Balloon Caption text with. + The Balloon Caption text to display on the Balloon. + + + + Retrieves the Balloon text associated with the specified control. + + + + + Associates Balloon text with the specified control. + + The Control to associate the Balloon text with. + The Balloon text to display on the Balloon. + + + + Removes all Balloon texts currently associated with the BalloonTip control. + + + + + Removes specific Balloon texts currently associated with the BalloonTip control. + + Control that has Balloon texts associated. + + + + Shows Balloon for specific control. Control must have Balloon already assigned to it. + + Control that has Balloon already assigned. + + + + Closes Balloon control if visible. + + + + + Occurs before balloon is displayed. + + + + + Occurs before balloon is closed and allows to cancel the action. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets a value indicating whether the BalloonTip is currently active. + true if the BalloonTip is currently active; otherwise, false. The default is true. + + + + + Returns reference to the control that triggered balloon. + + + + + Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + + + Gets or sets a value indicating whether Balloon receives input focus when displayed. + Default value is false. + + + + + Gets or sets the time (in milliseconds) that passes before the BalloonTip appears. + + + + + Gets or sets a value indicating whether a Balloon window is displayed even when its parent form is not active. Default value is false. + + + + + Gets or sets the internal Balloon control that is used to display Balloon. + This property will have valid value only during time Balloon is actually + displayed on the screen. Value will also be valid during BalloonDisplaying event. + You can use this property to further customize Balloon control before it is + displayed to the user. You can also set it to your own instance of the Balloon + control (or the control that is inheriting it) for ultimate customization options. + Note that new instance of Balloon control is created each time Balloon needs to be displayed. + Once Balloon is closed control is disposed. + + + + + Specifies balloon style. + + + + + Gets or sets the animation type used to display Alert type balloon. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after balloon closes automatically. + + + + + Gets or sets whether Balloon is shown after control receives input focus. Default value is false. When set to true Balloon will not be displayed on mouse hover. + + + + + Gets or sets whether the Balloon Close button is displayed. + + + + + Gets or sets default balloon width. Usually the width of the balloon is calculated based on the width of the caption text. If caption text is not set then this value will be used as default width of the balloon. + + + + + Gets or sets the Balloon Caption image. + + + + + Gets or sets the Balloon Caption icon. Icon is used to provide support for alpha-blended images in caption. + + + + + Represents bar control. + + + + + Interface used for docking support. + + + + + Returns Minimum docked size of the control. + + + + + Returns Preferrred size of the docked control. + + + + + Sets the dock line for the control. Used internaly by dock manager. + + New Dock line. + + + + Indicated whether control can be docked on top dock site. + + + + + Indicated whether control can be docked on bottom dock site. + + + + + Indicated whether control can be docked on left dock site. + + + + + Indicated whether control can be docked on right dock site. + + + + + Indicates whether control can be docked as document i.e. middle (fill) dock site. + + + + + Indicates whether control can be docked as tab to another bar. + + + + + Indicated whether control can be stretched to fill dock site. + + + + + Holds the left position (dock offset) of the control. + + + + + Specifies the dock line for the control. + + + + + Specifies current dock orientation. + + + + + Gets whether control is docked. + + + + + Returns the dock site of the control. + + + + + Gets or sets the control dock side. + + + + + Gets or sets whether bar is locked to prevent docking below it. + + + + + Interface implemented by target Bar interested in access to designer. + + + + + Gets or sets the BarBaseControlDesigner instance. + + + + + Desribes interface that provides custom serialization support for items. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Raises BarStateChanged event. + + Provides event arguments. + + + + Initializes a new instance of the Bar class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Initializes a new instance of the Control class. + + Bar Caption + + + + Releases the focus from the bar and selects the control that had focus before bar was selected. If control that had focus could not be determined focus will stay on the bar. + This method is used by internal DotNetBar implementation and you should not use it. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises the PreRender event. + + Provides the event arguments + + + + Raises the PostRender event. + + Provides the event arguments + + + + Drawns bar grab handle if one specified. + + Context information. + + + + Paints bar side bar. + + Reference to graphics object. + + + + Recalculates the layout of the Bar, resizes the Bar if necessary and repaints it. + + + + + Recalculates the layout of the Bar and repaints it. This will not change the size of the Bar it will only force the recalculation of the size for each contained item and it will repaint the bar. To ensure that Bar is resized if necessary as well call RecalcLayout method. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Method is called by DotNetBarManager when bar is being moved and Escape key is pressed. + + + + + Called when IsMaximized property has changed. + + Old property value + New property value + + + + Closes the DockContainerItem with event source set to Code. + + DockContainerItem to close. + + + + Closes the DockContainerItem. + + DockContainerItem to close. + Source of the event. + + + + Raises the ItemClick event. + + Item that was clicked. + Event arguments. + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Saves the Bar definition to file. + + Definition file name. + + + + Loads the Bar definition from file. + + Definition file name. + + + + Saves the Bar layout to file. + + Definition file name. + + + + Loads the Bar definition from file. + + Definition file name. + + + + Sets the client size of the bar excluding caption. This method is useful when setting the size of the bars with layout type DockContainer. + + Width of bar in pixels. + Height of bar in pixels. + + + + Sets the client size of the bar excluding caption. This method is useful when setting the size of the bars with layout type DockContainer. + + New bar size + + + + Returns true if Font property should be serialized by Windows Forms designer. + + + + + Designer method to reset the property to its default value. + + + + + Resets the ColorScheme property to its default value. + + + + + Called when CanMaximizeFloating property has changed. + + Old property value + New property value + + + + Makes the Bar display by setting the visible property to true. + + + + + Hides the Bar. + + + + + Returns whether Size property should be serialized. + + + + + Returns the first child item with specified name regardless of it's hierarchy. + + Item name. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns AutoHidePanel that bar is on if in auto-hide state otherwise returns null. + + AutoHidePanel object or null if bar is not in auto-hide state. + + + + Raises BeforeAutoHideDisplayed event. + + + + + + Raises BeforeAutoHideHidden event. + + + + + + Destroys tooltip window. + + + + + Shows tooltip for this item. + + + + + Re-docks the floating bar to its previous docking position. + + + + + Invokes CaptionButtonClick event. + + + + + Displays or hides the automatic caption button popup menu. + + + + + Called when DockTabStripHeight property has changed. + + Old property value + New property value + + + + Returns the Minimum Size for specified orientation. + + Orientation to return minimum size for. + + + + + Returns the preferred size of the Bar when docked. + + Orientation to return preferred size for. + + + + + Sets the dock line but it does not forces the Bar to change position. The position will be changed on next layout request or when dock site needs to recalculate the layout of the bat. Used internally only. + + + + + ISupportInitialize.BeginInit implementation. + + + + + ISupportInitialize.EndInit implementation. + + + + + Returns Minimum docked size of the control. + + + + + Returns Preferrred size of the docked control. + + + + + Sets the dock line for the control. Used internaly by dock manager. + + New Dock line. + + + + Occurs after bar state has changed, like selected dock tab has changed, bar has closed, bar has been docked or undocked etc. + + + + + Occurs when Item is clicked. + + + + + Occurs after Bar is docked. + + + + + Occurs after Bar is undocked. + + + + + Occurs after Bar definition is loaded. + + + + + Occurs when current Dock tab has changed. + + + + + Occurs when bar visibility has changed as a result of user action. + + + + + Occurs when bar auto hide state has changed. + + + + + Occurs when Bar is about to be closed as a result of user clicking the Close button on the bar. + + + + + Occurs when Bar in auto-hide state is about to be displayed. + + + + + Occurs when popup item is closing. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup of type container is loading. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup of type container is unloading. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup item is about to open. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs just before popup window is shown. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs before dock tab is displayed. + + + + + Occurs when caption button is clicked. Caption button is button displayed on bars with grab handle style task pane. + + + + + Occurs on dockable bars when end-user attempts to close the individual DockContainerItem objects using system buttons on dock tab. + Event can be canceled by setting the Cancel property of event arguments to true. This even will occur only after user presses the + X button on tab that is displaying the dockable windows/documents. + + + + + Occurs on dockable bars after DockContainerItem is closed by end-user. This action cannot be cancelled. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Occurs after the TabStrip style which used on dockable windows has changed. This event gives you opportunity to + change the style of the tab strip by accessing Bar.DockTabControl.Style property. + + + + + Occurs before the bar control is rendered. This event is fired once for each part of the bar control being rendered. Check the Part property of the event arguments to identify the part being rendered. + You can cancel internal rendering by setting Cancel property. + + + + + Occurs after the bar control is rendered and allows you to render on top of the default rendering provided by the control. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Gets/Sets the owner of the Bar object. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Returns the reference to the control that last had input focus. This property should be used to + determine which control had input focus before bar gained the focus. Use it to apply + the menu command to active control. + + + + + Indicates the array of colors that when set are used to draw the border of the item. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets whether caption of floating bar will be drawn using themes. + + + + + Gets/Sets the parent item of the Bar. The parents item sub-items are displayed on the bar. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets or sets docked bar caption height. Default value is 0 which means system predefined height is used. + + + + + Gets or sets whether bar when changed over to floating state is hidden instead of shown. This property is used + internally to optimize loading of hidden floating bars. You should not use this property in your code. It is for internal DotNetBar + infrastructure use only. + + + + + Returns true if bar is being moved/dragged by user. + + + + + Gets or sets whether floating dockable window is maximized. + + + + + Specifies the bar behavior when its title is double-clicked + + + + + Returns whether popup bar should display shadow. + + + + + Returns whether popup bar shadow should be alpha-blended. + + + + + Gets/Sets the popup animation that will be applied when popup is shown. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Gets or sets whether layout changes are saved for this bar when DotNetBarManager.SaveLayout method is used to save layout for all bars. Default value is true which means that layout changes are saved. + + + + + Gets/Sets Bar layout as XML string. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Sets/Gets the side bar image structure. + + + + + Gets/Sets the caption of the Bar. This text is displayed in title of the Bar when Bar is floating. + + + + + Specifies whether Bar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Returns current Bar state. + + + + + Returns the collection of sub-items hosted on the Bar. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets/Sets whether the items that could not be displayed on the non-wrap Bar are displayed on popup menu or popup Bar. + + + + + Gets/Sets the spacing in pixels between the sub-items. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the top edge of the bar and the top of the item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the bottom edge of the bar and the bottom of the item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the left edge of the bar and the left side of the first item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the right edge of the bar and the right side of the last item. + + + + + Sets/Gets whether bar is menu bar. Menu bar will show system icons + for Maximized forms in MDI Applications. Only one bar can be a Menu bar in an application. + + + + + Gets or sets the visual type of the bar. The type specified here is used to determine the appearance of the bar. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets Caption (Title bar) background color. + + + + + Gets or sets Caption (Title bar) text color. + + + + + Gets or sets whether toolbars with appropriate style appear with rounded corners. Default value is true. + + + + + Gets/Sets the visual style of the Bar. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies to both docked and floating Bar states. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies only to Bars that are docked. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies only to Bars that are floating. + + + + + Gets/Sets the grab handle style of the docked Bars. + + + + + Gets the grab handle client rectangle. + + + + + Returns CanClose based on the selected dock-container item. + + + + + Gets/Sets whether the Bar can be hidden by end-user. Applies to Document docked bars only. + + + + + Indicates whether Maximize button is visible on floating dock windows. + + + + + Gets/Sets border style when Bar is docked. + + + + + Gets/Sets whether floating bar is hidden when application loses focus. + + + + + Gets/Sets whether tab navigation buttons are shown for tabbed dockable bars. + + + + + Gets or sets the border line color when docked border is a single line. + + + + + Gets/Sets whether Bar is visible or not. + + + + + Returns number of items that have Visible property set to true. + + + + + Gets or sets whether bar is valid drop target for end-user bar customization. Default value is true. + When bar is used as dock container then you can use this property to prevent docking of other bars as dock tabs. + + + + + Gets or sets whether items on the Bar can be customized. + + + + + Specifies whether Bar was created by user using Customize dialog. + + + + + Gets/Sets the Bar name used to identify Bar from code. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets or sets the layout type. + + + + + Gets or sets whether all buttons are automatically resized to the largest button in collection. + + + + + Gets or sets rounded corner size for styles that use rounded corners. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets whether mouse over fade effect is enabled for buttons. Default value is false. Note that Fade effect + will work only when Office2007 style is used. For other styles this property has no effect and fade animation is not used regardless + this property setting. + + + + + Gets whether fade effect should be in use. + + + + + Gets or sets the Bar back color. + + + + + Gets or sets the Bar customize menu (Applies to the bars with LayoutType set to DockWindow only). + + + + + Indicates the auto-hide side of the parent form where bar is positioned. + + + + + Gets or sets whether tab text is always visible while bar is in auto-hide state. Default value is false which indicates that only text for the active dock tab is visible. + + + + + Indicates whether Bar is in auto-hide state. Applies to non-document dockable bars only. + + + + + Gets or sets the visibility of the bar when bar is in auto-hide state. + + + + + Indicates whether Bar can be auto hidden. + + + + + Gets or sets the global parent control used as part of Global Items feature when bar is used as context menu bar. This property is used internally by + DotNetBar and should not be set directly. + + + + + Gets or sets how long it takes to play the auto-hide animation, in milliseconds. Maximum value is 2000, 0 disables animation. + + + + + Occurs before the bar in auto-hide state is displayed on popup and allows you to cancel display by setting Cancel=true on event arguments. + + + + + Occurs before the bar in auto-hide state is hidden and allows you to cancel display by setting Cancel=true on event arguments. + + + + + Gets whether tooltip is visible or not. + + + + + Indicates whether dock tabs are visible when bar is acting as dock-container and it needs to display tabs to represents multiple DockContainerItem objects hosted by the bar. Default value is true. + + + + + Gets or sets height of the docked bar tab strip which displays docked tabs. + + + + + Returns the reference to internal TabStrip control used to display contained DockContainerItems. + + + + + Gets or sets the selected DockContainerItem if bar represents dockable window. + + + + + Gets or sets the tab (DockContainerItem) index for Bars with LayoutType set to eLayoutType.DockContainer. Index corresponds to the index of the DockContainerItem in Bar.Items collection. + + + + + Indicates Bar background image. + + + + + Gets or sets whether caption button menu for bars with grab handle task pane is automatically created. + Caption menu when automatically created will display the list of all items from Items collection + and it will maintain only one item from the list as visible item. + To create custom caption menu that is displayed when user clicks the caption button handle CaptionButtonClick event. + + + + + Gets or sets whether caption (text) of the bars with dock container layout is automatically set to the + selected dock container item text. + + + + + Specifies whether Bar can be undocked. Does not apply to stand alone bars. + + + + + Specifes whether end-user can tear-off (deattach) the tabs on dockable window. + + + + + Specifes whether end-user can reorder the tabs on dockable window. + + + + + Gets or sets whether bar or DockContainerItem that is torn-off this bar can be docked + as tab to another bar. Default value is true which indicates that bar can be docked as tab to another bar. + + + + + Gets or sets whether dock bar can be moved by dragging its caption using the mouse. + + + + + Specifies whether Bar can be docked on Top dock site or not. Does not apply to stand alone bars. + + + + + Specifies whether Bar can be docked on Bottom dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Left dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Right dock site or not. Does not apply to stand alone bars. + + + + + Specifies whether Bar can be docked as document. Default value is false. See DotNetBarManager.EnableDocumentDocking for more details. + + + + + Specifies whether Bar will stretch to always fill the space in dock site. Applies to the dockable bars only. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Gets/Sets the distance from the far left/top side of the docking site or suggests the order of the docked bar. Upon serialization this property + will contain actual left/top position of the bar. You can use it to re-order the bars docked on the same line. Property value is relative to the other + bars docked on the same line when it is used to change the order. For example setting DockOffset value to 10 will place the bar just after the last bar on the + same line that has DockOffset value less than 10. If there is no bar with DockOffset value less than 10 the bar will be placed in first position. + + + + + Gets/Sets the dock line. + + + + + Gets or sets the dock tab alignment. + + + + + Gets or sets whether selected dock tab is closed when Bar caption close button is pressed. Default value is false which indicates that whole bar will be hidden when bars close button is pressed. + + + + + Gets or sets whether close button is displayed on each dock tab that allows closing of the tab. Default value is false. + + + + + Gets or sets whether tab that shows all dock containers on the bar is visible all the time. By default + tab is hidden when there is only one item displayed. + + + + + Gets or sets whether bar is locked to prevent docking below it. Applies to undockable bars only. + + + + + Gets/Sets the orientation of the Bar. + + + + + Returns whether Bar is docked or not. + + + + + Returns the Bars dock site. + + + + + Gets/Sets the dock side for the Bar. + + + + + Gets or sets the inital floating location. This location will be used when DockSide is set to None. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Gets or sets whether control is selected in designer. + + + + + Gets or sets whether accelerator letters for menu or toolbar commands are underlined regardless of + current Windows settings. Accelerator keys allow easy access to menu commands by using + Alt + choosen key (letter). Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Indicates whether mnemonic keys, accelerator keys, which are set through item Text property used ampersand character are processed by control. + + + + + Specifes whether Bar can be docked on Top dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Bottom dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Left dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Right dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked as document. Default value is false. See DotNetBarManager.EnableDocumentDocking for more details. + + + + + Indicated whether control can be stretched to fill dock site. + + + + + Holds the left position (dock offset) of the control. + + + + + Specifies the dock line for the control. + + + + + Specifies current dock orientation. + + + + + Gets whether control is docked. + + + + + Returns the dock site of the control. + + + + + Gets or sets the control dock side. + + + + + Gets or sets whether bar is locked to prevent docking below it. + + + + + Defines delegate for the PreRender and PostRender Bar control events. + + + + + Represents event arguments for PreRender and PostRender Bar control event. + + + + + Gets the reference to the Bar being rendered. + + + + + Gets or sets the rectangle of the part being rendered. Certain parts of bar like the title buttons allow you to set this property to the custom size of your button. + Default value is the system size of the part being rendered. + + + + + Gets the Bar part being rendered. + + + + + When used in PreRender event allows you to cancel the default rendering by setting this property to true. + + + + + Gets the reference to the Graphics object to render the tab on. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Defines the part of the Bar control for custom rendering. + + + + + Indicates the Bar background and border. + + + + + Indicates the Bar caption. + + + + + Indicates the Bar close button displayed inside of caption. + + + + + Indicates the Bar customize button displayed inside of caption. + + + + + Indicates the Bar caption text. + + + + + Indicates the Bar grab handle. + + + + + Indicates the Bar resize handle. + + + + + Indicates the Bar auto-hide button displayed inside of caption. + + + + + Indicates the Bar caption task pane. + + + + + Indicates the Bar maximize button displayed inside of caption. + + + + + Indicates the complete bar area. This part is used for the PostRender event. + + + + + Defines delegate for BarStateChanged event. + + + + + + + Provides event arguments for ActiveDockContainerChanged event. + + + + + Gets the Bar that is changed. + + + + + Gets the type of the change that affected the bar. + + + + + Provides any optional context information about the state change. + + + + + Initializes a new instance of the BarStateChangedEventArgs class. + + + + + + + Initializes a new instance of the BarStateChangedEventArgs class. + + + + + + + + Defines bar state changes for BarStateChanged event. + + + + + Indicates that Bar selected dock tab is about to change. + + + + + Indicates that Bar selected dock tab has changed. + + + + + Indicates that bar docking has changed and bar was docked. + + + + + Indicates that bar has been undocked from dock site. + + + + + Indicates that bar dock tab has closed. + + + + + Indicates that bar in auto-hide state has been folded, i.e. returned to collapsed state. + + + + + Indicates that bar in auto-hide state has been open, shown. + + + + + Indicates that bar AutoHide property has changed meaning that bar has been either placed in auto-hide mode or taken out of auto-hide mode. + + + + + Indicates that tab has been moved within a bar tab-strip by end user. + + + + + Specifies the behavior of bar when its title is double clicked. + + + + + Double clicking bar title does not do anything. + + + + + Double clicking bar title when bar is docked will float the bar if CanUndock=true + + + + + Double clicking floating bar title will re-dock it if any of CanDock*** properties is true. + + + + + Double clicking will toggle bar state between float and dock state if all CanDock*** and CanUndock properties allow it. + + + + + Represents base control for bars. + + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Clean up any resources being used. + + + + + Applies design-time defaults to control. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Called after control has painted its content and allows painting on top of the controls content. + + Paint arguments. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Applies any layout changes and repaint the control. + + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after main application form is activated. + + + + + Occurs after main application form is deacticated. + + + + + Occurs on application wide mouse down event. + + + + + Gets or sets the form SideBar is attached to. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Specifies the background style of the Explorer Bar. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Gets accessible role. + + + + + Gets parent accessibility object. + + + + + Returns bounds of the control. + + + + + Returns current accessible state. + + + + + Summary description for BarFunctions. + + + + + Tries to invoke the RecalcLayout method on the control and return true if such method was invoked. + + Reference to the control + Indicates whether to invalidate control if no recalc layout method is found + return true if method is invoked. + + + + Creates copy of a bar to be used as new dock bar. This function is used to create new bar for tabs that are torn off the existing dock bars. + + Original base bar to base the new bar on. + New instance of a bar. Note that bar is not added to the DotNetBarManager.Bars collection and DockSide is not set. + + + + Returns if passed control is ready for painting. + + Control to test. + true if handle is valid otherwise false + + + + XML element is expected to be something like Image data Base64 encoded + + Image data + + + + + Collection of Bar objects. + + + + + Releases the resources used by the Component. + + + + + Adds an Bar to the end of Bars collection. + + The Bar to be added to the end of the Bars collection. + + + + Removes specified bar from collection. + + Bar to remove + + + + Determines whether an Bar is in the collection. + + The Bar to locate in the collection. + true if item is found in the collection; otherwise, false. + + + + Determines whether bar with given name is in collection. + + Name of the bar + True if bar is part of this collection, otherwise false. + + + + Returns the zero-based index of the Bar in the collection. + + Bar to locate. + + + + + Gets the Bar at the specified index. + + + + + Gets the Bar with the specified name. + + + + + Holds the XML element and attribute names for bar serialization. + + + + + Represents class with static functions that provide commonly used utility functions when working with + Bar objects and items hosted by Bar object. + + + + + Sets Bar visible property and remembers the auto-hide state. + + Bar to set visibility for. + true if visible otherwise false + + + + Sets the visible property of DockContainerItem and hides the bar if the given item is the last visible item on the bar. + It will also automatically display the bar if bar is not visible. + + DockContainerItem to set visibility for. + Indicates the visibility of the item + + + + Creates new instance of the bar and sets its properties so bar can be used as Document bar. + + Returns new instance of the bar. + + + + Sets the properties on a bar so it can be used as Document bar. + + Bar to set properties of. + + + + Changes the MDI Client border edge to remove 3D border or to add it. + + Reference to MDI Client object. + Indicates whether to remove border. + + + + Changes the MDI Client border edge to remove 3D border or to add it. + + Reference to MDI parent form. + Indicates whether to remove border. + + + + Disposes image reference and sets it to null. + + Reference to image to dispose. + + + + Disposes image reference and sets it to null. + + Reference to image to dispose. + + + + Invokes the method asynchronously using the WinForms Timer. + + Method to invoke. + + + + Invokes the method asynchronously using the WinForms Timer. + + Method to invoke. + Time in milliseconds after which method is invoked. + + + + Gets or sets whether Fade Animation is enabled on system level for DotNetBar items which use this. Default value is true. + + + + + Gets or sets whether StringFormat internally used by all DotNetBar controls to render text is GenericDefault. Default value is false + which indicates that GenericTypographic is used. + + + + + Gets or sets the anti-alias text rendering hint that will be used to render text on controls that have AntiAlias property set to true. + + + + + Gets or sets whether .NET Framework TextRenderer class is used for text rendering instead of Graphics.DrawString. + Default value is false. + Using TextRenderer will disable the Fade and Animation effects on controls because of issues in TextRenderer when drawing text on transparent + surfaces. + + + + + Gets or sets whether items always generate the Focus accessibility event when mouse enters the item. Default value is false which indicates + that focus event will be raised only when item is on menu bar. + + + + + Gets or sets whether Application Message Filter that is registered by popup controls + is automatically unregistered when last control is disposed. Default value is false and + in most cases should not be changed. + + + + + Get or sets the text-markup padding for text measurement when running on Japanese version of Windows. + + + + + Gets or sets whether Image and Icon resources assigned to items and controls are automatically disposed when + control or item is disposed. Default value is false. + + + + + Defines the base class for items that are used by DotNetBar. + + + + + Represents a content block interface. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets whether content block is visible. + + + + + Gets or sets the block margins. + + + + + Creates new instance of BaseItem. + + + + + Creates new instance of BaseItem and assigns item name. + + Item name. + + + + Creates new instance of BaseItem and assigns item name and item text. + + Item Name + Item Text + + + + Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Deserialize the Item from the XmlElement. + + Source XmlElement. + + + + Indicates whether SubItems collection is serialized. Default value is true. + + + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Called when item parent has changed. + + + + + Returns whether item is enabled including the parent control item is on. + + + + + + Returns whether item is enabled including the parent control item is on. + + + + + + Called when size of the item is changed externally. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Called when item Display state has changed. + + + + + Called when item owner has changed. + + + + + Raises SubItemsChanged event. + + + + + + Occurs after an item has been added to the container. This procedure is called on both item being added and the parent of the item. To distinguish between those two states check the item parameter. + + When occurring on the parent this will hold the reference to the item that has been added. When occurring on the item being added this will be null (Nothing). + + + + Occurs after an item has been removed. + + Item being removed. + + + + Occurs just before Click event is fired. + + + + + Occurs after SubItems Collection has been cleared. + + + + + Occurs before an item is removed. + + Item being removed. + + + + Occurs when IsOnCustomizeMenu property has changed. + + + + + Occurs when IsOnCustomizeDialogChanged property has changed. + + + + + Occurs when item enter or exists the design mode. + + + + + Occurs when tooltip is about to be shown or hidden. + + Specifies whether tooltip is shown or hidden. + + + + Occurs after item has received the input focus. + + Item that received the focus. + + + + Occurs after item has lost the input focus. + + Item that lost the input focus. + + + + Indicates whether the item enabled property has changed. + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Occurs when the mouse pointer enters the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer hovers the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer leaves the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Occurs when a key is pressed down while the item has focus. This is used by internal implementation only. + + + + + Processes the MouseLeave for the current mouse over item. + + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Raises the click event and provide the information about the source of the event. + + + + + + Raises the Click event with default source as Code. + + + + + Occurs when the item is double clicked. This is used by internal implementation only. + + + + + Invokes DoubleClick event. + + + + + Occurs when the item receives focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when the item has lost the focus. If overridden base implementation must be called so default processing can occur. + + + + + Sets the input focus to the item. If overridden base implementation must be called so default processing can occur. + + + + + Releases the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when item container has lost the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when item container receives the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Indicates that item size has changed. It must be called by child item to let the parent know that its size + has been changed. + + + + + Return Sub Item at specified location + + + + + Gets the current expanded subitem. + + + + + + Gets the item that has input focus. + + Item that has focus or Null (Nothing) if none of the subitems have focus. + + + + Gets the owner of the item. + + DotNetBarManager that owns the item. + + + + Recalculate the size of the item. If overridden base implementation must be called so default processing can occur. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Must be overridden by class that is inheriting to provide the method to + return copy of an item. + + + + + Internal Copy implementation. + + Item to copy to. + + + + Returns copy of the item. + + Copy of the item. + + + + Forces the repaint the item. + + + + + Occurs when Expanded state changes. If overridden base implementation must be called so default processing can occur. + + + + + Raises ExpandChange event. + + Event arguments + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Releases all resurces used in this control. After calling Dispose() + object is not in valid state and cannot be recovered to the valid state. + Recreation of the object is required. + + + + + Occurs after item visual style has changed. + + + + + Occurs after text has changed. + + + + + Returns if passed control is valid. + + Control to test. + + + + + Resets Hoover timer. + + + + + Returns true if any subitem is contained on the control with a given handle. + + Container handle to test. + + + + + Occurs after Tooltip text has changed. + + + + + Sets orientation of the item but it does not cause the recalculate layout flag setting on the parent item. + + New orientation value. + + + + Destroys tooltip window. + + + + + Called when HotSubItem has changed. + + New value. + Old value. + + + + Shows tooltip for this item. + + + + + Returns the shortcut string that is displayed on tooltip. + + + + + + Collapses all sub items by setting their Expanded property to false. + + Item to collapse. + + + + Collapses all sub items by setting their Expanded property to false. Enumerates all child items as well. + + Item to collapse. + + + + Collapses whole tree for the item starting with its parent. + + Item to collapse. + + + + Returns whether item is hosted on popup menu or bar. + + Item to get information for. + + + + + Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. + + Hash code. + + + + Called when DragStartPoint property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Occurs when text markup link is clicked. + + + + + Updates data bindings for item and its sub-items in response to binding context change on parent control. + + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.Invoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An array of objects to pass as arguments to the specified method. This parameter can be null reference (Nothing in Visual Basic) if the method takes no arguments. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.Invoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.BeginInvoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Occurs when Item is clicked. + + + + + Occurs when Item is double-clicked. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when copy of the item is made. + + + + + Occurs when Text property of an Item has changed. + + + + + Occurs when Visible property of an Item has changed. + + + + + Occurs when Enabled property of an Item has changed. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Occurs when content of SubItems collection has changed. + + + + + Gets or sets whether item is rendered. + + + + + Gets or sets whether item is selectable at design-time. Default value is true. + + + + + Control Container (System.Windows.Forms.Control or its descendant) + + + + + Returns the Parent of the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Gets or sets Left position of this item + + + + + Gets or sets Top position of this item + + + + + Gets or sets Width of this item + + + + + Gets whether item is in right-to-left layout mode. + + + + + Gets or sets Height of this item + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item will auto expand when mouse is over the item or not. + + + + + Gets the rectangle that represents the display area of the item. + + + + + Gets or sets the size of the item. + + + + + IBlock member implementation + + + + + Specifies whether this item is visual container or not. For example + Tool Menu is not container since it drops-down its items and they are + not "visualy" contained. Also, the pop-up menus, drop-down Bars etc. are not containers. + + + + + Returns true if this item is currently displayed. This property should not be set directly since it is managed by system and container of the item. + + + + + Gets the mouse down coordinates. + + + + + Gets whether item is on context menu created using ContextMenuBar + + + + + Gets whether RaiseClick method will generate a click event give current item state. + + + + + Indicates whether RaiseClick method collapses parent popups before raising click event. Default value is true. + + + + + Gets whether item has input focus. + + + + + Indicates that item is recalculating its size. + + + + + Suspends all layout for the item including painting. Use this property carefully and only to improve performace. + + + + + Gets whether item has been disposed through Dispose method call. + + + + + Returns the collection of sub items. + + + + + Returns count of sub items in SubItems collection that have Visible property set to true. + + + + + Unique ID that indentifies the item. + + + + + Allows the user to associate custom user data with the item. + + + + + Applies new visual style to this the item and all of its sub-items. + + + + + Gets the effective item style. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Returns name of the item that can be used to identify item from the code. + + + + + Gets or sets the global name of the item that is used to synchronize the Global properties for the item across all instances with same + global name. Note that only instances that belong to the same control are synchronized. GlobalItem must be set to true to perform the synchronization. + You can find more information and list of + properties that are synchronized in help file. + + + + + Gets whether global properties should synchronized. + + + + + Gets orientation within container that is supported by this item. If item does not support certain orientation the container automatically hides it when container switches into that orientation. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets orientation inside the container. Do not change the value of this property. It is managed by system only. + + + + + Gets whether tooltip for the item is displayed. + + + + + Gets whether tooltip is visible or not. + + + + + Gets or sets the name of the bar this item originated on. This is used to remember the + originating bar when user is moving the items from bar to bar. + + + + + Gets or sets item's original position (index) if item position has changed due to the user customization. + + + + + Gets or sets flag that indicates whether item was customize by the end-user. + + + + + Gets reference to the tooltip control if tooltip is displayed for this item. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns whether item is hosted on Customize menu. + + + + + Returns whether item is hosted on Customize Dialog. + + + + + Returns whether item is hosted on menu or not. + + + + + Returns whether item is hosted on menu bar or not. + + + + + Returns whether item is hosted on bar or not. + + + + + Returns whether item is in design mode or not. + + + + + Get or sets whether item has been changed in a way that it needs its size recalculated. This is internal + property and it should not be used by your code. + + + + + Returns whether item is System item. + + + + + Indicates whether access key processing set using ampersand key in Text is enabled. When enabled, and access key is pressed, item will raise Click event. + + + + + Return Access key for the item. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Returns text representation of shortcut for this item. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets the design-marker orientation for the item. + + + + + + Specifes the mouse cursor displayed when mouse is over the item. + + + + + Indicates whether item will be Serialized. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the default action description of the control for use by accessibility client applications. + + + + + Gets or sets the description of the control used by accessibility client applications. + + + + + Gets or sets the name of the control used by accessibility client applications. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets a value indicating whether the item is visible to accessibility applications. + + + + + Gets the item state inside of the parent container. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that for ButtonItem instances if this property is set to null and command was assigned previously, Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets plain text without text-markup if text-markup is used in Text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets a value indicating whether the caller must call an invoke method when making method calls to the item because the caller is on a different thread than the one the item was created on. + This property calls directly the ContainerControl.InvokeRequired and is provided as shortcut convinience property only. + + + + + Defines item parent container states. + + + + + State is not set. + + + + + Item in on the NavigationPane in normal size. + + + + + Represents the controller which allows single BaseItem to be hosted on the control. + + + + + Initializes a new instance of the BaseItemController class. + + + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Defines class which described single binding. + + + + + Raises Format event. + + Provides event arguments. + + + + Initializes a new instance of the BindingDef class. + + + + + Initializes a new instance of the BindingDef class. + + + + + + + Updates specified item PropertyName with the data from data object property specified by DataMember. + + Item to set PropertyName on. + Data to retrieve DataMember value from. + + + + Updates specified item PropertyName with the data from data object property specified by DataMember. + + CurrencyManager to use + Item to set PropertyName on. + Data to retrieve DataMember value from. + + + + Called when PropertyName property has changed. + + Old property value + New property value + + + + Called when DataMember property has changed. + + Old property value + New property value + + + + Called when FormattingEnabled property has changed. + + Old property value + New property value + + + + Called when FormatString property has changed. + + Old property value + New property value + + + + Called when FormatInfo property has changed. + + Old property value + New property value + + + + Called when NullValue property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets the property name binding is attached to. + + + + + Gets the reference to BindingMemberInfo created based on DataMember. + + + + + Gets or sets the data member name which holds data that PropertyName is populated with. + + + + + Gets or sets whether type conversion and formatting is applied to the property data. + + + + + Gets or sets format specifier characters that indicate how a value is to be displayed. + For more information, see Formatting Overview: http://msdn.microsoft.com/en-us/library/26etazsy%28v=vs.71%29.aspx + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets the Object to be set as the target property when the data source contains a DBNull value. + The data source must contain DBNull for the NullValue property to be correctly applied. + If the data source type is a type such as a string or integer the value of the NullValue property will be ignored. + Also, the NullValue property is ignored if it is set to null. + + + + + Occurs when property on BindingDef object has changed. + + + + + Represents the method that will handle converting for bindings. + + + + + + + Gets the reference to the item being converted. + + + + + Get the reference to the name of the field or property on the item that needs conversion. + + + + + Represents BindingDefConverer converter. + + + + + Creates new instance of the class. + + + + + Checks whether conversion can be made to specified type. + + Context Information. + Destination type. + + + + + Converts object to specified type. + + Context information. + Culture information. + Object to convert. + Destination type. + Object converted to destination type. + + + + Represents the toolbar control with the magnifying (bubbling) buttons. + + + + + Creates new instance of the control. + + + + + Indicates whether property should be serialized. Used by the Windows Forms design-time support. + + + + + Resets the property to default value. Used by the Windows Forms design-time support. + + + + + Indicates whether property should be serialized. Used by the Windows Forms design-time support. + + + + + Resets the property to default value. Used by the Windows Forms design-time support. + + + + + Returns whether property should be serialized by Windows Forms designer. + + True if property is different than default value otherwise false. + + + + Returns whether property should be serialized by Windows Forms designer. + + True if property is different than default value otherwise false. + + + + Recalculates the layout of the control. This method should be called after all changes to the tabs, buttons are completed so + layout of the control recalculated. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Returns reference to the button at specified location + + x - coordinate + y - coordinate + Reference to the button or null if no button could be found at given coordinates. + + + + Returns reference to the button at specified location + + Location coordinates + Reference to the button or null if no button could be found at given coordinates. + + + + Returns tab at specific location. + + Coordinates to get the tab from. + Reference to the tab object or null if tab cannot be found at specified location + + + + Returns tab at specific location. + + x - coordinate + y - coordinate + Reference to the tab object or null if tab cannot be found at specified location + + + + Invokes BubbleStart event. + + + + + Invokes BubbleEnd event. + + + + + Invokes ButtonClick event on the control. + + Reference to the button that was clicked. + + + + Called after overlay window became inactive. + + + + + Stops the bubble animation effect is one is applied currently. + + + + + Internal processing of MouseMove event. + + Move move event arguments. + + + + Internal processing for MouseLeave event. + + Event arguments + + + + Called after all buttons have been removed. + + Tab from which all buttons were removed. + + + + Called after specified button has been removed. + + Tab from which button was removed. + Button that was removed. + + + + Called after new button is added to the Buttons collection. + + Tab to which button was added. + Reference to the button added. + + + + Called when Visible property of Button has changed. + + Button affected. + + + + Returns the button background rectangle for display purposes. Applies setting for the ButtonBackgroundStretch property. + + Background rectangle. + + + + Called after tab has been removed from the collection. + + Tab that was removed. + + + + Called after tab has been added to the collection. + + Newly added tab. + + + + Called after all tabs are removed from the collection. + + + + + Called after text of a tab has changed. + + Tab which text has changed. + + + + Called after Visible property of the tab has changed. + + Tab affected. + + + + Sets the tab mouse is placed over. + + Tab that mouse is currently over or null if mouse is not over any tab. + + + + Occurs when active tab is about to change. + + + + + Occurs when any of the buttons is clicked. Sender object should be casted to BubbleButton to get the button that was actually clicked. + + + + + Occurs when mouse first enters the control and bubble effect is employed to provide feedback. + + + + + Occurs when mouse leaves the control and bubble effect is ended. + + + + + Gets or sets the bubble button tooltip text color. Default value is White color. + + + + + Gets or sets the bubble button tooltip text outline color. Default value is Black color. + + + + + Gets or sets the spacing in pixels between buttons. Default value is 0. + + + + + Gets or sets whether background for the buttons is stretched to consume complete width of the control. Default value is true. + + + + + Gets the style for the background of the control. + + + + + Gets the style for the background of the buttons. + + + + + Gets the bounds of the buttons back area. + + + + + Gets the bounds of the tabs area. + + + + + Gets or sets the duration of animation that is performed when mouse enters a button for the first time or when mouse has left the control. + + + + + Gets or sets whether bubble animation is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets ImageList for images used on buttons. These images will be used as images for the buttons that are not magnified. + Use ImagesLarge to specify the magnified images for the coresponding images based on the index in this list. + + + + + Gets or sets ImageList for large-sized images used on buttons when button is magnified. + + + + + Gets or sets whether tooltips are displayed for the buttons. + + + + + Gets or sets size of the images when button is enlarged, default value is 48 by 48 pixels. Note that you should provide the + images in the same size for the buttons through the image properties on the buttons or through ImagesLarge property. + If the large images are not provided the regular button image will be automatically enlarged. + + + + + Gets or sets the normal image size for the buttons, default value is 24 by 24 pixels. This should be set to the default image size that you will use on the + buttons. If the images specified for the buttons are not of the same size as the size specified here then they will + be automatically resized. Normal size must always be smaller than the size specified by ImageSizeLarge property. + + + + + Gets or sets the font that is used to display tooltips. + + + + + Gets or sets the selected tab. + + + + + Gets the reference to the colors that are used when tab is selected. + + + + + Gets the reference to the colors that are used when mouse is over the tab. + + + + + Gets the collection of all tabs. + + + + + Gets or sets the button alignment. + + + + + Gets or sets whether tabs are visible. Default value is true. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Delegate for tab change events. + + + + + Represents the event arguments tab changing events. + + + + + Cancels the operation. + + + + + Specifies the event source. + + + + + Specifies newly selected tab. + + + + + Specifies currently selected tab. + + + + + Default Constructor. + + + + + Represents overlay class to support bubble effects on BubbleBar control. + + + + + Called just before window is shown. + + + + + Called after window is closed. + + + + + Summary description for BubbleBarGroup. + + + + + Represents interface for simple text only tab. + + + + + Returns the font used for tab text. + + Reference to font object. + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Returns true if tab is selected tab. + + + + + Returns true if mouse is over the tab. + + + + + Gets the tab alignment. + + + + + Default constructor. + + + + + Default constructor. + + Container object. + + + + Returns the font for the tab text. + + Reference to the font object. + + + + Sets the parent of the tab. + + Reference to the tab parent object or null. + + + + Called after new button is added to the Buttons collection. + + Reference to the added button. + + + + Called after specified button has been removed. + + Button that was removed. + + + + Called after all buttons have been removed. + + + + + Gets the collection of the buttons associated with the tab. + + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Returns true if tab is selected tab. + + + + + Returns true if mouse is over the tab. + + + + + Gets the tab alignment. + + + + + Returns reference to parent object or null if tab does not have parent. + + + + + Gets or sets whether tab has design-time focus. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Represents collection for BubbleBarTab objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the IBlock array. + + Array to copy to. + + + + Copies contained items to the ISimpleTab array. + + Array to copy to. + + + + Returns next visible tab from the reference tab. + + Reference tab. + Next visible tab or null if next visible tab cannot be determined. + + + + Returns previous visible tab from the reference tab. + + Reference tab. + Previous visible tab or null if Previous visible tab cannot be determined. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents a button used on BubbleBar control. + + + + + Creates new instance of button object. + + + + + Sets the display rectangle of the button. + + New display rectangle of the button. + + + + Sets the magnified display rectangle of the button. + + New magnified display rectangle. + + + + Sets whether mouse is over the button. + + True if mouse is over the button otherwise false. + + + + Raises the MouseEnter event. + + + + + Raises the MouseLeave event. + + + + + Sets whether left mouse button is pressed over this button. + + True if left mouse button is pressed otherwise false. + + + + Sets the parent collection button belongs to. + + Parent collection of the item. + + + + Returns the reference to the BubbleBar that contains this button. + + + + + + Invokes button's Click event. + + Indicates source of the event. + + + + Raises click event. + + Default event arguments. + + + + Occurs when user clicks the button. + + + + + Occurs when mouse enters the button. + + + + + Occurs when mouse leaves the button. + + + + + Gets or sets the shortcut key to expand/collapse splitter. + + + + + Gets or sets the tooltip for the button. + + + + + Gets or sets the default image used on the button. Note that for improved appearance of the buttons when enlarged + you should set the ImageIndexLarge to the large version of the image specified here. The image size should be the same size + that is specified by the image size properties on BubbleBar object. + + + + + Gets reference to the internal cached image loaded from the ImageIndex. + + + + + Gets reference to the internal cached image loaded from the ImageIndex. + + + + + Specifies the Button image. + + + + + Specifies enlarged the Button image. + + + + + Gets or sets the image index of the enlarged image for the button. Note that if large image is not specified the + default image will be enlarged which might not result in perfect image appearance. + + + + + Property for Property Editor support for ImageIndex selection. + + + + + Gets or sets a value indicating whether button is enabled. + + + + + Gets the display rectangle occupied by the button. + + + + + Gets or sets the magnified display rectangle of the button. + + + + + Gets whether mouse is over the button. + + + + + Gets whether left mouse button is pressed on the button. + + + + + Returns name of the button that can be used to identify it from the code. + + + + + Gets or sets a value indicating whether button is visible. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Returns the reference to parent tab. + + + + + Gets or sets whether button has design-time focus. + + + + + Gets or sets the mouse cursor that is displayed when mouse is over the button. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Represents event arguments for Click event. + + + + + Gets the action that caused the event, event source. + + + + + Represents typed collection of BubbleButton objects. + + + + + Copies contained items to the IBlock array. + + Array to copy to. + + + + Creates new instance of the collection. + + Parent of the collection. + + + + Adds new item to the collection but it does not raise internal events. + + New item to add. + Index of newly added item. + + + + Adds new item to the collection at specified location but it does not raise internal events. + + New item to add. + Position to add item to. + + + + Clears the collection but it does not raise internal events. + + + + + Performs additional custom processes before setting a value in the CollectionBase instance. + + The zero-based index at which oldValue can be found. + The value to replace with newValue. + The new value of the element at index. + + + + Performs additional custom processes after setting a value in the CollectionBase instance. + + The zero-based index at which oldValue can be found. + The value to replace with newValue. + The new value of the element at index. + + + + Performs additional custom processes before inserting a new element into the CollectionBase instance. + + The zero-based index at which to insert value. + The new value of the element at index. + + + + Performs additional custom processes after inserting a new element into the CollectionBase instance. + + The zero-based index at which to insert value. + The new value of the element at index. + + + + Performs additional custom processes when removing an element from the CollectionBase instance. + + The zero-based index at which value can be found. + The value of the element to remove from index. + + + + Performs additional custom processes after removing an element from the CollectionBase instance. + + The zero-based index at which value can be found. + The value of the element to remove from index. + + + + Removes an item without raising internal events. + + Item to remove. + + + + Performs additional custom processes when clearing the contents of the CollectionBase instance. + + + + + Copies the collection to the ArrayList object. + + Target ArrayList. + + + + Adds new item to the collection. + + New item to add. + Index of newly added item. + + + + Adds new item to the collection at specified location. + + New item to add. + Position to insert item at. Position of -1 will append the item to the end of the collection. + Index of the newly added item. + + + + Inserts new item at the specified position. + + Position to insert item at. + Item to insert. + + + + Returns index of an item. + + Item to return index for. + Item at the specified position. + + + + Returns index of an item with given the item's name. + + Name of the item. + Index of the Item with the specified name or -1 if item is not found. + + + + Returns true if given item is contained by this collection. + + Item to test. + True if item is part of this collection otherwise false. + + + + Returns true if item with given name is part of this collection. + + Item name. + True if item is part of this collection otherwise false. + + + + Removes an item from the collection. + + Item to remove. + + + + Removes an item from collection at specified index. + + Index of the item to remove. + + + + Removes item from the collection with specified name. + + Name of the item to remove. + + + + Adds array of the items to the collection. + + Array of items to add. + + + + Copy the collection to the array. + + Array to copy collection to. + The zero-based relative index in array at which copying begins. + + + + Gets the parent of the collection. + + + + + Accesses items inside of the collection based on the index. + + + + + Accesses items inside of the collection based on the name. + + + + + Represents class for displaying BubbleButton objects on canvas. + + + + + Paints button on given canvas. + + Painting information. + + + + Represents class that holds information for BubbleButton painting. + + + + + Graphics object. + + + + + Button to paint. + + + + + Reference to BubbleBar control. + + + + + Gets or sets whether magnified version of the button is painted. + + + + + Gets or sets the button alignment inside of the bar. + + + + + Represents class for default layout of the BubbleButton objects. + + + + + Represents block layout manager responsible for sizing the content blocks. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + Content size available for the block in the given line. + + + + Performs layout finalization + + + + + + + + + Gets or sets the graphics object used by layout manager. + + + + + Creates new instance of the class. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Represents class that provides mangification for the BubbleMar control + + + + + Represents the serial content layout manager that arranges content blocks in series next to each other. + + + + + Represents interface for block layout. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Creates new instance of the class. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Occurs when X, Y position of next block is calcualted. + + + + + Occurs before new block is layed out. + + + + + Gets or sets the spacing in pixels between content blocks. Default value is 0. + + + + + Gets or sets whether content blocks are forced to fit the container bounds if they + occupy more space than it is available by container. Default value is false. + + + + + Gets or sets whether content blocks are resized to fit the container bound if they + occupy less space than it is available by container. Default value is false. + + + + + Gets or sets whether content blocks are resized (Width) to fit container bounds if they + occupy less space than the actual container width. Applies to the Vertical orientation only. Default value is false. + + + + + Gets or sets whether content blocks are resized (Height) to fit container bounds if they + occupy less space than the actual container height. Applies to the Horizontal orientation only. Default value is false. + + + + + Gets or sets the content orientation. Default value is Horizontal. + + + + + Gets or sets the content vertical alignment. Default value is Middle. + + + + + Gets or sets the block line vertical alignment. Default value is Middle. + + + + + Gets or sets the content horizontal alignment. Default value is Left. + + + + + Gets or sets whether all content blocks are resized so they have same height which is height of the tallest content block. Default value is false. + + + + + Gets or sets whether oversized blocks are resized based on the percentage reduction instead of based on equal pixel distribution. Default value is false. + + + + + Gets or sets whether content is wrapped into new line if it exceeds the width of the container. + + + + + Gets or sets whether layout is right-to-left. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Gets or sets the bubble size for the mouse over item. + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex-1 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex-2 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex+1 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex+2 + + + + + Gets or sets the index of the item mouse is over. + + + + + Gets or sets new X coordinate of the mouse over item when in horizontal layout or Y + coordinate when in vertical layout. + + + + + Summary description for ButtonItem. + + + + + PopupItem Class can pop-up it's subitems on either the popup Bar + or menu. + + + + + Adds neccessary functions to base item so it supports images properly. + If your item implements images you should derive from this class instead of BaseItem + + + + + Create new instance of ImageItem. + + + + + Create new instance of ImageItem and assigns the item name. + + Item name. + + + + Create new instance of ImageItem and assigns the item name and text. + + Item name. + Item text. + + + + Must be called by any sub item that implements the image when image has changed + + + + + Called after image on an item has changed. + + + + + Refreshes internal image size structure. + + + + + Occurs after an item has been removed. + + Item being removed. + + + + Refreshes internal image size structure. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Provides design-time support for DotNetBar items. + + + + + Creates new instance of PopupItem. + + + + + Creates new instance of PopupItem and assigns the name to it. + + Item name + + + + Creates new instance of PopupItem and assigns the name and text to it. + + Item name. + Item text. + + + + Copies the PopupItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Displays the sub-items on popup menu. + + Popup location. + + + + Invokes PopupOpen event. + + + + + + Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + Indicates whether screen position of the menu is verified so the menu always appears on the screen. + + + + Raises PopupShowing event. + + Event arguments. + + + + Displays the sub-items on popup toolbar. + + Popup location. + + + + Displays the sub-items on popup toolbar. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays popup container. + + Popup location. + + + + Creates the popup container control which is a parent/holder control for the controls you want to display on the popup. + This method can be used if you do not wish to handle the PopupContainerLoad to add controls to the popup container. + After calling this method you can access PopupContainerControl property to add your controls to be displayed on the popup. + + Indicates whether PopupContainerLoad events are fired. + + + + Displays popup container. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays the sub-items on popup specified by PopupType. + + Popup location. + + + + Displays the sub-items on popup specified by PopupType. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Raises PopupClose event. + + Event arguments. + + + + Queries whether popup can be closed. + + Source of closing request. + true if popup can be closed otherwise false. + + + + Closes the currently open popup. + + + + + Raises PopupFinalized event. + + Event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Sets the SourceControl for popup menu or toolbar. + + Control that popup menu or toolbar was invoked for. + + + + Occurs when popup container is loading. Use this event to assign control to the popup container. If you want to use same control + that you added to the popup container after popup is closed you must handle the PopupContainerUnload event and remove the control + from the popup container so it is not disposed with the container. + + + + + Occurs when popup container is unloading. Use this event to save any state associated with the control that was contained by the container or + to remove the control from the container so it is not disposed with container. + + + + + Occurs when popup item is about to open. + + + + + Occurs while popup item is closing. + + + + + Occurs while popup item is closing. + + + + + Occurs after popup item has been closed. + + + + + Occurs just before popup window is shown. + + + + + Gets the size of the popup before it is displayed. + + + + + Gets or sets whether popup on-screen position is verified and popup location adjusted so it does not cross boundaries of the screen. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates side bar for pop-up window. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Gets or sets the popup offset. + + + + + Gets or sets the popup location. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets the control that is displaying the context menu. + + + + + Gets the reference to the internal host PopupContainerControl control. + + + + + Provides support for personalized menu items. + + + + + Creates new instance of ButtonItem. + + + + + Creates new instance of ButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of ButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Called when NotificationMarkText property has changed. + + Old property value + New property value + + + + Called when NotificationMarkPosition property has changed. + + Old property value + New property value + + + + Called when NotificationMarkSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when NotificationMarkOffset property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when button image has changed. + + + + + Called when container of the item has changed. + + Previous item container. + + + + Overriden. Draws the item. + + Item paint arguments. + + + + Resets ImageFixedSize property to its default value. + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Gets whether FixedSize property should be serialized. + + + + + Resets the property to default value. + + + + + Overridden. Recalculates the size of the item. + + + + + Overloaded. Called when size of the item is changed externally. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. The pulse effect + continues indefinitely until it is stopped by call to StopPulse method. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. Pulse effect + will alternate between the pulse state for the number of times specified by the pulseBeatCount parameter. + + Specifies the number of times button alternates between pulse states. 0 indicates indefinite pulse + + + + Stops the button Pulse effect. + + + + + Indicates whether the item enabled property has changed. + + + + + Provides internal implementation for ButtonItem mouse down events. + + Mouse event arguments. + + + + Occurs when the item is double clicked. This is used by internal implementation only. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Called after Checked property has changed. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Sets Checked property without firing any events or performing any built-in logic. + + + + + Fires CheckedChanged event. + + + + + Fires OptionGroupChanging event. + + + + + Occurs just before Click event is fired. + + + + + Returns the shortcut string that is displayed on tooltip. + + + + + + Gets or sets the current font for the button. + + + + + Occurs when Checked property has changed. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Indicates whether images assigned to the button are disposed when button is disposed. Default value is false. + + + + + Specifies maximum of 2 character text displayed inside of the notification mark on top of the button. + + + + + Indicates the position of the notification marker within the bounds of the button. + + + + + Specifies diameter of notification mark. When set to 0 system default value is used. + + + + + Gets or sets background color of the notification mark. + + + + + Specifies the offset for the notification mark relative to its position. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.RibbonTabItemColors collection. See documentation for Office2007ColorTable.RibbonTabItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + Applies to items with Office 2007 style only. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.Default + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Specifies the Button image which is used when button background is black or very dark. Image is used when button text is white. This is provided for Metro style applications. + + + + + Specifies the Button image. + + + + + Specifies the small Button image used by Ribbon control when small image variant is needed because of the automatic button resizing or + because the button is on the Quick Access Toolbar. + + + + + Gets or sets the image size that is used by the button when multiple ImageList controls are used as source for button image. + By default ImageList assigned to Images property of parent control is used. Using this property you can selection ImagesMedium or + ImagesLarge ImageList to be used as source for image for this button. + + + + + Gets or sets whether button uses the ImageSmall as source of the image displayed on the button if ImageSmall is set to valid image. Default value is false. + + + + + Specifies the index of the image for the button if ImageList is used. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the index of the image for the button when mouse is over the item when ImageList is used. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Specifies the index of the image for the button when mouse left button is pressed and ImageList is used. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Specifies the index of the image for the button when items Enabled property is set to false and ImageList is used. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets or sets the fixed size of the button. Both width and height must be set to value greater than 0 in order for button to use fixed size. + Setting both width and height to 0 (default value) indicates that button will be sized based on content. + + + + + Gets whether fade effect is enabled. + + + + + Gets whether Pulse function is enabled. + + + + + Gets whether the button is currently pulsing, alternating slowly between the mouse over and default state. + + + + + Gets or sets whether pulse effect started with StartPulse method stops automatically when mouse moves over the button. Default value is true. + + + + + Gets or sets the pulse speed. The value must be greater than 0 and less than 128. Higher values indicate faster pulse. Default value is 12. + + + + + Gets or sets whether button auto-expands on mouse hover when button is used as menu-item and displayed on menu. Default value is true. + + + + + Indicates whether button should popup when clicked automatically. + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or set the alternative shortcut text. + + + + + Returns shortcut text if any that needs to be displayed. + + + + + Gets or sets the image bounds. + + + + + Gets or sets sub items bounds. + + + + + Gets or sets text bounds. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Gets or sets the text color of the button. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is underlined when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is bold when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is bold. + + + + + Gets or sets whether the font used to draw the item text is italic. + + + + + Gets or sets whether the font used to draw the item text is underlined. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Returns the collection of sub items. + + + + + Gets or sets whether button appears as split button. Split button appearance divides button into two parts. Image which raises the click event + when clicked and text and expand sign which shows button sub items on popup menu when clicked. Button must have both text and image visible (ButtonStyle property) in order to appear as a full split button. + Use AutoExpandOnClick=true if you want to make complete surface of the button display popup when clicked. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the amount of padding added horizontally to the button images when not on menus. Default value is 10 pixels. + + + + + Gets or sets the amount of padding added vertically to the button images when not on menus. Default value is 6 pixels. + + + + + Gets or sets an shape descriptor for the button which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Indicates whether mouse is over the item. + + + + + Indicates whether mouse is over the expand part of the button. + + + + + Indicates whether mouse is pressed. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets whether the button text is automatically wrapped over multiple lines when button is used on RibbonBar control. Default value is true. + + + + + Gets or sets whether image animation is enabled + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Represents accessible interface for ButtonItem object. + + + + + Represents accessible interface for ButtonItem object. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Button that will become checked if operation is not canceled. + + + + + Button that is currently checked and which will be unchecked if operation is not canceled. + + + + + Default constructor. + + + + + Stores all information for side bar images that are used by Bar or Popup menu. + + + + + Gets or sets the side bar image. + + + + + Gets or sets the side bar back color. + + + + + Gets or sets the gradient staring color. + + + + + Gets or sets the gradient ending color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the gradient staring color. + + + + + Gets or sets whether image is stretched so it fills the side bar or not if image is smaller than current side bar size. + + + + + Summary description for ButtonItemLayout. + + + + + Arranges the button inner parts when button size has changed externally. + + Button to arrange inner parts for. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. The pulse effect + continues indefinitely until it is stopped by call to StopPulse method. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. Pulse effect + will alternate between the pulse state for the number of times specified by the pulseBeatCount parameter. + + Specifies the number of times button alternates between pulse states. 0 indicates indefinite pulse + + + + Stops the button Pulse effect. + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Displays the sub-items on popup specified by PopupType. + + Popup location. + + + + Displays the sub-items on popup specified by PopupType. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Called when Command property value changes. + + + + + Occurs when Checked property has changed. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets whether the button is currently pulsing, alternating slowly between the mouse over and default state. + + + + + Gets or sets whether pulse effect started with StartPulse method stops automatically when mouse moves over the button. Default value is true. + + + + + Gets or sets the pulse speed. The value must be greater than 0 and less than 128. Higher values indicate faster pulse. Default value is 12. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets or sets the text alignment. Applies only when button text is not composed using text markup. Default value is center. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets or sets whether button is focused when pressed using left mouse button. Default value is true. + + + + + Gets whether command is executed when button is clicked. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Specifies the Button image which is used when button background is black or very dark. Image is used when button text is white. This is provided for Metro style applications. + + + + + Specifies the Button image. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Returns the collection of sub items. + + + + + Gets or sets whether button appears as split button. Split button appearance divides button into two parts. Image which raises the click event + when clicked and text and expand sign which shows button sub items on popup menu when clicked. Button must have both text and image visible (ButtonStyle property) in order to appear as a full split button. + + + + + Gets or sets whether button displays the expand part that indicates that button has popup. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Indicates the way button is rendering the mouse over state. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or sets the text associated with this button. + + + + + Gets/Sets informational text (tooltip) for the button. + + + + + Gets or sets whether mnemonic character assigned to button is processed only if Alt key is pressed. Default value is false which indicate that Alt key is not required. + + + + + + Indicates whether the button will auto-expand when clicked. + When button contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets an shape descriptor for the button which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.ButtonItemColors collection. See documentation for Office2007ColorTable.ButtonItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + Applies to items with Office 2007 style only. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.Default + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the mode by which the Button automatically resizes itself. + + + + + Gets or sets the amount of spacing between button image if specified and text. + + + + + Gets or sets the text color. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Gets or sets a value indicating whether the button is expanded (displays drop-down) or not. + + + + + Gets or sets the collection of shortcut keys associated with the button. When shortcut key is pressed button Click event is raised. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Returns current accessible state. + + + + + Summary description for ThemedButtonItemPainter. + + + + + Represents the Check-box item. Use a CheckBox to give the user an option, such as true/false or yes/no. + + + + + Creates new instance of CheckBoxItem. + + + + + Creates new instance of CheckBoxItem and assigns the name to it. + + Item name. + + + + Creates new instance of CheckBoxItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the CheckBoxItem specific properties to new instance of the item. + + New CheckBoxItem instance. + + + + Copies the CheckBoxItem specific properties to new instance of the item. + + New CheckBoxItem instance. + + + + Raises the click event and provide the information about the source of the event. + + + + + + Sets the Checked property of the item, raises appropriate events and provides the information about the source of the change. + + New value for Checked property + Source of the change. + + + + Called when Command property value changes. + + + + + Sets the Checked property of the item, raises appropriate events and provides the information about the source of the change. + + New value for Checked property + Source of the change. + + + + Raises CheckState changed event. + + Event arguments. + + + + Raises CheckedBindableChanged changed event. + + Event arguments. + + + + Called after Checked property has changed. + + + + + Raises the CheckedChanging event. + + + + + Raises the CheckedChanged event. + + + + + Occurs before Checked property is changed and allows you to cancel the change. + + + + + Occurs after Checked property is changed. Action cannot be cancelled. + + + + + Occurs when CheckState property has changed. + + + + + Occurs when CheckedBindable property has changed. + + + + + Gets or set whether the Checked values and the item appearance are automatically changed when the Check-Box is clicked. Default value is true. + + + + + Gets or sets the size of the check or radio sign. Default value is 13x13. Minimum value is 6x6. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets the check box position relative to the text. Default value is Left. + + + + + Gets whether mouse is over the item. + + + + + Gets whether left mouse button is pressed on the item. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Check-box that will become checked if operation is not cancelled. + + + + + Check-box that is currently checked and which will be unchecked if operation is not cancelled. This property will have only valid values for eCheckBoxStyle.RadioButton style CheckBoxItems. + + + + + Indicates the action that has caused the event. + + + + + Default constructor. + + + + + Represents painter for CheckBoxItem. + + + + + Paints CheckBoxItem. + + Provides arguments for the operation. + + + + Gets or sets color table used by renderer. + + + + + Represents circular progress indicator. + + + + + Creates new instance of circular progress indicator. + + + + + Creates new instance of circular progress indicator and assigns the name to it. + + Item name. + + + + Creates new instance of circular progress indicator and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Called when property on CircularProgressBar changes. + + Property Change Arguments + + + + Starts the progress bar loop for endless type progress bar. Progress bar will continue to run until Stop() method is called. + + + + + Stops the progress bar loop for endless type progress bar. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when ProgressTextFormat property has changed. + + Old property value + New property value + + + + Gets or sets the circular progress bar type. + + + + + Gets or sets the maximum value of the progress bar. + + + + + Gets or sets the minimum value of the progress bar. + + + + + Gets or sets the color of the progress percentage text. + + + + + Gets or sets whether text that displays the progress bar completion percentage text is visible. Default value is false. + + + + + Gets or sets the text displayed on top of the circular progress bar. + + + + + Gets or sets the current value of the progress bar. + + + + + Occurs when Value property has changed. + + + + + Gets or sets whether endless type progress bar is running. + + + + + Gets or sets the color of the color of progress indicator. + + + + + Gets or sets circular progress indicator diameter in pixels. + + + + + Gets or sets the text position in relation to the circular progress indicator. + + + + + Gets or sets whether text/label displayed next to the item is visible. + + + + + Gets or sets the suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed. + + + + + Gets or sets text padding. + + + + + Gets or sets the color of the text label. + + + + + Gets or sets the color of the pie progress bar dark border. + + + + + Gets or sets the color of the pie progress bar light border. + + + + + Gets or sets the color of the spoke progress bar dark border. + + + + + Gets or sets the color of the spoke progress bar light border. + + + + + Gets or sets format string for progress value. + + + + + Gets or sets the animation speed for endless running progress. Lower number means faster running. + + + + + Defines available circular progress bar types. + + + + + Line spokes progress bar. + + + + + Dot type/FireFox progress bar. + + + + + Donut type progress bar. + + + + + Spoke type progress bar. + + + + + Pie type progress bar. + + + + + Summary description for ColorFunctions. + + + + + Provides popup color picker. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the reference to the IWindowsFormsEditorService interface used for Windows Forms design time support. + + + + + Gets or sets the ColorScheme object for Scheme colors. + + + + + Gets or sets currently selected color. + + + + + Gets the selected color color scheme name if color scheme color is selected otherwise it returns an empty string. + + + + + Returns true if color selection was cancelled. + + + + + Represents the color comb control that allows color choice from pre-defined color comb palette. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Required designer variable. + + + + + Creates new instance of the control. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises MouseOverColorChanged event. + + Provides event arguments. + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets the color mouse is currently over. If mouse is not over any color in comb Color.Empty is returned. + + + + + Gets or sets the selected color. When setting the color note that color must be already present in the color comb otherwise the selected color will be reset to Color.Empty. + + + + + Occurs when MouseOverColor property has changed. + + + + + Represents the color selection control. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets the selected color. + + + + + Represents color item used for color picker control. Color item can only be used as part of the color picker DotNetBar feature. + + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + + Gets or sets the color represented by this item. Default value is Color.Black. + + + + + Gets or sets the size of the item when displayed. Default value is 13x13 pixels. + + + + + Gets or sets border drawn around the item. Default value is eColorItemBorder.All which indicates that border is drawn + on all four sides. + + + + + Gets whether mouse is over the item. + + + + + Represents the color picker drop down button. + + + + + Creates new instance of ButtonItem. + + + + + Creates new instance of ButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of ButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the ColorPreview event. + + Provides the data for the event. + + + + Invokes the ColorPreview event. + + Provides data for the event. + + + + Indicates whether SubItems collection is serialized. ColorPickerDropDown does not serialize the sub items. + + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Displays the Colors dialog that allows user to choose the color or create a custom color. If new color is chosen the + SelectedColorChanged event is raised. + + + + + Raises the BeforeColorDialog event. + + + + + + Update the selected color image if the SelectedColorImageRectangle has been set and button is using Image property to display the image. + + + + + Gets collection of ColorItem[] arrays that represent themed colors. Each ColorItem[] array is used to represent single line of theme colors. + + Collection of ColorItem[] arrays. + + + + Returns an array that represents the standard colors. Usually instances of ColorItem are included. + + ArrayList containing objects that describe standard colors. + + + + Invokes SelectedColorChanged event. + + + + + Occurs when color is chosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when mouse is moving over the colors presented by the color picker. You can use it to preview the color before it is selected. + + + + + Occurs before color picker dialog is shown. Data property of the event arguments will hold the reference to the Form about to be shown. + + + + + Gets or sets the last selected color from either the drop-down or Custom Color dialog box. Default value is + Color.Empty. You can use SelectedColorChanged event to be notified when this property changes. + + + + + Gets or sets whether theme colors are displayed on drop-down. Default value is true. + + + + + Gets or sets whether standard colors are displayed on drop-down. Default value is true. + + + + + Gets or sets more colors menu item is visible which allows user to open Custom Colors dialog box. Default value is true. + + + + + Gets or sets the rectangle in Image coordinates where selected color will be painted. Setting this property will + have an effect only if Image property is used to set the image. Default value is an empty rectangle which indicates + that selected color will not be painted on the image. + + + + + Gets whether internal representation of color items on popup has been initialized. + + + + + Gets or sets the Owner Window that will be used as owner for the colors modal dialog when displayed. + + + + + Gets or sets the array of ColorItem objects that will be used as theme colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets or sets the array of ColorItem objects that will be used as standard colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Indicates whether button should popup when clicked automatically. + + + + + Represents custom color blend selection control. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets the color selected by the control. Color that is assigned must be visible on the face of the control otherwise the SelectedColor will be set to Color.Empty + + + + + Represents the form in Office style with custom borders and caption. + + + + + Represents the form class that should be used instead of standard Form when form caption is provided by Ribbon control + and custom form look and feel in style of Office 2007 is required. This form does not have standard form caption. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Called when EnableCustomStyle property has changed. + + + + + Gets whether custom form styling is enabled. + + true if custom styling is enabled otherwise false. + + + + Gets the array of LinearGradientColorTable objects that describe the border colors. The colors with index 0 is used as the outer most + border. + + Array of LinearGradientColorTable + + + + Returns form custom region. + + New instance of the custom region. + + + + Gets the form path for the given input bounds. + + Represent the form bounds. + + + + + Paints the non-client area of the form. + + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Invalidates non client area of the form. + + Indicates whether complete form is invalidated. + + + + Redraws the non-client area of the form. + + + + + Called when BackgroundImageUnderCaption property has changed. + + Old property value + New property value + + + + Called when RenderFormIcon property has changed. + + Old property value + New property value + + + + Called when RenderFormText property has changed. + + Old property value + New property value + + + + Gets or sets whether Windows Vista Glass support is enabled when form is running on Windows Vista with Glass support. + Default value is true. + + + + + Gets or sets the RibbonControl that is hosted by this form. This property is for internal use only. + + + + + Gets whether Vista glass effect extension over the ribbon control caption is enabled. + + + + + Gets or sets the form's window state. + + + + + Gets or sets whether custom style for the form is enabled. Default value is true. + + + + + Gets or sets top left rounded corner size. Default value is 6. + + + + + Gets or sets top right rounded corner size. Default value is 6. + + + + + + Gets or sets bottom left rounded corner size. Default value is 6. + + + + + Gets or sets bottom right rounded corner size. Default value is 6. + + + + + Gets whether client border is painted in OnPaint method. + + + + + Gets whether ribbon control caption is painted + + + + + Gets or sets whether 3D MDI border is removed. Default value is true. + + + + + Gets whether form uses custom region + + + + + Gets whether Windows Glass effect is rendered on the form when supported by Operating System and enabled using EnableGlass. + + + + + Returns whether form is sizable given form state (maximized, minimized, normal) and FormBorderStyle setting. + + + + + Gets or sets whether non-client area of the form rendering is enabled. + + + + + Indicates whether form BackgroundImage is pulled up and rendered under form caption as well. + + + + + Indicates whether form icon is drawn. This is different from ShowIcon property which when set to false also removes the form icon from task-bar. Setting this property to false will keep form icon in task-bar but will hide on the form. + + + + + Indicates whether form Text is rendered in form caption. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Gets whether custom form styling is enabled. + + true if custom styling is enabled otherwise false. + + + + Invalidates non client area of the form. + + Indicates whether complete form is invalidated. + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Gets the form path for the give input bounds. + + Represents the form bounds. + + + + + Updates the form title bar text. Usually calling this method is not necessary but under certain conditions when form is used as MDI parent form + calling it to update combined text is necessary. + + + + + Called when CloseEnabled property value has changed. + + + + + Paints the non-client area of the form. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + + Occurs when text-markup link in TitleText is clicked. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets whether Vista glass effect extension over the ribbon control caption is enabled. + + + + + Gets or sets the icon for the form. + + + + + Gets or sets a value indicating whether the form enables auto scrolling. + + + + + Gets or sets the Office 2007 Renderer global Color Table. Setting this property will affect all controls in application that are using Office 2007 global renderer. + + + + + Gets whether client border is painted in OnPaint method. + + + + + Gets whether ribbon control caption is painted + + + + + Gets or sets whether anti-alias smoothing is used while painting form caption. Default value is true. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets the tooltip for the form system icon. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the MetroForm class. + + + + + Gets the array of LinearGradientColorTable objects that describe the border colors. The colors with index 0 is used as the outer most + border. + + Array of LinearGradientColorTable + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Gets the form path for the given input bounds. + + Represent the form bounds. + + + + + Called when HelpButtonText property has changed. + + Old property value + New property value + + + + Called when SettingsButtonText property has changed. + + Old property value + New property value + + + + Raises SettingsButtonClick event. + + Provides event arguments. + + + + Raises HelpButtonClick event. + + Provides event arguments. + + + + This property is not applicable for MetroForm. + + + + + + + Gets or sets the HELP button text. + + + + + Gets or sets the SETTINGS button text. + + + + + Occurs when SETTINGS button, if displayed, is clicked. + + + + + Occurs when HELP button, if displayed, is clicked. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Color scheme used by items on the Bar. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + VS.NET 2005 Blue Color Scheme + + + + + Converts hex string to Color type. + + Hexadecimal color representation. + Reference to Color object. + + + + Converts hex string to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts hex string to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Specifies Dock Site BackColor. + + + + + Specifies Dock Site BackColor2. + + + + + Specifies the gradient angle. + + + + + Specifies the menu bar background color. + + + + + Specifies the target menu bar gradient background color. + + + + + Specifies the gradient angle. + + + + + Specifies the background color for the bar when floating or when docked. + + + + + Specifies the target gradient background color for the bar when floating or when docked. + + + + + Specifies the gradient angle. + + + + + Specifies the background color for the bar Caption. + + + + + Specifies the target gradient background color for the bar Caption. + + + + + Specifies the gradient angle. + + + + + Specifies the color for text of the Caption. + + + + + Specifies the Bar Caption inactive (lost focus) background color. + + + + + Specifies the target background gradient Bar Caption inactive (lost focus) color. + + + + + Specifies the gradient angle. + + + + + Specifies the Bar inactive (lost focus) text color. + + + + + Specifies the background color for popup bars. + + + + + Specifies the border color for popup bars. + + + + + Specifies the border color for docked bars. + + + + + Specifies the color of the grab handle stripes. + + + + + Specifies the border color for floating bars. + + + + + Specifies the item background color. + + + + + Specifies the target item background gradient color. + + + + + Specifies the gradient angle. + + + + + Specifies the item text color. + + + + + Specifies the background color for the item that is disabled. + + + + + Specifies the text color for the item that is disabled. + + + + + Specifies the background color when mouse is over the item. + + + + + Specifies the target gradient background color when mouse is over the item. + + + + + Specifies the gradient angle. + + + + + Specifies the text color when mouse is over the item. + + + + + Specifies the border color when mouse is over the item. + + + + + Specifies the background color when item is pressed. + + + + + Specifies the target gradient background color when item is pressed. + + + + + Specifies the gradient angle. + + + + + Specifies the text color when item is pressed. + + + + + Specifies the border color when item is pressed. + + + + + Specifies the color for the item group separator. + + + + + Specifies the color for the item group separator shade. + + + + + Specifies the background color for the shadow of expanded item. + + + + + Specifies the background color for the expanded item. + + + + + Specifies the target gradient background color for the expanded item. + + + + + Specifies the gradient angle. + + + + + Specifies the text color for the expanded item. + + + + + Specifies the border color for the expanded item. + + + + + Specifies the background color for the checked item. + + + + + Specifies the target gradient background color for the checked item. + + + + + Specifies the gradient angle. + + + + + Specifies the border color for the checked item. + + + + + Specifies the text color for the checked item. + + + + + Specifies the customize item background color. Applies to Office2003 style only. + + + + + Specifies the customize item target gradient background color. Applies to Office2003 style only. + + + + + Specifies the customize item background color gradient angle. Applies to Office2003 style only. + + + + + Specifies the customize item text color. Applies to Office2003 style only. + + + + + Specifies the color of the menu border. + + + + + Specifies the background color of the menu. + + + + + Specifies the target gradient background color of the menu. + + + + + Specifies the angle of the gradient fill for the menu background. + + + + + Specifies the background color of the menu part (left side) that is showing the images. + + + + + Specifies the target gradient background color of the menu part (left side) that is showing the images. + + + + + Specifies the angle of the gradient fill for the menu part (left side) that is showing the images. + + + + + Specifies the background color for the items that were not recently used. + + + + + Specifies the side bar color for the items that were not recently used. + + + + + Specifies the target gradient side bar color for the items that were not recently used. + + + + + Specifies the angle of the gradient fill for the menu part (left side) that is showing the images. + + + + + Specifies the border color for focused design-time item. + + + + + Gets or sets predefined color scheme. By default DotNetBar will automatically change and generate color scheme depending on system colors. + + + + + Specifies the background color of the panel. + + + + + Specifies the target background gradient color of the panel. + + + + + Specifies the angle of the gradient fill for the panel background. + + + + + Specifies border color of the panel. + + + + + Specifies color of the text on the panel. + + + + + Specifies the background color of the explorer bar. + + + + + Specifies the target gradient background color of the explorer bar. + + + + + Specifies the angle of the gradient fill for the explorer bar background. + + + + + Specifies the foreground color of MDI System Item buttons. + + + + + Specifies the background color of the Splitter. + + + + + Specifies the target background gradient color of the Splitter. + + + + + Specifies the angle of the gradient fill for the Splitter background. + + + + + Specifies border color of the Splitter. + + + + + Specifies color of the text on the Splitter. + + + + + Indicates auto-hide panel background image if any. + + + + + Gets or sets the color of the auto-hide panel background. + + + + + Gets or sets the color of the auto-hide panel background. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the auto-hide tab background gradient angle. + + + + + Gets or sets the color of the auto-hide tab text. + + + + + Gets or sets the color of the auto-hide tab border. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab text. + + + + + Gets or sets the color of the tab border. + + + + + Specifies the type of predefined color scheme in ColorScheme object. + + + + + Default value. DotNetBar will automatically change and generate color scheme depending on system colors. + + + + + Blue Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Olive Green Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Silver Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Always use system colors to auto-generate color scheme. + + + + + Specifies a color scheme member. + + + + + Summary description for ColorSchemeEditor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Summary description for ColorSchemeVSEditor. + + + + + Represents Color type editor with support for color schemes. + + + + + Edits the value of the specified object using the editor style indicated by GetEditStyle. + + An ITypeDescriptorContext that can be used to gain additional context information. + An IServiceProvider that this editor can use to obtain services. + The object to edit. + The new value of the object. + + + + Gets the editor style used by the EditValue method. + + An ITypeDescriptorContext that can be used to gain additional context information. + A UITypeEditorEditStyle value that indicates the style of editor used by EditValue. If the UITypeEditor does not support this method, then GetEditStyle will return None. + + + + + Provides command related utility methods that register and unregister commands. + + + + + Connects the Command Source to the Command. + + Command source to connect to the command. + Reference to the command. + + + + Disconnects command source from the command. + + Reference to command source. + Reference to the command. + + + + Unregister command from all subscribers. Called when command is disposed. + + Command to unregister. + + + + Gets an array of Command Sources that are connected with the command. + + Reference to command + An array of command sources. + + + + Gets or sets whether commands use Reflection to find the property names when applying value to the unknown types. Default value is true. + Setting this value to false will increase performance if Unknown types are used but it will at same time disable the + command setting value for these types. + + + + + Gets or sets whether layout on the items of type BaseItem is automatically updated when command text or other property changes which requires layout updated. Default value is true. + + + + + Represents the bound data navigator in current DotNetBar style. + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Adds default items that make up the binding navigation control. + + + + + Gets or sets the reference to Add New record button. + + + + + Gets or sets the binding source for the navigator. + + + + + Gets or sets the label which represents the items count. + + + + + Indicates the format string for the label which displays the number of items bound. + + + + + Gets or sets the item which deletes current record. + + + + + Gets or sets the item which moves to first record. + + + + + Gets or sets the item which moves to last record. + + + + + Gets or sets the item which moves to next record. + + + + + Gets or sets the item which moves to previous record. + + + + + Gets or sets the text-box which shows current position. + + + + + Represents the class for the BaseItem non-popup based control host. + + + + + Creates new instance of the object. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Paints the control focus cues. + + Paint event information. + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Resets style to default value. Used by windows forms designer. + + + + + Called when visual property of the control has changed so the control can be updated. + + + + + Forces the button to perform internal layout. + + + + + Recalculates the size of the internal item. + + + + + Indicates to control that all further update operations should not result in layout and refresh of control content. + Use this method to optimize the addition of new items to the control. This method supports nested calls meaning + that multiple calls are allowed but they must be ended with appropriate number of EndUpdate calls. + IsUpdateSuspended property returns whether update is suspended. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Gets or sets the instance of BaseItem object hosted by this control. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Specifies the background style of the control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets/Sets the visual style for the control. + + + + + Gets whether control layout is suspended becouse of the call to BeginUpdate method. + + + + + Initializes a new instance of the CircularProgress class. + + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when Value property has changed. + + + + + Gets or sets the circular progress bar type. + + + + + Gets or sets the maximum value of the progress bar. + + + + + Gets or sets the minimum value of the progress bar. + + + + + Gets or sets the color of the progress percentage text. + + + + + Gets or sets whether text that displays the progress bar completion percentage text is visible. Default value is false. + + + + + Gets or sets the text displayed on top of the circular progress bar. + + + + + Gets or sets the current value of the progress bar. + + + + + Gets or sets whether endless type progress bar is running. + + + + + Gets or sets the color of the color of progress indicator. + + + + + Gets or sets the color of the pie progress bar dark border. + + + + + Gets or sets the color of the pie progress bar light border. + + + + + Gets or sets the color of the spoke progress bar dark border. + + + + + Gets or sets the color of the spoke progress bar light border. + + + + + Gets or sets format string for progress value. + + + + + Gets or sets the animation speed for endless running progress. Lower number means faster running. + + + + + Initializes a new instance of the CollapsibleSplitContainer class. + + + + + Raises BeforeNearCollapseButtonClick event. + + Provides event arguments. + + + + Raises NearCollapseButtonClick event. + + Provides event arguments. + + + + Raises BeforeFarCollapseButtonClick event. + + Provides event arguments. + + + + Raises FarCollapseButtonClick event. + + Provides event arguments. + + + + Called when ButtonPosition property has changed. + + Old property value + New property value + + + + Called when CollapseMode property has changed. + + Old property value + New property value + + + + + Occurs after near collapse button is clicked. + + + + + Occurs before far collapse button is clicked and allows you to cancel its action. + + + + + Occurs after far collapse button is clicked. + + + + + Indicates position of buttons inside container. + + + + + Specifies how panels are collapsed when collapse buttons are pressed. + + + + + Defines available positions for buttons inside CollapsibleSplitterContainer. + + + + + Buttons are positioned on left or top side depending on orientation. + + + + + Buttons are positioned in center of container. + + + + + Buttons are positioned on right or bottom side depending on orientation. + + + + + Defines collapse mode for the CollapsibleSplitContainer control. + + + + + When buttons are pressed the splitter is positioned at the PanelMinSize. + + + + + When buttons are pressed associated panel is collapsed through Panel1Collapsed or Panel2Collapsed properties. + + + + + Represents the color picker button control. + + + + + Creates new instance of the object. + + + + + Displays the Colors dialog that allows user to choose the color or create a custom color. If new color is chosen the + SelectedColorChanged event is raised. + + + + + Raises the ColorPreview event. + + Provides event data. + + + + Raises the SelectedColorChanged event. + + Provides event data. + + + + Indicates whether SubItems collection is serialized. ColorPickerDropDown does not serialize the sub items. + + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Invokes the ColorPreview event. + + Provides data for the event. + + + + Update the selected color image if the SelectedColorImageRectangle has been set and button is using Image property to display the image. + + + + + Occurs when color is chosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when mouse is moving over the colors presented by the color picker. You can use it to preview the color before it is selected. + + + + + Gets or sets the array of ColorItem objects that will be used as standard colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets or sets the array of ColorItem objects that will be used as theme colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets whether command is executed when button is clicked. + + + + + Gets or sets the Owner Window that will be used as owner for the colors modal dialog when displayed. + + + + + Gets or sets more colors menu item is visible which allows user to open Custom Colors dialog box. Default value is true. + + + + + Gets or sets the last selected color from either the drop-down or Custom Color dialog box. Default value is + Color.Empty. You can use SelectedColorChanged event to be notified when this property changes. + + + + + Gets or sets whether theme colors are displayed on drop-down. Default value is true. + + + + + Gets or sets whether standard colors are displayed on drop-down. Default value is true. + + + + + Gets or sets the rectangle in Image coordinates where selected color will be painted. Setting this property will + have an effect only if Image property is used to set the image. Default value is an empty rectangle which indicates + that selected color will not be painted on the image. + + + + + Represents enhanced Windows combo box control. + + + + + Creates new instance of ComboBoxEx. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Clean up any resources being used. + + + + + Loads all fonts available on system into the combo box. + + + + + Releases the focus from combo box. The control that last had focus will receive focus back when this method is called. + + + + + Called when DropDownColumns property has changed. + + Old property value + New property value + + + + Called when DropDownColumnsHeaders property has changed. + + Old property value + New property value + + + + Raises BeforeMultiColumnPopupOpen event. + + Provides event arguments. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises SelectionChanging event. + + Provides event arguments. + + + + Called when MultiColumnControlFont property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Occurs when drop down portion of combo box is shown or hidden. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets whether control is stand-alone control. Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the combo box background color. Note that in Office 2007 style back color of the control is automatically managed. + + + + + Gets or sets whether the BackColor value you set is used instead of the style back color automatically provided by the control. Default + value is false which indicates that BackColor property is automatically managed. Set this property to true and then set BackColor property + to make control use your custom back color. + + + + + Gets or sets value indicating whether system combo box appearance is used. Default value is false. + + + + + Gets or sets value indicating whether the combo box is draw using the Windows XP Theme manager when running on Windows XP or theme aware OS. + + + + + Disables internal drawing support for the List-box portion of Combo-box. Default value is false which means that internal drawing code is used. If + you plan to provide your own drawing for combo box items you must set this property to True. + + + + + Gets or sets whether combo box generates the audible alert when Enter key is pressed. + + + + + The ImageList control used by Combo box to draw images. + + + + + Determines the visual style applied to the combo box when shown. Default style is Office 2007. + + + + + Gets or sets whether ComboBoxEx thumb button that displays drop-down is rendered. Default value is true. + + + + + Gets or sets whether ComboBoxEx border is rendered. Default value is true. + + + + + Indicates whether ItemHeight property is set automatically based on the current font when DrawMode=OwnerDrawFixed + + + + + Gets or sets the custom color table used to render combo-box items + + + + + Gets or sets the text color for the text in combo-box when control Enabled property is set to false. + Setting this property is effective only for DropDownList ComboBox style. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that system background color is used when control is disabled. + + + + + Gets the window handle that the drop down list is bound to. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets or sets comma separated list of field names that are displayed on drop down. When set it activates ComboBoxEx multi-column drop-down mode. + DataSource must be set in order for drop-down to display data. + + + + + Indicates custom column names with each column separated by new line, i.e. \r\n escape sequence. + + + + + Occurs before the multi-column popup is opened and it allows canceling of popup by setting CancelEventArgs.Cancel=true. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding for multi-column drop-down and provides you with opportunity to modify it. + + + + + Occurs before selection on multi-column drop-down has changed and allows canceling of the change. Applies to multi-column drop-down only. + + + + + Gets or sets whether selection change on multi-column drop-down closes the popup. Default value is true. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup size is preserved between popup displays if popup is resized by end-user. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup can be resized by end user. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup close button is visible. + + + + + Gets or sets whether multi-column popup window is open. Applies to multi-column drop-down only. + + + + + Gets the reference to the control which is used to display multi-column data on popup. Control is created just before the popup is opened. + + + + + Indicates the font used by the multi-column control on the popup. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the method that will handle the DropDownChange event. + + + + + Summary description for ComboBoxItem. + + + + + Creates new instance of ComboBoxItem. + + + + + Creates new instance of ComboBoxItem and assigns item name. + + Item Name. + + + + Creates new instance of ComboBoxItem and assigns item name and item text. + + Item Name + Item Text. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Returns whether property should be serialized. + + + + + Overridden. Releases the input focus. + + + + + Raises the ComboBoxTextChanged event. + + Provides event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Occurs when underlining control ComboBox.Text property has changed. + + + + + Occurs when selected item on combo box has changed. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets whether combo box generates the audible alert when Enter key is pressed. + + + + + Gets or sets the text color of the combo box label. + + + + + IBlock member implementation + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + + + + + Gets or sets the height of the of the drop-down portion of a combo box. + + + + + Indicates the Width of the combo box part of the item. + + + + + Indicates whether control automatically releases its input focus when selection is made using keyboard. + + + + + Returns the reference to the inner combo box control. + + + + + Indicates whether item caption is always shown. + + + + + Gets an object representing the collection of the items contained in inner ComboBoxEx. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the text that is selected in the editable portion of a combo box. + + + + + Gets or sets currently selected item in the combo box. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the value indicating whether the item automatically loads all the fonts available into the combo box. + + + + + Gets or sets the height of an item in the combo box. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Gets or sets the value that indicates whether the item was recently used. + + + + + Overridden. Gets or sets the text associated with this item. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the item caption text displayed next to the combo box. + + + + + Gets or sets a string that specifies the property of the data source whose contents you want to display. When ComboBoxItem is used in DropDown mode + and objects like ComboItem are added to ComboBoxItems.Items collection DisplayMembers should be set to the name of the property you would + like to use as text representation in editable portion of ComboBox. For example in case of ComboItem objects property should be set to Text. + + + + + Specifies whether combo box is drawn using themes when running on OS that supports themes like Windows XP + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets whether control is stand-alone control. Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Summary description for ComboItem. + + + + + Creates new instance of ComboItem. + + + + + Initializes a new instance of the ComboItem class. + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + Overridden. Returns a human-readable string representation of this object. + + A string that represents this object. + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the index value of the image assigned to the item. + + + + + Gets or sets the text alignment.. + + + + + Gets or sets the line alignment for the item. + + + + + Gets or sets the value that encapsulates text layout information (such as alignment, orientation, tab stops, and clipping) and display manipulations. + + + + + Gets or sets the image horizontal image position. + + + + + Gets or sets the font name used to draw the item text. + + + + + Gets or sets the text color. + + + + + Gets or sets the background color of the item. + + + + + Specifies style information applied to text. + + + + + Gets the em-size of this Font object in design units. + + + + + Gets or sets the image assigned to this item. + + + + + Gets or sets an object that contains data to associate with the item. + + + + + Serves as integration of regular Image class and Icon class + + + + + Specifies orientation of content. + + + + + Indicates Horizontal orientation of the content. + + + + + Indicates Vertical orientation of the content. + + + + + Specifies content horizontal alignment. + + + + + Content is left aligned.UI + + + + + Content is right aligned. + + + + + Content is centered. + + + + + Specifies content vertical alignment. + + + + + Content is top aligned. + + + + + Content is bottom aligned. + + + + + Content is in the middle. + + + + + Represents a extended content block interface for advanced layout information. + + + + + Returns whether element is an container so it receives full available size of parent control for layout. + + + + + Represents event arguments for SerialContentLayoutManager.NextPosition event. + + + + + Gets or sets the block that is layed out. + + + + + Gets or sets the current block position. + + + + + Gets or sets the calculated next block position. + + + + + Cancels default position calculation. + + + + + Represents event arguments for the SerialContentLayoutManager layout events. + + + + + Gets or sets the reference block object. + + + + + Gets or sets the position block will assume. + + + + + Cancel the layout of the block, applies only to BeforeXXX layout event. + + + + + Gets or sets the visibility index of the block. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Delegate for SerialContentLayoutManager.NextPosition event. + + + + + Delegate for the SerialContentLayoutManager layout events. + + + + + Summary description for ContextExMenuTypeEditor. + + + + + Gets the editor style used by the EditValue method. + + An ITypeDescriptorContext that can be used to gain additional context information. + A UITypeEditorEditStyle value that indicates the style of editor used by EditValue. If the UITypeEditor does not support this method, then GetEditStyle will return None + + + + Represents the context menu bar that provides the context menus for the System.Windows.Forms.Control inherited controls on the form. + + + + + Returns the instance of the BaseItem that is assigned as context menu to the control. + + Control to return context menu for. + Instance of the BaseItem used as context menu for the control. + + + + Assigns the context menu to a control. + + Control to assign the context menu to. + Instance of PopupItem derived class usually ButtonItem to act as context menu for a control. The SubItems collection of the item specified here actually defines the visible context menu items. + + + + Gets/Sets whether Bar is visible or not. + + + + + Summary description for Popups. + + + + + Summary description for ControlContainerItem. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + Item name. + + + + Creates new instance of ControlContainerItem and assigns item name and item text. + + Item name. + Item text. + + + + Overridden. Returns the copy of the ControlContainerItem. + + Copy of the ControlContainerItem. + + + + Overridden. Draws the item. + + Target Graphics object. + + + + Overridden. Recalculates the size of the item. + + + + + Called when size of the item is changed externally. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when container control needs to be assigned to the item. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Gets or sets the reference to the control that is managed by the item. + + + + + IBlock member implementation + + + + + Specifies whether contained control can be automatically resized to fill the item container. + + + + + Represents the Check Box control with extended styles. + + + + + Invokes the CheckedChanged event. + + + + + Invokes CheckedChanging event. + + + + + Called when Command property value changes. + + + + + Occurs before Checked property is changed and allows you to cancel the change. + + + + + Occurs after Checked property is changed with extended information. + + + + + Occurs after Checked property is changed. This event is provided for the Windows Forms data binding support. You can use CheckedChangedEx to get extended information about the changed. + + + + + Occurs after Checked property is changed. This event is provided for the Windows Forms data binding support. You can use CheckedChangedEx to get extended information about the changed. + + + + + Gets or sets the size of the check or radio sign. Default value is 13x13. Minimum value is 6x6. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets the check box position relative to the text. Default value is Left. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the text associated with the control. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets the underlying CheckBoxItem + + + + + Gets or sets whether mnemonic character assigned to control is processed only if Alt key is pressed. Default value is false which indicate that Alt key is not required. + + + + + Gets or set whether the Checked values and the item appearance are automatically changed when the Check-Box is clicked. Default value is true. + + + + + Gets or sets the object that represents the Checked state of control. + + + + + Gets or sets whether empty string is consider as null value during CheckValue value comparison. Default value is true. + + + + + Gets or sets the value that represents the Indeterminate state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Checked state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Unchecked state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Check-box that will become checked if operation is not cancelled. + + + + + Check-box that is currently checked and which will be unchecked if operation is not cancelled. This property will have only valid values for eCheckBoxStyle.RadioButton style CheckBoxItems. + + + + + Indicates the action that has caused the event. + + + + + Default constructor. + + + + + Represents the combo box like control which shows the AdvTree control on popup. Tree control + can be configured to display multiple columns as well. + + + + + Initializes a new instance of the TextBoxDropDown class. + + + + + Raises FormattingEnabledChanged event. + + Event arguments. + + + + Raises FormatStringChanged event. + + Event arguments. + + + + Raises FormatInfoChanged event. + + Event arguments. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + Raises the DisplayMemberChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Creates a new node for the data item. + + Item to create node for. + New instance of the node. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + Called when ParentFieldName property has changed. + + + + + Called when GroupingMembers property has changed. + + + + + Raises the Format event. + + Event parameters + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Raises the ValueMemberChanged event. + + Event arguments. + + + + Raises the SelectedValueChanged event. + + Event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Renders the selected node inside the combo box. + + Graphics reference. + Render bounds. + + + + Updates popup tree size based on its content. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Called when PopupLocation property has changed. + + Old property value + New property value + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs when the text alignment in text box has changed. + + + + + Occurs before Node has been selected by user or through the SelectedNode property. Event can be canceled. + + + + + Occurs after node has been selected by user or through the SelectedNode property. + + + + + Occurs when the DataSource changes. + + + + + Occurs when the DisplayMembers property changes. + + + + + Occurs when the control is bound to a data value that need to be converted. + + + + + Occurs when FormattingEnabled property changes. + + + + + Occurs when FormatString property changes. + + + + + Occurs when FormatInfo property has changed. + + + + + Occurs when a Node for an data-bound object item has been created and provides you with opportunity to modify the node. + + + + + Occurs when a group Node is created as result of GroupingMembers property setting and provides you with opportunity to modify the node. + + + + + Occurs when value of ValueMember property has changed. + + + + + Occurs when value of SelectedValue property has changed. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding and provides you with opportunity to modify it. + + + + + Gets or sets the tree node that is currently selected in the tree control. + + + If no Node is currently selected, the + SelectedNode property is a null reference (Nothing in Visual + Basic). + + + + + Gets or sets whether selection change on popup tree closes the popup. Default value is true. + + + + + Gets or sets the field name that holds the text that will be displayed in the control for selected item. When not set all items set in DisplayMembers will be displayed in control. + + + + + Gets or sets the field name that holds the text that will be displayed in the control for selected item. When not set all items set in DisplayMembers will be displayed in control. + + + + + Gets or sets the comma separated list of property or column names to display on popup tree control. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMembers property of the control. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets comma separated field or property names that holds the value that is used to identify node and parent node. Format expected is: FieldNodeId,ParentNodeFieldId. For example if your table represents departments, you have DepartmentId field which uniquely identifies a department and ParentDepartmentId field which identifies parent of the department if any you would set this property to DepartmentId,ParentDepartmentId. + Note that you can only use ParentFieldNames or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets comma separated list of field or property names that are used for grouping when data-binding is used. + + + + + Gets or sets style for automatically created group nodes when data-binding is used and GroupingMembers property is set. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the property to use as the actual value for the items in the control. Applies to data-binding scenarios. SelectedValue property will return the value of selected node as indicated by this property. + + + + + Gets or sets the value of the member property specified by the ValueMember property. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed if set for the input items. Default value is true. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets the watermark text alignment. Default value is left. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Indicates whether Enter key when pressed while control has input focus toggles the popup. Default value is true. + + + + + Gets or sets whether keyboard incremental search is enabled. Default value is true. + + + + + Gets or sets whether during keyboard search selected node can be set to nothing/null if there is no match found. + Default value is true. + + + + + Gets or sets the keyboard search buffer expiration timeout. Default value is 1000 which indicates that + key pressed within 1 second will add to the search buffer and control will be searched for node text + that begins with resulting string. Setting this value to 0 will disable the search buffer. + + + + + Indicates the custom popup location for the ComboTree popup + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal AdvTree control that is displayed on popup Use it to get access to the AdvTree events and properties. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboTreeBox control. + + + + + Gets or sets the width in pixels of the drop-down portion of the ComboTreeBox control. + + + + + Gets or sets a value indicating whether the combo box is displaying its drop-down portion. + + + + + Gets the collection of tree nodes that are assigned to the popup tree view control. + + + A NodeCollection that represents the tree nodes + assigned to the tree control. + + + The Nodes property holds a collection of Node objects, each of which has a + Nodes property that can contain its own NodeCollection. + + + + + Gets the collection of column headers that appear in the popup tree. + + + By default there are no column headers defined. In that case tree control + functions as regular tree control where text has unrestricted width. + If you want to restrict the horizontal width of the text but not display + column header you can create one column and set its width to the width desired and + set its Visible property to false. + + + + + Gets or sets whether column headers are visible if they are defined through Columns collection. Default value is true. + + + + + Gets or sets whether grid lines are displayed when columns are defined. Default value is true. + + + + + Gets or sets the grid lines color. + + + + + Gets or sets whether horizontal grid lines between each row are displayed. Default value is false. + + + + + Gets or sets whether node is highlighted when mouse enters the node. Default value is false. + + + There are two ways to enable the node hot-tracking. You can set the HotTracking property to true in which case the + mouse tracking is enabled using system colors specified in TreeColorTable. You can also define the NodeStyleMouseOver + style which gets applied to the node when mouse is over the node. + + + + + Gets or sets the node selection box style for popup tree control. + + SelectionBox Property + SelectionBoxSize Property + SelectionBoxFillColor Property + SelectionBoxBorderColor Property + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that system background color is used when control is disabled. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the method that will handle converting for ComboTree control. + + + + + + + Gets the reference to the item being converted. + + + + + Get the reference to the name of the field or property on the item that needs conversion. + + + + + Defines delegate for data node based events. + + + + + Defines event arguments for data node based events. + + + + + Gets or sets the node that is created for data item. + + + + + Gets the data-item node is being created for. + + + + + Initializes a new instance of the DataNodeEventArgs class. + + + + + + + Defines delegate for data column based events. + + + + + Defines event arguments for data column based events. + + + + + Gets or sets the column header that is created for data. + + + + + Initializes a new instance of the DataColumnEventArgs class. + + + + + + Initializes a new instance of the ControlWithBackgroundStyle class. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Specifies the background style of the control. + + + + + Represents the DataGridView control with enhanced Office 2007 style. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Indicates whether control will delay call to OnResize base DataGridView method when control is running on MDI Child which was introduced as workaround to an issue in control. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets whether selected column header is highlighted. Default value is true. + + + + + Gets or sets whether select all sign displayed in top-left corner of the grid is visible. Default value is true. + + + + + Gets or sets whether enhanced selection for the cells is painted in Office 2007 style. Default value is true. + + + + + Indicates whether BackgroundColor property set on DataGridView is obeyed instead of using system color scheme color. + + + + + GetContentBounds + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Establishes the given rowIndex as the + ActiveRowIndex. + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + + GetValue + + + + + + + Initiates the refresh of the cell button + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Gets whether the Column cells will fully paint + their cell background and content + + + + + Constructor + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Hooks or unhooks our system events + + + + + + Processes Button expand changes + + + + + + + ButtonItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Gets or sets the active row index + + + + + Gets the Control Button + + + + + Gets or sets the Current row index + + + + + Gets or sets a expanded button + was just closed + + + + + Gets or sets the cell callback state + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Indicates whether the button will auto-expand when clicked. + When button contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets button Color Scheme. ColorScheme does not apply to Office2007 styled buttons. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.BlueWithBackground + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.ButtonItemColors collection. See documentation for Office2007ColorTable.ButtonItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. Applies to items with Office 2007 style only. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Indicates the way button is rendering the mouse over state. Setting the value to + Color will render the image in gray-scale when mouse is not over the item. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the Button image. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets the amount of spacing between button image if specified and text. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Gets or sets an shape descriptor for the button + which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Gets or sets whether button displays the expand part that indicates that button has popup. + + + + + Gets or sets whether button appears as split button. Split button appearance + divides button into two parts. Image which raises the click event when clicked + and text and expand sign which shows button sub items on popup menu when clicked. + Button must have both text and image visible (ButtonStyle property) in order to + appear as a full split button. + + + + + Gets/Sets the visual style for the button. + + + + + Returns the collection of sub items. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or sets the default Text to display on the Button + + + + + Gets or sets the text alignment. Applies only when button text is not composed using text markup. Default value is center. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + BeforeCellPaintEventArgs + + + + + RowIndex of cell being painted + + + + + ColumnIndex of cell being painted + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the Content bounds for the given cell + + + + + + + Initiates the refresh of the cell + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + HookEvents + + + + + + CheckBoxItem_Click + + + + + + + CheckBoxItem_DoubleClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Gets or sets the active row index + + + + + Gets the Control Button + + + + + Gets or sets the Current row index + + + + + Gets or sets the MouseDown row index + + + + + Gets or sets the cell callback state + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Gets or sets the check box position relative to the text. + Default value is Left. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Specifies the state of the control, that can be + checked, unchecked, or set to an indeterminate state. + + + + + CheckValue + + + + + Gets or sets the value that represents the Checked state value of the check + box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Indeterminate state of the check + box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Unchecked state value of check + box when CheckValue property is set to that value. Default value is 'N'. + + + + + Gets or sets whether empty string is consider as null value + during CheckValue value comparison. Default value is true. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets whether text-markup support is enabled for controls + Text property. Default value is true. Set this property to false to + display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the default Text to display + + + + + Gets or sets the text color. Default value is + Color.Empty which indicates that default color is used. + + + + + Gets or sets whether text assigned to the check box is visible. + Default value is true. + + + + + Gets or sets a value indicating whether the CheckBox will allow + three check states rather than two. If the ThreeState property is + set to true CheckState property should be used instead of Checked + property to set the extended state of the control. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + Click + + + + + + + DrawItem + + + + + + + DropDownChange + + + + + + + MeasureItem + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + ParseFormattedValue + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + + DrawText + + + + + + + + + MustRenderVisibleControl + + + + + + + OnMouseEnter + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + HookEvents + + + + + + ComboBoxEx_DataSourceChanged + + + + + + + DoComboBoxEx_Click + + + + + + + DoComboBoxEx_DrawItem + + + + + + + DoComboBoxEx_DropDownChange + + + + + + + DoComboBoxEx_MeasureItem + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a ComboBox Cell is painted + + + + + Occurs when the ComboBox is clicked + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes + + + + + Occurs when drop down portion of the ComboBox is shown or hidden. + + + + + Occurs each time an owner-drawn ComboBox item needs + to be drawn and when the sizes of the list items are determined + + + + + Gets the underlying ComboBoxEx control + + + + + Gets or sets the ComboBox CurrencyManager + + + + + Gets or sets a custom System.Collections.Specialized.StringCollection + to use when the AutoCompleteSource property is set to CustomSource. + + + + + Gets or sets an option that controls how automatic completion works for the ComboBox. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + + + + + Gets or sets the data source that populates the selections for the combo box + + + + + Gets or sets a string that specifies the property or column + from which to retrieve strings for display in the combo box. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets a value indicating whether user code or + operating system code will handle drawing of elements in the list. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Gets or sets the width of the drop-down lists of the combo box. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the flat style appearance of the column's cells. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the format-specifier + characters that indicate how a value is to be displayed. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets the ImageList control used by Combo box to draw images. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets a value indicating whether + the control should resize to avoid showing partial items. + + + + + Gets or sets whether control is stand-alone control. + Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Gets or sets the height of an item in the combo box. + + + + + Gets the collection of objects used as selections in the combo box. + + + + + Gets or sets the maximum number of items + in the drop-down list of the cells in the column. + + + + + Gets or sets the number of characters a user can type into the ComboBox. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets whether the items in the combo box are sorted. + + + + + Determines the visual style applied to + the combo box when shown. Default style is Office 2007. + + + + + Gets or sets the text associated with this control. + + + + + Gets or sets a string that specifies the property or column + from which to get values that correspond to the selections in the drop-down list. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text + is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets the Cell paint setting for the control + + + + + DropDownChangeEventArgs + + + + + ColumnIndex + + + + + Expanded state + + + + + RowIndex + + + + + Handles OnTextChanged events + + + + + + OnSelectedIndexChanged + + + + + + NotifyDataGridViewOfValueChange + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DateTimeInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + Gets the underlying DateTimeInput control + + + + + Gets or sets whether empty null/nothing state of the control is + allowed. Default value is true which means that IsEmpty property may + return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether input focus is automatically advanced + to next input field when input is complete in current one. + + + + + Gets or sets whether first day in month is automatically + selected on popup date picker when month or year is changed. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. + When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the custom date/time format string. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether empty input values (year, month or day) are + set to defaults while user is entering data. Default value is true. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the format date/time is displayed in. To specify + custom format set this value to Custom and specify custom format + using CustomFormat property. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether input part of the control is read-only. When set + to true the input part of the control becomes read-only and does not allow + the typing. However, drop-down part if visible still allows user to change + the value of the control. Use this property to allow change of the value + through drop-down picker only. + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets the reference to the internal MonthCalendarItem control which is used to display calendar when drop-down is open. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DoubleInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + DoubleInput + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the Numeric String Format that is used to format + the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" + and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose + only, not for the input purpose. For example to display the number + in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the value to increment or decrement the value of the + control when the up or down buttons are clicked. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DateTimeInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + IntegerInput + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the Numeric String Format that is used to format + the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" + and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose + only, not for the input purpose. For example to display the number + in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the value to increment or decrement the value of the + control when the up or down buttons are clicked. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a IpAddressInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying IpAddressInput control + + + + + Gets or sets whether empty null/nothing state of the control + is allowed. Default value is true which means that Text property + may return null if there is no input value. + + + + + Gets or sets whether free-text entry is automatically + turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether auto-overwrite functionality for input + is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether free text entries are attempted to be + auto-resolved to IP address as host/domain names. Default value is true. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Returns the collection of DropDownItems. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets whether control input is in + free-text input mode. Default value is false. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets whether input part of the control is read-only. When + set to true the input part of the control becomes read-only and does + not allow the typing. However, drop-down part if visible still allows + user to possibly change the value of the control through the method you + can provide on drop-down. Use this property to allow change of the value + through drop-down button only. + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets a value indicating whether a check box is displayed to + the left of the input value. Set to true if a check box is displayed + to the left of the input value; otherwise, false. The default is false. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Control for input of the integer value. + + + + + Initializes a new instance of the IpAddressInput class. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Raises ValueChanged event. + + Provides event arguments. + + + + + + + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Occurs when Value property has changed. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that Text property + may return null if there is no input value. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes + read-only and does not allow the typing. However, drop-down part if visible still allows user to possibly change the value of the control + through the method you can provide on drop-down. + Use this property to allow change of the value through drop-down button only. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the input value. + Set to true if a check box is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the input in the control. When the check box is selected, the value can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets the IP Address value represented by the control. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to IP address as host/domain names. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + GetAdjustedEditingControlBounds + + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Label background + + + + + + + + Paints the Label background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + CellAlignPoint + + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Initiates the refresh of the cell label + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Hooks or unhooks our system events + + + + + + LabelItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the LabelX Column + + + + + + Dispose + + + + + + Button FlatStyle + + + + + Button UseColumnTextForButtonValue + + + + + InCallBack + + + + + Gets the Control LabelX + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the border sides that are displayed. + Default value specifies border on all 4 sides. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Specifies label image. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the vertical text alignment. + + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + KeyDown routine forwards all DataGridView sent keys to + the underlying focusable control + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + + DrawText + + + + + + + + + MustRenderVisibleControl + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetTextAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a MaskedTextBoxAdv Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying MaskedTextBoxAdv control + + + + + Gets or sets a value indicating whether PromptChar can be entered as valid data. + + + + + Gets or sets a value indicating whether characters outside of the ASCII character set will be accepted. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets or sets a value indicating whether the masked text box + control raises the system beep for each user key stroke that it rejects. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets the culture information associated with the masked text box. + + + + + Gets or sets a value that determines whether + literals and prompt characters are copied to the clipboard + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets a value indicating whether the prompt characters + in the input mask are hidden when the masked text box loses focus. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + + + Gets or sets the input mask to use at run time. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets the character used to represent the absence of user input. + + + + + Gets or sets a value indicating whether the parsing of + user input should stop after the first invalid character is reached. + + + + + Gets or sets a value that determines how an input + character that matches the prompt character should be handled. + + + + + Gets or sets a value that determines how + a space input character should be handled. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets a value indicating + whether the user is allowed to reenter literal values. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets or sets a value that determines whether literals + and prompt characters are included in the formatted string. + + + + + Gets or sets a value indicating whether + the operating system-supplied password character should be used. + + + + + Gets or sets the data type used to verify the data input by the user. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Initializes a new instance of the MaskedTextBoxAdv class. + + + + + Initializes a new instance of the MaskedTextBoxAdv class using the specified input mask. + + A custom mask language provider, derived from the MaskedTextProvider class. + + + + Initializes a new instance of the MaskedTextBoxAdv class using the specified input mask. + + Initializes a new instance of the MaskedTextBox class using the specified input mask. + + + + Raises TypeValidationCompleted event. + + + + + Raises the TextAlignChanged event. + + + + + Raises MaskInputRejected event. + + + + + + Raises the MaskChanged event. + + + + + Raises IsOverwriteModeChanged event. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Gets whether property should be serialized by Windows Forms designer. + + + + + Converts the user input string to an instance of the validating type. + + If successful, an Object of the type specified by the ValidatingType property; otherwise, null to indicate conversion failure. + + + + Returns a string that represents the current masked text box. This method overrides ToString. + + A String that contains information about the current MaskedTextBox. The string includes the type, a simplified view of the input string, and the formatted input string. + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs after the insert mode has changed + + + + + Occurs after the input mask is changed. + + + + + Occurs when the user's input or assigned character does not match the corresponding format element of the input mask. + + + + + Occurs when the text alignment is changed. + + + + + Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property. + + + + + Specifies back color when Enabled=false + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal MaskedTextBox control. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets a value indicating whether PromptChar can be entered as valid data by the user. Default value is true. + + + + + Gets or sets a value indicating whether the MaskedTextBox control accepts characters outside of the ASCII character set. + true if only ASCII is accepted; false if the MaskedTextBox control can accept any arbitrary Unicode character. The default is false. + + + + + Gets or sets a value indicating whether the masked text box control raises the system beep for each user key stroke that it rejects. + + + + + Gets or sets the culture information associated with the masked text box. + + + + + Gets or sets a value that determines whether literals and prompt characters are copied to the clipboard. + + + + + Gets or sets the IFormatProvider to use when performing type validation. + + + + + Gets or sets a value indicating whether the prompt characters in the input mask are hidden when the masked text box loses focus. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + + + Gets or sets the input mask to use at run time. The default value is the empty string which allows any input + + + + + Gets a value indicating whether all required inputs have been entered into the input mask. Returns true if all required input has been entered into the mask; otherwise, false. + + + + + Gets a clone of the mask provider associated with this instance of the masked text box control. Returns masking language provider of type MaskedTextProvider. + + + + + Gets a value indicating whether all required and optional inputs have been entered into the input mask. Returns true if all required and optional inputs have been entered; otherwise, false. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets the character used to represent the absence of user input in MaskedTextBox. Returns character used to prompt the user for input. The default is an underscore (_). + + + + + Gets or sets whether text in control is read only. Default value is false. + + + + + Gets or sets a value indicating whether the parsing of user input should stop after the first invalid character is reached. Returns true if processing of the input string should be terminated at the first parsing error; otherwise, false if processing should ignore all errors. The default is false. + + + + + Gets or sets a value that determines how an input character that matches the prompt character should be handled. Returns true if the prompt character entered as input causes the current editable position in the mask to be reset; otherwise, false to indicate that the prompt character is to be processed as a normal input character. The default is true. + + + + + Gets or sets a value that determines how a space input character should be handled. Returns true if the space input character causes the current editable position in the mask to be reset; otherwise, false to indicate that it is to be processed as a normal input character. The default is true. + + + + + Gets or sets a value indicating the currently selected text in the control. + + + + + Gets or sets the number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + + + + + Gets or sets a value indicating whether the defined shortcuts are enabled. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets the length of the displayed text. + + + + + Gets or sets a value that determines whether literals and prompt characters are included in the formatted string. + + + + + Gets or sets a value indicating whether the operating system-supplied password character should be used. + + + + + Gets or sets the data type used to verify the data input by the user. Returns Type representing the data type used in validation. The default is null. + + + + + Gets the preferred height for a masked text box. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the content bounds for the given cell + + + + + + + + GetValue + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Hooks or unhooks our system events + + + + + + ProgressBarItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Button FlatStyle + + + + + Button UseColumnTextForButtonValue + + + + + InCallBack + + + + + Gets the Control ProgressBarX + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Gets or sets the predefined color state table for progress bar. Color + specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state + of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets/Sets the visual style for the control. + + + + + Gets or sets the default Text to display on the Progress Bar + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Slider background + + + + + + + + Paints the Slider content + + + + + + + + + + + OnMouseEnter + + + + + + Process MouseEnter state + + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + CellAlignPoint + + + + + + + + GetSliderValue + + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the content bounds for the given cell + + + + + + + Initiates the refresh of the cell slider + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Gets the type of the underlying data + (i.e., the type of the cell's Value property) + + + + + Constructor + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Hooks or unhooks our system events + + + + + + SliderItem_Click + + + + + + + SliderItem_ValueChanged + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a Slider Cell is painted + + + + + Gets or sets the active row index + + + + + Gets or sets the DataBindingComplete state + + + + + Gets the Control Slider + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the current position of the slider. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + KeyDown routine forwards all DataGridView sent keys to + the underlying focusable control + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + DrawText + + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetTextAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Appends text to the current text of a text box. + + The text to append to the current contents of the text box. + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength + property is zero so that no characters are selected in the control. + + + + + Retrieves the character that is closest to the specified location within the control. + + The location from which to seek the nearest character. + The character at the specified location. + + + + Retrieves the index of the character nearest to the specified location. + + The location to search. + The zero-based character index at the specified location. + + + + Retrieves the index of the first character of a given line. + + The line for which to get the index of its first character. + The zero-based character index in the specified line. + + + + Retrieves the index of the first character of the current line. + + The zero-based character index in the current line. + + + + Retrieves the line number from the specified character position within the text of the control. + + The character index position to search. + The zero-based line number in which the character index is located. + + + + Retrieves the location within the control at the specified character index. + + The index of the character for which to retrieve the location. + The location of the specified character. + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Selects a range of text in the text box. + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Replaces the specified selection in the TextBox with the contents of the Clipboard. + + The text to replace. + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a TextBoxDropDown Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying TextBoxDropDown control + + + + + Gets or sets a custom StringCollection to use when + the AutoCompleteSource property is set to CustomSource. + A StringCollection to use with AutoCompleteSource. + + + + + Gets or sets an option that controls + how automatic completion works for the TextBox. + One of the values of AutoCompleteMode. The values are Append, + None, Suggest, and SuggestAppend. The default is None. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + One of the values of AutoCompleteSource. The options are AllSystemSources, AllUrl, FileSystem, HistoryList, RecentlyUsedList, CustomSource, and None. The default is None. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets whether the TextBox control + modifies the case of characters as they are typed. + One of the CharacterCasing enumeration values that specifies + whether the TextBox control modifies the case of characters. + The default is CharacterCasing.Normal. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets a value indicating whether the selected text in + the text box control remains highlighted when the control loses focus. + true if the selected text does not appear highlighted when the + text box control loses focus; false, if the selected text remains + highlighted when the text box control loses focus. The default is true. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + The number of characters that can be entered into the control. The default is 32767. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets a value indicating the currently selected text in the control. + A string that represents the currently selected text in the text box. + + + + + Gets or sets the number of characters selected in the text box. + The number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + The starting position of text selected in the text box. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets the length of text in the control. + Returns number of characters contained in the text of the control. + + + + + Gets or sets a value indicating whether + the operating system-supplied password character should be used. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Represents single line text box control with the drop down button to display custom control on popup and additional custom buttons. + + + + + Raises BeforeMultiColumnPopupOpen event. + + Provides event arguments. + + + + Initializes a new instance of the TextBoxDropDown class. + + + + + Raises the TextAlignChanged event. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Called when DropDownControl property has changed. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Called when Command property value changes. + + + + + Returns a string that represents the current text in text box. This method overrides ToString. + + A String that contains information about the current TextBox. The string includes the type, a simplified view of the input string, and the formatted input string. + + + + Appends text to the current text of a text box. + + The text to append to the current contents of the text box. + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the control. + + + + + Retrieves the character that is closest to the specified location within the control. + + The location from which to seek the nearest character. + The character at the specified location. + + + + Retrieves the index of the character nearest to the specified location. + + The location to search. + The zero-based character index at the specified location. + + + + Retrieves the index of the first character of a given line. + + The line for which to get the index of its first character. + The zero-based character index in the specified line. + + + + Retrieves the index of the first character of the current line. + + The zero-based character index in the current line. + + + + Retrieves the line number from the specified character position within the text of the control. + + The character index position to search. + The zero-based line number in which the character index is located. + + + + Retrieves the location within the control at the specified character index. + + The index of the character for which to retrieve the location. + The location of the specified character. + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Selects a range of text in the text box. + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Replaces the specified selection in the TextBox with the contents of the Clipboard. + + The text to replace. + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs when the text alignment is changed. + + + + + Occurs when the value of the Modified property has changed. + + + + + Occurs before the popup is opened and it allows canceling of popup by setting CancelEventArgs.Cancel=true. + + + + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets or sets a value indicating whether the drop-down is open. + + + + + Indicates whether DropDownControl is automatically focused when popup is open. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal TextBox control. Use it to get access to the text box events and properties. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets the preferred height for a text box. + + + + + Gets or sets a custom StringCollection to use when the AutoCompleteSource property is set to CustomSource. + A StringCollection to use with AutoCompleteSource. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + One of the values of AutoCompleteMode. The values are Append, None, Suggest, and SuggestAppend. The default is None. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + One of the values of AutoCompleteSource. The options are AllSystemSources, AllUrl, FileSystem, HistoryList, RecentlyUsedList, CustomSource, and None. The default is None. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + One of the CharacterCasing enumeration values that specifies whether the TextBox control modifies the case of characters. The default is CharacterCasing.Normal. + + + + + Gets or sets the character used to mask characters of a password in a single-line TextBox control. + The character used to mask characters entered in a single-line TextBox control. Set the value of this property to 0 (character value) if you do not want the control to mask characters as they are typed. Equals 0 (character value) by default. + + + + + Gets or sets how text is aligned in a TextBox control. + One of the HorizontalAlignment enumeration values that specifies how text is aligned in the control. The default is HorizontalAlignment.Left. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + true if the text in the TextBox control should appear as the default password character; otherwise, false. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the control loses focus. + true if the selected text does not appear highlighted when the text box control loses focus; false, if the selected text remains highlighted when the text box control loses focus. The default is true. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + The number of characters that can be entered into the control. The default is 32767. + + + + + Gets or sets a value that indicates that the text box control has been modified by the user since the control was created or its contents were last set. + true if the control's contents have been modified; otherwise, false. The default is false. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + true if the text box is read-only; otherwise, false. The default is false. + + + + + Gets or sets a value indicating the currently selected text in the control. + A string that represents the currently selected text in the text box. + + + + + Gets or sets the number of characters selected in the text box. + The number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + The starting position of text selected in the text box. + + + + + Gets the length of text in the control.Returns number of characters contained in the text of the control. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + Displays the desktop alerts with optional image or symbol. Text on alerts supports text-markup. + + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies alert color. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies alert color. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Alert position on the screen. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Alert position on the screen. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Image to display on alert. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color. + Alert position on the screen. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert position on the screen + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert position on the screen + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert color + Alert position on the screen + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert position on the screen + Alert color + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert position on the screen + Alert color + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Raises BeforeAlertDisplayed event. + + Provides event arguments. + + + + Indicates maximum alert size. + + + + + Specifies default alert screen position. + + + + + Specifies default alert color. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets time period in seconds after alert closes automatically. + + + + + Gets or sets whether text-markup can be used in alert text, default value is true. + + + + + Indicates whether alert plays exclamation sound when shown. + + + + + Occurs before alert is displayed and allows access to the alert Window through sender. + + + + + Defines predefined desktop alert colors. + + + + + Sets alert size based on its content, it respects MinimumSize and MaximumSize property settings. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when TextMarkupEnabled property has changed. + + Old property value + New property value + + + + Occurs when text markup link is clicked. + + + + + Raises MarkupLinkClick event. + + Provides event arguments. + + + + Display balloon. + + Indicates whether alert receives input focus upon showing. + + + + Displays balloon. + + + + + Called when alert needs to be hidden. + + + + + Hides balloon. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates image displayed on alert. + + + + + Indicates optional Alert Id. + + + + + Indicates the method that will be invoked if user clicks the alert. + + + + + Gets or sets whether text-markup can be used in Text property. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets the default alert size. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after alert closes automatically. + + + + + Specifies the reference control which is used to find which screen the alert is displayed on. If not specified alert is displayed on primary screen. + + + + + Indicates spacing between alerts on the screen + + + + + Indicates the request screen position for the alert + + + + + Indicates spacing in pixels between image and text + + + + + Indicates whether alert plays exclamation sound when shown. + + + + + Indicates whether close button on alert is visible + + + + + Defines the alert positions. + + + + + Top-left screen position. + + + + + Top-right screen position. + + + + + Bottom-right screen position. + + + + + Bottom left screen position. + + + + + Component to display flyout popup. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Called when Content property has changed. + + Old property value + New property value + + + + Called when PointerSide property has changed. + + Old property value + New property value + + + + Called when TargetControl property has changed. + + Old property value + New property value + + + + Called when DeepControlIntegration property has changed. + + Old property value + New property value + + + + Called when DisplayMode property has changed. + + Old property value + New property value + + + + Called when CloseMode property has changed. + + Old property value + New property value + + + + Raises PrepareContent event. + + Provides event arguments. + + + + Shows flyout with the Content. + + + + + Returns the flyout size based on Content size. + + Proposed flyout size. + + + + Shows flyout at specified location and with specified size. Size can be empty (0,0) and flyout will be automatically sized based on the content. + + + + + + Raises FlyoutShowing event. + + Provides event arguments. + + + + Raises FlyoutShown event. + + Provides event arguments. + + + + Raises QueryShowFlyout event. + + Provides event arguments. + + + + Shows flyout at specified location and with specified size. Size can be empty (0,0) and flyout will be automatically sized based on the content. + + Screen bounds to display flyout at. + Side of the flyout which will have pointer triangle + Pointer position either x or y depending on which side pointer is displayed on. + Target item for the flyout. + + + + Raises FlyoutClosing event. + + Provides event arguments. + + + + Raises FlyoutClosed event. + + Provides event arguments. + + + + Closes the flyout form if it was open. + + + + + Called when ActivateOnShow property has changed. + + Old property value + New property value + + + + Called when TopMost property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when DropShadow property has changed. + + Old property value + New property value + + + + Called when Parent property has changed. + + Old property value + New property value + + + + Indicates a control, usually panel with other controls inside of it, that is displayed on the flyout popup. + + + + + Indicates the side of the flyout triangle pointer is displayed on. + + + + + Indicates the target control for the flyout display and positioning. + + + + + Indicates whether Flyout integrates on item level with DotNetBar controls it recognizes like SuperTabControl, AdvTree etc. + + + + + Specifies when the flyout is displayed. + + + + + Indicates when Flyout is automatically closed. + + + + + Occurs before the flyout is shown for specific target and allows you to prepare Content for it. Sender of event will be the targeted control or item. + + + + + Occurs after flyout has been shown. + + + + + Provides opportunity to cancel showing of the flyout before any objects are created and allocated. This is preferred event to cancel flyout showing. + + + + + Occurs before flyout is closed and allows you to cancel the closing. + + + + + Occurs after flyout is closed. + + + + + Indicates whether flyout is active/focused when its shown, default value is false. + + + + + Indicates whether flyout is made top-most window when shown + + + + + Gets or sets the background flyout color. Default value is Color.Empty which indicates that current color scheme will be used. + + + + + Gets or sets the flyout border color. Default value of Color.Empty indicates that color scheme will be used. + + + + + Indicates whether flyout displays drop shadow. + + + + + Gets or sets the parent control for the Flyout. Parent is used to find the parent form so flyout can be closed when form is de-activated. + + + + + Defines delegate for the FlyoutShowing event. + + + + + + + Gets the reference to the flyout form. + + + + + Gets the reference to the flyout target usually TargetControl. + + + + + Allows you to cancel showing of the flyout by setting this value to true. + + + + + Initializes a new instance of the FlyoutShowingEventArgs class. + + + + + + + Defines the modes for Flyout display. + + + + + Flyout is displayed manually using flyout.Show() method. + + + + + Flyout is displayed when mouse is over TargetControl. + + + + + Flyout is displayed when mouse is hovering over TargetControl. + + + + + Flyout is displayed when left mouse button is clicked on TargetControl. + + + + + Defines Flyout closing condition. + + + + + Flyout is closed manually using flyout.Close() method. + + + + + Flyout is closed when user clicks outside of flyout bounds. + + + + + Flyout is closed when TargetControl is hidden. + + + + + Flyout is closed when TargetControl loses focus. + + + + + Flyout is closed when parent forms deactivates. + + + + + Defines colors for the Flyout control. + + + + + Specifies Flyout background color. + + + + + Specifies Flyout border color. + + + + + Called when PointerOffset property has changed. + + Old property value + New property value + + + + Called when PointerSide property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Indicates whether flyout displays a drop shadow. + + + + + Gets or sets whether form is made active/focused when shown. + + + + + Gets or sets the pointer offset from the top-left corner + + + + + Gets or sets the side pointer triangle is displayed on. + + + + + Gets or sets the flyout border color. Default value of Color.Empty indicates that color scheme will be used. + + + + + Defines the side of triangle pointer displayed on flyout popup. + + + + + Represents graphical panel control with support for different visual styles and gradients. + + + + + Default constructor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies any region related settings from style to control. + + + + + Applies color scheme colors to the style objects. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the current style of the control. + + Instance of ElementStyle object. + + + + Returns the current mouse down style of the control. + + Instance of ElementStyle object. + + + + Returns the current mouse over style of the control. + + Instance of ElementStyle object. + + + + Paints panel using Windows themes. + + Paint event arguments + + + + Prepares paint surface for paint operation. Called as first thing in Paint event. + + + + + + Paints panel given current style. + + Paint event arguments + + + + Paints insides of the control. + + Paint event arguments. + + + + Indicates whether CanvasColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CanvasColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets the style to it's default value. + + + + + Resets the internal mouse tracking properties that track whether mouse is over the panel and whether is mouse pressed while over the panel. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Button color scheme to the control. + + + + + Applies predefined Label color scheme to the control. + + + + + Applies predefined lable style to the ElementStyle object. + + Reference to ElementStyle object. + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether focus rectangle is displayed when control has focus. + + + + + Gets or sets the canvas color for the panel. Canvas color will be visible on areas of the control that do not get covered + by the style and it will also be used as a base color for style to be painted on. + + + + + Gets or sets the panel style. + + + + + Gets or sets the panel style when mouse hovers over the panel. + + + + + Gets or sets the panel style when mouse button is pressed on the panel. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets color scheme style. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets the text rectangle. This property is set by internal implementation and it should not be set by outside code. + + + + + Gets or sets whether painting of the control is suspended. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Calls base WndProc implementation + + Describes Windows Message + + + + Gets the ItemPaintArgs which provide information for rendering. + + Reference to Canvas + Returns the new ItemPaintArgs instance + + + + Paints the background of the control + + PaintEventArgs arguments + + + + Converts the client point into the screen point. + + Client point + Client point converted into screen coordinates. + + + + Adjusts the client rectangle for the control. + + Reference to new client rectangle. + + + + Adjusts the border rectangle before the non-client border is rendered. + + Border rectangle + + + + Occurs after non-client area is rendered and provides opportunity to render on top of it. + + Reference to Graphics object. + + + + Gets the reference to the BorderStyle used by the control if any. + + + + + Returns the Windows handle associated with the control. + + + + + Returns width of the control. + + + + + Returns the height of the control. + + + + + Returns whether handled for the control has been created. + + + + + Returns background color of the control. + + + + + Returns background color of the control when Enabled=false. + + + + + Returns whether control is enabled. + + + + + Invalidates non-client area of the control. + + + + + Paints insides of the control. + + Paint event arguments. + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Applies color scheme to the panel. + + + + + Applies default group panel style to the control. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Gets or sets the panel color scheme. + + + + + Gets or sets the image that appears in title with text. + + + + + Gets or sets the position of the title image. Default value is left. + + + + + Gets or sets the scrollbar skining type when control is using Office 2007 style. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether box around the title of the group is drawn. Default value is true. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets whether panel automatically provides shadows for child controls. Default value is false. + + + + + Specifies back color when Enabled=false + + + + + Defines predefined color schemes for panel control. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether custom styling (Office 2007 style) is enabled. Default value is true. + + + + + Recalculates the size of the internal item. + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Invokes the MarkupLinkClick event. + + Provides additional data about event. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Command property value changes. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies spacing between label image and text. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the border sides that are displayed. Default value specifies border on all 4 sides. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Specifies label image. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the text vertical alignment. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets text-orientation. Default is horizontal. + + + + + Gets or sets how vertical text is rotated when TextOrientation = Vertical. + + + + + Gets the underlying LabelItem + + + + + Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + A single horizontal or vertical line control. + + + + + Initializes a new instance of the Line class. + + + + + Called when StartLineCap property has changed. + + Old property value + New property value + + + + Called when StartLineCapSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when EndLineCap property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Specifies the line alignment within control bounds. + + + + + Specifies distance from the start of a line to the beginning of a dash pattern. + + + + + Specifies the line dash style. + + + + + Gets or sets the line thickness in pixels. + + + + + Gets or sets whether vertical line is drawn. Default value is false which means horizontal line is drawn. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Indicates the start of the line cap. + + + + + Indicates the size of the start cap. + + + + + Indicates the start of the line cap. + + + + + Indicates end line cap size. + + + + + Defined line end types. + + + + + Provides data for CheckStateConvert event. + + + + + Initializes a new instance of the CheckStateConvertEventArgs class. + + + + + + Represents generic base control for items container control. + + + + + Represents base control for bars. + + + + + Provides interface for controls that support ribbon customization. + + + + + Called when item contained by the container is right-clicked. + + Instance of the item that was right-clicked. + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Raises BeforeItemDrag event. + + Provides event arguments. + + + + + Called when DragInProgress property value has changed. + + + + + Releases the focus from the bar and selects the control that had focus before bar was selected. If control that had focus could not be determined focus will stay on the bar. + This method is used by internal DotNetBar implementation and you should not use it. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Invokes the ItemClick event. + + Reference to the item that was clicked. + + + + Returns the item at specified coordinates or null if no item can be found. + + X - coordinate to test. + Y - coordinate to test. + + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns automatically calculated width of the control given current content. + + Width in pixels. + + + + Clean up any resources being used. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Applies design-time defaults to control. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Indicates to control that all further update operations should not result in layout and refresh of control content. + Use this method to optimize the addition of new items to the control. This method supports nested calls meaning + that multiple calls are allowed but they must be ended with appropriate number of EndUpdate calls. + IsUpdateSuspended property returns whether update is suspended. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Invalidates the control layout and forces the control to recalculates the layout for the items it contains on next layout operation invoked using RecalcLayout method. + + + Call to this method is usually followed by the call to + RecalcLayout method to perform the control layout. + + + + + Applies any layout changes and repaint the control. + + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Gets or sets the form SideBar is attached to. + + + + + Gets or sets whether accelerator letters on buttons are underlined. Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Occurs before an item drag & drop operation is started and allows cancellation. + + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets whether control is in menu mode. + + + + + Returns the reference to the control that last had input focus. This property should be used to + determine which control had input focus before bar gained the focus. Use it to apply + the menu command to active control. + + + + + Returns whether control has any popups registered. + + + + + Gets or sets whether internal WM_GESTURENOTIFY handler is enabled. Default value is false. + + + + + Gets or sets whether ProcessDialogKey method calls base ContainerControl implementation. + By default base implementation is called but under certain conditions you might want to set + this property to true to receive KeyDown events for Arrow keys. + + + + + Gets or sets whether shortuct processing for the items hosted by this control is enabled. Default value is true. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Specifies the background style of the control. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether Key Tips (accelerator keys) for items are displayed on top of them. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Gets whether control layout is suspended becouse of the call to BeginUpdate method. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether control supports drag & drop. Default value is false. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Defines notification interface for scrollable item controls. + + + + + Indicates that item has been selected via keyboard. + + Reference to item being selected + + + + Gets or sets whether selection is allowed. + + + + + Gets or sets the selected item index. + + + + + Gets or sets the BindingContext. + + + + + Invalidates non-client area of the control. This method should be used + when you need to invalidate non-client area of the control. + + + + + Scrolls the control so that item is displayed within the visible bounds of the control. AutoScroll must be set to true for this method to work. + + Item to ensure visibility for. Item must belong to this control. + + + + Indicates that item has been selected via keyboard. + + Reference to item being selected + + + + Called when an item should be selected as result of the keyboard action. + + Item that is being selected. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Indicates whether container responds to keyboard presses and changes the active/mouse over item. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Indicates whether control can be scrolled when client area is dragged using mouse. Default value is true. + + + + + Gets the reference to internal vertical scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets the reference to internal horizontal scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets a value indicating whether the control enables the user to scroll to items placed outside of its visible boundaries. + + + + + Gets or sets the minimum size of the auto-scroll. Returns a Size that represents the minimum height and width of the scrolling area in pixels. + This property is managed internally by control and should not be modified. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Gets or sets whether all painting in control is suspended. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Returns collection of items on a bar for binding support. + + + + + Gets or sets the item template that is repeated for each data-row when using data binding. + + + + + Gets the collection of the binding applied to ItemTemplate visual when using data-binding. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether automatic drag & drop support is enabled. Default value is false. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Occurs when the DataSource changes. + + + + + Occurs when a item for an data-bound object item has been created and provides you with opportunity to modify the created item. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Indicates whether touch support for scrolling is enabled. + + + + + Initializes a new instance of the ListBoxAdv class. + + + + + Called when CheckBoxesVisible property has changed. + + Old property value + New property value + + + + Called when ItemHeight property has changed. + + Old property value + New property value + + + + Called when SelectionMode property has changed. + + Old property value + New property value + + + + Selects or clears the selection for the specified item in a ListBoxAdv. Use this property to set the selection of items in a multiple-selection ListBoxAdv. To select an item in a single-selection ListBox, use the SelectedIndex property. + + The zero-based index of the item in a ListBox to select or clear the selection for. You can pass -1 to clear the selection. + true to select the specified item; otherwise, false. + + + + Selects or clears the selection for the specified item in a ListBoxAdv. Use this property to set the selection of items in a multiple-selection ListBoxAdv. To select an item in a single-selection ListBox, use the SelectedIndex property. + + The zero-based index of the item in a ListBox to select or clear the selection for. You can pass -1 to clear the selection. + true to select the specified item; otherwise, false. + Indicates the source of the change. + + + + Selects next visible list box item. + + + + + Selects previous visible list box item. + + + + + Gets ListBoxItem which represents an object value from Items collection when Items collection contains non ListBoxItem objects. + + Value to get ListBoxItem for. + + + + + Called when DisplayMember property has changed. + + Old property value + New property value + + + + Called when CheckStateMember property has changed. + + Old property value + New property value + + + + Raises CheckStateConvert event. + + Provides event arguments. + + + + Called when ValueMember property has changed. + + Old property value + New property value + + + + Clears internal property descriptors cache when data-binding is used. In most cases it is not needed that you call this method. Do so only if instructed by DevComponents support. + + + + + Finds the first item in the ListBox that starts with the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that starts with the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the item before the first item to be searched. Set to negative one (-1) to search from the beginning of the control. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that exactly matches the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that exactly matches the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the item before the first item to be searched. Set to negative one (-1) to search from the beginning of the control. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Raises ItemCheck event. + + Provides event arguments. + + + + Sets the check state of the item at the specified index. + + The index of the item to set the state for. + One of the CheckState values. + + + + Gets the list of items displayed in list box. + + + + + Indicates whether check-boxes are visible inside list box items. + + + + + Indicates fixed item height. Maybe set to 0 to indicate that each item should be sized based on its content. + + + + + Specifies the selection mode used by the control. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBoxAdv. Negative one (-1) is returned if no item is selected. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBoxAdv. Do not modify items in this collection. To select or deselect list items while in multi-selection mode use SetSelected method. + + + + + Gets a collection containing the currently selected items in the ListBoxAdv. Do not modify items in this collection. To select or deselect list items while in multi-selection mode use SetSelected method. + + + + + Gets or sets the selected item. + + + + + Indicates property name which will provide the value to display for this list box when data-binding is used and DataSource is set. + + + + + Indicates property name which will provide the value for CheckState of the list box item when data-binding is used and DataSource is set. + + + + + Occurs when using data-binding with CheckStateMember specified and it allows you to convert a property value to CheckState. + + + + + Returns the enumerator with selected values if any + + + + + Gets or sets the value of the member property specified by the ValueMember property. If ValueMember specifies property that cannot be found on selected object this property returns null. + + + + + Indicates property name which will return the value for the selected item when SelectedValue property is accessed. + + + + + Occurs when CheckState of an ListBoxItem changes and it allows you to cancel the change. + + + + + Gets collection of checked items in the list. Modifying this collection does not have any effect on actual checked items. Use SetItemCheckState to set checked state of an item or access ListBoxItem directly and set its CheckState property. + + + + + + Defines selection modes for list control. + + + + + Items cannot be selected. + + + + + Only one item at the time can be selected. + + + + + Multiple items can be selected. A mouse click or pressing the SPACEBAR selects or deselects an item in the list. + + + + + Multiple items can be selected. Pressing SHIFT and clicking the mouse or pressing SHIFT and one of the arrow keys (UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW) extends the selection from the previously selected item to the current item. Pressing CTRL and clicking the mouse selects or deselects an item in the list. + + + + + Indicates that CheckState change of the item should be canceled. + + + + + Specifies the ListBoxItem that was changing. + + + + + When data-bound provides the object which was used to generate an ListBoxItem. + + + + + Initializes a new instance of the ListBoxAdvItemCheckEventArgs class. + + + + + + + Represents the ListBoxAdv item for internal use. Not for public usage. + + + + + Returns copy of the item. + + + + + Copies the ListBoxItem specific properties to new instance of the item. + + New ListBoxItem instance. + + + + Copies the ListBoxItem specific properties to new instance of the item. + + New item instance. + + + + Called when CheckState property has changed. + + Old property value + New property value + + + + Called when IsSelected property has changed. + + Old property value + New property value + + + + Sets selected state of the item including the source of the action that caused the change. + + + + + + + Called when HotTracking property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether mouse is over the item. + + + + + Gets the mouse state of the check box part of item if visible. + + + + + Indicates check-box state if visible. + + + + + Gets or sets whether item is selected. + + + + + Indicates whether item changes its background colors when mouse is over the item. + + + + + Specifies image displayed on the item. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Gets or sets the color of the text. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the text alignment. Default value is left. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the ListBoxItem being rendered. + Reference to the graphics object. + + + + Defines color table for ListBoxItem. + + + + + Specifies default state color table. + + + + + Specifies mouse over state color table. + + + + + Specifies selected state color table. + + + + + Defines single state color table for ListBoxItem. + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + + Indicates item text color. + + + + + Gets or sets the background colors for the item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Represents the extended ListView control with the Office 2007 Style. + + + + + Called when ColumnHeaderFont property has changed. + + Old property value + New property value + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Resets internal Column Header handler. This method should be called after you change the View property + at run-time. If your control is always in single view there is no need to call this method. This method + will work only when controls handle has already been created. + + + + + Resets the internal color table reference. This method is usually called automatically by + + + + + Gets whether property should be serialized by VS.NET designer. + + + + + Resets property to its default value. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Gets or sets the column header font. Default value is null which means controls Font property is used. + + + + + Gets or sets the item foreground color when control or item is disabled. By default SystemColors.Dark is used. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Specifies the control border style. Default value has Class property set so the system style for the control is used. + + + + + Specifies back color when Enabled=false + + + + + Summary description for MessageHandler. + + + + + Calculates the size of non-client area of the control. + + + + + Paints the non-client area of the control. + + + + + Draws the non-client area buffered. + + + + + Represents the PageNavigator control + + + + + Constructor + + + + + Hooks or unhooks our control events + + true to hook, false to unhook + + + + Handles NavigatePreviousPage events + + + + + + + Raises the NavigatePreviousPage event + + + + + Handles NavigateToday events + + + + + + + Raises the NavigateToday event + + + + + Handles NavigateNextPage events + + + + + + + Raises the NavigateNextPage event + + + + + Forces the button to perform internal layout. + + + + + Dispose + + + + + + Occurs when NavigateNextPage button is clicked + + + + + Occurs when NavigateToday button is clicked + + + + + Occurs when NavigatePreviousPage button is clicked + + + + + DefaultSize + + + + + Gets or sets the layout orientation. Default value is horizontal. + + + + + Gets or sets the tooltip for the PreviousPage button of the control + + + + + Gets or sets the tooltip for the Today button + + + + + Gets or sets the tooltip for the NextPage button + + + + + Gets/Sets the visual style for the control. + + + + + PageNavigator buttons + + + + + Previous page + + + + + Today + + + + + Next page + + + + + Represents the PageNavigate item + + + + + Creates new instance of PageNavigateItem + + + + + Creates new instance of PageNavigateItem and assigns the name to it + + Item name + + + + Handles size recalc + + + + + Handles external size changes + + + + + Lays out our control based upon its + vertical / horizontal orientation + + + + + Handles control rendering + + + + + + Draws the PreviousPage button + + Graphics + Office2007ScrollBarColorTable + + + + Gets the PreviousPage bitmap + + + + + + + + Creates the PreviousPage bitmap + + + + + + + + Draws the Today button + + Graphics + Office2007ScrollBarColorTable + + + + Gets the Today Bitmap + + + + + + + + Creates the Today Bitmap + + + + + + + + Draws the NextPage button + + + + + + + Gets the NextPage Bitmap + + + + + + + + Creates the NextPage Bitmap + + + + + + + + Centers the given rect + + + + + + + Processes InternalMouseMove events + + + + + + Returns the HitText area for the given point + + + + + + + Processes Mouse Leave events + + + + + Processes Mouse Down events + + + + + + Processes Mouse Up events + + + + + + Raises the NavigatePreviousPage event + + + + + Raises the NavigateToday event + + + + + Raises the NavigateNextPage event + + + + + Handles timer click events + + + + + + + Enables our click timer + + + + + Disposes of the click timer + + + + + OnTooltipChanged + + + + + Updates the control tooltip + + + + + Returns copy of the item + + + + + Copies the PageNavigatorItem specific properties to + new instance of the item + + New PageNavigatorItem instance + + + + Dispose + + + + + Releases the given bitmap + + Bitmap to release + + + + Occurs when NavigateNextPage button is clicked + + + + + Occurs when NavigateToday button is clicked + + + + + Occurs when NavigatePreviousPage button is clicked + + + + + Gets or sets the MouseOverPart + + + + + Gets or sets the MouseDownPart + + + + + Gets or sets the control orientation. Default value is Horizontal + + + + + Gets or sets whether Click event will be auto repeated + when mouse button is kept pressed over the item + + + + + Gets or sets the auto-repeat interval for the click event + when mouse button is kept pressed over the item + + + + + Gets or sets the tooltip for the PreviousPage button of the control + + + + + Gets or sets the tooltip for the Today button + + + + + Gets or sets the tooltip for the NextPage button + + + + + Defines the PageNavigator item parts + + + + + Indicates no part + + + + + Indicates the PreviousPage button of the control + + + + + Indicates the TodayPage button of the control + + + + + Indicates the NextPage button of the control + + + + + Initializes a new instance of the PageSlider class. + + + + + Raises SelectedPageChanged event. + + Provides event arguments. + + + + Called when IndicatorVisible property has changed. + + Old property value + New property value + + + + Returns array of all pages in control. + + Array of pages. + + + + Removes and disposes all pages within the control. + + + + + Called when SelectedPage property has changed. + + Old property value + New property value + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Called when SelectedPagePadding property has changed. + + Old property value + New property value + + + + Called when PageSpacing property has changed. + + Old property value + New property value + + + + Called when NextPageVisibleMargin property has changed. + + Old property value + New property value + + + + Called when Orientation property has changed. + + Old property value + New property value + + + + Called when ScrollBarVisibility property has changed. + + Old property value + New property value + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Occurs when selected page has changed. + + + + + Gets or sets whether current page indicator is visible. Default value is true. + + + + + Indicates selected page. + + + + + Indicates the animation time in milliseconds for operations that perform visual animation of transition. Set to zero to disable animation. + + + + + Gets or sets zero based selected page index. If there is no page selected returns -1. + + + + + Gets the total number of pages displayed by the control. + + + + + Gets or sets the single page padding. + + + + + Gets or sets the spacing in pixels between pages. + + + + + Gets or sets the page layout orientation. Default is horizontal. + + + + + Indicates whether page can be dragged using mouse to change currently selected page + + + + + Indicates whether selected page can be changed by using mouse drag on PageSlider client area which is not covered by pages. + + + + + Indicates scrollbar visibility. + + + + + Gets or sets the time in milliseconds that scrollbar is kept visible when there is no activity in control and mouse is over the control. + + + + + Indicates whether native touch support in control is enabled if available on target system. + + + + + Specifies scrollbar visibility. + + + + + Scrollbars are not visible. + + + + + Scrollbars are visible only if mouse is inside of the control. + + + + + Scrollbars are always visible. + + + + + Specifies level of touch enabled on the control. + + + + + Touch is enabled control wide. + + + + + Touch is disabled control wide. + + + + + Touch is enabled but only for the direct control client content. If touch input occurs on any child control it is not processed. + + + + + Called when PageNumber property has changed. + + Old property value + New property value + + + + Gets or sets page number. Page number determines the order in which pages are displayed inside of the PageSlider control. + + + + + Represents control which visually indicates current step in a sequence. + + + + + Initializes a new instance of the StepIndicator class. + + + + + Called when StepCount property has changed. + + Old property value + New property value + + + + Called when CurrentStep property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Orientation property has changed. + + Old property value + New property value + + + + Gets or sets the total number of steps that control will track. Default value is 10. + + + + + Gets or sets the current step in sequence. Current step should be less or equal than StepCount. + + + + + Gets or sets the background color of the control. + + + + + Gets or sets the color of the current step indicator. + + + + + Indicates the control orientation. + + + + + Processes the resizing messages. + + The message. + true, if the WndProc method from the base class shouldn't be invoked. + + + + Gets whether popup has been resized by end-user. + + + + + Type of resize mode, grips are automatically drawn at bottom-left and bottom-right corners. + + + + + Gets or sets whether Close button is visible in fotter. Resize handle must also be visible in order for close button to render. + + + + + Gets resize grip bounds. + + + + + Initializes a new instance of the ResizeGripColors structure. + + + + + + + + Specifies the popup resize modes + + + + + Raises Closed event. + + Provides event arguments. + + + + Raises Closing event. + + Provides event arguments. + + + + Show control on popup at specified location. + + + + + Shows control on popup at specified location with specified popup resize edges. + + + + + Shows control on popup at specified location and size with specified popup resize edges. + + + + + Hides popup if visible. + + + + + Occurs after popup is closed. + + + + + Occurs before popup is closed and allows canceling. + + + + + Gets whether popup is visible. + + + + + Gets the control displayed on popup. + + + + + Gets or sets the popup padding. + + + + + Gets or sets popup margin. + + + + + Represents the stand-alone progress bar control. + + + + + Advances the current position of the progress bar by the amount of the Step property. + + + + + Advances the current position of the progress bar by the specified amount. + + The amount by which to increment the progress bar's current position. + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the progress bar. + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the type of progress bar used to indicate progress. The Standard style displays the progress based on Minimum, Maximum and current Value. + The Marquee type is automatically moving progress bar that is used to indicate an ongoing operation for which the actual duration cannot be estimated. + + + + + Gets or sets the marquee animation speed in milliseconds. + + + + + Gets or sets the predefined color state table for progress bar. Color specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Gets the underlying ProgressBarItem + + + + + Defines color table for the StepItem. + + + + + Gets or sets the default state StepItem colors. + + + + + Gets or sets the mouse over state StepItem colors. + + + + + Gets or sets the StepItem colors when mouse is pressed over the item. + + + + + Gets or sets the StepItem colors when Value property is greater than Minimum property value, i.e. item is reporting progress. + Note that only Background color is used when progress indicator is drawn. + + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Represents the color table for StepItem single state. + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + + + + + + Gets or sets the background colors for the step item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Gets or sets the text color for the step item. + + + + + Gets or sets the border colors of the step item. + + + + + Represents the progress steps control. + + + + + Initializes a new instance of the ProgressSteps class. + + + + + Returns collection of items on a bar. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the arrow pointer width for the StepItem objects hosted within this container. + + + + + Represents a step item which is used to show single step in multi-step progress control. + + + + + Creates new instance of StepItem. + + + + + Creates new instance of StepItem and assigns the name to it. + + Item name. + + + + Creates new instance of StepItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the StepItem specific properties to new instance of the item. + + New StepItem instance. + + + + Copies the StepItem specific properties to new instance of the item. + + New StepItem instance. + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Called when Minimum property has changed. + + Old property value + New property value + + + + Called when Maximum property has changed. + + Old property value + New property value + + + + Called when Value property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when MinimumSize property has changed. + + Old property value + New property value + + + + Called when HotTracking property has changed. + + Old property value + New property value + + + + Called when ImageTextSpacing property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets the render path of the item. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates the image that is displayed next to the item text label. + + + + + Gets or sets whether this is first item in StepControl. + + + + + Gets or sets whether this is laste item in StepControl. + + + + + Indicates minimum size of the item + + + + + Specifies whether item changes its appearance when mouse is moved over the item + + + + + Gets whether mouse is over the item. + + + + + Gets whether left mouse button is pressed on the item. + + + + + Indicates the spacing between image and text. + + + + + Gets or sets padding around content of the item. + + + + + Indicates the array of colors that when set are used to draw the current progress, i.e. Value>Minimum + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Gets or sets the text alignment. Default value is left. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the color of the text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Container for the StepItem objects. + + + + + Initializes a new instance of the StepContainer class. + + + + + Returns copy of the item. + + + + + Copies the StepContainer specific properties to new instance of the item. + + New StepContainer instance. + + + + Copies the StepContainer specific properties to new instance of the item. + + New StepContainer instance. + + + + Called when PointerSize property has changed. + + Old property value + New property value + + + + Gets or sets the arrow pointer width for the StepItem objects hosted within this container. + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Slider item being rendered. + Reference to the graphics object. + + + + Represents Range Slider Control. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Raises GetRangeTooltipText event. + + Provides event arguments. + + + + Forces the button to perform internal layout. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value has changed and allow the cancellation of the change. + + + + + Occurs after Value property has changed + + + + + Occurs when control is about to display the range tooltip and it allows you to customize tooltip + + + + + Gets the RangeSliderItem. + + + + + Indicates whether clicking the area outside of the range change buttons moves the range change button to the clicked location if possible thus allowing range change. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Indicates image to be used as maximum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Indicates image to be used as minimum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Specifies minimum absolute range that user can select. Absolute range is defined as Abs(Value.Max-Value.Min) Applies to user performed selection through mouse only. + + + + + Gets current part that is pressed using mouse left button. + + + + + Gets mouse over part. + + + + + Gets bounds of maximum range sliding button. + + + + + Gets bounds of minimum range sliding button. + + + + + Indicates the size of the range change buttons. + + + + + Specifies the height of the range line + + + + + Gets or sets the string that is used to format the range value to be displayed while user moves the range buttons. Value set here is used in string.Format(RangeTooltipFormat, Value.Min, Value.Max). + + + + + Gets or sets the color of the range value. + + + + + Specifies whether range tooltip is shown while user is changing the range + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets tick marks bounds. + + + + + Gets tick marks bounds for second marker is visible. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Indicates tick display period + + + + + Indicates whether tick lines are shown + + + + + Gets or sets the range displayed by the control. + + + + + Represents the Rating control. + + + + + Initializes a new instance of the Rating class. + + + + + Raises the ParseRating event. + + Provides event arguments. + + + + Raises the ParseAverageRatingValue event. + + Provides event arguments. + + + + Raises the AverageRatingChanged event. + + Event data. + + + + Raises the RatingChanged event. + + Event data. + + + + Raises RatingChanging event. + + Event data + + + + Called when Command property value changes. + + + + + Occurs when Rating property has changed. + + + + + Occurs when RatingValue property has changed. + + + + + Occurs when Rating property is about to be changed and provides opportunity to cancel the change. + + + + + Occurs when AverageRating property has changed. + + + + + Occurs when AverageRatingValue property has changed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when RatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when AverageRatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Indicates number of stars used for the rating. Minium value is 2 stars. + + + + + Gets or sets the rating value represented by the control. Default value is 0 which indicates + that there is no rating set. Maximum value is 5. + + + + + Gets or sets the average rating shown by control. Control will display average rating (if set) when no explicit + Rating value is set through Rating property. Minimum value is 0 and Maximum value is 5. + + + + + Gets or sets the AverageRating property. This property is provided for Data-Binding with NULL value support. + + + + + Gets the reference to custom rating images. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether rating can be edited. Default value is true. + + + + + Gets or sets the orientation of rating control. + + + + + Gets or sets the Rating property value. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the spacing between optional text and the rating. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents an image control with built-in reflection. + + + + + Initializes a new instance of the ReflectionImage class. + + + + + Gets or sets the image displayed on the control. + + + + + Gets or sets whether reflection effect is enabled. Default value is true. + + + + + Represents an single line of text label control with text-markup support and built-in reflection. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether reflection effect is enabled. Default value is true. + + + + + Represents control which handles scroll-bars. + + + + + Initializes a new instance of the ScrollbarControl class. + + + + + Called when ScrollOverrideControl property has changed. + + Old property value + New property value + + + + Gets or sets the scroll-bar visual style. + + + + + Initializes a new instance of the RichTextBoxEx class. + + + + + Raises AcceptsTabChanged event. + + Provides event arguments. + + + + Raises HideSelectionChanged event. + + Provides event arguments. + + + + Raises ModifiedChanged event. + + Provides event arguments. + + + + Raises MultilineChanged event. + + Provides event arguments. + + + + Raises ReadOnlyChanged event. + + Provides event arguments. + + + + Raises LinkClicked event. + + Provides event arguments. + + + + Raises Protected event. + + Provides event arguments. + + + + Raises SelectionChanged event. + + Provides event arguments. + + + + Raises HScroll event. + + Provides event arguments. + + + + Raises HScroll event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Appends text to the current text of a text box + + + + + Determines whether you can paste information from the Clipboard in the specified data format. + + + + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the control. + + + + + Searches the text in a RichTextBox control for a string. + + + + + + + Searches the text of a RichTextBox control for the first instance of a character from a list of characters. + + + + + + + Searches the text in a RichTextBox control for a string with specific options applied to the search. + + + + + + + + Searches the text of a RichTextBox control, at a specific starting point, for the first instance of a character from a list of characters. + + + + + + + + Searches the text in a RichTextBox control for a string at a specific location within the control and with specific options applied to the search. + + + + + + + + + Searches a range of text in a RichTextBox control for the first instance of a character from a list of characters. + + + + + + + + + Searches the text in a RichTextBox control for a string within a range of text within the control and with specific options applied to the search. + + + + + + + + + + Retrieves the character that is closest to the specified location within the control. + + + + + + + Retrieves the index of the character nearest to the specified location + + + + + + + Retrieves the index of the first character of a given line. (Inherited from TextBoxBase.) + + + + + + + Retrieves the index of the first character of the current line. (Inherited from TextBoxBase.) + + + + + + Retrieves the line number from the specified character position within the text of the RichTextBox control. + + + + + + + Retrieves the location within the control at the specified character index. + + + + + + + Loads a rich text format (RTF) or standard ASCII text file into the RichTextBox control. + + + + + + Loads the contents of an existing data stream into the RichTextBox control. + + + + + + + Loads a specific type of file into the RichTextBox control. + + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Pastes the contents of the Clipboard in the specified Clipboard format. + + + + + + Reapplies the last operation that was undone in the control. + + + + + Saves the contents of the RichTextBox to a rich text format (RTF) file. + + + + + + Saves the contents of a RichTextBox control to an open data stream. + + + + + + + Saves the contents of the RichTextBox to a specific type of file. + + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Activates the control. (Inherited from Control.) + + + + + Selects a range of text in the text box. + + + + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Gets the reference to internal RichTextBox control. + + + + + Occurs when the value of the AcceptsTab property changes + + + + + Occurs when the value of the HideSelection property changes. + + + + + Occurs when the value of the Modified property changes. + + + + + Occurs when the value of the Multiline property changes. + + + + + Occurs when the value of the ReadOnly property changes. + + + + + Occurs when a hyperlink in the text is clicked. + + + + + Occurs when the user takes an action that would change a protected range of text. + + + + + Occurs when the current selection has changed. + + + + + Occurs when the horizontal scroll bar is clicked. + + + + + Occurs when the vertical scroll bar is clicked. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets the back color of the RichTextBox. + + + + + Gets or sets whether tab characters are accepted as input + + + + + Gets or sets whether automatic word selection is enabled. + + + + + Gets or sets indent for bullets in the control. + + + + + Gets or sets whether URLs are automatically formatted as links. + + + + + Gets or sets whether drag/drop of text, pictures and other data is enabled. + + + + + Gets or sets whether selection should be hidden when the edit control loses focus. + + + + + Gets or sets lines of text in a multi-line edit, as an array of String values. + + + + + Gets or sets maximum number of characters that can be entered into the edit control. + + + + + Gets or sets whether the text in the control can span more than one line. + + + + + Gets or sets whether the text in the edit control can be changed or not. + + + + + Gets or sets right margin dimensions. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + + + + + Gets or sets for multi-line edit control, which scroll bars will be shown. + + + + + Gets or sets whether shortcuts defined for the control are enabled. + + + + + Gets or sets whether selection margin is visible. + + + + + Gets or sets whether lines are automatically word-wrapped. + + + + + Gets or sets current zoom factor for the control content. + + + + + Should be fired when non-client size of the control changes, i.e. when WM_NCCALCSIZE message is received. + + + + + Should be fired when scroll-bar value on child control changes. + + + + + Should be fired when control receives WM_MOVE message. + + + + + Gets whether control is in design mode. + + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Defines arguments for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + + + + Initializes a new instance of the ScrollValueChangedEventArgs class. + + + + + + Defines information for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + + + + Defines delegate for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + Sender. + Event arguments + + + + Gets or sets the scroll-bar visual style. + + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Represents SideNav control to create "hamburger" menus. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Updates the control colors from the global color table. + + + + + Maximizes control width so it fills up space to the right of the control. + + Source of the event. + + + + Restores the control to previous size if it was maximized before. + + Source of event. + + + + Opens the control, i.e. expands it, selects specified item and shows its associated panel. + + Item to select. + Source of the event. + + + + Closes the control, i.e. unselects any selected item, hide its associated panel and folds the control. + + Source of the event. + + + + Raises IsMenuExpandedChanged event. + + Provides event arguments. + + + + Expands or collapses the control items menu. + + + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Raises BeforeMaximize event. + + Provides event arguments. + + + + Raises BeforeRestore event. + + Provides event arguments. + + + + Raises BeforeOpen event. + + Provides event arguments. + + + + Raises BeforeClose event. + + Provides event arguments. + + + + Raises SelectedItemChanged event. + + Provides event arguments. + + + + Indicates whether splitter that is located on right hand side of open control is visible and enabled. + + + + + Indicates whether button which folds/closes the control is visible. + + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether control is closed, i.e. whether selected item panel is shown or not. When closed + any selected item is unselected and selected panel hidden. + + + + + Indicates whether side menu is expanded, i.e. shows both image and text. When menu is collapsed only image is shown. + + + + + Occurs when IsMenuExpanded property has changed its value. + + + + + Indicates the animation time in milliseconds for operations that perform visual animation of transition. Set to zero to disable animation. + + + + + Occurs before the control is maximized and allows you to cancel that. + + + + + Occurs before the control is restored and allows you to cancel that. + + + + + Occurs before the control is opened and allows you to cancel that. + + + + + Occurs before the control is closed and allows you to cancel that. + + + + + Gets currently selected item. Only items with Panel assigned can be selected. + + + + + Occurs when SelectedItem changes. + + + + + Gets reference to internal SideNavStrip control. + + + + + Defines delegate for the CancelSource events. + + + + + + + Event arguments for CancelSourceEventHandler + + + + + Gets the source of the event. + + + + + Gets any optional data that is associated with the event. + + + + + Creates new instance of the object. + + Source of event + + + + Creates new instance of the object. + + Source of event + Optional data associated with the event. + + + + Initializes a new instance of the MetroTabItem class. + + + + + Selects the tab. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets cached image rendering bounds. + + + + + Gets or sets cached text rendering bounds. + + + + + Gets or sets the panel assigned to this tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Indicates the array of colors that when set are used to draw the border of the item. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Indicates an optional title for the associated panel. If not set item text is used. + + + + + Gets or sets whether this item acts as the SideNav control system menu which collapses and expands the SideNav items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Provides data for the SideNavItem rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Indicates whether to cancel system rendering of the item. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the ListBoxItem being rendered. + Reference to the graphics object. + + + + Defines color table for SideNav control. + + + + + Gets or sets the color table for SideNavItem + + + + + Gets or sets the background color of SideNav title bar. + + + + + Gets or sets the border color of the title of SideNav control. + + + + + Gets or sets the color of the strip which hosts the items. + + + + + Gets or sets the border color of the SideNav control. + + + + + Gets or sets the back color of panels that are attached to SideNavItem and displayed when SideNavItem is selected. + + + + + Defines color table for SideNavItem + + + + + Gets or sets the color table for Default state. + + + + + Gets or sets the color table for MouseOver state. + + + + + Gets or sets the color table for Pressed state. + + + + + Gets or sets the color table for Selected state. + + + + + Defines state color table for SideNavItem + + + + + Indicates item text color. + + + + + Gets or sets the background colors for the item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Gets or sets the border colors for the item. + + + + + Indicates the corner radius. + + + + + Represents a panel which hosts controls for the SideNavItem. + + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Returns collection of items on a bar. + + + + + Gets currently selected item. + + + + + Represents the panel which can slide out and into the view. + + + + + Raises IsOpenChanged event. + + Provides event arguments. + + + + Called when SlideSide property has changed. + + Old property value + New property value + + + + Called when IsOpen property has changed. + + Old property value + New property value + + + + Slides panel into the view. + + + + + Waits for current slide animation to finish and then returns control. + + + + + Slides panel out of the view. + + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Called when SlideOutButtonVisible property has changed. + + Old property value + New property value + + + + Called when SlideOutButtonSize property has changed. + + Old property value + New property value + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SlideOutActiveButtonSize property has changed. + + Old property value + New property value + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SlideOutButtonStyle property has changed. + + Old property value + New property value + + + + Called when CenterContent property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Occurs when IsOpen property value has changed, i.e. slide-panel is shown or hidden. + + + + + Gets or sets side panel slides into. + + + + + Gets or sets whether panel is open. When this property is changed panel will slide in or out of the view. + + + + + Gets or sets whether panel uses modal animation, meaning when IsOpen property is set the call is not returned until animation is complete. + + + + + Gets or sets the open panel bounds. When control IsOpen=false and panel is collapsed its original bounds are stored in OpenBounds property and restored once panel is open. + + + + + Gets or sets the animation duration time in milliseconds. Setting this property to 0 will disable slide animation. + + + + + Gets or sets whether slide out button is shown when panel is out of the view and which allows panel to be shown. + + + + + Gets or sets the slide-out buttton size in default state. + + + + + Gets or sets active (mouse over) slide out button size. + + + + + Gets or sets slide-out button style. + + + + + Gets or sets whether panel centers the Controls inside of it. Default value is false. + + + + + Gets or sets the color of the Symbol displayed on slideout button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the slideout button. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Defines the side SlidePanel slides into. + + + + + Represents the slider button that is used by SlidePanel when collapsed to slide it back into the view. + + + + + Initializes a new instance of the SliderButton class. + + + + + + Called when AutoTopMostEnabled property has changed. + + Old property value + New property value + + + + Called when SliderSize property has changed. + + Old property value + New property value + + + + Called when ActiveSliderSize property has changed. + + Old property value + New property value + + + + Called when IsActive property has changed. + + Old property value + New property value + + + + Called when IsMouseDown property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets or sets whether slider button automatically checks whether its top-most control on the form, i.e. visible at all times on top of other controls + + + + + Gets or sets the slider size in default state. Notice that size specified here applies to Left and Right SlidePanel positions. For Top and Bottom positions the Width and Height are interchaged. + + + + + Gets or sets the slider size in active state. Notice that size specified here applies to Left and Right SlidePanel positions. For Top and Bottom positions the Width and Height are interchaged. + + + + + Gets or sets whether slider button is in active state. + + + + + Gets or sets the style associated with the control. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Represents the Slider control. + + + + + Raises the IncreaseButtonClick event. + + Provides event arguments + + + + Raises the DecreaseButtonClick event. + + Provides event arguments + + + + Raises the ValueChanged event. + + Provides event arguments + + + + Raises the ValueChanging event. + + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Forces the button to perform internal layout. + + + + + Called when Command property value changes. + + + + + Occurs after Value property has changed. + + + + + Occurs before Value property has changed. + + + + + Occurs when Increase button is clicked using mouse. + + + + + Occurs when Decrease button is clicked using mouse. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the slider. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the tooltip for the Increase button of the slider. + + + + + Gets or sets the tooltip for the Decrease button of the slider. + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets the SliderItem. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the control which displays symbol from symbols library. + + + + + Initializes a new instance of the SymbolBox class. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Resets style to default value. Used by windows forms designer. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Specifies the background style of the control. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises CommandKeyDown event. + + Provides event arguments. + + + + Invalidates non-client area of the text box as response to the border changes. + + + + + Calculates and sets the text-box height based on font and style. This method is used internally and should not be used. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Invokes ButtonCustomClick event. + + + + + Invokes ButtonCustomClick2 event. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Indicates whether internal override for IsInputKey returns true for the Enter key. + + + + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. + + + + + Gets or sets whether control prevents Beep sound when Enter key is pressed. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Occurs during preprocessing to handle command keys. Command keys are keys that always take precedence over regular input keys. Examples of command keys include accelerators and menu shortcuts. Set Handled=true to indicate that you handled the key and that it should not be passed for further processing. + + + + + Gets or sets the scrollbar skinning type when control is using Office 2007 style. + + + + + Specifies the control border style. Default value has Class property set so the system style for the control is used. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Specifies back color when Enabled=false + + + + + Represents the Vertical Office 2007 Style Scroll Bar control. + + + + + Gets or sets whether custom styling (Office 2007 style) is enabled. Default value is true. + + + + + Class represents single token in TokenEditor control. + + + + + Initializes a new instance of the EditToken class. + + Indicates token value. + + + + Initializes a new instance of the EditToken class. + + Indicates token value + Indicates token text + + + + Initializes a new instance of the EditToken class. + + Indicates token value + Indicates token text + Indicates token image + + + + Called when Value property has changed. + + Old property value + New property value + + + + Called when Text property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Tooltip property has changed. + + Old property value + New property value + + + + Called when MouseOverPart property has changed. + + Old property value + New property value + + + + Indicates the token value, for example an email token has email address as token Value and full name as token Text. + + + + + Indicates the token text, for example an email token has email address as token Value and full name as token Text. + + + + + Gets or sets custom data associated with the object. + + + + + Gets the display bounds of the token, if displayed, inside of TokenEditor control. + + + + + Indicates the image that is displayed next to the token + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the token instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates tooltip that is displayed when mouse is over the token and token is selected. + + + + + Gets the part of the token mouse is over. Valid only when token is selected. + + + + + Gets the bounds of the remove button if displayed. Valid only when token is selected. + + + + + Gets the bounds of the image if displayed. Valid only when token is selected. + + + + + Indicates whether token is selected. + + + + + Indicates whether token is focused while selected. + + + + + Defines the token parts. + + + + + Identifies no token part. + + + + + Identifies the token body/text. + + + + + Identifies the remove token button. + + + + + Identifies the token image. + + + + + Initializes a new instance of the TokenEditor class. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Resets style to default value. Used by windows forms designer. + + + + + Raises SelectedTokensChanged event. + + Provides event arguments. + + + + Called when RemoveTokenButtonVisible property has changed. + + Old property value + New property value + + + + Returns the token from SelectedTokens at specified position or null/nothing if no token is at given location. + + Location in client coordinates to test. + EditToken instance or null/nothing + + + + Raises TokenMouseEnter event. + + Provides event arguments. + + + + Raises TokenMouseLeave event. + + Provides event arguments. + + + + Raises TokenMouseClick event. + + Provides event arguments. + + + + Raises TokenMouseClick event. + + Provides event arguments. + + + + Raises TokenMouseHover event. + + Provides event arguments. + + + + Raises RemovingToken event. + + Provides event arguments. + + + + Called when ReadOnly property has changed. + + Old property value + New property value + + + + Called when DropDownHeight property has changed. + + Old property value + New property value + + + + Called when DropDownWidth property has changed. + + Old property value + New property value + + + + Raises AutoCompletePopupOpened event. + + Provides event arguments. + + + + Raises BeforeAutoCompletePopupOpen event. + + Provides event arguments. + + + + Raises BeforePopupOpen event. + + Provides event arguments. + + + + Raises ValidateToken event. + + Provides event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Called when TextSeparator property has changed. + + Old property value + New property value + + + + Called when DropDownButtonVisible property has changed. + + Old property value + New property value + + + + Called when CheckBoxesVisible property has changed. + + Old property value + New property value + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Specifies the background style of the control. + + + + + Gets the collection of the selected tokens. + + + + + Occurs when SelectedTokens collection changes. + + + + + Gets the collection of the tokens available for selection. + + + + + Indicates whether remove token button is displayed on individual tokens so they can be removed from the selection. + + + + + Occurs when mouse enters one of the SelectedTokens token. + + + + + Occurs when mouse leaves one of the SelectedTokens token. + + + + + Occurs when mouse clicks one of the SelectedTokens token. + + + + + Occurs when mouse double clicks one of the SelectedTokens token. + + + + + Occurs when mouse hovers one of the SelectedTokens token. + + + + + Occurs before token is removed from the SelectedTokens by end user. + + + + + Indicates whether tokens can be added or removed by end user. Default value is false. + + + + + Indicates the height of the auto-complete drop-down. + + + + + Indicates the width of the auto-complete drop-down. + + + + + Indicates whether when token text is entered into the text-box pressing the Enter key attempts to validate the token and converts the text to token. + + + + + Occurs before token auto-complete popup is displayed and allows cancelation of popup display. + + + + + Occurs after auto-complete popup is open. + + + + + Occurs before the auto-complete popup is displayed and allows you to adjust popup location. + + + + + Indicates how tokens are filtered based on the entered text + + + + + Indicates whether auto-complete popup size is preserved between popup displays if popup is resized by end-user. + + + + + Indicates whether auto-complete popup can be resized by end user. + + + + + Indicates whether multi-column popup close button is visible. + + + + + Gets or sets whether auto-complete popup window is open. + + + + + Gets the list of separators which are used to divide entered text into the tokens. + + + + + Occurs when an token is selected from the auto-complete list or when text entry by end user is parsed into token to validate it. + + + + + Indicates whether control automatically increases its height as more tokens are selected. MaxHeightLines property controls the maximum number of lines control will grow to before showing scroll-bar. + + + + + Indicates maximum number of lines control will grow to when AutoSizeHeight=true. Set to 0 to indicates unlimited growth. + Default value is 5. + + + + + Gets reference to internal text-box control that is used to input the token text. + + + + + Indicates whether any text entered into the token editor is validated and converted to token when control loses focus. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Indicates the character separator that is used to separate tokens when controls Text property is updated or parsed. + + + + + Indicates whether drop-down button which shows available token popup is displayed + + + + + Indicates whether check-boxes are displayed on popup token selection list and used for token selection. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the selected token when Tooltip property is set. + + + + + Delegate for the ValidateTokenEvent event. + + + + + Arguments for the ValidateTokenEvent event. + + + + + Indicates whether validated token is valid. Default value is true. When you set this property to false the token being validated will be discared. + + + + + Indicates the Token that will be accepted by the control if IsValid=true. + + + + + Indicates whether token is newly created. When false it means that token was taken from Tokens collection. + + + + + Initializes a new instance of the ValidateTokenEventArgs class. + + + + + + Delegate for RemovingToken event. + + + + + Defines event arguments for RemovingToken event. + + + + + Indicates the Token that will be removed. + + + + + Set to true to cancel removal of the token. + + + + + Indicates the source of the event. + + + + + Initializes a new instance of the RemovingTokenEventArgs class. + + + + + + Specifies the filter behavior on token editor popup list. + + + + + Token text is searched for the match. + + + + + Token value is searched for the match. + + + + + Both token text and value are searched for the match. + + + + + Delegate for TokenEditor.BeforePopupOpen event. + + + + + Defines event arguments for BeforePopupOpen event. + + + + + Gets or sets the screen location of the popup in relation to the TokenEditor control. + + + + + Gets the suggested popup size. + + + + + Initializes a new instance of the TokenEditorPopupEventArgs class. + + + + + + Represents the color table for TokenEditor control tokens. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Gets or sets token default state colors. + + + + + Gets or sets token mouse over state colors. + + + + + Gets or sets token focused state colors. + + + + + Represents the state color table for token in TokenEditor control. + + + + + Initializes a new instance of the TokenColorTable class. + + + + + Initializes a new instance of the TokenColorTable class. + + + + + + + Initializes a new instance of the TokenColorTable class. + + + + + + + Gets or sets token text color. + + + + + Gets or sets the background color table. + + + + + Represents non-intrusive Warning Box control with Options and Close button. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises the CloseClick event. + + Event arguments. + + + + Raises the OptionsClick event. + + Event arguments. + + + + Updates control color scheme based on currently selected Office 2007 Color Table. Usually it is not necessary to + call this method manually. You need to call it to update the colors on control if you customize the Office2007ColorTable.WarningBox values. + + + + + Invokes the MarkupLinkClick event. + + Provides additional data about event. + + + + Called when AntiAlias property has changed. + + Old property value + New property value + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when Close button is clicked. + + + + + Occurs when Options button is clicked. + + + + + Occurs when warning text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the text displayed on close button tooltip. + + + + + Gets or sets the text displayed on warning control label. Supports text-markup. + + + + + Gets or sets whether text is wrapped on multiple lines if it cannot fit the space allocated to the control. + + + + + Gets or sets the image displayed next to the warning label text. Default value is null. + + + + + Gets or sets the text for the Options buttons. + + + + + Gets or sets whether Options button is visible. Default value is true. + + + + + Gets or sets whether Close button is visible. Default value is true. + + + + + Gets or sets the timeout in seconds after which the control automatically closes itself. Default value is 0 which indicates that auto-close + is disabled. + + + + + Gets or sets the control's color scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Defines available WarningBox control color schemes. + + + + + Represents compact tree bread-crumb control. + + + + + Initializes a new instance of the CrumbBar class. + + + + + Finds CrumbBarItem with specified name. + + Name of item to look for + Item or null if no item was found. + + + + Sets the currently selected item in the control. + + Reference to selected item. + Source of the event. + + + + Shows the selected item popup menu if it has menu items. + + true if popup was shown otherwise false + + + + Gets whether an item is in selected path to the currently selected item as either one of the parents of selected item + or selected item itself. + + Item to test. + true if item is in selected path otherwise false. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises the SelectedItemChanging event. + + Provides event arguments. + + + + Raises the SelectedItemChanged event. + + Provides event arguments. + + + + Returns full path to the given node. + + Node to return path to. + Full path to the node. + + + + Occurs before SelectedItem has changed and provides opportunity to cancel the change. Set Cancel property on event arguments to true to cancel the change. + + + + + Occurs after SelectedItem has changed. The change of the selected item at this point cannot be canceled. For that use SelectedItemChanging event. + + + + + Gets or sets currently selected item. + + + + + Gets collection of items assigned to the control. + + + + + Gets or sets the visual style of the control. Default value is Windows Vista style. + + + + + Gets the color table used by the Vista style renderer. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the delimiter string that the tree node path uses. + + + + + Defines delegate for CrumbBar selection events. + + + + + Provides data for CrumbBar selection events. + + + + + Gets or sets newly selected item. + + + + + Initializes a new instance of the CrumbBarSelectionEventArgs class. + + + + + + Represents an item for CrumbBar control. + + + + + Gets whether item is selected item in CrumbBar control. + + + + + Returns the collection of sub items. + + + + + Gets the path from the root tree node to the current tree node. The path consists of the labels of all the tree nodes that must be navigated to get to this tree node, starting at the root tree node. The node labels are separated by the delimiter character specified in the PathSeparator property of the Tree control that contains this node. + + + + + Represents collection of CrumbBarItem buttons. + + + + + Initializes a new instance of the CrumbBarItemsCollection class. + + + + + + Sets the node collection belongs to. + + CrumbBarItem that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the CrumbBarItem array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Represents a view of CrumbBarItem displayed inside of CrumbBar control. + + + + + Initializes a new instance of the CrumbBarItemView class. + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Gets the item attached to the view. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets color table used by renderer. + + + + + Creates new instance of BaseItem. + + + + + Creates new instance of BaseItem and assigns item name. + + Item name. + + + + Creates new instance of BaseItem and assigns item name and item text. + + Item Name + Item Text + + + + Returns copy of ExplorerBarContainerItem item + + + + + Represents internal CrumbBar view container. + + + + + Initializes a new instance of the CrumbBarViewContainer class. + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Represents collection for Node objects. + + + + Creates new instance of the object. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Node array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides High DPI support for DotNetBar controls. + + + + + Gets or sets whether scale factor when set is normalized so both Width and Height values are the same. Default value is false. + If using ScaleMode=font the scale factor might not be same for Width and Height so this allows opportunity to keep existing size ratios on the DotNetBar sized controls. + When set to true the scale factor Height will always be set to scale factor Width. + + + + + Indicates whether controls will automatically scale current images based on the current DPI. Depending on scaling this may result in pixalted images. + Best policy is to provide separate images for each DPI level Windows runs on and if you do that you need to set this property to false to disable + automatic size scaling for the images. Default value is true which causes the images to be upscaled. + + + + + Initializes a new instance of the DualButton class. + + + + + Called when ButtonSize property has changed. + + Old property value + New property value + + + + Called when Text2 property has changed. + + Old property value + New property value + + + + Called when MouseOverPart property has changed. + + Old property value + New property value + + + + Called when LeftMouseButtonDownPart property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Called when IsSelected property has changed. + + Old property value + New property value + + + + Called when Font property has changed. + + Old property value + New property value + + + + Gets or sets the second button part text. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that for ButtonItem instances if this property is set to null and command was assigned previously, Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the selected part of button. + + + + + Gets or sets the text font. + + + + + Standalone Calculator control. + + + + + Raises CalculatorDisplayChanged event. + + Provides event arguments. + + + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Called when FocusButtonsOnMouseDown property has changed. + + Old property value + New property value + + + + Called when DisplayVisible property has changed. + + Old property value + New property value + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when a calc button has been clicked + + + + + Occurs when the calculator value has changed + + + + + Indicates whether calculator displays only Integer values. + + + + + Gets or sets whether memory keys are visible. Default value is true. + + + + + Gets or sets visibility of the decimal calculator key. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets whether calculator display is visible. Default value is true. + + + + + ButtonClickEventArgs + + + + + ButtonClickEventArgs + + + + + Gets the calc button that was clicked + + + + + ValueChangedEventArgs + + + + + ValueChangedEventArgs + + + + + + + Gets the input string value + + + + + Gets or sets calculator value + + + + + Represents a control that enables the user to select time using visual time display. + + + + + Raises SelectedTimeChanged event. + + Provides event arguments. + + + + Raises OkClick event. + + Provides event arguments. + + + + Initializes a new instance of the MonthCalendarAdv class. + + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Occurs after SelectedTime changes. + + + + + Occurs when OK button is clicked. + + + + + Gets or sets the text displayed on OK button. + + + + + Gets or sets whether Ok button is visible. + + + + + Gets or sets the selected date time. + + + + + Gets or sets selected time. Returns TimeSpan.Zero if there is no time selected. + + + + + Gets or sets the time format used to present time by the selector. + + + + + Gets or sets the format for the 12 Hour Time Display. + + + + + Gets or sets the format for the 24 Hour Time Display. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Indicates the type of the selector used to select time. + + + + + Gets or sets the text displayed on Clear button only when MonthCalendarStyle is used. + + + + + Gets or sets the text displayed on Hour label. + + + + + Gets or sets the text displayed on Minute label. + + + + + Represents the Time selector item. + + + + + Initializes a new instance of the TimeSelectionItem class. + + + + + Raises SelectedTimeChanged event. + + Provides event arguments. + + + + Raises OkClick event. + + Provides event arguments. + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SelectedTime property has changed. + + Old property value + New property value + + + + Called when TimeFormat24H property has changed. + + Old property value + New property value + + + + Called when TimeFormat12H property has changed. + + Old property value + New property value + + + + Called when SelectedDateTime property has changed. + + Old property value + New property value + + + + Called when OkText property has changed. + + Old property value + New property value + + + + Called when ClearText property has changed. + + Old property value + New property value + + + + Called when TimeFormat property has changed. + + Old property value + New property value + + + + Called when OkButtonVisible property has changed. + + Old property value + New property value + + + + Called when ClearButtonVisible property has changed. + + Old property value + New property value + + + + Called when SelectorType property has changed. + + Old property value + New property value + + + + Called when HourText property has changed. + + Old property value + New property value + + + + Called when MinuteText property has changed. + + Old property value + New property value + + + + Occurs after SelectedTime changes. + + + + + Occurs when OK button is clicked. + + + + + Gets or sets selected time. Returns TimeSpan.Zero if there is no time selected. + + + + + Gets or sets the format for the 24 Hour Time Display. + + + + + Gets or sets the format for the 12 Hour Time Display. + + + + + Gets or sets the selected date time. + + + + + Gets or sets the text displayed on OK button. + + + + + Gets or sets the text displayed on Clear button only when MonthCalendarStyle is used. + + + + + Gets or sets the time format used to present time by the selector. + + + + + Gets or sets whether Ok button is visible. + + + + + Gets or sets whether Ok button is visible. + + + + + Indicates the type of the selector used to select time. + + + + + Gets or sets the text displayed on Hour label. + + + + + Gets or sets the text displayed on Minute label. + + + + + Defines time selector format. + + + + + Selector uses system format. + + + + + Selector uses 24-hour time format. + + + + + Selector uses 12-hour time format. + + + + + Defines the TimeSelector styles. + + + + + Time selector uses style similar to MonthCalendarStyle. + + + + + Time selector uses the touch style. + + + + + Represents the group of the input items with automatic and manual item focus change. + + + + + Raises the RenderInvalid event. + + + + + Raises the ArrangeInvalid event. + + + + + Raises the ResetMouseHover event. + + + + + Occurs when item arrange becomes invalid. + + + + + Occurs when item appearance becomes invalid and items needs to be repainted. + + + + + Occurs when item needs to signal to parent control that MouseHover needs to be reset usually in response to tooltip hiding. + + + + + Occurs when item is clicked. + + + + + Occurs when item is clicked using mouse. + + + + + Occurs when mouse button is pressed over the item. + + + + + Occurs when mouse button is pressed over the item. + + + + + Occurs when mouse hovers over the item. + + + + + Gets or sets whether item is Enabled. + + + + + Gets or sets whether visual is rendered. Default value is true. + + + + + Gets the parent of the item. + + + + + Gets the relative location of the element inside of its parent item. + + + + + Gets or sets the item horizontal alignment inside of the parent group. Default value is left. + + + + + Occurs when child item input is complete. Method should be used to forward the input focus onto the different field if desired. + + + + + Occurs when input stack on the child control has changed. + + Control on which input has changed + + + + Occurs when input stack on the child control has changed. + + Control on which input has changed + + + + Gets or sets the horizontal spacing in pixels between the items. + + + + + Gets or sets whether visual is root visual directly parented to the control. + + + + + Gets or sets group vertical alignment. Default value is middle. + + + + + Gets or sets input group horizontal alignment. Default value is left. + + + + + Resets the input position so the new input overwrites current value. + + + + + Updates the IsEmpty property value based on the contained input controls. + + + + + Gets or sets whether Tab key is used to navigate between the fields. Default value is true. + + + + + Gets or sets whether Enter key is used to navigate between input fields. Default value is true. + + + + + Gets or sets whether Arrow keys are used to navigate between input fields. Default value is true. + + + + + Gets or sets whether input focus is automatically advanced to next input field when input is complete in current one. + + + + + Gets or sets whether input items are read-only. + + + + + Gets or sets whether input group is empty i.e. it does not hold any value. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether current input is the user input. + + + + + List of characters that when pressed would select next input field. + + + + + Initializes a new instance of the IPAddressGroup class. + + + + + Describes the Elliptical Shape. + + + + + Returns the shape that fits given bounds. + + Bounds to fit shape in. + GraphicsPath representing shape or null if shape cannot be created. + + + + Returns the inner shape based on the specified border size. + + Bounds to fit shape in. + GraphicsPath representing shape or null if shape cannot be created. + + + + Returns whether shape can be drawn given the bounds. + + Bounds to test. + true if shape can be drawn inside of bounds otherwise false. + + + + Represents EllipticalShapeDescriptor object converter. + + + + + Initializes FormatHelper class. + + + + + Defines an interface that represents the Command associated with an BaseItem instance. + + + + + Executes the command without specifying the source of the command. + + + + + Executes the command and specifies the source of the command. + + + + + Called when CommandSource is registered for the command. + + CommandSource registered. + + + + Called when CommandSource is unregistered for the command. + + CommandSource unregistered. + + + + Sets an property value on the subscribers through the reflection. If subscriber does not have + specified property with value type its value is not set. + + Property name to set. + Property value. + + + + Executes the code associated with the command. + + + + + Provides the opportunity to cancel the execution of the command. This event occurs before the Executed event. + + + + + Gets or sets the text associated with the items that are using command. + + + + + Gets or sets the value of Checked property if item associated with the command support it. + + + + + Gets or sets the value of Visible property if item associated with the command support it. + + + + + Gets or sets the value of Image property if item associated with the command support it. + + + + + Gets or sets the value of small image (ImageSmall) property if item associated with the command support it. + + + + + Gets or sets the value of Enabled property for items associated with the command. + + + + + Defines an command that is associated with an instance of BaseItem + + + + + Initializes a new instance of the Command class with the specified container. + + An IContainer that represents the container for the command. + + + + Initializes a new instance of the Command class with the specified container. + + An IContainer that represents the container for the command. + + + + Initializes a new instance of the Command class with the specified execute event handler. + + + + + Initializes a new instance of the Command class. + + + + + Executes the command. + + + + + Executes the command. + + + + + Raises the Execute event. + + Provides event data. + + + + Raises the PreviewExecuted event. + + Provides event data. + + + + Called when Text property is set. + + + + + Sets the Text property on all subscribers to the command Text. + + + + + Sets an property value on the subscribers through the reflection. If subscriber does not have + specified property with value type its value is not set. + + Property name to set. + Property value. + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Called when CommandSource is registered for the command. + + CommandSource registered. + + + + Called when CommandSource is unregistered for the command. + + CommandSource unregistered. + + + + Executes the code associated with the command when an instance of BaseItem is clicked. + + + + + Occurs before the Executed event and allows you to cancel the firing of Executed event. + + + + + Gets or sets the Text that is assigned to all command sources that are using this command and have Text property. + + + + + Gets or sets the value for the Checked property that is assigned to the command subscribers using this command and have Checked property. + + + + + Gets whether the command is in process of syncing its state to all subscribers. + + + + + Gets or sets the value for the Visible property that is assigned to the command subscribers using this command and have Visible property. + + + + + Gets or sets the image that is assigned to the command subscribers using this command and have Image property. + + + + + Gets or sets the small image that is assigned to the command subscribers using this command and have ImageSmall property. + + + + + Gets or sets the value for Enabled property assigned to the command subscribers using this command and have Enabled property. + + + + + Returns name of the node that can be used to identify it from the code. + + + + + Defines an container where you can arrange child elements added to SubItems collection either horizontally or vertically, relative to each other using SetDock and GetDock methods. + + + + + Initializes a new instance of the ItemDockContainer class. + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Recalculates the size of the container. Assumes that DisplayRectangle.Location is set to the upper left location of this container. + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Retrieves the docking for specified item. + + + + + Sets the docking within container for specified item. + + Item to set docking for. + Docking value. + + + + Returns empty container default design-time size. + + Size of an empty container. + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Return Sub Item at specified location + + + + + Gets or sets a value that indicates whether the last child element within a ItemDockContainer stretches to fill the remaining available space. + + + + + IBlock member implementation + + + + + Provides binding support for ItemPanel control. + + + + + Initializes a new instance of the ItemVisualGenerator class. + + + + + + Called when Bindings property has changed. + + Old property value + New property value + + + + Called when VisualTemplate property has changed. + + Old property value + New property value + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Creates a new item from template for the data. + + Data to create item for. + New instance of the BaseItem. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets the visual template that is generated for each data item. + + + + + + Defines delegate for data visual creation based events. + + + + + Defines event arguments for data visual creation based events. + + + + + Gets or sets the visual that is created for data item. + + + + + Gets the data-item node is being created for. + + + + + Initializes a new instance of the DataNodeEventArgs class. + + + + + + + Defines BorderColors structure used to define border colors. + + + + + Creates new instance of the object. + + Uniform BorderColors + + + + Creates new instance of the object. + + Left BorderColors + Top BorderColors + Right BorderColors + Bottom BorderColors + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Returns hash code for object. + + Hash code + + + + Returns string representation of object. + + string representing BorderColors + + + + Gets string representation of object. + + Culture info. + string representing BorderColors + + + + Returns whether all values are empty. + + + + + Returns whether all values are the same. + + + + + Gets or sets the left BorderColors. + + + + + Gets or sets the top BorderColors. + + + + + Gets or sets the Right BorderColors. + + + + + Gets or sets the Bottom BorderColors. + + + + + Provides BorderColors TypeConverter. + + + + + Gets or sets the background color. + + + + + Gets or sets the canvas light shade color. This property is not directly used but it is provided for reference. + + + + + Gets or sets the canvas lighter shade color. This property is not directly used but it is provided for reference. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the base metro color. + + + + + Gets or sets background color of edit controls. + + + + + Gets or sets the color table for MetroAppForm. + + + + + Gets or sets the color table for MetroForm. + + + + + Gets or sets the color table for MetroTab. + + + + + Gets or sets color table for MetroStatusBar. + + + + + Gets or sets color table for MetroToolbar. + + + + + Gets or sets the color table used by MetroTile items. + + + + + Gets or sets the metro-part colors that define the metro UI color scheme. These colors are provided for you reference and reuse in your app. + + + + + Represents class that defines parameters for Metro style color scheme. + + + + + Initializes a new instance of the MetroStyleParameters class. + + Canvas color. + Base color. + + + + Initializes a new instance of the MetroColorGeneratorParameters structure. + + Canvas color. + Base color. + User friendly theme name. + + + + Returns array of all predefined Metro color themes. + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the Metro canvas. + + + + + Gets or sets the base color for the Metro style. + + + + + Gets or sets the user friendly theme name. + + + + + Initializes the Metro UI color table based on colors specified. + + + + + Defines base set of Metro UI color scheme. + + + + + Gets or sets the base canvas color, like form background. + + + + + Gets or sets the chrome base color, used for window border, selection marking etc. + + + + + Gets or sets the text color for text displayed over the BaseColor. + + + + + Gets or sets the text color displayed over the canvas color. + + + + + Gets or sets the lighter text color used for example for inactive non selected tab text etc. + + + + + Gets or sets the text color used for disabled text. + + + + + Gets or sets the text light color. + + + + + Gets or sets the color that lighter than canvas color unless canvas is white in which case this will be white as well. + + + + + Gets or sets the color that is in dark shade off of the canvas color. + + + + + Gets or sets the color that is in darker shade off of the canvas color. + + + + + Gets or sets the color that is in light shade off of the canvas color. + + + + + Gets or sets the color that is in lighter shade off of the canvas color. + + + + + Gets or sets the light base color shade. + + + + + Gets or sets the just a tad lighter base color. + + + + + Gets or sets the text color for light base color. + + + + + Gets or sets the lighter base color shade. + + + + + Gets or sets the lightest base color shade. + + + + + Gets or sets the dark base color shade. + + + + + Gets or sets the darker base color shade. + + + + + Gets or sets the base color analogous color 1 + + + + + Gets or sets the Analogous color light variant. + + + + + Gets or sets the text color for Analogous color light variant. + + + + + Gets or sets the Analogous color dark variant. + + + + + Gets or sets the Analogous color darker variant. + + + + + Gets or sets the Analogous color text color. + + + + + Gets or sets the off base color button gradient start. + + + + + Gets or sets the off base color button gradient start. + + + + + Gets or sets background color of edit controls. + + + + + Represents the MetroAppForm color table. + + + + + Gets or sets the border thickness. + + + + + Gets or sets the border thickness for form when it is running on Windows without Glass effect enabled. + + + + + Gets or sets the border colors. + + + + + Gets or sets the inactive form border colors. + + + + + Represents the MetroForm color table. + + + + + Gets or sets the border thickness. + + + + + Gets or sets the border thickness for form when it is running on Windows without Glass effect enabled. + + + + + Gets or sets the border colors. + + + + + Gets or sets the inactive form border colors. + + + + + Gets or sets the color array for the top-border lines. + + + + + Gets or sets the color array for the bottom-border lines. + + + + + Gets or sets status bar background style. + + + + + Gets or sets the resize handle marker light color. + + + + + Gets or sets the resize handle marker color. + + + + + Gets or sets the color table for MetroTabStrip. + + + + + Gets or sets tab panel background style. + + + + + Gets or sets the color table for MetroTabItem. + + + + + Gets or sets the color of the active form caption text displayed on metro strip. + + + + + Gets or sets the color of the inactive form caption text displayed on metro strip. + + + + + Gets or sets the text formatting for caption text. + + + + + Represents MetroTabItem color table. + + + + + Gets or sets the default state tab colors. + + + + + Gets or sets the mouse over state tab colors. + + + + + Gets or sets the selected state tab colors. + + + + + Gets or sets the pressed state tab colors. + + + + + Gets or sets the disabled state tab colors. + + + + + Initializes a new instance of the MetroTabItemStateColorTable class. + + + + + + + Gets or sets the background style. + + + + + Gets or sets tabstrip background style. + + + + + Gets or sets the tile check-mark background overlay color. + + + + + Gets or sets the tile check-mark foreground overlay color. + + + + + Gets or sets toolbar background style. + + + + + Initializes the Visual Studio 2012 color scheme Metro color table based on colors specified. + + + + + Gets or sets color hue. Hue is value from 0-1 which determines the degree on color wheel color is on, i.e. 0.5 = 180 degrees + + + + + Gets or sets the color saturation from 0-1, i.e. 0-100%. + + + + + Gets or sets the amount of white and black in color. + + + + + Initializes a new instance of the HSVColor structure. + + + + + + + + Gets whether values are close. + + First value. + Second value + true if values are close enough + + + + Gets whether value is zero + + value to check + true if value is considered zero + + + + Gets whether value is not an number. + + value to test + true if value is not an number + + + + Represents the Metro application button used on MetroTab control. + + + + + Initializes a new instance of the MetroAppButton class. + + + + + Processes the Escape key when Application Button is hosting the backstage tab and uses it to close the tab if open. + This method is called from ProcessDialogKey method of MetroForm. + + Key data + true if key was used to close backstage tab + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether control set on BackstageTab property is used on application menu popup. + + + + + Gets or sets the backstage tab that is displayed instead of popup menu. + + + + + Raises PrepareModalPanelBounds event. + + Provides event arguments. + + + + Initializes a new instance of the MetroForm class. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Shows the panel control in the center of the form and covers all non system controls making the panel effectively modal. + + Control to show. + + + + Shows the panel control in the center of the form by sliding it in from specified side and covers all non system controls making the panel effectively modal. + + Panel to show. + Side to slide panel into the view from. + + + + Shows the panel control in the center of the form by sliding it in from specified side and covers all non system controls making the panel effectively modal. + + Panel to show. + Side to slide panel into the view from. + Slide animation speed in milliseconds. + + + + Hides the panel control that was previously shown using ShowModalPanel method. + + Control to hide. + + + + Hides the panel control that was previously shown using ShowModalPanel method by sliding it out of the view to the specified side. + + Control to hide. + Side to slide control into. + + + + Gets effective Border Thickness for the form. + + Thickness + + + + Called when BorderThickness property has changed. + + Old property value + New property value + + + + Called when BorderColor property has changed. + + Old property value + New property value + + + + Called when WM_NCHITTEST message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_DWMCOMPOSITIONCHANGED message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_NCCALCSIZE message is received. + + Message structure. + true to call base WndProc otherwise false. + + + + Occurs before modal panel is shown and allows change of modal panel bounds. + + + + + Gets or sets whether MetroShell is pre-rendered when form is shown to make first rendering smoother. Default value is true. + + + + + Gets whether at least one modal panel is displayed. + + + + + Indicates whether modal panel when displayed shows MetroStatusBar. + + + + + Returns whether Windows Glass effects are enabled. + + + + + Gets or sets the MetroTab that is hosted by this form. This property is for internal use only. + + + + + Gets or sets whether form can be resized. + + + + + Gets or sets the form border thickness. Default value is empty thickness which indicates that thickness is taken from MetroFormColorTable. + + + + + Gets or sets the form border colors. + + + + + Gets whether form is active. + + + + + Indicates the number of pixels subtracted from form's height or width (depending on taskbar position) when form is maximized and taskbar is in auto-hide state. Default value is 4. + + + + + This property is not to be used with MetroForm. + + + + + Gets or sets the size of the border on the edges of the form that when mouse is over allow for form resizing. + + + + + Indicates whether Close button in top-right corner of the form is visible. + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + Gets or sets text for form system menu Restore item. + + + + + Gets or sets text for form system menu Move item. + + + + + Gets or sets text for form system menu Size item. + + + + + Gets or sets text for form system menu Minimize item. + + + + + Gets or sets text for form system menu Maximize item. + + + + + Gets or sets text for form system menu Close item. + + + + + Initializes a new instance of the BorderOverlay class. + + + + + Delegate for PrepareModalPanelBounds event. + + + + + + + Provides data for PrepareModalPanelBounds event. + + + + + Gets or sets the bounds modal panel will occupy when shown. + + + + + Initializes a new instance of the ModalPanelBoundsEventArgs class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets the anti-alias setting for text-pane. + + + + + Enumeration of available common system strings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization from MetroTab control. Registered MetroToolbar controls are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control that holds references to known MetroToolbars. + + + + Gets reference to the internal Quick Access Toolbar Customization panel. + + + + + Represents Metro Tab control, usually used as application tab but can be used as standard tab control as well. + + + + + Raises SettingsButtonClick event. + + Provides event arguments. + + + + Raises HelpButtonClick event. + + Provides event arguments. + + + + Gets the name of the QAT Customize Item which is used to display the QAT Customize Dialog box. + + + + + Gets the name of the Add to Quick Access Toolbar context menu item. + + + + + Gets the name of the Remove from Quick Access Toolbar context menu item. + + + + + Gets the name of the QAT placement change context menu item. + + + + + Gets the name of the label displayed on Quick Access Toolbar customize popup menu. + + + + + Gets the string that is used as starting name for the frequently used QAT menu items created when QAT Customize menu is displayed. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Performs the setup of the MetroTabPanel with the current style of the MetroShell Control. + + Panel to apply style changes to. + + + + Creates new Rendering Tab at specified position, creates new associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + Specifies the position of the new tab inside of Items collection. + New instance of the MetroTabItem that was created. + + + + Creates new Rendering Tab and associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + New instance of the MetroTabItem that was created. + + + + Recalculates layout of the control and applies any changes made to the size or position of the items contained. + + + + + Occurs when text markup link is clicked. + + + + + Called when right-mouse button is pressed over MetroTabStrip + + Reference to MetroTabStrip object. + + + + Displays popup customize context menu for given customization object. + + Object that should be customized, usually an instance of BaseItem. + Indicates whether customize menu is displayed over metro tab strip + + + + Removes an item from the Quick Access Toolbar. + + Reference to the item that is already part of Quick Access Toolbar. + + + + Adds an instance of base type BaseItem to the Quick Access Toolbar. Note that this method creates + new instance of the item or an representation of the item being added and adds that to the Quick Access Toolbar. + + Reference to the item to add, must be an BaseItem type. + + + + Raises the BeforeCustomizeMenuPopup event. + + Event arguments + + + + Raises the BeforeAddItemToQuickAccessToolbar event. + + Event arguments. + + + + Shows the quick access toolbar customize dialog. + + + + + Applies the Quick Access Toolbar customization changes made on QatCustomizePanel to the MetroShell Control Quick Access Toolbar. Note that QatCustomizePanel.DataChanged property indicates whether user made any changes to the data on the panel. + + Reference to the QatCustomizePanel + + + + Raises the AfterQatDialogChangesApplied event. + + + + + Returns the Metro Application Button. + + reference to Application Button or null if button is not found. + + + + Registers the MetroToolbar or any other DotNetBar container that implements IOwner interface so it can participate in Quick Access Toolbar serialization and customization. + + + + + + Registers the MetroToolbar or any other DotNetBar container that implements IOwner interface so it can participate in Quick Access Toolbar serialization and customization. + + + + + + Occurs just before the customize popup menu is displayed and provides the ability to cancel the menu display as well + as to add/remove the menu items from the customize popup menu. + + + + + Occurs before an item is added to the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs before an item is removed from the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs when Item on metro tab strip or quick access toolbar is clicked. + + + + + Occurs before Quick Access Toolbar dialog is displayed. This event provides the opportunity to cancel the showing of + built-in dialog and display custom customization dialog. You can also set the Dialog property of the event arguments to + the custom dialog you want used instead of the DotNetBar system customization dialog. + + + + + Occurs after the Quick Access Toolbar dialog is closed. + + + + + Occurs after any changes done on the Quick Access Toolbar dialog are applied to the actual Quick Access Toolbar. + + + + + Occurs after selected Metro tab has changed. You can use + MetroShell.SelectedTab + property to get reference to newly selected tab. + + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when SETTINGS button, if displayed, is clicked. + + + + + Occurs when HELP button, if displayed, is clicked. + + + + + Gets the collection of the Quick Access Toolbar Frequently used commands. You should add existing buttons to this collection that + you already have on the MetroToolbar controls or on the application menu. The list will be used to construct the frequently used + menu that is displayed when Customize Quick Access Toolbar menu is displayed and it allows end-user to remove and add these + frequently used commands to the QAT directly from this menu. + Note that items you add here should not be items that are already on Quick Access Toolbar, i.e. in MetroShell.QuickToolbarItems collection. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Indicates whether Form.Icon is shown in top-left corner. + + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets whether custom caption and quick access toolbar provided by the control is visible. Default value is false. + This property should be set to true when control is used on MetroAppForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Specifies the background style of the control. + + + + + Gets or sets the currently selected MetroTabItem. MetroTabItems are selected using the Checked property. Only a single + MetroTabItem can be selected (Checked) at any given time. + + + + + Returns reference to internal metro tab-strip control. + + + + + Returns collection of items on a bar. + + + + + Returns collection of quick toolbar access and caption items. + + + + + Gets or sets whether mouse wheel scrolls through the Metro tabs. Default value is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. Default value is false. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets whether external implementation for metro toolbar and menu item customization will be used for customizing the control. When set to true + it enables the displaying of MetroToolbar and menu item context menus which allow customization. You are responsible for + adding the menu items to context menu to handle all aspects of item customization. See "MetroShell Control Quick Access Toolbar Customization" topic in help file under How To. + Default value is false. + + + + + Gets or sets whether customize dialog is used to customize the quick access toolbar. You can handle the EnterCustomize event + to display your custom dialog instead of built-in dialog for customization. Default value is true. + + + + + Gets or sets the categorization mode for the items on Quick Access Toolbar customize dialog box. Default value categorizes + items by the toolbar they appear on. + + + + + Gets or sets the Quick Access Toolbar layout description. You can use the value obtained from this property to save + the customized Quick Access Toolbar into registry or into any other storage object. You can also set the saved layout description back + to restore user customize layout. + + + + + Gets or sets whether Quick Access Toolbar has been customized by end-user. You can use value of this property to determine + whether Quick Access Toolbar layout that can be accessed using QatLayout property should be saved. + + + + + Gets the reference to the Metro localization object which holds all system text used by the component. + + + + + Gets or sets the side tab-strip is docked to. + + + + + Gets or sets whether SETTINGS button is visible. + + + + + + Gets or sets the SETTINGS button text. + + + + + Gets or sets the HELP button text. + + + + + Gets or sets the font tab items are displayed with. + + + + + Describes the categorization mode used to categorize items on the Customize Metro dialog. + + + + + Items are automatically categorized by the toolbar they appear on. + + + + + Items are categorized by the Category property on each item. Category property should be set on each item. + + + + + Represents Metro-UI Status Bar control. + + + + + Initializes a new instance of the MetroStatusBar class. + + + + + Called when ResizeHandleVisible property has changed. + + Old property value + New property value + + + + Indicates whether items that cannot fit are displayed on popup. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether resize handle used to resize the parent form is visible. + + + + + Gets or sets spacing between items, default value is 2. + + + + + Defines the internal container item for the ribbon strip control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent RibbonStrip control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Return Sub Item at specified location + + + + + Called when SettingsButtonText property has changed. + + Old property value + New property value + + + + Called when HelpButtonText property has changed. + + Old property value + New property value + + + + Gets reference to internal ribbon strip container that contains tabs and/or other items. + + + + + Gets reference to internal caption container item that contains the quick toolbar, start button and system caption item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Gets or sets whether Settings button is visible. + + + + + Gets or sets whether Help button is visible. + + + + + Gets or sets the Settings button text. + + + + + Represents Rendering Tab used on Metro Tab Control. + + + + + Initializes a new instance of the MetroTabItem class. + + + + + Selects the tab. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets cached image rendering bounds. + + + + + Gets or sets cached text rendering bounds. + + + + + Gets or sets whether tab renders its state. Used internally by DotNetBar. Do not set. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Gets or sets whether size of the tab has been reduced below the default calculated size. + + + + + Gets or sets the predefined color of item. Color specified here applies to items with Office 2007 style only. It does not have + any effect on other styles. Default value is eMetroTabColor.Default + + + + + Gets or sets the panel assigned to this tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the text color of the button. + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Specifies predefined color assigned to Metro Tab. + + + + + Represents simple item container which orders items horizontally and support all ItemAlignment settings. + + + + + Initializes a new instance of the SimpleItemContainer class. + + + + + Returns copy of the item. + + + + + Copies the item specific properties to new instance of the item. + + New instance. + + + + Copies the item specific properties to new instance of the item. + + New instance. + + + + Sets whether container is used as system container internally by DotNetBar. + + true or false to indicate whether container is system container or not. + + + + Called when ItemSpacing property has changed. + + Old property value + New property value + + + + Gets or sets the minimum size of the container. Either Width or Height can be set or both. Default value is 0,0 which means + that size is automatically calculated. + + + + + Returns whether instance of the item container is used as system container internally by DotNetBar. + + + + + Indicates the spacing between items. + + + + + Indicates additional spacing between item when its BeginGroup property is set. + + + + + Specifies the layout orientation + + + + + Indicates whether all items are resized to be of the size equal to largest item in the container + + + + + Represents panel used by MetroTabItem as a container panel for the control. + + + + + Creates new instance of the panel. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Represents Metro-UI TabStrip control. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Occurs when text markup link is clicked. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns effective caption height. + + Caption height. + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Called when ShowKeyTips on RibbonBar contained by this Ribbon is set to true + + + + + Forces the control to exit Ribbon Key-Tips mode. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Starts moving of the parent form action which happens when user attempts to drag the form caption. + + + + + Returns true if point is inside the caption area. + + Client point coordinates. + True if point is inside of caption area otherwise false. + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets whether custom caption line provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets/Sets the visual style of the control. + + + + + Returns collection of items on a bar. + + + + + Returns currently selected MetroTabItem. MetroTabItems are selected using the Checked property. Only a single + MetroTabItem can be Checked at any given time. + + + + + Gets whether Ribbon is in key-tips mode including its child controls. + + + + + Indicates whether Form.Icon is shown in top-left corner. + + + + + Returns collection of items on a bar. + + + + + Gets the reference to the internal container item for the items displayed in control caption. + + + + + Gets the reference to the internal container for the ribbon tabs and other items. + + + + + Represents Metro Tile. + + + + + Raises CheckedChanged event. + + Provides event arguments. + + + + Raises OptionGroupChanging event. + + Provides event arguments. + + + + Creates new instance of metro tile. + + + + + Creates new instance of metro tile and assigns the name to it. + + Item name. + + + + Creates new instance of metro tile and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the MetroTileItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the MetroTileItem specific properties to new instance of the item. + + New MetroTileItem instance. + + + + Called when NotificationMarkText property has changed. + + Old property value + New property value + + + + Called when NotificationMarkPosition property has changed. + + Old property value + New property value + + + + Called when NotificationMarkSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when NotificationMarkOffset property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs just before Click event is fired. + + + + + Called when TileSize property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when IsLeftMouseButtonDown property has changed. + + Old property value + New property value + + + + Called when IsMouseOver property has changed. + + Old property value + New property value + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Checked property has changed. + + Old property value + New property value + + + + Called when CheckBehavior property has changed. + + Old property value + New property value + + + + Called when CurrentFrame property has changed. + + Old property value + New property value + + + + Called when AutoRotateFramesInterval property has changed. + + Old property value + New property value + + + + Called when DragStartPoint property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs after Checked property has changed. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies maximum of 2 character text displayed inside of the notification mark on top of the button. + + + + + Indicates the position of the notification marker within the bounds of the button. + + + + + Specifies diameter of notification mark. When set to 0 system default value is used. + + + + + Gets or sets background color of the notification mark. + + + + + Specifies the offset for the notification mark relative to its position. + + + + + Gets or sets the tile size. + + + + + Gets or sets the predefined tile color for default tile frame. + + + + + Specifies the Tile style default tile frame. + + + + + Indicates the symbol displayed on face of the tile instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets the image displayed on the tile. + + + + + Gets or sets image alignment in relation to text. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether left mouse button is pressed over the tile. + + + + + Gets whether mouse is over the item. + + + + + Gets or sets the tile title text displayed by default in lower left corner. + + + + + Occurs when an hyperlink in title text markup is clicked. + + + + + Gets or sets the title text font. + + + + + Gets or sets the color of the title text. + + + + + Gets or sets title text alignment. + + + + + Gets or sets the top-left location of the image. + + + + + Gets or sets whether tile is checked. + + + + + Gets or sets the automatic check behavior of metro tile. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Gets the list of tile frames that are displayed when frame animation is enabled using AnimationEnabled property. + + + + + Gets or sets index of currently displayed frame in Frames collection. + + + + + Gets the index of last selected frame, i.e. before CurrentFrame was set with new value. + + + + + Gets or sets whether Frame animation is enabled when CurrentFrame has changed. Default value is true. + + + + + Gets or sets the frames animation duration in milliseconds. Default value is 800. + + + + + Gets or sets the automatic tile frame rotation interval in milliseconds. When set it will change the CurrentFrame property so each frame from Frames collection is displayed after interval set here. + + + + + Gets or sets tile background color when Enabled=false. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Specifies how MetroTileItem is checked. + + + + + Metro tile item inherits the check behavior from host control. + + + + + Metro tile item cannot be checked. + + + + + Metro tile item is checked using right mouse button. + + + + + Metro tile item is checked using middle mouse button. + + + + + Metro tile item is checked using left mouse button. + + + + + Defines single frame for metro-tile item. + + + + + Initializes a new instance of the MetroTileFrame class. + + + + + Called when TitleText property has changed. + + Old property value + New property value + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Called when TitleTextFont property has changed. + + Old property value + New property value + + + + Called when TitleTextColor property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when TitleTextAlignment property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Image property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Text property has changed. + + Old property value + New property value + + + + Called when Color property has changed. + + Old property value + New property value + + + + Called when FrameDisplayDuration property has changed. + + Old property value + New property value + + + + Occurs when text markup link is clicked. + + + + + Raises MarkupLinkClick event. + + Provides event arguments. + + + + Called when TextMarkupEnabled property has changed. + + Old property value + New property value + + + + Called when ImageTextAlignment property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets the tile title text displayed by default in lower left corner. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Occurs when an hyperlink in title text markup is clicked. + + + + + Gets or sets the title text font. + + + + + Gets or sets the color of the title text. + + + + + Gets or sets title text alignment. + + + + + Gets the effective style for the tile when TileColor property is set to predefined tile color. + + + + + Specifies the Tile style of the item. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the tile instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets the image displayed on the tile. + + + + + Gets or sets the top-left location of the image. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the predefined tile color. + + + + + Gets or sets the frame display duration in milliseconds during metro-tile frame animation. When not set then each frame will stay visible for duration set on MetroTileItem.AutoRotateFramesInterval. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether text-markup can be used in Text property. + + + + + Gets or sets image alignment in relation to text. + + + + + Occurs when property on BindingDef object has changed. + + + + + Represents panel for Metro Tiles. + + + + + Represents generic item panel container control. + + + + + Returns first checked top-level button item. + + An ButtonItem object or null if no button could be found. + + + + Adds new item to the ItemPanel based on specified ItemTemplate and sets its Text property. + + Text to assign to the item. + reference to newly created item + + + + Gets or sets default layout orientation inside the control. You can have multiple layouts inside of the control by adding + one or more instances of the ItemContainer object and chaning it's LayoutOrientation property. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets whether ButtonItem buttons when in vertical layout are fit into the available width so any text inside of them + is wrapped if needed. Default value is false. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Returns collection of items on a bar. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets the list of ButtonItem or CheckBoxItem controls that have their Checked property set to true. + + + + + Gets or sets ButtonItem or CheckBoxItem item that have their Checked property set to true. + + + + + Initializes a new instance of the MetroTilePanel class. + + + + + Gets or sets a value indicating whether the control enables the user to scroll to items placed outside of its visible boundaries. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Raises ExpandedChanging event. + + Provides event arguments. + + + + Raises ExpandedChanged event. + + Provides event arguments. + + + + Initializes a new instance of the MetroStatusBar class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Registers toolbar with MetroTab so it can participate in Quick Access Toolbar operations. + + MetroTab + + + + Unregisters previously registered toolbar from MetroTab and removes it from Quick Access Toolbar operations. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Invokes the ItemClick event. + + Reference to the item that was clicked. + + + + Called when AutoCollapse property has changed. + + Old property value + New property value + + + + Called when AnimationSpeed property has changed. + + Old property value + New property value + + + + Called when ExpandDirection property has changed. + + Old property value + New property value + + + + Occurs before Expanded property has changed, i.e. control expanded or collapsed and allows you to cancel action by setting Cancel=true on event arguments. + + + + + Occurs after Expanded property value has changed, i.e. control was expanded or collapsed. + + + + + Returns collection of items on a bar. + + + + + Gets or sets spacing between items, default value is 0. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether toolbar is attempted to be automatically registered with parent MetroShell control so it can participate in Quick Access Toolbar operations. Default value is true. + + + + + Gets or sets whether control is expanded or not. When control is expanded both main and extra toolbar items are visible. When collapsed + only main items are visible. Default value is false. + + + + + Gets or sets whether control is automatically collapsed, Expanded property set to False, if control was expanded and any button on the control was clicked or mouse is clicked elsewhere, parent form has lost input focus or some other control gains input focus. + + + + + Gets or sets the animation speed duration in milliseconds. Default value is 150 milliseconds. Set to zero, 0 to disable animation. + + + + + Gets or sets the expand direction for the toolbar. Default value is Auto. + + + + + Gets or sets whether Expand button is visible. Default value is true. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Defines expand direction behavior for MetroToolbar. + + + + + Expand direction is automatically determined by the position of the control on the form. + + + + + Control is expanded up so bottom of the control is fixed. + + + + + Control sis expanded down so top of the control is fixed. + + + + + Defines the internal container item for the MetroToolbar control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent MetroToolbar control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Called when ExpandButtonVisible property has changed. + + Old property value + New property value + + + + Gets or sets whether Expand button is visible. Default value is true. + + + + + Gets reference to container that host items. + + + + + Gets reference to container that hosts extra items. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Initializes Office Mobile 2014 color scheme Metro color table based on colors specified. + + + + + Draws the border. + + Graphics canvas. + Bounds for border. + Border thickness. + Border color. + + + + Draws background. + + Graphics canvas. + Background bounds. + Background color + + + + Deflates the rectangle by the border thickness. + + Rectangle. + Border thickness + Rectangle deflated by the border thickness + + + + Summary description for Office2003ButtonItemPainter. + + + + + Summary description for ButtonItemPainter. + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Represents the painter for the Office 2007 SystemCaptionItem + + + + + Represents the base class for the SystemCaptionItem painter. + + + + + Paints the SystemCaptionItem as icon in left hand corner. + + + + + + Paints the SystemCaptionItem as set of buttons minimize, restore/maximize and close. + + + + + + Paints the background of the button using specified color table colors. + + Graphics object. + Background bounds + Color Table + + + + Gets or sets color table used by renderer. + + + + + Abstract renderer for rendering Metro-UI controls. + + + + + Renders the + + + + + + Gets or sets color table used by renderer. + + + + + Renders the MetroTileItem. + + MetroTileItem to render. + Rendering event arguments. + + + + Renders the MetroForm. + + Form to render. + Rendering event arguments. + + + + Renders the MetroForm. + + Form to render. + Rendering event arguments. + + + + Renders the MetroTabItem. + + Form to render. + Rendering event arguments. + + + + Renders the MetroTabStrip + + TabStrip to render. + Paint args + + + + Renders the MetroStatusBar. + + Status bar to render + Paint args + + + + Renders the MetroStatusBar. + + Status bar to render + Paint args + + + + Defines class for passing rendering information to renderer. + + + + + Gets or sets the control to render. + + + + + Gets or sets the paint event arguments to use to render out control. + + + + + Gets or sets the current color table. + + + + + Gets or sets default font. + + + + + Gets or sets default plain font. + + + + + Gets or sets right-to-left setting. + + + + + Gets or sets the paint information for items. + + + + + Represents the Office 2007 Ribbon Tab Group painter. + + + + + Paints ribbon tab group. + + Context information + + + + Paints SwitchButton. + + Provides arguments for the operation. + + + + Gets or sets color table used by renderer. + + + + + Defines Thickness structure used by borders and margins. + + + + + Creates new instance of the object. + + Uniform Thickness + + + + Creates new instance of the object. + + Left Thickness + Top Thickness + Right Thickness + Bottom Thickness + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Returns hash code for object. + + Hash code + + + + Returns string representation of object. + + string representing Thickness + + + + Gets string representation of object. + + Culture info. + string representing Thickness + + + + Returns whether object holds valid value. + + Specifies whether negative values are allowed. + Specifies whether NaN values are allowed. + Specifies whether positive infinity values are allowed + Specifies whether negative infinity values are allowed + true if object holds valid value + + + + Returns true if two objects are close. + + Thickness to test. + true if values are close. + + + + Returns true if two objects are close. + + Thickness 1 + Thickness 2 + true if values are close. + + + + Returns whether all values are zero. + + + + + Returns whether all values are the same. + + + + + Gets or sets the left Thickness. + + + + + Gets or sets the top Thickness. + + + + + Gets or sets the Right Thickness. + + + + + Gets or sets the Bottom Thickness. + + + + + Gets the total horizontal thickness i.e. Left+Right. + + + + + Gets the total vertical thickness i.e. Top+Bottom. + + + + + Provides Thickness TypeConverter. + + + + + Represents the base class each micro-chart implements + + + + + Creates the chart image. + + Rendering information. + Image of the chart. + + + + Defines the style for Area micro chart. + + + + + Initializes a new instance of the AreaMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the chart area color. + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Defines the style for the bar style micro charts. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the minimum single bar width. + + + + + Gets or sets the color of positive bar value. + + + + + Gets or sets the color of negative bar value. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the value of the zero line, i.e. pivot point that determines negative and positive values. Default value is 0. + + + + + Gets or sets the color of the lowest value bar on graph. + + + + + Gets or sets the color of the highest value bar on graph. + + + + + Defines the style for 100% bar chart. + + + + + Initializes a new instance of the PieMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the minimum single bar width. + + + + + Gets the pre-defined slice colors for the pie chart. + + + + + Gets or sets the color of the slice outline. + + + + + Defines the style for the line micro chart. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the chart line. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the color of the + + + + + Gets or sets whether zero-line is drawn on chart. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the color of the + + + + + Occurs when style appearance changes. + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the first control line. + + + + + Gets or sets starting value that is used to draw first control line. + + + + + Gets or sets end value that is used to draw first control line. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the second control line. + + + + + Gets or sets starting value that is used to draw second control line. + + + + + Gets or sets end value that is used to draw second control line. + + + + + Represents Micro-Chart Control. + + + + + Initializes a new instance of the MicroChart class. + + + + + Forces the button to perform internal layout. + + + + + Raises MouseOverDataPointChanged event. + + Provides event arguments. + + + + Invalidates the chart display and requests the re-paint. + + Indicates whether to animate transition to new chart + + + + Called when Command property value changes. + + + + + Gets or sets whether mouse over tooltip for data point is enabled. Default value is true. + + + + + Gets the index of data point (DataPoints collection) that mouse is over or returns -1 if mouse is not over any data-point. + + + + + Occurs when MouseOverDataPointIndex property changes due to user moving the mouse and pointing it to different data point on chart. + + + + + Gets or sets the tooltips for each data-point assigned through DataPoints property. If not set control will automatically + show tooltip based on the data-point value. + + + + + Gets or sets the chart data points. Note that if you are adding or removing points directly from this collection you must call + Refresh() method on the control to refresh the display. + + + + + Gets or sets the format string for the value when it is displayed as tool-tip for data point. + + + + + Gets or sets whether chart is tracking mouse movement to show data-point and its value on tooltip. Default value is true. + + + + + Gets or sets whether transition animation between same chart with different data-points is enabled. Default value is true. + + + + + Gets or sets whether button like mouse over tracking is enabled for whole control. When enabled control looks like a button when mouse is over it. Default value is false. + + + + + Gets the style used to customize appearance of Line micro-chart. + + + + + Gets the style used to customize appearance of Plot micro-chart. + + + + + Gets the style used to customize appearance of Column micro-chart. + + + + + Gets the style used to customize appearance of Bar micro-chart. + + + + + Gets the style used to customize appearance of Win-Lose micro-chart. + + + + + Gets the style used to customize appearance of Pie micro-chart. + + + + + Gets the style used to customize appearance of Area micro-chart. + + + + + Gets the style used to customize appearance of 100% micro-chart. + + + + + Gets or sets the type of the chart rendered. + + + + + Gets or sets the maximum value for data points. By default maximum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets or sets the minimum value for data points. By default minimum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets whether command is executed when control is clicked. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Initializes a new instance of the TrendInfo structure. + + + + + + + + + Initializes a new instance of the TrendInfo structure. + + + + + Initializes a new instance of the MicroChartRenderInfo structure. + + + + + + + + + Represents the micro-chart item. + + + + + Creates new instance of MicroChartItem. + + + + + Creates new instance of MicroChartItem and assigns the name to it. + + Item name. + + + + Creates new instance of MicroChartItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the MicroChartItem specific properties to new instance of the item. + + New MicroChartItem instance. + + + + Copies the MicroChartItem specific properties to new instance of the item. + + New MicroChartItem instance. + + + + Recalculate the size of the item. If overridden base implementation must be called so default processing can occur. + + + + + Raises MouseOverDataPointChanged event. + + Provides event arguments. + + + + Invalidates the chart display and requests the re-paint. + + Indicates whether to animate transition to new chart + + + + Draws the chart. + + Paint arguments + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when DataMaxValue property has changed. + + Old property value + New property value + + + + Called when DataMinValue property has changed. + + Old property value + New property value + + + + Gets or sets the suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed. + + + + + Gets or sets the format string for the value when it is displayed as tool-tip for data point. + + + + + Gets or sets the chart data points. Note that if you are adding or removing points directly from this collection you must call + Refresh() method on the control to refresh the display. + + + + + Gets or sets the tooltips for each data-point assigned through DataPoints property. If not set control will automatically + show tooltip based on the data-point value. + + + + + Gets or sets whether transition animation between same chart with different data-points is enabled. Default value is true. + + + + + Gets whether fade effect is enabled. + + + + + Gets or sets whether chart is tracking mouse movement to show data-point and its value on tooltip. Default value is true. + + + + + Gets or sets whether button like mouse over tracking is enabled for whole control. When enabled control looks like a button when mouse is over it. Default value is false. + + + + + Gets the index of data point (DataPoints collection) that mouse is over or returns -1 if mouse is not over any data-point. + + + + + Gets or sets whether mouse over tooltip for data point is enabled. Default value is true. + + + + + Occurs when MouseOverDataPointIndex property changes due to user moving the mouse and pointing it to different data point on chart. + + + + + Gets the style used to customize appearance of Line micro-chart. + + + + + Gets the style used to customize appearance of Plot micro-chart. + + + + + Gets the style used to customize appearance of Column micro-chart. + + + + + Gets the style used to customize appearance of Bar micro-chart. + + + + + Gets the style used to customize appearance of Win-Lose micro-chart. + + + + + Gets the style used to customize appearance of Pie micro-chart. + + + + + Gets the style used to customize appearance of Area micro-chart. + + + + + Gets the style used to customize appearance of 100% micro-chart. + + + + + Gets or sets the width of the chart part of the control. + + + + + Gets or sets the height of the chart part of the control. + + + + + Gets or sets the type of the chart rendered. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets text-position in relation to the chart. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether caption/label set using Text property is visible. + + + + + Gets or sets text padding. + + + + + Gets or sets switch margin. + + + + + Gets or sets the text color. + + + + + Gets or sets the background image position + + + + + Gets or sets the background image used by the control. + + + + + Gets or sets the maximum value for data points. By default maximum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets or sets the minimum value for data points. By default minimum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Represents MicroChart hot-points. + + + + + Start angle for pie slice. + + + + + Sweep angle for pie slice. + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + + + + Defines available MicroChar types. + + + + + Identifies Plot chart. + + + + + Identifies WinLose chart. + + + + + Identifies Area chart. + + + + + Identifies Line chart. + + + + + Identifies Column chart. + + + + + Identifies Bar chart. + + + + + Identifies Pie chart. + + + + + Identifies 100% bar. + + + + + Defines micro-chart text position in relation to the chart. + + + + + Text is positioned to the left of the chart. + + + + + Text is positioned to the right of the chart. + + + + + Text is positioned on top of the chart. + + + + + Text is positioned on bottom of the chart. + + + + + Defines the style for pie chart. + + + + + Initializes a new instance of the PieMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets the pre-defined slice colors for the pie chart. + + + + + Gets or sets the color of the slice outline. + + + + + Defines the style for the plot micro chart. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the color of the chart line. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the color of the + + + + + Gets or sets whether zero-line is drawn on chart. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the color of the + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the first control line. + + + + + Gets or sets starting value that is used to draw first control line. + + + + + Gets or sets end value that is used to draw first control line. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the second control line. + + + + + Gets or sets starting value that is used to draw second control line. + + + + + Gets or sets end value that is used to draw second control line. + + + + + Class that tracks lists of all controls that host currently open popups. + + + + + Registers IOwnerMenuSupport popup host in response to host displaying its first popup. + + IOwnerMenuSupport host to register + + + + Unregisters IOwnerMenuSupport popup host in response to host closing its last popup. + + IOwnerMenuSupport host to unregister + + + + Closes all currently open popups. + + + + + Closes all currently open popups excluding specified popup host. + + IOwnerMenuSupport host to exclude from closing or null + + + + Represents custom collection with INotifyPropertyChanged and INotifyCollectionChanged interface support. + + + + + + Represents collection changed notification interface. + + + + + Occurs when collection changed. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + List to initialize collection with. + + + + Add item to collection. + + Item to add. + + + + Remove all items from collection. + + + + + Remove all items from collection. + + + + + Checks whether collection contains item. + + Item to look for. + true if item is in collection. + + + + Copy collection to array. + + Array to copy to. + Index to copy from. + + + + Copy collection to array. + + Array to copy to. + + + + Gets enumerator for collection. + + Enumerator. + + + + Returns index of an item. + + Reference to item. + Index of item. + + + + Insert item at specified location. + + Index to insert item in. + Item to insert. + + + + Inserts item. + + Index to insert item at. + Reference to item. + + + + Removes item from collection. + + Item to remove. + true if item was removed. + + + + Remove item at specified location. + + Index of item to remove. + + + + Remove item at specified location. + + Index of item to remove. + + + + Set item on location. + + Index + Item to assign. + + + + Returns items directly without checks. + + List of items. + + + + Occurs when collection is read. + + + + + Occurs when collection property has changed. + + Event arguments. + + + + Blocks the collection reentrancy. + + IDisposable to end re-entrancy + + + + Checks whether call creates reentrancy. + + + + + Called when collection has changed. + + Event arguments. + + + + Occurs when property value has changed. + + + + + Returns number of items in collection. + + + + + Returns item at index. + + Index of item. + Item at index. + + + + Returns the IList interface for items in collection. + + + + + Occurs when collection has changed. + + + + + Defines change actions. + + + + + Items were added. + + + + + Items were removed. + + + + + Items were replaced. + + + + + Items were moved. + + + + + Collection was reset. + + + + + Defines delegate for collection notification events. + + Event sender. + Event arguments. + + + + Defines collection change notification event arguments. + + + + + Create new instance of object. + + Action + + + + Creates new instance of object. + + Specifies action. + List of changed items. + + + + Creates new instance of object. + + Specifies action. + Item that was changed. + + + + Creates new instance of object. + + Action. + New items in collection. + Old items in collection. + + + + Creates new instance of object. + + Action. + List of changed items. + Starting index of change. + + + + Creates new instance of object. + + Action + Changed item + Index of change + + + + Creates new instance of object. + + Action + New item + Old item + + + + Creates new instance of object. + + Action + New items. + Removed items. + Starting index of change. + + + + Creates new instance of object. + + Action + Changed items + New index + Old index + + + + Creates new instance of object. + + Action + Changed item + New index + Old index + + + + Creates new instance of object. + + Action. + New item + Old item + New index + + + + Gets the type of the collection change action. + + + + + Gets list of newly added items. + + + + + Gets new starting index. + + + + + Gets list of removed items. + + + + + Old starting index. + + + + + Represents advanced property grid control. + + + + + Defines an interface that is used by advanced property grid parser to localize property names. + + + + + Gets localized property name. + + Property name to retrieve localized name for. + Localized Property name or null to use default. + + + + Gets localized category name. + + Category to retrieve localized value for. + Localized Category name or null to use default. + + + + Gets localized message for Tooltip body when error setting the property value has occurred. + + Default system message. + Localized message or null to use default. + + + + Gets the style that is applied to property node when it is in read-only state. + + + + + Gets the style that is applied to property node when its value has changed from the default value for the property. + + + + + Gets the property category style. + + + + + Gets the default style for unchanged value edit cell. + + + + + Initializes a new instance of the AdvPropertyGrid class. + + + + + Invokes PropertyValueChanging event. + + Event data. + + + + Invokes PropertyValueChanged event handler. + + Name of the property that has changed. + New property value. + Old property value. + + + + Invokes PropertyValueChanged event. + + Name of property that has changed + + + + Raises ValidatePropertyValue event. + + Provides event arguments. + + + + Raises PropertiesLoaded event. + + Provides event arguments. + + + + Commits any property edits that are currently in progress by applying the current entered value to the property. + Returns true if edit was applied. + + + + + Updates specified property value in property grid. + + Property Name to update value for. + + + + Refreshes the display of all property values in the grid. + + + + + Reloads all properties from selected object. + + + + + Collapses all the categories in the AdvPropertyGrid. + + + + + Expands all the categories in the AdvPropertyGrid. + + + + + Raises the PrepareErrorSuperTooltip event. + + Provides information about event. + + + + Sets the property grid column width. + + Column index + Width of column in pixels + + + + Raises the ConvertPropertyValueToString event. + + Provides event data + + + + Raises the ConvertFromStringToPropertyValue event. + + Provides event data + + + + Raises the ProvidePropertyValueList event. + + Provides event data + + + + Raises the ProvideUITypeEditor event. + + Provides event data + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Find PropertyNode using the property name. + + Property to name + PropertyNode or null if not found + + + + Called when SubPropertiesDefaultSort property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is ending. + + + + + Occurs when property grid needs property names translated for UI. + + + + + Occurs when Super Tooltip that is displayed for the error that occurred when property is being set is being assigned to a property node. + This event allows you to customize the super tooltip displayed. + + + + + Occurs when property value is being converted to text representation for display. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when text entered by user is being converted to typed property value to be assigned to the property. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when property looks for the list of valid values for the property to show on either drop-down or use + in auto-complete list. For example when property type is enum the internal implementation will convert available enum + values into string list and use on drop-down and in auto-complete list. You can use this event to provide + custom value list in combination with ConvertPropertyValueToString, ConvertFromStringToPropertyValue events. + You must set IsListValid=true on event arguments to indicate that list your provided should be used. + + + + + Occurs when property node needs the UITypeEditor for the property. You can handle this event and provide your own UITypeEditor to be used instead of the one specified on the property. + + + + + Occurs when user changes the value of the property in property grid. + + + + + Occurs before property value entered by the user is set on the property. You can cancel internal assignment by property grid by setting Handled=true on event arguments. + + + + + Occurs when users changes the property value and attempts to commit the changes. This even allows you to validate the value and show error message if value is invalid and cancel its application. + + + + + Occurs after properties have been loaded into the property grid. + + + + + Gets or sets the currently selected objects. + + + + + Gets or sets the currently selected object. + + + + + Gets or sets the browsable attributes associated with the object that the property grid is attached to. + + + + + Gets or sets whether property is highlighted to confirm the value update by user. Default value is true. + + + + + Gets or sets the list of property names that are not loaded into property grid regardless of their Browsable attribute setting. + + + + + Gets or sets the list of category names properties below to that are not loaded into property grid regardless of the property Browsable attribute setting. + + + + + Returns reference to internal SuperTooltip component used by AdvPropertyGrid. + + + + + Defines the appearance of the control. + + + + + Gets or sets the property sorting inside of the grid. + + + + + Gets or sets the help type that is provided by the control. Default help type is SuperTooltip which shows tooltip over each property + that provides property description. + + + + + Gets reference to the help panel that is displayed below property grid and which provides selected property description. + + + + + Gets reference to the expandable splitter that is displayed above the help panel and allows resizing of the panel. + + + + + Gets reference to internal AdvTree control that displays properties. + + + + + Gets or sets the grid lines color. + + + + + Gets the reference to the internal toolbar control displayed above the property grid. + + + + + Gets or sets whether toolbar is visible. Default value is true. + + + + + Gets or sets whether search text box that allows property filtering is visible. Default value is true. + + + + + Gets reference to internal TextBoxItem that represents search text box. + + + + + Gets the reference to the property gird localization object which holds all system text used by the component. + + + + + Gets or sets whether Tab key navigates between property nodes. Default value is true. + + + + + Gets or sets the password character used by the property values that are marked with PropertyPasswordText attribute. + + + + + Gets or sets the sub property default sorting. Default value is Alphabetical. + + + + + Occurs when property defined by AdvPropertyGrid control has changed. + + + + + Gets the style that is applied to property node when it is in read-only state. + + + + + Gets the style that is applied to property node when its value has changed from the default value for the property. + + + + + Gets the style that is applied to property edit cell when its displaying unchanged property value. + + + + + Gets the property category style. + + + + + Defines the sorting for the AdvPropertyGrid properties. + + + + + Specifies help types property grid uses to display help for selected property. + + + + + No help is visible. + + + + + SuperTooltip with property description is displayed when mouse is over the property. + + + + + Panel below property grid is displayed which shows the description for the selected property. + + + + + Defines delegate for Localize AdvPropertyGrid event. + + + + + + + Defines data for Localize AdvPropertyGrid event. + + + + + Gets the property name or category name localization is performed for. Inspect LocalizationType property to get localization type which + determines value specified in this property. + + + + + Gets the localization type being performed. + + + + + Gets or sets the localized value to be used. Set to null or empty string to use default value. + + + + + Initializes a new instance of the AdvPropertyGridLocalizeEventArgs class. + + Key value event is raised for. + Localization Type being performed. + + + + Defines the localization types for AdvPropertyGrid control. + + + + + Property name is localized. + + + + + Category is localized. + + + + + Error super tooltip parts are being localized. + + + + + Defines delegate for Localize AdvPropertyGrid event. + + + + + + + Defines data for PrepareErrorTooltip AdvPropertyGrid event. + + + + + Gets or sets the SuperTooltipInfo that represent tooltip that will be displayed to provide error information. + + + + + Gets the name of the property tooltip is displayed for. + + + + + Gets reference to the exception that was thrown when property was set. + + + + + Gets the value that was set and caused the error. + + + + + Initializes a new instance of the PropertyErrorTooltipEventArgs class. + + SuperTooltipInfo for error tooltip + Property that caused error + Exception that was raised when property was set + Value that caused the error. + + + + Defines delegate for Convert Value events. + + Sender + Event data. + + + + Defines data for Convert Value events that allows custom value conversion for property grid. + + + + + Gets or sets the string property value. + + + + + Gets or sets the typed property value. + + + + + Gets the property name for which conversion is being done. + + + + + Gets the target component that property is on. + + + + + Gets or sets whether converted value is used. You need to set this property to true to indicate that you have performed value conversion. + + + + + Gets the property descriptor that describes property. + + + + + Initializes a new instance of the ConvertValueEventArgs class. + + + + + + + + + Defines delegate for Convert Value events. + + Sender + Event data. + + + + Defines data for Convert Value events that allows custom value conversion for property grid. + + + + + Gets the property name value list is needed for. + + + + + Gets the target component that property is on. + + + + + Gets or sets whether property ValueList provided is valid. You must set this property to true in order for the list to be used. + + + + + Gets or sets the list of valid property values. + + + + + Gets the property descriptor that describes property. + + + + + Initializes a new instance of the PropertyValueListEventArgs class. + + + + + + + Defines delegate for Localize AdvPropertyGrid event. + + Sender of event. + Event data. + + + + Defines data for PrepareErrorTooltip AdvPropertyGrid event. + + + + + Gets the property name UITypeEditor is looked for. + + + + + Gets the property descriptor for property UITypeEditor is looked for. + + + + + Gets or sets the instance of UITypeEditor to be used for the property. You set this property to the UITypeEditor that you want + used for the property while editing. Note that you must set EditorSpecified = true in order for this value to be used. + + + + + Gets or sets whether the value specified in UITypeEditor property is used. You must set this value to true in order for + UITypeEditor property value to be used. + + + + + Initializes a new instance of the ProvideUITypeEditorEventArgs class. + + Property Name + Property Descriptor + + + + Defines delegate for PropertyValueChanging event. + + Event sender. + Event data. + + + + Defines arguments for PropertyValueChanging event. + + + + + Gets the name of the property which value is changing. + + + + + Gets the new value that is being set on property. + + + + + Gets or sets whether value assignment was handled by your code. Set to true to cancel internal AdvPropertyGrid property value assignment. + + + + + Gets the PropertyDescriptor for the property being changed. + + + + + Gets the full property path up to the selected object. + + + + + Initializes a new instance of the PropertyValueChangingEventArgs class. + + + + + + + Initializes a new instance of the PropertyValueChangingEventArgs class. + + + + + + + Defines delegate for ValidatePropertyValue event. + + Sender + ValidatePropertyValue event arguments + + + + Defines event arguments for ValidatePropertyValue event. + + + + + Gets or sets whether validation failed. Set to true to cancel property value assignment. + + + + + Gets the name of the property which value is changing. + + + + + Gets the new value that is being set on property. + + + + + Gets the target object on which property value is set. + + + + + Gets or sets the message that is displayed to user if validation fails, i.e. Cancel=true. + + + + + Initializes a new instance of the ValidatePropertyValueEventArgs class. + + + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the node highlight when error has occurred while setting property value. + + + + + Gets or sets the color of the node highlight when property update was successful. + + + + + Gets or sets default style for property node. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets style for property node edit cell when displaying unchanged property value. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets the image that is displayed in property name cell when property value has failed the validation. + + + + + Represents the class that stores text used by property grid control for localization purposes. + + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets tooltip used by Categorized toolbar button. + + + + + Gets or sets tooltip used by Alphabetical toolbar button. + + + + + Gets or sets the tooltip text used in tooltip when error occurred during property value setting. + + + + + Gets or sets the watermark text displayed in search text-box. + + + + + Occurs when property defined by AdvPropertyGridLocalization class has changed. + + + + + Represents the property category in AdvPropertyGrid. + + + + + Represents check-box style property node in AdvPropertyGrid. + + + + + Represents a property node in AdvPropertyGrid. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Releases the inline editor used by the node. + + + + + Places the node into the editing mode if possible, raises the exception if node is read-only. + + Action that caused the edit mode. + Indicates whether to focus the editor. + + + + Called after property editor is created. + + + + + Exits the editor mode. + + Action that caused the editor mode exit. + + + + Called when visual part of the node has changed due to the changes of its properties or properties of the cells contained by node. + + + + + Cancel the edit changes and applies the old property value. + + + + + Attempts to apply current edit value to the property. + + + + + Returns the full property path to the root of the selected object. + + Full property path. + + + + Starts fade background color style highlight for the property node. + + Specifies the fade background color. + + + + Applies PropertySettings to this node. + + + + + Gets or sets whether property text box is read only. Default value is false. + + + + + Gets whether node is in editing mode. + + + + + Gets or sets the property settings that are applied to this property node. + + + + + Gets or sets whether property node represents property for multiple objects. + + + + + Gets or sets whether property is password property which value is not displayed as plain text. + + + + + Defines delegate that is called after property editor is created. + + PropertyNode sender. + Reference to editor. + + + + Initializes a new instance of the PropertyNode class. + + + + + + Defines a attribute which applies an date-time editor to a property when used with AdvPropertyGrid control. Applies to DateTime property types only. + + + + + Defines base attribute for custom AdvPropertyGrid in-line property value editors. + + + + + Creates a control that is used as property value in-line editor. Control must implement IPropertyValueEditor interface. + + PropertyDescriptor for the property being edited. + Target object that owns the property. + Control that represents in-line editor. + + + + Gets or sets pre-defined format for date-time input. + + + + + Gets or sets custom format for date-time input. + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is false. + + + + + Gets or sets whether drop-down button that shows calendar is visible. Default value is true. + + + + + Gets or sets the minimum date that control accepts. + + + + + Gets or sets the maximum date that control accepts. + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + Defines an interface that is implemented by the control that will be used by AdvPropertyGrid control to edit property value. + + + + + Focus the edit part of the control. + + + + + Gets or sets the font used by the edit part of the control. Font might be used to visually indicate that property value has changed. Implementing this property is optional. + + + + + Gets whether the edit part of the control is focused. + + + + + Gets or sets the value being edited. + + + + + Occurs when EditValue changes. Raising this even will cause the property value to be updated with the EditValue. + + + + + Defines a attribute which applies an double type numeric editor to a property when used with AdvPropertyGrid control. Applies to double property types only. + + + + + Gets or sets whether up/down button is shown. + + + + + Gets or sets the display format for the control when control does not have input focus. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets whether empty state i.e. null/nothing value is allowed when editor is used with nullable types. + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + Defines a attribute which applies an integer type numeric editor to a property when used with AdvPropertyGrid control. Applies to int property types only. + + + + + Gets or sets whether up/down button is shown. + + + + + Gets or sets the display format for the control when control does not have input focus. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets whether empty state i.e. null/nothing value is allowed when editor is used with nullable types. + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + Defines multiple choice, option or check-boxes, in-line AdvPropertyGrid property value editor. + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + + Represents item container that arranges items horizontally or vertically. + + + + + Creates new instance of the ItemContainer object. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Returns empty container default design-time size. + + Size of an empty container. + + + + Gets whether FixedSize property should be serialized. + + + + + Resets the property to default value. + + + + + Called when FixedSize property has changed. + + Old property value + New property value + + + + Recalculates the size of the container. Assumes that DisplayRectangle.Location is set to the upper left location of this container. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Return Sub Item at specified location + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Called when item Display state has changed. + + + + + Sets whether container is used as system container internally by DotNetBar. + + true or false to indicate whether container is system container or not. + + + + Called when TitleVisible property has changed. + + Old property value + New property value + + + + Called when TitleText property has changed. + + Old property value + New property value + + + + Called when TitlePosition property has changed. + + Old property value + New property value + + + + Selects first visible item contained by the container by sending mouse over message. + + + + + Sets the new hot-sub item for the container. This method is designed for internal use by the DotNetBar and should not be used. + + Reference to an instance of BaseItem or null. + + + + Gets or sets the minimum size of the container. Either Width or Height can be set or both. Default value is 0,0 which means + that size is automatically calculated. + + + + + Specifies the container background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Gets or sets spacing in pixels between items. Default value is 0. + + + + + Gets or sets the suggested fixed size of the container. Width or Height or Both may be set to suggest fixed size for the container. + + + + + Gets or sets orientation inside the container. Do not change the value of this property. It is managed by system only. + + + + + Gets or sets orientation inside the container. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + IBlock member implementation + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Returns whether instance of the item container is used as system container internally by DotNetBar. + + + + + Gets or sets the accessible role of the item. + + + + + Specifies the title background style. + + + + + Indicates whether TitleText is visible if set. Default value is true. + + + + + Gets or sets the title text for the container. + + + + + Gets or sets position of title text. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Specifes the mouse cursor displayed when mouse is over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Indicates whether container responds to keyboard presses and changes the active/mouse over item. + + + + + Initializes a new instance of the PropertyMultiChoiceItemEditor class. + + + + + + + Represents the option list property node for AdvPropertyGrid. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Describes the property settings applied to the property on AdvPropertyGrid control. + + + + + Initializes a new instance of the PropertySettings class. + + + + + Initializes a new instance of the PropertySettings class. + + + + + + Initializes a new instance of the PropertySettings class. + + + + + + Raises the ConvertPropertyValueToString event. + + Provides event data + + + + Raises the ConvertFromStringToPropertyValue event. + + Provides event data + + + + Raises the ProvidePropertyValueList event. + + Provides event data + + + + Called when TypeConverter property has changed. + + Old property value + New property value + + + + Raises PropertyChanged event. + + Event data. + + + + Occurs when property value is being converted to text representation for display. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when text entered by user is being converted to typed property value to be assigned to the property. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when property looks for the list of valid values for the property to show on either drop-down or use + in auto-complete list. For example when property type is enum the internal implementation will convert available enum + values into string list and use on drop-down and in auto-complete list. You can use this event to provide + custom value list in combination with ConvertPropertyValueToString, ConvertFromStringToPropertyValue events. + You must set IsListValid=true on event arguments to indicate that list your provided should be used. + + + + + Gets or sets read-only property style. + + + Default value is null. + + + + + Gets or sets whether property is in read-only state. Default value is false. + + + + + Gets or sets the SuperTooltip that is displayed when property is in read-only state (ReadOnly=true). + + + + + Gets or sets the SuperTooltip that is assigned to the property. + + + + + Gets or sets the image that is displayed next to the property name in the grid. + + + + + Gets or sets the image alignment in relation to the property name inside of the grid cell. + + + + + Gets or sets the custom category node will be placed in instead of category specified by Category attribute. + + + + + Gets or sets the custom property name that is displayed in the grid instead of the real property name. + + + + + Gets or sets the name of the property that is managed by this informational object. If you set PropertyDescriptor than that is the value + that will be used by the control regardless of PropertyName value. + If you set PropertyName but not PropertyDescriptor then all properties with given name + regardless of type will use these settings. + + + + + Gets or sets property descriptor that identifies the property settings apply to. If you set PropertyDescriptor than that is the value + that will be used by the control regardless of PropertyName value. + If you set PropertyName but not PropertyDescriptor then all properties with given name + regardless of type will use these settings. + + + + + Gets or sets default property style. + + + Default value is null. + + + + + Gets or sets the UITypeEditor used to edit the property. + + + + + Gets or sets the custom in-line property value editor. Property value editor is created by inheriting from PropertyValueEditor class. + + + + + Gets or sets whether node is visible in property grid. Default value is true. + + + + + Gets or sets the property node type that is used to edit this property value. Note that content of property grid would need to be + reloaded to apply any changes to this property. + + + + + Gets or sets the property description that overrides description specified on property through DescriptionAttribute. + Default value is null. + + + + + Gets or sets custom TypeConverter assigned to the property which will override any TypeConverter that is returned by the PropertyDescriptor. + + + + + Occurs when property value on the object changes. + + + + + Defines the type of the property node in grid that is assigned to property. + + + + + Specifies default node type for the property. + + + + + Specifies the node type that is constructed as group of option buttons that represent all values for the property. Works best + for smaller set of Enum values. + + + + + Defines exception which is thrown when property value fails the validation in AdvPropertyGrid.ValidatePropertyValue event. + + + + + Initializes a new instance of the InvalidPropertyValueException class. + + + + + Defines Advanced Property Grid Node for Color type. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Initializes a new instance of the PropertyNodeFactory class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyGridInfoCollection class. + + + + + + Gets property info object based on property name. + + Property name. + PropertyGridInfo instance or null if it cannot be found. + + + + Gets property info object based on property descriptor. + + Property descriptor. + PropertyGridInfo instance or null if it cannot be found. + + + + Returns property setting based on property descriptor or name if property descriptor is not set on property settings + Property descriptor takes precedence. + + Property descriptor to look for. + Property Name to look for. + Property settings instance or null + + + + Gets the owner of the collection. + + + + + Defines a attribute which applies an slider in-line editor to a property when used with AdvPropertyGrid control. + + + + + Gets or sets the minimum slider value. + + + + + Gets or sets the maximum slider value. + + + + + Gets or sets whether slider text label is visible. + + + + + Gets or sets the slider label width. Default value is 18. + + + + + Gets or sets label text color. + + + + + Initializes a new instance of the PropertySliderEditor class. + + Minimum value for slider. + Maximum value for slider. + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + + Creates a control that is used as property value in-line editor. Control must implement IPropertyValueEditor interface. + + PropertyDescriptor for the property being edited. + Target object that owns the property. + Control that represents in-line editor. + + + + Defines Radial Menu control. + + + + + Initializes a new instance of the RadialMenu class. + + + + + Raises BeforeMenuClose event. + + Provides event arguments. + + + + Raises BeforeMenuOpen event. + + Provides event arguments. + + + + Raises MenuOpened event. + + Provides event arguments. + + + + Raises MenuClosed event. + + Provides event arguments. + + + + Gets or sets whether radial menu is open. + + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when IsOpen property has changed. + + Old property value + New property value + + + + Sets whether radial menu is open and provides the source of the action. + + true to open menu, false to close it. + Source of the action. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Raises ItemAdded event. + + Reference to item. + Provides event arguments. + + + + Raises ItemRemoved event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseEnter event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseHover event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseLeave event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseDown event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseUp event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseMove event. + + Reference to item. + Provides event arguments. + + + + Raises ItemClick event. + + Reference to item. + Provides event arguments. + + + + Raises ItemDoubleClick event. + + Reference to item. + Provides event arguments. + + + + Raises ItemExpandedChanged event. + + Reference to item. + Provides event arguments. + + + + Raises ItemTextChanged event. + + Provides event arguments. + + + + Raises ItemTooltipShowing event. + + Provides event arguments. + + + + Occurs before menu is closed and allows you to cancel closing. + + + + + Occurs before menu has been opened and allows you to cancel opening + + + + + Occurs after menu has been opened. + + + + + Occurs after menu is closed.Occurs after menu is closed. + + + + + Specifies the width of the sub-menu edge around the radial menu. + + + + + Indicates spacing between sub-menu marking edge and the item. + + + + + Gets or sets radial menu diameter. Minimum value is 64. + + + + + Gets reference to colors used by the radial menu. + + + + + Indicates the size of the back symbol that is displayed on center of radial menu + + + + + Specifies the back button symbol. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates diameter of center button of radial menu. + + + + + Specifies the maximum pie part angle an item will occupy. Maximum is 180, minimum is 1 degree. + + + + + Indicates maximum radial angle single item in menu can consume. By default this property is set to zero which indicates that + radial menu is equally divided between visible menu items. + + + + + Indicates the position of top-left corner of radial menu when shown in screen coordinates + + + + + Indicates image displayed in center of the radial menu. + + + + + Indicates symbol displayed in center of the radial menu. When set, it overrides any Image settings. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets whether radial menu is open. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether shortcut processing for the items hosted by this control is enabled. Default value is true. + + + + + Indicates whether radial menu is closed automatically when app is deactivated. Default value is true, if set to false + you are responsible for closing the menu. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Indicates the radial menu type. eRadialMenuType.Segment menu type allows for display of image, text and any sub-menu items. + eRadialMenuType.Circular allows only for display of Symbol or Image and it does not display either text or sub-menu items. + eRadialMenuType.Circular is designed to be used for single level menus only that don't need text. + + + + + Indicates whether control automatically scales the items if the parent Form performs scaling due to AutoScale settings. + + + + + Indicates accessibility help string + + + + + Returns whether control has any popups registered. + + + + + Indicates whether shortcuts handled by items are dispatched to the next handler or control. + + + + + Indicates whether items show tooltips. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether accelerator letters on buttons are underlined. Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Occurs after an item has been added to items collection. + + + + + Occurs after an item has been removed from items collection. + + + + + Occurs when mouse pointer enters boundaries of an item. + + + + + Occurs when mouse pointer hovers over an item. + + + + + Occurs when mouse pointer leaves boundaries of an item. + + + + + Occurs when mouse button is pressed on item. + + + + + Occurs when mouse button is released on item. + + + + + Occurs when mouse moves over an item. + + + + + Occurs when an item is clicked. + + + + + Occurs when an item is double-clicked. + + + + + Occurs when an item Expanded property value has changed. + + + + + Occurs when an item Text property value has changed. + + + + + Occurs when tooltip for an item is about to be displayed. + + + + + Defines colors used by Radial Menu Component. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the color of the Radial Menu button background. + + + + + Gets or sets the color of the radial menu button border. + + + + + Gets or sets the color of the Radial Menu background. + + + + + Gets or sets the color of the Radial Menu border + + + + + Gets or sets the color of border for mouse over state for the radial menu item expand part. + + + + + Gets or sets the color of the radial menu border for parts where items do not have sub-items, i.e. non-active area of the border. + + + + + Gets or sets the color of the expand sign which shows menu item sub-items. + + + + + Gets or sets the color of the radial menu item text. + + + + + Gets or sets the color of the radial menu item mouse over background. + + + + + Gets or sets the color of the radial menu item mouse over foreground. + + + + + Gets or sets the color of the radial menu item foreground when disabled. + + + + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets text color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets border color of the circular menu item type. Applies only to circular menu types. + + + + + Occurs when property value has changed. + + + + + Initializes a new instance of the RadialMenuContainer class. + + + + + Returns copy of the item. + + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New RadialMenuItem instance. + + + + Raises Opened event. + + Provides event arguments. + + + + Raises Closed event. + + Provides event arguments. + + + + Called when OpenState property has changed. + + Old property value + New property value + + + + Closes currently open popup. + + + + + Called when MaxItemRadialAngle property has changed. + + Old property value + New property value + + + + Called when Diameter property has changed. + + Old property value + New property value + + + + Called when CenterButtonDiameter property has changed. + + Old property value + New property value + + + + Called when SubMenuEdgeWidth property has changed. + + Old property value + New property value + + + + Called when SubMenuEdgeItemSpacing property has changed. + + Old property value + New property value + + + + Return Sub Item at specified location + + + + + Called when MenuLocation property has changed. + + Old property value + New property value + + + + Called when RadialMenu property has changed. + + Old property value + New property value + + + + Gets the current expanded subitem. + + + + + + Called when BackSymbolSize property has changed. + + Old property value + New property value + + + + Called when BackSymbol property has changed. + + Old property value + New property value + + + + Called when BackButtonSymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when MaxItemPieAngle property has changed. + + Old property value + New property value + + + + Called when MenuType property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when Font property has changed. + + Old property value + New property value + + + + Occurs after radial menu is opened. + + + + + Occurs after radial menu is closed. + + + + + Returns internal popup control for radial menu. + + + + + Indicates maximum radial angle single item in menu can consume. By default this property is set to zero which indicates that + radial menu is equally divided between visible menu items. + + + + + Returns diameter which takes in account current scaling factor. + + + + + Gets or sets radial menu diameter. Minimum value is 64. + + + + + Returns actual center button diameter which takes in account current scale factor. + + + + + Indicates diameter of center button of radial menu. + + + + + Specifies the width of the sub-menu edge around the radial menu. + + + + + Indicates spacing between sub-menu marking edge and the item. + + + + + Indicates the position of top-left corner of radial menu when shown in screen coordinates + + + + + Indicates the size of the back symbol that is displayed on center of radial menu + + + + + Specifies the back button symbol. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Specifies the maximum pie part angle an item will occupy. Maximum is 180, minimum is 1 degree. + + + + + Gets reference to colors used by the radial menu. + + + + + Indicates the radial menu type. eRadialMenuType.Radial menu type allows for display of image, text and any sub-menu items. + eRadialMenuType.Circular allows only for display of Symbol or Image and it does not display either text or sub-menu items. + eRadialMenuType.Circular is designed to be used for single level menus only that don't need text. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the image displayed on the item. + + + + + Specifies font for menu items. + + + + + Initializes a new instance of the RadialSubItemInfo class. + + + + + + + + + Initializes a new instance of the RadialMenuPopupProxy class. + + + + + + Defines available radial menu type. + + + + + Defines Radial Menu Item. + + + + + Raises CheckedChanged event. + + Provides event arguments. + + + + Called when DisplayPath property has changed. + + Old property value + New property value + + + + Returns copy of the item. + + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New RadialMenuItem instance. + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when TextVisible property has changed. + + Old property value + New property value + + + + Called when TracksMouse property has changed. + + Old property value + New property value + + + + Called when Checked property has changed. + + Old property value + New property value + + + + Called when TextOffset property has changed. + + Old property value + New property value + + + + Raises BeforeMenuOpened event. + + Provides event arguments. + + + + Raises BeforeMenuClosed event. + + Provides event arguments. + + + + Called when CircularMenuDiameter property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs after Checked property has changed. + + + + + Gets display path of the item. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the image displayed on the item. + + + + + Indicates whether text on item is visible. + + + + + Gets whether mouse is over the item. + + + + + Indicates whether item changes its appearance when mouse is over it or pressed + + + + + Indicates whether item is in checked state. + + + + + Gets or sets the optional text offset for the item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Occurs before radial menu item is expanded and its sub-items displayed. + + + + + Occurs before radial menu item is closed + + + + + Control Container (System.Windows.Forms.Control or its descendant) + + + + + Specifies explicit circular menu type diameter. Applies to circular menu type only. + + + + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets text color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets border color of the circular menu item type. Applies only to circular menu types. + + + + + Initializes a new instance of the RadialMenuPopup class. + + + + + Called when DisplayItem property has changed. + + Old property value + New property value + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Identifies the item displayed by this popup. + + + + + Gets or sets the content image displayed on the window. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Represents rating item control which provides rating functionality. + + + + + Initializes a new instance of the RatingItem class. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the AverageRatingChanged event. + + Event data. + + + + Raises the ParseAverageRatingValue event. + + Provides event arguments. + + + + Sets the Rating value of the control and provides information about source of the rating change. + + New Rating value. + Source of this change. + + + + Raises RatingChanging event. + + Event data + + + + Raises the RatingChanged event. + + Event data. + + + + Raises the ParseRating event. + + Provides event arguments. + + + + Occurs when Rating property has changed. + + + + + Occurs when RatingValue property has changed. + + + + + Occurs when Rating property is about to be changed and provides opportunity to cancel the change. + + + + + Occurs when AverageRating property has changed. + + + + + Occurs when AverageRatingValue property has changed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when RatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when AverageRatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets the average rating shown by control. Control will display average rating (if set) when no explicit + Rating value is set through Rating property. Minimum value is 0 and Maximum value is controlled by NumberOfStars property value. + + + + + Gets or sets the AverageRating property. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets the rating value represented by the control. Default value is 0 which indicates + that there is no rating set. Maximum value is controlled by NumberOfStars property. + + + + + Gets or sets the Rating property value. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets whether rating can be edited. Default value is true. + + + + + Specifies the control background style. Default value is an empty style which means that container does not display any background. + + + + + Gets the reference to custom rating images. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the spacing between optional text and the rating. + + + + + Gets or sets the orientation of rating control. + + + + + Indicates number of stars used for the rating. Minium value is 2 stars. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Initializes a new instance of the RatingImage structure. + + + + + + + Defines the custom rating images for Rating control. + + + + + Initializes a new instance of the RatingImages class. + + + + + Gets or sets the image used for unrated rating part. + + + + + Gets or sets the image used for unrated rating part when mouse is over the control. + + + + + Gets or sets the image used for rated part of the control. + + + + + Gets or sets the image used for Average Rated part of the control. + + + + + Gets or sets the image used for rated part of the control when mouse is over the control. + + + + + Delegate for Rating change events. + + + + + Represents event arguments for Rating change events. + + + + + New Rating value being assigned. + + + + + Previous or current value (if RatingChanging event). + + + + + Indicates the action that has caused the event. + + + + + Initializes a new instance of the RatingChangeEventArgs class. + + + + + + + + Represents color table for CrumbBarItemView. + + + + + Gets or sets the default state color table. + + + + + Gets or sets active mouse over color table. + + + + + Gets or sets inactive part mouse over color table. + + + + + Gets or sets the pressed color table. + + + + + Defines state color table for CrumbBarItemView + + + + + Gets or sets foreground/text color. + + + + + Gets or sets the background color blend collection. + + + + + Gets or sets the border color. + + + + + Gets or sets the border color. + + + + + Represents the color table for Office 2007 Style CalendarView Control. + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines colors for the WarningBox control. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Renders the Range Slider items. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the Range Slider Item in single state. + + + + + Gets or sets the colors for the slider which changes the minimum value of the range. + + + + + Gets or sets the colors for the slider which changes the maximum value of the range. + + + + + Gets or sets the tick line color. + + + + + Gets or sets the color for the line which indicates current range value. + + + + + Gets or sets the background colors of the current range value. + + + + + Gets or sets the color for the line showing control range. + + + + + Gets or sets the background colors for the line showing control range. + + + + + Gets or sets the corner radius for the range rectangle. + + + + + Defines the color table for the Range Slider Item in single state. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Gets or sets the disabled colors. + + + + + Initializes a new instance of the Office2010RangeChangePartColorTable class. + + + + + Initializes a new instance of the Office2010RangeChangePartColorTable class. + + + + + + + + Gets or sets the part background colors. + + + + + Gets or sets the part border color + + + + + Gets or sets the part border light color + + + + + Represents color table for Office 2010 style. + + + + + Represents color table for Office 2007 style. + + + + + Defines the provider for the element style classes support. + + + + + Returns the instance of the ElementStyle with given class name or null if there is no class with that name defined. + + Class name. See static members of ElementStyleClassKeys class for the list of available keys. + Instance of ElementStyle for given class name or null if class cannot be found. + + + + Creates new instance of the object. + + + + + Initializes a new instance of the Office2007ColorTable class. + + Specifies the color factory for the color table. + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + + + + Creates new instance of the color table and initializes it with custom color scheme. + + Predefined color scheme to be used as starting color scheme. + Color to use as basis for new color scheme + + + + Gets or sets the RibbonBar color table. + + + + + Gets or sets the background colors for the ItemContainer with BeginGroup property set to true. + + + + + Gets or sets the background colors for the Bar object. + + + + + Gets or sets the colors for the RibbonControl. + + + + + Gets or sets the colors for the ColorItem which is used by drop-down Color Picker. + + + + + Gets or sets the color table for menus. + + + + + Gets or sets the color table for ComboBoxItem. + + + + + Gets or sets the colors for the Ribbon Bar dialog launcher button. + + + + + Gets or sets the legacy color scheme object that applies to the user interface elements not covered by color table. + + + + + Gets or sets the color table of the system buttons displayed in form caption. + + + + + Gets or sets the color table of the close system button displayed in form caption. Applies to Office 2010 styles and later only. + + + + + Gets or sets the color table for the form caption. + + + + + Gets or sets the bacgkround colors for the quick access toolbar. + + + + + Gets or sets the colors for the tab and tab strip control. + + + + + Gets or sets the colors for the tab strip control used on docking windows. When not set TabControl color scheme is used. + + + + + Gets or sets the KeyTips color table. + + + + + Gets or sets the color table for the CheckBoxItem. + + + + + Gets or sets the scroll bar colors. + + + + + Gets or sets the application style scroll bar colors. + + + + + Gets or sets the color table for the ProgressBarItem. + + + + + Gets or sets the color table for the paused ProgressBarItem. + + + + + Gets or sets the color table for the error state of ProgressBarItem. + + + + + Gets or sets the color table for the galleries. + + + + + Gets or sets the color table for the NavigationPane control. + + + + + Gets or sets the color table for the Slider item. + + + + + Gets or sets the color table for the Range Slider item. + + + + + Gets the SuperTooltip color table. + + + + + Gets the color table for the ListViewEx control. + + + + + Gets the color table for the ListViewEx control. + + + + + Gets the color table used by SideBar control. + + + + + Gets or sets the color table for AdvTree control. + + + + + Gets or sets the CrumBarItem color table. + + + + + Gets the color table used by Schedule control. + + + + + Gets or sets SwitchButton color table. + + + + + Gets or sets the colors for the StepItem used in ProgressSteps control. + + + + + Gets or sets the colors for the ListBoxItem used in ListBoxAdv control. + + + + + Gets or sets the color table for the radial menu. + + + + + Gets or sets color table for TokenEditor control tokens. + + + + + Gets or sets color table for Flyout control. + + + + + Gets or sets the colors for the SideNav control. + + + + + Returns the instance of the ElementStyle with given class name or null if there is no class with that name defined. + + Class name. See static members of ElementStyleClassKeys class for the list of available keys. + Instance of ElementStyle for given class name or null if class cannot be found. + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style. + The collection by default has elements that are created to + represents the members of eButtonColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. Name specified there can be used in ButtonItem.CustomColorName property to specify + custom color table for an ButtonItem. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style when + button is on RibbonBar control. When collection is empty the values from the ButtonItemColors collections are used instead. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style when + button is on menu bar. When collection is empty the values from the ButtonItemColors collections are used instead. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by Ribbon Application Menu Button in Office 2010 style. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by buttons that are on Backstage tab-strip. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by buttons that are on NavigationPane control. Currently used for Office 2010 style only. When empty ButtonItemColors is used. + + + + + Gets the reference to collection of Office2007RibbonTabItemColorTable objects the describe colors used by a ribbon tab with Office 2007 style. + The collection by default has elements that are created to + represents the members of eRibbonTabColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. Name specified there can be used in RibbonTabItem.CustomColorName property to specify + custom color table for an ButtonItem. + + + + + Gets the reference to collection of Office2007RibbonTabGroupColorTableCollection objects the describe colors used by a ribbon tab groups with Office 2007 style. + The collection by default has elements that are created to + represents the members of eRibbonTabGroupColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. + + + + + Returns the color scheme table was initialized with. + + + + + Get the reference to the collection that holds system cached styles. In most cases there is no need for you to modify members of this collection. + + + + + Gets or sets whether images like Start button image, are cloned when painted. This is reduces the performance but is necessary if they can be accessed from multiple threads. + + + + + Gets the reference to collection of contextual color tables that are based on items Control container type and other context properties. + When contextual color table is defined it overrides the default color table. + + + + + Initializes a new instance of the Office2010ColorTable class. + + + + + Gets the color scheme color table is initialized with. + + + + + Defines the color scheme type for the Office2010ColorTable. + + + + + Silver color scheme. + + + + + Blue color scheme. + + + + + Black color scheme. + + + + + Visual Studio 2010 Blue color scheme. + + + + + Specifies colors for StepIndicator control. + + + + + Initializes a new instance of the StepIndicatorColorTable class. + + + + + Initializes a new instance of the StepIndicatorColorTable class. + + + + + + + Gets or sets Background color of the control. + + + + + Gets or sets indicator color. + + + + + Defines the color table for SuperTab states + + + + + Event raised when the SuperTabColorTable is changed + + + + + Gets or sets the Background color + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the ControlBoxDefault colors + + + + + Gets or sets the ControlBoxMouseOver colors + + + + + Gets or sets the ControlBoxPressed colors + + + + + Gets or sets the colors for the InsertMarker. + + + + + Gets or sets the color for the SelectionMarker. + + + + + Gets whether the ColorTable is empty. + + + + + Defines the colors for the SuperTabControlBox states + + + + + Event raised when the SuperTabControlBoxStateColorTable is changed + + + + + Gets or sets the colors for the background. + + + + + Gets or sets the colors for the border. + + + + + Gets or sets the colors for the drawn image. + + + + + Defines the color table for SuperTabItem states + + + + + Event raised when the SuperTabItemColorTable is changed + + + + + Gets or sets the Default tab color settings + + + + + Gets or sets the Left Aligned tab color settings + + + + + Gets or sets the Bottom Aligned tab color settings + + + + + Gets or sets the Right Aligned tab color settings + + + + + Event raised when the SuperTabColorStates is changed + + + + + Gets or sets the tab colors when the tab is not selected, and the mouse is not over it + + + + + Gets or sets the tab colors when the tab is selected, but the mouse is not over the it + + + + + Gets or sets the tab colors when the tab is not selected, but the mouse is over it + + + + + Gets or sets the tab colors when the tab is selected, and the mouse is over it + + + + + Gets or sets the tab colors when the tab + is disabled, is not selected, and the mouse is not over it + + + + + Defines the colors for the SuperTabItem states + + + + + Event raised when the SuperTabItemStateColorTable is changed + + + + + Gets or sets the background colors. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the text color. + + + + + Gets or sets the Close Marker color. + + + + + Gets or sets the Selection Marker color. + + + + + Event raised when the SuperTabLinearGradientColorTable is changed + + + + + Gets or sets the Gradient Colors + + + + + Gets or sets the Gradient Color Positions + + + + + Gets or sets the Gradient angle + + + + + Gets or sets whether the Gradient will adapt to changes in the TabAlignment + + + + + Gets whether color definition is empty + + + + + Defines the colors for the SuperTabPanel + + + + + Event raised when the SuperTabPanelColorTable is changed + + + + + Gets or sets the Default tab panel color settings + + + + + Gets or sets the Left Aligned tab panel color settings + + + + + Gets or sets the Bottom Aligned tab panel color settings + + + + + Gets or sets the Right Aligned tab panel color settings + + + + + Event raised when the SuperTabPanelItemColorTable is changed + + + + + Gets or sets the background colors. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + GetOffice2010BackstageColorTable + + Office2010BackstageColorTable + + + + GetOffice2010BackstageBlueColorTable + + + + Office2010BackstageBlueColorTable + + + + GetVS2010BackstageBlueColorTable + + + + Office2010BackstageBlueColorTable + + + + GetOffice2010BackstageBlackColorTable + + + + Office2010BackstageBlackColorTable + + + + GetOffice2010BackstageSilverColorTable + + + + Office2010BackstageSilverColorTable + + + + GetOffice2007BackstageVistaGlassColorTable + + + + Office2010BackstageVistaGlassColorTable + + + + GetOffice2010BackstageSilverColorTable + + + + Office2010BackstageSilverColorTable + + + + GetOffice2010BackstageItemColorTable + + Office2010BackstageItemColorTable + + + + GetOffice2010BackstageBlueItemColorTable + + + + Office2010BackstageBlueItemColorTable + + + + GetOffice2010BackstageBlackItemColorTable + + + + Office2010BackstageBlackItemColorTable + + + + GetOffice2010BackstageSilverItemColorTable + + + + Office2010BackstageSilverItemColorTable + + + + GetOffice2007BackstageVistaGlassItemColorTable + + + + Office2010BackstageVistaGlassItemColorTable + + + + GetOffice2010BackstageSilverItemColorTable + + + + + Office2010BackstageSilverItemColorTable + + + + GetOffice2010BackstagePanelColorTable + + Office2010BackstagePanelColorTable + + + + GetOffice2010BackstageBluePanelColorTable + + + + Office2010BackstageBluePanelColorTable + + + + GetOffice2010BackstageBlackPanelColorTable + + + + Office2010BackstageBlackPanelColorTable + + + + GetOffice2010BackstageSilverPanelColorTable + + + + Office2010BackstageSilverPanelColorTable + + + + GetOffice2007BackstageVistaGlassPanelColorTable + + + + Office2010BackstageVistaGlassPanelColorTable + + + + GetOffice2010BackstageSilverPanelColorTable + + + + Office2010BackstageSilverPanelColorTable + + + + Defines color table for the SwitchButton control. + + + + + Gets or set the text/caption color. + + + + + Gets or sets the OFF text color. + + + + + Gets or sets the ON text color. + + + + + Gets or sets the button border color. + + + + + Gets or sets background color of OFF switch part. + + + + + Gets or sets background color of ON switch part. + + + + + Gets or sets the switch border color. + + + + + Gets or sets the switch background color. + + + + + Gets or sets the switch background color when in ON state, i.e. Value=true. When set to Color.Empty SwitchBackColor is always used. + + + + + Gets default disabled color scheme for the switch button. + + + + + Gets or sets default Switch Button color table. + + + + + Gets or sets the disabled Switch Button color table. + + + + + Represents the Windows 7 blue style color initialization class. + + + + + Represents color table for Windows 7 style. + + + + + Initializes a new instance of the Office2010ColorTable class. + + + + + Defines the color scheme type for the Office2010ColorTable. + + + + + Blue color scheme. + + + + + Provides information about the binding for the item. + + + + + Initializes a new instance of the ItemBindingInfo class. + + + + + + + Gets or sets the data row item is bound to. + + + + + Gets or sets the data item index. + + + + + Gets or sets the additional data connected to this binding information. + + + + + Represents the slider item which allows you to select a value from predefined range. + + + + + Creates new instance of SliderItem. + + + + + Creates new instance of SliderItem and assigns the name to it. + + Item name. + + + + Creates new instance of SliderItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Raises GetRangeTooltipText event. + + Provides event arguments. + + + + Gets the range part that is under specified client location. + + Location in parent control client coordinates. + Range part at specified location. + + + + Called when Minimum property has changed. + + Old property value + New property value + + + + Called when Maximum property has changed. + + Old property value + New property value + + + + Sets the range value. + + New Range value. + Source of the value change. + + + + Called when Value property has changed. + + Old property value + New property value + + + + Called when TicksVisible property has changed. + + Old property value + New property value + + + + Called when TicksStep property has changed. + + Old property value + New property value + + + + Called when RangeButtonSize property has changed. + + Old property value + New property value + + + + Called when TicksPosition property has changed. + + Old property value + New property value + + + + Called when MinimumAbsoluteRange property has changed. + + Old property value + New property value + + + + Called when RangeTooltipFormat property has changed. + + Old property value + New property value + + + + Called when MinRangeSliderImage property has changed. + + Old property value + New property value + + + + Called when MaxRangeSliderImage property has changed. + + Old property value + New property value + + + + Called when RangeLineHeight property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value has changed and allow the cancellation of the change. + + + + + Occurs after Value property has changed + + + + + Gets mouse over part. + + + + + Gets current part that is pressed using mouse left button. + + + + + Occurs when control is about to display the range tooltip and it allows you to customize tooltip + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the range displayed by the control. + + + + + Indicates whether tick lines are shown + + + + + Gets tick marks bounds. + + + + + Gets tick marks bounds for second marker is visible. + + + + + Gets bounds of minimum range sliding button. + + + + + Gets bounds of maximum range sliding button. + + + + + Indicates tick display period + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets or sets the width of the range slider in pixels. Value must be greater than 0. Default value is 140. + + + + + Gets or sets the Height of the range slider in pixels. Value must be greater than 0. Default value is 24. + + + + + Indicates the size of the range change buttons. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Specifies minimum absolute range that user can select. Absolute range is defined as Abs(Value.Max-Value.Min) Applies to user performed selection through mouse only. + + + + + Gets or sets the string that is used to format the range value to be displayed while user moves the range buttons. Value set here is used in string.Format(RangeTooltipFormat, Value.Min, Value.Max). + + + + + Specifies whether range tooltip is shown while user is changing the range + + + + + Indicates image to be used as minimum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Indicates image to be used as maximum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Specifies the height of the range line + + + + + Indicates whether clicking the area outside of the range change buttons moves the range change button to the clicked location if possible thus allowing range change. + + + + + Gets or sets the color of the range value. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Ticks are displayed on top of range sliders. + + + + + Ticks are displayed on bottom of range sliders. + + + + + Ticks are displayed on top and bottom of range sliders. + + + + + Defines value for the range slider controls. + + + + + Gets or sets the range minimum value. + + + + + Gets or sets the range maximum value. + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Range Slider item being rendered. + Reference to the graphics object. + + + + Defines delegate for RangeSliderValueChanging event. + + + + + + + Provides information for RangeSliderValueChanging event. + + + + + Represents event arguments that provide information on source of action. + + + + + Gets the source of the event. + + + + + Initializes a new instance of the EventSourceArgs class. + + + + + + New range value. + + + + + Set to true to cancel the value changing. + + + + + Initializes a new instance of the RangeSliderValueChangingEventArgs class. + + + + + + Defines the slider item parts. + + + + + Indicates no part. + + + + + Indicates the minimum range slider button. + + + + + Indicates the maximum range slider button. + + + + + Indicates the track area part of the control. + + + + + Defines delegate for RangeSliderValueChanging event. + + + + + + + Provides information for GetRangeTooltip event. + + + + + Gets or sets the tooltip to display. + + + + + Initializes a new instance of the RangeTooltipEventArgs class. + + + + + + Color definition class + + + + + Constructor - solid def + + RGB value + + + + Constructor - solid def + + Color + + + + Constructor - 2 color def + + Start Color + End Color + + + + Constructor - 2 color def + + Start Color + End Color + Gradient angle + + + + Constructor - Gradient def + + Array of RGB values + Gradient positions + + + + Constructor - Gradient def + + Array of Color values + Gradient positions + + + + Constructor - Gradient def + + Array of RGB values + Gradient positions + Gradient angle + + + + Constructor - Gradient def + + Array of Color values + Gradient positions + Gradient angle + + + + OnColorDefChanged + + + + + Event raised when the SuperTabColorStates is changed + + + + + Gets or sets the Color array + + + + + Gets or sets the Color Positions + + + + + Gets or sets the Gradient Angle + + + + + IsEmpty + + + + + ColorDefConvertor + + + + + Represents the visual separator line that is displayed between items. + + + + + Creates new instance of Separator. + + + + + Creates new instance of Separator and assigns the name to it. + + Item name. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets separator padding. + + + + + Gets or sets the size of separator. Size specified is for separator in Vertical orientation. If orientation changes then the size will be internally switched to respect proper orientation. + + + + + Indicates splitter orientation. + + + + + Gets or sets the separator color. + + + + + Gets or sets the separator shade color. + + + + + Defines an item that allows the toolbar customization. + + + + + Creates new instance of CustomizeItem object. + + + + + Returns copy of CustomizeItem item + + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Occurs when tooltip is about to be shown or hidden. + + Specifies whether tooltip is shown or hidden. + + + + Loads the resources (text) used by this item. + + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Sets the custom system tooltip text for the item. + + Tooltip text. + + + + Overriden. Recalculates the size of the item. + + + + + Gets localized tooltip text for this instance of the item. + + Tooltip text. + + + + Called when mouse hovers over the customize item. + + + + + Forces the repaint the item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Gets whether the mouse is over the item. + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Gets or sets whether Customize menu item is visible. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Represents base class for the CalendarMonth and MultiMonthCalendar controls. This class is used internally by DotNetBar and is not intended for public use. + + + + + Initializes a new instance of the MultiMonthCalendar class. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Paints background of the item. + + Provides painting arguments + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Specifies the container background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Returns name of the item that can be used to identify item from the code. + + + + + Gets or sets the accessible role of the item. + + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Specifies the mouse cursor displayed when mouse is over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Gets or sets the text associated with this item. + + + + + Defines the visual marking applied to dates through month calendar control. + + + + + Initializes a new instance of the DateAppearanceDescription class. + + + + + Initializes a new instance of the DateAppearanceDescription class. + + + + + + Applies all settings from this object to specified object. + + Reference to object. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Gets or sets whether text is drawn using bold font. + + + + + Gets or sets the background color for the marked day. + + + + + Gets or sets the background target gradient color for the marked date. + + + + + Gets or sets the background gradient fill angle. Default value is 90. + + + + + Gets or sets the text color for the marked date. + + + + + Gets whether any of the appearance values have been changed. + + + + + Gets or sets the border color. + + + + + Gets or sets whether day marked is selectable by end user. Default value is true. + + + + + Reverts the input to the last stored value. + + + + + Called when input field is full, i.e. it has an complete entry. If auto-overwrite is enabled the continued typing after input is complete + will erase the existing entry and start new one. + + + + + Resets the input position so the new input overwrites current value. + + + + + Occurs when input on the control has changed. + + + + + Occurs when validation of the input is performed and it allows you to deny the input. + + + + + Occurs when IsEmpty property has changed. + + + + + Gets whether watermark will be drawn in current control state. + + + + + Gets or sets whether control is empty. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets whether watermark text is displayed if set. Default value is true. + + + + + Gets or sets whether input item is read-only. + + + + + Gets or sets whether control allows empty input state i.e. does not have an text entered. Default value is true. + + + + + Raises SelectedIndexChanged event + + + + + Occurs when SelectedIndex property has changed. + + + + + Gets or sets the text that is selected by the control. + + + + + Gets or sets the currently selected index. -1 is returned if nothing is selected. + + + + + Gets or sets custom AM text used. + + + + + Gets or sets custom PM text used. + + + + + Represents a control that enables the user to select a date using a visual monthly calendar display. + + + + + Initializes a new instance of the MonthCalendarAdv class. + + + + + Returns the DayLabel at given client coordinates or null/nothing if there is no label at give location. + + X - position in client coordinates. + Y - position in client coordinates. + DayLabel at given coordinates or null/nothing. + + + + Returns the DayLabel that represents the date. + + Date to find label for. + DayLabel object or nothing if date cannot be founds. + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all monthly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all weekly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the day from the WeeklyMarkedDays. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all annually marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the AnnuallyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all marked dates set through MarkedDates property. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MarkedDates collection. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Repaints the marked dates to reflect the dates set in the lists of marked dates. + Use this method to reflect the changes made to the AnnuallyMarkedDates, MonthlyMarkedDates or MarkedDates properties as well + as change to the marked Colors properties. + + + + + Raises the DateChanged event. + + Provides event data. + + + + Raises the DateSelected event. + + Provides event data. + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the LabelMouseDown event. + + Provides event data. + + + + Raises the LabelMouseUp event. + + Provides event data. + + + + Raises the LabelMouseEnter event. + + Provides event data. + + + + Raises the LabelMouseLeave event. + + Provides event data. + + + + Raises the LabelMouseMove event. + + Provides event data. + + + + Raises the LabelMouseHover event. + + Provides event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Gets whether property should be serialized. Provided for design-time support. + + + + + Sets the number of columns and rows of months to display. + + The number of columns. + The number of rows. + ArgumentOutOfRangeException will be raised if any value is less than zero or one value is grater than zero and other is zero. + + + + Returns whether property should be serialized by Windows Forms designer. + + + + + Sets the selected dates in a month calendar control to the specified date range. + + The beginning date of the selection range. + The end date of the selection range. + startDate is less than the minimum date allowable for a month calendar control.
+ -or-
+ startDate is greater than the maximum allowable date for a month calendar control.
+ -or-
+ endDate is less than the minimum date allowable for a month calendar control.
+ -or- endDate is greater than the maximum allowable date for a month calendar control.
+
+ + If the startDate value is greater than endDate property value, the dates are swapped; the endDate value becomes the starting date, and startDate value becomes the end date. + +
+ + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Occurs when the user makes an explicit date selection using the mouse. + + + This event is similar to the DateChanged event, but it occurs at the end of a date selection made using the mouse. + The DateChanged event occurs during any date selection, whether by mouse, keyboard, or code. You should handle this event + when you enable multiple date selection through MultiSelect property and want to be notified after the date selection has been + made. DateChanged event would fire each time selection changes during the selection of multiple dates. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to mark using Colors.MonthlyMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the array of DayOfWeek members that determine which days of week to mark using Colors.WeeklyMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which annual days are marked using Colors.AnnualMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the array of DateTime objects that determines which non-recurring dates are marked using Colors.DayMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the first month displayed by the control. + + + + + Gets number of months displayed on the control. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Specifies the commands container background style. Commands container displays Today and Clear buttons if they are visible. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the number of columns and rows of months displayed on control. Default value is 0,0 which indicates that + calendar will display as many columns and rows as it is possible to fit into container space available. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the calendar selected date. Note that SelectedDate property should be used only when MultiSelect property is set to false. + When multiple dates can be selected use range selection properties: SelectionStart, SelectionEnd and SelectionRange. + + + + + Gets or sets whether selection of multiple dates up to the MaxSelectionCount is enabled. Default value is false which indicates that only + single day can be selected. + + + + + Gets the reference to the bottom container that parents the Today, and Clear system buttons. + + + + + Gets or sets whether Today button displayed at the bottom of the calendar is visible. Default value is false. + + + + + Gets or sets whether Clear button displayed at the bottom of the calendar is visible. Clear button clears the currently selected date. Default value is false. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + + + + + Gets or sets the start date of the selected range of dates. + + + + + Gets or sets the end date of the selected range of dates. + + + + + Gets or sets the selected range of dates for a month calendar control. + + Setting this property is functionally equivalent to using the SetSelectionRange method. You can set the start and end dates separately by setting either the SelectionStart or SelectionEnd properties. You cannot change the start and end dates by setting the SelectionRange.Start or SelectionRange.End property values of the SelectionRange property. You should use SelectionStart, SelectionEnd, or SetSelectionRange. + If the Start property value of the SelectionRange is greater than its End property value, the dates are swapped; the End property value becomes the starting date, and Start property value becomes the end date. + + + + + Gets or sets whether Year/Century selection is enabled when calendar is displaying single month. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Represents the container that presents single calendar month. + + + + + Initializes a new instance of the CalendarMonth class. + + + + + Called when MonthSelectionMode property has changed. + + Old property value + New property value + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the DateChanged event. + + Provides event data. + + + + Gets the DayLabel item assigned to the given date. Returns null if there is no label displayed for the date. + + Date to return label for. + DayLabel instance or null if date is not displayed on this calendar. + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Called when DayClickAutoClosePopup property has changed. + + Old property value + New property value + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets whether Year/Century selection is enabled. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets whether trailing days outside of the current displayed month are visible on calendar. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Returns the collection of sub items. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets whether multiple days can be selected by clicking each day. Default value is false. + + + + + Gets or sets whether selection of dates using mouse is enabled. Default value is true. + + + + + Gets or sets the calendar selected date. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets default text alignment for the DayLabel items representing calendar days. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets whether header navigation buttons for month and year are visible. Default value is true. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets whether clicking the day closes the parent popup if item is on popup. + + + + + Initializes a new instance of the YearSelectoControl class. + + + + + Initializes a new instance of the CenturySelectorControl class. + + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Initializes a new instance of the CenturySelectorControl class. + + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Defines the MonthCalendar and SingleMonthCalendar colors for customization. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Gets the appearance settings for the todays date. + + + + + Gets the appearance settings for selected days. + + + + + Gets the appearance settings for the trailing days on calendar. + + + + + Gets or sets the appearance settings for the labels that show week of year number. + + + + + Gets or sets the days divider line color. + + + + + Gets the appearance settings for the numeric day of month label. + + + + + Gets the appearance settings for the weekend days on calendar (Saturday and Sunday). + + + + + Gets the appearance settings for the trailing weekend days on calendar (Saturday and Sunday). + + + + + Gets the appearance settings for the labels that display day name in calendar header. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.MonthlyMarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.AnnuallyMarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.MarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.WeeklyMarkedDays property. + + + + + Gets the minimum date value of the DateTimePicker control. + + + + + Specifies the maximum date value of the DateTimePicker control. This field is read-only. + + + + + Raises the ValueChanged event. + + + + + Occurs when Value or IsEmpty property has changed. + + + + + Gets or sets the date time. + + + + + Gets or sets the values of the nested DateTimeGroup items. + + + + + Gets or sets the minimum value represented by the group. + + + + + Gets or sets maximum value represented by the group. + + + + + Gets or sets whether input values are set to defaults while user is entering data. Default value is true. + + + + + Defines the date-time selector visibility for DateTimeInput control popup. + + + + + Depending on DateTimeInput.Format property setting either date or time selector is used. + + + + + Only date selector is visible. + + + + + Only time selector is visible on popup. + + + + + Both date and time selectors are visible. + + + + + Gets or sets the amount of padding added to text. + + + + + Gets or sets the text displayed by the label. + + + + + Defines an interface for the DateTime Part interaction. + + + + + Reverts to the last input value control held. + + + + + Gets or sets the date/time part value. + + + + + Gets or sets the minimum value for the date/time part entry. + + + + + Gets or sets the maximum value for the date/time part entry. + + + + + Gets the date time part control represents. + + + + + Gets or sets whether input part is empty. + + + + + Gets or sets the day in numeric format to display. Allowed values are from -1 to 6. -1 represents an empty state. + 0 represents Sunday and 6 Represents Saturday. + + + + + Gets or sets the array of custom names for days. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets whether abbreviated day names are used for display instead of full day names. Default value is false. + + + + + Represents a label for the NumericHourInput control that shows whether time is AM or PM. + + + + + Gets or sets custom AM text used. + + + + + Gets or sets custom PM text used. + + + + + Gets or sets whether abbreviated month names are used for display instead of full month names. Default value is false. + + + + + Occurs when Value property has changed. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets whether control allows empty input state i.e. does not have an number entered. Default value is true. When control is empty + IsEmpty property returns true and control does not display number. Set to false to always force control to have number displayed. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + + + Initializes a new instance of the NumericDayInput class. + + + + + Initializes a new instance of the NumericDayOfYearInput class. + + + + + Initializes a new instance of the NumericHourInput class. + + + + + Initializes a new instance of the NumericMinuteInput class. + + + + + Initializes a new instance of the NumericMonthInput class. + + + + + Initializes a new instance of the NumericSecondInput class. + + + + + Initializes a new instance of the NumericYearInput class. + + + + + Gets or sets the year display format. Default value is four digit format. + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseDateTimeValue event. + + + + + + + Initializes a new instance of the DayLabel class. + + + + + Raises the PaintLabel event. + + Provides event data. + + + + Returns copy of the item. + + + + + Copies the DayLabel specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when the mouse pointer enters the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer leaves the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Occurs when label is rendered and it allows you to override default rendering. + + + + + Gets or sets the date represented by this label. DateTime.MinValue indicates that label is either used as textual day representation + or the week number as specified by the IsWeekOfYear property. + + + + + Gets or sets whether this label is used as the label that displays the day name. + + + + + Gets or sets whether this label is used as the week of year label. + + + + + Gets whether the label for date represents the trailing date, i.e. date that is from next or previous month for the month displayed. + + + + + Gets or sets whether mouse is over the item. + + + + + Gets or sets whether left-mouse button is pressed over the item. + + + + + Specifies the item background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets whether label appears as selected. + + + + + Gets or sets whether label provides visual indicator when mouse is over the label or pressed while over the label. Default value is true. + + + + + Gets or sets whether label is selectable. IsSelected property returns whether label is selected. Default value is true. + + + + + Gets or sets the label text color. Default value is an empty color. + + + + + Gets or sets whether text is drawn using Bold font. Default value is false. + + + + + Gets or sets the text alignment. + + + + + Gets or sets the image alignment. + + + + + Gets or sets the image displayed on the label. + + + + + Gets or sets whether flat Office 2007 style is used to render the item. Default value is false. + + + + + Gets or sets whether date represented by label is marked as todays date. + + + + + Gets or sets whether popup is displayed when mouse is pressed anywhere over the item. Default value is false which indicates + that popup is displayed only if image assigned to the item and mouse is pressed over image. + + + + + Indicates the alignment of the DayLabel part like text or image. + + + + + Provides data for DayLabel painting events. + + + + + Gets the graphics canvas for rendering. + + + + + Gets or sets which parts of the item will be drawn by the system. You can set this to None to completely disable system rendering. + + + + + Initializes a new instance of the DayPaintEventArgs class. + + Reference to Graphics canvas. + Reference to item being rendered. + + + + Renders the background of the item. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders items image. + + + + + Renders items image. + + + + + Defines delegate for DayLabel painting events. + + Source of the event. + Provides event data. + + + + Specifies the parts of DayLabel control. Members of this enum are intended to be used as flags (combined). + + + + + Specifies no part. + + + + + Specifies the label background. + + + + + Specifies the label text. + + + + + Specifies the label image. + + + + + Specifies all parts. + + + + + Indicates the hour format. + + + + + Indicates Ante Meridiem period, before the middle day. + + + + + Indicates Post Meridiem after the middle day". + + + + + Identifies the date time part. + + + + + Specifies the input fields alignment inside of the control. + + + + + Specifies the text alignment. + + + + + Specifies the format of the date time picker. + + + + + Indicates that custom format specified by CustomFormat property is used. + + + + + The DateTimePicker control displays the date/time value in the long date format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the short date format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the time format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the short time format set by the user's operating system. + + + + + Specifies the display format of the year in input control. + + + + + Specifies the visual item alignment inside the parent group. + + + + + Specifies the vertical alignment. + + + + + Describes the system button item type. System buttons are buttons created internally by controls. + + + + + Specifies the auto-change item when VisualUpDownButton control is clicked. + + + + + No item is automatically changed. + + + + + Auto-change focused item in parent group + + + + + Auto change first input item before the Up/Down button in parent group. + + + + + Specifies the keys used for navigation between input fields. + + + + + No key is used for the navigation. + + + + + Tab key is used to advance to the next input field. + + + + + Arrow keys are used to advance to the next input field. + + + + + Enter key is used to advance to the next input field. + + + + + Tab, Arrows and Enter keys are used to advance to the next input field. + + + + + Describes input button settings. + + + + + Initializes a new instance of the InputButtonSettings class. + + + + + Initializes a new instance of the InputButtonSettings class. + + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Copies properties to new instance of the item. + + New InputButtonSettings instance + + + + Gets or sets whether button is visible. + + + + + Gets or sets whether button is enabled. + + + + + Gets or sets the display position index of the button. Buttons are ordered from left to right with button with lowest index appearing as left-most button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the text displayed on the input button face. + + + + + Gets or sets the visual item button references for its action. + + + + + Gets or sets the shortcut key which when pressed triggers button click event or its default function. + + + + + Gets or sets tooltip displayed for the button when mouse hovers over it. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Defines the system colors used by the input controls. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Returns whether property should be serialized. Provided for design-time support. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Returns whether property should be serialized. Provided for design-time support. + + + + + Occurs when color has changed. + + + + + Gets or sets the background color of input item part when part has input focus. Default value is Color.Empty which indicates that system Highlight color is used. + + + + + Gets or sets the text color of input item part when part has input focus. Default value is Color.Empty which indicates that system HighlightText color is used. + + + + + Initializes a new instance of the InputValidationEventArgs class. + + Indicates current input. + + + + Defines delegate for input validation event. + + + + + + + Initializes a new instance of the VisualToggleButton class. + + + + + Raises the CheckedChanged event. + + + + + Occurs when Checked property has changed. + + + + + Gets or sets whether item is checked. + + + + + Gets whether left mouse button is pressed over the item. + + + + + Gets whether mouse is over the item. + + + + + Initializes a new instance of the LockUpdateCheckBox class. + + + + + Initializes a new instance of the MonthCalendarItem class. + + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Returns whether property should be serialized by Windows Forms desginer. + + + + + Sets the selected dates in a month calendar control to the specified date range. + + The beginning date of the selection range. + The end date of the selection range. + startDate is less than the minimum date allowable for a month calendar control.
+ -or-
+ startDate is greater than the maximum allowable date for a month calendar control.
+ -or-
+ endDate is less than the minimum date allowable for a month calendar control.
+ -or- endDate is greater than the maximum allowable date for a month calendar control.
+
+ + If the startDate value is greater than endDate property value, the dates are swapped; the endDate value becomes the starting date, and startDate value becomes the end date. + +
+ + + Applies current date selection to the control. You are usually not required to make calls to this method directly since it is automatically + done by the control when selection changes. This method returns immediately if MultiSelect + property is set to false or SelectionStart or SelectionEnd properties have DateTime.MinValue. + + + + + Returns the DayLabel at given client coordinates or null/nothing if there is no label at give location. + + X - position in client coordinates. + Y - position in client coordinates. + DayLabel at given coordinates or null/nothing. + + + + Returns the DayLabel that represents the date. + + Date to find label for. + DayLabel object or nothing if date cannot be founds. + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all monthly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all weekly marked days. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all annually marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the AnnuallyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all marked dates set through MarkedDates property. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MarkedDates collection. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Repaints the marked dates to reflect the dates set in the lists of marked dates. + Use this method to reflect the changes made to the AnnuallyMarkedDates, MonthlyMarkedDates or MarkedDates properties as well + as change to the marked Colors properties. + + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the LabelMouseDown event. + + Provides event data. + + + + Raises the LabelMouseUp event. + + Provides event data. + + + + Raises the LabelMouseEnter event. + + Provides event data. + + + + Raises the LabelMouseLeave event. + + Provides event data. + + + + Raises the LabelMouseMove event. + + Provides event data. + + + + Raises the LabelMouseHover event. + + Provides event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Gets whether property should be serialized. Provided for design-time support. + + + + + Sets the number of columns and rows of months to display. + + The number of columns. + The number of rows. + ArgumentOutOfRangeException will be raised if any value is less than zero or one value is grater than zero and other is zero. + + + + Raises the DateChanged event. + + Provides event data. + + + + Raises the DateSelected event. + + Provides event data. + + + + Reloads the localized strings for Today and Clear buttons. + + + + + Called when DayClickAutoClosePopup property has changed. + + Old property value + New property value + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Occurs when the user makes an explicit date selection using the mouse. + + + This event is similar to the DateChanged event, but it occurs at the end of a date selection made using the mouse. + The DateChanged event occurs during any date selection, whether by mouse, keyboard, or code. You should handle this event + when you enable multiple date selection through MultiSelect property and want to be notified after the date selection has been + made. DateChanged event would fire each time selection changes during the selection of multiple dates. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + + + + + Gets or sets the start date of the selected range of dates. + + + + + Gets or sets the end date of the selected range of dates. + + + + + Gets or sets the selected range of dates for a month calendar control. + + Setting this property is functionally equivalent to using the SetSelectionRange method. You can set the start and end dates separately by setting either the SelectionStart or SelectionEnd properties. You cannot change the start and end dates by setting the SelectionRange.Start or SelectionRange.End property values of the SelectionRange property. You should use SelectionStart, SelectionEnd, or SetSelectionRange. + If the Start property value of the SelectionRange is greater than its End property value, the dates are swapped; the End property value becomes the starting date, and Start property value becomes the end date. + + + + + Gets or sets whether selection of multiple dates up to the MaxSelectionCount is enabled. Default value is false which indicates that only + single day can be selected. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to mark using Colors.MonthlyMarker settings. + + + + + Gets or sets the array of DayOfWeek members that determine which days of week to mark using Colors.WeeklyMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which annual days are marked using Colors.AnnualMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are marked using Colors.DayMarker settings. + + + + + Gets or sets the first month displayed by the control. + + + + + Gets number of months displayed on the control. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Specifies the commands container background style. Commands container displays Today and Clear buttons if they are visible. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the number of columns and rows of months displayed on control. Default value is 0,0 which indicates that + calendar will display as many columns and rows as it is possible to fit into container space available. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets the calendar selected date. Note that SelectedDate property should be used only when MultiSelect property is set to false. + When multiple dates can be selected use range selection properties: SelectionStart, SelectionEnd and SelectionRange. + + + + + Gets the reference to the bottom container that parents the Today, and Clear system buttons. + + + + + Gets reference to internal Today button on calendar. + + + + + Gets or sets whether Today button displayed at the bottom of the calendar is visible. Default value is false. + + + + + Gets or sets whether Clear button displayed at the bottom of the calendar is visible. Clear button clears the currently selected date. Default value is false. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether clicking the day closes the parent popup if item is on popup. + + + + + Gets or sets whether Year/Century selection is enabled when calendar is displaying single month. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets the size available for the item currently being arranged. + + + + + Gets or sets whether mouse is over the host control. + + + + + Gets or sets system colors used by the control. + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseValue event. + + + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseValue event. + + + + + + + Gets or sets whether button automatically gets Click events repeated when mouse is kept pressed on the button. Default value is false. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets whether default button background is rendered when mouse is not over the host control. Default value is true. + + + + + Gets or sets the shortcut key which when pressed triggers button click event or its default function. + + + + + Gets or sets the button tooltip. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets or sets the fixed button height. + + + + + Gets whether mouse is over the control. + + + + + Gets whether mouse is pressed on the control. + + + + + Gets or sets the text displayed on the face of the button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Raises DecreaseValue event. + + Provides event arguments. + + + + Raises IncreaseValue event. + + Provides event arguments. + + + + Defines data for ConvertFreeTextEntry event. + + + + + Gets the string value that was entered by the user. + + + + + Gets or sets the converted ValueEntered into the control's value type. For example for IpAddressInput the value set here + must be of string type and in IP address format. For IntegerInput control the value set here must be an int type. For DateTimeInput + control value set here must be DateTime type. + If you provide ControlValue set ValueConverted=true to indicate so. + + + + + Gets or sets whether ValueEntered has been converted to ControlValue. Set to true to indicate that you have performed conversion. + + + + + Defines delegate for ConvertFreeTextEntry event. + + Source of event. + Provides event data. + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + + + Specifies trigger types for the value changed events on editor controls. + + + + + ValueChanged event is fired as soon as user types in the value. + + + + + ValueChanged event is fired after control loses input focus. + + + + + ValueChanged event is fired after control loses input focus or user presses the Enter key. + + + + Creates new instance of the class. + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the VisualItem array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents the up down button which allows change of the value in currently focused input control. + + + + + Initializes a new instance of the VisualUpDownButton class. + + + + + Raises the UpClick event. + + Provides event data. + + + + Raises the DownClick event. + + Provides event data. + + + + Occurs when Up part of the button has been clicked. + + + + + Occurs when Down part of the button has been clicked. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the default width of the buttons. + + + + + Gets or sets whether control automatically tries to increase/decrease the value of the item that has input focus in the same + parent group as the button. Default value is false. + + + + + Gets or sets the item that is automatically changed when buttons are pressed. + + + + + Statis functions for design-time support. + + + + + Summary description for DesignTimeDte. + + + + + Summary description for Display. + + + + + System item that displays the items that could not fit inside the container on popup menu or toolbar. + + + + + Create new instance of DisplayMoreItem object. + + + + + Returns copy of DisplayMoreItem item + + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Overridden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Overridden. Displays the sub-items on popup. + + Popup location. + + + + Overridden. Displays the sub-items on popup. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Displays the sub-items on popup toolbar. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Close the popup window if open. + + + + + Adds the items that are not visible to the overflow popup. + + + + + Returns the insertion index for the items removed from overflow popup. Assumes that right-most items are removed first by the layout manager. + + + + + + Removes the items from the overflow and adds them back to the parent item. + + + + + Forces the repaint the item. + + + + + Returns the fixed size of the item. + + + + + Get or sets whether item has been changed in a way that it needs its size recalculated. This is internal + property and it should not be used by your code. + + + + + Gets whether the mouse is over the item. + + + + + Represents panel that is hosted by DockContainerItem as docked control. + + + + + Represents graphical panel control with support for different visual styles and gradients. + + + + + Default constructor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies color scheme colors to the style objects. + + + + + Sets the internal mouse down flag which controls appearance of the control. You can use this method to simulate the pressed state for the panel with appropriate StyleMouseDown assigned. + + New value for the mouse down flag. + + + + Sets the mouse over internal flag that tracks whether the mouse is over the control. You can use this method to simulate the mouse over appearance when appropriate StyleMouseOver style is set. + + New value for the mouse over flag. + + + + Indicates whether CanvasColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CanvasColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets the style to it's default value. + + + + + Resets the internal mouse tracking properties that track whether mouse is over the panel and whether is mouse pressed while over the panel. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called when AntiAlias property has changed. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Updates the markup size to reflect current position of the scrollbars. You must call this method if you are scrolling control with markup using the AutoScrollPosition property. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Button color scheme to the control. + + + + + Applies predefined Label color scheme to the control. + + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets a value indicating whether right-to-left mirror placement is turned on. Default value is false. + + + + + Gets or sets Bar Color Scheme. Note that when ColorSchemeStyle property is set to Office 2007 style the color scheme is always retrived from the GlobalManager.Renderer and any\ + changes made on this property will not have any effect. + + + + + Gets or sets whether paint operations for the control are suspended. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets the text displayed on panel. + + + + + Gets or sets whether focus rectangle is displayed when control has focus. + + + + + Gets or sets the canvas color for the panel. Canvas color will be visible on areas of the control that do not get covered + by the style and it will also be used as a base color for style to be painted on. + + + + + Gets or sets the panel style. + + + + + Gets or sets the panel style when mouse hovers over the panel. + + + + + Gets or sets the panel style when mouse button is pressed on the panel. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets color scheme style. + + + + + Gets or sets a value indicating whether the container will allow the user to scroll to any controls placed outside of its visible boundaries. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets the text rectangle. This property is set by internal implementation and it should not be set by outside code. + + + + + Gets or sets whether text markup if it occupies less space than control provides uses the Style Alignment and LineAlignment properties to align the markup inside of the control. Default value is false. + + + + + Returns reference to internal vertical scroll-bar control. + + + + + Returns reference to internal horizontal scroll-bar control. + + + + + Indicates whether panel uses themed DotNetBar scrollbars. Default value is true. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Specifies back color when Enabled=false + + + + + Creates new instance of the panel. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Defines single color blend point for the multicolor gradient fills. + + + + + Creates new instance of the class. When defining multicolor gradinet blends and using the percentage positions the positions created + must start with 0f and end with 1f. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Gets or sets Color to use in multicolor gradient blend at specified position. + + + + + Gets or sets the color position in multicolor gradient blend. Values less or equal to 1 are used as percentage specifing percentages of distance along the gradient line. + Values greater than 1 are used as absolute pixel values of distance along the gradient line. + + + + + Represents Collection for the BackgroundColorBlend objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the BackgroundColorBlend array. + + Array to copy to. + + + + Creates ColorBlend object based on the members of the collection. ColorBlend object will be valid only if all members of the collection + represents relative/percentage based color blends. + + + + + + Adds the BackgroundColorBlend objects from the collection. + + Collection to copy objects from + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Solid Color + + + + Returns reference to the object in collection based on it's index. + + + + + Represents BackgroundColorBlend object converter. + + + + + Represents the cancelable event arguments with integer value. + + + + + Gets or sets the new value that will be used if event is not canceled. + + + + + Indicates the source of the event. + + + + + Defines delegate for cancelable events. + + + + + Represents the cancelable event arguments with object value. + + + + + Initializes a new instance of the CancelObjectValueEventArgs class. + + + + + + Gets or sets the data connected to this event. + + + + + Defines delegate for cancelable events. + + + + + Provides data for CheckBoxItem rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to CheckBoxItem being rendered. + + + + + ColorScheme object that is used to provide colors for rendering check box item in legacy styles like Office 2003. Office 2007 style + uses color tables provided by renderers. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Gets or sets the ItemPaintArgs reference. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to CheckBoxItem + Reference to legacy ColorScheme + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Defines the event arguments class for ColorPickerDropDown ColorPreview event. + + + + + Gets the color that is being previewed. + + + + + Gets the ColorItem if available for the color being previewed. This property can be null if there is no ColorItem connected with the color. + + + + + Creates new instance of the object. + + Color being previewed. + ColorItem connected with the color. + + + + Defines delegate for ColorPreview event. + + + + + Delegate for the CancelableEventSource event. + + + + + Represents event arguments that provide information on source of action and allow canceling of action. + + + + + Gets or sets whether event action will be canceled. + + + + + Initializes a new instance of the EventSourceArgs class. + + + + + + Initializes a new instance of the CancelableEventSourceArgs class. + + + + + + Provides data for the Navigation Pane rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the rendering bounds. + + + + + Creates new instance of the objects and initializes it with default values. + + + + + Provides data for the ProgressBarItem rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to ProgressBarItem being rendered. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to ProgressBarItem + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Provides data for the Quick Access Toolbar Customize dialog events. + + + + + Gets or sets whether to cancel the current operation. When showing the dialog this allows to cancel the showing. When dialog is closed + it allows to cancel the changes made on customize dialog. + + + + + Gets or sets the reference to the form that is acting as dialog. You can set this value to your custom form to display it instead of + built-in dialog. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the dialog being used for customization. + + + + Provides data for the Quick Access Toolbar Customize Item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the customize item being rendered. + Reference to the graphics object. + + + + Provides data for the Quick Access Toolbar Overflow item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the overflow item being rendered. + Reference to the graphics object. + + + + Provides information for ribbon customization events. + + + + + Gets or sets whether the menu popup will be cancelled. Default value is false. + + + + + Gets or sets the reference to the object customize menu will be acting on. This could be an ButtonItem or any + BaseItem derived class as well as RibbonBar object. + + + + + Gets or sets the reference to the popup menu that will be displayed. You can change the members of SubItems collection to add/remove/change + the context menu items that will be displayed. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to context object. + Reference to popup menu item if any. + + + + Provides data for the RenderMdiSystemitem event. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to MdiSystemItem being rendered. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + Reference to MdiSystemItem being rendered. + + + + Represents events arguments for the Ribbon Control rendering events. + + + + + Gets or sets Graphics control is rendered on. + + + + + Gets the reference to RibbonControl instance being rendered. + + + + + Gets whether Windows Vista Glass is enabled. + + + + + Creates new instance and initializes it with the default values. + + Reference to Graphics object + Reference to RibbonControl + + + + Gets or sets whether the closing of the ribbon menu is canceled. + + + + + Gets or sets the source object that was cause of the menu closing. For example this could be reference to an item that was clicked. + Default value is null which indicates that there is no information about the object that caused closing available. + + + Following is the possible list of types that this property could be set to + and causes for closing: + + BaseItem - when an item is clicked the Source will be set to the instance + of the item that was clicked. + RibbonControl - when parent form RibbonControl is on loses the input + focus the Source will be set to the RibbonControl + RibbonTabItem - when tab menu is displayed and user clicks the same tab + to close the menu. The RibbonTabItem with EventSource=Code will be also set as + source when user double-clicks the tab to maximize the ribbon. + Any other type if RibbonControl.PopupRibbon method is called by your + code. + + + + + + Gets or sets the source of the event. + + + + + Creates new instance of the object. + + + + + Gets or sets the reference to graphics object. + + + + + Initializes a new instance of the SideBarPanelItemRendererEventArgs class. + + + + + + + Gets or sets the reference to graphics object. + + + + + Initializes a new instance of the SideBarRendererEventArgs class. + + + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Slider item being rendered. + Reference to the graphics object. + + + + Defines the abstract class for form caption painter. + + + + + Provides data for form caption rendering events. + + + + + Gets or sets the reference to graphics object. + + + + + Gets or sets the caption bounds. + + + + + Gets or sets the form caption is rendered for. + + + + + Creates new instance of the class. + + + + + Defines the Office 2007 style form caption painter. + + + + + Gets or sets color table used by renderer. + + + + + Represents an item that provides system buttons displayed on form caption. + + + + + Summary description for MDISystemItem. + + + + + Returns copy of CustomizeItem item + + + + + Returns the single button size. + + Size of the button. + + + + MDI System Item can render itself as either Simple icon with system drop down menu or set of + system buttons Minimize, Restore and Close. This item is rendered on the Bar that is designated as + Menu bar and when bar is used on MDI form and MDI Child form is maximized. + + + + + Gets the default size of the system buttons. + + + + + + Gets or sets the custom button size to use instead of system determined size. + + + + + Gets or sets whether Minimize button is visible. + + + + + Gets or sets whether Restore/Maximize button is visible. + + + + + Gets or sets whether Close button is visible. + + + + + Gets or sets whether help button is visible. + + + + + Gets or sets whether Icon is queried when item is painted. Default value is false. + + + + + Provides data for the RenderSystemCaptionItem event. + + + + + Gets or sets Graphics control is rendered on. + + + + + Gets reference to SystemCaptionItem being rendered. + + + + + Gets whether Windows Vista Glass is enabled. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to Graphics object. + Reference to item being rendered. + Indicates whether Vista Glass effect is enabled. + + + + Represents the line drawn between start and end point. + + + + + Paints the shape on canvas. If overriden base implementation must be called to paint any child shapes. + + Shape paint information. + + + + Returns absolute location of the shape based on parent bounds. + + Parent absolute bounds. + Absolute location of the shape + + + + Returns absolute size of the shape based on the parent bounds. + + Absolute parent bounds. + Absolute size of the shape. + + + + Gets the absolute bounds of the shape. + + Parent bounds. + Absolute bounds of the shape. + + + + Gets the location of the shape. + + + + + Gets the size of the shape. + + + + + Gets the shape padding. Padding is the inside spacing between shape and it's child shapes. + + + + + Gets the collection of child shapes. + + + + + Gets or sets whether this shape will set the ShapePaintInfo.ChildContentClip property to the region that represents the inside content of the shape. + This is used when there is inside content of the shape which is not part of the shape itself and calling routine needs + access to the region that defines the shape inside bounds. + + + + + Gets the start point of the line. + + + + + Gets the end point of the line. + + + + + Gets the line border. + + + + + Describes the shape location. + + + + + Gets or sets the X location of the shape relative to it's parent. + + + + + Gets or sets the Y location of the shape relative to it's parent. + + + + + Gets or sets the relative X position. + + + + + Gets or sets the relative Y position. + + + + + Describes the relative location. + + + + + Describes the padding for the shape. Padding is the space inside the shape and between it's child shapes. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets the total horizontal padding. + + + + + Gets the total vertical padding. + + + + + Paints the border. + + + + + Paints the border. + + + + + Gets or sets the rounded corner size. + + + + + Gets the shape border. + + + + + Gets the shape fill. + + + + + Defines the shape border. + + + + + Gets or sets the border width in pixels. + + + + + Gets or sets the border color. + + + + + Gets or sets the ending gradient border color. + + + + + Gets or sets the gradient angle. Default value is 90. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Shape array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Gets or sets the starting fill color. + + + + + Gets or sets the end fill color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the background color collection blend. + + + + + Gets or sets the fill gradient type. + + + + + Paints the border. + + + + + Paints the border. + + + + + Gets the shape border. + + + + + Gets the shape fill. + + + + + Describes shape size. + + + + + Gets or sets the width of the shape. When RelativeWidth is specified then number specifed here is added to the actual shape width. + + + + + Gets or sets the height of the shape. When RelativeHeight is specified the number specified here is added to the actual shape height. + + + + + Gets or sets the relative shape width. + + + + + Gets or sets the relative shape height. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Represents the class used to create Color objects. + + + + + Creates new instance of the object. + + + + + Represents the class used to create Color objects blended based on base color. + + + + + Creates new instance of the object. + + + + + Converts integer color representation to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color value. + Reference to Color object. + + + + Converts color representation to alpha Color type. + + Color value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color value. + Reference to Color object. + + + + Defines the names for the ElementStyle.Class style classes. + + + + + Gets the key for the GalleryContainer background style class. + + + + + Gets the key for the Ribbon File menu outer container background style class. + + + + + Gets the key for the Ribbon File menu two column container background style class. + + + + + Gets the key for the Ribbon File menu first column container background style class. + + + + + Gets the key for the Ribbon File menu second column container background style class. + + + + + Gets the key for the Ribbon File menu bottom container background style class. + + + + + Gets the key for the text box border style class. + + + + + Gets the key for the RichTextBox control border style class. + + + + + Gets the key for the ItemPanel style class. + + + + + Gets the key for the ListBoxAdv style class. + + + + + Gets the key for the date time input background style class. + + + + + Gets the style key for the Ribbon client panel. + + + + + Gets the style key for the ListView control border style. + + + + + Gets the style key for the Office2007 Status Bar alternative background. + + + + + Gets the style key for the AdvTree control border and background. + + + + + Gets the style key for the AdvTree control columns header. + + + + + Gets the style key for the AdvTree control columns header for the child nodes. + + + + + Gets the style key for the AdvTree control column. + + + + + Gets the style key for the CrumbBar background style. + + + + + Gets the key for the DataGridView border style class. + + + + + Gets the key for the DataGridViewNumeric border style class. + + + + + Gets the key for the DataGridViewDateTime border style class. + + + + + Gets the key for the DataGridViewIpAddress border style class. + + + + + Gets the key for SlidePanel slide-out button style. + + + + + Gets the key for the MetroTilePanel style class. + + + + + Gets the key for Metro tile group container title class. + + + + + Gets the style key for the MonthCalendarAdv control. + + + + + Gets the style key for the ProgressSteps control. + + + + + Gets the style key for the SideNavStrip control. + + + + + Represents a static class that maintains the global rendering properties for all controls when eRenderMode is set to global. + + + + + Gets or sets the global renderer used by all controls that have RenderMode set to eRenderMode.Global. + + + + + Represents complex gradient color table. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + Linear gradient angle + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + Linear gradient angle + + + + Gets or sets the color collection blend that describes the gradient. + + + + + Gets or sets the gradient type. + + + + + Gets or sets the linear gradient angle. + + + + + Creates a copy of table. + + A copy. + + + + Represents the color table of linear gradient. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + Start color. + + + + Creates new instance of the object. + + Start color. + End color. + + + + Creates new instance of the object. + + Start color in hexadecimal representation like FFFFFF. + End color in hexadecimal representation like FFFFFF. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + End color in 32-bit RGB representation. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + End color in 32-bit RGB representation. + Gradient angle. + + + + Creates new instance of the object. + + Start color. + End color. + Gradient angle. + + + + Gets or sets the start color. + + + + + Gets or sets the end color. + + + + + Gets or sets the gradient angle. Default value is 90. + + + + + Gets whether both colors assigned are empty. + + + + + Item container for dockable windows. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + Item name. + + + + Creates new instance of ControlContainerItem and assigns item name and item text. + + Item name. + Item text. + + + + Overriden. Returns the copy of the ControlContainerItem. + + Copy of the ControlContainerItem. + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs after an item has been removed. + + Item being removed. + + + + Occurs after text has changed. + + + + + Occurs after item visual style has changed. + + + + + Occurs when container control needs to be assigned to the item. + + + + + Gets or sets the reference to the contained control. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Specifies the Tab image. Image specified here is used only on Tab when there are multiple dock containers on Bar. + + + + + Specifies the index of the Tab image if ImageList is used. Image specified here is used only on Tab when there are multiple dock containers on Bar. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Gets or sets the predefined tab color. Default value is eTabItemColor.Default which means that default color is used. + + + + + Gets or sets whether tab that dock container item is on is selected. + + + + + Gets or sets the width of the item in pixels. + + + + + Gets or sets the height of the item in pixels. + + + + + Gets or sets the minimum size of the item. When used please note that layout logic for dockable windows expects that + all DockContainerItems that are in particular docking side have exact same minimum size. When setting this property it is + best to set the same value for all DockContainerItem instances you create. + + + + + Gets or sets the default floating size of the Bar that is containing this item. + + + + + Gets or sets the minimum size of the form client area that is tried to maintain when dockable window is resized. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns whether item is in design mode or not. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets the close button behavior on the host Bar. Default value is eDockContainerClose.Inherit which means that Bar.CanHide will control whether DockContainerItem can be closed. + + + + + Specifies the behavior of the close button on host bar for the DockContainerItem. + + + + + Closing of the bar is inherited from the host bar. Bar.CanHide property will control close button visibility. + + + + + Closing of the DockContainerItem is allowed. + + + + + Closing of DockContainerItem is not allowed. + + + + + Summary description for DockingHint. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Update control region based on hint side + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent the docking information for an control. + + + + + Control dock side. + + + + + Control dock site. + + + + + Docking offset. + + + + + Docking line. + + + + + Docked control width. + + + + + Docked control height. + + + + + Control position. + + + + + Indicates whether to use outline or not + + + + + Indicates that dock site should change it's Z-Order so it maximizes the space it consumes as related to other dock sites. + + + + + Indicates that dock site should change it's Z-Order so it reduces the amount of space it consumes as related to other dock sites. + + + + + When either FullSizeDock or PartialSizeDock is set it indicates the new dock site Z-Order index. + + + + + Returns the bar that mouse is placed over. + + + + + Returns dock side the mouse is indicating user wants to dock bar at. + + + + + Gets the last relative docked to bar. + + + + + Gets the last relative docked to document id. + + + + + Returns side of last docked-to dock site. + + + + + Dock Sites are created by DotNetBar control on each edge of the + DotNetBar container control and are used for docking purposes. + If Dock Site does not contain any controls it will be invisible. + + + + + Creates new instance of DockSite object with specified dock style. + + Specifies the position and manner in which a site is docked. + + + + Creates new instance of DockSite object. + + + + + Returns reference to the DocumentDockUIManager object used for interaction with document docking engine. + + Reference to the DocumentDockUIManager object. + + + + Saves layout for bars contained by dock site. + + Parent XmlElement. + + + + Loads layout for the bars. + + Parent XmlElement that was passed to SaveLayout method to save layout + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Docks the bar to the dock site. + + Bar to dock. + + + + Dockes the Bar to dock site at specified position. + + Bar to dock. + Bar insert position. + + + + Relayouts all docked controls in the site. + + + + + Returns the docking information for current position. + + Controls docking provider. + Horizontal assumed docking position. + Vertical assumed docking position. + Docking information. + + + + + Undocks the control from the site. + + Control to undock. + + + + Gets or sets whether painting is disabled on dock site while layout of bars is performed. Default value is true. + You might need to set this property to false if you are expirience vide flashing while using DirectX video animation in Bar controls that are part of the + dock site. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the target gradient background color. + + + + + Gets or sets gradient fill angle. + + + + + Specifies the position and manner in which a site is docked. + + + + + Gets the reference to the DotNetBarManager that uses this dock site. + + + + + Represents class that is a bar container for document docking. + + + + + Represents Document container base class. + + + + + Creates new instance of the class. + + + + + Resizes the document within specified bounds. + + Area available for the document. + + + + Sets the display bounds. + + New display bounds. + + + + Sets layout bounds. + + New layout bounds. + + + + Resets the layout bounds for the document base container to the empty bounds. + + + + + Resets the layout bounds for the document base container to the empty bounds. + + + + + Sets the parent document. + + Parent container. + + + + Sets the width of the document. + + Width in pixels + + + + Sets the height of the document. + + Height in pixels. + + + + Occurs when width is being set on child document. + + Reference document being changed + Width in pixels + True if width was applied by parent otherwise false + + + + Occurs when height is being set on child document. + + Reference document being changed + Height in pixels + True if width was applied by parent otherwise false + + + + Updates bounds of the item in response to the scrolling of LayoutControl. + + + + + + + Gets the unique ID for the container. + + + + + Returns actual display bounds of the document. + + + + + Returns layout bounds of the document. Layout bounds are proposed bounds of the layout and might not be the same + as DisplayBounds. + + + + + Gets the parent container. + + + + + Gets whether document is visible or not. + + + + + Gets minimum size of the document. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with the Bar object. + + Bar to contain on document. + + + + Creates new instance of the class and initializes it with the bar and propesed width and height. + + Bar to contain on document. + Proposed width of the document in pixels + Proposed height of the document in pixels + + + + Resizes document object. + + Available bounds for the document. + + + + Gets or sets the bar that is contained by this document. + + + + + Gets whether document is visible. + + + + + Gets the minimum size of the document. + + + + + Represents DocumentBarContainer converter. + + + + + Creates new instance of the class. + + + + + Checks whether conversion can be made to specified type. + + Context Information. + Destination type. + + + + + Converts object to specified type. + + Context information. + Culture information. + Object to convert. + Destination type. + Object converted to destination type. + + + + Collection of DocumentBaseContainer objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of documents to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the DocumentBaseContainer array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents Dock container with either horizontal or vertical layout. + + + + + Creates new instance of the object and initializes it with specified values. + + Array of documents to host in this container. + Container orientation + + + + Creates new instance of the object. + + + + + Resizes the object inside of the given bounds. + + Available area. + + + + Occurs when width is being set on child document. + + Reference document being changed + Width in pixels + True if width was applied by parent otherwise false + + + + Occurs when height is being set on child document. + + Reference document being changed + Height in pixels + True if width was applied by parent otherwise false + + + + Returns the DocumentBarContainer object for a given bar. + + Bar to search for. + Reference to container or null if bar could not be found + + + + Gets whether document is visible or not. + + + + + Gets the orientation of the container. Default value is Horizontal. + + + + + Returns collection of the documents hosted by this container. + + + + + Returns minimum size of the object. + + + + + Gets or sets splitter size in pixels between the documents docking inside the container. Default value is 3. + + + + + Gets or sets whether the size of the documents is recorded once the layout is calculated. + + + + + Indicates whether the container is allowed to exceed the parent control client size due to inner child windows minimum size constraints. + + + + + Represents DocumentDockContainer object converter. + + + + + Represents class that manages document docking UI interaction. + + + + + + Returns DocumentBaseContainer that holds the reference bar. + + Bar to return document container for. + Returns null if document container cannot be found or reference to the document container. + + + + Docks specified bar by appending it to the container. Bar will be added according to the container's orientation. + + Bar to dock. + + + + Docks specified bar by appending it to the container. Bar will be added according to the container's orientation. + + Bar to dock. + Side to dock bar at. + + + + Adjusts the size of the dock container if needed after a bar has been docked to it. + + Bar object that has been docked. + Indicates that bar was already docked but its Visible property has changed + + + + Processes OnMouseMove events from DockSite. This routine assumes that mouse messages are received only when mouse is actually over + the dock site and not containing bars. This is significant because it will receive messages only if mouse is over the splitter + space between bars. + + Mouse event arguments. + + + + Returns reference to the DocumentDockContainer that contains specified coordinates. Searches through the Documents collection first. + + X coordinate + Y coordinate + + + + + Sets the width of the bar that is managed by this document layout. Width can be set only if parent container has + Horizontal orientation. Note that bar minimum size is respected by this method and + it will be enforced. If width is less than minimum width bar's width will be set to minimum width. + + Reference to bar object. + Desired width. + + + + Sets the height of the bar that is managed by this document layout. Height can be set only if parent container has + vertical orientation. Note that bar minimum size is respected by this method and + it will be enforced. If height is less than minimum height bar's height will be set to minimum height. + + Reference to bar object. + Desired height. + + + + Gets or sets the root document dock container object. + + + + + Gets or sets the splitter width used for mouse hit-testing. + + + + + Gets or sets the container of the document. + + + + + Gets whether document/bar is being resized. + + + + + Represent the menu, toolbar and popup menu structure for the form. + + + + + Raises BarStateChanged event. + + Provides event arguments. + + + + Creates new instance of DotNetBarManager. + + + + + Creates new instance of DotNetBarManager. + + Container. + + + + Dock bar to the specified side of the form. + + Bar to dock. + Side to dock bar to. + + + + Docks the bar to the specified side of the reference bar. + + Bar to dock. + Reference bar. + Side of the reference bar to dock the bar to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Side to dock item to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Reference bar. + Side to dock item to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Reference bar. + Side to dock item to. + + + + Tear-off specified DockContainerItem and float it. + + Item to float. + + + + Tear-off specified DockContainerItem and float it. + + Item to float. + + + + Make specified bar floating bar, i.e. undock it and place in floating window. + + Bar to float. + + + + Make specified bar floating bar, i.e. undock it and place in floating window and specified location on the screen. + + Bar to float. + Screen coordinates for the floating bar. + + + + Raises the ActiveDockContainerChanged event. + + Provides event arguments. + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the Bar object that contains the item. + + + + + Clean up any resources being used. + + + + + Returns whether property should be serialized by Windows Forms designer. + + + + + Use to remove bar from DotNetBar control. Bar will be undocked if it is docked and + removed from all internal collections. + + Bar to remove. + + + + Forces the loading of the definition specified in DefinitionName property. + By default definition is loaded after parent form handle has been created and form is loaded. + However, under certain circumstances you might need DotNetBar to load definition right away so + you can access bars and items. We recommend moving the code to Form Load event and leaving the loading process for DotNetBar definition as is. + + + + + Loads DotNetBar definition from file. + + File that contains DotNetBar defintion. + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Saves current DotNetBar definition and state to the file. + + File name. + + + + Loads DotNetBar layout from file. + + File that contains DotNetBar defintion. + + + + Saves current DotNetBar layout to the file. + + File name. + + + + Invokes the DotNetBar Customize dialog. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name. This method search for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searched, then Items collection and then ContextMenus collection. + + Item name to look for. + Specifies that search will be performed through all DotNetBar collections. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This method will searchs for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Item type to look for. + Specifies that full search (through all collections) will be performed. + + + + + Returns the collection of items with the specified name and type. This method will searchs for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Item type to look for. + Specifies that full search (through all collections) will be performed. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Returns the first item that matches specified name with the option to indicate full search of all collections. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Specifies that all collection will be searched. + + + + + Called before modal dialog is displayed using ShowModal() method. + + + + + Called after modal dialog is closed. + + + + + You must call this procedure if you are implementing custom customize dialog box after your dialog box is closed. + + + + + Registers popup item with DotNetBar. Use this function carefully. The registration is required only if Popup item is created completely from code and it is not added to any DotNetBarManager collection. + + + + + + Un-registers specified popup. See RegisterPopup for more information. + + + + + + Resets the ColorScheme property to its default value. + + + + + Informs the DotNetBarManager that Mdi Child for has been activated. Calling this method is needed only under special + conditions where MDI child system items do not show. + + + + + Resets all usage data collected by DotNetBar in relation to the Personalized menus. + + + + + Occurs after bar registered with DotNetBarManager state has changed, like selected dock tab has changed, bar has closed, bar has been docked or undocked etc. + + + + + Occurs when focused (active) DockContainerItem has changed. You can use ActiveDockContainerItem property to get reference to currently focused DockContainerItem. + + + + + Occurs just before customize popup menu is shown. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when Bar is docked. + + + + + Occurs when Bar is Undocked. + + + + + Occurs before dock tab is displayed. + + + + + Occurs when Bar auto-hide state has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when users wants to reset the DotNetBar to default state. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Occurs when Customize Dialog is about to be shown. + + + + + Occurs when Customize Dialog is closed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs when current Dock tab has changed. + + + + + Occurs when Bar is about to be closed as a result of user clicking the Close button on the bar. + + + + + Occurs when Bar in auto-hide state is about to be displayed. + + + + + Occurs when user starts to drag the item when customize dialog is open. + + + + + Occurs when users Tears-off the Tab from the Bar and new Bar is created as result of that action. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel the change. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs on dockable bars when end-user attempts to close the individual DockContainerItem objects using system buttons on dock tab. + Event can be canceled by setting the Cancel property of event arguments to true. This even will occur only after user presses the + X button on tab that is displaying the dockable windows/documents. + + + + + Occurs on dockable bars after DockContainerItem is closed. This action cannot be cancelled. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Occurs when TextBoxItem input text has changed. + + + + + Occurs when color on ColorPickerDropDown is choosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when Checked property of an button has changed. + + + + + Gets or sets docking splitter size. + + + + + Indicates whether Ctrl+Tab keys cycles the currently selected dock tab. + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets the form DotNetBarManager is attached to. + + + + + Gets or sets the user control DotNetBarManager is parented to when on user control and providing popups only. + + + + + Gets currently focused (active) DockContainerItem. Note that only if DockContainer Item has input focus it will be consider active + so there can only be one active DockContainerItem at a time. + + + + + Gets whether component has been disposed. + + + + + Disposed will return true after Dispose method has been executed. + + + + + Gets or sets whether GC.Collect() is called when this component is disposed. + + + + + Gets or sets the minimum client size that docking windows will try to maintain for the client area (not occupied by dock windows). + Note that this value is suggested value and cannot be observed when form is resized below the minimum size required for the given layout. + Default value is 48x48 pixels. + + + + + Indicates whether DotNetBar provides docking hints for easy docking of bars. + + + + + Gets or sets whether user can control how first bar is docked when using docking hints (default value is True). When enabled (default value) placing the mouse over the middle + docking hint will dock the bar at partial size and using the far docking hint will dock bar at full size. Full size indicates that dock site which hosts the bar + consumes all the space of the parent form while partial size indicates that dock site consumes the full size minus the space of the other dock sites. Default value is true. + + + + + Gets or sets whether uniform styling is applied to bars docked as documents. Default value is true which means + that bar that will be docked as document will have it's style changed so it fits in default document styling. + Such bars will have GrabHandleStyle=None, DockTabAlignment=Top and AlwaysDisplayDockTab=true. + Set this property to false to have bars keep these properties once they are docked as documents. + Value of these properties will be returned back to the default values once bar is not docked as document. + + + + + Gets the collection of the Bar objects associated with DotNetBarManager. + + + + + Gets whether definition is loaded. + + + + + Gets the collection of all items that are used for end-user design-time customization. + + + + + Gets the collection of all popup menus managed by DotNetBarManager. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets the collection of shortcut keys that are automatically dispatched to the control that has focus even if they are handled and used by one of the items. This gives you fine control over which shortcuts are passed through the system and which ones are marked as handled by DotNetBar. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Suspends the bar layout for all bars. + + + + + Specifes whether drop shadow is displayed for Menus and pop-up Bars. OfficeXP Style only. + + + + + Specifes whether to use Alpha-Blending shadows for pop-up items if supported by target OS. Disabling Alpha-Blended shadows can improve performance. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Returns whether definition is being currently loaded. + + + + + Gets or sets whether document bars are saved in definition file. Default value is false which means that document + bars are not saved as part of definition file. You can set this value to true to save document bar to definition file and + be able to load them. + + + Note that by default Document bars that you created during design-time get member + variables assigned to them by Windows Forms designer. If you decide to save definition + of such bars and load definition back member variables will not point to correct bar + instances since loading definition recreates all bars from scratch. You should always + use Bars collection to access bars when saving and loading definitions. + + + + + Gets or sets the DotNetBar definition string. + + + + + Gets or sets the DotNetBar layout string. + + + + + Gets whether DotNetBarManager is loading layout. + + + + + Specifies that custom customize dialog will be used. Use EnterCustomize event to show your custom dialog box. + + + + + Gets or sets the toolbar Top dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Bottom dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Left dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Right dock site used by DotNetBarManager. + + + + + Gets or sets the Top dock site used by DotNetBarManager. + + + + + Gets or sets the Bottom dock site used by DotNetBarManager. + + + + + Gets or sets the Left dock site used by DotNetBarManager. + + + + + Gets or sets the Right dock site used by DotNetBarManager. + + + + + Gets or sets the Fill dock site used by DotNetBarManager. Fill dock site is most commonly used as dock site + for document type docking. + + + + + Specifies whether bars are drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Sets the style of all items in DotNetBar Manager. + + + + + Gets or sets Color scheme for all bars. Note that you need to set UseGlobalColorScheme to true to indicate + that this ColorScheme object will be used on all bars managed by this instance of DotNetBarManager. + + + + + Gets or sets whether ColorScheme object on DotNetBarManager is used as a default ColorScheme for all bars managed by DotNetBarManager. + Default value is false which indicates that ColorScheme on each Bar is used. + When set to true each bar will use the ColorScheme settings from DotNetBarManager and it will ignore any + setting on the Bar.ColorScheme object. + + + + + Indicates whether the Personalized menu setting is ignored and full menus are always shown. + + + + + Gets or sets whether accelerator letters for menu or toolbar commands are underlined regardless of + current Windows settings. Accelerator keys allow easy access to menu commands by using + Alt + choosen key (letter). Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Returns whether theme support is enabled on the OS that supports themes like Windows XP. + + + + + Indicates whether the CustomizeItem (allows toolbar customization) is added for new Bars end users are creating. + + + + + Gets or sets whether DotNetBar ignores the F10 key which when pressed sets the focus to menu bar + + + + + Indicates whether the items that are not recenly used are shown after mouse hovers over the expand button. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Specifies the pop-up animation style. + + + + + Specifies whether the MDI system buttons are displayed in menu bar when MDI Child window is maximized. + + + + + Gets or sets whether MDI Child form System Menu is hidden. System menu is displayed in MDI form menu area when form is maximized. Default value is false. + + + + + Gets or sets whether customize context menu is shown on all bars or dock sites. + + + + + Gets or sets whether parent form is activated when dock window layout is loaded. + + + + + Represents delegate for ContextMenu events. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Defines the delegate for DockTabChange event + + + + + Defines the delegate for BarClosing event + + + + + Defines the delegate for BarAutoHideDisplay event + + + + + Represents the method that will handle the LocalizeString event. + + + + + Gets or sets the display rectangle for popup auto-hide bar. + + + + + Event arguments for LocalizeString event. + + + + + Indicates that event has been handled and that LocalizedValue should be used. + + + + + Indicates the string key for the text that needs to be localized. + + + + + Indicates the localized text value. If you are performing custom string localization + you need to set this value to the translated text for current locale and you need to set + Handled property to true. + + + + + Default constructor. + + + + + Event arguments for EndUserCustomize event. + + + + + Indicates the customize action that user executed. + + + + + Default constructor. + + Indicates action user executed. + + + + Initializes a new instance of the EndUserCustomizeEventArgs class. + + + + + + + Gets any action data, might be null/nothing. + + + + + Delegate for EndUserCustomize event. + + + + + Defines delegate for ActiveDockContainerChanged event. + + + + + + + Provides event arguments for ActiveDockContainerChanged event. + + + + + Gets the DockContainerItem that has been activate or deactivated. + + + + + Initializes a new instance of the ActiveDockContainerChangedEventArgs class. + + + + + + Summary description for DotNetBarResourcesAttribute. + + + + + Summary description for DotNetBarStreamer. + + + + + Represents class that can serialize compatible marked properties. + + + + + XML element is expected to be something like Image data Base64 encoded + + Image data + + + + + Represents visual style of an User Interface Element. + + + + Creates new instance of the class. + + + + Initializes a new instance of the ElementStyle class. + + + + + Creates new instance of the class. + + + Creates new instance of the class. + + + Creates new instance of the class. + + + + Indicates whether BackgroundColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BackgroundColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundImage to it's default value null (VB Nothing). Used by windows forms designer design-time support. + + + + + Indicates whether TextColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether TextShadowColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether TextShadowOffset should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextShadowOffset to it's default value. Used by windows forms designer design-time support. + + + + + Sets size of the element style. + + Indicates new size. + + + + Indicates whether BorderColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColor3 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColorLight should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColorLight2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Releases all resources used in this control. After calling Dispose() + object is not in valid state and cannot be recovered to the valid state. + Recreation of the object is required. + + + + + Applies a "child/inherited" style text and box properties but not any background or border properties to this style. + Use this method to create style hierarchies. + + Style to apply to this style + + + + + Applies a "child/inherited" style to this style. Use this method to create style + hierarchies. + + + This method is used to support style hierarchies where a base style is defined + and inherited/child styles are derived and based on it. By using this method on the + base style you can apply only style changes defined by the child style. For example if + you defined a base style for normal user interface element then in most cases you do + not want to redefine the styling for the case when same user interface element is + selected. You will just defined the behavior of the selected state and then apply it to + the base normal style using ApplyStyle method. + + Style to apply to current style. + + + + Makes an exact copy of the style. + + New copy of ElementStyle object. + + + + Reset all style properties to default values. + + + + Returns default style for the Cell object. + + Reference to the default style for the Node. Cell style is based on the given + node style. + + + + Returns default style for disabled cells. + Returns new instance of ElementStyle object. + + + Returns default style for the selected cell object. + New instance of the ElementStyle object. + + + + Sets Alpha value for all colors defined by style to specified value. + + Style to change. + Alpha value for the colors. + + + + Returns reference to ColorScheme object used by this style. + + Instance of ColorScheme object or null if object could not be obtained. + + + + Occurs when appearance property of the style has changed. + + + + + Occurs when component is Disposed. + + + + + Gets the collection that defines the multicolor gradient background. + + + + + Gets or sets the background color for UI element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color. Setting + this property overrides the setting of the corresponding BackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor property. + + + + + Gets or sets the target gradient background color for UI element. + + + + + Gets or sets the color scheme color that is used as target gradient background color. Setting + this property overrides the setting of the corresponding BackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor2 property. + + + + + Gets or sets the background gradient angle. + + + + + Gets or sets the background gradient fill type. Default value is Linear. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the text color displayed in this UI element. + + + + + Gets or sets the color scheme color that is used as text color. Setting + this property overrides the setting of the corresponding TextColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through TextColor property. + + + + + Gets or sets the text shadow color. + + + + + Gets or sets the color scheme color that is used as text shadow color. Setting + this property overrides the setting of the corresponding TextShadowColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through TextColor property. + + + + + Indicates text shadow offset in pixels + + + + + Gets or sets the Font used to draw this the text. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Gets the total horizontal margin (Left + Right) + + + + + Gets the total vertical margin (Top + Bottom) + + + + + Gets or sets the left margin. + + + + + Gets or sets the right margin. + + + + + Gets or sets the top margin. + + + + + Gets or sets the bottom margin. + + + + + Gets or sets whether any style property has changed which could influence the size of the style. + + + + + Gets the calcuated size of the element style. + + + + + Gets or sets the border type for all sides of the element. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets the border type for top side of the element. + + + + + Gets or sets the border type for bottom side of the element. + + + + + Gets or sets the border type for left side of the element. + + + + + Gets or sets the border type for right side of the element. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets the border color for all sides. Specifing the color for the side will override this value. + + + + + Gets or sets the color scheme color that is used as border color. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the target background gradient color for border on all sides. Specifing the color for the side will override this value. Gradient border colors + be employed only when per side border color is not specified. + + + + + Gets or sets the color scheme color that is used as taget gradient border color. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the border gradient angle. Default value is 90. + + + + + Gets or sets the color for light border part when etched border is used. + + + + + Gets or sets the color scheme color that is used as border light color for etched border style. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the target background gradient color for border on all sides. Specifing the color for the side will override this value. Gradient border colors + be employed only when per side border color is not specified. + + + + + Gets or sets the color scheme color that is used as taget gradient border light color for etched border style. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the light border gradient angle. Default value is 90. + + + + + Gets or sets the background color for the left side border. + + + + + Gets or sets the color scheme color that is used as left border color. Setting + this property overrides the setting of the corresponding BorderLeftColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderLeftColor property. + + + + + Gets or sets the background color for the right side border. + + + + + Gets or sets the color scheme color that is used as right border color. Setting + this property overrides the setting of the corresponding BorderRightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderRightColor property. + + + + + Gets or sets the background color for the top side border. + + + + + Gets or sets the color scheme color that is used as top border color. Setting + this property overrides the setting of the corresponding BorderTopColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderTopColor property. + + + + + Gets or sets the background color for the bottom side border. + + + + + Gets or sets the color scheme color that is used as bottom border color. Setting + this property overrides the setting of the corresponding BorderBottomColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderBottomColor property. + + + + + Gets the total horizontal padding (Left + Right) + + + + + Gets the total vertical padding (Top + Bottom) + + + + + Gets or sets the padding space in pixels for all 4 sides of the box. + + + + + Gets or sets the amount of space to insert between the top border of the element and the content. + + + + + Gets or sets the amount of space to insert between the bottom border of the element and the content. + + + + + Gets or sets the amount of space to insert between the left border of the element and the content. + + + + + Gets or sets the amount of space to insert between the right border of the element and the content. + + + + + Gets or sets the name of the style. + + + + + Gets or sets the class style belongs to. The Class styles are used to apply predefined values to the styles that belong to the same class. + This feature is used to manage color schemes/tables per class style. + + + + + Gets or sets the description of the style. + + + + + Gets or sets the Site associated with this component. Used by Windows forms designer. + + + + + Gets or sets the maximum height of the element. This property should be used in + conjunction with the WordWrap property to limit the size of + text bounding box. + + Default value is 0 which indicates that height of the style is unlimited. + + + + Returns System.Drawing.StringFormat constructed from current style settings. + + + + + Gets or sets a value indicating whether the control interprets an ampersand character (&) in the control's Text property to be an access key prefix character. Default value is false. + + + + + Indicates whether control hides the underlines of the letter prefixed by ampersand character when UseMnemonic=true + + + + + Returns eTextFormat constructed from current style settings. + + + + + Gets or sets the border corner type for all 4 sides. Default corner type is Square. + + + + + Gets or sets the border corner type for top left corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for top right corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for bottom left corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for bottom right corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets whether to paint left border for the style. + + + + + Gets whether to paint right border for the style. + + + + + Gets whether to paint top border for the style. + + + + + Gets whether to paint bottom border for the style. + + + + + Gets whether to paint any border for the style. + + + + + Gets whether to paint any border for the style. + + + + + Gets whether custom has any of properties changed. + + + + + Gets or sets whether ElementStyle is in design mode. + + + + + Gets or sets the maximum width of the element. This property should be used in + conjunction with the WordWrap property to limit the size of + text bounding box. + + Default value is 0 which indicates that width of the style is not limited. + + + + Gets or sets the reference to the parent collection. + + + + + Gets or sets the tree control style is assigned to. + + + + + Specifies the type of the gradient fill. + + + + + Represents linear gradient fill. + + + + + Represents radial gradient fill. + + + + + Paints the ElementStyle + + + + Creates new instance of the object. + + + + Paints text for given style. + + Display information. + Text to paint. + Default font if no font by style is specified. + + + + + Returns new Region object for given ElementStyle. + New instance of Region object. + Information to describe ElementStyle. + + + + Returns the clipping for the content of the element style. + + + + + + + Paints the element style on the canvas. + + Holds information necessary to paint style on canvas. + + + + Paint style border. + + Style display information. + + + + Paints style background. + + Style display information. + + + + Paints style background. + + Style display information. + + + + Paints style background image. + + Style display information. + + + + Returns background rectangle for given style by taking in account margins. + + Reference to style object. + Style bounds + Background rectangle. + + + + Returns GraphicsPath for given style. + + Reference to style. + Style bounds. + New instance of GraphicsPath + + + + Returns GraphicsPath for given style. + + Reference to style. + Style bounds. + New instance of GraphicsPath + + + + Initializes a new instance of the BorderDrawInfo structure. + + + + + + + + + + Represents information necessary to paint the style on canvas. + + + + Reference to ElementStyle object. + + + Reference to Graphics object. + + + ElementStyle bounds. + + + Get or sets whether layout is right-to-left. + + + + Gets or sets whether bottom and right border is "twisted" giving beveled look when double border is used. + + + + Creates new instance of the object. + + + Creates new instance of the object and initializes it with default values. + Style to initialize object with. + Graphics object to initialize object with. + Bounds to initialize object with. + + + Creates new instance of the object and initializes it with default values. + Style to initialize object with. + Graphics object to initialize object with. + Bounds to initialize object with. + + + + Specifies part of the background path. + + + + + Indicates complete background path + + + + + Indicates Top half of background path + + + + + Indicates Bottom half of background path + + + + + Represents the layout for the element style. + + + + + Calculates size of an style element. + + Style to calculate size for. + Default font that will be used by style if style does not uses it's own font. + Size of the style element. At this time only Height member will be calculated. + + + + Returns the total white space for a style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for + + + + + Returns the total white space for a style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for left side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for left side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for right side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for right side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns amount of spacing for specified style parts. + + Style to calculate spacing for. + Part of the style spacing is calculated for. Values can be combined. + Side of the style to use for calculation. + + + + + Gets inner rectangle taking in account style padding, margins and border. + + + + + Specifies the appearance of a item. + + + + + Specifies the CrumbBar control style. + + + + + Specifies the Bar state. + + + + + Specifies the Bar grab handle style. + + + + + Specifies the Orientation of the item within container. + + + + + Specifies the design-marker orientation for the item. + + + + + Specifies the supported orientations by the item. + + + + + Specifies the docked Bar border type. + + + + + Specifes vertical alignment. + + + + + Specifies item alignment. + + + + + Specifies the popup type. + + + + + Specifies the dock side. + + + + + Specifies the item shortcut. + + + + + Specifies the item menu visibility. + + + + + Specifies the item behavior personalized menus. + + + + + Specifies the popup animation. + + + + + Specifies ButtonItem style. + + + + + Specifies the image position. + + + + + Specifies the hot tracking style for buttons. + + + + + Specifies the menu drop shadow. + + + + + Specifies the image size for the items on the Bar. + + + + + Specifies button image list selection. + + + + + Indicates that image is stretched to fill the container space. + + + + + Image is centered inside of container space. + + + + + Image is tiled to fill container space. + + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + + Image is drawn on the left side in the middle of the container space. + + + + + Image is drawn on the right side in the middle of the container space. + + + + + Specifies the sides of a rectangle to apply a border to. + + + + + No Border. + + + + + Border on the Left edge. + + + + + Border on the Right edge. + + + + + Border on the Top edge. + + + + + Border on the Bottom edge. + + + + + Border on all 4 sides. + + + + + Specifies appearance type of the Side Bar control. + + + + + Traditional Side Bar appearance with 3D panels. + + + + + Improved Flat Side Bar appearance with extended appearance options. + + + + + Specifies predefined side bar color scheme. + + + + + Specifies the side popup is displayed in relation to it's parent. + + + + + Indicates layout type used for items within side bar panel. + + + + + Default layout all items arranged in one column. + + + + + Items arranged in multiple columns determined by the width of the panel. + + + + + Indicates color scheme assigned to the tab item. + + + + + Indicates the action end user took during toolbar/menubar customization. + + + + + User has changed the visibility of the bar. + + + + + Indicates that item visibility has changed i.e. it's visible property. + + + + + Indicates that an item has been moved to different location. + + + + + Indicates that an item has been removed from the bar. + + + + + Indicates that item's text has been changed. + + + + + Indicates that style of the button i.e. ButtonStyle property has changed. + + + + + Indicates that item's BeginGroup property has changed. + + + + + Indicates that user has created a new bar. + + + + + Indicates that user has renamed the bar i.e. changed it's Text property. + + + + + Indicates that user has deleted the bar. + + + + + Specifies the type of the layout for tabs. + + + + + Tabs are auto-sized to fit the width of the container. + + + + + Tab's width is calculated based on the image and text and navigation box is displayed + when tabs cannot fit the container. + + + + + Tab are wrapping on multiple lines based on the width and navigation box is displayed. + + + + + Tab are wrapping on multiple lines based on the width and NO navigation box is displayed. + + + + + Indicates the corner type. + + + + + Inherits setting if applies. + + + + + Specifies square corner. + + + + + Specifies rounded corner. + + + + + Specifies diagonal corner. + + + + + Specifies the action that raised a event + + + + + The event was caused by a keystroke. + + + + + The event was caused by a mouse operation. + + + + + The event is caused programmatically from user code. + + + + + Specifies the button alignment inside of the BubbleBar. + + + + + Buttons are aligned to the top and arranged horizontally. + + + + + Buttons are aligned to the bottom and arranged horizontally. + + + + Specifies the way background image is displayed on background. + + + Image is stretched to fill the background + + + Image is centered inside the background + + + Image is tiled inside the background + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + + Imaged is centered and fills the control but aspect ratio is unchanged. + + + + + Specifies the border type for style element. + + + + Indicates no border + + + Border is a solid line + + + Border is a solid dash line + + + Border is solid dash-dot line + + + Border is solid dash-dot-dot line + + + Border consists of dots + + + Border consists light and dark part creating an etched effect + + + Border consists dark and light part. Light part is the inside border. + + + + Specifies the alignment of a text string relative to its element's rectangle. + + + + + Specifies the text be aligned near from the origin position of the element's rectangle. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right. + + + + + Specifies that text is aligned in the center of the element's rectangle. + + + + + Specifies that text is aligned far from the origin position of the element's rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left. + + + + + Specifies how to trim characters from a text that does not completely fit into a element's shape. + + + + + Specifies that the text is trimmed to the nearest character. + + + + + Specifies that the text is trimmed to the nearest character, and an ellipsis is inserted at the end of a trimmed line. + + + + + The center is removed from trimmed lines and replaced by an ellipsis. The algorithm keeps as much of the last slash-delimited segment of the line as possible. + + + + + Specifies that text is trimmed to the nearest word, and an ellipsis is inserted at the end of a trimmed line. + + + + + Specifies no trimming. + + + + + Specifies that text is trimmed to the nearest word. + + + + + Specifies the alignment of buttons in title bar. + + + + + Buttons are left aligned. + + + + + Buttons are right aligned. + + + + + Indicates white-space part of the style. + + + + + Represents style padding. + + + + + Represents style border. + + + + + Represents style margin. + + + + + Indicates the style side. + + + + + Specifies left side of the style. + + + + + Specifies right side of the style. + + + + + Specifies top side of the style. + + + + + Specifies bottom side of the style. + + + + + Specifies the button state. + + + + + Button is in it's default state. + + + + + Button is disabled + + + + + Mouse is over the button + + + + + Left mouse button is pressed + + + + + Right mouse button is pressed + + + + + Button is hidden. + + + + + Indicates predefined color scheme assigned to super tooltip. + + + + + Specifies predefined color assigned to ribbon items. + + + + + Specifies predefined color assigned to ribbon tab groups. + + + + + Specifies the state of the Wizard button. + + + + + Specifies the button that caused the wizard page change. + + + + + Page change was started using Wizard Back button. + + + + + Page change was started using Wizard Next button. + + + + + Page change was started from code. + + + + + Specifies wizard button that is clicked when the user presses the ENTER key. + + + + + If finish button is enabled and visible it will be clicked otherwise click next button + + + + + Click finish button + + + + + Click next button + + + + + No button will be clicked + + + + + Specifies wizard button that is clicked when the user presses the Escape key. + + + + + Cancel button will be clicked + + + + + No button will be clicked + + + + + Specifies border around ColorItem. + + + + + No Border. + + + + + Border on the Left edge. + + + + + Border on the Right edge. + + + + + Border on the Top edge. + + + + + Border on the Bottom edge. + + + + + Border on all 4 sides. + + + + + Specifies the line alignment of the items inside of the container. + + + + + Items are aligned to the top. + + + + + Items are aligned to the middle point of the line. + + + + + Items are aligned to the bottom. + + + + + Specifies the alignment of the items inside of the container in horizontal layout. + + + + + Items are left aligned. + + + + + Items are centered. + + + + + Items are right aligned. + + + + + Specifies the alignment of the items inside of the container in vertical layout. + + + + + Items are top aligned. + + + + + Items are in the middle. + + + + + Items are Bottom aligned. + + + + + Specifies the rendering mode used by a user interface element. + + + + + Indicates that rendering on user interface element instance set through Renderer property is used. + + + + + Indicates that global application wide renderer is used as specified by GlobalManager.Renderer property. + + + + + Indicates that custom rendered will be used for an user interface element. Renderer property must be set when using this value to the renderer + that will be used. + + + + + Specifies the predefined color table for button. + + + + + Specifies the color table used to render ProgressBarItem in Office 2007 style. + + + + + Indicates default Normal color table, usually green. + + + + + Indicates Pause state color table, usually yellow. + + + + + Indicates Error state color table, usually red. + + + + + Specifies the position of ribbon title. + + + + + Title is positioned on the top of the ribbon. + + + + + Title is positioned on the bottom of the ribbon. + + + + + Specifies text alignment on the button. + + + + + Specifies the left aligned text. + + + + + Specifies the center aligned text. + + + + + Specifies the right aligned text. + + + + + Specifies the position of the tab close button. + + + + + Close button is on the left side of the tab. + + + + + Close button is on the right side of the tab. + + + + + Describes the bar type. + + + + + Indicates that bar is toolbar. + + + + + Indicates that bar is menu bar. + + + + + Indicates that bar is status bar. + + + + + Indicates that bar is dock window. + + + + + Describes the categorization mode used to categorize items on the Customize Ribbon dialog. + + + + + Items are automatically categorized by the ribbon bar they appear on. + + + + + Items are categorized by the Category property on each item. Category property should be set on each item. + + + + + Describes the check-box item appearance style + + + + + Standard check-box style. + + + + + Radio button style. Only one button can be selected/checked in given container. + + + + + Indicates the position of the check box sign related to the text for CheckBoxItem. + + + + + Check box sign is positioned on the left side of the text. + + + + + Check box sign is positioned on the right side of the text. + + + + + Check box sign is positioned above the text. + + + + + Check box sing is positioned below the text + + + + + Indicates the type of the progress bar. + + + + + Standard step based progress bar. + + + + + The automatically moving progress bar. + + + + + Defines the direction of collapsing/expanding + + + + + Control is collapsed from bottom to top. + + + + + Control is collapsed from top to bottom. + + + + + Control is collapsed from right to left. + + + + + Control is collapsed from left to right. + + + + + Describes the scroll bar skinning applied to the controls. + + + + + No scrollbar skinning is applied to the control. + + + + + Optimized scrollbar skinning algorithm is used. Might provide better appearance in certain scenarios. + + + + + Unoptimized scrollbar skinning algorithm is used. Might provide better appearance in certain scenarios. + + + + + Indicates the position of the slider label text related to the slider part. + + + + + Label is positioned on the left side of the slider. + + + + + Label is positioned on the right side of the slider. + + + + + Label is positioned above the slider. + + + + + Label is positioned below the slider. + + + + + Defines the slider item parts. + + + + + Indicates no part. + + + + + Indicates the increase button of slider control. + + + + + Indicates the decrease button of slider control. + + + + + Indicates the label part of slider control. + + + + + Indicates the track area part of the control. + + + + + Specifies the position of the title image. + + + + + Image is positioned on the left side. + + + + + Image is centered. + + + + + Image is positioned on the right side. + + + + + Specifies the Wizard control Appearance. + + + + + Indicates default Wizard 97 style. + + + + + Indicates the Office 2007 Style Wizard Appearance. + + + + + Specifies wizard title image alignment + + + + + Image is aligned to left + + + + + Image is aligned to right + + + + + Specifies the behaviour used to hide watermark. + + + + + Watermark for control is hidden when control receives the input focus. + + + + + Watermark for control is hidden when control has non-empty input value. + + + + + Specifies the advanced ScrollBar appearance. + + + + + Default scroll bar appearance. + + + + + Office 2007 style Application scroll bar appearance. + + + + + Defines text position in relation to the content of the item.. + + + + + Text is positioned to the left of the content. + + + + + Text is positioned to the right of the content. + + + + + Text is positioned on top of the content. + + + + + Text is positioned on bottom of the content. + + + + + Defines position for the notification mark + + + + + Defines available symbol sets. + + + + + FontAwesome Symbol Set. + + + + + Android Material Symbol Set. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ColorItem object. + + + + Represents event arguments for DockTabClosing event. + + + + + Indicates the DockContainerItem that is about to close. + + + + + Provides ability to cancel closing of the DockContainerItem. Default value is false. + + + + + Set to true to automatically remove DockContainerItem from the Bar.Items collection after it is closed. Default value is false + which means that DockContainerItem will be kept in collection but it will be hidden after this event is complete. + + + + + Returns source of the event: keyboard, mouse or code. + + + + + Creates new instance of the class. + + Reference to DockContainerItem that is about to close + + + + Delegate for DockTabClosing event. + + + + + Represents arguments for SerializeItem event which allows you to add custom serialization data to definitions saved by control. + + + + + Gets reference to item being serialized or de-serialized. + + + + + Gets reference to instance of XmlElement that item is serialized to or is being de-serialized from. You should not change any data directly on this element. + + + + + Gets the reference to XmlElement that you can serialize to or de-serialize any custom data from. You can add child elements or set the attributes on + this XmlElement when handling SerializeItem event. When handling DeserializeItem event you can load same data from this element. + + + + + Defines delegate for SerializeItem event. + + + + + Provides more information about MarkupLinkClick event. + + + + + Gets the value of href attribute from the markup link that was clicked. + + + + + Gets the value of name attribute from the markup link that was clicked. + + + + + Creates new instance of the object. + + Value of name attribute. + Value of href attribute. + + + + Defines delegate for MarkupLinkClick event. + + + + + Panel control with title bar that can be expanded or collapsed. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Used for design time support. + + true if property should be serialized. + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called when AntiAlias property has changed. + + + + + Occurs before Expanded property is changed. You can cancel change of this property by setting Cancel=true on the event arguments. + + + + + Occurs after Expanded property has changed. You can handle ExpandedChanging event and have opportunity to cancel the change. + + + + + Indicates whether panel will hide the controls it contains when its collapsed and show them when its expanded. Default value is false. + + + + + Gets or sets whether the panel is collapsed/expanded when title bar is clicked. Default value is false. + + + + + Gets or sets the collapse/expand direction for the control. Default value causes the control to collapse from bottom to top. + + + + + Gets or sets whether panel is expanded or not. Default value is true. + + + + + Gets or sets animation time in milliseconds. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets the bounds of panel when expanded. This value is managed automatically by control based on the starting designer size and value + of Expanded property. + + + + + Gets or sets whether expand button is visible or not. Default value is true. + + + + + Returns bounds of expand button. Bounds are relative to the TitlePanel coordinates. + + + + + Gets or sets image that is used on title bar button to collapse panel. Default value is null which indicates + that system default image is used. + + + + + Gets or sets image that is used on title bar button to expand panel. Default value is null which indicates + that system default image is used. + + + + + Gets or sets the text for the title of the panel. + + + + + Gets or sets the title style. + + + + + Gets or sets the title style when mouse hovers over the title. + + + + + Gets or sets the title style when mouse button is pressed on the title. + + + + + Gets or sets the height of the title portion of the panel. Height must be greater than 0. Default is 26. + + + + + Gets reference to Panel control used as title bar. + + + + + Gets reference to the title bar expand button. + + + + + Gets or sets alignment of the expand button. + + + + + Gets the reference to the panel used as button when control is collapsed to the left or right. + + + + + Represents multi-functional splitter control. + + + + + Creates new instance of the object. + + + + + This member overrides Control.OnPaint. + + Event arguments. + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Apply default splitter style colors. + + Style colors to apply. + + + + Gets or sets whether expandable control ExpandableControl assigned to this splitter is expaned or not. Default value is true. + + + + + Gets or sets whether Click event is triggering expand/collapse of the splitter. Default value is true. + + + + + Gets or sets whether DoubleClick event is triggering expand/collapse of the splitter. Default value is false. + + + + + Gets or sets whether splitter will act as expandable splitter. Default value is true. When set to true ExpandableControl property should be set to the control that should be expanded/collapsed. + + + + + Gets or sets the control that will be expanded/collapsed by the splitter. Default value is null. Expandable property should be also set to true (default) to enable expand/collapse functionality. + + + + + Gets or sets visual style of the control. Default value is eSplitterStyle.Office2003. + + + + + Gets or sets animation time in milliseconds. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets the shortcut key to expand/collapse splitter. + + + + + Gets or sets the background color for UI element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color. Setting + this property overrides the setting of the corresponding BackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor property. + + + + + Gets or sets the target gradient background color for UI element. + + + + + Gets or sets the color scheme color that is used as target gradient background color. Setting + this property overrides the setting of the corresponding BackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor2 property. + + + + + Gets or sets the background gradient angle. + + + + + Gets or sets the expand part fill color. + + + + + Gets or sets the color scheme color that is used expand part fill color. Setting + this property overrides the setting of the corresponding ExpandFillColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandFillColor property. + + + + + Gets or sets the expand part line color. + + + + + Gets or sets the color scheme color that is used expand part line color. Setting + this property overrides the setting of the corresponding ExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandLineColor property. + + + + + Gets or sets the grip part dark color. + + + + + Gets or sets the color scheme color that is used grip part dark color. Setting + this property overrides the setting of the corresponding GripDarkColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through GripDarkColor property. + + + + + Gets or sets the expand part line color. + + + + + Gets or sets the color scheme color that is used expand part line color. Setting + this property overrides the setting of the corresponding GripLightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through GripLightColor property. + + + + + Gets or sets the background color for UI element when mouse is over the element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotBackColor property. + + + + + Gets or sets the target gradient background color for UI element when mouse is over the element. + + + + + Gets or sets the color scheme color that is used as target gradient background color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotBackColor2 property. + + + + + Gets or sets the background gradient angle when mouse is over the element. + + + + + Gets or sets the expand part fill color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used expand part fill color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotExpandFillColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotExpandFillColor property. + + + + + Gets or sets the expand part line color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used expand part line color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotExpandLineColor property. + + + + + Gets or sets the grip part dark color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used grip part dark color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotGripDarkColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotGripDarkColor property. + + + + + Gets or sets the grip part light color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used grip part light color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotGripLightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotGripLightColor property. + + + + + Indicates the style of mutli-functional splitter control. + + + + + Specifies Office 2003 like splitter style and color scheme. + + + + + Specifies Mozilla like splitter style and color scheme. + + + + + Specifies Office 2007 like splitter style and color scheme. + + + + + Represents event arguments for ExpandedChanging and ExpandedChanged events. + + + + + Gets the action that caused the event, event source. + + + + + Gets or sets whether execution Expand event should be canceled. Applies only to ExpandedChanging event. Default is false. + + + + + Indicates new value for the Expanded property. + + + + + Represents the Outlook like Explorer-bar Control. + + + + + Creates new instance of side bar control. + + + + + Clean up any resources being used. + + + + + Returns true if color scheme has changed. + + + + + Resets color scheme to it's default value. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Applies any layout changes and repaint the control. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Ensures that item is displayed on the screen. Item needs to have it's Visible property set to true. This method will expand the group if needed or it will scroll control to display an item. + + Item to display. + + + + Returns the item located at specific client coordinates. + + X Coordinate + Y Coordinate + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Loads the Side bar definition from file. + + Definition file name. + + + + Saves the Side bar definition to file. + + Definition file name. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Suspends the layout and painting of the control. When you want to perform multiple operations on the explorer bar and you want to ensure + that layout of the items on it and painting is not performed for performance and appearance reasons set this property to true. Once you + want to enable layout and painting set the property back to false and call RecalcLayout method. Default value is false. + + + + + Gets or sets Bar Color Scheme. + + + + + Specifies whether ExplorerBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Specifies the background style of the Explorer Bar. + + + + + Gets or sets the vertical spacing between the group items. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Returns the collection of Explorer Bar Groups. + + + + + Gets or sets the form ExplorerBar is attached to. + + + + + Gets or sets the margin in pixels between the explorer bar groups and the edge of the control. + + + + + Gets or sets whether end-user can rearrange the items inside the panels. + + + + + Gets or sets whether animation is enabled. + + + + + Gets or sets maximum animation time in milliseconds. + + + + + Gets or sets whether native .NET Drag and Drop is used by side-bar to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Applies the stock style to the object. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. This image is used when mouse is over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. This image is used when user presses left mouse button while cursor is positioned over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. + This Image is used when mouse is over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. + This Image is used when left mouse button is pressed while cursor is over the button. Default value is null + which indicates that default button is used. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for images displayed on the Group Item. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets the item default accesibility action will be performed on. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Provides layout for Explorer-Bar control. + + + + + Creates new instance of ExplorerBarContainerItem class. + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Sets input focus to next visible item in Explorer Bar. + + True if focus was set to next visible item otherwise false. + + + + Sets input focus to previous visible item in Explorer Bar. + + True if focus was set to previous visible item otherwise false. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Represents the Explorer-Bar Group item. + + + + + Creates new instance of ExplorerBarGroupItem. + + + + + Creates new instance of ExplorerBarGroupItem and assigns the name to it. + + Item name. + + + + Creates new instance of ExplorerBarGroupItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of ExplorerBarGroupItem item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Shows tooltip for this item. + + + + + Forces the repaint the item. + + + + + Applies default appearance to ExplorerBarGroupItem. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether expand button is visible. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether drop shadow is displayed when non-themed display is used. + + + + + Gets the reference to ElementStyle object which describes visual appearance of the explorer group item title. + + + + + Gets the reference to ElementStyle object which describes visual appearance of the explorer group item title while mouse is over the title bar. + + + + + Gets or sets the item background style. + + + + + Gets or sets whether clicking the header of the control expands the item. + + + + + Applies the stock style to the object. + + + + + Applies new visual style to this the item and all of its sub-items. + + + + + Gets or sets expand button border color. + + + + + Gets or sets expand button back color. + + + + + Gets or sets expand button fore color. + + + + + Gets or sets hot expand button border color. + + + + + Gets or sets hot expand button back color. + + + + + Gets or sets hot expand button fore color. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets the rectangle of the panel item Button. + + + + + Specifies the image. + + + + + Indicates whether XP themed special group colors are used for drawing. + + + + + Gets or sets the margin in pixels between the edge of the container and the items contained inside of it. Default value is 4. + + + + + Gets or sets whether text on sub items is wrapped on new line if it cannot fit the space available. + + + + + Specifies the index of the image if ImageList is used. + + + + + Summary description for frmCustomize. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Defines the generic container item that is used by toolbar, menu bar and other control for item layout. + + + + + Occurs when new item is added to the container. + + + + + Returns copy of GenericItemContainer item + + + + + Paints this base container + + + + + Recalculate Size of this item + + + + + This must be called by child item to let the parent know that its size + has been changed. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Called when item owner has changed. + + + + + Return Sub Item at specified location + + + + + Set/Get does container wraps item into the new line when they exceed the container size + + + + + Specifies whether to display more items on popup menu or Bar. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether container is system container used internally by DotNetBar. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Gets or sets whether item container fills the container control completely. + + + + + Summary description for Hook. + + + + + Summary description for HTMLHelp. + + + + + Interface for designer-item integration. + + + + + Describes container support for setting the word-wrap behavior of it's sub-items. + + + + + Gets or sets whether sub items text will be word wrapped if it cannot fit the space allocated. + + + + + Summary description for ItemPaintArgs. + + + + + Holds reference to all unique items in the DotNetBar. + + + + + Provides context information for serialization. + + + + + Gets or sets reference to context XmlElement an item is being serialized to. + + + + + Gets or sets whether SerializeItem event handler has been defined and whether event should be fired. + + + + + Gets or sets whether DeserializeItem event handler has been defined and whether event should be fired. + + + + + Provides access to serializer. + + + + + + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Represent an style for the item. + + + + + Default Constructor + + + + + Makes a copy of the ItemStyle object. + + New Instance of a ItemStyle object + + + + Paints the style. + + Graphics object + Target area + Text + Text area + Text Font + + + + Paints the style + + Graphics object + Target Area + Text + Text area + Text Font + Border Type + + + + Paints the style + + Graphics object + Target Area + + + + Paints the style text only. + + Graphics object + Text + Text area + Font + + + + Gets or sets whether text is drawn vertically by this style. + + + + + Gets or sets a background color or starting color for gradient background. + + + + + Gets or sets a background color or ending color for gradient background. + + + + + Gets or sets a text color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the style Font + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the corner type. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets or sets the border type. + + + + + Gets or sets dash style for single line border type. + + + + + Gets or sets the border sides that are displayed. + + + + + Gets or sets the border color. + + + + + Gets or sets the line tickness of single line border. + + + + + Gets or sets the left text margin. + + + + + Gets or sets the right text margin. + + + + + Gets or sets the top text margin. + + + + + Gets or sets the bottom text margin. + + + + + + ColorEx object that provides the transparency setting ability. + + + + + Constructor with Color Initialization. + + Color object + + + + Constructor with Color and Transparency Initialization. + + Color object + Transparency + + + + Returns the color object with the transparency set. + + Color object + + + + Gets or sets the Color object which does not include transparency. + + + + + Indicates the transparency for the color. + + + + + Specifies that color derived from system colors which is part of DotNetBar Color Scheme object is used. + Colors derived from system colors are automatically refreshed when + system colors are changed. + + + We recommend using this property to specify color rather than setting color directly. + Using colors that are derived from system colors improves uniform look of your application + and visual integration into user environment. + + + + + Returns empty ColorEx object. + + + + + Indicates whether object contain any color. + + + + + Gets or sets a background color or starting color for gradient background. + + + + + Gets or sets a background color or ending color for gradient background. + + + + + Gets or sets a text color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the style Font + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the corner type. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets or sets the border type. + + + + + Gets or sets dash style for single line border type. + + + + + Gets or sets the border sides that are displayed. + + + + + Gets or sets the border color. + + + + + Gets or sets the line tickness of single line border. + + + + + Gets or sets the left text margin. + + + + + Gets or sets the right text margin. + + + + + Gets or sets the top text margin. + + + + + Gets or sets the bottom text margin. + + + + + ColorEx object that provides the transparency setting ability. + + + + + Gets or sets the Color object which does not include transparency. + + + + + Indicates the transparency for the color. + + + + + Specifies that color derived from system colors which is part of DotNetBar Color Scheme object is used. + Colors derived from system colors are automatically refreshed when + system colors are changed. + + + We recommend using this property to specify color rather than setting color directly. + Using colors that are derived from system colors improves uniform look of your application + and visual integration into user environment. + + + + + Summary description for LabelItem. + + + + + Called when ImageTextSpacing property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Reset property to its default value. + + + + + Gets whether property should be serialized. + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies spacing between label image and text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Gets or sets the border sides that are displayed. Default value specifies border on all 4 sides. + + + + + Gets or sets the background color of the label. + + + + + Gets or sets the text color. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the text vertical alignment. + + + + + Gets or sets the label font. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets or sets the width of the label in pixels. + + + + + Gets or sets the height of the label. + + + + + Gets or sets whether the label is drawn as a divider label. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font. + + + + + Gets or sets the text associated with this item. + + + + + Specifies the label icon. Icons support alpha blending. + + + + + Specifies label image. + + + + + Specifies the index of the image for the label if ImageList is used. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets text-orientation. Default is horizontal. + + + + + Gets or sets how vertical text is rotated when TextOrientation = Vertical. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets whether label hosted in multi-line ItemContainer triggers new line switch after label is processed. + + + + + Contains static keys that are used to discover localized text for internal controls. + + + + + Navigation Pane collapse button tooltip text. + + + + + Navigation Pane expand button tooltip text. + + + + + Bar auto-hide button tooltip text. + + + + + Bar customize button tooltip text. + + + + + Bar close button tooltip text. + + + + + Bar maximize button tooltip text. + + + + + CustomizeItem tooltip text. + + + + + CustomizeItem Add/Remove text. + + + + + CustomizeItem text for button that opens Customize dialog. + + + + + CustomizeItem text for Reset command. + + + + + Tooltip text for system button that displays overflow items. + + + + + Text for Customize Dialog caption. + + + + + Text for Customize Dialog toolbars tab. + + + + + Text for Customize Dialog commands tab. + + + + + Text for Customize Dialog options tab. + + + + + Text for Customize Dialog keyboard button. + + + + + Text for Customize Dialog close button. + + + + + Text for Customize Dialog new toolbar button. + + + + + Text for Customize Dialog rename toolbar button. + + + + + Text for Customize Dialog delete toolbar button. + + + + + Text for Customize Dialog reset toolbar button. + + + + + Text for Customize Dialog label that gives following instructions to user: + To add a command to Bar select the category and drag the command out of this box to a Bar. + + + + + Text for Customize Dialog categories label. + + + + + Text for Customize Dialog toolbars label. + + + + + Text for Customize Dialog options tab Personalized Menus and Toolbars label. + + + + + Text for Customize Dialog options tab Aways show full menus check box. + + + + + Text for Customize Dialog options tab Show full menus after a short delay check box. + + + + + Text for Customize Dialog options tab 'Reset my usage data' command. + + + + + Text for Customize Dialog options tab 'Other' labe. + + + + + + + Text for Customize Dialog options tab 'Menu Animation:' label. + + + + + Text for Customize Dialog options tab Menu Animation combo box None option. + + + + + Text for Customize Dialog options tab Menu Animation combo box System Default option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Random option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Unfold option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Slide option. + + + + + Text for Customize Dialog Confirm delete of bar message box. + + + + + Text for Reset command on customize item context menu. + + + + + Text for Delete item command on customize item context menu. + + + + + Text for Change Name item command on customize item context menu. + + + + + Text for Default Style item command on customize item context menu. + + + + + Text for Text Only item command on customize item context menu. + + + + + Text for Image And Text item command on customize item context menu. + + + + + Text for Begin Group item command on customize item context menu. + + + + + Text MdiSystemItem Minimize button. + + + + + Text MdiSystemItem Restore button. + + + + + Text MdiSystemItem Close button. + + + + + Text MdiSystemItem menu Restore command. + + + + + Text MdiSystemItem menu Move command. + + + + + Text MdiSystemItem menu Size command. + + + + + Text MdiSystemItem menu Minimize command. + + + + + Text MdiSystemItem menu Maximize command. + + + + + Text MdiSystemItem menu Close command. + + + + + Text MdiSystemItem menu Next command. + + + + + Text Navigation Bar Show More Buttons menu item. + + + + + Text Navigation Bar Show Fewer Buttons menu item. + + + + + Text Navigation Bar Options menu item. + + + + + Text for Move Up button on Navigation Bar Options dialog box. + + + + + Text for Move Down button on Navigation Bar Options dialog box. + + + + + Text for Reset button on Navigation Bar Options dialog box. + + + + + Text for OK button on Navigation Bar Options dialog box. + + + + + Text for Cancel button on Navigation Bar Options dialog box. + + + + + Text for Navigation Bar Options dialog box title. + + + + + Text for Navigation Bar Options label which is displayed above the list box which lists all the controls. + + + + + Text for Rename Toolbar dialog caption. + + + + + Text for New Toolbar dialog caption. + + + + + Text for Bar Name label on Bar edit dialog (either rename or new). + + + + + Text for OK Button on Bar edit dialog (either rename or new). + + + + + Text for Cancel Button on Bar edit dialog (either rename or new). + + + + + Text for Invalid Name Message on Bar edit dialog (either rename or new). + + + + + Text displayed on Color Picker drop down Theme Colors label. + + + + + Text displayed on Color Picker drop down Standard Colors label. + + + + + Text displayed on Color Picker drop down more colors menu item. + + + + + Text for the OK Button on Color Picker dialog. + + + + + Text for the Cancel Button on Color Picker dialog. + + + + + Text for the new color label on Color Picker dialog. + + + + + Text for the current color label on Color Picker dialog. + + + + + Text for the colors label on the standard colors tab. + + + + + Text for the colors label on the custom colors tab. + + + + + Text for the green component label on the custom colors tab. + + + + + Text for the blue component label on the custom colors tab. + + + + + Text for the red component label on the custom colors tab. + + + + + Text for the Color Model label on the custom colors tab. + + + + + Text for the RGB combo box item choice on the custom colors tab. + + + + + Text for the Standard tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Indicates the text for Today button displayed on the MonthCalendarItem control. + + + + + Indicates the text for Clear button displayed on the MonthCalendarItem control. + + + + + Indicates the text for MessageBoxEx Abort button. + + + + + Indicates the text for MessageBoxEx Cancel button. + + + + + Indicates the text for MessageBoxEx Close button. + + + + + Indicates the text for MessageBoxEx Continue button. + + + + + Indicates the text for MessageBoxEx Help button. + + + + + Indicates the text for MessageBoxEx Ignore button. + + + + + Indicates the text for MessageBoxEx No button. + + + + + Indicates the text for MessageBoxEx OK button. + + + + + Indicates the text for MessageBoxEx Retry button. + + + + + Indicates the text for MessageBoxEx Try Again button. + + + + + Indicates the text for MessageBoxEx Yes button. + + + + + Identifies Form system menu Restore item. + + + + + Identifies Form system menu Move item. + + + + + Identifies Form system menu Size item. + + + + + Identifies Form system menu Minimize item. + + + + + Identifies Form system menu Maximize item. + + + + + Identifies Form system menu Close item. + + + + + Identifies Time Selector OK button. + + + + + Identifies Time Selector Clear button. + + + + + Identifies Time Selector Hour Label. + + + + + Identifies Time Selector Minute Label. + + + + + Identifies 'Show all' Filter Expression label. + + + + + Identifies 'Show null' Filter Expression label. + + + + + Identifies 'Show not null' Filter Expression label. + + + + + Identifies 'Custom' Filter Expression label. + + + + + Identifies 'Enter expression' Filter text. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Ok' Filter Expression button label. + + + + + Identifies 'Cancel' Filter Expression button label. + + + + + Identifies 'Close' Filter Expression button label. + + + + + Identifies 'Clear' Filter Expression button label. + + + + + Identifies 'Clear' Filter Expression button label. + + + + + Identifies Filter DateTimePicked dialog 'Filter by relative date' text. + + + + + Identifies Filter DateTimePicker dialog 'Filter by specific date' text. + + + + + Identifies Filter DateTimePicker dialog 'Filter by date range' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Current Month' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Current Year' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 3 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 6 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 9 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last Year' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 5 Year Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 10 Year Period' text. + + + + + Identifies Filter expression evaluation error 'Expression error' text. + + + + + Identifies Filter expression evaluation error 'Missing parenthesis' text. + + + + + Identifies Filter expression evaluation error 'Missing quote' text. + + + + + Identifies Filter expression evaluation error 'Invalid number of arguments' text. + + + + + Identifies Filter expression evaluation error 'Invalid argument' text. + + + + + Identifies Filter expression evaluation error 'Invalid 'Empty' operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid DateTime operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid bool operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid string operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid numeric operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid logical evaluation' text. + + + + + Identifies Filter expression evaluation error 'Undefined User function' text. + + + + + Identifies custom filter dialog title 'Custom Filter' text. + + + + + Identifies custom filter dialog 'New Filter' text. + + + + + Identifies custom filter dialog 'New' button text. + + + + + Identifies custom filter dialog 'Delete' button text. + + + + + Identifies custom filter dialog 'Filter Name' text. + + + + + Identifies custom filter dialog 'Description' text. + + + + + Identifies custom filter dialog 'Show in FilterPopup' text. + + + + + Identifies custom filter dialog title 'Custom Filter' text. + + + + + Identifies the default GroupBy WaterMarkText. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Represents an item that displays log information in list container. + + + + + Initializes a new instance of the LogItem class. + + + + + + Creates new instance of LogItem and assigns the name to it. + + Item name. + + + + Creates new instance of LogItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the color of the control text body. + + + + + Gets or sets the color of the header text. + + + + + Gets or sets the image displayed on the log item. + + + + + Gets or sets the image position in relation to text. + + + + + Gets or sets the background color of the item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Summary description for MdiWindowListItem. + + + + + Initializes the item and connects it to the MDI form so it can process the events. You should not call this method directly since this process is + automatically managed by the item. + + + + + Initializes the item and connects it to the MDI form so it can process the events. You should not call this method directly since this process is + automatically managed by the item. + + + + + Refresh the MDI Child form Icons that are displayed on window list items. + + + + + Gets or sets whether the MDI Child Window Icons are displayed on items. + + + + + Gets or sets maximum form caption length that will be displayed on each item. If caption length exceeds given value ... characters are added. + + + + + Gets whether item has been connected to the MDI form so it can process its events. + + + + + Gets or sets whether flicker associated with switching maximized Mdi child forms is attempted to eliminate. You should set this property to false if you encounter any painting problems with your Mdi child forms. + + + + + Gets or sets whether numbered access keys are created for MDI Child window menu items for first 9 items. Access keys will start with number 1 and go through 9. Default value is false + which indicates that access keys are not created. + + + + + Summary description for PopupWindow. + + + + + Return Sub Item at specified location + + + + + Gets or sets whether Key Tips (accelerator keys) for items are displayed on top of them. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Sets,Gets the side bar image structure. + + + + + Gets or sets the HotSubItem on the menu. This method is used internally by DotNetBar and should not be used in your application. + + + + + Summary description for MessageHandler. + + + + + Summary description for NativeFunctions. + + + + + Represents Outlook 2003 like Navigation Bar. + + + + + Default constructor. + + + + + Applies design-time defaults to control. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Saves current visual layout of navigation bar control to XML based file. + + File name to save layout to. + + + + Saves current visual layout of navigation bar control to XmlElement. + + XmlElement object that will act as a parent for the layout definition. Exact same element should be passed into the LoadLayout method to load the layout. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + File to load layout from. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + Parent XML element that is used to load layout from. Note that this must be the same element that was passed into the SaveLayout method. + + + + Occurs after Options dialog which is used to customize control's content has closed by user using OK button. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Gets or sets whether summary line is visible. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Returns items container. + + + + + Returns reference to currently checked button. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets the navigation bar definition string. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Indicates whether splitter on top of the navigation bar is visible. When activated splitter will let user change the height of the + control to show fewer or more buttons. It is recommended to have navigation bar docked to bottom (Dock=Bottom) to maintain + proper layout. + + + + + Container control for Navigation Bar. + + + + + Creates new instance of NavigationBarContainer. + + + + + Creates new instance of SideBarPanelItem and assigns the name to it. + + Item name. + + + + Creates new instance of SideBarPanelItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of SideBarPanelItem item. + + + + + Recalculates size of this container. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Must be called by any sub item that implements the image when image has changed + + + + + Occurs after an item has been added to the container. This procedure is called on both item being added and the parent of the item. To distinguish between those two states check the item parameter. + + When occurring on the parent this will hold the reference to the item that has been added. When occurring on the item being added this will be null (Nothing). + + + + Occurs after an item has been removed. + + Item being removed. + + + + Returns index of the first item that is displayed in summary line or -1 if there is no item displayed in summary line. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets whether summary line is visible. + + + + + Delegate for OptionGroupChanging event. + + + + + Delegate for PanelPopup events. + + + + + Represents Outlook 2003 style navigation pane control. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Applies any layout changes and repaint the control. + + + + + Returns Panel associated with button on navigation bar or null if panel cannot be found. + + Button on navigation bar. + + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Saves current visual layout of navigation bar control to XML based file. + + File name to save layout to. + + + + Saves current visual layout of navigation bar control to XmlElement. + + XmlElement object that will act as a parent for the layout definition. Exact same element should be passed into the LoadLayout method to load the layout. + + + + Popup selected pane when control is collapsed. When control is collapsed (Expanded=false) currently selected pane is not visible + calling this method will popup selected pane and allow user access to it. Use PopupPaneVisible property + to check whether currently selected pane is displayed as popup. + + + + + Hides popup selected pane when control is collapsed and selected pane is displayed as popup. When control is collapsed (Expanded=false) + currently selected pane can be displayed as popup. Calling this method will hide the popup pane. Use PopupPaneVisible property + to check whether currently selected pane is displayed as popup. + + + + + Raises the PanelPopupClosed event. + + Provides event arguments. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + File to load layout from. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + Parent XML element that is used to load layout from. Note that this must be the same element that was passed into the SaveLayout method. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Updates the color scheme on child panels to reflect the style of the NavigationBar control. Calling this method is necessary only if you manually + change the NavigationBar.ColorScheme property. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when Item is clicked. + + + + + Occurs when currently selected panel is about to change. + + + + + Occurs when control is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before panel is displayed on popup when control is collapsed. You can use this event to modify default + size of the popup panel or cancel the popup of the panel. + + + + + Occurs after panel is displayed on popup. + + + + + Occurs after panel displayed on popup is closed. + + + + + Occurs before Expanded property is changed. You can cancel change of this property by setting Cancel=true on the event arguments. + + + + + Occurs after Expanded property has changed. You can handle ExpandedChanging event and have opportunity to cancel the change. + + + + + Occurs after Options dialog which is used to customize control's content has closed by user using OK button. + + + + + Returns the width of the expanded control if control is currently collapsed. + + + + + Returns collection containing buttons on navigation bar. + + + + + Gets or sets the height of the navigation bar part of the navigation pane control. + Navigation Bar height is automatically calculated based on the content. + Setting this property suggests desired height of the navigation bar but the actual height will be + calculated to ensure that complete buttons are visible so suggested and actual height might differ. + + + + + Returns reference to internal NavigationBar control. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Returns reference to currently checked button. + + + + + Returns reference to currently selected panel. Panels are automatically switched when buttons are checked. + + + + + ImageList for images used on Items. + + + + + Returns reference to the PanelEx that is used to display title. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets the navigation bar definition string. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets animation time in milliseconds when control is expanded or collapsed. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets whether navigation pane can be collapsed. Default value is false. When set to true + expand/collapse button will be displayed in title so control can be reduced in size. + + + + + Gets or sets alignment of the expand button inside of title bar. + + + + + Gets or sets whether navigation pane is expanded. Default value is true. + When control is collapsed it is reduced in size so it consumes less space. + + + + + Gets the reference to the inner panel displaying Navigation Pane vertical text created when control is collapsed. + + + + + Gets or sets whether selected pane is displayed as popup when control is collapsed (Expanded=false). Using + navigation pane button that is displayed when control is collapsed user can popup or close currently selected pane without + expanding the control. You can use this property to do same from code as well as check whether selected pane is displayed as + popup. Note that control must be collapsed (Expanded=false) in order for this property to have any effect. + + + + + Gets/Sets the visual style for the control. Default style is Office 2003. + + + + + Represents event arguments for PanelChanging event. + + + + + Set to true to cancel changing of the panel. + + + + + Panel that will be selected if operation is not cancelled. + + + + + Panel that is currently selected and which will be de-selected if operation is not cancelled. + + + + + Default constructor. + + + + + Represents event arguments for BeforePanelPopup event. + + + + + Set to true to cancel popup of the panel. + + + + + Size and position of popup. You can modify this memeber to affect size and position of popup. + + + + + Default constructor. + + + + + Represents Panel on Navigation Pane control. + + + + + Gets or sets button associated with the pane on the panel when hosted on NavigationPane control. + + + + + Summary description for NavPaneOptions. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Updates position of the title bar button to reflect any changes to the button that influence size of the button. + + + + + Occurs when Expanded/Collapse button is clicked. + + + + + Gets or sets whether expand button is visible or not. Default value is true. + + + + + Gets or sets alignment of the button. + + + + + Gets or sets whether text markup if it occupies less space than control provides uses the Style Alignment and LineAlignment properties to align the markup inside of the control. Default value is true. + + + + + Use as a popup container for DotNetBar objects. + + + + + Summary description for PopupContainer. + + + + + Summary description for PopupShadow. + + + + + Represents a progress bar item. + + + + + Creates new instance of ProgressBarItem. + + + + + Creates new instance of ProgressBarItem and assigns the name to it. + + Item name. + + + + Creates new instance of ProgressBarItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Advances the current position of the progress bar by the amount of the Step property. + + + + + Advances the current position of the progress bar by the specified amount. + + The amount by which to increment the progress bar's current position. + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Gets or sets the item background style. + + + + + Specifies the background style of the item. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the progress bar. + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the width of the item in pixels. 0 value indicates the auto-sizing item based on the text contained in it. + + + + + Gets or sets the height of the label. 0 value indicates the auto-sizing item based on the text height. + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Gets or sets the type of progress bar used to indicate progress. The Standard style displays the progress based on Minimum, Maximum and current Value. + The Marquee type is automatically moving progress bar that is used to indicate an ongoing operation for which the actual duration cannot be estimated. + + + + + Gets or sets the marquee animation speed in milliseconds. + + + + + Gets or sets the predefined color state table for progress bar. Color specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Summary description for RemindForm. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents color table for Bar objects in various states. + + + + + Gets or sets the colors for top part of toolbar background. + + + + + Gets or sets the colors for bottom part of toolbar background. + + + + + Gets or sets the color of the bottom border. + + + + + Gets or sets the popup toolbar background color. + + + + + Gets or sets the color of popup toolbar border. + + + + + Gets or sets the status bar top border color. + + + + + Gets or sets the status bar top border light color. + + + + + Gets or sets the alternative background colors for the status bar. + + + + + Represents color table for ButtonItem object. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the color table applied for button in default state. + + + + + Gets or sets the color table applied when mouse is over the button. + + + + + Gets or sets the color table applied when mouse is over the buttons inactive split part. Applies to split button appearance only. + + + + + Gets or sets the color table applied when mouse is pressed over the button. + + + + + Gets or sets the color table applied when mouse is pressed over the button. + + + + + Gets or sets the color table applied when button is expanded. + + + + + Gets or sets the color table applied when cursor is over button on a menu. + + + + + Represents typed collection of Office2007ButtonItemColorTable type. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007ButtonItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Represents a color table for ButtonItem in certain state like but not limited to mouse over, checked or pressed. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the outer border width. Default is 1. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets top part background colors. + + + + + Gets or sets highlight colors for the top background part. + + + + + Gets or sets bottom part background colors. + + + + + Gets or sets highlight colors for the bottom background part. + + + + + Gets or sets the split border colors that divides button text and image from expand part of the button. + + + + + Gets or sets the split border light colors that divides button text and image from expand part of the button. + + + + + Gets or sets the text color. + + + + + Gets or sets the background color of the expand sign. + + + + + Gets or sets the outline light color of the expand sign. + + + + + Gets or sets the single gradient background for the button. When specified it is used instead of TopBackground and BottomBackground for rendering. + + + + + Represent the color table for the CheckBoxItem. + + + + + Gets or sets the colors for the item in default state. + + + + + Gets or sets the colors for the item when mouse is over the item. + + + + + Gets or sets the colors for the item when mouse is pressed over the item. + + + + + Gets or sets the colors for the item when item is disabled. + + + + + Defines the colors for the single CheckBoxItem state. + + + + + Gets or sets the background colors of the check box. + + + + + Gets or sets the color of the check border. + + + + + Gets or sets the inner color of check box border. + + + + + Gets or sets the inner background color of check box. + + + + + Gets or sets the color of the check sign that is drawn when item is checked. + + + + + Gets or sets the text color. + + + + + Defines color table for ColorItem. + + + + + Gets or sets the border that is drawn around each individual color item or color item group. + + + + + Gets or sets the inner mouse over color. + + + + + Gets or sets the outer mouse over color. + + + + + Represents the painter for ColorItem in Office 2007 style + + + + + Gets or sets color table used by renderer. + + + + + Defines the color scheme type for the Office2007ColorTable. + + + + + Blue color scheme. + + + + + Black color scheme. + + + + + Silver color scheme. + + + + + Windows Vista Glass inspired color scheme. + + + + + Defines the delegate which retrieves the color for specific integer value. + + color represented as integer. + Reference to Color object. + + + + Defines contextual label colors. + + + + + Initializes a new instance of the LabelColors structure. + + + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines the color table for the combo box. + + + + + Gets or sets the color for combo box in default state. + + + + + Gets or sets the color for standalone combo box in default state. Standalone combo box is a control not used by ComboBoxItem. + + + + + Gets or sets the colors when mouse is over the control. + + + + + Gets or sets the colors when control is dropped down. + + + + + Defines the combo box colors for a particular state. + + + + + Gets or sets the border color. + + + + + Gets or sets the background color. + + + + + Gets or sets the outer expand button border. + + + + + Gets or sets the inner expand button border. + + + + + Gets or sets the background color of the expand button. + + + + + Gets or sets the foreground color of the expand button. + + + + + Defines color table for the Office 2007 style DataGridView control. + + + + + Gets or sets grid background color. + + + + + Gets or sets default cell color. + + + + + Gets or sets default cell text color. + + + + + Gets or sets the background color for the column headers in normal state. + + + + + Gets or sets the normal column text color. + + + + + Gets or sets the column header border color. + + + + + Gets or sets the background color for the column headers in mouse over state. + + + + + Gets or sets the column header border color when mouse is over the column. + + + + + Gets or sets the selected column header text color. + + + + + Gets or sets the background color for the column headers in selected state. + + + + + Gets or sets the border color for the column headers in selected state. + + + + + Gets or sets the background color for the column headers in selected mouse over state. + + + + + Gets or sets the border color for the column headers in selected mouse over state. + + + + + Gets or sets the background color for the column headers in pressed state. + + + + + Gets or sets the border color for the column headers in pressed state. + + + + + Gets or sets the column header foreground color. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the color of the grid lines. + + + + + Gets or sets the background color of selector cell usually located in top-left corner. + + + + + Gets or sets the border color of selector cell usually located in top-left corner. + + + + + Gets or sets the light border color of selector cell usually located in top-left corner. + + + + + Gets or sets the dark border color of selector cell usually located in top-left corner. + + + + + Gets or sets the sign color of selector cell usually located in top-left corner. + + + + + Gets or sets the background color of selector cell usually located in top-left corner. + + + + + Gets or sets the border color of selector cell usually located in top-left corner. + + + + + Gets or sets the light border color of selector cell usually located in top-left corner. + + + + + Gets or sets the dark border color of selector cell usually located in top-left corner. + + + + + Gets or sets the sign color of selector cell usually located in top-left corner. + + + + + Defines color table for the Dialog Launcher button. + + + + + Gets or sets the colors for the default state. + + + + + Gets or sets the colors for the mouse over state. + + + + + Gets or sets the colors for the pressed state. + + + + + Defines the color table for dialog launcher state. + + + + + Gets or sets the color of dialog launcher symbol. + + + + + Gets or sets the shade color of dialog launcher symbol. + + + + + Gets or sets the background color for the top part of the element. + + + + + Gets or sets the background color for the bottom part of the element. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Defines the color table for all states of Office 2007 style form caption. + + + + + Gets or sets the color table for caption in active state. + + + + + Gets or sets the color table for caption in inactive state. + + + + + Gets or sets the background color of the form. + + + + + Gets or sets the text color of the form. + + + + + Gets or sets the MDI Client Background image. + + + + + Defines color table for the Office 2007 style Form caption color state. + + + + + Gets or sets the colors for the top part of the background. + + + + + Gets or sets the colors for the bottom part of the background. + + + + + Gets or sets the array of colors used to draw the border that separates the form caption and the form content. Applies only to the Office2007Form rendering. + + + + + Gets or sets the color of caption text. + + + + + Gets or sets the color of caption extra text that is appended to the caption. + + + + + Gets or sets the array of colors that represents the border colors. Outer border is at index 0. + + + + + Represents the color table used by the Gallery container. + + + + + Gets or sets the background color of the Gallery Group label when gallery is displayed on popup. + + + + + Gets or sets the text color of the Gallery Group label when gallery is displayed on popup. + + + + + Gets or sets the border color of the Gallery Group label when gallery is displayed on popup. + + + + + Represents color table for ItemContainer object with BeginGroup set to true. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the dark color of item devider for items inside of the ItemContainer. + + + + + Gets or sets the light color of item devider for items inside of the ItemContainer. + + + + + Represents the color table for key tips. + + + + + Gets or sets KeyTip Text color. + + + + + Gets or sets KeyTip border color. + + + + + Gets or sets KeyTip Background color. + + + + + Represents color table for ListViewEx control. + + + + + Gets or sets the background color of the columns. + + + + + Gets or sets the color of the column separator. + + + + + Gets or sets the color of the column text. + + + + + Gets or sets the color of the control border. + + + + + Gets or sets the background colors for the selected item. + + + + + Gets or sets the color of the selected item border that is draw on top and bottom of the selection. + + + + + Gets or sets the text color for selected item. + + + + + Defines the color table for the menus. + + + + + Gets or sets the menu background colors. + + + + + Gets or sets the menu side background colors. + + + + + Gets or sets the menu side background colors for the items that were not recently used. + + + + + Gets or sets the menu border background colors. + + + + + Gets or sets the menu side border. + + + + + Gets or sets the light menu side border. + + + + + Gets or sets the background color blend for the special file menu background. + + + + + Gets or sets the two column container border color. + + + + + Gets or sets the two column container light border color. + + + + + Gets or sets the background color of first file column. + + + + + Gets or sets the border color of first file column. + + + + + Gets or sets the background color of first file column. + + + + + Gets or sets the background color blend for the bottom container on file menu. + + + + + Defines the color table for the NavigationPane control. + + + + + Gets or sets the background color collection blend for the button background. + + + + + Gets or sets color table used by renderer. + + + + + Defines color table for the Office 2007 style ProgressBarItem. + + + + + Gets or sets the background color collection blend for the item background. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the color collection blend for the current progress part of the item. + + + + + Gets or sets the color collection blend for overlay for the current progress of the item. + + + + + Gets or sets the color collection blend of shadow for the current progress of the item. + + + + + Defines abstract class for the ProgressBarItem painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines painter for the Office 2007 style QAT Customize Item. + + + + + Defines base class for QAT customize item painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines Office 2007 style QAT painter. + + + + + Defines base class for QAT overflow item painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the quick access toolbar in all states. + + + + + Gets or sets the colors for the quick access toolbar background when hosted in ribbon control caption and form is active + or the background colors when toolbar is hosted below the ribbon control. + + + + + Gets or sets the colors for the quick access toolbar background when hosted in ribbon control caption and form is inactive + + + + + Gets or sets the colors for the quick access toolbar background when positioned below the ribbon bar. + + + + + Gets or sets the background color of Customize Quick Access Toolbar menu label displayed on customize quick access toolbar menu. + + + + + Gets or sets the text color of Customize Quick Access Toolbar menu label displayed on customize quick access toolbar menu. + + + + + Defines the color table for the Quick Access toolbar. + + + + + Gets or sets the colors of the top background. + + + + + Gets or sets the colors of the bottom background. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the middle border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the border when Windows Vista Glass is enabled. + + + + + Represents Office 2007 Control renderer. + + + + + Represents bases class that defines a renderer. + + + + + Raises RenderKeyTips event. + + Provides context information. + + + + Draws KeyTip for an object. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderKeyTips method so events can occur. + + Provides context information. + + + + Raises RenderRibbonTabGroup event. + + Provides context information. + + + + Draws ribbon tab group. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabGroup method so events can occur. + + Provides context information. + + + + Raises RenderItemContainer event. + + Provides context information. + + + + Draws the separator for an item inside of item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainerSeparator method so events can occur. + + Provides context information. + + + + Raises RenderItemContainer event. + + Provides context information. + + + + Draws item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainer method so events can occur. + + Provides context information. + + + + Raises RenderButtonItem event. + + Provides context information. + + + + Draws ButtonItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonTabItem event. + + Provides context information. + + + + Draws RibbonTabItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabItem method so events can occur. + + Provides context information. + + + + Raises RenderToolbarBackground event. + + Provides context information. + + + + Draws docked or floating toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderPopupToolbarBackground event. + + Provides context information. + + + + Draws popup toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderRibbonDialogLauncher event. + + Provides context information. + + + + Draws ribbon bar dialog launcher button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonDialogLauncher method so events can occur. + + Provides context information. + + + + Raises RenderColorItem event event. + + Provides context information. + + + + Draws ColorItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColorItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonControlBackground event event. + + Provides context information. + + + + Draws the background of the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonControlBackground method so events can occur. + + Provides context information. + + + + Raises RenderSystemCaptionItem event event. + + Provides context information. + + + + Draws the SystemCaptionItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSystemCaptionItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonFormCaptionText event event. + + Provides context information. + + + + Draws the form caption text for the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonFormCaptionText method so events can occur. + + Provides context information. + + + + Raises RenderQuickAccessToolbarBackground event event. + + Provides context information. + + + + Draws the background of Quick Access Toolbar on Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQuickAccessToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderMdiSystemItem event. + + Provides context information. + + + + Draws the MdiSystemItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderMdiSystemItem method so events can occur. + + Provides context information. + + + + Raises RenderFormCaptionBackground event. + + Provides context information. + + + + Draws the form caption background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderFormCaptionBackground method so events can occur. + + Provides context information. + + + + Raises RenderQatOverflowItem event. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Raises RenderQatCustomizeItem event. + + Provides context information. + + + + Draws the Quick Access Toolbar Customize Item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatCustomizeItem method so events can occur. + + Provides context information. + + + + Raises RenderCheckBoxItem event. + + Provides context information. + + + + Draws the CheckBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCheckBoxItem method so events can occur. + + Provides context information. + + + + Raises RenderCheckBoxItem event. + + Provides context information. + + + + Draws the ProgressBarItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderProgressBarItem method so events can occur. + + Provides context information. + + + + Raises RenderNavPaneButtonBackground event. + + Provides context information. + + + + Draws the Navigation Pane button background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNavPaneButtonBackground method so events can occur. + + Provides context information. + + + + Raises RenderSliderItem event. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Raises RenderSideBar event. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBar method so events can occur. + + Provides context information. + + + + Raises RenderSideBarPanelItem event. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBarPanelItem method so events can occur. + + Provides context information. + + + + Raises RenderCrumbBarItemView event. + + Provides context information. + + + + Draws CrumbBarItemView. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarItemView method so events can occur. + + Provides context information. + + + + Raises RenderCrumbBarOverflowItem event. + + Provides context information. + + + + Draws CrumbBarOverflowButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarOverflowItem method so events can occur. + + Provides context information. + + + + Raises RenderSwitchButton event. + + Provides context information. + + + + Draws the Switch Button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSwitchButton method so events can occur. + + Provides context information. + + + + Raises RenderRangeSliderItem event. + + Provides context information. + + + + Draws the Range Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRangeSliderItem method so events can occur. + + Provides context information. + + + + Raises RenderStepItem event. + + Provides context information. + + + + Draws the Step item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderStepItem method so events can occur. + + Provides context information. + + + + Raises RenderListBoxItem event. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Raises RenderListBoxItem event. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Occurs when KeyTip is rendered. + + + + + Occurs when ribbon tab group is rendered. + + + + + Occurs when ItemContainer is rendered. + + + + + Occurs when separator is drawn for an item inside of ItemContainer. + + + + + Occurs when ButtonItem is rendered. + + + + + Occurs when RibbonTabItem is rendered. + + + + + Occurs when docked or floating toolbar is rendered. + + + + + Occurs when popup toolbar is rendered. + + + + + Occurs when dialog launcher button on ribbon bar is rendered. + + + + + Occurs when Ribbon Control background is rendered. + + + + + Occurs when form caption text on ribbon control is rendered. + + + + + Occurs when Quick Access Toolbar background is rendered. + + + + + Occurs when ColorItem is rendered. + + + + + Occurs when SystemCaptionItem is rendered. + + + + + Occurs when MdiSystemItem is rendered. + + + + + Occurs when form caption is background is being rendered. + + + + + Occurs when quick access toolbar overflow item is being rendered. + + + + + Occurs when quick access toolbar customize item is being rendered. + + + + + Occurs when CheckBoxItem is being rendered. + + + + + Occurs when ProgressBarItem is being rendered. + + + + + Occurs when Navigation pane button background is being rendered. + + + + + Occurs when Slider item is being rendered. + + + + + Occurs when Range Slider item is being rendered. + + + + + Occurs when SideBar control is being rendered. + + + + + Occurs when SideBarPanelItem control is being rendered. + + + + + Occurs when CrumbBarItemView is rendered. + + + + + Occurs when CrumbBarOverflowButton is rendered. + + + + + Occurs when Slider item is being rendered. + + + + + Occurs when StepItem is being rendered. + + + + + Occurs when ListBoxItem is being rendered. + + + + + Occurs when SideNavItem is being rendered. + + + + + Draws KeyTip for an object. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderKeyTips method so events can occur. + + Provides context information. + + + + Draws ribbon tab group. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabGroup method so events can occur. + + Provides context information. + + + + Draws item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainer method so events can occur. + + Provides context information. + + + + Draws the separator for an item inside of item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainerSeparator method so events can occur. + + Provides context information. + + + + Draws ButtonItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws RibbonTabItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabItem method so events can occur. + + Provides context information. + + + + Draws popup toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Draws docked or floating toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderToolbarBackground method so events can occur. + + Provides context information. + + + + Draws floating toolbar background. + + Provides context information. + + + + Draws ribbon bar dialog launcher button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Draws ColorItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColorItem method so events can occur. + + Provides context information. + + + + Draws the background of the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonControlBackground method so events can occur. + + Provides context information. + + + + Draws the form caption text for the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonFormCaptionText method so events can occur. + + Provides context information. + + + + Draws the background of Quick Access Toolbar on Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQuickAccessToolbarBackground method so events can occur. + + Provides context information. + + + + Draws the SystemCaptionItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSystemCaptionItem method so events can occur. + + Provides context information. + + + + Draws the MdiSystemItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderMdiSystemItem method so events can occur. + + Provides context information. + + + + Draws the form caption background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderFormCaptionBackground method so events can occur. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Draws the ProgressBarItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderProgressBarItem method so events can occur. + + Provides context information. + + + + Draws the Navigation Pane button background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNavPaneButtonBackground method so events can occur. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBar method so events can occur. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBarPanelItem method so events can occur. + + Provides context information. + + + + Draws CrumbBarItemView. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws CrumbBarOverflowButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarOverflowItem method so events can occur. + + Provides context information. + + + + Draws SwitchButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Draws the Step item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderStepItem method so events can occur. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Occurs when color table is changed by setting the ColorTable property on the renderer. + + + + + Gets or sets color table used by renderer. + + + + + Defines color table for RibbonBar in various states. + + + + + Gets or sets the colors for the default RibbonBar state. + + + + + Gets or sets the colors for RibbonBar when mouse is over the control. + + + + + Gets or sets the colors for RibbonBar when ribbon bar is in overflow state and expanded to show all the items. + + + + + Represents the color table of RibbonBar for Office 2007 style. Default values represent blue Luna theme. + + + + + Gets or sets the height in pixels of top background part. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the title background colors. + + + + + Gets or sets the color of title text. + + + + + Defines color table for Ribbon Control. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the colors for the tabs background area. + + + + + Gets or sets the colors for the tabs background area when Windows Glass is enabled. + + + + + Gets or sets the color of border which is drawn above the tab. + + + + + Gets or sets the light color of border which is drawn above the tab. + + + + + Gets or sets the round corner size for the ribbon control parts. + + + + + Gets or sets the height in pixels of top background part. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control. + Note that image assigned to all StartButton properties must be the same size. The size for the button will be determined by image + size set on this property. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control when mouse is over the button. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control when button is pressed. + + + + + Represents painter for Office 2007 style ribbon overflow button. + + + + + Defines the color table for the Ribbon Tab Group. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the background color. + + + + + Gets or sets the background highlight colors. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color + + + + + Collection for Office2007RibbonTabGroupColorTable type. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007RibbonTabItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Defines the color table for RibbonTabItem states. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the default tab colors. + + + + + Gets or sets the selected tab colors. + + + + + Gets or sets the selected tab colors when mouse is over the tab. + + + + + Gets or sets the colors when mouse is over the tab but tab is not selected. + + + + + Gets or sets the round corner size for the top part of the ribbon tab item. + + + + + Defines collection for Office2007RibbonTabItemColorTable items. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007ButtonItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Defines the colors for the RibbonTabItem state like but not limited to selected, mouse over etc. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the background colors. + + + + + Gets or sets the background highlight colors. + + + + + Gets or sets the text color. + + + + + Gets or sets the text color when rendered on Windows Glass. + + + + + Defines the colors for the scroll bar control. + + + + + Gets or sets the colors for the control default state. + + + + + Gets or sets the colors for the control when mouse is pressed over the control. + + + + + Gets or sets the colors for the control when mouse is over the control but not over an active part of the control like scroll buttons. + + + + + Gets or sets the colors for the control when mouse is over the active part of the control like scroll buttons. + + + + + Gets or sets the colors for the control when control is disabled. + + + + + Represents the color table for the Scroll bar in single state. + + + + + Gets or sets the outer border color for the scroll bar thumb. + + + + + Gets or sets the inner border color for the scroll bar thumb. + + + + + Gets or sets the thumb background color blend collection. + + + + + Gets or sets the directional sign background color for the scroll bar thumb. + + + + + Gets or sets the outer border color for the scroll bar track button. + + + + + Gets or sets the inner border color for the scroll bar track button. + + + + + Gets or sets the track background color blend collection. + + + + + Gets or sets the background color for the track signs. + + + + + Gets or sets the background colors for the entire control. + + + + + Gets or sets the border colors for the entire control. + + + + + Represents the color table for Office 2007 Style Side Bar Control. + + + + + Gets or sets the background color of the control. + + + + + Gets or sets the control border color. + + + + + Gets or sets the color of SideBarPanelItem text. + + + + + Gets or sets the color table for SideBarPanelItem in default state. + + + + + Gets or sets the color table for SideBarPanelItem in mouse over state. + + + + + Gets or sets the color table for SideBarPanelItem in expanded state. + + + + + Gets or sets the color table for SideBarPanelItem when mouse button is pressed on the item. + + + + + Gets or sets color table used by renderer. + + + + + Populates Office 2007 Color Table with Silver color scheme + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines the color table for the slider item. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Gets or sets the disabled colors. + + + + + Gets or sets the optional color table for Thumb part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Gets or sets the optional color table for Increase button part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Gets or sets the optional color table for Decrease button part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Defines set of color tables for single slider part. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Renders the Slider items. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the Slider Item in single state. + + + + + Gets or sets the part background colors. + + + + + Gets or sets the part border color + + + + + Gets or sets the part border light color + + + + + Gets or sets the part foreground color. + + + + + Gets or sets the part foreground light color. + + + + + Gets or sets the track line color. + + + + + Gets or sets the track line light color. + + + + + Gets or sets the track label color. + + + + + Gets or sets the track label color when on Slider control. + + + + + Defines the color table for the SuperTooltip. + + + + + Gets or sets the background colors. + + + + + Gets or sets the text color. + + + + + Represents color table for Office 2007 style system button displayed in form caption. + + + + + Gets or sets the color table of default button state. + + + + + Gets or sets the color table of button state when mouse is over the button. + + + + + Gets or sets the color table of button state when mouse is pressed over the button. + + + + + Represents color table for single state of Office 2007 style system button displayed in form caption. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets top part background colors. + + + + + Gets or sets bottom part background colors. + + + + + Gets or sets highlight colors for the top background part. + + + + + Gets or sets highlight colors for the bottom background part. + + + + + Gets or sets the foreground color for the button. + + + + + Gets or sets the dark shading color for the foreground. + + + + + Gets or sets the light shading color for the foreground. + + + + + Represents the color table for the tab control. + + + + + Gets or sets the default tab item colors. + + + + + Gets or sets the mouse over tab item colors. + + + + + Gets or sets the selected tab item colors. + + + + + Gets or sets the color of the tab background colors. + + + + + Gets or sets the tab-strip background image. + + + + + Gets or sets the color of the tab panel background colors. + + + + + Gets or sets the color of tab panel border. + + + + + Represents the color table for the tab item. + + + + + Gets or sets top part background colors. + + + + + Gets or sets the bottom part background colors. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the text colors. + + + + + Paints background of docked bar. + + Context information + + + + Paints background of floating bar. + + Context information + + + + Paints background of popup bar. + + Context information + + + + Summary description for ButtonItemPainterHelper. + + + + + Provides data for ButtonItem rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Defines container for ribbon caption layout and quick access toolbar customization and overflow. + + + + + Summary description for DesignTimeProviderContainer. + + + + + + + + Returns insertion index for an item taking in account any system items that are at the end of the collection. + + Parent item + Returns the index at which an item should be inserted + + + + Defines delegate for RenderKeyTips event. + + + + + Defines delegate for RenderRibbonTabGroup event. + + + + + Defines delegate for RenderItemContainer event. + + + + + Defines delegate for RenderItemContainerSeparator event. + + + + + Defines delegate for ButtonItem rendering events. + + + + + Defines delegate for RibbonTabItem rendering events. + + + + + Defines delegate for toolbar rendering events. + + + + + Defines delegate for Rendering dialog launcher button rendering events. + + + + + Defines delegate for ColorItem rendering events. + + + + + Defines delegate for RibbonControl rendering events. + + + + + Defines delegate for SystemCaptionItem rendering events. + + + + + Defines delegate for MdiSystemItem rendering events. + + + + + Defines delegate for RenderFormCaptionBackground rendering events. + + + + + Defines delegate for CustomizeMenuPopup events. + + + + + Defines delegate for the Quick Access Overflow item rendering events. + + + + + Defines delegate for the Quick Access Customize item rendering events. + + + + + Defines delegate for the Quick Access Customization dialog events. + + + + + Defines delegate for the CheckBoxItem rendering events. + + + + + Defines delegate for the ProgressBarItem rendering events. + + + + + Defines delegate for the Navigation Pane rendering events. + + + + + Defines delegate for the BeforeRibbonPanelPopupClose event. + + + + + Defines delegate for the Slider item rendering events. + + + + + Defines delegate for the SideBar control rendering event. + + + + + Defines delegate for the SideBarPanelItem control rendering event. + + + + + Defines delegate for the SwitchButtonItem control rendering event. + + + + + Defines delegate for the Slider item rendering events. + + + + + Defines delegate for the StepItem rendering events. + + + + + Defines delegate for the ListBoxItem rendering events. + + + + + Defines delegate for the SideNavItem rendering events. + + + + + Represents the class that provides Office 2007 style Gallery container with drop-down ability. + + + + + Creates new instance of the class + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Returns the client rectangle which is DisplayRectangle excluding scroll-bar bounds + + + + + + Invokes GalleryPopupOpen event. + + + + + + Invokes GalleryPopupShowing event. + + + + + + Invokes GalleryPopupClose event. + + + + + + Invokes GalleryPopupFinalized event. + + + + + + Gets whether DefaultSize property is serialized by Windows Forms designer based on its current value. + + + + + Resets DefaultSize property to its default value. + + + + + Gets whether PopupGallerySize property is serialized by Windows Forms designer based on its current value. + + + + + Resets PopupGallerySize property to its default value. + + + + + Scrolls the gallery if necessary to ensures that item is visible. + + Reference to the items that is part of the gallery. + + + + Scrolls gallery down to show next line of items. + + + + + Scrolls gallery up to show previous line of items. + + + + + + Opens the Gallery popup menu. + + + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + + + + Returns whether Gallery can extend the object. + + Object to test extensibility for. + Returns true if object can be extended otherwise false. + + + + Gets the GalleryGroup item is assigned to. + + Reference to item. + An instance of GalleryGroup object or null if item is not assigned to the group + + + + Assigns the item to the gallery group. + + Item to assign. + Group to assign item to. Can be null to remove item assignment. + + + + Occurs when Gallery popup item is about to open. + + + + + Occurs just before Gallery popup window is shown. + + + + + Occurs before the Gallery popup item is closed. + + + + + Occurs after Gallery popup item has been closed. + + + + + Gets or sets orientation inside the container. GalleryContainer automatically manages the layout orientation and this property should not be changed from its default value. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets whether Gallery when on popup is using standard scrollbars to scroll the content. + Standard scrollbars are displayed on right hand side of the Gallery. Default value for this property is true. + When set to false the scroll buttons are displayed only when needed and two buttons on top and bottom + of the Gallery are used to indicate the scrolling possibility and enable scrolling. Buttons are only + visible when needed. This scrolling button style can be used for example on Application Menu + to enable scrolling of list of most recently used files. + + + + + Gets or sets whether gallery is using incremental sizing when stretched. Default + value is true. Incremental sizing will resize the width of the gallery so it fits + completely the items it can contain in available space. That means that gallery will + occupy enough space to display the whole items within available space. When set to + false, it indicates that gallery will resize to fill all available space. + + + + + Gets or sets whether Gallery width is determined based on the RibbonBar width. This property is in effect when + Gallery is hosted directly the RibbonBar control. Default value is false. + When set to true the Gallery size is changed as the RibbonBar control is resized. The initial size of the Gallery is + determined by DefaultSize property. The MinimumSize property specifies the minimum size of the Gallery. + Note that only single Gallery can be stretched per RibbonBar control. + + + + + Gets the collection of the items that are added to the popup gallery. The items displayed on the gallery are combined with the + items from this collection and they are displayed on the gallery popup. This collection can for example have items that are + customizing the choices of the commands in gallery etc. + + + + + Gets or sets the default size of the gallery. The gallery height will be always enforced so all scroll buttons can be displayed. + Gallery width should allow display of both scroll buttons and the gallery content. + + + + + Gets or sets the default size of the gallery when gallery is displayed on the popup menu. + + + + + Gets or sets whether gallery can be displayed on the popup. Default value is true. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets whether the Gallery popup is open. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets whether scroll animation is enabled. Default value is true. + Scroll animation will be disabled if gallery is running under Remote Windows Terminal session or fade animation effect is disabled on the + container control. + + + + + Gets the collection of GalleryGroup objects associated with this gallery. Groups are assigned optionally to one or more items + that are part of the GalleryContainer. Groups are used to visually group the items when gallery is displayed on the popup. + + + + + Represents the popup gallery group that groups set of items inside of gallery into the group. + + + + + Creates new instance of the object. + + + + + Gets or sets title of the group that will be displayed on the group label when on popup gallery. + + + + + Gets or sets name of the group that can be used to identify item from the code. + + + + + Gets the parent gallery for the group. + + + + + Gets or sets the display order for the group when displayed on the popup. Lower values are displayed closer to the top. Default value is 0. + + + + + Gets the collection of the items assigned to this group. + + + + + Represents the GalleryGroup typed collection. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of groups to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the GalleryGroup array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Summary description for ISimpleElement. + + + + + Represents IBlock layout manager implementation + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Indicates container title location. + + + + + Provides data for rendering ItemContainer. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ItemContainer instance being rendered. + + + + + Creates new instance of the object. + + Reference to graphics object. + Reference to ItemContainer object. + + + + Provides data for the item separator rendering inside of the ItemContainer. + + + + + Gets or sets the reference to the item separator is being rendered for. + + + + + Creates new instance of the object. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Gets accessible role. + + + + + Gets parent accessibility object. + + + + + Returns bounds of the control. + + + + + Returns current accessible state. + + + + + Represents class for item display. + + + + + Represents canvas for KeyTips + + + + + Represents data for key tips rendering. + + + + + Gets or sets the graphics object used for rendering. + + + + + Gets or sets key tip bounds. + + + + + Gets or sets the text of key tip to be rendered. + + + + + Gets or sets the font key tip should be rendered with. + + + + + Reference object for which Key Tip is rendered. For example this could be reference to an instance of ButtonItem or BaseItem as well + as reference to System.Windows.Forms.Control object. Always test for type before accessing this reference. + + + + + Creates new instance of the object and initializes it with default values. + + + + + Represents painter for the MdiSystemItem. + + + + + Paints MdiSystemItem. + + Provides arguments for the operation. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets the anti-alias setting for text-pane. + + + + + Enumeration of available common system strings. + + + + + Represents the class that provides MessageBox like functionality with the styled Office 2007 dialog and text markup support. + + + + + Displays a message box with specified text. + + The text to display in the message box. + One of the DialogResult values. + + + + Displays a message box in front of the specified object and with the specified text. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text and caption. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the DialogResult values. + + + + Displays a message box with specified text and caption. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, and buttons. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, and buttons. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, buttons, and icon. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, buttons, and icon. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + Indicates value for Message Box dialog TopMost property. + One of the DialogResult values. + + + + Occurs when text markup link on Message Box is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether MessageBoxEx is using Windows System API function to retrieve the localized strings used by MessageBoxEx. Set this to false + if you experience issues when using MessageBoxEx under certain conditions. + + + + + Gets or sets whether MessageBoxEx form has Windows Vista Glass enabled if running on + Windows Vista with Glass enabled. Default value is true. + + + + + Gets or sets the anti-alias setting for message box text. + + + + + Gets or sets the text color for the message box text. Default value is Color.Empty which indicates that system colors are used. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets the message box start position when Owner is not specified. Default value is CenterScreen. + + + + + Gets or sets the message box start position when Owner is specified. Default value is CenterParent. + + + + + Gets or sets whether message box text renders text markup. Default value is true. + + + + + Summary description for Office2003RibbonTabItemPainter. + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Paints background of docked bar. + + Context information + + + + Paints background of floating bar. + + Context information + + + + Paints background of popup bar. + + Context information + + + + Gets or sets color table used by renderer. + + + + + Gets or sets color table used by renderer. + + + + + Gets or sets color table used by renderer. + + + + + Represents Office 2007 style MdiSystemItem painter + + + + + Gets or sets color table used by renderer. + + + + + Represents base class for Ribbon Control painting. + + + + + Paints controls background + + + + + Paints form caption background + + + + + Paints form caption text when ribbon control is displaying form caption + + + + + Paints the background of quick access toolbar. + + + + + Paints controls background + + + + + Paints form caption background + + + + + Paints the background of quick access toolbar. + + + + + RibbonTabItem painter for Office 2007 style + + + + + Represents the Office Application Button displayed in the top-left corner of the Ribbon Control. + + + + + Processes the Escape key when Application Button is hosting the backstage tab and uses it to close the tab if open. + This method is called from ProcessDialogKey method of Office2007RibbonForm. + + Key data + true if key was used to close backstage tab + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether control set on BackstageTab property is used on application menu popup. + + + + + Gets or sets the backstage tab that is displayed instead of popup menu. + + + + + Summary description for PainterFactory. + + + + + Forces the creation of the objects inside of factory. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization into the ribbon control. All Ribbon Bars on the ribbon are enumerated and items + are added if they have CanCustomize=true. + + Ribbon control to enumerate. + + + + Loads the items for the customization from MetroTab control. Registered MetroToolbar controls are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control that holds references to known MetroToolbars. + + + + Gets reference to the internal Quick Access Toolbar Customization panel. + + + + + Represents the item that provides Quick Access Toolbar customization. + + + + + Creates new instance of CustomizeItem object. + + + + + Returns copy of CustomizeItem item + + + + + Overridden. Recalculates the size of the item. + + + + + Gets localized tooltip text for this instance of the item. + + Tooltip text. + + + + Called when mouse hovers over the customize item. + + + + + Gets or sets whether Customize menu item is visible. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Represents the Quick Access Toolbar customization panel which can be used on the custom QAT customization dialogs + so customization of Quick Access Toolbar can be reused. + + + + + Gets reference to the internal ItemPanel control that displays the commands for selected category. + + + + + Gets reference to the ItemPanel control that displays the Quick Access Toolbar Items. + + + + + Gets reference to the button that perform addition of commands to the Quick Access Toolbar. + + + + + Gets reference to the button that perform removal of commands from the Quick Access Toolbar. + + + + + Gets reference to the combo box control that holds all categories. + + + + + Gets reference to the combo box categories label control. + + + + + Gets reference to the check box that changes the placement of the Quick Access Toolbar. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization into the ribbon control. All Ribbon Bars on the ribbon are enumerated and items + are added if they have CanCustomize=true. + + Ribbon control to enumerate. + + + + Loads the items for the customization from MetroTab registered toolbars. All registered Toolbars are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control to enumerate. + + + + Gets or sets the value of data changed flag. + + + + + Represents the stand-alone Quick Access Toolbar control + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Returns collection of items on a bar. + + + + + Represents a single ribbon container control. + + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Closes the RibbonBar overflow popup if control is in overflow mode and displays the overflow popup that shows complete content of the control. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Invokes the LaunchDialog event to execute default launch dialog action. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Invokes DialogLauncherMouseEnter event. + + + + + Invokes DialogLauncherMouseLeave event. + + + + + Invokes DialogLauncherMouseHover event. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Resets cached content size. Content size is cached to improve performance of the control when control is + switched into overflow mode displaying a single button. If you change content of Rendering, hide/show items or + add new items you will need to call this method to erase cached value and allow the full Rendering size to be calculated. + + + + + Returns size of the control based on current content size. + + Size based on content. + + + + Sets the height of the control to the automatically calculated height based on content. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns automatically calculated width of the control given current content. + + Width in pixels. + + + + Gets the bounds of the title. + + + + + Resets TitleStyle property to its default value. Used by Windows Forms designer for design-time support. + + + + + Resets TitleStyle property to its default value. Used by Windows Forms designer for design-time support. + + + + + Occurs when dialog launcher button in title bar is clicked. Use DialogLauncherVisible property to show the button in title bar. + + + + + Occurs when overflow button for control is created because control size is below the minimum size required to display complete content of the control. + This event allows you to get access to the internal overflow button that is created and change it's properties if required. + + + + + Occurs after overflow button setup is complete and all items contained by this control are moved to it. + + + + + Occurs before overflow button is destroyed. + + + + + Occurs when mouse enters dialog launcher button. + + + + + Occurs when mouse leaves dialog launcher button. + + + + + Occurs when mouse hovers over the dialog launcher button. + + + + + Occurs when mouse is pressed over the dialog launcher button. + + + + + Gets or sets parent button when on QAT. + + + + + Gets or sets whether this RibbonBar is on QAT. + + + + + Gets or sets whether Office 2007 Design Guidelines specification for positioning KeyTips is used. + + + + + Gets or sets the Accessible name for the Dialog Launcher button + + + + + Specifies the background style of the control when mouse is over the control. Style specified here will be applied to the + BackgroundStyle. + + + + + Gets or sets image that is used as dialog luncher button in ribbon title bar. Default value is null which indicates that + default appearance for the button is used. + + + + + Gets or sets image that is used as dialog luncher button when mouse is over the button. + Note that if this property is set you also must set the DialogLauncherButton property. Images set to both + properties must have same size. Default value is null which indicates that + default appearance for the button is used. + + + + + Gets or sets maximum text length for automatic overflow button text. When overflow button is created due to the + reduced size of the control text for the button can be specified using OverflowButtonText property. If + text is not specified RibbonBar.Text property is used as overflow button text. In that case + this property specifies maximum length of the text to display on the button. Default value is 25. You can set + this property to 0 to use complete text regardless of length. + + + + + Gets or sets resize order index of the control. When control is parented to RibbonPanel control (which is the case when control is + used as part of RibbonControl) index specified here indicates the order in which controls that are part of the same panel + are resized. Lower index value indicates that control should be resized later when size needs to be reduced or earlier when size needs + to be increased. Default value is 0. + + + + + Gets or sets whether automatic overflow handling is enabled. When overflow is enabled if control is resized below the + size that is needed to display its complete content overflow button is created and all content is moved to the overflow button + popup. Control will only display overflow button when in this state and user can click overflow button to display the actual + content of the control. + Default value is true. + + + + + Gets or sets the text for overflow button that is created when ribbon bar size is reduced so it cannot display all its content. + When control is resized so it cannot display its content overflow button is created which is displayed on face of the control. + Complete content of the control is then displayed on popup toolbar when user clicks overflow button. + + + + + Gets or sets the Image for overflow button that is created when ribbon bar size is reduced so it cannot display all its content. + When control is resized so it cannot display its content overflow button is created which is displayed on face of the control. + Complete content of the control is then displayed on popup toolbar when user clicks overflow button. This Image is also used when + RibbonBar is added to the Quick Access Toolbar to identify the RibbonBar button. + + + + + Gets or sets whether dialog launcher button is visible in title of the ribbon. Default value is false. + + + + + Gets or sets default layout orientation inside the control. You can have multiple layouts inside of the control by adding + one or more instances of the ItemContainer object and changing it's LayoutOrientation property. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether ribbon bar can be customized by end user i.e. added to Quick Access Toolbar. + + + + + Returns reference to the overflow button that is used by control. + + + + + Gets whether control is in overflow state or not. + + + + + Gets or sets whether ButtonItem objects hosted on control are resized to reduce the space consumed by ribbon bar when required. + Default value is true. + + + + + Indicates whether auto-sizing for RibbonBar includes ribbon bar title width so in case when ribbon bar title width is wider than ribbon bar width the + width of the ribbon bar will always be at least the title bar width so complete title text can be displayed. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets the KeyTip for the dialog launcher button. + + + + + Gets or sets whether ribbon bar title is visible. Default value is true. + + + + + Specifies the style of the title of the control. + + + + + Specifies the style of the title of the control when mouse is over the control. + + + + + Gets the title bounds. + + + + + Gets or sets whether control changes its background when mouse is over the control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + + Defines event handler for overflow button events. + + Control that is hosting the overflow button. + Event arguments + + + + Represents event arguments for overflow button events. + + + + + Creates new instance of the class and initializes it. + + Reference to overflow button. + + + + Returns reference to the overflow button that is used by control. + + + + + Represents class for RibbonBar Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Represents the container for RibbonBar objects that will be merged into the MDI parent ribbon control. + + + + + Represents panel used by RibbonTabItem as a container panel for the control. + + + + + Creates new instance of the panel. + + + + + Scrolls the RibbonBar controls to the right one step if there is more of the controls on the panel that can fit into the available space. + + + + + Scrolls the RibbonBar controls one step to the left. + + + + + Resets the panel scroll position. + + + + + Gets or sets whether default control layout is used instead of Rendering layout for RibbonBar controls positioning. By default + internal layout logic is used so proper resizing of Ribbons can be performed. You can disable internal layout by setting this property + to true. + Default value is false. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets whether last RibbonBar is stretched to fill available space inside of the panel. Default value is false. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Removes any RibbonBar objects that were merged into the Ribbon control. + + Reference to ribbon control to remove RibbonBar objects from. + + + + Merges RibbonBar objects from this container into the Ribbon control. + + Reference to ribbon control to remove RibbonBar objects from. + + + + Raises the BeforeRibbonMerge event. + + + + + Raises the AfterRibbonMerge event. + + + + + Raises the BeforeRibbonUnmerge event. + + + + + Raises the AfterRibbonUnmerge event. + + + + + Occurs before the RibbonBar objects from container are merged into the Ribbon control. + + + + + Occurs after the RibbonBar objects are merged into the Ribbon control. + + + + + Occurs after the RibbonBar objects are removed from the Ribbon control. + + + + + + Gets whether RibbonBar controls are merged into the RibbonControl. + + + + + Gets or sets whether RibbonTab item the RibbonBar controls are added to when merged is automatically activated (selected) after + controls are merged. Default value is true. + + + + + Gets or sets whether merge functionality is enabled for the container. Default value is true. + + + + + Gets or sets the Ribbon Tab text for the tab that will be created when ribbon bar objects from this container are merged into the ribbon. + + + + + Gets or sets the Key Tips access key or keys for the Ribbon Tab. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the predefined color for the ribbon tab that is created when ribbon bar controls are merged into the ribbon. + Default value is eRibbonTabColor.Default + + + + + Gets or sets the name of RibbonTabItem object that already exists on Ribbon control into which the RibbonBar controls are merged. + If name is not specified new RibbonTabItem is created and RibbonBar controls are added to it. + + + + + Gets or sets the name of the RibbonTabItemGroup the new Ribbon Tab Item that is created will be added to. The RibbonTabItemGroup + must be created and added to RibbonControl.TabGroups collection. + + + + + Gets or sets the insertion index for the ribbon tab item that is created when ribbon bars are merged into the ribbon control. + Default value is -1 which means that ribbon tab item is appended to the existing ribbon tab items. + + + + + Gets or sets whether panel automatically provides shadows for child controls. + + + + + Represents Rendering control composed of two parts, RibbonStrip and multiple RibbonBar controls per strip. + + + + + Gets the name of the QAT Customize Item which is used to display the QAT Customize Dialog box. + + + + + Gets the name of the Add to Quick Access Toolbar context menu item. + + + + + Gets the name of the Remove from Quick Access Toolbar context menu item. + + + + + Gets the name of the QAT placement change context menu item. + + + + + Gets the name of the Minimize Ribbon Item which is used to minimize the ribbon. + + + + + Gets the name of the Maximize Ribbon Item which is used to maximize the ribbon. + + + + + Gets the name of the label displayed on Quick Access Toolbar customize popup menu. + + + + + Gets the string that is used as starting name for the frequently used QAT menu items created when QAT Customize menu is displayed. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Performs the setup of the RibbonPanel with the current style of the Ribbon Control. + + Panel to apply style changes to. + + + + Creates new Rendering Tab at specified position, creates new associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + Specifies the position of the new tab inside of Items collection. + New instance of the RibbonTabItem that was created. + + + + Creates new Rendering Tab and associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + New instance of the RibbonTabItem that was created. + + + + Recalculates layout of the control and applies any changes made to the size or position of the items contained. + + + + + Returns Control region if any when control is hosted by Office2007RibbonForm + + + + + + Occurs when text markup link is clicked. + + + + + Resets DefaultGroupFont property to default value null. + + + + + Raises the BeforeRibbonPanelPopupClose event. + + + + + Raises the AfterRibbonPanelPopupClose event. + + + + + Raises the BeforeRibbonPanelPopup event. + + + + + + Raises the BeforeRibbonPanelPopup event. + + + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Displays the active ribbon panel on the popup if ribbon control is collapsed. + + Reference to the object that was cause of the event. This is provided to the BeforeRibbonPanelPopupClose event if an menu needs to be closed. + Indicates the event source. This is provided to the BeforeRibbonPanelPopupClose event if an menu needs to be closed. + + + + Closes the Ribbon tab menu with source set to null and event source set to Code. + + + + + Closes the Ribbon Menu if one is currently displayed. + + + + + Suspends the form layout. + + + + + Suspends the form layout. + + + + + Suspends the form layout. + + + + + Selects first visible RibbonTab. + + Returns true if selection is performed otherwise false. + + + + Called when right-mouse button is pressed over RibbonBar + + Reference to RibbonBar object. + + + + Called when right-mouse button is pressed over RibbonStrip + + Reference to RibbonStrip object. + + + + Displays popup customize context menu for given customization object. + + Object that should be customized, usually an instance of BaseItem. + Indicates whether customize menu is displayed over ribbon strip + + + + Raises the QatPlacementChanged event. + + Event arguments. + + + + Removes an item from the Quick Access Toolbar. + + Reference to the item that is already part of Quick Access Toolbar. + + + + Adds an instance of base type BaseItem or RibbonBar to the Quick Access Toolbar. Note that this method creates + new instance of the item or an representation of the item being added and adds that to the Quick Access Toolbar. + + Reference to the item to add, must be an BaseItem type or RibbonBar type. + + + + Raises the BeforeCustomizeMenuPopup event. + + Event arguments + + + + Raises the BeforeAddItemToQuickAccessToolbar event. + + Event arguments. + + + + Shows the quick access toolbar customize dialog. + + + + + Applies the Quick Access Toolbar customization changes made on QatCustomizePanel to the Ribbon Control Quick Access Toolbar. Note that QatCustomizePanel.DataChanged property indicates whether user made any changes to the data on the panel. + + Reference to the QatCustomizePanel + + + + Raises the AfterQatDialogChangesApplied event. + + + + + Returns the ribbon Application Button. + + reference to Application Button or null if button is not found. + + + + Occurs when Quick Access Toolbar placement is changed, i.e. below or above the Ribbon. + + + + + Occurs just before the customize popup menu is displayed and provides the ability to cancel the menu display as well + as to add/remove the menu items from the customize popup menu. + + + + + Occurs before an item is added to the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs before an item is removed from the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs when Item on ribbon tab strip or quick access toolbar is clicked. + + + + + Occurs before Quick Access Toolbar dialog is displayed. This event provides the opportunity to cancel the showing of + built-in dialog and display custom customization dialog. You can also set the Dialog property of the event arguments to + the custom dialog you want used instead of the DotNetBar system customization dialog. + + + + + Occurs after the Quick Access Toolbar dialog is closed. + + + + + Occurs after any changes done on the Quick Access Toolbar dialog are applied to the actual Quick Access Toolbar. + + + + + Occurs after selected Ribbon tab has changed. You can use + RibbonControl.SelectedRibbonTabItem + property to get reference to newly selected tab. + + + + + Occurs before selected RibbonPanel is displayed on popup while ribbon is collapsed. This event gives you the opportunity to cancel the popup of the ribbon panel. + + + + + Occurs after selected RibbonPanel is displayed on popup while ribbon is collapsed. + + + + + Occurs before RibbonPanel popup is closed and provides opportunity to cancel the closing. Note that if you cancel closing of ribbon popup you are + responsible for closing the popup. + + + + + Occurs after RibbonPanel popup is closed. + + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs after Expanded property has changed. + + + + + Gets the collection of the Quick Access Toolbar Frequently used commands. You should add existing buttons to this collection that + you already have on the RibbonBar controls or on the application menu. The list will be used to construct the frequently used + menu that is displayed when Customize Quick Access Toolbar menu is displayed and it allows end-user to remove and add these + frequently used commands to the QAT directly from this menu. + Note that items you add here should not be items that are already on Quick Access Toolbar, i.e. in RibbonControl.QuickToolbarItems collection. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether merge functionality is enabled for the control. Default value is true. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets whether custom caption and quick access toolbar provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets the indent of the ribbon strip. The indent setting is useful when control is used with caption visible and the Office 2007 + style start button. The indent specified here will move the ribbon strip so the start button does not overlap the tabs. + Value of this property is used only when CaptionVisible = true. + Default value is 46. + + + + + Gets or sets the font used by the ribbon strip. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Collection of RibbonTabItemGroup items. Groups are assigned optionally to one or more RibbonTabItem object through the RibbonTabItem.Group + property to visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets or sets the height in pixels of tab group line that is displayed above the RibbonTabItem objects that have group assigned. + Default value is 10 pixels. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. + + + + + Gets or sets whether tab group line that is displayed above the RibbonTabItem objects that have group assigned is visible. + Default value is false. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. Use TabGroupHeight + property to control height of the group line. + + + + + Gets or sets default font for tab groups. This font will be used if font is not specified by group style element. + + + + + Specifies the background style of the control. + + + + + Gets or sets the currently selected RibbonTabItem. RibbonTabItems are selected using the Checked property. Only a single + RibbonTabItem can be selected (Checked) at any given time. + + + + + Returns reference to internal ribbon strip control. + + + + + Returns collection of items on a bar. + + + + + Returns collection of quick toolbar access and caption items. + + + + + Gets/Sets the visual style of the control. If you are changing style to Office 2007 or Office 2010 use RibbonPredefinedColorSchemes.ChangeStyle method instead to ensure + all controls are switched properly. + + + + + Indicates whether control automatically updates Padding property for the ribbon and RibbonPanel based on style. Default value is true. + + + + + Gets or sets the Office 2007 Renderer global Color Table. Setting this property will affect all controls on the form that are using Office 2007 global renderer. + + + + + Gets whether collapsed ribbon is displaying the selected ribbon panel as popup. + + + + + Gets or sets whether mouse wheel scrolls through the ribbon tabs. Default value is true. + + + + + Gets or sets whether control is expanded or not. When control is expanded both the tabs and the tab ribbons are visible. When collapsed + only tabs are visible. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + Default value is true. + + + + + Gets or sets whether control is collapsed/expanded when Ctrl+F1 key is clicked. + Default value is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. Default value is false. + + + + + Indicates the position of the BackgroundImage + + + + + Specifies whether the MDI system buttons are displayed in ribbon strip when MDI Child window is maximized. + + + + + Gets or sets whether Ribbon control employs the Windows Vista Glass support when available. This is managed automatically by Ribbon Control and + no setting is necessary on your part. + + + + + Indicates Quick Access Toolbar height when positioned below the Ribbon. Default value of 0 indicates auto-height. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets whether external implementation for ribbon bar and menu item customization will be used for customizing the ribbon control. When set to true + it enables the displaying of RibbonBar and menu item context menus which allow customization. You are responsible for + adding the menu items to context menu to handle all aspects of item customization. See "Ribbon Control Quick Access Toolbar Customization" topic in help file under How To. + Default value is false. + + + + + Gets or sets whether end-user customization of the placement of the Quick Access Toolbar is enabled. User + can change the position of the Quick Access Toolbar using the customize menu. Default value is true. + + + + + Gets or sets whether customize dialog is used to customize the quick access toolbar. You can handle the EnterCustomize event + to display your custom dialog instead of built-in dialog for customization. Default value is true. + + + + + Gets or sets the categorization mode for the items on Quick Access Toolbar customize dialog box. Default value categorizes + items by the ribbon bar they appear on. + + + + + Gets or sets whether Quick Access toolbar is positioned below the ribbon. + + + + + Gets or sets the Quick Access Toolbar layout description. You can use the value obtained from this property to save + the customized Quick Access Toolbar into registry or into any other storage object. You can also set the saved layout description back + to restore user customize layout. + + + + + Gets or sets whether Quick Access Toolbar has been customized by end-user. You can use value of this property to determine + whether Quick Access Toolbar layout that can be accessed using QatLayout property should be saved. + + + + + Gets the reference to the ribbon localization object which holds all system text used by the component. + + + + + Provides data for RibbonBar rendering events. + + + + + Gets or sets the reference to Graphics object. + + + + + Gets or sets the part bounds. + + + + + Gets or sets the reference to RibbonBar. + + + + + Gets or sets whether mouse over state should be painted for the ribbon bar part. + + + + + Gets or sets whether mouse is pressed over the ribbon part. + + + + + Gets or sets the region that defines the content bounds. When background is rendered the renderer should set this property + to define the content clip. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to Graphics object. + Bounds of the part to be rendered. + Reference to ribbon bar. + + + + Represents the class that stores text used by ribbon control only for localization purposes. + + + + + Gets or sets the title text of the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the "Place Quick Access Toolbar below the Ribbon" check-box on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Choose commands from label on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Remove button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Add button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the OK button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Cancel button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on Quick Access Toolbar customize menu label. + + + + + Gets or sets the text that is used on context menu used to change placement of the Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to change placement of the Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu item used to minimize the Ribbon. + + + + + Gets or sets the text that is used on context menu item used to maximize the Ribbon. + + + + + Represents ribbon overflow button. + + + + + Gets or sets the ribbon bar control overflow button is displayed on. + + + + + Represents predefined color schemes for ribbon controls. + + + + + Applies default gray color scheme to background and title. + + Reference to object. + + + + Applies orange color scheme to background and title. + + Reference to object + + + + Apply Office 2003 color scheme to background and title. + + Reference to object + + + + Applies Office 2003 color scheme to ribbon control background. + + Reference to object. + + + + Applies Gray color scheme to ribbon control background. + + Reference to object. + + + + Applies Office 2007 color table to ribbon control background. + + Reference to object. + + + + Applies Office 2007 Luna blue color scheme to the Ribbon Bar. + + Reference to object. + + + + Applies specified style to Ribbon control and all other controls that are managed by the ribbon control. + This method is useful for example when switching the color tables for Office 2007 renderer. Once + the GlobalManager.Renderer color table is changed you can call this method to apply color table + changes to the Ribbon Control and other controls managed by it. + + RibbonControl to set the style on. + Visual style to apply. + + + + Applies specified visual style to the RibbonBar control. + + RibbonBar control to set the style on. + Visual style to apply. + + + + Applies current color scheme and layout settings to the container which acts as top-level file menu container. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the two column menu container used by the top-level file menu. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the first column menu container used by the top-level file menu. + This column usually contains menu items. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the first column menu container used by the top-level file menu. + This column usually contains most recently used list of files or documents. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the bottom menu container used by the top-level file menu. + This container usually contains Options and Exit buttons. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Changes the Office 2007 color table for all DotNetBar controls on the open forms that are tracked by Application.OpenForms collection. You can use this function for example to + apply Black color scheme to all DotNetBar control on all open forms. The color table will be changed only for controls that + have Office 2007 style. Any other style will be unchanged. + + Color table to select and apply. + + + + Applies current Office 2007 style color table set on GlobalManager.Renderer to all DotNetBar controls with Office 2007 style on all open forms. + + + + + Changes the Office 2007 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Office 2007 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Office 2007 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Office 2007 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Applies current Office 2007 style color table to all DotNetBar controls on the form. + + Reference to the form or parent control that contains DotNetBar controls you would like to apply color table to. + + + + Changes style for all controls on Application.OpenForms to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls on forms. + + + + Changes style for all controls on Application.OpenForms to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls on forms. + Color used to blend with the base color scheme. + + + + Changes style for all controls on a form to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls. + Form or Control to process. + + + + Changes style for all controls on a form to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls. + Form or Control to process. + Color used to blend with the base color scheme. + + + + Changes the Office 2010 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Office 2010 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Office 2010 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Changes the Windows 7 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Windows 7, Office 2007, 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Windows 7 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Windows 7, Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Windows 7 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Windows 7, Office 2007 and 2010 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Defines the Ribbon Quick Access Overflow system item. Used internally by Ribbon control. + + + + + Returns copy of DisplayMoreItem item + + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Returns the insertion index for the items removed from overflow popup. Assumes that right-most items are removed first by the layout manager. + + + + + + Represents RibbonStrip control internally used by RibbonControl. + + + + + Occurs when text markup link is clicked. + + + + + Resets DefaultGroupFont property to default value null. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Called when ShowKeyTips on RibbonBar contained by this Ribbon is set to true + + + + + Forces the control to exit Ribbon Key-Tips mode. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Returns true if point is inside the caption area. + + Client point coordinates. + True if point is inside of caption area otherwise false. + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether RibbonStrip control employs the Windows Vista Glass support when available. This is managed automatically by Ribbon Control and + no setting is necessary on your part. + + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets whether custom caption line provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the indent of the ribbon strip. The indent setting is useful when control is used with caption visible and the Office 2007 + style start button. The indent specified here will move the ribbon strip so the start button does not overlap the tabs. + Value of this property is used only when CaptionVisible = true. + Default value is 46. + + + + + Gets or sets the height in pixels of tab group line that is displayed above the RibbonTabItem objects that have group assigned. + Default value is 14 pixels. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. + + + + + Gets or sets whether tab group line that is displayed above the RibbonTabItem objects that have group assigned is visible. + Default value is false. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. Use TabGroupHeight + property to control height of the group line. + + + + + Collection of RibbonTabItemGroup items. Groups are assigned optionally to one or more RibbonTabItem object through the RibbonTabItem.Group + property to visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets/Sets the visual style of the control. + + + + + Returns collection of items on a bar. + + + + + Returns currently selected RibbonTabItem. RibbonTabItems are selected using the Checked property. Only a single + RibbonTabItem can be Checked at any given time. + + + + + Gets or set whether TabGroup painting is suspended. + + + + + Gets or sets default font for tab groups. This font will be used if font is not specified by group style element. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + + + + + Gets or sets whether F10 key is ignored as way to set KeyTips focus to Ribbon. + + + + + Gets whether Ribbon is in key-tips mode including its child controls. + + + + + Returns collection of items on a bar. + + + + + Gets the reference to the internal container item for the items displayed in control caption. + + + + + Gets the reference to the internal container for the ribbon tabs and other items. + + + + + Defines the internal container item for the ribbon strip control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent RibbonStrip control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Return Sub Item at specified location + + + + + Gets whether Metro Backstage application menu is open. + + + + + Gets reference to internal ribbon strip container that contains tabs and/or other items. + + + + + Gets reference to internal caption container item that contains the quick toolbar, start button and system caption item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Provides data for RenderRibbonTabGroup event. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets RibbonTabItemGroup being rendered. + + + + + Gets or sets the bounds of the tab group. Bounds specified here are bounds of the tab group title. GroupBounds contains the bounds + that include all tabs that belong to the tab group. + + + + + Gets or sets the font that should be used to render group text. + + + + + Gets or sets group bounds including the tabs that belong to the group. + + + + + Gets or sets the effective style for the group. + + + + + Gets whether Windows Vista glass is enabled. + + + + + Represents Rendering Tab used on RibbonControl. + + + + + Selects the tab. + + + + + Resets Group property to default value null. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets whether tab renders its state. Used internally by DotNetBar. Do not set. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Gets or sets whether size of the tab has been reduced below the default calculated size. + + + + + Gets or sets the predefined color of item. Color specified here applies to items with Office 2007 style only. It does not have + any effect on other styles. Default value is eRibbonTabColor.Default + + + + + Gets or sets the group this tab belongs to. Groups are optional classification that is used to + visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets or sets the panel assigned to this ribbon tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the text color of the button. + + + + + Represents a group RibbonTabItem objects are assigned to. + + + + + Selected first tab that is part of this group. + + + + + Gets or sets the predefined color of the group. Color specified here applies to groups with Office 12 style only. It does not have + any effect on other styles. Default value is eRibbonTabGroupColor.Default + + + + + Gets or sets the custom color name. Name specified here must be represented by the coresponding object with the same name that is part + of the Office2007ColorTable.RibbonTabGroupColors collection. See documentation for Office2007ColorTable.RibbonTabGroupColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + + + + + Gets the style for tab group. + + + + + Gets or sets title of the group that will be displayed when group is visually represented. + + + + + Gets or sets parent ribbon strip for this group. + + + + + Gets or sets whether RibbonTabItem objects that belong to this group are visible. Setting this property will + show/hide all RibbonTabItem objects that are assigned to this group through RibbonTabItem.Group property. + + + + + Gets whether any tab from this tab group is selected. + + + + + Gets or sets name of the group that can be used to identify item from the code. + + + + + Gets an array of Rectangle objects that describe the visual position on the ribbon control of the group titles displayed. + If tabs that belong to a tab group are not next to each other then there will be multiple rectangle returned as part of the array + for each tab group that is apart. + + + + + Collection of RibbonTabItemGroup objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of groups to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the RibbonTabItemGroup array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides data for ButtonItem rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Summary description for SimpleElement. + + + + + Summary description for SimpleElementLayout. + + + + + Indicates absolute vertical alignment of the content. + + + + + Content is aligned to the top + + + + + Content is aligned in the middle + + + + + Content is aligned at the bottom + + + + + Indicates absolute horizontal alignment + + + + + Content is left aligned + + + + + Content is centered + + + + + Content is right aligned + + + + Indicates alignment of a part of the cell like image or check box in relation to the text. + + + + Part is aligned to the left center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the right center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the top left of the text assuming left-to-right + orientation. + + + + Part is aligned above the text and centered. + + + + Part is aligned to the top right of the text assuming left-to-right + orientation. + + + + + Part is aligned to the bottom left of the text assuming left-to-right + orientation. + + + + Part is aligned below the text and centered. + + + + Part is aligned to the bottom right of the text assuming left-to-right + orientation. + + + + + Summary description for SimpleNodeDisplay. + + + + + Represents information neccessary to paint the cell on canvas. + + + + + Represents the slider item which allows you to select a value from predefined range. + + + + + Creates new instance of SliderItem. + + + + + Creates new instance of SliderItem and assigns the name to it. + + Item name. + + + + Creates new instance of SliderItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Raises the IncreaseButtonClick event. + + Provides event arguments + + + + Raises the DecreaseButtonClick event. + + Provides event arguments + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Advances the current position of the slider by the specified amount. + + The amount by which to increment the sliders current position. + + + + Advances the current position of the slider by the specified amount. + + The amount by which to increment the sliders current position. + + + + Raises the ValueChanged event. + + + + + Raises the ValueChanged event. + + + + + Raises the ValueChanging event. + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Occurs after Value property has changed. + + + + + Occurs before Value property has changed. + + + + + Occurs when Increase button is clicked using mouse. + + + + + Occurs when Decrease button is clicked using mouse. + + + + + Gets or sets the slider mouse over part. + + + + + Gets or sets the slider part that mouse is pressed over. This property should not be modified and it is for internal usage only. + + + + + Returns the label bounds inside of the control. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the slider. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the slider part of the item in pixels. Value must be greater than 0. Default value is 136. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the tooltip for the Increase button of the slider. + + + + + Gets or sets the tooltip for the Decrease button of the slider. + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Indicates spacing for an user interface element either padding or margins. + + + + + Gets or sets the amount of the space on the left side. + + + + + Gets or sets the amount of the space on the right side. + + + + + Gets or sets the amount of the space on the top. + + + + + Gets or sets the amount of the space on the bottom. + + + + + Gets total horizontal spacing. + + + + + Gets total vertical spacing. + + + + + Gets whether all memebers of class are set to 0. + + + + + Summary description for SubItemsCollection. + + + + + Sorts the items in the collection using the built in IComparable on each item which sorts items by the Text property. + + + + + Sorts the items in the collection using specified comparer. + + Comparer to use for item sorting. + + + + Gets whether MinimumTooltipSize property should be serialized. + + + + + Retrieves SuperTooltipInfo for given component or return null if component does not have tooltip associated with it. + + + + + Associates SuperTooltipInfo with given component. + + Reference to supported component. + Instance of SuperTooltipInfo class. If null is passed the SuperTooltip is detached from the given component. + + + + Raises the MarkupLinkClick event. + + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method at specific location on the screen. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + Specifies the explicit position of the SuperTooltip in screen coordinates. + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + + + + Raises the TooltipClosed event. + + Provides event arguments. + + + + Hides tooltip if it is visible. + + + + + Resets Hoover timer. + + + + + Occurs just before tooltip is displayed and gives you opportunity to cancel showing of tooltip. + + + + + Occurs after tooltip has been closed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the maximum width of the super tooltip. Default value is 0 which indicates that maximum width is not used. The maximum width property + will not be used if custom size is specified. + + + + + Gets or sets whether form active state is ignored when control is deciding whether to show tooltip. By default this property is set to false + which indicates that tooltip will be shown only if parent form is active. When set to true the form active state is ignored when + deciding whether to show tooltip. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets whether SuperTooltip will be shown for the controls assigned to it. Default value is true. You can set + this property to false to disable SuperTooltip for all controls assigned to it. + + + + + Gets or sets whether tooltip is shown immediately after the mouse enters the control. The default value is false which indicates + that tooltip is shown after system hover timeout has expired which provides slight delay before tooltip is shown. + + + + + Gets or sets the minimum tooltip size. Default value is 150 width and 24 height. + + + + + Gets or sets the duration in seconds that tooltip is kept on screen after it is displayed. Default value is 20 seconds. + You can set this value to 0 to keep tooltip displayed until user moves mouse out of control or application loses focus. + + + + + Gets or sets the delay time for hiding the tooltip in milliseconds after + mouse has left the control. Default value is 0 which means that tooltip will be + hidden as soon as mouse leaves the control tooltip was displayed for. You can use + this property to provide the user with enough time to move the mouse cursor to the + tooltip so user can act on the content of the tooltip, like hyper links. + + + + + Gets or sets whether tooltip position is checked before tooltip is displayed and adjusted to tooltip always + falls into screen bounds. Default value is true. + + + + + Gets or sets whether tooltip position is checked before tooltip is displayed and adjusted so tooltip does not overlaps the + control it is displayed for. Default value is true. + + + + + Gets or sets the tooltip position in relationship to the control tooltip is providing information for. + Set this property to false if you want tooltip to be displayed below the mouse cursor. Default value is + true which indicates that tooltip is displayed below mouse cursor but it is positioned below the control + that it provides the information for so it is not covering its content. + + + + + Gets or sets default setting for new Tooltips you create in design time. If all your tooltips have common elements + you can change this property to reflect these default setting before you start writing tooltips for all controls on the form. + As you start creating new tooltips for controls on the form default values specified here will be used as starting values + for new tooltip you are creating. + + + + + Returns instance of default tooltip information used in design-time. + + + + + Gets the reference to internal Hashtable that contains reference to all controls and assigned SuperTooltips. This + collection must not be modified directly and it is automatically managed by the SuperTooltip component. You can use it + for example to change the color for all SuperTooltips managed by the component but you should not add or remove items to it. + Instead use SetSuperTooltip methods to add or remove the tooltip for a component. + + + + + Gets or sets the hover delay multiplier which controls how fast tooltip appears. The value set here indicates + how many hover events are needed to occur before the tooltip is displayed. + + + + + Returns whether tooltip is visible. + + + + + Gets reference to instance of tooltip control if any has been created at the time call is made. + + + + + Gets or sets default tooltip font. Default value is null which means that default system font is used. + + + + + Gets or sets whether complete tooltip is shown including header, body and footer. Default value is true. When set to false only tooltip header will be shown. + Providing this option to your end users as part of your application setting allows them to customize the level of information displayed and reduce it after they are familiar with your product. + + + + + Gets or sets whether tooltip is shown when control that tooltip is assigned to is focused. You can set this value to false to disable Tooltip display when control receives input focus. Default value is true. + + This property is effective only when Super Tooltip is assigned to the controls that inherit from System.Windows.Forms.Control class and it relies on Focused property of respective control for proper function. + + + + Provides information about SuperTooltip attached to a component. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class with specified parameters. + + + + + Creates new instance of the class with specified parameters. + + + + + Returns whether property should be serialized. + + + + + Gets or sets whether tooltip header text is visible or not. Default value is true. + + + + + Gets or sets whether tooltip footer text is visible or not. Default value is true. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets body text. + + + + + Gets or sets body image displayed to the left of body text. + + + + + Gets or sets footer image displayed to the left of footer text. + + + + + Gets or sets the custom size for tooltip. Default value is 0,0 which indicates that tooltip is automatically + resized based on the content. + + + + + Gets or sets predefined tooltip color. + + + + + Extensibility interface that custom components may implement + so SuperTooltip can be provided for them. + + + + + This event should be triggered by the component when it wants to display SuperTooltip. Normally + this event would be equivalent of MouseHover event but you can trigger it in response to anything else. + Sender for this event must be object that implements ISuperTooltipInfoProvider interface. + + + + + This event should be triggered by component when it wants to hide SuperTooltip. For example this event + might be triggered when mouse leaves your component. Sender of this event must be object that implements ISuperTooltipInfoProvider interface. + + + + + Returns rectangle of the visible area of the component in screen coordinates. This rectangle is used + to position SuperTooltip on the screen. + + + + + Delegate for SuperTooltip events. + + + + + Represents event arguments for PanelChanging event. + + + + + Set to true to cancel display of tooltip. + + + + + Object that has triggered displaying of tooltip + + + + + Information that will be used to populate tooltip. + + + + + Location where tooltip will be displayed. You can change the location here to display tooltip at different position. + + + + + Indicates the tooltip size, read-only and valid only if tooltip position is checked on screen. + + + + + Default constructor. + + + + + Represents SuperTooltipControl. + + + + + Default constructor. + + + + + Paints insides of the control. + + Paint event arguments. + + + + Recalculates and set size of the control based on the content that is made available to it. + + + + + Calculates the tooltip height based on the specified width. + + Tooltip width + Size of the tooltip based on specified width. + + + + Shows tooltip at specified screen coordinates. + + X coordinate + Y coordinate + Indicates whether to enforce the screen position of tooltip if tooltip falls out of screen bounds. + + + + Updates the popup shadow size and position if shadow is visible. + + + + + Gets or sets whether complete tooltip is shown including header, body and footer. Default value is true. When set to false only tooltip header will be shown. + Providing this option to your end users as part of your application setting allows them to customize the level of information displayed and reduce it after they are familiar with your product. + + + + + Gets or sets the maximum width of the super tooltip. Default value is 0 which indicates that maximum width is not used. The maximum width property + will not be used if custom size is specified. + + + + + Gets or sets the minimum tooltip size. Default value is 150, 50 + + + + + Gets or sets image used next to body text. + + + + + Gets or sets image used next to footer text. + + + + + Gets or sets text displayed in header of tooltip + + + + + Gets or sets whether header in tooltip is visible. Default value is true. + + + + + Gets or sets text displayed in footer of the tooltip + + + + + Gets or sets whether footer in tooltip is visible. Default value is true. + + + + + Gets or sets whether line above footer text is drawn to separate footer from body text. Default value is true. + + + + + Gets or sets whether mouse click on super tooltip will activate it, make it active window. Default value is true. + + + + + Gets or sets whether tooltip control is popup tooltip or standard control. Default is false which means tooltip is popup style. + + + + + Represents class that holds padding information for user interface elements. + + + + + Gets or sets padding on left side. Default value is 0 + + + + + Gets or sets padding on right side. Default value is 0 + + + + + Gets or sets padding on top side. Default value is 0 + + + + + Gets or sets padding on bottom side. Default value is 0 + + + + + Creates new instance of the class and initializes it. + + Padding for all sides + + + + Creates new instance of the class and initializes it. + + Left padding + Right padding + Top padding + Bottom padding + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets amount of Top padding + + + + + Gets amount of Left padding + + + + + Gets amount of Bottom padding + + + + + Gets amount of Right padding + + + + + Gets amount of horizontal padding (Left+Right) + + + + + Gets amount of vertical padding (Top+Bottom) + + + + + Gets whether Padding is empty. + + + + + Gets or sets the padding for all sides. + + + + + Occurs when property value has changed. + + + + + Summary description for ThemedButtonItemPainter. + + + + + Provides data for toolbar rendering. + + + + + Gets or sets the reference to Bar object being rendered + + + + + Gets or sets Graphics object bar is rendered on. + + + + + Gets the bounds of the region that should be rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object and initializes it with default data. + + Reference to bar object. + Reference to Graphics object. + + + + Describes the round rectangle shape. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + + + + + Gets or sets the top-left round corner size. + + + + + Gets or sets the top-right round corner size. + + + + + Gets or sets the bottom-left round corner size. + + + + + Gets or sets the bottom-right round corner size. + + + + + Gets whether all corner size values are set to zero which results in no rounded corners. + + + + + Gets whether all corner size values are set to same value. + + + + + Represents DocumentDockContainer object converter. + + + + + Initializes a new instance of the ScrollBarAdv class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Gets whether scrollbar is vertical. + + true if scrollbar is vertical otherwise false for horizontal scrollbar + + + + Raises the Scroll event. + + Provides Event arguments. + + + + Raises the ValueChanged event. + + Provides Event arguments. + + + + Called when Command property value changes. + + + + + Occurs when the Value property is changed, either by a Scroll event or programmatically. + + + + + Occurs when the scroll box has been moved by either a mouse or keyboard action. + + + + + Gets or sets a value to be added to or subtracted from the Value property when the scroll box is moved a large distance. + A numeric value. The default value is 10. + ArgumentOutOfRangeException is raised if assigned value is less than 0. + + + + + Gets or sets the upper limit of values of the scrollable range. + A numeric value. The default value is 100. + + + + + Gets or sets the lower limit of values of the scrollable range. + A numeric value. The default value is 0. + + + + + Gets or sets the value to be added to or subtracted from the Value property when the scroll box is moved a small distance. + A numeric value. The default value is 1. + ArgumentOutOfRangeException is raised if assigned value is less than 0. + + + + + Gets or sets a numeric value that represents the current position of the scroll box on the scroll bar control. + A numeric value that is within the Minimum and Maximum range. The default value is 0. + ArgumentOutOfRangeException is raised if assigned value is less than the Minimum property value or assigned value is greater than the Maximum property value. + + + + + Gets or sets the scroll bar appearance style. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Summary description for ScrollButton. + + + + + Clean up any resources being used. + + + + + Represents class that provides shadows to elements. + + + + + Creates new instance of shadow painter. + + + + + Represents class that provides display context for shadow painter. + + + + + Summary description for ShortcutList. + + + + + Represents the Outlook like Side-bar Control. + + + + + Creates new instance of side bar control. + + + + + Clean up any resources being used. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Loads the Side bar definition from file. + + Definition file name. + + + + Saves the Side bar definition to file. + + Definition file name. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets visual appearance for the control. + + + + + Gets or sets whether flat side bar is using system colors. + + + This property is used internally by side bar to determine whether to reset color scheme based on system colors. + If you want side bar to use system colors you need to set PredefinedColorScheme property. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets/Sets the visual style of the SideBar. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Returns the collection of side-bar Panels. + + + + + Gets or sets the expanded panel. Only one panel can be expanded at a time. + + + + + Gets or sets the form SideBar is attached to. + + + + + Gets or sets whether end-user can rearrange the items inside the panels. + + + + + Gets or sets whether native .NET Drag and Drop is used by side-bar to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets/Sets control border style. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Provides layout for Side-Bar control. + + + + + Creates new instance of SideBarContainerItem class. + + + + + Returns copy of SideBarContainerItem item + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Sets input focus to next visible item in Explorer Bar. + + True if focus was set to next visible item otherwise false. + + + + Sets input focus to previous visible item in Explorer Bar. + + True if focus was set to previous visible item otherwise false. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Summary description for SideBarPanelControl. + + + + + Represents the Side-Bar Panel item. + + + + + Creates new instance of SideBarPanelItem. + + + + + Creates new instance of SideBarPanelItem and assigns the name to it. + + Item name. + + + + Creates new instance of SideBarPanelItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of SideBarPanelItem item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Shows tooltip for this item. + + + + + Forces the repaint the item. + + + + + Must be called by any sub item that implements the image when image has changed + + + + + Gets whether mouse is over the panel header. + + + + + Gets whether mouse is pressed over the panel header. + + + + + Specifies panel title text alignment. Default value is Center. + + + + + Gets or sets the layout type for the items. Default layout orders items in a single column. Multi-column layout will order + items in multiple colums based on the width of the control. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the item background style. + + + + + Gets or sets the item header style. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header style when mouse is over the header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header style when left mouse button is pressed on header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style when mouse is over the header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style when left mouse button is pressed on header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets whether the font used to draw the item text is bold. + + + + + Gets or sets whether the font used to draw the item text is bold when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is underlined when mouse is over the item. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Gets or sets the text color of the button. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets the rectangle of the panel item Button. + + + + + Gets or sets the index of the first visible item on the panel. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + This setting applies to the buttons inside Panel as well. + + + + + Gets or sets whether scroll buttons are displayed when content of the panel exceeds it's height. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Specifies the Button image. + + + + + Specifies the index of the image for the button if ImageList is used. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the index of the image for the button when mouse is over the item when ImageList is used. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Specifies the index of the image for the button when mouse left button is pressed and ImageList is used. + + + + + Represents class that provide display support for simple tabs. + + + + + Default constructor. + + + + + Provides layout management for ISimpleTab tab implementations. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Represents painter for Mozilla style splitter. + + + + + Base class for painting expandable splitter control. + + + + + Default constructor. + + + + + Paints splitter. + + Paint information. + + + + Creates new instance of splitter painter. + + + + + Paints splitter. + + Paint information. + + + + Represents painter for Office 2003 style splitter. + + + + + Creates new instance of splitter painter. + + + + + Paints splitter. + + Paint information. + + + + Represents class that holds information neccessary to paint the expandable splitter. + + + + + Specifies reference to graphics canvas. + + + + + Specifies splitter display rectangle. + + + + + Holds color settings for painting. + + + + + Specifies whether splitter is expandable or not. + + + + + Specifies whether splitter is expanded or not. + + + + + Specifies the splitter dock. + + + + + Represents class that holds colors for the splitter display. + + + + + Specifies back color. + + + + + Specifies target gradient background color. + + + + + Specifies background gradient angle. + + + + + Specifies grip part dark color. + + + + + Specifies grip part light color. + + + + + Specifies expand part line color. + + + + + Specifies expand part fill color. + + + + + Initializes a new instance of the StyleManager class. + + + + + Initializes a new instance of the StyleManager class with the specified container. + + An IContainer that represents the container for the command. + + + + Updates Ambient colors for control and its child controls. + + + + + + Updates ambient colors for the control and its children. + + + + + + Gets whether property should be serialized by WinForms designer. + + + + + Resets property to its default value. + + + + + Changes the StyleManager style and color tint in one step. Use this method if you need to change style and color tint simultaneously in single step for better performance. + + New style. + Color tint for the style. + + + + Registers control with the StyleManager so control can be notified of global style changes. + + Control to register with the StyleManager. + + + + Unregister the control from StyleManager notifications. + + Control that was registered through Register method. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Gets or sets the global style for the controls that have Style=ManagerControlled. + + + + + Gets or sets the color current style is tinted with. + + + + + Gets previous effective style. + + + + + Gets or sets color generation parameters for Metro color generator. + + + + + Gets or sets color generation parameters for Metro color generator. + + + + + Gets or sets the current visual style. + + + + + Gets or sets the color tint that is applied to current Office 2007, Office 2010 or Windows 7 color table. + Default value is Color.Empty which indicates that no color blending is performed. + + + + + Defines the StyleManager styles. + + + + + Manages whether ambient property settings (BackColor, ForeColor etc.) are applied to child controls of the form when StyleManager component changes style. + + + + + Initializes a new instance of the StyleManagerAmbient class. + + + + + Initializes a new instance of the StyleManagerAmbient class with the specified container. + + An IContainer that represents the container for the command. + + + + Gets ambient settings StyleManager is allowed to change on the control. + + + + + Sets the ambient settings StyleManager is allowed to change on component. + + Reference to supported component. + Ambient settings that StyleManager may change. + + + + Specifies ambient settings enabled on the control for StyleManager. + + + + + All ambient settings are allowed to change. + + + + + StyleManager cannot change ambient settings. + + + + + StyleManager should process child controls. + + + + + StyleManager should change BackColor. + + + + + StyleManager should change ForeColor. + + + + + Constructor + + Associated SuperTabItem + + + + Paint processing + + + + + + Gets the default tab ContentRectangle + + Rectangle + + + + Gets the tab ContentRectangle + + Rectangle + + + + Gets the tab path + + GraphicsPath + + + + Sets the default color tables + + + + + Gets the tab ColorTable + + ColorTable + + + + Gets the tab state + + eTabState + + + + Gets the tab panel Color Table + + Color Table + + + + Draws the tab background + + Graphics + Tab path + StateColorTable + + + + Draws the tab border + + Graphics + Tab path + Color table + + + + Draws the tab contents + + Graphics + State color table + + + + Draws the tab image + + Graphics + + + + Draws the tab text + + + + + + + Draws the tab close button + + Graphics + State color table + + + + Sets the GraphicsTransform for the given alignment + and Horizontal text setting + + Graphics + Rectangle to transform + Transformed rectangle + + + + Resets out transform + + Graphics + + + + Gets the focus rectangle + + + + + + + Gets the tab close button bitmap + + Graphics + State color table + Button bitmap + + + + Creates the close button bitmap + + Graphics + State color table + Close bitmap + + + + Gets the hot close button bitmap + + Graphics + Close bitmap + + + + Creates the hot button bitmap + + Graphics + Close bitmap + + + + Gets the pressed close button bitmap + + Graphics + Close bitmap + + + + Creates the pressed button bitmap + + Graphics + Close bitmap + + + + Gets the close button path + + Close rectangle + Corner radius + + + + + Gets or sets the default item ColorTable + + + + + Constructor for Office2007 style SuperTabItem base display + + Associated SuperTabItem + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Handles ContentManager NextPosition events + + + + + + + Handles RecalcSize requests + + + + + + Handles RecLayoutContent requests + + + + + Initializes the layout engine + + + + + + Performs the Recalc Layout + + + + + + Recalculates the bounds for the TabControlBox + + + + + + + Gets the tab client area + + + + + + Gets the tab client area + + + + + + Gets the tab height + + + + + + Layout manager NextBlockPosition + + + + + + PromoteTab NextBlockPosition + + + + + + + + Determines if all tabs are visible + + + + + + Paint processing + + + + + + Draws the background + + + + + + + Draws the tabs + + + + + + Draws the Drag and Drop insert marker + + ItemPaintArgs + Color table + + + + Draws the top insert marker + + + + + + Draws the left insert marker + + + + + + Determines if the given items are on the same line + + + + + + + + Draws the TabStrip border + + + + + + + Gets the inner and outer border lines + + + + + + + Sets the default color table + + + + + Gets the tab color table + + Tab color table + + + + Gets the tab close button bitmap + + + + + + + + Creates the tab close button bitmap + + + + + + + Gets the Menu button bitmap + + + + + + + + Create the Menu button bitmap + + + + + + + Gets the Menu button path + + + + + + Gets the Menu button bitmap + + + + + + + + Create the Menu button bitmap + + + + + + + Gets the Menu button path + + + + + + Gets the TabAlignment + + + + + gets or sets the default color table + + + + + Gets if display is RightToLeft + + + + + Gets tab vertical orientation + + + + + Gets the minimum TabStrip height + + + + + Gets whether we are to show the Focus rectangle + + + + + Gets CloseButtonOnTabsVisible + + + + + Gets FixedTabSize + + + + + Gets the minimum tab size + + + + + Gets the selected tab + + + + + Gets the selected font + + + + + Gets the tab ControlBox + + + + + Gets the tab height + + + + + Gets the tab bounds + + + + + Gets the Tabs collection + + + + + Gets the TabStrip + + + + + Gets the TabStripItem + + + + + Gets the PreDrawStripBorder state + + + + + Gets the SelectedPaddingWidth + + + + + Gets the TabOverlap + + + + + Gets the TabSpacing + + + + + Gets the TabOverlapLeft + + + + + Gets the TabLayoutOffset + + + + + Office2007 TabStrip base display constructor + + Associated TabStrip + + + + Tab layout offsets + + + + + Office 2010 Backstage SuperTabItem display constructor + + Associated SuperTabItem + + + + Draws the tab border + + + + + + + + Draws the Backstage SelectedItem marker + + + + + + + DrawTabItemBackground + + + + + + + + DrawTabItemHighLight + + + + + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Gets the Layout manager NextBlockPosition + + + + + + Gets the "PromoteSelTab" NextBlockPosition + + + + + + + + Draws the background + + + + + + + PreDrawStripBorder + + + + + SelectedPaddingWidth + + + + + Constructor for OfficeMobile2014 style SuperTabItem base display + + Associated SuperTabItem + + + + Calculates the Content Rectangle for the tab + + Content Rectangle + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + OfficeMobile2014 SuperTabStripBaseDisplay + + Associated TabStripItem + + + + Gets the next layout block position + + LayoutManagerPositionEventArgs + + + + Gets the next block position when attempting + to make a specific tab visible + + Potential item to replace + View item being placed + Block Rectangle + + + + Returns the Minimum tab size for this style + + + + + Tab layout offsets + + + + + Tab Overlap + + + + + Tab Spacing + + + + + Constructor for OneNote2007 style SuperTabItem base display + + Associated SuperTabItem + + + + Calculates the Content Rectangle for the tab + + Content Rectangle + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + OneNote2007 SuperTabStripBaseDisplay + + Associated TabStripItem + + + + Gets the next layout block position + + LayoutManagerPositionEventArgs + + + + Gets the next block position when attempting + to make a specific tab visible + + Potential item to replace + View item being placed + Block Rectangle + + + + Returns the Minimum tab size for this style + + + + + Tab Overlap + + + + + Tab Spacing + + + + + Constructor + + Associated SuperTabControlBox + + + + Performs RecalcSize processing + + + + + Refreshes the CloseBox + + + + + Performs control Paint processing + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + Returns copy of the item + + + + + Gets or sets the CloseBox Visible state + + + + + Gets whether the mouse is down + + + + + Gets whether the mouse is over the CloseBox + + + + + Constructor + + Associated SuperTabStripItem + + + + Performs RecalcSize processing + + + + + Performs RecalcLayout processing + + + + + Performs individual running layout processing for the given BaseItem + + Item to Layout + Running Layout Size + Whether a recalcSize is needed + New running Size + + + + Refresh code + + + + + Paint processing + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseMove + + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + Gets the ControlBoxItem from the given Point + + + + + + + OnItemAdded + + + + + + OnAfterItemRemoved + + + + + + Removes all user added items from the ControlBox + + + + + Returns copy of the item. + + + + + Gets or sets the ControlBox Bounds + + + + + Gets the CloseBox + + + + + Gets the MenuBox + + + + + Gets or sets the ControlBox Visible state + + + + + Gets the MouseDown state + + + + + Gets the MouseOver state + + + + + Gets the TabStrip TabDisplay + + + + + Constructor + + Associated SuperTabControlBox + + + + RecalcSize + + + + + Refreshes the display + + + + + Paint processing + + + + + + Determines if all the items are visible + + true if all visible + + + + Gets MenuButton1 + + + + + + + + Gets MenuButton2 + + + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + Gets the popup menu position + + + + + + Loads the TabMenu + + + + + Loads Tabs only into the TabMenu + + + + + + Loads all items into the TabMenu + + + + + + Sets the TabMenu entry image + + + + + + + Handles SuperTabMenuBox_Click event + + + + + + + InternalMouseUp + + + + + + Returns copy of the item. + + + + + Gets or sets whether the MenuBox is automatically hidden when the tab items size does not exceed the size of the control + + + + + Gets or sets whether the MenuBox raises a ClickEvent when selected + + + + + Gets or sets whether MenuBox shows only Tabs entries + + + + + Gets or sets whether the MenuBox displays each menu entry with its associated Image/Icon + + + + + Gets or sets MenuBox Visible state + + + + + Gets the MouseDown state + + + + + Gets the MouseOver state + + + + + Constructor + + + + + Sets the tab docking based upon the given alignment + + + + + + Hooks (or unhooks) underlying TabStrip events + + true to hook, false to unhook + + + + Handles TabItemOpen events + + + + + + + Handles TabItemClose events + + + + + + + Handles TabMoving events + + + + + + + Handles TabMoved events + + + + + + + Handles TabRemoved events + + + + + + + Handles SelectedTabChanging events + + + + + + + Handles SelectedTabChanged events + + + + + + + Handles GetTabItemPath events + + + + + + + Handles GetTabItemContentRectangle events + + + + + + + Handles BeforeTabDisplay events + + + + + + + Handles MeasureTabItem events + + + + + + + Handles PreRenderTabItem events + + + + + + + Handles PostRenderTabItem events + + + + + + + Handles GetTabCloseBounds events + + + + + + + Handles GetTabImageBounds events + + + + + + + Handles GetTabTextBounds events + + + + + + + Handles TabStripPaintBackground events + + + + + + + Handles StyleManagerStyleChanged events + + + + + + Handles TabStripTabColorChanged events + + + + + + + Handles TabStrip_MouseUp events + + + + + + + Handles TabStrip_MouseDown events + + + + + + + Handles TabStrip_MouseMove events + + + + + + + Handles TabStrip_MouseClick events + + + + + + + Handles TabStrip_MouseDoubleClick events + + + + + + + Handles TabStrip_MouseEnter events + + + + + + + Handles TabStrip_MouseHover events + + + + + + + Handles TabStrip_MouseLeave events + + + + + + + Creates a TabControl tab + + + + + + + Creates a TabControl tab + + + + + + + + Creates a TabControl tab + + + + + + + + + Selects the previous tab + + true if tab selected + + + + Selects the next tab + + true if tab selected + + + + Gets the SuperTabItem tab containing the given Point + + Point to test + Associated tab, or null + + + + Gets the item (SuperTabItem or BaseView) associated + with the given Point + + Point to test + BaseItem or null + + + + Closes the given tab + + + + + + Causes a Layout Recalculation of the SuperTabControl + + + + + Refreshes all panel styles + + + + + Applies color and border settings to the given panel + + + + + + Applies color settings to the given panel + + + + + + + Applies border settings for the given panel + + + + + + Performs OnSystemColorsChanged processing + + + + + + Performs OnResize processing + + + NOT NEEDED. Let WinForms layout do the work! + + + + OnControlAdded + + + + + + OnControlRemoved + + + + + + BeginInit + + + + + EndInit + + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when a TabStrip MouseUp event is raised + + + + + Occurs when a TabStrip MouseDown event is raised + + + + + Occurs when a TabStrip MouseMove event is raised + + + + + Occurs when a TabStrip MouseClick event is raised + + + + + Occurs when a TabStrip MouseDoubleClick event is raised + + + + + Occurs when a TabStrip MouseEnter event is raised + + + + + Occurs when a TabStrip MouseHover event is raised + + + + + Occurs when a TabStrip MouseLeave event is raised + + + + + Gets or sets whether TabStrip will get focus when Tab key is used. Default value is false. + + + + + Gets or sets whether tabs are automatically closed when a close button is clicked + + + + + Gets or sets whether the tab's visible close button is displayed for every tab state + + + + + Gets or sets whether close button is visible on each tab + + + + + Gets or sets the position of the tab close button + + + + + Gets or sets the custom tab Close button image + + + + + Gets or sets the custom Close button image that is used on tabs when the mouse is over the close button + + + + + Gets or sets the custom Close button image that is used on tabs when the button has been pressed + + + + + Gets the TabStrip ControlBox + + + + + Gets or sets whether the only Text displayed is for the SelectedTab + + + + + Gets or sets whether text is drawn horizontally regardless of tab orientation + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets the ImageList used by the TabStrip and its tab items + + + + + Gets or sets BaseItem tab padding in pixels. + + + + + Gets or sets whether vertical tab text is rotated 180 degrees + + + + + Gets or sets the SelectedTab based upon the given panel + + + + + Gets or sets whether a focus rectangle is displayed when tab has input focus + + + + + Gets or sets the fixed tab size in pixels. Either Height, Width, or both can be set + + + + + Gets or sets whether a tab is currently in a drag operation + + + + + Gets or sets whether tabs can be reordered through the user interface + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the index of the selected tab + + + + + Gets or sets the tab alignment within the Tab-Strip control + + + + + Gets or sets the tab Font + + + + + Gets or sets the Horizontal spacing around tab elements + + + + + Gets or sets the type of the tab layout + + + + + Gets the collection of Tabs + + + + + Gets the control TabStrip + + + + + Gets or sets the Color of the TabStrip + + + + + Gets or sets the tab style + + + + + Gets or sets the Vertical spacing around tab elements + + + + + Gets or sets whether tabs are visible + + + + + Gets or sets tab text alignment + + + + + Gets the DefaultSize + + + + + Indicates whether Form.Validate is called and checked before selected tab is changed. Default value is true. + + + + + Represents Panel for the SuperTabControl + + + + + + _PanelColor_ColorTableChanged + + + + + + + Processes ColorTable changes + + + + + GetStyle + + + + + + Provides OnPaint support + + + + + + Occurs when the tab colors have changed + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets user specified tab panel display colors + + + + + Gets or sets the Panel ElementStyle + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Specifies background image position when container is larger than image. + + + + + Constructor + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Hooks or unhooks control events + + true to hook + + + + SuperTabItem_TextChanged processing + + + + + + + TextMarkupLinkClick + + + + + + + OnMarkupLinkClick + + + + + + ColorTable_ColorTableChanged + + + + + + + Processes ColorTable changes + + + + + Closes the tab + + + + + Gets the operational tab font + + + + + + Gets the tab ColorTable + + SuperTabItemStateColorTable + + + + Gets the tab ColorStateTable for the given state + + eTabState + SuperTabItemStateColorTable + + + + Gets the tab Panel ColorTable + + + + + + Gets the area of the tab that contains the given Point + + + + + + + Determines if the given Point is in the tab + + Point to test + true if Point is in tab + + + + Gets the tab bordering GraphicsPath + + GraphicsPath + + + + Gets the Close Button bounding Rectangle + + Bounding Rectangle + + + + Gets the Image bounding Rectangle + + Bounding Rectangle + + + + Gets the Text bounding Rectangle + + Bounding Rectangle + + + + Calculates Close button bounds + + Running rectangle + Running rectangle + + + + Calculates Image bounds + + Running rectangle + Running rectangle + + + + Refreshes the tab owner + + + + + Refreshes the tab display + + + + + Paint processing + + + + + + InternalMouseMove + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + ToString + + + + + + Dispose + + + + + Returns copy of the item. + + + + + Copies specific properties to new instance of the item. + + New SuperTabItem instance + + + + Occurs when text markup link is clicked + + + + + Occurs when the tab colors have changed + + + + + IsMarkupSupported + + + + + Gets or sets the default SelectedTabFont + + + + + Gets the tab CloseButton Bounds + + + + + Gets or sets the CloseButtonMouseOver state + + + + + Gets or sets the CloseButtonPressed state + + + + + Gets the effective image alignment + + + + + Gets the tab Image Bounds + + + + + Gets the tabs vertical orientation + + + + + Gets the TabItemDisplay + + + + + Gets the tabs TabStrip + + + + + Gets the tabs Text Bounds + + + + + Gets or sets whether image animation is enabled + + + + + Gets or sets user specified tab display colors + + + + + Gets or sets whether Close button on the tab is visible when SuperTabStrip.CloseButtonOnTabsVisible property is set to true + + + + + Enabled + + + + + Gets or sets whether text-markup support is enabled for the control's Text property + + + + + Gets or sets the FixedTabSize + + + + + Gets or sets the tab icon. Icon has same functionality as Image except that it supports Alpha blending + + + + + Gets or sets the tab image + + + + + Gets or sets the tab image index + + + + + Gets or sets the alignment of the Image within the tab + + + + + Gets or sets the spacing between content and edges of the Image + + + + + Gets or sets the predefined color for the tab + + + + + Gets or sets the selected tab Font + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of + the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the text alignment + + + + + Gets or sets the tab Font + + + + + Gets or sets the tab text + + + + + Gets or sets the control that is attached to this tab + + + + + Gets or sets the tab Bounds + + + + + Gets the MouseOver state + + + + + Gets the tab selected state + + + + + Gets the tab alignment + + + + + Gets the tab Content Rectangle + + + + + Gets or sets the tab TabStripItem + + + + + Gets or sets the tabs TabStyle + + + + + Visible + + + + + Alignment + + + + + + + + + TopLeft + + + + + TopCenter + + + + + TopRight + + + + + MiddleLeft + + + + + MiddleCenter + + + + + MiddleRight + + + + + BottomLeft + + + + + BottomCenter + + + + + BottomRight + + + + + Tab area parts + + + + + Tab states + + + + + Constructor + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ShowWithoutActivation + + + + + Constructor + + + + + Hooks or unhooks TabStripItem events + + true to hook + + + + TabStripItem_TabItemOpen + + + + + + + TabStripItem_TabItemClose + + + + + + + TabStripItem_TabRemoved + + + + + + + TabStripItem_TabMoving + + + + + + + TabStripItem_TabMoved + + + + + + + TabStripItem_GetTabItemPath + + + + + + + TabStripItem_GetTabItemContentRectangle + + + + + + + TabStripItem_BeforeTabDisplay + + + + + + + TabStripItem_MeasureTabItem + + + + + + + TabStripItem_PreRenderTabItem + + + + + + + TabStripItem_PostRenderTabItem + + + + + + + TabStripItem_GetTabCloseBounds + + + + + + + TabStripItem_GetTabImageBounds + + + + + + + TabStripItem_GetTabTextBounds + + + + + + + TabStripItem_TabStripPaintBackground + + + + + + + TabStripItem_SelectedTabChanging + + + + + + + TabStripItem_SelectedTabChanged + + + + + + + TabStripItem_TabStripTabColorChanged + + + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Performs layout recalculation + + + + + Ensures that the given tab is visible on the TabStrip + + + + + + Gets the SuperTabItem from the given Point + + + SuperTabItem or null + + + + Gets the BaseItem from the given Point + + + BaseItem or null + + + + Closes the given tab + + + + + + Selects the previous tab + + true if successful + + + + Selects the next tab + + true if successful + + + + OnResize processing + + + + + + BeginInit + + + + + EndInit + + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when the TabStrip TabColor has changed + + + + + Gets or sets whether the control attached to the TabItem.AttachedControl property + is automatically selected when TabItem becomes the selected tab. Default value is true. + + + + + Gets or sets whether tabs are automatically closed when a close button is clicked + + + + + Gets or sets whether the tab's visible close button is displayed for every tab state + + + + + Gets or sets whether close button is visible on each tab + + + + + Gets or sets the position of the tab close button + + + + + Gets or sets the custom tab Close button image + + + + + Gets or sets the custom Close button image that is used on tabs when the mouse is over the close button + + + + + Gets or sets the custom Close button image that is used on tabs when the button has been pressed + + + + + Gets the TabStrip ControlBox + + + + + Gets or sets whether the only Text displayed is for the SelectedTab + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets BaseItem tab padding in pixels. + + + + + Gets or sets whether vertical tab text is rotated 180 degrees + + + + + Gets or sets the fixed tab size in pixels. Either Height, Width, or both can be set + + + + + Gets or sets whether a tab is currently in a drag operation + + + + + Gets or sets whether tabs can be reordered through the user interface + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the index of the selected tab + + + + + Gets or sets the tab alignment within the Tab-Strip control + + + + + Gets or sets the tab Font + + + + + Gets or sets the Horizontal spacing around tab elements + + + + + Gets or sets the type of the tab layout + + + + + Gets the collection of Tabs + + + + + Gets or sets the Color of the TabStrip + + + + + Gets or sets the tab style + + + + + Gets or sets the Vertical spacing around tab elements + + + + + Gets the TabStrip associated TabStripItem + + + + + Gets or sets tab text alignment + + + + + Gets whether the tabStrip is visually available + + + + + Gets the Design state for the control + + + + + Gets the ISupportInitialize state + + + + + Gets the TabDisplay + + + + + Gets or sets the reference to ribbon application button when tab control is used as backstage ribbon control. + + + + + Gets the DefaultSize + + + + + Constructor + + Associated SuperTabStrip + + + + Syncs the Orientation of each SubItem to + the current TabAlignment Orientation + + + + + Gets the Orientation based upon the current + TabAlignment + + + + + + Makes sure all newly added items + are set to the design orientation and style + + + + + + Applies the current TabStyle to each tab and + sets the item style to the DotNetBarStyle from the TabStyle + + + + + Gets the DotNetBarStyle from the SuperTabStyle + + eDotNetBarStyle + + + + Hooks or unhooks our events + + + + + + Handles SubItemsChanged events + + + + + + + Handles newly added items + + + + + + Handles newly removed items + + + + + + Handles tab color changes + + + + + + + Handles color table changes + + + + + + + Performs NeedRecalcSize and refresh + + + + + Recalculates the size of the tabs. + + + + + Ensures that the given item is visible on the TabStrip + + + + + + Selects the given tab + + + + + + + Selects the previous tab + + + + + + Selects the previous tab + + + + + + Selects the next tab + + + + + + Selects the next tab + + + + + + UpdateSelectedTab + + + + + OnTabStyleChanged + + + + + OnMeasureTabItem + + + + + + + + + OnPreRenderTabItem + + + + + + + + OnPostRenderTabItem + + + + + + + OnGetTabItemContentRectangle + + + + + + + OnGetTabItemPath + + + + + + + OnSelectedTabRemoved + + + + + + + OnSelectedTabChanging + + + + + + + + OnSelectedTabChanged + + + + + + + + OnBeforeTabDisplay + + + + + + OnTabItemClose + + + + + + + OnTabStripColorChanged + + + + + OnPaintBackground + + + + + + + OnGetTextBounds + + + + + + + + OnGetImageBounds + + + + + + + + OnGetCloseBounds + + + + + + + + OnTabMoving + + + + + + + + + OnTabMoved + + Tab that was moved + Old tab order + New tab order + + + + + ItemAtLocation + + + + + + + + InternalClick + + + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + InternalMouseMove + + + + + + InternalOnMouseMove + + + + + + ProcessMouseMove + + + + + + HotTabMouseMove + + + + + + + ControlBoxMouseMove + + + + + + ProcessTabMove + + + + + + StartTabMove + + + + + + + SetDragWindowRegion + + + + + TabDragWindow_Paint + + + + + + + InternalMouseLeave + + + + + InternalOnMouseLeave + + + + + Get the tab at the given Point + + + SuperTabItem or null + + + + Gets the item at the given point + + + BaseItem or null + + + + Gets the next visible Tab + + + SuperTabItem + + + + Closes the given tab + + + + + + Paint processing + + + + + + SubItemSizeChanged + + + + + + Returns copy of the item. + + + + + Copies specific properties to new instance of the item. + + New SuperTabStripItem instance + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when the TabStrip TabColor has changed + + + + + Occurs when the TabStrip Color has changed + + + + + Gets or sets AutoCloseTabs + + + + + Gets or sets whether the control attached to the TabItem.AttachedControl property + is automatically selected when TabItem becomes the selected tab. Default value is true. + + + + + Gets or sets TabCloseButtonNormal + + + + + Gets or sets TabCloseButtonHot + + + + + Gets or sets TabCloseButtonPressed + + + + + Gets or sets TabHorizontalSpacing + + + + + Gets or sets TabVerticalSpacing + + + + + Gets or sets CloseButtonOnTabsVisible + + + + + Gets or sets CloseButtonOnTabsAlwaysDisplayed + + + + + Gets or sets CloseButtonPosition + + + + + Gets the ControlBox + + + + + Gets or sets DisplaySelectedTextOnly + + + + + Gets or set the Expanded state + + + + + Gets or sets the tab font + + + + + Gets or sets the selected tab font + + + + + Gets or sets the HorizontalText + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets the BaseItem tab padding. + + + + + Gets or sets RotateVerticalText + + + + + Gets or sets ShowFocusRectangle + + + + + Gets or sets the FixedTabSize + + + + + Gets or sets + + + + + Gets the MinTabStripHeight + + + + + Gets or sets ReorderTabsEnabled + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab index + + + + + Gets or sets the tab alignment + + + + + Gets or sets the TabLayoutType + + + + + Gets or sets the TabStripColor + + + + + Gets or sets the TabStyle + + + + + Gets or sets the TextAlignment + + + + + Gets the First Visible Tab + + + + + Gets the HotTab + + + + + Gets the InsertTab + + + + + Gets whether to insert before or after + + + + + Gets the MouseOver tab + + + + + Gets TabStrip vertical orientation + + + + + Gets the Last Visible Tab + + + + + Gets the tab close button size + + + + + Gets the TabDisplay + + + + + Gets or sets the TabItemsBounds + + + + + Gets or sets the number of TabLines + + + + + Gets the TabStrip + + + + + Gets the visible tab count + + + + + Gets or sets the promoted visible tab + + + + + Generic ValueChangingEventArgs + + oldValue type + newValue type + + + + Gets the old value + + + + + Gets the new value + + + + + Generic ValueChangingSourceEventArgs + + oldValue type + newValue type + EventSource + + + + Gets the old value + + + + + Gets the new value + + + + + Gets the eventSource + + + + + Generic ValueChangedEventArgs + + oldValue type + newValue type + + + + Gets the old value + + + + + Gets the new value + + + + + Generic ValueChangedSourceEventArgs + + oldValue type + newValue type + EventSource + + + + Gets the old value + + + + + Gets the new value + + + + + Gets the eventSource + + + + + Gets the tab + + + + + Gets the tab + + + + + Gets the old order of the tabs + + + + + Gets or sets the new order of the tabs + + + + + TabStripTabColorChangedEventArgs + + + + + Constructor + + + + + Constructor + + Associated SuperTabStripItem + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + + Measures the given tab + + + + + + + Measures the markup text + + + + + + + + + Measures the given text + + + + + + + + + Finalizes the layout + + + + + + + + + Reorders the lines to keep the selected tab as line 0. + + + + + + + Adjusts the line layout + + + + + + + Gets the array od line sizes + + + + + + + Adjusts the individual blocks within a given line + + + + + + + Sets the Displayed status for the line blocks + + + + + + + Gets the count of BeginBreak groups + + + + + + + + Process item BeginBreaks + + + + + + + + + Makes sure the "VisibleTab" is in fact visible. + + + + + + + Determines what line th selected tab lies within + + + + + + + Finds the SelectedTab block + + + + + + + Resizes single line layouts + + + + + + Resizes multiline layouts + + + + + + gets or sets the FixedTabSize + + + + + Gets or sets the TabLayoutOffset + + + + + Gets the TabDisplay + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Applies the predefined tab color to the color table + + + + + + + Applies the predefined color to the panel color table + + + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the TabLayoutOffset + + + + + Constructor + + Associated SuperTabItem + + + + Returns the tab ContentRectangle + + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the LayoutManager NextBlockPosition + + + + + + Gets the PromoteSelectedTab NextBlockPosition + + + + + + + + Gets the TabOverlap + + + + + Gets the TabSpacing + + + + + Gets the TabOverlapLeft + + + + + Gets the TabLayoutOffset + + + + + Gets the MinTabSize + + + + + Constructor + + Associated SuperTabItem + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the Layout manager NextBlockPosition + + + + + + Gets the "PromoteSelTab" NextBlockPosition + + + + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Forces the button to perform internal layout. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Cancels animation if in progress. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Sets the value of the control with state transition animation (if enabled) and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Sets the value of the control and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises ValueObjectChanged event. + + Provides event arguments. + + + + Called when Command property value changes. + + + + + Occurs before Value property has changed and it allows you to cancel the change. + + + + + Occurs after Value property has changed. + + + + + Gets or sets the switch value. + + + + + Gets or sets the item border color. + + + + + Gets or sets whether state transition animation is enabled. + + + + + Gets or sets the color of the OFF state background. + + + + + Gets or sets the color of the ON state background. + + + + + Gets or sets the color of the ON state text. + + + + + Gets or sets the color of the OFF state text. + + + + + Gets or sets the border color of the button switch. + + + + + Gets or sets the background color of the switch button. + + + + + Gets or sets the text color. + + + + + Gets or sets the font that is used to draw ON/OFF text on the switch button. + + + + + Gets or sets the text that is displayed on switch when Value property is set to true. + + + + + Gets or sets the text that is displayed on switch when Value property is set to false. + + + + + Gets or sets the width in pixels of the switch part of the button. Minimum value is 6. + + + + + Gets the switch bounds. + + + + + Gets the On part of the switch button bounds excluding the SwitchBounds. + + + + + Gets the Off part of the switch button bounds excluding the SwitchBounds. + + + + + Gets or sets whether button is in read-only state meaning that it appears as enabled but user cannot change its state. + + + + + Gets or sets whether lock marker is visible on face of the control when IsReadOnly is set to true. + Default value is true. + + + + + Gets or sets the color of the read-only marker. + + + + + Indicates whether clicking left mouse button on the switch part of the item will toggle the switch Value. + + + + + Occurs after ValueObject property changes. + + + + + Gets or sets the object that represents the Value state of control. + + + + + Gets or sets the value that represents the True state of control when ValueObject property is set to that value. + + + + + Gets or sets the value that represents the False state of control when ValueObject property is set to that value. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the switch button UI element. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Creates new instance of SwitchButtonItem. + + + + + Creates new instance of SwitchButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of SwitchButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SwitchButtonItem specific properties to new instance of the item. + + New SwitchButtonItem instance. + + + + Copies the SwitchButtonItem specific properties to new instance of the item. + + New SwitchButtonItem instance. + + + + Sets the value of the control and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Sets the value of the control with state transition animation (if enabled) and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Cancels any current inprogress animation. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value property has changed and it allows you to cancel the change. + + + + + Occurs after Value property has changed. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the switch value. + + + + + Indicates whether clicking left mouse button on the switch part of the item will toggle the switch Value. + + + + + Gets the switch bounds. + + + + + Gets the button bounds. + + + + + Gets the On part of the switch button bounds excluding the SwitchBounds. + + + + + Gets the Off part of the switch button bounds excluding the SwitchBounds. + + + + + Gets or sets the switch offset from its initial position. Used for animation and dragging of the switch. + + + + + Gets whether switch part of the button is pressed using mouse left button. + + + + + Gets or sets the width in pixels of the switch part of the button. Minimum value is 6. + + + + + Gets or sets the text that is displayed on switch when Value property is set to true. + + + + + Gets or sets the text that is displayed on switch when Value property is set to false. + + + + + Gets whether fade effect is enabled. + + + + + Gets or sets whether state transition animation is enabled. + + + + + Gets or sets the width of the switch button. Must be greater than SwitchWidth. + + + + + Gets or sets the height of the switch button. Must be greater than 5. + + + + + Gets or sets text padding. + + + + + Gets or sets switch margin. + + + + + Gets or sets the color of the OFF state background. + + + + + Gets or sets the color of the ON state background. + + + + + Gets or sets the color of the ON state text. + + + + + Gets or sets the color of the OFF state text. + + + + + Gets or sets the item border color. + + + + + Gets or sets the border color of the button switch. + + + + + Gets or sets the background color of the switch button. + + + + + Gets or sets whether caption/label set using Text property is visible. + + + + + Gets or sets the text color. + + + + + Gets or sets the font that is used to draw ON/OFF text on the switch button. + + + + + Gets or sets whether button is in read-only state meaning that it appears as enabled but user cannot change its state. + + + + + Gets or sets whether lock marker is visible on face of the control when IsReadOnly is set to true. + Default value is true. + + + + + Gets or sets the color of the read-only marker. + + + + + Provides data for SwitchButton rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to SwitchButtonItem being rendered. + + + + + ColorScheme object that is used to provide colors for rendering check box item in legacy styles like Office 2003. Office 2007 style + uses color tables provided by renderer. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Gets or sets the ItemPaintArgs reference. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to SwitchButtonItem + Reference to legacy ColorScheme + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Returns specific font set at specified size/ + + Font size + Symbol set to return + Font + + + + Returns FontAwesome at specific size. + + Font size in points + Font in desired size. + + + + Returns FontAwesome at specific size. + + Font size in points + Font in desired size. + + + + Gets FontAwesome at default size. + + + + + Returns FontAwesome Family. + + + + + Gets Material Font at default size. + + + + + Returns Material Font Family. + + + + + Gets the default size for the Material font size in points. + + + + + Gets the default size for the FontAwesome font size in points. + + + + + Represents colors for the active tab. + + + + + Creates new instance of the object. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Occurs after color property has changed. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Represents the class that defines colors for a tab control. + + + + + Default constructor. + + + + + Default contructor that accepts style. + + + + + Refreshes colors stored in the color scheme. This method is used for example to refresh the color after system display colors have changed. + + + + + Generates color scheme for flat style. + + + + + Generates color scheme for Office 2003 style. + + + + + Generates the VS2005 document tab like color scheme. + + + + + Generates Windows XP Themed color scheme. + + + + + Generates OneNote style color scheme. + + + + + Generates VS2005 style color scheme. + + + + + Generates OneNote style color scheme. + + + + + Generates OneNote style color scheme. + + + + + Resets changed flag for all color properties. When changed flag is set for a color property color is not automatically generated for that property. + Reseting the flag will ensure that all colors are automatically generated. + + + + + Applies predefinied tab item color scheme to the tab. + + Tab item to apply color to. + Predefined color to apply + + + + Applies predefinied tab item color scheme to the tab. + + Tab item to apply color to. + Predefined color to apply + + + + Gets or sets the style that color scheme represents. + + + + + Gets or sets whether themed color scheme is generated. + + + + + Indicates whether any of the colors has changed. + + + + + Gets or sets the tab-strip background image. + + + + + Specifies the background color of the tab control. + + + + + Specifies the target gradient background color of the tab control. + + + + + Specifies the gradient angle. + + + + + Specifies the border color of the tab control. + + + + + Specifies the background color of the tab panel. + + + + + Specifies the target gradient background color of the tab panel. + + + + + Specifies the gradient angle. + + + + + Specifies the border color of the tab panel. + + + + + Specifies the border color of the tab item. + + + + + Specifies the light border color of the tab item. + + + + + Specifies the dark border color of the tab item. + + + + + Specifies the background color of the tab item. + + + + + Specifies the target gradient background color of the tab item. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text of the tab item. + + + + + Specifies the border color of the tab item when mouse is over it. + + + + + Specifies the light border color of the tab item when mouse is over it. + + + + + Specifies the dark border color of the tab item when mouse is over it. + + + + + Specifies the background color of the tab item when mouse is over it. + + + + + Specifies the target gradient background color of the tab item when mouse is over it. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text color of the tab item when mouse is over it. + + + + + Specifies the border color of the tab item when selected. + + + + + Specifies the light border color of the tab item when selected. + + + + + Specifies the dark border color of the tab item when selected. + + + + + Specifies the background color of the tab item when selected. + + + + + Specifies the target gradient background color of the tab item when selected. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text color of the tab item when selected. + + + + + Specifies the tab item separator color. + + + + + Specifies the tab item separator shadow color. + + + + + Specifies the text of the tab item. + + + + + Summary description for TabControl. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets whether property should be serialized. Used by Windows Forms designer. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies default tab colors to the panel + + Panel to apply colors to. + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Resizes the portion of the control that holds the tabs. + + + + + Creates new tab and tab panel and adds it to the Tabs collection. + + Tab text. + Reference to newly created TabItem. + + + + Creates new tab and tab panel and inserts it at specified position inside of Tabs collection. + + Tab text. + Index to insert newly created tab at. -1 will append tab to the end of Tabs collection. + Reference to newly created TabItem. + + + + Selects previous visible tab. Returns true if previous tab was found for selection. + + + + + Selects next visible tab. Returns true if next tab was found for selection. + + + + + Resets color scheme to default value. + + + + + Memeber used by Windows Forms designer. + + true if property should be serialized. + + + + Memeber used by Windows Forms designer to reset property to default value. + + + + + Occurs when selected tab changes. + + + + + Occurs before selected tab changes and gives you opportunity to cancel the change. + + + + + Occurs when tab is dragged by user. + + + + + Occurs when the user navigates back using the back arrow. + + + + + Occurs when the user navigates forward using the forward arrow. + + + + + Occurs when tab item is closing. + + + + + Occurs when tab item is added to the tabs collection. + + + + + Occurs before control or item attached to the tab is displayed. + + + + + Occurs after tab item has been removed from tabs collection. + + + + + Gets or sets the background color. + + + + + Gets the collection of all tabs. + + + + + Gets or sets whether tabs are visible. Default value is true. + + + + + Returns reference to internal tab strip control. + + + + + Gets or sets whether TabStrip will get focus when Tab key is used. Default value is false. + + + + + Use TabControlPanel.Style property to set the background image for each tab panel. + + + + + Gets or sets whether pressing Ctrl+Tab keys will cycle through the selected tabs. Default value is true. + + + + + Gets or sets whether tabs use anti-alias smoothing when painted. Default value is false. + + + + + Gets or sets whether the tab scrolling is animated. + + + + + Gets or sets whether system box that enables scrolling and closing of the tabs is automatically hidden when tab items size does not exceed the size of the control. + + + + + Specifes whether end-user can reorder the tabs. + + + + + Gets or sets whether tab is automatically closed when close button is clicked. Closing the tab will remove tab being closed from Tabs collection + and it will remove the panel as well. Default value is false which means that tab will not be closed and you should handle TabClose event to + perform desired action as result of user closing the tab. + + + + + Gets or sets whether the Close button that closes the active tab is visible on system box. + + + + + Gets or sets whether close button is visible on each tab instead of in system box. + + + + + Gets or sets whether close button on tabs when visible is displayed for every tab state. Default value is true. When set to false + the close button will be displayed only for selected and tab that mouse is currently over. + + + + + Gets or sets the position of the close button displayed on each tab. Default value is Left. + + + + + Gets or sets custom image that is used on tabs as Close button that allows user to close the tab. + Use TabCloseButtonHot property to specify image that is used when mouse is over the close button. Note that image size must + be same for both images. + Default value is null + which means that internal representation of close button is used. + + + + + Gets or sets custom image that is used on tabs as Close button whem mouse is over the close button. + To use this property you must set TabCloseButtonNormal as well. Note that image size for both images must be same. + Default value is null which means that internal representation of close button is used. + + + + + Gets or sets whether only selected tab is displaying it's text. + + + + + Gets or sets the image list used by tab items. + + + + + Gets or sets scrolling offset of the first tab. You can use this property to programmatically scroll the tab strip. + + + + + Gets or sets Tab Control style. Theme style is supported only on themed OS and only for bottom or top aligned tabs. + + + + + Specifies whether tab is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether tabs are scrolled continuously while mouse is pressed over the scroll tab button. + + + + + Gets or sets the auto-repeat interval for the tab scrolling while mouse button is kept pressed over the scroll tab button. + + + + + Gets or sets Tab Color Scheme. + + + + + Gets or sets the tab alignment within the Tab-Strip control. + + + + + Gets or sets the selected tab. + + + + + Gets or sets the selected tab Font + + + + + Gets or sets whether focus rectangle is displayed on the tab when tab has input focus. + + + + + Gets or sets whether keyboard navigation using Left and Right arrow keys to select tabs is enabled. Default value is true. + + + + + Gets or sets the index of the selected tab. + + + + + Gets or sets selected tab panel. + + + + + Gets or sets the type of the tab layout. + + + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + + + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. + Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Represents Panel for the Tab Control. + + + + + Default constructor. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Represents the Tab on the Tab-Strip control. + + + + + Default constructor. + + Container object. + + + + Default constructor. + + + + + Returns the font for the tab text. + + Reference to the font object. + + + + Raises the Click event. + + + + + Occurs when mouse is pressed over the tab item. + + + + + Occurs when mouse button is released over the tab item. + + + + + Occurs when mouse hovers over the tab item. + + + + + Occurs when mouse enters the tab item. + + + + + Occurs when mouse leaves the tab item. + + + + + Occurs when mouse moves over the tab item. + + + + + Occurs when mouse click is performed on the tab item. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the tab Image index. + + + + + Gets or sets the tab image. + + + + + Gets or sets the tab icon. Icon has same functionality as Image except that it support Alpha blending. + + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the bounds of the close button rectangle if displayed on the tab. You should not set value of this property. + + + + + Gets or sets the control that is attached to this tab. When tab is selected the control Visible property is set to true and when tab is unselected the control Visible property is set to false. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Gets or sets an object that contains data to associate with the item. + + + + + Gets/Sets informational text (tooltip) for the tab. + + + + + Returns true if tab is selected tab. + + + + + Gets the tab alignment. + + + + + Returns true if mouse is over the tab. + + + + + Gets or sets whether Close button on the tab is visible when TabStrip.CloseButtonOnTabsVisible property is set to true. Default value is true. You can use this property + to selectively hide Close button on tabs. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Summary description for TabItemLayoutManager. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Gets or sets the padding in pixels for the measured text. Default is 4. + + + + + Gets or sets the padding in pixels for the measured image size. Default is 4. + + + + + Gets or sets the padding in pixels that is added to the measured height of the tab. Default is 4. + + + + + Gets or sets the padding in pixels that is added to the measured width of the tab. Default is 0. + + + + + Gets or sets whether text is always layed out horizontaly even if tabs are vertically aligned. + + + + + Gets or sets the additional padding for the selected item. + + + + + Gets or sets the fixed tab size in pixels. Either member can be set. Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Summary description for TabsCollection. + + + + + Get the TabItem with given name. Name comparison is case insensitive. + + + + + + + Represents Tab-Strip control. + + + + + Raises TabMouseEnter event. + + Provides event arguments. + + + + Raises TabMouseLeave event. + + Provides event arguments. + + + + Raises TabMouseMove event. + + Provides event arguments. + + + + Raises TabMouseClick event. + + Provides event arguments. + + + + Raises TabMouseHover event. + + Provides event arguments. + + + + Default constructor. + + + + + Returns the bounds of the tab system box if one is available in current tab style. + + Rectangle describing the system box bounds. + + + + Recalculates the size of the tabs. + + + + + Selectes previous visible tab. Returns true if previous tab was found for selection. + + + + + Selectes next visible tab. Returns true if next tab was found for selection. + + + + + Invokes the TabCleared event. + + Provides events arguments + + + + Ensures that the tab is visible, scrolling the tab-strip view as necessary. + + Tab to make visible. + + + + Clean up any resources being used. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Refreshes the color scheme with the colors from system color table. + + + + + Resets color scheme to default value. + + + + + Memeber used by Windows Forms designer. + + true if property should be serialized. + + + + Memeber used by Windows Forms designer to reset property to default value. + + + + + Returns tab item that contains specified coordinates. + + X - coordinate to hit test + Y - coordinate to hit test + + + + + Hides tooltip for a tab is one is displayed. + + + + + Shows tooltip for given tab. + + + + + Resets Hoover timer. + + + + + Occurs after selected tab has changed. + + + + + Occurs before selected tab changes and gives you opportunity to cancel the change. + + + + + Occurs when tab is dragged by user. + + + + + Occurs when the user navigates back using the back arrow. + + + + + Occurs when the user navigates forward using the forward arrow. + + + + + Occurs when tab item is closing. + + + + + Occurs when tab item is added to the tabs collection. + + + + + Occurs before control or item attached to the tab is displayed. + + + + + Occurs after tab item has been removed from tabs collection. + + + + + Occurs after Tabs collection has been cleared. + + + + + Occurs after the tab item size has been determined and allows you to apply your custom size to the TabItem. + + + + + Occurs before tab is rendered and allows you to cancel default tab rendering performed by the control. + + + + + Occurs after tab is rendered and allows you to render on top of the default rendering performed by the control. + + + + + Occurs when mouse enters a tab. + + + + + Occurs when mouse leaves a tab. + + + + + Occurs when mouse moves over the tab. + + + + + Occurs when mouse clicks the tab. + + + + + Occurs when mouse hovers over the tab. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Returns minimum tab strip height given the style and the tabs it contains. + + + + + Returns the rectangle that contains all the tabs. + + + + + Gets or sets the index of currently selected tab. + + + + + Gets or sets the selected tab. + + + + + Gets or sets whether tabs are scrolled continuously while mouse is pressed over the scroll tab button. + + + + + Gets or sets the auto-repeat interval for the tab scrolling while mouse button is kept pressed over the scroll tab button. + + + + + Gets or sets whether the Close button that closes the active tab is visible. + + + + + Gets or sets whether close button is visible on each tab instead of in system box. + + + + + Gets or sets whether close button on tabs when visible is displayed for every tab state. Default value is true. When set to false + the close button will be displayed only for selected and tab that mouse is currently over. + + + + + Gets or sets the position of the close button displayed on each tab. Default value is Left. + + + + + Gets or sets custom image that is used on tabs as Close button that allows user to close the tab. + Use TabCloseButtonHot property to specify image that is used when mouse is over the close button. Note that image size must + be same for both images. + Default value is null + which means that internal representation of close button is used. + + + + + Gets or sets custom image that is used on tabs as Close button whem mouse is over the close button. + To use this property you must set TabCloseButtonNormal as well. Note that image size for both images must be same. + Default value is null which means that internal representation of close button is used. + + + + + Gets the collection of all tabs. + + + + + Gets or sets whether control attached to the TabItem.AttachedControl property is automatically selected when TabItem becomes selected tab. Default value is true. + + + + + Gets or sets the image list used by tab items. + + + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + + + + Gets or sets the type of the tab layout. + + + + + Gets or sets whether tab size is adjusted to fit the available control size. + + + + + Gets or sets scrolling offset of the first tab. You can use this property to programmatically scroll the tab strip. + + + + + Gets or sets whether keyboard navigation using Left and Right arrow keys to select tabs is enabled. Default value is true. + + + + + Gets or sets the mouse cursor that is displayed when tab is dragged. + + + + + Returns tab mouse is over or null if mouse is not over the tab. + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the tab alignment within the Tab-Strip control. + + + + + Specifes whether end-user can reorder the tabs. + + + + + Gets or sets whether system box that enables scrolling and closing of the tabs is automatically hidden when tab items size does not exceed the size of the control. + + + + + Gets or sets the background color. + + + + + Gets or sets whether only selected tab is displaying it's text. + + + + + Gets or sets TabStrip style. Theme style is supported only on themed OS and only for bottom or top aligned tabs. + + + + + Specifies whether tab is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets whether control should be represented in themed style. + + + + + Gets or sets Tab Color Scheme. + + + + + Gets or sets whether the tab scrolling is animanted. + + + + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. + Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Gets or sets whether focus rectangle is displayed when tab has input focus. + + + + + Gets or sets whether Tab-Strip control provides Tabbed MDI Child form support. Default value is false. + + + + + Gets or sets the maximum number of characters that will be used as Tab text from Mdi Child caption. + + + + + Gets or sets whether the Mdi Child Icon is displayed on Tab. + + + + + Gets or sets whether the Tab-strip is automatically hidden when there are not Mdi Child forms open. + + + + + Gets or sets whether flicker associated with switching maximized Mdi child forms is attempted to eliminate. You should set this property to false if you encounter any painting problems with your Mdi child forms. + + + + + Gets or sets Mdi Container form for which Tab-Strip is providing Tabbed MDI Child support. + + + + + Event delegate for SelectedTabChanged event. + + + + + Event delegate for SelectedTabChanging event. + + + + + Event delegate for TabMoved event + + + + + Event delegate for NavigateBack, NavigateForward and TabItemClose events. + + + + + Represents the event arguments for tab selection events. + + + + + Currently selected tab. + + + + + Tab being selected. + + + + + Specifies the action that caused the event. + + + + + Default constructor. + + Currently selected tab. + New selection. + + + + Represents the event arguments for tab selection events. + + + + + Currently selected tab. + + + + + Tab being selected. + + + + + Cancels the selection operation. + + + + + Specifies the action that caused the event. + + + + + Default constructor. + + Currently selected tab. + New selection. + + + + Represents the event arguments for tab moving events. + + + + + Tab being moved. + + + + + Moved from index. + + + + + Moving to index. + + + + + Cancels the operation. + + + + + Default Constructor + + Tab + Old Index + New Index + + + + Represents the event arguments for action events. + + + + + Cancels the operation. + + + + + Reference to relevant TabItem, if any, otherwise null/nothing. + + + + + Default Constructor. + + + + + Destroys tooltip window. + + + + + Specifies the tab alignment inside the Tab-Strip control. + + + + + Tabs are left aligned. + + + + + Tabs are right aligned. + + + + + Tabs are top aligned. + + + + + Tabs are bottom aligned. + + + + + Indicates tab strip style. + + + + + Default VS.NET like flat style. + + + + + Office 2003 like style. + + + + + OneNote like style. + + + + + VS.NET 2005 style tabs. + + + + + Tab style where tabs are centered and first and last tab have the corners rounded. This style does not support multi-line tabs or tab scrolling. + + + + + VS.NET 2005 dock style tabs. + + + + + VS.NET 2005 document style tabs. + + + + + Simulated theme style with the horizontal text alignment at all times. + + + + + Office 2007 document style. + + + + + Office 2007 dock style. + + + + + Metro UI style. + + + + + Defines delegate for the MeasureTabItem event. + + + + + Represents event arguments for MeasureTabItem event. + + + + + Gets the TabItem that is being measured. + + + + + Gets or sets the size of the TabItem. The default size calculated by the control will be set by default. You can inspect it and change it to the + custom size by setting this property. + + + + + Creates new instance of the class and initializes it with default values. + + TabItem being measured. + Default size. + + + + Defines delegate for the PreRenderTabItem and PostRenderTabItem events. + + + + + Represents event arguments for PreRenderTabItem and PostRenderTabItem event. + + + + + Gets the reference to the TabItem being rendered. You can use properties like DisplayRectangle to determine the rendering bounds for the tab. + + + + + When used in PreRenderTabItem event allows you to cancel the default rendering by setting this property to true. + + + + + Gets the reference to the Graphics object to render the tab on. + + + + + Creates new instance of the class and initializes it with default values. + + Default value for TabItem property. + Default value for Graphics property. + + + + Represents base class for tab display. + + + + + Main method for painting. + + Reference to graphics object + TabStrip to paint + + + + Gets or sets whether anti-alias is used for painting the tabs. Default value is true. + + + + + Gets or sets whether text is drawn horizontaly regardless of tab orientation. + + + + + Gets or sets whether close button is painted on each tab. + + + + + Provides display capabilities for TabStrip with Office 2007 Dock style. + + + + + Provides display capabilities for TabStrip with Office 2007 Document style. + + + + + Creates new instance of the class. + + + + + Represents class performing the display of tabs with RoundHeader style. + + + + + Provides display support for SimualtedTheme tab style. + + + + + Provides display capabilites for TabStrip with VS2005Dock style. + + + + + Creates new instance of the class. + + + + + Represent a task-dialog message box window. + + + + + Displays TaskDialog message. + + Title of the window. + Task dialog header. + Task dialog text. + Displayed buttons. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Task dialog header. + Task dialog text. + Displayed buttons. + Specifies the predefined color for the dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Icon displayed on dialog. + Task dialog header. + Task dialog text. + Displayed buttons. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Icon displayed on dialog. + Task dialog header. + Task dialog text. + Displayed buttons. + Specifies the predefined color for the dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Specifies the content of the task dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Window owner of the task dialog. + Specifies the content of the task dialog. + Result from task-dialog. + + + + Closes the task dialog if it is open with eTaskDialogResult.None result. + + + + + Closes the task dialog if it is open with specified result value. + + Value that will be used as return value from Show method. + + + + Gets or sets whether TaskDialog form has Windows Vista Glass enabled if running on + Windows Vista with Glass enabled. Default value is true. + + + + + Gets or sets the anti-alias text-rendering setting for the controls on task-dialog. Default value is true. + + + + + Occurs when any text markup link on Task-Dialog Box is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies the information displayed on task-dialog. + + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + Radio Button Commands + Button commands. + Check-box command. + Footer text + Footer image. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + Radio Button Commands + Button commands. + Check-box command. + Footer text + Footer image. + Indicates whether TaskDialog is top most. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + + + + Gets or sets the task-dialog window title. + + + + + Gets or sets the task-dialog header. + + + + + Gets or sets the task-dialog text. + + + + + Gets or sets the task-dialog buttons displayed. + + + + + Gets or sets the task-dialog background color. + + + + + Gets or sets the array of commands that will be used to create the radio-buttons displayed on task-dialog. Each command will be executed as radio-buttons are checked by user. + + + + + Gets or sets the array of commands that will be used to create the buttons displayed on task-dialog. Each command will be executed as buttons are clicked by user. + + + + + Gets or sets the footer text displayed on task-dialog. + + + + + Gets or sets the command that is used to initialize the footer check-box. Command will be executed when check-box state changes by end user. + + + + + Gets or sets the icon that is displayed on task dialog. + + + + + Gets or sets the image that is displayed in the task-dialog footer. Expected image size is 16x16 pixels. + + + + + Gets or sets whether TaskDialog form is top-most. Default value is false. + + + + + Gets or sets the TaskDialog default button. + + + + + Indicates whether task dialog form close button is enabled, default value is true. + + + + + Specifies the task dialog buttons. + + + + + OK button will be displayed. + + + + + Yes button will be displayed. + + + + + No button will be displayed. + + + + + Cancel button will be displayed. + + + + + Retry button will be displayed. + + + + + Close button will be displayed. + + + + + Specifies the task dialog return values. + + + + + No button was clicked because dialog was closed using TaskDialog.Close method. + + + + + OK button was clicked. + + + + + Yes button was clicked. + + + + + No button was clicked. + + + + + Cancel button was clicked. + + + + + Retry button was clicked. + + + + + Close button was clicked. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Define icons available on TaskDialog. + + + + + No icon. + + + + + Blue flag icon. + + + + + Blue stop icon. + + + + + Light bulb, idea icon. + + + + + Check-mark icon. + + + + + Check-mark icon. + + + + + Trash-can delete icon. + + + + + Exclamation icon. + + + + + Flag icon. + + + + + Hand-stop icon. + + + + + Help icon. + + + + + Informational icon. + + + + + Informational icon. + + + + + No entry icon. + + + + + Shield icon. + + + + + Shield help icon. + + + + + Shield OK icon. + + + + + Shield stop icon. + + + + + Stop icon. + + + + + Stop icon. + + + + + Users icons. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the task-background color. + + + + + Gets the task-dialog result + + + + + Gets or sets the anti-alias text-rendering setting for the controls. + + + + + Defines TaskDialog colors. + + + + + Task dialog will use default background as specified by current theme. + + + + + Task dialog will use silver background color. + + + + + Task dialog will use tan background color. + + + + + Task dialog will use dark-blue background color. + + + + + Task dialog will use blue background color. + + + + + Task dialog will use red background color. + + + + + Task dialog will use olive-green background color. + + + + + Task dialog will use purple background color. + + + + + Task dialog will use aqua background color. + + + + + Task dialog will use orange background color. + + + + + Summary description for TextBoxItem. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + IBlock member implementation + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line TextBox control. + + + + + Gets or sets the text associated with the editable part of the item. + + + + + Gets or sets the item caption text displayed next to the text input. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets or sets the text-alignment inside of the text box. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Measures the element given available size. + + Size available to element + Reference to graphics object + + + + Measures the end tag of an element. Most implementations do not need to do anything but implementations like the ones + that change color should return state back at this time. + + + + + + + Renders element. + + Provides markup drawing context information. + + + + Renders element tag end. Most implementations do not need to do anything but mplementations like the ones + that change color should return state back at this time. + + Provides markup drawing context information. + + + + Provides final rectangle to element and lets it arrange it's content given new constraint. + + Final rectangle. + + + + + Arranges the element given the final size. Layout is two step process with Measure followed by Arrange. + + + + + + + Returns whether markup element is an container so it receives full available size of parent control for layout. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Returns whether layout manager switches to new line after processing this element. + + + + + Returns whether layout manager can start new line with this element. + + + + + Gets the collection of child elements if any for this markup element. + + + + + Gets or sets whether element size is valid. When size is not valid element Measure method will be called to validate size. + + + + + Gets element parent or null if parent is not set. + + + + + Gets or sets actual rendering bounds. + + + + + Gets or sets whether markup element is visible. + + + + + Gets or sets the element margin. + + + + + Gets or sets actual rendered bounds for a give markup element if applicable. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Indicates paragraph content alignment + + + + + Indicates paragraph content alignment + + + + + Gets reference to markup start element. + + + + + Returns whether layout manager can start new line with this element. + + + + + Gets or sets heading level. Values from 1 to 6 are valid. Default is 1. + + + + + Returns whether hyper-link contains specified coordinates. + + + + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the MarkupElement array. + + Array to copy to. + + + + Gets or sets the collection parent element. + + + + + Returns reference to the object in collection based on it's index. + + + + + Tests whether input text could be markup text. + + Text to test. + true if text could be markup, otherwise false + + + + Gets the style of the hyperlink in its default state. + + + + + Gets the style of the hyperlink when mouse is over the link. + + + + + Gets the style of the visited hyperlink. + + + + + + Represents the method that will handle the ResolveImage event. + + + + + Defines the text-markup hyperlink appearance style. + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + + + + Gets or sets hyperlink text color. + + + + + Gets or sets hyperlink back color. + + + + + Gets or sets the underline style for the hyperlink. + + + + + Gets whether style has been changed from its default state. + + + + + + Indicates that event has been handled and that ResolvedImage should be used. + + + + + Indicates the string key parameters in url-style for the image that needs to be resolved. + + + + + Indicates the resolved image value. + you need to set this value to the resolved image and you need to set Handled property to true. + + + + + Default constructor. + + + + + Gets or sets whether element size is valid. When size is not valid element Measure method will be called to validate size. + + + + + Returns whether layout manager switches to new line after processing this element. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Returns whether layout manager can start new line with this element. + + + + + Summary description for Themes. + + + + + Represents toast display control. This class is not for public use. + + + + + Initializes a new instance of the ToastDisplay class. + + + + + Specifies the alpha-blending, opacity for the content rendered by the control. Setting this property allows fading in and out of the control content. + + + + + Gets or sets the toast background color. + + + + + Gets or sets the toast glow color. + + + + + Gets or sets the image displayed on the toast. + + + + + Represents class used to display toast notifications. A toast notification is a message that appears on the surface of the screen for a moment, + but it does not take focus (or pause the current activity), so it cannot accept any user input. + Notification pops up on the surface of the specified Form or Control. + It only fills the amount of space required for the message and the user's current activity remains visible and interactive. + The notification automatically fades in and out after specified time interval. + Notification text supports text-markup. + + + + + Closes all toast notifications open on specified parent control. + + Parent control. + + + + Closes specified toast notification on parent control. + + Parent control. + Toast ID as returned by the Show method. + + + + Updates the already displayed toast text. Note that toast notification will not be resized. + + Parent control which was used to show toast. + Toast ID returned by the Show toast method. + New toast notification text. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + Specifies toast-glow color used. + Specifies the position of the toast notification. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + Specifies toast-glow color used. + Specifies the X position of the toast notification with its parent window. + Specifies the Y position of the toast notification with its parent window. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + /// Specifies toast-glow color used. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + Specifies the position of the toast notification. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + Image to display next to toast text. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Interval in milliseconds after which the notification is hidden. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Interval in milliseconds after which the notification is hidden. + Specifies the position of the toast notification. + + + + Specifies the toast margin from the edges of the parent control. Default value is 16 pixels on all sides. + + + + + Specifies the default toast position within the parent control. Default value is BottomCenter. + + + + + Specifies default glow color around toast notification. Default value is Blue. + + + + + Specifies the default timeout interval for the toast notification. + + + + + Specifies the toast background color. + + + + + Specifies the toast text color. + + + + + Specifies the font used for the toast. + + + + + Specifies the custom glow color used when eToastGlowColor.Custom is used. + + + + + Specifies toast position within parent control. + + + + + Specifies the glow color around toast notification. + + + + + Summary description for NewToolbar. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Summary description for Tooltip. + + + + + Gets or sets the rectangle of the control or item tooltip is displayed for. + + + + + Gets or sets whether text-markup is enabled for the tooltips. + + + + + Specifies fixed location for tooltip window. + + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises Begin event. + + Provides event arguments. + + + + Raises End event. + + Provides event arguments. + + + + Raises PressAndTap event. + + Provides event arguments. + + + + Raises RotateBegin event. + + Provides event arguments. + + + + Raises Rotate event. + + Provides event arguments. + + + + Raises RotateEnd event. + + Provides event arguments. + + + + Raises TwoFingerTap event. + + Provides event arguments. + + + + Raises ZoomBegin event. + + Provides event arguments. + + + + Raises Zoom event. + + Provides event arguments. + + + + Raises ZoomEnd event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Initializes a new instance of the TouchHandler class. + + + + + + Initializes a new instance of the TouchHandler class. + + + + + + Initializes handler + + + + + The Windows message handler. + + + + + Decode the message and create a collection of event arguments + + + + + The last event in the current gesture event sequence + + + + + Register for touch event + + true if succeeded + + + + The event arguments that started the current gesture + + + + + Gets or sets whether palm rejection is enabled. + + + + + Check if Multi-touch support device is ready + + + + + Create new gesture event instance and decode the gesture info structure + + The gesture handler + The gesture information + + + + Gesture relative rotation angle for Rotate event. + + + + + Indicates calculated gesture center. + + + + + Gesture zoom factor for Zoom event. + + + + + Gesture relative panning translation for Pan event. + + + + + Gesture velocity vector of the pan gesture for custom inertia implementations. + + + + + The last touch arguments in this gesture event sequence. + + + + + The client location of gesture. + + + + + Is this the first event of a gesture. + + + + + It this last event of a gesture. + + + + + Has gesture triggered inertia. + + + + + The first touch arguments in this gesture event sequence. + + + + + Gets or sets whether event is handled. + + + + + EventArgs passed to Touch handlers + + + + + Create new touch event argument instance + + The target control + one of the inner touch input in the message + + + + Touch client coordinate in pixels + + + + + A touch point identifier that distinguishes a particular touch input + + + + + A set of bit flags that specify various aspects of touch point + press, release, and motion. + + + + + mask which fields in the structure are valid + + + + + touch event time + + + + + touch event time from system up + + + + + the size of the contact area in pixels + + + + + Is Primary Contact (The first touch sequence) + + + + + Specifies that movement occurred + + + + + Specifies that the corresponding touch point was established through a new contact + + + + + Specifies that a touch point was removed + + + + + Specifies that a touch point is in range + + + + + specifies that this input was not coalesced. + + + + + Specifies that the touch point is associated with a pen contact + + + + + The touch event came from the user's palm + + Set to true + + + + Gets or sets whether event is handled. + + + + + Get the current Digitizer Status + + + + + Initializes a new instance of the GESTURECONFIG structure. + + + + + + + + Specifies available digitizer capabilities + + + + + Gesture Info Interop Structure + + + + + A Simple POINTS Interop structure + + + + + A Simple POINT Interop structure + + + + + Touch API defined structures [winuser.h] + + + + + Represents class that holds User Interface static methods. + + + + + Gets the graphics path that represents triangle. + + Top left position of the triangle. + Size of the triangle. + Pointing direction of the triangle. + Returns graphics path for the triangle of given size and pointing in given direction. + + + + Creates the double arrow >> collapse expand image for the collapsable controls. + + Indicates the direction of the arrow + Color for the arrows + Indicates whether image is for vertical collapse/expand + + + + + Specifies the pointing direction of triangle. + + + + + Triangle point to the left. + + + + + Triangle point to the right. + + + + + Triangle point to the top. + + + + + Triangle point to the bottom. + + + + + Represents compare validator for SuperValidator control used to compare two input fields or input fields to specified value. + + + + + Represents base validator used by SuperValidator component. + + + + + Validates the input control. + + Input control to validate. + true if validation is successful otherwise false + + + + Gets the input control value. + + Control to return value for. + Controls value + + + + Gets the input control value. + + Control to return value for. + Controls value + + + + Raises the GetValue event. + + Event arguments. + + + + Occurs when validator retrieves the value for the control. It allows you to return value for the controls validator does not recognize. + + + + + Gets or sets the error message that is displayed by error provider when validation fails. + + + + + Gets the last validation result returned from Validate call. True if validation was successful or false if validation failed. + + + + + Returns SuperValidator control validator is assigned to. + + + + + Gets or sets whether error is displayed using the error provider on SuperValidator when validation fails. Default value is true. + + + + + Gets or sets whether validator is enabled. Default value is true. + + + + + Gets or sets the group name validation belongs to. When control belongs to optional validation group the validation is considered successful when any of the controls in the group validates. + + + + + Gets or sets the highlight color for control when validation fails if Highlighter component is used on SuperValidator. Default Value is None. + + + + + Gets or sets the value property name for the control to validate. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Gets or sets the control to compare validated control to. + + + + + Gets or sets the Value property name for the ControlToCompare control. + + + + + Gets or sets the value to compare to the validation control. + + + + + Gets or sets the operator used for comparison. + + + + + Specifies the validation comparison operators used by the CompareValidator. + + + + + A comparison for equality. + + + + + A comparison for inequality. + + + + + A comparison for greater than. + + + + + A comparison for greater than or equal to. + + + + + A comparison for less than. + + + + + A comparison for less than or equal to. + + + + + A comparison for data type only. + + + + + Initializes a new instance of the CustomValidator class. + + + + + Gets or sets custom data associated with the validator + + + + + Defines delegate for CustomValidator ValidateValue event. + + Sender + Event arguments + + + + Gets the reference to the control to validate. + + + + + Gets or sets whether control's value is valid. + + + + + Initializes a new instance of the ValidateValueEventArgs class. + + Control to validate. + + + + Defines an interface that can be implemented by custom error providers to be used with SuperValidator. + + + + + Sets the error state on the control. + + Control for which error state is being set. + The error message from validator. + + + + Clears the error state for the control. + + Control to clear error state for. + + + + Retrieves whether control is highlighted when it receives input focus. + + + + + Sets whether control is highlighted when it receives input focus. + + Reference to supported control. + Indicates whether to highlight control on focus. + + + + Retrieves the highlight color that is applied to the control. + + + + + Sets the highlight color for the control. + + Reference to supported control. + Highlight color. + + + + Updates the highlighted controls border. Usually call to this method is not needed but under + certain scenarios where highlighter does not automatically detects the change in visibility of + the highlighted control call to this method is necessary. + + + + + Indicates the highlight focus color. + + + + + Gets or sets the container control highlighter is bound to. The container control must be set in order for highlighter to work. + Container control should always be a form. + + + + + Gets or sets the array of colors used to render custom highlight color. Control expects 3 colors in array to be specified which define the highlight border. + + + + + Defines highlight colors provided by Highlighter control. + + + + + Initializes a new instance of the ErrorProviderWrapper class. + + + + + + Initializes a new instance of the ErrorProviderWrapper class. + + + + + + + Initializes a new instance of the HighlightPanel class. + + + + + + Gets or sets the array of colors used to render custom highlight color. Control expects 3 colors in array to be specified which define the highlight border. + + + + + Initializes a new instance of the HighlightRegion structure. + + + + + + + + Initializes a new instance of the RangeValidator class. + + + + + Initializes a new instance of the RangeValidator class. + + + + + Initializes a new instance of the RangeValidator class. + + + + + Gets or sets the maximum value control may have. + + + + + Gets or sets the minimum value control may have. + + + + + Indicates whether empty string of zero length is considered valid input. + + + + + Represents the regular expression validator used with SuperValidator control. + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Gets or sets regular expression used to validate controls value. + + + + + Gets or sets whether empty value is considered valid value by the validator. Default value is false. + + + + + Describes required field validator used with SuperValidator control. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Raises EvaluateIsEmpty event. + + Event Arguments + + + + Occurs when controls value needs to be evaluated to check whether it is empty. You can use this event to perform custom evaluation. + + + + + Indicates whether empty string of zero length is considered valid input. + + + + + Initializes a new instance of the ValidatorGetValueEventArgs class. + + + + + + + Gets Control to retrieve value for. + + + + + Gets the Value to evaluate. + + + + + Gets validator that is requesting value. + + + + + Resets the Value set and indicates that validator will internally retrieve value for the control. + + + + + Gets or sets the value that will be used by validator. + + + + + Raises the CustomValidatorValidateValue event. + + Validator that needs validation. + Control to validate. + + + + Retrieves first level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates first level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Retrieves second level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates second level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Retrieves third level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates third level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Raises the GetValue event. + + Event arguments. + + + + Performs validation on all validators. It also uses error provider to display failed validations if validator has that enabled. + + Returns true if all validations succeeded or false if at least one validation has failed. + + + + Validate single control. Note that control must have validator assigned to it. This method will change LastFailedValidationResults collection. + + Control to validate. + returns true if validation succeeds or false if it fails + + + + Validate single control. Note that control must have validator assigned to it. This method will change LastFailedValidationResults collection. + + Control to validate. + Indicates whether to clear the last set of failed validations by calling ClearFailedValidations() method. + returns true if validation succeeds or false if it fails + + + + Removes all visual markers from failed validations that were placed on the controls. + + + + + Occurs when validator retrieves the value for the control. It allows you to return value for the controls validator does not recognize. + + + + + Occurs when CustomValidator needs to validate the control value. + + + + + Gets or sets whether validation is performed in steps meaning that if first level validation fails, second level is not validated + until first level validation succeeds. Default value is false which means that all validation levels are validated even if first level fails. + + + + + Gets the readonly collection that returns failed validations that were result of last Validate method call. + + + + + Indicates default ErrorProvider IconPadding when Highlighter is used with SuperValidator. Setting this property to 0 will allow you to set IconPadding for each control manually. + + + + + Gets or sets the error provider that is used by the validator to report validation errors. + + + + + Gets or sets the custom error provider that is used by validator to report errors. You can provide your own error validators by implementing IErrorProvider interface. + + + + + Gets or sets the Highlighter component that is used to highlight validation errors. + + + + + Gets or sets the validation type performed by the control. Default value is Manual. + + + + + Gets or sets the container control validator is bound to. The container control must be set for the ValidationType ValidatingEventOnContainer. + When ContainerControl is Form the validator handles the Closing event of the form to perform the validation and cancel the form closing. + You can disable that by setting either Enabled=false or Form.CausesValidation=false. + + + + + Gets or sets whether validation is performed. Default value is true. + + + + + Gets or sets whether Cancel argument in Validating event for validation type ValidatingEventPerControl is set to true when validation fails. + + + + + Specifies the validation type for SuperValidator control. + + + + + SuperValidator uses manual validation, i.e. you will call Validate method to perform validation. + + + + + Validation is performed per control from each controls Validating event. The Cancel is set to true on event arguments if validation fails. + + + + + Validation is performed for all controls from Validating event on container control. By default container control is Form that SuperValidator is on. + + + + + Defines validator control pair used by SuperValidator control. + + + + + Gets the validator associated with the control. + + + + + Gets control reference. + + + + + Initializes a new instance of the ValidatorControlPair structure. + + Validator associated with the control + Control reference + + + + Initializes a new instance of the ValidatorGetValueEventArgs class. + + + + + + + Gets Control to retrieve value for. + + + + + Gets validator that is requesting value. + + + + + Resets the Value set and indicates that validator will internally retrieve value for the control. + + + + + Gets or sets the value that will be used by validator. + + + + + Retrieves the show state and the restored, minimized, and maximized positions of the specified window. + + + A handle to the window. + + + A pointer to the WINDOWPLACEMENT structure that receives the show state and position information. + + Before calling GetWindowPlacement, set the length member to sizeof(WINDOWPLACEMENT). GetWindowPlacement fails if lpwndpl-> length is not set correctly. + + + + If the function succeeds, the return value is nonzero. + + If the function fails, the return value is zero. To get extended error information, call GetLastError. + + + + + Options available when a form is tested for mose positions. + + + HTERROR: On the screen background or on a dividing line between windows + (same as HTNOWHERE, except that the DefWindowProc function produces a system + beep to indicate an error). + + + HTTRANSPARENT: In a window currently covered by another window in the + same thread (the message will be sent to underlying windows in the same thread + until one of them returns a code that is not HTTRANSPARENT). + + + HTNOWHERE: On the screen background or on a dividing line between + windows. + + + HTCLIENT: In a client area. + + + HTCAPTION: In a title bar. + + + HTSYSMENU: In a window menu or in a Close button in a child window. + + + HTGROWBOX: In a size box (same as HTSIZE). + + + HTMENU: In a menu. + + + HTHSCROLL: In a horizontal scroll bar. + + + HTVSCROLL: In the vertical scroll bar. + + + HTMINBUTTON: In a Minimize button. + + + HTMAXBUTTON: In a Maximize button. + + + HTLEFT: In the left border of a resizable window (the user can click + the mouse to resize the window horizontally). + + + HTRIGHT: In the right border of a resizable window (the user can click + the mouse to resize the window horizontally). + + + HTTOP: In the upper-horizontal border of a window. + + + HTTOPLEFT: In the upper-left corner of a window border. + + + HTTOPRIGHT: In the upper-right corner of a window border. + + + HTBOTTOM: In the lower-horizontal border of a resizable window (the + user can click the mouse to resize the window vertically). + + + HTBOTTOMLEFT: In the lower-left corner of a border of a resizable + window (the user can click the mouse to resize the window diagonally). + + + HTBOTTOMRIGHT: In the lower-right corner of a border of a resizable + window (the user can click the mouse to resize the window diagonally). + + + HTBORDER: In the border of a window that does not have a sizing + border. + + + HTOBJECT: Unknown...No Documentation Found + + + HTCLOSE: In a Close button. + + + HTHELP: In a Help button. + + + HTSIZE: In a size box (same as HTGROWBOX). (Same as GrowBox). + + + HTREDUCE: In a Minimize button. (Same as MinimizeButton). + + + HTZOOM: In a Maximize button. (Same as MaximizeButton). + + + + Hides the window and activates another window. + + + + + Activates and displays a window. If the window is minimized or + maximized, the system restores it to its original size and position. + An application should specify this flag when displaying the window + for the first time. + + + + + Activates the window and displays it as a minimized window. + + + + + Maximizes the specified window. + + + + + Activates the window and displays it as a maximized window. + + + + + Displays a window in its most recent size and position. This value + is similar to , except + the window is not actived. + + + + + Activates the window and displays it in its current size and position. + + + + + Minimizes the specified window and activates the next top-level + window in the Z order. + + + + + Displays the window as a minimized window. This value is similar to + , except the + window is not activated. + + + + + Displays the window in its current size and position. This value is + similar to , except the + window is not activated. + + + + + Activates and displays the window. If the window is minimized or + maximized, the system restores it to its original size and position. + An application should specify this flag when restoring a minimized window. + + + + + Sets the show state based on the SW_* value specified in the + STARTUPINFO structure passed to the CreateProcess function by the + program that started the application. + + + + + Windows 2000/XP: Minimizes a window, even if the thread + that owns the window is not responding. This flag should only be + used when minimizing windows from a different thread. + + + + + Represents Wizard control. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Simulates Back button click on Wizard control. Note that this method will raise the same events as + standard Wizard Back button click. + + + + + Simulates Next button click on Wizard control. Note that this method will raise the same events as + standard Wizard Next button click. + + + + + Simulates Cancel button click on Wizard control. Note that this method will raise the same events as + standard Wizard Cancel button click. + + + + + Simulates Finish button click on Wizard control. Note that this method will raise the same events as + standard Wizard Finish button click. + + + + + Raises BackButtonClick event. + + Event arguments + + + + Raises NextButtonClick event. + + Event arguments + + + + Raises FinishButtonClick event. + + Event arguments + + + + Raises CancelButtonClick event. + + Event arguments + + + + Raises HelpButtonClick event. + + Event arguments + + + + Raises WizardPageChanging event. + + Provides event arguments + + + + Raises WizardPageChanged event. + + Provides event arguments + + + + Occurs when Back button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Next button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Finish button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Cancel button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Help button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs before wizard page has changed and gives you opportunity to cancel the change. + + + + + Occurs after wizard page has changed. This event cannot be cancelled. To cancel the page change please use WizardPageChanging event. + + + + + Occurs when wizard buttons (Back, Next, Finish etc) are positioned and resized. + + + + + Gets or sets the header image. Default value is null which means that internal header image is used. You can hide header image + by setting HeaderImageVisible property. + + + + + Gets or sets whether header image is visible. Default value is true. + + + + + Gets or sets wizard button that is clicked when ENTER key is pressed. Default value is eWizardFormAcceptButton.FinishAndNext which + indicates that finish button will be clicked if available otherwise next button will be clicked. + + + + + Gets or sets wizard button that is clicked when ESCAPE key is pressed. Default value is eWizardFormCancelButton.Cancel which + indicates that Cancel button will be clicked. + + + + + Gets or sets whether all buttons are disabled while wizard page is changed which prevents users from clicking the buttons + if page change is taking longer. Default value is true. + + + + + Gets or sets whether wait cursor is displayed while page is changed. Default value is true. + + + + + Gets or sets the selected page index. You can set this property to change the currently selected wizard page. + + + + + Gets or sets selected wizard page. You can set this property to change the currently selected wizard page. + + + + + Gets the collection of Wizard pages. The order of WizardPage objects inside of this collection determines the flow of the wizard. + + + + + Returns a Stack of page history. Each time next page is displayed by wizard, previously visited page is added to the history. + When user commands Wizard back, the last page from the history is shown and removed from the stack. You should not modify this collection + directly since it is maintained by Wizard control. + + + + + Gets or sets the FlatStyle setting for the wizard buttons. Default value is FlatStyle.System + + + + + Gets or sets height of wizard command buttons. Default value is 22 pixels. + + + + + Gets or sets whether back button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets tab index of back button. Default value is 1. + + + + + Gets or sets a value indicating whether the user can give the focus to this back button using the TAB key. Default value is true. + + + + + Gets or sets caption of the back button. + + + + + Gets or sets width of the back button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether next button causes validation to be performed on any controls that require validation when it receives focus. Default value is true. + + + + + Gets or sets tab index of next button. Default value is 2. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the next button. + + + + + Gets or sets width of the next button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets tab index of the button. Default value is 4. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is true. + + + + + Gets or sets tab index of the button. Default value is 4. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets whether finish button is always visible next to the Next button. Default value is false which means that Finish + button will be visible only on last Wizard page and it will replace the Next button. When set to true Finish button is always visible next + to the Next button except on first Welcome wizard page. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets whether button is visible. Default value is true. + + + + + Gets or sets tab index of the button. Default value is 5. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets the height of the wizard footer. Default value is 46 + + + + + Gets or sets the height of the wizard header. Default value is 60 + + + + + Gets or sets the header image alignment. Default value is right. + + + + + Gets or sets the header image size for interior wizard pages. Default value is 48x48 + + + + + Gets or sets indentation of header title label. Default value is 16. + + + + + Gets or sets indentation of header description label. Default value is 44. + + + + + + Indicates the font used to render caption header text. + + + + + Gets or sets whether description text displayed in wizard header is visible. + + + + + Gets or sets the header background style. + + + + + Gets or sets the footer background style. + + + + + Returns reference to internal Next button control. + + + + + Returns reference to internal Cancel button control. + + + + + Returns reference to internal Finish button control. + + + + + Returns reference to internal Help button control. + + + + + Returns reference to internal Back button control. + + + + + Gets or sets whether Focus cues on wizard navigation buttons are enabled. Default value is true. + + + + + Gets or sets the visual style used for wizard buttons. + + + + + Provides data for LayoutWizardButtons event. + + + + + Gets or sets bounds of Back button. + + + + + Gets or sets bounds of Next button. + + + + + Gets or sets bounds of Finish button. + + + + + Gets or sets bounds of Cancel button. + + + + + Gets or sets bounds of Help button. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Defines delegate for WizardPageChange events. + + + + + Updates page state when one of the page appearance properties has changed. + + + + + Fires BeforePageDisplayed event. + + Event arguments + + + + Invokes the BeforePageDisplayed event. + + Event arguments + + + + Fires AfterPageDisplayed event. + + Event arguments. + + + + Invokes AfterPageDisplayed event. + + Event arguments + + + + Fires BeforePageDisplayed event. + + Event arguments + + + + Invokes the BeforePageDisplayed event. + + Event arguments + + + + Raises BackButtonClick event. + + Event arguments + + + + Invokes BackButtonClick event. + + + + + Raises NextButtonClick event. + + Event arguments + + + + Invokes NextButtonClick event. + + + + + Raises FinishButtonClick event. + + Event arguments + + + + Invokes FinishButtonClick event. + + + + + Raises CancelButtonClick event. + + Event arguments + + + + Invokes CancelButtonClick event. + + + + + Raises HelpButtonClick event. + + Event arguments + + + + Invokes HelpButtonClick event. + + + + + Occurs before page is displayed. This event can cancel the page change. You can perform any additional setup of the Wizard page in this event. + + + + + Occurs after page has been displayed.This event can cancel the page change. You can perform any additional setup of the Wizard page in this event. + + + + + Occurs after page is hidden. You can perform any additional steps that are needed to complete wizard step in this event. + + + + + Occurs when Back button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Next button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Finish button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Cancel button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Help button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Gets whether page is currently selected page in Wizard. + + + + + Gets or sets whether back button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether back button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether next button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether next button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether finish button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether cancel button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether cancel button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether help button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether help button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets the page header image when page is an interior page, InteriorPage=true. Default value is null. + + + + + Gets or sets the text that is displayed as title in wizard header when page is active. + + + + + Gets or sets the text that is displayed as description in wizard header when page is active. + + + + + Gets or sets the text that is displayed on form caption when page is active. Default value is empty string which indicates that form caption + is not changed when page becomes active. + + + + + Gets or sets whether page is interior page. Interior pages use wizard header area to display page title, description and optional image. They are also padded and do not + fill the client area of the Wizard. Default value is true. + You can set this value to false to hide header area and make page fill the client area of the wizard. + + + + + Gets or sets whether page is visible. Page visibility is managed by Wizard control and it should not be set directly. + + + + + Represents the collection of WizardPage objects which determines the flow of the wizard. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds an array of objects to the collection. + + Array of WizardPage objects. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the WizardPage array. + + Array to copy to. + + + + Copies contained items to the WizardPage array. + + Array to copy to. + + + + Gets the parent this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides data for Wizard Page Change events. + + + + + Specifies the new active wizard page. You can change this argument when handling WizardPageChanging event and provide newly selected page of your own. + + + + + Specifies page that was or currently is active. + + + + + Indicates the wizard button that was source of page change. + + + + + Creates new instance of the class with default values. + + New wizard page + Old or current wizard page + Page change source + + + + Provides data for Wizard Page Change events. + + + + + Allows you to cancel the page change. + + + + + Creates new instance of the class with default values. + + New wizard page + Old or current wizard page + Page change source + + + + Defines delegate for WizardPageChange events. + + + + + Defines delegate for WizardPageChange events. + + +
+
diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.dll b/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.dll new file mode 100644 index 0000000..4390013 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.xml b/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.xml new file mode 100644 index 0000000..556d0ba --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/DropDownControls.xml @@ -0,0 +1,2088 @@ + + + + DropDownControls + + + + + Attaches to a System.Windows.Forms.Control and provides buffered + painting functionality. + + Uses TState to represent the visual state of the control. Animations + are attached to transitions between states. + + + Any type representing the visual state of the control. + + + + Raises the PaintVisualState event. + + BufferedPaintEventArgs instance. + + + + Initialises a new instance of the BufferedPainter class. + + + Control this instance is attached to. + + For best results, use a control which does not paint its background. + + + Note: Buffered painting does not work if the OptimizedDoubleBuffer flag is set for the control. + + + + + + Returns a value indicating whether buffered painting is supported under the current OS and configuration. + + + + + + Short-hand method for adding a state transition. + + The previous visual state. + The new visual state. + Duration of the animation (in milliseconds). + + + + Short-hand method for adding a state change trigger. + + Type of trigger. + Visual state applied when the trigger occurs. + Bounds within which the trigger applies. + How the bounds are anchored to the control. + + + + Evaluates all state change triggers. + + + + + Helper method for EvalTriggers(). + + Type of trigger to search for. + Reference to the visual state variable to update (if the trigger occurs). + + + + Deactivates buffered painting. + + + + + Fired when the control must be painted in a particular state. + + + + + Gets whether buffered painting is supported for the current OS/configuration. + + + + + Gets the control this instance is attached to. + + + + + Gets or sets the default animation duration (in milliseconds) for state transitions. The default is zero (not animated). + + + + + Gets or sets whether animation is enabled. + + + + + Gets or sets the default visual state. The default value is 'default(TState)'. + + + + + Gets the collection of state transitions and their animation durations. + Only one item for each unique state transition is permitted. + + + + + Gets the collection of state change triggers. + Only one item for each unique combination of type and visual state is permitted. + + + + + Gets or sets the current visual state. + + + + + Represents a transition between two visual states. Describes the duration of the animation. + Two transitions are considered equal if they represent the same change in visual state. + + Any type representing the visual state of the control. + + + + Initialises a new instance of the BufferedPaintTransition class. + + The previous visual state. + The new visual state. + Duration of the animation (in milliseconds). + + + + Determines if two instances are equal. + + The object to compare. + + + + + Serves as a hash function for a particular type. + + + + + + Gets the previous visual state. + + + + + Gets the new visual state. + + + + + Gets or sets the duration (in milliseconds) of the animation. + + + + + Represents a trigger for a particular visual state. + Two triggers are considered equal if they are of the same type and visual state. + + Any type representing the visual state of the control. + + + + Initialises a new instance of the VisualStateTrigger class. + + Type of trigger. + Visual state applied when the trigger occurs. + Bounds within which the trigger applies. + + + + Determines if two instances are equal. + + The object to compare. + + + + + Serves as a hash function for a particular type. + + + + + + Gets the type of trigger. + + + + + Gets the visual state applied when the trigger occurs. + + + + + Gets or sets the bounds within which the trigger applies. + + + + + Gets or sets how the bounds are anchored to the edge of the control. + + + + + Represents the types of trigger which can change the visual state of a control. + + + + + The control receives input focus. + + + + + The mouse is over the control. + + + + + The left mouse button is pressed on the control. + + + + + EventArgs class for the BufferedPainter.PaintVisualState event. + + Any type representing the visual state of the control. + + + + Initialises a new instance of the BufferedPaintEventArgs class. + + Visual state to paint. + Graphics object on which to paint. + + + + Gets the visual state to paint. + + + + + Gets the Graphics object on which to paint. + + + + + Represents a control which provides ComboBox-like functionality, displaying its + dropdown items (nodes) in a manner similar to a TreeView control. + + + + + Abstract base class for a control which behaves like a dropdown but does not contain + logic for displaying a popup window. + + + + + Creates a new instance of DropDownControlBase. + + + + + Gets the bounds of the textbox portion of the control by subtracting the dropdown button bounds from the client rectangle. + + + + + + Converts a ComboBoxState value into its equivalent PushButtonState value. + + + + + + + Determines the state in which to render the textbox portion of the control (when using visual styles). + + + + + + Determines the state in which to render the dropdown button portion of the control (when using visual styles). + + + + + + Determines the state in which to render the dropdown button portion of the control (when not using visual styles). + + + + + + Registers the arrow keys as input keys. + + + + + + + Raised the DropDownButtonClick event. + + + + + + Raises the DropDown event. + + + + + + Raises the DropDownClosed event. + + + + + + Recalculates the fixed height of the control when the font changes. + + + + + + Repaints the focus rectangle when focus changes. + + + + + + Repaints the focus rectangle when focus changes. + + + + + + Prevents the control's background from painting normally. + + + + + + Paints the content in the editable portion of the control, providing additional measurements and operations. + + + + + + Repaints the control when the mouse enters its bounds. + + + + + + Repaints the control when the mouse leaves its bounds. + + + + + + Repaints the control when a mouse button is pressed. + + + + + + Repaints the control when a mouse button is released. + + + + + + Repaints the control when the mouse is moved over the control. + + + + + + Determines when to raise the DropDownButtonClick event. + + + + + + Recalculates the bounds for the dropdown button when the control's size changes. + + + + + + Repaints the control when the control is enabled/disabled. + + + + + + Sets the fixed height of the control, based on the font size. + + + + + Calculates and returns the bounds for the dropdown button for a dropdown control. + + + + + + + Draws a legacy style combo box control. + + + + + + + + + + Paints the control using the Buffered Paint API. + + + + + + + Determines whether to draw the control with visual styles. + + + + + Opens or closes the dropdown portion of the control. + + + + + Gets or sets the background color to use for this control. + + + + + Hides the BackgroundImage property on the designer. + + + + + Hides the BackgroundImageLayout property on the designer. + + + + + Fired when the user clicks the dropdown button at the right edge of the control. + + + + + Fired when the drop-down portion of the control is displayed. + + + + + Fired when the drop-down portion of the control is closed. + + + + + Fired when the content of the editable portion of the control is painted. + + + + + Initalises a new instance of ComboTreeBox. + + + + + Prevents the dropdown portion of the control from being updated until the EndUpdate method is called. + + + + + Collapses all nodes in the tree for when the dropdown portion of the control is reopened. + + + + + Disposes of the control and its dropdown. + + + + + + Updates the dropdown portion of the control after being suspended by the BeginUpdate method. + + + + + Expands all nodes in the tree for when the dropdown portion of the control is reopened. + + + + + Returns the next displayable node, relative to the selected node. + + + + + + Returns the previous displayable node, relative to the selected node. + + + + + + Returns the image referenced by the specified node in the ImageList component associated with this control. + + + + + + + Returns the image associated with the specified node. + + + + + + + + + + + + Determines whether the specified node should be displayed. + + + + + + + Toggles the visibility of the dropdown portion of the control. + + + + + + Scrolls between adjacent nodes, or scrolls the drop-down portion of + the control in response to the mouse wheel. + + + + + + Updates the dropdown's font when the control's font changes. + + + + + + Handles keyboard shortcuts. + + + + + + Closes the dropdown portion of the control when it loses focus. + + + + + + Paints the selected node in the control. + + + + + + Facilitates various keyboard shortcuts. + + + + + + + + Returns the full path to the specified . + + + + + + + Returns the node at the specified path. + + + + + + + Returns a string containing the concatenated text of the checked nodes. + + + + + + Raises the event. + + + + + + Raises the event. + + + + + + Determines whether the specified node belongs to this ComboTreeBox, and + hence is a valid selection. For the purposes of this method, a null + value is always a valid selection. + + + + + + + Sets the value of the DroppedDown property, optionally without raising any events. + + + + + + + Sets the value of the SelectedNode property and raises the SelectedNodeChanged event. + + + + + + Sorts the contents of the tree using the default comparer. + + + + + Sorts the contents of the tree using the specified comparer. + + + + + + Gets the (recursive) superset of the entire tree of nodes contained + within the control. + + + + + Gets or sets a value indicating whether the check state of a node is + determined by its child nodes, and vice versa. If set to true, this + means that only the check state of leaf nodes is significant. + + + + + Gets or sets a (recursive) sequence containing the nodes whose + property is equal to + . If the + property is set to true, only leaf nodes are included. + + + + + Gets or sets the string used to separate the checked nodes. + + + + + Gets or sets the height of the dropdown portion of the control. + + + + + Gets or sets whether the dropdown portion of the control is displayed. + + + + + Gets or sets the index of the default image to use for nodes when expanded. + + + + + Gets or sets the name of the default image to use for nodes when expanded. + + + + + Gets or sets the index of the default image to use for nodes. + + + + + Gets or sets the name of the default image to use for nodes. + + + + + Gets or sets an ImageList component which provides the images displayed beside nodes in the control. + + + + + Gets the collection of top-level nodes contained by the control. + + + + + Gets or sets the text displayed in the editable portion of the control if the SelectedNode property is null. + + + + + Gets or sets the path to the selected node. + + + + + Gets or sets the string used to separate nodes in the Path property. + + + + + Gets or sets the node selected in the control. + + + + + Gets or sets a value indicating whether a checkbox is shown beside each node. + + + + + Determines whether the full path to the selected node is displayed in the editable portion of the control. + + + + + Gets whether the owning control is displaying focus cues. + + + + + Hides the Text property from the designer. + + + + + Gets or sets a value indicating whether node checkboxes move into the state after the state. + + + + + Gets or sets the first visible ComboTreeNode in the drop-down portion of the control. + + + + + Determines whether the property of the nodes is used to construct the path string. + The default behaviour is to use the property. + + + + + Gets the number of ComboTreeNodes visible in the drop-down portion of the control. + + + + + Gets a value indicating whether glyph lines need to be drawn to the left of each node. + + + + + Fired when the value of the property changes. + + + + + Fired when the value of a node's property changes. + + + + + Represents the dropdown portion of the ComboTreeBox control. The nodes are displayed in a + manner similar to the TreeView control. + + + + + Initialises a new instance of ComboTreeDropDown and associates it with its parent ComboTreeBox. + + + + + + Generates a bitmap to display beside the ToolStripItem representation of the specified node. + + + + + + + + Determines how to draw a scrollbar button. + + + + + + + Determines how to draw a checkbox glyph. + + + + + + + + Returns the ComboTreeNodeCollection to which the specified node belongs. + + + + + + + Determines all of the parameters for drawing the bitmap beside the + specified node. If they represent a unique combination, the bitmap is + generated and returned. Otherwise, the appropriate cached bitmap is + returned. + + + + + + + Determines how to draw the main part of the scrollbar. + + + + + + + Determines how to draw the down arrow on the scrollbar. + + + + + + Determines how to draw the up arrow on the scrollbar. + + + + + + Determines how to draw the 'thumb' button on the scrollbar. + + + + + + Registers the arrow keys as input keys. + + + + + + + Updates the status of the dropdown on the owning ComboTreeBox control. + + + + + + Prevents the clicking of items from closing the dropdown. + + + + + + Updates the font on the items when the drop-down's font changes. + + + + + + Handles keyboard shortcuts. + + + + + + Handles keyboard shortcuts. + + + + + + Handles dragging of the scrollbar and hot-tracking in response to movement of the mouse. + + + + + + Handles scrolling in response to the left mouse button being clicked. + + + + + + Disengages dragging of the scrollbar and handles hot-tracking in + response to the mouse button being released. + + + + + + Handles the expand/collapse of nodes and selection in response to the + mouse being clicked. + + + + + + Terminates dragging of the scrollbar in response to the mouse + returning to the control. + + + + + + Terminates dragging of the scrollbar in response to the mouse leaving + the control. + + + + + + Paints the drop-down, including all items within the scrolled region + and, if appropriate, the scrollbar. + + + + + + Displays the dropdown beneath its owning ComboTreeBox control. + + + + + Expands parent nodes until the specified node is visible. + + + + + + Highlights and scrolls to the specified node. + + + + + + Scrolls the drop-down up or down by the specified number of items. + + + + + + Scrolls the drop-down so as to ensure that the highlighted item is at + either the top or bottom of the scrolled region. + + + + + + Updates the items in the scrolled region. This method is called + whenever the scroll offset is changed. + + + + + Releases resources used by the bitmap cache. + + + + + Regenerates the items on the dropdown. This method is called whenever + a significant change occurs to the dropdown, such as a change in the + tree or changes to the layout of the owning control. + + + + + Releases resources used by the component. + + + + + + Gets the collapsed (+) glyph to paint on the dropdown. + + + + + Removes extraneous default padding from the dropdown. + + + + + Gets or sets the maximum height of the dropdown. + + + + + Gets the expanded (-) glyph to paint on the dropdown. + + + + + Gets or sets the first visible ComboTreeNode in the drop-down portion of the control. + + + + + Gets the number of ComboTreeNodes visible in the drop-down portion of the control. + + + + + Represents the information needed to draw and interact with a node in the drop-down. + + + + + Creates a new instance of the NodeInfo class to represent the + specified ComboTreeNode. + + + + + + Gets the node represented by this item. + + + + + Gets or sets a reference to the bitmap shown beside this item, + containing the node's image, plus/minus glyph and lines. + + + + + Gets or sets the current bounds of the item in the drop-down. + + + + + Gets or sets the current bounds of the glyph section of the + item, which is clickable. + + + + + Gets or sets the current bounds of the checkbox section of the + item (if node checkboxes are displayed). + + + + + Represents the information needed to draw and interact with the scroll + bar. + + + + + Gets or sets the bounds of the entire scrollbar. + + + + + Gets or sets the bounds of the up arrow. + + + + + Gets or sets the bounds of the down arrow. + + + + + Gets or sets the bounds of the 'thumb' button. + + + + + Represents the variables which determine the bitmap to draw beside an + item. In a drop-down with a large number of items, there may be only a + small number of distinct bitmaps. This structure serves as a key to + aid in identifying the bitmap to use. + + + + + Used as the comparison function in the bitmap cache; ensures that + bitmaps are only created for distinct combinations of these + variables. + + + + + + + Gets or sets whether the node has children. This is used to + determine if the plus/minus glyph is drawn. + + + + + Gets or sets whether the node is the last peer in its branch of + the tree. These nodes do not draw a connector to their successor. + + + + + Gets or sets whether the node is the first in the entire tree. The + very first node does not draw a connector to its predecessor. + + + + + Gets or sets the index of the image in the ComboTreeNode's + ImageList component to draw beside this node. + + + + + Gets or sets the name of the image in the ComboTreeNode's + ImageList component to draw beside this node. + + + + + Gets or sets the zero-based depth of the node in the tree. This is + used to calculate indents. + + + + + Gets or sets whether the node has children and is expanded. This + will cause a connector to be drawn to the sub-tree. + + + + + Gets or sets whether outer vertical connectors are to be drawn for + each successive parent of the node. + + + + + Represents a node in the ComboTreeBox. A node may have a name, text, font style, image and + may contain child nodes. If so, it can be expanded or collapsed. + + + + + Initialises a new instance of ComboTreeNode using default (empty) values. + + + + + Initialises a new instance of ComboTreeNode with the specified text. + + + + + + Initialises a new instance of ComboTreeNode with the specified name and text. + + + + + + + Returns the full path to this node, using the specified path separator. + + + Separator between the elements that make up the path. + + + Whether to construct the path from the property + instead of the property. + + The path string. + + + + Returns the aggregate check state of this node's children. + + + + + + Returns a string representation of this . + + + + + + Raises the event. + + + + + Compares two ComboTreeNode objects using a culture-invariant, case-insensitive comparison of the Text property. + + + + + + + Gets or sets the node that owns this node, or null for a top-level node. + + + + + Gets or sets the text displayed on the node. + + + + + Gets or sets the font style to use when painting the node. + + + + + Gets or sets the index of the image (in the ImageList on the ComboTreeBox control) to use for this node. + + + + + Gets or sets the name of the image to use for this node. + + + + + Gets or sets whether the node is expanded (i.e. its child nodes are visible). Changes are not reflected in the dropdown portion of the + control until the next time it is opened. + + + + + Gets or sets the index of the image to use for this node when expanded. + + + + + Gets or sets the name of the image to use for this node when expanded. + + + + + Gets a collection of the child nodes for this node. + + + + + Gets or sets the name of the node. + + + + + Determines the zero-based depth of the node, relative to the ComboTreeBox control. + + + + + Gets or sets the check state when the property is set to true. + + + + + Gets or sets the checked state when the property is set to true. + + + + + Gets or sets a user-defined object associated with this ComboTreeNode. + + + + + Fired when the value of the property changes. + + + + + Event arguments for the event. + + + + + Initialises a new instance of the class using the specified node. + + + + + + Gets the affected node. + + + + + Represents a collection of ComboTreeNode objects contained within a node or a ComboTreeBox control. + Supports change notification through INotifyCollectionChanged. Implements the non-generic IList to + provide design-time support. + + + + + Initalises a new instance of ComboTreeNodeCollection and associates it with the specified ComboTreeNode. + + + + + + Creates a node and adds it to the collection. + + + + + + + Creates a node and adds it to the collection. + + + + + + + + Adds a range of ComboTreeNode to the collection. + + + + + + Determines whether the collection contains a node with the specified name. + + + + + + + Removes the node with the specified name from the collection. + + + + + + + Returns the index of the node with the specified name. + + + + + + + Raises the CollectionChanged event. + + + + + + Sorts the collection and its entire sub-tree using the specified comparer. + + + + + + Recursive helper method for Sort(IComparer<ComboTreeNode>). + + + + + + Adds event handlers to the specified node. + + + + + + Removes event handlers from the specified node. + + + + + + Raises the event. + + + + + + Returns the that corresponds to the specified path string. + + The path string. + The path separator. + Whether the path is constructed from the name of the node instead of its text. + The node, or null if the path is empty. + + + + Returns the with the specified node text. + + The text to match. + The type of string comparison performed. + Whether to search recursively through all child nodes. + + + + + Adds a node to the collection. + + + + + + Clears the collection. + + + + + Determines whether the collection contains the specified node. + + + + + + + Copies all the nodes from the collection to a compatible array. + + + + + + + Removes the specified node from the collection. + + + + + + + Returns an enumerator which can be used to cycle through the nodes in the collection (non-recursive). + + + + + + Returns the index of the specified node. + + + + + + + Inserts a node into the collection at the specified index. + + + + + + + Removes the node at the specified index from the collection. + + + + + + Fired when the check state of a node in the collection (or one of its children) changes. + + + + + Gets the node with the specified name. + + + + + + + Gets the number of nodes in the collection. + + + + + Gets or sets the node at the specified index. + + + + + + + Fired when the collection (sub-tree) changes. + + + + + A column type based on the + control. + + + + Both the underlying values and formatted values of cells in the column + are path strings. If the column is bound to a data source, the data + source values must also be path strings. You can decide which options + to use when constructing path strings. + + + Some of the more advanced features of the + control (such as checkboxes) are not supported by this column type. + + + + + + Base class for custom column types. + + + + + Constructor. + + + + + Gets a value indicating whether buffered painting is supported. + Used when rendering cells. + + + + + Initialises a new instance of the class. + + + + + Returns a copy of the column. + + + + + + Gets or sets the index of the default image to use for nodes when expanded. + + + + + Gets or sets the name of the default image to use for nodes when expanded. + + + + + Gets or sets the index of the default image to use for nodes. + + + + + Gets or sets the name of the default image to use for nodes. + + + + + Gets or sets an ImageList component which provides the images displayed beside nodes in the control. + + + + + Gets the collection of top-level nodes contained by the column. + + + + + Gets or sets the string used to separate nodes in the Path property. + + + + + Determines whether the full path to the selected node is displayed in the column. + + + + + Determines whether the property of the nodes is used to construct the path string. + The default behaviour is to use the property. + + + + + Custom cell type to accompany . + + + + + Base class for custom cell types. + + + + + Paints common elements behind the cell content. + + + + + + + + + + Paints common elements in front of the cell content. + + + + + + + + + + + + Initialises a new instance of the class. + + + + + Parses the formatted value from the editing control. + For this cell type, the formatted value and the underlying value are the same. + + + + + + + + + + Gets the formatted value for the cell. + For this cell type, the formatted value and the underlying value are the same. + + + + + + + + + + + + Returns a copy of the cell. + + + + + + Initialises the editing control for the cell. + + + + + + + + Paints the cell. + + + + + + + + + + + + + + + + Gets a collection of nodes to use instead of the owning column's + nodes. + + + + + Gets or sets a value indicating whether to use the + collection for the cell instead of the owning + column's nodes. + + + + + Gets the type of editing control to use for the cell. + + + + + Gets the type of the cell's formatted values. + + + + + Editing control to accompany . + + + + + Constructor. + + + + + A column type based on the + control. + + + + Unlike the , the items in the + combo box for this column type may only come from a data source. + However, you can override the data source for cells on an individual + basis. + + + The formatted value type for this column is always + . You do not have to explicitly set the + , or + properties. + + + + + + Initialises a new instance of the class. + + + + + Returns a copy of the column. + + + + + + Gets or sets the name of the property of a list item which provides its display value. + + + + + Gets or sets the name of the property of a list item which provides its underlying value. + + + + + Gets or sets the name of the property of a list item which provides its grouping value. + + + + + Gets or sets the data source that populates the items in the combo box. + + + + + Custom cell type to accompany . + + + + + Parses a formatted value from the editing control. + This works by matching the editing control's text against the + display values for the list items. + + + + + + + + + + Gets the formatted value for the cell. + + + + + + + + + + + + Returns a copy of the cell. + + + + + + Initialises the editing control for the cell. + + + + + + + + Paints the cell. + + + + + + + + + + + + + + + + Gets or sets a value which overrides the owning column's + property. + + + + + Gets or sets a value which overrides the owning column's + property. + + + + + Gets or sets a value which overrides the owning column's + property. + + + + + Gets or sets a value which overrides the owning column's + property. + + + + + Gets the type of editing control used by the cell. + + + + + Gets the type of the formatted value for the cell, which is + . + + + + + Editing control to accompany . + + + Implementation based on . + + + + + Represents a Windows combo box control that, when bound to a data source, is capable of + displaying items in groups/categories. + + + + + Initialises a new instance of the GroupedComboBox class. + + + + + Releases the resources used by the control. + + + + + + Recreates the control's handle when the DropDownStyle property changes. + + + + + + Redraws the control when the dropdown portion is displayed. + + + + + + Redraws the control when the dropdown portion closes. + + + + + + Repaints the control when it receives input focus. + + + + + + Repaints the control when it loses input focus. + + + + + + Paints the control without a background (when using buffered painting). + + + + + + Redraws the control when the selected item changes. + + + + + + Explicit interface implementation for the IComparer.Compare method. Performs a two-tier comparison + on two list items so that the list can be sorted by group, then by display value. + + + + + + + + Converts a ComboBoxState into its equivalent PushButtonState value. + + + + + + + Determines the state in which to render the control (when using buffered painting). + + + + + + Determines whether the list item at the specified index is the start of a new group. In all + cases, populates the string respresentation of the group that the item belongs to. + + + + + + + + Re-synchronises the internal sorted collection when the data source changes. + + + + + + + When the control font changes, updates the font used to render group names. + + + + + + When the parent control changes, updates the font used to render group names. + + + + + + Performs custom painting for a list item. + + + + + + Determines the size of a list item. + + + + + + Rebuilds the internal sorted collection. + + + + + Changes the control style to allow user-painting in DropDownList mode (when using buffered painting). + + + + + Draws a combo box in the Windows Vista (and newer) style. + + + + + + + + Paints the control (using the Buffered Paint API). + + + + + + + Gets or sets the data source for this GroupedComboBox. + + + + + Gets a value indicating whether the drawing of elements in the list will be handled by user code. + + + + + Gets or sets the property to use when grouping items in the list. + + + + + Constructor. + + + + + EventArgs class for the + + + + + Creates a new instance of the DropDownPaintEventArgs class. + + + + + + + + Draws a focus rectangle on the editable portion of the control. + + + + + Gets the display rectangle for the editable portion of the control. + + + + diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/ExtendedRichTextBox.dll b/SW/20211125/AssessmentMgmt/bin/Debug/ExtendedRichTextBox.dll new file mode 100644 index 0000000..9597270 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/ExtendedRichTextBox.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Bars.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Bars.dll new file mode 100644 index 0000000..d98c6c3 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Bars.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Compat.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Compat.dll new file mode 100644 index 0000000..55c574b Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Compat.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll new file mode 100644 index 0000000..29934a2 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Editor.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Editor.dll new file mode 100644 index 0000000..e91d746 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.Editor.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.dll new file mode 100644 index 0000000..29e51d7 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.xml b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.xml new file mode 100644 index 0000000..f1434aa --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/FastReport.xml @@ -0,0 +1,53156 @@ + + + + FastReport + + + + + The class for representing visible digital signature in the report. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object, in millimeters + + + + + Gets or sets the dxf objects fill mode + + + + + Initializes a new instance of the class. + + + + + Export all report objects + + + + + + + + + Export of Band + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + + + + + + + + + + Add BandObject. + + + + + Add TextObject. + + + + + Save DXF file. + + + + + Save DXF stream. + + + + + Add Line. + + + + + + + + Double precision 3D point value + + + + + Code range: 0-9 + String (with the introduction of extended symbol names in AutoCAD 2000, the 255-character + limit has been increased to 2049 single-byte characters not including the newline at the end + of the line) + + + + + Sets Name group + + Name (attribute tag, block name, and so on) + + + + Sets Name group + + Name (attribute tag, block name, ENDSEC, and so on) + + + + AutoCAD Color Index -> RGB Color table + + + + + RGB Color table -> AutoCAD Color Index + + + + + Get AutoCAD Color Index + + + AutoCAD Color Index + + + + CT command + + + + + CI command + + + + + EP command + Perimeter of polygon defined as polygon buffer by PM, PA/PR, PU/PD, + AA/AR, CI, and CT command is plotted. Pen position after command and + pen up / down state will be in state before command. + + + + + EA command + Rectangle which makes diagonal coordinates (x, y) specified the present position and + here is plotted. Pen position after command and pen up / down state will be in state before command. + + + + + ER command + Rectangle which makes diagonal relative coordinate (x, y) from the present position + and the present position is plotted. Pen position after command and pen up / down state + will be in state before command. + + + + + FP command + Shading of the inside of polygon defined as polygon buffer by PM, PA/PR, + PU/PD, AA/AR, CI, and CT command is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + RA command + It is used with FT and PT command and shading of the inside of rectangle which makes + diagonal point coordinates (x, y) specified the present position and here is carried out. + Pen position after command and pen up / down state will be in state before command. + + + + + RR command + It is used with FT and PT command and shading of the inside of rectangle which makes diagonal point + relative coordinate (x, y) from the present position and there is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + Model of shading + + + + + Painting out interactive at space specified by PT command (FT command interval and angle are ignored) + + + + + It is painting out (FT command space and angle are ignored) of the single direction at space specified by PT command. + + + + + Hatching which is the single direction at space and angle which were specified by FT command + + + + + It is crossing hatching at space and angle which were specified by FT command. + + + + + None (solid) + + + + + FT command + It is used together with FP, RA, RR, and WG command, and model of shading (painting out and hatching) is specified. + + + + + IN command + Plotter is changed into initial state. + + + + + IP command + Sets origin position of system of coordinates + + + + + Line Type + + + + + Point is plotted at specifying point + + + + + Dotted line of point + + + + + Short dotted line + + + + + Long dotted line + + + + + Short dashed line + + + + + Long dashed line + + + + + Two-point phantom line + + + + + No any patterns needed + + + + + LT command + + + + + PD command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + PU command + + + + + PA command + + + + + PR command + + + + + Polygon Type + + + + + Polygon buffer is cleared and it is made polygon definition mode. + + + + + Polygon under definition is closed. + + + + + Polygon under definition is closed and polygon definition mode is canceled. + + + + + PM command + It is made polygon definition mode. PM command is used with + PA/PR, PU/PD, AA/AR, CI, and CT command, and can define polygon. + + + + + RO command + + + + + SC command + + + + + SP command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object + + + + + Gets or sets the hpgl objects fill mode + + + + + Initializes a new instance of the class. + + + + + Save hpgl file. + + + + + Save hpgl stream. + + + + + Add BandObject. + + + + + Add TextObject. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Export all report objects + + + + + + Add Line. + + + + + + + + Excel 2003 export class + + + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Read and parse Excel document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Related to DRAWING group. Used once + + + + + Provides API to binary stream + + + + + + + + + + Represents the CSV export filter. + + + + + + + + Gets or set the resulting file encoding. + + + + + Gets or set the separator character used in csv format. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets a value that disable quotation marks for text. + + + + + Gets or sets a value that disable escaping quotation marks for text. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the export to DBF. + + + + + + + + Gets or sets the encoding. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets the list of field names. + + + The field names must be separated by ";" symbol, for example: Column1;Column2;Column3 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the record. + + + + + Gets or sets the field with a specified index. + + + + + Gets the count of a fields. + + + + + Gets the size of a fields. + + + + + Initializes a new instance of the class. + + + + + Adds the new item into a list of fields. + + + + + Clears the list of fields. + + + + + Represents the email export. + + + In order to use this class, you need to set up at least the following properties: + , , . Use the + property to choose the format of an attachment. If you leave it empty, the attachment will be + in the .FRP format (FastReport prepared report). When you done with settings, call the + method to send an email. + + + This example demonstrates the bare minimum required to send an email. + + EmailExport export = new EmailExport(); + export.Account.Address = "my@address.net"; + export.Account.Host = "myhost"; + export.Address = "recipient@address.net"; + export.Subject = "Re: analysis report"; + // the report1 report must be prepared at this moment + export.SendEmail(report1); + + + + + + Displays the dialog box in which you can set up all parameters. + + true if user pressed OK button in the dialog. + + + + Gets or sets the recipient's address. + + + This property must contain value in form "john@url.com". + + + + + Gets or sets the carbon copy adresses. + + + This property must contain an array of values in form "john@url.com". + + + + + Gets or sets the subject of the message. + + + + + Gets or sets the message body. + + + + + Gets or sets the export filter which will be used to export a report. + + + Set this property to instance of any export filter. When you send the email, the report + will be exported using that export filter. + By default, this property is set to null. In this case the report will be send + in .FRP format. + + + + + Gets the email account settings such as host, user name, password. + + + + + Gets the parent Report object + + + + + Sends an email. + + Reports that will be sent as attachments. + + Before using this method, set up the following properties (it's a bare minimum): + , , . + The report that you pass in this method must be prepared using the Prepare method. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + + + + Form for . + For internal use only. + + + + + Hides attachment settings. + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allows to send message using MAPI interface. + + + + + Sends a message. + + Parent window handle. + Files to attach. + Email subject. + Email body. + Recipient names. + Recipient addresses. + Error code. 0 if operation was completed succesfully. + + + + Returns a text describing an error. + + The error code. + The text describing an error. + + + + Contains the email account settings such as host, email address, name. + + + You have to set up at least the and properties. If your + host requires authentication, provide the and + properties as well. + Set property to true if you want to use default email client + such as Outlook to send an email. In this case, all other properties will be ignored. + + + + + Gets or sets the sender's email address. + + + This property contains your email address (for example, "john@site.com"). + + + + + Gets or sets the sender's name. + + + This property contains your name (for example, "John Smith"). + + + + + Gets or sets the template that will be used to create a new message. + + + + + Gets or sets the SMTP host name or IP address. + + + + + Gets or sets the SMTP port. + + + The default value for this property is 25. + + + + + Gets or sets the user name. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets the password. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets a value that determines whether to enable the SSL protocol. + + + + + Gets or sets a value that determines whether the account setting page + in the "Send Email" window is enabled. + + + + + Gets or sets a value that determines whether to use MAPI instead of SMTP when sending an email. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all export filters. + + + + + Exports the report to a file. + + Report to export. + true if report was succesfully exported. + + This method displays an export options dialog, then prompts a file name using standard "Open file" + dialog. If both dialogs were closed by OK button, exports the report and returns true. + + + + + Displays a dialog with export options. + + true if dialog was closed with OK button. + + + + Gets a report page with OverlayBand if it is a Demo or Academic. + + The prepared report page + The prepared report page with OverlayBand. + + + + Gets list of generated streams. + + + + + Zoom factor for output file + + + + + File filter that can be used in the "Save file" dialog. + + + + + Range of pages to export. + + + + + Page numbers to export. + + + Use page numbers separated by comma and/or page ranges, for example: "1,3-5,12". Empty string means + that all pages need to be exported. + + + + + Current page number. + + + Page number need to be exported if user selects "Current page" radiobutton in the export options dialog. + This property is typically set to current page number in the preview window. + + + + + Open the document after export. + + + + + Allows or disables the OpenAfterExport feature. + + + + + Gets or sets a value that determines whether to show progress window during export or not. + + + + + Gets a list of files generated by this export. + + + + + Gets a value indicating that the export may produce multiple output files. + + + + + Gets or sets a value indicating that the report bands should be shifted, if page + has any non-exportable bands + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Stream to export to. + + + + + File name to export to. + + + + + Array of page numbers to export. + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + This method is called when the export starts. + + + + + This method is called at the start of exports of each page. + + Page for export may be empty in this method. + + + + This method is called at the end of exports of each page. + + Page for export may be empty in this method. + + + + This method is called for each band on exported page. + + Band, dispose after method compite. + + + + This method is called when the export is finished. + + + + + Gets a report page with specified index. + + Zero-based index of page. + The prepared report page. + + + + + + + + + + Exports the report to a stream. + + Report to export. + Stream to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Exports the report to a file. + + Report to export. + File name to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export filter. + + + + + + + + Draw any custom controls + + + + + Draw any custom controls. + + + + + + Types of html export + + + + + Simple export + + + + + Web preview mode + + + + + Web print mode + + + + + hash:base64Image + + + + + Gets or sets images, embedded in html (hash:base64Image) + + + + + Sets a ID of report + + + + + Sets an onclick template + + + + + Enable or disable layers export mode + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Enable or disable showing of print dialog in browser when html document is opened + + + + + Enable or disable preview in Web settings + + + + + Enable or disable the breaks between pages in print preview when single page mode is enabled + + + + + Specifies the output format + + + + + Specifies the width units in HTML export + + + + + Specifies the height units in HTML export + + + + + Enable or disable the pictures in HTML export + + + + + Enable or disable embedding pictures in HTML export + + + + + Enable or disable the WEB mode in HTML export + + + + + Gets or sets html export mode + + + + + Enable or disable the single HTML page creation + + + + + Enable or disable the page navigator in html export + + + + + Enable or disable the sub-folder for files of export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + Gets print page data + + + + + Enable or disable saving streams in GeneratedStreams collection. + + + + + Enable or disable margins for pages. Works only for Layers-mode. + + + + + Enable or disable export of vector objects such as Barcodes in SVG format. + + + + + + + + + + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + + + + + + For internal use only. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class for WebPreview mode. + + + + + + + + Event arguments for custom drawing of report objects. + + + + + Report object + + + + + ReportObject. + + + + + Resulting successfull drawing flag. + + + + + Resulting HTML string. + + + + + Resulting CSS string. + + + + + Layers mode when true or Table mode when false. + + + + + Zoom value for scale position and sizes. + + + + + Left position. + + + + + Top position. + + + + + Width of object. + + + + + Height of object. + + + + + Represents the HTML export templates. + + + + + Page Template Title + + + + + Page Template Footer + + + + + Navigator Template + + + + + OutlineTemplate + + + + + Index Template + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export format enum + + + + + Represents the message-HTML type + + + + + Represents the HTML type + + + + + Specifies the image format in HTML export. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the units of HTML sizes. + + + + + Specifies the pixel units. + + + + + Specifies the percent units. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Represents the MHT export filter. + + + + + + + + Enable or disable the pictures in MHT export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the image export filter. + + + + + + + + Gets or sets the image format. + + + + + Gets or sets a value that determines whether to generate separate image file + for each exported page. + + + If this property is set to false, the export filter will produce one big image + containing all exported pages. Be careful using this property with a big report + because it may produce out of memory error. + + + + + Gets or sets image resolution, in dpi. + + + By default this property is set to 96 dpi. Use bigger values (300-600 dpi) + if you going to print the exported images. + + + + + Gets or sets horizontal image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets vertical image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets the jpg image quality. + + + This property is used if is set to Jpeg. By default + it is set to 100. Use lesser value to decrease the jpg file size. + + + + + Gets or sets the value determines whether to produce multi-frame tiff file. + + + + + Gets or sets a value that determines whether the Tiff export must produce monochrome image. + + + Monochrome tiff image is compressed using the compression method specified in the + property. + + + + + Gets or sets the compression method for a monochrome TIFF image. + + + This property is used only when exporting to TIFF image, and the property + is set to true. + The valid values for this property are: EncoderValue.CompressionNone, + EncoderValue.CompressionLZW, EncoderValue.CompressionRle, + EncoderValue.CompressionCCITT3, EncoderValue.CompressionCCITT4. + The default compression method is CCITT4. + + + + + Sets padding in non separate pages + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image export format. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the .tif format. + + + + + Specifies the .emf format. + + + + + Represents the JSON export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the LaTeX export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Base class for any ODF exports. + + + + + + + + Enum of OpenOffice formats. + + + + + OpenOffice Spreadsheet format. + + + + + OpenOffice Writer format. + + + + + Standard of ODF format. + + + + + ODF 1.0/1.1 + + + + + ODF 1.2 + + + + + XODF 1.0/1.1 + + + + + XODF 1.2 + + + + + Creator of the document + + + + + Is XODT format + + + + + Switch of page breaks + + + + + Wysiwyg mode, set for better results + + + + + Gets or sets ODF Compliance standard. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Spreadsheet export (Open Office Calc). + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Text export (Open Office Writer). + + + + + Initializes a new instance of the class. + + + + + + + + MS Word 2007 export class + + + + + + + + Types of table rows height + + + + + Exactly height + + + + + Minimum height + + + + + Enable or disable matrix view of document + + + + + Enable or disable Paragraph view of document + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the type of height calculation. + + + + + Gets or sets the type of height calculation. + + + + + Enable or disable a resolution optimization. + + + + + Enable or disable DoNotExpandShiftReturn. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Word2007Export class. + + + + + Represents the PowerPoint 2007 export. + + + + + + + + Gets or sets the image format used when exporting. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the class with the default settings. + + + + + Excel 2007 export class + + + + + + + + Defines Print Scaling Mode. + + + + + Print sheets at thier actual size. + + + + + Shrink the printout so that it fits on one page. + + + + + Shrink the printout so that it is one page wide. + + + + + Shrink the printout so that it is one page high. + + + + + Gets or sets the Print Fit Mode. + + + + + Gets or sets the font scale value. + Default value is 1 + + + + + Enable or disable a resolution optimization. + + + + + Each report page is placed on a new Excel page. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Enable or disable export of page footers and next page headers without table breaks. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Main class of XML export + + + + + + + + PicturesCount + + + + + HumanReadable + + + + + + + + + + + + + + + + + + + + + + + Constructor of XPSExport + + + + + Destructor of XPSExport + + + + + Save + + + + + + + Padding over ridh object + + + + + This prperty keep RTF to DOC translation result, i.e. DOCX XML fragment + + + + + Base class for Microsoft Office 2007 export objects + + + + + Default XML header + + + + + Base class for export Office Open objects + + + + + Core document properties + + + + + Core document properties + + + + + Power point shape + + + + + Power Point Layout Descriptor + + + + + Power Point base class for style element + + + + + Base class for styles group + + + + + Base class for slides, masters, and layouts + + + + + Slide masters object + + + + + Ordinaty slide + + + + + Slide layout object + + + + + Presentation class + + + + + PPt Application Properties class + + + + + Ppt Table styles class + + + + + Ppt Presentation properties class + + + + + Ppt View Properties class + + + + + Specifies the image format in PowerPoint export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing class + + + + + Share all strings in document + + + + + Share all URL in document + + + + + Document styles + + + + + Workbook + + + + + OoXMLSheet class + + + + + Picture container + + + + + List of all document fonts + + + + + Single page export + + + + + Document structure descriptor + + + + + Font container + + + + + Font obfuscation procedure + + + + + PDF export (Adobe Acrobat) + + + + + + + + Embedded File + + + + + Name of embedded file. + + + + + Description of embedded file. + + + + + Modify Date of embedded file. + + + + + Relationship between the embedded document and the PDF part. + + + + + Valid MIME type. + + + + + Stream of embedded file. + + + + + File reference. + + + + + ZUGFeRD Conformance Level. + + + + Initializes a new instance of the class. + + + + Default preview size. + + + + + Actual size + + + + + Fit Page + + + + + Fit Width + + + + + Default + + + + + 10% + + + + + 25% + + + + + 50% + + + + + 75% + + + + + 100% + + + + + 125% + + + + + 150% + + + + + 200% + + + + + 400% + + + + + 800% + + + + + Standard of PDF format. + + + + + PDF 1.5 + + + + + PDF/A-1a + + + + + PDF/A-2a + + + + + PDF/A-2b + + + + + PDF/A-2u + + + + + PDF/A-3a + + + + + PDF/A-3b + + + + + Pdf/X-3 + + + + + Pdf/X-4 + + + + + Color Space. + + + + + RGB color space + + + + + CMYK color space + + + + + Types of pdf export. + + + + + Simple export + + + + + Web print mode + + + + + Relationship between the embedded document and the PDF part. + + + + + The embedded file contains data which is used for the visual representation. + + + + + The embedded file contains the source data for the visual representation derived therefrom in the PDF part. + + + + + This data relationship should be used if the embedded data are an alternative representation of the PDF contents. + + + + + This data relationship is used if the embedded file serves neither as the source nor as the alternative representation, but the file contains additional information. + + + + + If none of the data relationships above apply or there is an unknown data relationship, this data relationship is used. + + + + + ZUGFeRD Conformance Level. + + + + + Basic level. + + + + + Comfort level. + + + + + Extended level. + + + + + Gets or sets PDF Compliance standard. + After set, do not change other settings, it may lead to fail compliance test. + + + + + Enable or disable of embedding the TrueType fonts. + + + + + Enable or disable of exporting the background. + + + + + Enable or disable export text in curves + + + + + Gets or sets PDF color space + + + + + Enables or disables saving images in their original resolution + + + + + Enables or disables optimization of images for printing + + + + + Enable or disable image jpeg compression + + + + + Sets the quality of images in the PDF + + + + + Title of the document. + + + + + Author of the document. + + + + + Subject of the document. + + + + + Keywords of the document. + + + + + Creator of the document. + + + + + Producer of the document. + + + + + Sets the owner password. + + + + + Sets the user password. + + + + + Enable or disable printing in protected document. + + + + + Enable or disable modifying in protected document. + + + + + Enable or disable copying in protected document. + + + + + Enable or disable annotating in protected document. + + + + + Enable or disable the print dialog window after opening + + + + + Enable or disable hide the toolbar. + + + + + Enable or disable hide the menu's bar. + + + + + Enable or disable hide the Windows UI. + + + + + Enable or disable of fitting the window + + + + + Enable or disable of centering the window. + + + + + Enable or disable of scaling the page for shrink to printable area. + + + + + Enable or disable of document's Outline. + + + + + Set default zoom on open document + + + + + Sets the quality of RichText objects in the PDF + + + + + Enable or disable the compression in PDF document. + + + + + Enable or disable of images transparency. + + + + + Enable or disable of displaying document's title. + + + + + Set default page on open document + + + + + Color Profile (ICC file). + If "null" then default profile will be used + + + + + Gets or sets pdf export mode + + + + + Gets pdf AcroForms compatibility, if set then EmbeddingFonts = false and PdfCompliance = PdfStandard.None + + + + + Set pattern for selection of embedding glyphs for Interactive Forms + + + + + Enable or disable digital sign for pdf document + + + Be sure to specify a valid certificate for signing using the DigitalSignCertificate property. + Or using the DigitalSignCertificatePath and DigitalSignCertificatePassword properties. + + + + + Should save and serialize password for digital sign certificate. + Do not save password unless absolutely necessary!!! + + + + + Manualy sets digital sign certificate for exported documents. + + + This property is in priority, i.e. if a certificate is specified, + the DigitalSignCertificatePath and DigitalSignCertificatePassword properties will not be used. + + + + + The path for load digital sign certificate. + + + + + Sets digital sign certificate password. + + + + + Gets or sets the cpu host name or physical location of the signing + + + + + The reason for the signing, such as (I agree ...) + + + + + The information to enable the recipient to contact the signer to verify the signature + + + + + + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + Export of Band + + + + + + + + + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + ZUGFeRD Conformance Level + + + + Add an embedded file (only for PDF/A-3 standard). + + File name + Description + Modification date + Relation type + MIME type + File stream + + + + Initializes a new instance of the class. + + + + + Calculates mask for image. + + + + + Calculates image bounds according to . + + + + + Writes pixels' colors without alpha to stream according to CMYK or RGB color space. + Pixels should be in the format. + + + + + Update stream position for object number, only for int value + + int value + + + + + + The pdf export + size of place for svg + + + + The interpolation of curves (svg) + + + + + The interpolation of curves (text) + + + + + Export svg object as image, not vector + + + + + Gradient interpolation, high value will lead beautiful the gradient, + but the file size will increase and the speed of work will decrease. + + + + + The quality of gradient, export as image or export as gradient grid + + + + + Added graphics path to pdf, + + size of rect for gradient filling + path, with positions in pdf scaling + Any brush + Interpolation value + + matrix for transform to pdf scale + + + + returns true if this gradient is fillable by gradient grid + + + + + + The enum of curves interpolation + + + + + Export as curves, without interpolation + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + The enum of gradient interpolation points + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + Thirty two points + + + + + Sixty four points + + + + + One hundred and twenty eight points + + + + + Two hundred and fifty six points + + + + + The quality of gradient export + + + + + Export as image + + + + + Export as low quality gradient grid, max size of interpolation points is 32 + + + + + Export as medium quality gradient grid, max size of interpolation points is 128 + + + + + Export as high quality gradient grid, max size of interpolation points is 256 + + + + + File name without extentions, for example "MetaDataX" + + + + Represents the PPML export filter. + + + + + + + + Enable or disable the pictures in PPML export + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + + Add image as PPMLObject + + + + + + + + + + Save svg file. + + + + + Save svg stream. + + + + + + + + + + Represents the ps export filter. + + + + + + + + Enable or disable the pictures in PS export + + + + + Enable or disable export text in curves + + + + + Enable or disable export every page in separate file + + + + + Enable or disable saving every image in separate file + + + + + Gets or sets quality of JPEG images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + Add TextLine in curves + + + + Method for add TextObject. + + + + + Method to add rectangle. + + + + + Method for add ellips. + + + + + Method for add triangle. + + + + + Method for add Diamond. + + + + + Method for add line. + + + + + Method for add line with dash. + + + + + Add image + + + + + + + + + + + Add image as hex code + + + + + + + + + + End of each page + + + + + Save file. + + + + + Save stream. + + + + + + + + + Represents the RTF export filter. + + + + + + + + Gets or sets the quality of Jpeg images in RTF file. + + + Default value is 90. This property will be used if you select Jpeg + in the property. + + + + + Gets or sets the image format that will be used to save pictures in RTF file. + + + Default value is Metafile. This format is better for exporting such objects as + MSChartObject and ShapeObject. + + + + + Gets or sets a value indicating that pictures are enabled. + + + + + Gets or sets a value indicating that page breaks are enabled. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting rtf file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the creator of the document. + + + + + Gets or sets a value that determines whether the rows in the resulting table + should calculate its height automatically. + + + Default value for this property is false. In this mode, each row in the + resulting table has fixed height to get maximum wysiwyg. If you set it to true, + the height of resulting table will be calculated automatically by the Word processor. + The document will be more editable, but less wysiwyg. + + + + + Gets or sets a value that determines whether the repot's RichObject will be + translated as picture or joined to generated RTF. + + + Default value for this property is false. In this mode, each RichObject + will be embedded as a picture. This is default behavior. If you set it to true, + the RichObject will be incorporated as a navive part of document. This is experimetal + feature. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image format in RTF export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .emf format. + + + + + Represents the SVG export filter. + + + + + + + + Enable or disable the pictures in SVG export + + + + + Gets or sets the image format used when exporting. + + + + + Embed images into svg + + + + + Gets or sets value indicating whether or not should to force uniform scaling of SVG document + + + + + Gets or sets value indicating whether or not should be added 'viewBox' attribute to the svg tag + + + + + Gets or sets value indicating whether or not should be added 'width' and 'height' attributes to the svg tag + + + + + + + + Begin exporting of page + + + + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the alignment methods + + + + + Do not force uniform scaling. Scale the graphic content of the given element non-uniformly + if necessary such that the element's bounding box exactly matches the viewport rectangle. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint + X value of the viewport. Align the min-y of the element's viewBox with the smallest Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the midpoint Y value of the element's viewBox with the midpoint Y value + of the viewport. + + + + + The default. Force uniform scaling. Align the midpoint X value of the element's viewBox + with the midpoint X value of the viewport. Align the midpoint Y value of the element's + viewBox with the midpoint Y value of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X + value of the viewport. Align the midpoint Y value of the element's viewBox with the midpoint + Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint X + value of the viewport. Align the min-y+height of the element's viewBox with the maximum Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Specifies the svg scale types + + + + + (the default) - Scale the graphic such that: + - aspect ratio is preserved + - the entire viewBox is visible within the viewport + - the viewBox is scaled up as much as possible, while still meeting the other criteria + + + + + Scale the graphic such that: + - aspect ratio is preserved + - the entire viewport is covered by the viewBox + - the viewBox is scaled down as much as possible, while still meeting the other criteria + + + + + Describes scaling of a svg documents + + + + + Gets the align value + + + + + Gets the meetOrSlice value + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + Align value + meetOrSlice value + + + + Represents the text export. + + + + + + + + Enable or disable the Data loss avoiding. + Auto calculation of ScaleX and ScaleY will be launched when dialogue window will be off. + + + + + Gets or sets the count of copies for printing of results. + + + + + Gets or sets the printer name for printing of results. + + + + + Enable or disable the printing results after export. + + + + + Gets or sets the active index of registered printer type. + + + + + Gets or sets the list of printer types. + + + + + Gets or sets the scale by X axis for correct text objects placement. + + + + + Gets or sets the scale by Y axis for correct text objects placement. + + + + + Gets or sets the encoding of resulting document. + + + Windows ANSI encoding + TextExport.Encoding = Encoding.Default; + Unicode UTF-8 encoding + TextExport.Encoding = Encoding.UTF8; + OEM encoding for current system locale sessings + TextExport.Encoding = Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage); + + + + + Enable or disable the data only output without any headers. Default value is false. + + + + + Enable or disable the breaks of pages in resulting document. Default value is true. + + + + + Enable or disable frames in resulting document. Default value is true. + + + + + Enable or disable the text (non graphic) frames in resulting document. Default value is false. + + + + + Enable or disable the output of empty lines in resulting document. Default value is false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Exports the page. + + + + + + + Calculates scale. + + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the printer command class + + + + + Gets or sets the active state of command. Default value is false. + + + + + Gets or sets the command name. + + + + + Gets or sets the list of "on sequence". + + + + + Gets or sets the list of "off sequence". + + + + + Initializes a new instance of the class. + + + + + Represents of the printer type class. + + + + + Gets or sets the printer name. + + + + + Gets or sets the list of printer commands. + + + + + Initializes a new instance of the class. + + + + + Represents supplement class for print of any stream directly in printer. + + + + + Prints a stream. + + Printer name on which should be print. + Document title for printer spooler. + Count of copies. + Stream that will be printed. + This example demonstrates the printing of Stream. + + TextExportPrint.PrintStream("EPSON FX-1000", "My Report", 1, txtStream) + + + + + Represents the XAML export filter. + + + + + + + + Gets or sets the class name of XAML document + + + + + Enable or disable the pictures in XAML export + + + + + Gets or sets the image format used when exporting. + + + + + Get or set scrollbar settings + + + + + Get dictionary of saved images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + Gem MemoryStream what contain image + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + XAML generator + + + + + Create Window. + + + + + Create Grid. + + + + + Create Canvas. + + + + + Create StackPanel + + + + + Create StackPanel + + + + + Create Resources tag + + + + + Add resource for TextObject + + + + + Add resource for TextObject with angle + + + + + Add resource for Line + + + + + Add resource for Rectangle + + + + + Add resource for Ellipse + + + + + Add resource for Polygon + + + + + Add TextObject. + + + + + Method for add TextObject with angle + + + + + Add line. + + + + + Add line with dash. + + + + + Add rectangle. + + + + + Add ellips. + + + + + Add triangle. + + + + + Add Diamond. + + + + + Add image + + + + + + + + + + + + Add image without name + + + + + + + + + + + Add page to StackPanel + + + + + + Save xaml file. + + + + + Save xaml stream. + + + + + + + + + + + + + Specifies the image format in XAML export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Represents the Excel 2003 XML export filter. + + + + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the name of document creator. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Each report page is placed on a new Excel page. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the Zpl export filter. + + + + + + + + Enum of densty types of Zebra printers. + + + + + 6 dpmm(152 dpi) + + + + + 8 dpmm(203 dpi) + + + + + 12 dpmm(300 dpi) + + + + + 24 dpmm(600 dpi) + + + + + Sets the density of printer. + + + + + Sets the init string for sending before printing the document. + + + + + Sets the code page of document. Default is UTF-8 (^CI28). + + + + + Sets the string for sending after printing the document. + + + + + Sets the string for sending before printing each page. + + + + + Sets the scale font size. + + + + + Sets the Printer Font, default value is "A". + + + + + Enable or disable export as bitmap. + + + + + Writes the string value in stream. + + + + + + + Writes the string value in stream with CRLF. + + + + + + + Gets the left position in zpl units. + + + + + + + Gets the top position in zpl units. + + + + + + + Exports the TableObject. + + + + + + Exports the LineObject. + + + + + + Exports the ShapeObject. + + + + + + Exports the TextObject. + + + + + + Gets the position of object in ZPL code. + + + + + + + + Gets the text attributes in ZPL code. + + + + + + + + + + + Gets the text with font width and height in ZPL code. + + + + + + + + + Gets the horiz align in ZPL code. + + + + + + + Gets the rectangle in ZPL code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the export font class. + + + + + These fonts not support Bold or Itailc styles + + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontPanose structure + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of FontTextMetric structure + + + + + Return text metric structure, need to use after FillOutlineTextMetrix() + + + + + Gets or sets internal font name + + + + + Return source font used in constructor + + + + + Returns multiplier for stroke bold emulation + + + + + Gets or sets internal reference + + + + + Gets or sets internal property - save flag + + + + + True if bold style is not supported by font + + + + + True if italic style is not supported by font + + + + + Mark font as editable for InteractiveForms + + + + + Run fill outline text metric structure + + + + + Return glyph width + + + + + + + Return font file + + + + + + Get font data and set NeedSimulateBold and NeedSimulateItalic properties. Call this method after FillOutlineTextMetrix + + + + + Remap str in glyph indexes. Return string with glyph indexes. + + + + + + + + Set pattern for generation of alphabet's subset + + Regular expression with pattern generator + Use left-to-right rules + + + + Return english name of source font + + + + + + Return PANOSE string + + + + + + Create object of ExportTTFFont. + + + + + + Destructor + + + + + This property for internal use only. + + + + + Binary tree class + + + + + Maximal value between child and parent + + + + + Nodes count + + + + + Root node + + + + + Nodes array. Accending sorting by node value. Available after close of tree. + + + + + Accecptable inaccuracy of new values. + + + + + Recursive add value to a node. + + + + + + + + Poll right child node for correct balance. + + + + + + Poll left child for correct balance. + + + + + + Recursive indexation of node and childs. + + + + + + Add new value in tree. All equals are skipped. + + + + + + Close the tree and make index array. + + + + + Seek of value index in the tree. + + + + + + + Find of value index in sub-tree of node. + + + + + + + + Borrow values form List in the tree + + + + + + Borrow values form array in the tree + + + + + + Clear tree + + + + + Tree constructor + + + + + Tree node class + + + + + Link to left child + + + + + Link to right child + + + + + Node value + + + + + Count of nodes in left sub-tree + + + + + Count of nodes in right sub-tree + + + + + Node index + + + + + Node constructor + + + + + + For internal use only. + + + + + Gets current page width. + + + + + + + Gets current page height. + + + + + + + + + + + + + + Class for handling Exports visibility in the Preview control. + + + + + All exports available in the Preview control. + + + + + Gets an instance of ExportOptions. + + + + + + Exports menu node. + + + + + Gets the name. + + + + + Gets nodes. + + + + + Gets type of the export. + + + + + Gets index of the image. + + + + + Gets or sets the tag. + + + + + Gets or sets a value that indicates is node enabled. + + + + + Gets true if node is export, otherwise false. + + + + + Saves current visible exports in config file. + + + + + Restores visible exports from config file. + + + + + + + + + + Sets Export category visibility. + + Export category name. + Visibility state. + + + + Sets Export visibility. + + Export type. + Visibility state. + + + + Default Exports menu + + Tree that contains default Exports menu + + + + All cloud exports available in the preview. + + + + + All messengers exports available in the preview. + + + + + Default cloud exports menu. + + Tree that contains default cloud exports menu. + + + + Default messengers. + + + + + + Register all clouds. + + + + + Register all messengers. + + + + + Contains some configuration properties and settings that will be applied to the FastReport.Net + environment, including Report, Designer and Preview components. + + + + + Gets or sets the main form of application. + + + + + Gets or sets a value indicating that UI library must use high dpi compatible rendering. + + This flag is false by default. Turn it on at the application start if you need + better appearance of custom drawn UI items in high dpi mode. This however may result in + wrong appearance on multi-monitor setup. + /// + + + + Gets or sets the settings for the report designer window. + + + + + Gets or sets the UI style. + + + This property affects both designer and preview windows. + + + + + Gets or sets a value indicating whether the Ribbon UI should be used + + + + + Gets or set the current icon pack index. Default is 0 (classic). + + Set this property at the application start. + + + + Gets or sets a value indicating whether SplashScreen should be displayed while loading designer + + + + + Gets or sets a value indicating whether Welcome window feature enabled. + If false, interface elements associated with the Welcome window will not be visible. + + + + + Gets or sets a value indicating whether Welcome window shoud be displayed on startup + + + + + Gets the folder to store auto save files + + + + + Gets the autosaved report + + + + + Gets the autosaved report path + + + + + Is necessary to process abort and some other events in parallel + + + + + Gets a value indicating that the ASP.NET hosting permission level is set to full trust. + + + + + Gets or sets a value that determines whether to disable some functionality to run in web mode. + + + Use this property if you use FastReport in ASP.Net. Set this property to true before + you access any FastReport.Net objects. + + + + + Restores the form state from the configuration file. + + The form to restore. + + + + Saves the form state to the configuration file. + + The form to save. + + + + Saves the form state to the configuration file. + + The name of the form. + True if the form is in maximized state. + True if the form is in minimized state. + The location of the form. + The size of the form. + + + + Checks the visibility of rectangle area on currently connected screens with small gap. + + Rectanle area for checking. + True for visible rect. + + + + Gets or sets the settings for the preview window. + + + + + Gets a value indicating that the Mono runtime is used. + + + + + Gets or sets a value indicating is it impossible to specify a local data path in Xml and Csv. + + + + + Gets or sets the optimization of strings. Is experimental feature. + + + + + Enable or disable the compression in files with prepared reports (fpx). + + + + + Gets the application folder. + + + + + Gets an english culture information for localization purposes + + + + + Gets or sets the path used to load/save the configuration file. + + + By default, the configuration file is saved to the application local data folder + (C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\). + Set this property to "" if you want to store the configuration file in the application folder. + + + + + Gets or sets the path used to font.list file. + + + By default, the font.list file is saved to the FastReport.config folder + If WebMode enabled (or config file path is null), then file is saved in the application folder. + + + + + Gets or sets the settings for the Report component. + + + + + Gets or sets a value indicating whether RTL layout should be used. + + + + + Gets or sets a value indicating whether hotkeys should be disabled. + + + + + Gets the root item of config xml. + + + + + Gets or sets the path to the temporary folder used to store temporary files. + + + The default value is null, so the system temp folder will be used. + + + + + Gets the path to the system temporary folder used to store temporary files. + + + + + Gets FastReport version. + + + + + Called on script compile + + + + + Gets a PrivateFontCollection instance. + + + + + Enable report script validation. For WebMode only + + + + + Throws when property EnableScriptSecurity has been changed + + + + + Properties of report script validation + + + + + Properties of ScriptSecurity + + + + + Add stubs for the most dangerous classes (in System.IO, System.Reflection etc) + + + + + List of keywords that shouldn't be declared in the report script + + + + + Throws when has changed + + + + + Sets default value for + + + + + Gets or sets the settings for the "Send Email" window. + + + + + Get access to font collection + + + + + Holds the information about the registered object. + + + + + Image index. + + + + + Button index. + + + + + Name of object or category. + + + + + The registered object. + + + + + The registered function. + + + + + Tooltip text. + + + + + Flags that will be used to create an object instance in the designer. + + + + + Indicates whether this object can be inserted several times simultaneously. + + + This is applied to Line object only. + + + + + Gets or sets the enabled flag for the object. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + + + + + + + + + + + + + + + + Contains all registered report items such as objects, export filters, wizards. + + + Use this class to register own components, wizards, export filters or another items that + need to be serialized to/from a report file. + + + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + + + + + + Registers a new cloud storage client. + + Type of cloud storage client. + Text for cloud storage client's menu item. + + The obj must be of type. + + + + // register own cloud storage client + RegisteredObjects.AddCloud(typeof(MyCloud), "My Cloud"); + + + + + + Registers a new messenger. + + Type of messenger. + Text messenger's menu item. + + The obj must be of type. + + + + // register own messenger + RegisteredObjects.AddMessenger(typeof(MyMessenger), "My Messenger"); + + + + + + Registers a new wizard. + + Type of wizard. + Image for wizard item. + Text for wizard item. + true if this wizard creates some items in existing report. + + The obj must be of type. + + This example shows how to register own wizard that is used to create some items in the + current report. If you want to register a wizard that will be used to create a new report, + set the isReportItemWizard to false. + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + + + + + + Root object for all registered objects. + + + + + Root object for all registered functions. + + + + + Checks whether the specified type is registered already. + + Type to check. + true if such type is registered. + + + + Registers a category that may contain several report objects. + + Category name. + Image for category button. + Text for category button. + + Category is a button on the "Objects" toolbar that shows context menu with nested items + when you click it. Consider using categories if you register several report objects. It can + save space on the "Objects" toolbar. For example, FastReport registers one category called "Shapes" + that contains the LineObject and different types of ShapeObject. + The name of category must starts either with "ReportPage," or "DialogPage," depending on + what kind of controls do you need to regiter in this category: report objects or dialog controls. + After the comma, specify the category name. So the full category name that you need to specify + in the name parameter, must be something like this: "ReportPage,Shapes". + + When register an object inside a category, you must specify the full category name in the + category parameter of the Add method. + + + + + Register Export category. + + Category name. + Category text. + + + + Registers a new export filter. + + Type of export filter. + Text for export filter's menu item. + + The obj must be of type. + + + + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + + + + + + Registers custom data connection. + + Type of connection. + Name of connection. + + The obj must be of type. + + + + // register data connection + RegisteredObjects.AddConnection(typeof(MyDataConnection), "My Data Connection"); + + + + + + Registers an object in the specified category. + + Type of object to register. + Name of category to register in. + Index of image for object's button. + Index of object's button in toolbar. + + + + Registers an object in the specified category with button's image, text, object's flags and multi-insert flag. + + Type of object to register. + Name of category to register in. + Image for object's button. + Text for object's button. + Integer value that will be passed to object's OnBeforeInsert method. + Specifies whether the object may be inserted several times until you + select the "arrow" button or insert another object. + + You must specify either the page type name or existing category name in the category parameter. + The report objects must be registered in the "ReportPage" category or custom category that is + registered in the "ReportPage" as well. The dialog controls must be registered in the "DialogPage" + category or custom category that is registered in the "DialogPage" as well. + If you want to register an object that needs to be serialized, but you don't want + to show it on the toolbar, pass empty string in the category parameter. + + To learn about flags, see the method. + + + + // register the report object + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage", myReportObjectBmp, "My Report Object"); + // register the dialog control + RegisteredObjects.Add(typeof(MyDialogControl), "DialogPage", myDialogControlBmp, "My Dialog Control"); + // add a category and register an object inside it + RegisteredObjects.AddCategory("ReportPage,MyCategory", myCategoryBmp, "My Category"); + // register another report object in MyCategory + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage,MyCategory", + anotherReportObjectBmp, "Another Report Object"); + + + + + + Adds a new function category. + + Short name of category. + Display name of category. + + Short name is used to reference the category in the subsequent + method call. It may be any value, for example, "MyFuncs". Display name of category is displayed + in the "Data" window. In may be, for example, "My Functions". + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + + + This example shows how to register a new category: + + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + + + + + Adds a new function into the specified category. + + MethodInfo containing all necessary information about the function. + The name of category to register the function in. + + Your function must be a static, public method of a public class. + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + You may use one of the standard categories, or create a new category by the + method call. + FastReport uses XML comments to display your function's description. + To generate XML comments, enable it in your project's properties + ("Project|Properties..." menu, "Build" tab, enable the "XML documentation file" checkbox). + + + The following example shows how to register own functions: + + public static class MyFunctions + { + /// <summary> + /// Converts a specified string to uppercase. + /// </summary> + /// <param name="s">The string to convert.</param> + /// <returns>A string in uppercase.</returns> + public static string MyUpperCase(string s) + { + return s == null ? "" : s.ToUpper(); + } + + /// <summary> + /// Returns the larger of two 32-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static int MyMaximum(int val1, int val2) + { + return Math.Max(val1, val2); + } + + /// <summary> + /// Returns the larger of two 64-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static long MyMaximum(long val1, long val2) + { + return Math.Max(val1, val2); + } + } + + // register a category + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + // obtain MethodInfo for our functions + Type myType = typeof(MyFunctions); + MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase"); + MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) }); + MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) }); + + // register simple function + RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs"); + + // register overridden functions + RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum"); + RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum"); + + + + + + Finds the registered object's info. + + The type of object to find. + The object's info. + This method can be used to disable some objects, for example: + RegisteredObjects.FindObject(typeof(PDFExport)).Enabled = false; + + + + + Register and override the method with method name in the type. + For property use the property name and _Get or _Set suffix. + + Type for registering method + Name of method fir registering + Method for registering + + + + Gets the method or null if method is not found + + Type for method finding + Name for method finfing + Use True value for inheritance the method from base type, use false for get the method only from the this type + + + + + Used to get localized values from the language resource file. + + + The resource file used by default is english. To load another locale, call + the method. It should be done at application start + before you use any FastReport classes. + + + + + Adds user image to 96 dpi images. + + User image (16x16 pixels). + Image index in the image list. + + + + Gets the standard images used in FastReport as an ImageList. + + ImageList object that contains standard images. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified index. + + Image index (zero-based). + Dpi value (96 for base dpi). + The image with specified index. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified name from resources. + + The name of image resource. + Dpi value (96 for base dpi). + The image. + + + + Gets an image with specified index and converts it to Icon. + + Image index (zero-based). + Dpi value (96 for base dpi). + The Icon object. + + + + Gets or set the folder that contains localization files (*.frl). + + + + + Returns the current UI locale name, for example "en". + + + + + Loads the locale from a file. + + The name of the file that contains localized strings. + + + + Loads and caches the locale from information. + Notes: *.frl the localization file is looked for in + To work correctly, it is recommended to install FastReport.Localization package + + + + + + Loads the locale from a stream. + + The stream that contains localized strings. + + + + Loads the english locale. + + + + + Gets a string with specified ID. + + The resource ID. + The localized string. + + Since the locale file is xml-based, it may contain several xml node levels. For example, + the file contains the following items: + + <Objects> + <Report Text="Report"/> + <Bands Text="Bands"> + <ReportTitle Text="Report Title"/> + </Bands> + </Objects> + + To get the localized "ReportTitle" value, you should pass the following ID + to this method: "Objects,Bands,ReportTitle". + + + + + Get builtin string. + + + + + + + Replaces the specified locale string with the new value. + + Comma-separated path to the existing locale string. + The new string. + + Use this method if you want to replace some existing locale value with the new one. + + + + Res.Set("Messages,SaveChanges", "My text that will appear when you close the designer"); + + + + + + Tries to get a string with specified ID. + + The resource ID. + The localized value, if specified ID exists; otherwise, the ID itself. + + + + Tries to get builtin string with specified ID. + + + + + + + Checks if specified ID exists. + + The resource ID. + true if specified ID exists. + + + + Resource loader class. + + + + + Gets a bitmap from specified assembly resource. + + Assembly name. + Resource name. + Bitmap object. + + + + Gets a bitmap from specified FastReport assembly resource. + + Resource name. + Bitmap object. + + + + Gets a cursor from specified assembly resource. + + Assembly name. + Resource name. + Cursor object. + + + + Gets a cursor from specified FastReport assembly resource. + + Resource name. + Cursor object. + + + + Gets an icon from specified assembly resource. + + Assembly name. + Resource name. + Icon object. + + + + Gets an icon from specified FastReport assembly resource. + + Resource name. + Icon object. + + + + Gets a stream from specified assembly resource. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from FastReport assembly resource. + + Resource name. + Stream object. + + + + Gets a stream from specified assembly resource and unpacks it. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from specified FastReport assembly resource and unpacks it. + + Resource name. + Stream object. + + + + A static class that contains methods to auto-convert rtl layout. + + + + + Changes control's layout to rtl. + + + + + + Draws an image and a text. + + The control which is used to determine RTL and DPI settings. + The draw event args. + The image. + The text. + This method is used to draw items in an owner-drawn listboxes and comboboxes. It respects RTL and DPI settings of a control. + + + + Gets current dpi value for the control. + + The control. + The dpi value. + + + + Gets current dpi multiplier for the control (1.0 for 96dpi). + + The control. + The dpi multiplier. + + + + Gets current font dpi multiplier for the control (1.0 for 96dpi). + + The return value depends on the base resolution of the main screen. + The control. + The font dpi multiplier. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical font to device font. + + The control. + Logical font. + Determines whether to dispose the original font or not. + Device font. + + + + Returns an image from resources using control's dpi value. + + The control. + Image index. + An image with specified index from "buttons.png" resource. + + + + Returns an image from resources using control's dpi value. + + The control. + Image name. + An image with specified index from "buttons.png" resource. + + + + Returns an imagelist from resources using control's dpi value. + + The control. + An imagelist from "buttons.png" resource. + + + + The style of FastReport user interface. + + + + + Specifies the Microsoft Office 2003 style (blue). + + + + + Specifies the Microsoft Office 2007 style (blue). + + + + + Specifies the Microsoft Office 2007 style (silver). + + + + + Specifies the Microsoft Office 2007 style (black). + + + + + Specifies the Office 2010 (Blue) style. + + + + + Specifies the Office 2010 (Silver) style. + + + + + Specifies the Office 2010 (Black) style. + + + + + Specifies the Office 2013 style. + + + + + Specifies the Microsoft Visual Studio 2005 style. + + + + + Specifies the Visual Studio 2010 style. + + + + + Specifies the Visual Studio 2012 (Light) style. + + + + + Specifies the Microsoft Vista style (black). + + + + + Contains conversion methods between FastReport's UIStyle to various enums. + + + + + Contains visual style names. + + + + + Converts FastReport's UIStyle to eDotNetBarStyle. + + Style to convert. + Value of eDotNetBarStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eOffice2007ColorScheme. + + Style to convert. + Value of eOffice2007ColorScheme type. + + + + Converts FastReport's UIStyle to eColorSchemeStyle. + + Style to convert. + Value of eColorSchemeStyle type. + + + + Returns app workspace color for the given style. + + UI style. + The color. + + + + Returns control color for the given style. + + UI style. + The color. + + + + Contains methods to call common editors. + + + Use this class if you are writing a new component for FastReport. + + + + + Invokes the expression editor. + + A reference to the report. + The expression to edit. + The new expression. + + + + Invokes the border editor. + + The Border to edit. + The new border. + + + + Invokes the data band columns editor. + + The data band columns to edit. + + + + + Invokes the fill editor. + + The fill to edit. + The new fill. + + + + Invokes the outline editor. + + The outline to edit. + The new outline. + + + + Provides the message functions. + + + + + Shows the Message Box with error message. + + The message. + + + + Shows Message Box with confirmation. + + The message. + The dialog buttons. + The dialog result. + + + + Shows information Message Box. + + The message. + + + + The profiler. + + + + + Starts the profiler. + + + + + Finishes the profiler and displays results. + + + + + Script security event arguments. + + + + + Gets the report language. + + The report language. + + + + Gets the report. + + The report. + + + + Gets the report script. + + The report script. + + + + Gets the references of script. + + Script references + + + + Gets or sets value if script is allowed to compile + + true if is valid; otherwise, false. + + + + Initializes a new instance of the class. + + Report. + Report's script. + Report's references. + + + + Base class for plugin's assembly initializer. + + + FastReport has an open architecture. That means you can extend it with own classes + such as report objects, wizards, export filters. Usually such classes are + placed in separate dlls (plugins). FastReport has mechanism to load plugin dlls. You can specify + which plugins to load at first start, in the FastReport configuration file (by default it is located in the + C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\FastReport.config file). + To do this, add an xml item with your plugin name inside the <Plugins> item: + + <?xml version="1.0" encoding="utf-8"?> + <Config> + <Plugins> + <Plugin Name="c:\Program Files\MyProgram\MyPlugin.dll"/> + </Plugins> + </Config> + + When you run your application and use the Report object first time, all plugins will be loaded. + To register objects contained in a plugin, FastReport searches for classes of type + AssemblyInitializerBase and instantiates them. + Use this class to register custom report objects, controls, wizards, exports that + are contained in the assembly. To do this, make your own class of the AssemblyInitializerBase + type and override its default constructor. In the constructor, call RegisteredObjects.Add + methods to register all necessary items. + + + + + Registers plugins contained in this assembly. + + + This constructor is called automatically when the assembly is loaded. + + This example show how to create own assembly initializer to register own items. + + public class MyAssemblyInitializer : AssemblyInitializerBase + { + public MyAssemblyInitializer() + { + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + } + } + + + + + + Source of image, only for inline img tag + + + + + Class for ACMYK color conversions + + + + + Alpha transparency 0..255 + + + + + Cyan 0..100 + + + + + Magenta 0..100 + + + + + Yellow 0..100 + + + + + Black 0..100 + + + + + Returns ACMYK as string. + + + + + + Gets CMYKA from string. + + + + + + Converts Color value to ACMYK + + + + + + Converts separate ARGB values in ACMYK + + + + + + + + + Returns ARGB color value + + + + + + Creates CMYKColor from ARGB values + + + + + + + + + Creates CMYKColor from ACMYK values + + + + + + + + + + Creates CMYKColor from string (comma separated values) + + + + + + Creates CMYKColor from Color value + + + + + + Color Utilities + + + + + Return true for CMYK Jpeg image + + + + + + + Contains methods that peform string to object and vice versa conversions. + + + + + Converts an object to a string. + + The object to convert. + The string that contains the converted value. + + + + Converts a value to a string using the specified converter. + + The object to convert. + The type of converter. + The string that contains the converted value. + + + + Converts a string value to the specified data type. + + The data type to convert to. + The string to convert from. + The object of type specified in the type parameter that contains + a converted value. + + + + Converts a string to an object using the specified converter. + + The string to convert. + The type of converter. + The object that contains the converted value. + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + The result string. + + This method replaces some special symbols like <, > into xml-compatible + form: &lt;, &gt;. To convert such string back to original form, use the + method. + + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + Determines whether it is necessary to convert cr-lf symbols to xml form. + The result string. + + + + Converts a value to xml-compatible string. + + The value to convert. + The result string. + + + + Convert the xml-compatible string to the regular one. + + The string to convert. + The result string. + + This is counterpart to the method. + + + + + Decreases the precision of floating-point value. + + The initial value. + The number of decimal digits in the fraction. + The value with lesser precision. + + + + Converts a string value to the float. + + The string value to convert. + The float value. + + Both "." or "," decimal separators are allowed. + + + + + Converts a string value to the float. + + The string value to convert. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts the string containing several text lines to a collection of strings. + + The string to convert. + The collection instance. + + + + Converts a collection of strings to a string. + + The collection to convert. + The string that contains all lines from the collection. + + + + Converts null value to 0, false, empty string, depending on type. + + The data type. + The value of the type data type. + + + + Converts string value to byte[]. + + The string to convert + The value of the byte[] data type. + + + + Converts a string to NameValueCollection. + + The string to convert. + The NameValueCollection that contains the name/value pairs. + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Result of processing + True if successful + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Append result of processing to FastString + True if successful + + + + Calc the Crc32 checksum + + + + + Caclulate Streams checksum. + + + + + + + Calculate byte array checksum. + + + + + + + Calculate string checksum. + + + + + + + Begin the checksum + + + + + + Update the checksum + + + + + + + + + + End the checksum. + + + + + + + Contains methods used to crypt/decrypt a data. + + + + + Sets the password that is used to crypt connection strings stored in a report. + + + See the property for more details. + + + + + Crypts a stream using specified password. + + The destination stream that will receive the crypted data. + The password. + The stream that you need to write to. + + Pass the stream you need to write to, to the dest parameter. Write your data to the + stream that this method returns. When you close this stream, the dest stream will be + closed too and contains the crypted data. + + + + + Decrypts a stream using specified password. + + Stream that contains crypted data. + The password. + The stream that contains decrypted data. + + You should read from the stream that this method returns. + + + + + Checks if the stream contains a crypt signature. + + Stream to check. + true if stream is crypted. + + + + Encrypts the string using the default password. + + String to encrypt. + The encrypted string. + + The password used to encrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Encrypts the string using specified password. + + String to encrypt. + The password. + The encrypted string. + + + + Decrypts the string using the default password. + + String to decrypt. + The decrypted string. + + The password used to decrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Decrypts the string using specified password. + + String to decrypt. + The password. + The decrypted string. + + + + Computes hash of specified stream. Initial position in stream will be saved. + + Initial stream + + + + + Computes hash of specified array. + + Initial array + + + + + Computes hash of specified array. + + Initial array + + + + + MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. + It was created by Austin Appleby in 2008 and is currently hosted on Github along with its test suite named 'SMHasher'. + It also exists in a number of variants, all of which have been released into the public domain. + The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop. + https://en.wikipedia.org/wiki/MurmurHash + Implementation of Murmur3 Hash by Adam Horvath + http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html + + + + + READ_SIZE + + + + + ComputeHash function + + + + + + + Gets the Hash + + + + + Used to draw a text with non-standard angle or justification. + + + + + Draws a string. + + String to draw. + Graphics object to draw on. + Font that used to draw text. + Brush that determines the color and texture of the drawn text. + RectangleF structure that specifies the location of the drawn text. + StringFormat that specifies formatting attributes, such as line spacing and alignment, that are applied to the drawn text. + Horizontal alignment of the text. + Width ratio of the font used to draw a string. + Line height, in pixels. + Angle of the text, in degrees. + Indicates whther to draw string close to the printout. + Force justify for the last line. + + + + Initializes a new instance of the DrawText class with default settings. + + + + + Draws control to a bitmap. + + Control to draw. + Determines whether to draw control's children or not. + The bitmap. + + + + The exception that is thrown when the user tried to set object's name that is already exists. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when loading bad formed xml report file. + + + + + The exception that is thrown when loading an encrypted report with wrong password. + + + + + The exception that is thrown if there is an error in the report's script code. + + + + + The exception that is thrown when trying to set an object's Parent property to + an object that not accepts children of this type. + + + + + The exception that is thrown when trying to load a report file that contains reference to an + unknown object type. + + + + + The exception that is thrown when initializing a table datasource which + TableName or Alias is not set properly. + + + + + The exception that is thrown when trying to access a row of a datasource that is not initialized yet. + + + + + The exception that is thrown if an error occurs in the TableObject.ManualBuild event. + + + + + The exception that is thrown if an error occurs in the MatrixObject.ManualBuild event. + + + + + The exception that is thrown if a report object's Name property is set to wrong value. + + + + + The exception that is thrown if an unknown value is supplied to some methods dealing with totals, variables etc. + + + + + throws this exception if an error occurs in the SaveReport method. + See inner exception for detailed information. + + + + + The exception that is thrown when the Group Header has no group condition. + + + + + The helper class used to create unique component names using the fastest method. + + + Note: you can create unique component's name using its CreateUniqueName method. + However, it is very slow and can't be used in some situations (when you create a report + layout in a code and have a lot of objects on a page). + + This example demonstrates how to use this class. + + FastNameCreator nameCreator = new FastNameCreator(Report.AllObjects); + foreach (Base c in Report.AllObjects) + { + if (c.Name == "") + nameCreator.CreateUniqueName(c); + } + + + + + + Creates the unique name for the given object. + + The object to create name for. + + + + Initializes a new instance of the FastNameCreator class with collection of + existing report objects. + + The collection of existing report objects. + + + + Fast alternative of StringBuilder. + + + + + Gets the Length of string. + + + + + Gets or sets the chars of string. + + + Char value + + + + Gets StringBuilder + + + + + Initialize the new array for chars. + + Length of initial array. + + + + Checks the empty array. + + True if string is empty. + + + + Converts the array in string. + + String value. + + + + Clears the string. + + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Append formatted string. + + + + + + + + Appends new line. + + FastString object. + + + + Appends the string by char value. + + Char value. + FastString object. + + + + Appends the another FastString object. + + FastString object. + FastString object. + + + + Appends the string by object data. + + Object value. + FastString object. + + + + Copies the substring in char array. + + Start index in source. + Destination array. + Destination index. + Count of chars + + + + Removes substring. + + Start index of removed string. + Length of removed string. + FastString object. + + + + Inserts string. + + Start index in existing string. + Value of inserting string. + FastString object. + + + + Replacing the substring on other. + + Old string value. + New string value. + FastString object. + + + + Index of substring. + + Substring for search. + Sarting position for search. + Position of substring. + + + + Compare of substring in position. + + Starting index for comparsion. + Value for compare. + True if substring is identical in position. + + + + Returns the substring. + + Starting index. + Length of substring. + Substring. + + + + Creates the new FastString object with initial capacity. + + Initial capacity. + + + + Creates the new FastString object with default capacity. + + + + + Creates the new FastString object from initial string. + + + + + + Represents a collection of float values. + + + + + Gets or sets the value at the specified index. + + Index of a value. + The value at the specified index. + + + + Adds the specified values to the end of this collection. + + + + + + Adds a value to the end of this collection. + + Value to add. + Index of the added value. + + + + Inserts a value into this collection at the specified index. + + The zero-based index at which value should be inserted. + The value to insert. + + + + Removes the specified value from the collection. + + Value to remove. + + + + Returns the zero-based index of the first occurrence of a value. + + The value to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether a value is in the collection. + + The value to locate in the collection. + true if value is found in the collection; otherwise, false. + + + + Copies values from another collection. + + Collection to copy from. + + + + Represents a collection of FastReport base objects. + + + + + Gets an owner of this collection. + + + + + Adds the specified elements to the end of this collection. + + Range of elements. + + + + Adds the specified elements to the end of this collection. + + Collection of elements. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Returns an array of collection items. + + + + + + Determines whether two collections are equal. + + The collection to compare with. + true if collections are equal; false otherwise. + + + + Copies the content to another collection. + + The collection to copy to. + + + + + + + + + + + + + Initializes a new instance of the FRCollectionBase class with default settings. + + + + + Initializes a new instance of the FRCollectionBase class with specified owner. + + The owner of this collection. + + + + Specifies the main mode of the designer's workspace. + + + + + Specifies selection mode. + + + + + Specifies insertion mode. + + + + + Specifies drag-drop mode. + + + + + Specifies the additional mode of the designer's workspace. + + + + + Specifies default mode. + + + + + Indicates that user moves the selected objects. + + + + + Indicates that user resizes the selected objects. + + + + + Indicates that user draw the selection rectangle. + + + + + Specifies a custom mode handled by the object. + + + + + Provides a data for mouse events. + + + + + The X mouse coordinate. + + + + + The Y mouse coordinate. + + + + + Current state of mouse buttons. + + + + + Current keyboard state. + + + + + Indicates that current object was handled the mouse message. + + + + + The delta of the mouse movement. + + + + + The mouse wheel delta. + + + + + Current cursor shape. + + + + + Additional mode of the designer's workspace. + + + + + Current sizing point if Mode is set to Size. + + + + + Current selection rectangle if mode is set to SelectionRect. + + + + + Active object that handles the mouse event. + + + + + The source object of drag-drop operation. + + + + + Multiple sources objects of drag-drop operation. + + + + + The target object of drag-drop operation. + + + + + The message to show when drag source is over the object. + + + + + Additional data supplied and handled by report objects. + + + + + Specifies the sizing point used to resize an object by mouse. + + + + + No sizing point. + + + + + Specifies left-top sizing point. + + + + + Specifies left-bottom sizing point. + + + + + Specifies right-top sizing point. + + + + + Specifies right-bottom sizing point. + + + + + Specifies top-center sizing point. + + + + + Specifies bottom-center sizing point. + + + + + Specifies left-center sizing point. + + + + + Specifies right-center sizing point. + + + + + Specifies a selection point used to resize an object. + + + + + The X coordinate of the point. + + + + + The Y coordinate of the point. + + + + + The size mode. + + + + + Initializes a new instance of the SelectionPoint class with specified location and size mode. + + The X coordinate. + The Y coordinate. + Size mode. + + + + Provides a data for paint event. + + + + + Gets a Graphics object to draw on. + + + + + Gets the X scale factor. + + + + + Gets the Y scale factor. + + + + + Gets the cache that contains graphics objects. + + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + IGraphicsRenderer object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + Graphics object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + The reader used to deserialize object's properties from a report file. + + + + + Gets a string that contains errors occured during the load. + + + + + Gets the current item name. + + + + + Gets or sets a value indicating whther is necessary to read the object's children. + + + + + Returns Root element for this reader + + + + + Gets or sets target of serialization. + + + + + Reads the specified object. + + The object to read. + + The object must implement the interface. This method + invokes the Deserialize method of the object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads an object from current xml node. + + The object. + + This method creates an instance of object described by the current xml node, then invokes + its Deserialize method. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads properties of specified object. + + The object to read. + + This method reads simple properties like "Text", "Border.Lines" etc. for specified object. + To read nested properties like collections, you should override the + method of an object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Moves the current xml item. + + false if there is no more items to move on; true otherwise. + + This method is used to read child objects. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Checks if current item has specified property. + + The property name to check. + true if current item has specified property. + + + + Reads the string property. + + Name of property. + Property value. + + + + Reads the boolean property. + + Name of property. + Property value. + + + + Reads the integer property. + + Name of property. + Property value. + + + + Reads the float property. + + Name of property. + Property value. + + + + Reads the double property. + + Name of property. + Property value. + + + + Reads the enum property. + + Name of property. + Type of property. + Property value. + + + + Reads the standalone property value. + + Property value. + + + + Disposes the reader, fixups the property references. + + + + + Loads the xml items from a stream. + + The stream to load from. + + + + Initializes a new instance of the FRReader class with specified report. + + Reference to a report. + + + + Initializes a new instance of the FRReader class with specified report and xml item with + contents to read. + + Reference to a report. + Xml item with contents to read. + + + + Specifies the target for the serialize operation. + + + + + Serialize to the report file. + + + + + Serialize to the preview pages. + + + + + Serialize to the source pages of a preview. + + + + + Serialize to the designer's clipboard. + + + + + Serialize to the designer's undo/redo buffer. + + + + + The writer used to serialize object's properties to a report file. + + + + + Gets or sets current xml item name. + + + + + Gets or sets target of serialization. + + + + + Gets the ethalon object to compare with. + + + + + Gets or sets a value that determines whether is necessary to serialize child objects. + + + + + Gets or sets a value that determines whether is necessary to add xml header. + + + + + Serializes the specified object. + + The object to serialize. + + The object must implement the interface. This method + invokes the Serialize method of the object. + + This example demonstrates the use of writer. + + public void Serialize(FRWriter writer) + { + // get the etalon object. It will be used to write changed properties only. + Base c = writer.DiffObject as Base; + + // write the type name + writer.ItemName = ClassName; + + // write properties + if (Name != "") + writer.WriteStr("Name", Name); + if (Restrictions != c.Restrictions) + writer.WriteValue("Restrictions", Restrictions); + + // write child objects if allowed + if (writer.SaveChildren) + { + foreach (Base child in ChildObjects) + { + writer.Write(child); + } + } + } + + + + + + Serializes the object using specified etalon. + + The object to serialize. + The etalon object. + + + + Writes a string property. + + Property name. + Property value. + + + + Writes a boolean property. + + Property name. + Property value. + + + + Writes an integer property. + + Property name. + Property value. + + + + Writes a float property. + + Property name. + Property value. + + + + Writes a double property. + + Property name. + Property value. + + + + Writes an enumeration property. + + Property name. + Property value. + + + + Writes an object reference property. + + Property name. + Property value. + + + + Writes a standalone property value. + + Name of property. + Property value. + + This method produces the following output: + <PropertyName>PropertyValue</PropertyName> + + + + + Determines if two objects are equal. + + The first object. + The second object. + true if objects will be serialized to the same value. + + + + Disposes the writer. + + + + + Saves the writer output to a stream. + + Stream to save to. + + + + Initializes a new instance of the FRWriter class with default settings. + + + + + Initializes a new instance of the FRWriter class with specified xml item that will + receive writer's output. + + The xml item that will receive writer's output. + + + + Returns splited string + + text for splitting + index of first character of second string + second part of string + returns true if ends on enter + first part of string + + + + Check the line, and if last word is able to move next line, move it. + e.g. white space won't move to next line. + If word is not moved return current line. + else return new line + + the paragraph for lines + the line with extra words + the index of start last word in this line + width to place words + ref to current line width + + + + + Represents character placement. + + + + + Be care generates dictionary only one time + + + + + Return true if read char + + + + + + Represents a style used in HtmlTags mode. Color does not affect the equals function. + + + + + returns true if objects realy equals + + + + + + + Converts a PNG image to a icon (ico) + + The input image + The output stream + Preserve the aspect ratio + Wether or not the icon was succesfully generated + + + + Returns an Image format. + + + + + Name of object or category. + + + + + Tooltip text. + + + + + The registered function. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + Used to access to resource IDs inside the specified branch. + + + Using the method, you have to specify the full path to your resource. + Using this class, you can shorten the path: + + // using the Res.Get method + miKeepTogether = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,RepeatOnEveryPage")); + + // using MyRes.Get method + MyRes res = new MyRes("ComponentMenu,HeaderBand"); + miKeepTogether = new ToolStripMenuItem(res.Get("KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(res.Get("ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(res.Get("RepeatOnEveryPage")); + + + + + + + Gets a string with specified ID inside the main branch. + + The resource ID. + The localized value. + + + + Initializes a new instance of the class with spevified branch. + + The main resource branch. + + + + Localized CategoryAttribute class. + + + + + + + + Initializes a new instance of the SRCategory class. + + The category name. + + + + Advanced text renderer is used to perform the following tasks: + - draw justified text, text with custom line height, text containing html tags; + - calculate text height, get part of text that does not fit in the display rectangle; + - get paragraphs, lines, words and char sequence to perform accurate export to such + formats as PDF, TXT, RTF + + Here is how one may operate the renderer items: + + foreach (AdvancedTextRenderer.Paragraph paragraph in renderer.Paragraphs) + { + foreach (AdvancedTextRenderer.Line line in paragraph.Lines) + { + foreach (AdvancedTextRenderer.Word word in line.Words) + { + if (renderer.HtmlTags) + { + foreach (AdvancedTextRenderer.Run run in word.Runs) + { + using (Font f = run.GetFont()) + using (Brush b = run.GetBrush()) + { + g.DrawString(run.Text, f, b, run.Left, run.Top, renderer.Format); + } + } + } + else + { + g.DrawString(word.Text, renderer.Font, renderer.Brush, word.Left, word.Top, renderer.Format); + } + } + } + } + + + + + + The scale for font tag + + + + + Paragraph represents single paragraph. It consists of one or several . + + + + + Line represents single text line. It consists of one or several . + Simple line (that does not contain tabs, html tags, and is not justified) has + single which contains all the text. + + + + + Word represents single word. It may consist of one or several , in case + when HtmlTags are enabled in the main class. + + + + + Represents character placement. + + + + + Represents a style used in HtmlTags mode. + + + + + Represents sequence of characters that have the same . + + + + + Represents inline Image. + + + + + Standard text renderer uses standard DrawString method to draw text. It also supports: + - text rotation; + - fonts with non-standard width ratio. + In case your text is justified, or contains html tags, use the + class instead. + + + + + Cache for rendering img tags in textobject. + You can use only HTTP[s] protocol with absolute urls. + + + + + Is serialized + + + + + Get or set WebClient for downloading imgs by url + + + + + Occurs before image load + + + + + Occurs after image load + + + + + Enumerates all values + + + + + + Return CacheItem by src + + Src attribute from img tag + + + + + + + + + + + + Set CacheItem by src + + Src attribute from img tag + CacheItem + + + + + Validate src attribute from image + + Src attribute from img tag + return true if src is valid + + + + + + + + + + + + Item of image cache Dictionary + + + + + Get Base64 string + + + + + Return true if has some error with Image + + + + + Get Image + + + + + Get byte array + + + + + Return error image and set true to error property + + + + + + Set value for cache item + + Image encoded base64 string + + + + Set value for cache item + + Image + + + + Set value for cache item + + Image + + + + + + + + + + WebClientEventArgs + + + + + Gets a cache + + + + + Gets or sets a value indicating whether the event was handled. + + + + + Gets or sets a url from src attribue of img tag + + + + + + + + + + + The report page units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in hundreths of inch. + + + + + Defines the constants used to convert between report units and screen pixels. + + + To convert pixels to millimeters, use the following code: + valueInMillimeters = valueInPixels / Units.Millimeters; + To convert millimeters to pixels, use the following code: + valueInPixels = valueInMillimeters * Units.Millimeters; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in 1/10 of ich. + + + + + The number of pixels in 1/100 of inch. + + + + + Represents a xml property. + + + + + Represents a property key. + + + + + Represents a property value. + + + + + Creates new property and assigns value + + Property key + Property value + + + + Represents a xml node. + + + + + Gets a number of children in this node. + + + + + Gets a list of children in this node. + + + + + Gets a child node with specified index. + + Index of node. + The node with specified index. + + + + Gets or sets the node name. + + + This property will return "Node" for a node like <Node Text="" Left="0"/> + + + + + Gets or sets a list of properties in this node. + + + + + Gets or sets the parent for this node. + + + + + Gets or sets the node value. + + + This property will return "ABC" for a node like <Node>ABC</Node> + + + + + Gets the root node which owns this node. + + + + + Clears the child nodes of this node. + + + + + Adds a new child node to this node. + + The new child node. + + + + Adds a specified node to this node. + + The node to add. + + + + Inserts a specified node to this node. + + Position to insert. + Node to insert. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; null otherwise. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; the new node otherwise. + + This method adds the node with specified name to the child nodes if it cannot find the node. + Do not dispose items, which has been created by this method + + + + + Gets the index of specified node in the child nodes list. + + The node to find. + Zero-based index of node, if found; -1 otherwise. + + + + Gets a property with specified name. + + The property name. + The value of property, if found; empty string otherwise. + + This property will return "0" when you request the "Left" property for a node + like <Node Text="" Left="0"/> + + + + + Removes all properties. + + + + + Sets the value for a specified property. + + The property name. + Value to set. + + For example, you have a node like <Node Text="" Left="0"/>. When you set the + "Text" property to "test", the node will be <Node Text="test" Left="0"/>. + If property with specified name is not exist, it will be added. + + + + + Removes a property with specified name. + + The property name. + Returns true if property is removed, false otherwise. + + + + Disposes the node and all its children. + + + + + Initializes a new instance of the XmlItem class with default settings. + + + + + Represents a xml document that contains the root xml node. + + + Use Load and Save methods to load/save the document. To access the root node + of the document, use the property. + + + + + Gets or sets a value indicating whether is necessary to indent the document + when saving it to a file/stream. + + + + + Gets or sets a value indicating whether is necessary to add xml header. + + + + + Gets the root node of the document. + + + + + Clears the document. + + + + + Saves the document to a stream. + + Stream to save to. + + + + Saves the document to a string. + + Writer to save to. + + + + Loads the document from a stream. + + Stream to load from. + + + + Saves the document to a file. + + The name of file to save to. + + + + Loads the document from a file. + + The name of file to load from. + + + + Disposes resources used by the document. + + + + + Initializes a new instance of the XmlDocument class with default settings. + + + + + + + + + + + + + Clear all files in archive. + + + + + Check for exisiting file in archive. + + + + + + + Adds the file form disk to the archive. + + + + + + Adds all files from directory (recursive) on the disk to the archive. + + + + + + Adds the stream to the archive. + + + + + + + Creates the zip and writes it to rhe Stream + + + + + + Creates the ZIP archive and writes it to the file. + + + + + + Gets or sets the Root Folder. + + + + + Gets or sets the errors. + + + + + Gets or sets the commentary to the archive. + + + + + Gets count of files in archive. + + + + + Creates the new zip archive. + + + + + Class helper for compile source code with path of assemblies + + + + + Generate a assembly in memory with some source code and several path for additional assemblies + + + + + + + + The components factory. + + + The components factory. + + + + + Creates a RichObject instance with specified name and parent. + + The name of the RichObject instance. + The parent of the RichObject instance. + The RichObject instance. + + + + Creates a MSChartObject instance with specified name and parent. + + The name of the MSChartObject instance. + The parent of the MSChartObject instance. + The MSChartObject instance. + + + + Creates a SparklineObject instance with specified name and parent. + + The name of the SparlineObject instance. + The parent of the SparlineObject instance. + + + + + Creates a MapObject instance with specified name and parent. + + The name of the MapObject instance. + The parent of the MapObject instance. + The MapObject instance. + + + + Creates a ReportPage instance in the specified Report. + + The Report instance. + The ReportPage instance. + + + + Creates a ReportTitleBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportTitleBand instance. + + + + Creates a ReportSummaryBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportSummaryBand instance. + + + + Creates a PageHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The PageHeaderBand instance. + + + + Creates a PageFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The PageFooterBand instance. + + + + Creates a ColumnHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnHeaderBand instance. + + + + Creates a ColumnFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnFooterBand instance. + + + + Creates a DataHeaderBand instance in the specified DataBand. + + The DataBand instance. + The DataHeaderBand instance. + + + + Creates a DataBand instance in the specified ReportPage. + + The ReportPage instance. + The DataBand instance. + + + + Creates a DataFooterBand instance in the specified DataBand. + + The DataBand instance. + The DataFooterBand instance. + + + + Creates a GroupHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The GroupHeaderBand instance. + + + + Creates a GroupFooterBand instance in the cpecified ReportPage. + + The ReportPage instance. + The GroupFooterBand instance. + + + + Creates a ChildBand instance in the specified BandBase. + + The BandBase instance. + The ChildBand instance. + + + + Creates an OverlayBand in the specified ReportPage. + + The ReportPage instance. + The OverlayBand instance. + + + + Creates a Style instance with specified name. + + The name of the Style instance. + The report to add style to. + The Style instance. + + + + Creates a TextObject instance with specified name and parent. + + The name of the TextObject instance. + The parent of the TextObject instance. + The TextObject instance. + + + + Creates a PictureObject instance with specified name and parent. + + The name of the PictureObject instance. + The parent of the PictureObject instance. + The PictureObject instance. + + + + Creates a LineObject instance with specified name and parent. + + The name of the LineObject instance. + The parent of the LineObject instance. + The LineObject instance. + + + + Creates a ShapeObject instance with specified name and parent. + + The name of the ShapeObject instance. + The parent of the ShapeObject instance. + The ShapeObject instance. + + + + Creates a PolyLineObject instance with specified name and parent. + + The name of the PolyLineObject instance. + The parent of the PolyLineObject instance. + The PolyLineObject instance. + + + + Creates a PolygonObject instance with specified name and parent. + + The name of the PolygonObject instance. + The parent of the PolygonObject instance. + The PolygonObject instance. + + + + Creates a SubreportObject instance with specified name and parent. + + The name of the SubreportObject instance. + The parent of the SubreportObject instance. + The SubreportObject instance. + + + + Creates a ContainerObject instance with specified name and parent. + + The name of the ContainerObject instance. + The parent of the ContainerObject instance. + The ContainerObject instance. + + + + Creates a CheckBoxObject instance with specified name and parent. + + The name of the CheckBoxObject instance. + The parent of the CheckBoxObject instance. + The CheckBoxObject instance. + + + + Creates a HtmlObject instance with specified name and parent. + + The name of the HtmlObject instance. + The parent of the HtmlObject instance. + The HtmlObject instance. + + + + Creates a TableObject instance with specified name and parent. + + The name of the TableObject instance. + The parent of the TableObject instance. + The TableObject instance. + + + + Creates a MatrixObject instance with specified name and parent. + + The name of the MatrixObject instance. + The parent of the MatrixObject instance. + The MatrixObject instance. + + + + Creates a BarcodeObject instance with specified name and parent. + + The name of the BarcodeObject instance. + The parent of the BarcodeObject instance. + The BarcodeObject instance. + + + + Creates a ZipCodeObject instance with specified name and parent. + + The name of the ZipCodeObject instance. + The parent of the ZipCodeObject instance. + The ZipCodeObject instance. + + + + Creates a CellularTextObject instance with specified name and parent. + + The name of the CellularTextObject instance. + The parent ot the CellularTextObject instance. + The CellularTextObject instance. + + + + Creates a LinearGauge instance with specified name and parent. + + The name of the LinearGauge instance. + The parent of the LinearGauge instance. + The LinearGauge instance. + + + + Creates a SimpleGauge instance with specified name and parent. + + The name of the SimpleGauge instance. + The parent of the SimpleGauge instance. + The SimpleGauge instance. + + + + Represents the DevExpess import plugin. + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + The DevExpress units converter. + + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + Use this method for fonts, because font size is not stored as multiplied by dpi + + + + + Converts value to Boolean. + + Boolen value as string. + + + + Converts DevExpress Color. + + The DevExpress Color value as string. + The Color value. + + + + Converts DevExpress BackColor. + + The DevExpress BackColor value as string. + The Color value. + + + + Converts the DevExpress BorderDashStyle to LineStyle. + + The DevExpress BorderDashStyle value. + The LineStyle value. + + + + Converts the DevExpress LineStyle to LineStyle. + + The DevExpress LineStyle value. + The LineStyle value. + + + + Converts the DevExpress TextAlignment to HorzAlignment. + + The DevExpress TextAlignment value. + The HorzAlign value. + + + + Converts the DevExpress TextAlignment to VertAlignment. + + The DevExpress TextAlignment value. + The VertAlign value. + + + + Converts the DevExpress ImageSizeMode to PictureBoxSizeMode. + + The ImageSizeMode value as string. + The PictureBoxSizeMode value. + + + + Converts the DevExpress Shape to ShapeKind. + + The DevExpress Shape value as string. + The ShapeKind value. + + + + Converts the DevExpress Barcode.Symbology to Barcode.Barcode. + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Converts the DevExpress border sides to FastReport border sides + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Represents the RDL import plugin. + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + + + + The RDL units converter. + + + The RDL units converter. + + + + + Converts the RDL GradientType to GradientStyle. + + The RDL GradientType value. + The GradientStyle value. + + + + Converts the RDL Chart.Type to SeriesChartType. + + The RDL Chart.Type value. + The SeriesChartType value. + + + + Converts the RDL Chart.Palette to ChartColorPalette. + + The RDL Chart.Palette value. + The RDL ChartColorPalette value. + + + + Converts the RDL Chart.Legend.Position to Legend.Docking and Legend.Alignment. + + The RDL Chart.Legend.Position value. + The Legend instance to convert to. + + + + Converts the RDL Chart.Legend.Layout to LegendStyle. + + The RDL Chart.Legend.Layout value. + The LegendStyle value. + + + + Converts the RDL BorderStyle to ChartDashStyle. + + The RDL BorderStyle value. + The ChartDashStyle value. + + + + Converts the RDL Axis.Visible to AxisEnabled. + + The RDL Axis.Visible value. + The AxisEnabled value. + + + + Converts the RDL TickMarkStyle to TickMarkStyle. + + The RDL TickMarkStyle value. + The TickMarkStyle value. + + + + Converts the RDL Shading to LightStyle. + + The RDL Shading value. + The LightStyle value. + + + + Converts the RDL Boolean to bool value. + + The RDL Boolean value. + The bool value. + + + + Converts the RDL Color to Color. + + The RDL Color value. + The Color value. + + + + Converts the RDL Size to float value. + + The RDL Size value. + The RDL Size units measure. + The float value of RDL Size. + + + + Converts the RDL Size to int value. + + The RDL Size value. + The RDL Size units measure. + The int value of RDL Size. + + + + Converts the RDL Size to millimeters. + + The RDL Size value. + The float value of RDL Size in millimeters. + + + + Converts the RDL Size to pixels. + + The RDL Size value. + The float value of RDL Size in pixels. + + + + Converts the RDL FontStyle to FontStyle. + + The RDL FontStyle value. + The FontStyle value. + + + + Converts the RDL FontSize to float. + + The RDL FontSize value. + The float value of RDL FontSize in points. + + + + Converts the RDL TextAlign to HorzAlign. + + The RDL TextAlign value. + The HorzAlign value. + + + + Converts the RDL TextAlign to VerticalAlign. + + The RDL VerticalAlign value. + The VertAlign value. + + + + Converts the RDL WritingMode to Angle. + + The RDL WritingMode value. + The int value of RDL WritingMode in degree. + + + + Converts the RDL TextAlign to StringAlignment. + + The RDL TextAling value. + The StringAlignment value. + + + + Converts the RDL TextAlign and VerticalAlign to ContentAlignment. + + The RDL TextAlign value. + The RDL VerticalAlign value. + The ContentAlignment value. + + + + Converts the RDL BorderStyle to LineStyle. + + The RDL BorderStyle value. + The LineStyle value. + + + + Converts the RDL Sizing to PictureBoxSizeMode. + + The RDL Sizing value. + The PictureBoxSizeMode value. + + + + The RDL Size units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in points. + + + + + Specifies the units measured in picas. + + + + + Defines the constants used to convert between RDL Size and pixels. + + + To convert pixels to inches, use the code: + inches = pixels / SizeUnitsP.Inch; + To convert inches to pixels, use the code: + pixels = inches * SizeUnitsP.Inch; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in one point. + + + + + The number of pixels in one pica. + + + + + Defines the constants used to convert between RDL Size and millimeters. + + + To convert millimeters to inches, use the code: + inches = millimeters / SizeUnitsM.Inch; + To convert inches to millimeters, use the code: + millimeters = inches * SizeUnitsM.Inch; + + + + + The number of millimeters in one centimeter. + + + + + The number of millimeters in one inch. + + + + + The number of millimeters in one point. + + + + + The number of millimeters in one pica. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the List and Label import plugin. + + + + + Gets the value indicating is the report List and Label template after trying to load it. + + + + + Initializes a new instance of the class. + + + + + + + + The List and Label units converter. + + + + + Converts List and Label units to millimeters. + + The List and Label unit as string. + The value in millimeters. + + + + Converts List and Label units to pixels. + + The List and Label unit as string. + The value in pixels. + + + + Converts List and Label paper orientation. + + The List and Label paper orientation value as string. + Returns true if orientation is landscape. + + + + Converts List and Label bool. + + The List and Label bool value as string. + A bool value. + + + + Converts List and Label text Align. + + The List and Label text Align value as string. + A HorzAlign value. + + + + Convert List and Label LineType to LineStyle. + + The List and Label LineType value as string. + A LineStyle value. + + + + Converts List and Label rounding to float. + + The List and Label rounding value as string. + A float value. + + + + Represents the pages of a prepared report. + + + Prepared page is a page that you can see in the preview window. Prepared pages can be + accessed via property. + The common scenarios of using this object are: + + + Working with prepared pages after the report is finished: load + () or save () pages + from/to a .fpx file, get a page with specified index to work with its objects + (); modify specified page (). + + + + Using the , , + methods while report is generating to produce an output. + + + + + + + + + Gets the number of pages in the prepared report. + + + + + Specifies an action that will be performed on method call. + + + + + Gets or sets a value indicating whether the prepared pages can be uploaded to the file cache. + + + This property is used while report is generating. + Default value for this property is true. That means the prepared pages may be uploaded to + the file cache if needed. To prevent this (for example, if you need to access some objects + on previously generated pages), set the property value to false. + + + + + + + + Adds a source page to the prepared pages dictionary. + + The template page to add. + + Call this method before using AddPage and AddBand methods. This method adds + a page to the dictionary that will be used to decrease size of the prepared report. + + + + + Adds a new page. + + The original (template) page to add. + + Call the method before adding a page. This method creates + a new output page with settings based on page parameter. + + + + + Prints a band with all its child objects. + + The band to print. + true if band was printed; false if it can't be printed + on current page due to its PrintOn property value. + + Call the method before adding a band. + + + + + Gets a page with specified index. + + Zero-based index of page. + The page with specified index. + + + + Gets the size of specified page, in pixels. + + Index of page. + the size of specified page, in pixels. + + + + Replaces the prepared page with specified one. + + The index of prepared page to replace. + The new page to replace with. + + + + Modify the prepared page with new sizes. + + The name of prepared page to reSize. + + + + Removes a page with the specified index. + + The zero-based index of page to remove. + + + + Creates a copy of a page with specified index and inserts it after original one. + + The zero-based index of original page. + + + + Saves prepared pages to a stream. + + The stream to save to. + + + + Saves prepared pages to a .fpx file. + + The name of the file to save to. + + + + Loads prepared pages from a stream. + + The stream to load from. + + + + Loads prepared pages from a .fpx file. + + The name of the file to load from. + + + + Clears the prepared report's pages. + + + + + Creates the pages of a prepared report + + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the OutlineControl class with default settings. + + + + + Represents a Windows Forms control used to preview a report. + + + To use this control, place it on a form and link it to a report using the report's + property. To show a report, call + the Report.Show method: + + report1.Preview = previewControl1; + report1.Show(); + + Use this control's methods such as , etc. to + handle the preview. Call method to clear the preview. + You can specify whether the standard toolbar is visible in the + property. The property allows you to hide/show the statusbar. + + + + + + Occurs when current page number is changed. + + + + + Occurs when Print button clicked. + + + + + Occurs when Export button clicked. + + + + + Gets a reference to the report. + + + + + Obsolete. Gets or sets the color of page border. + + + + + Gets or sets the color of active page border. + + + + + Gets or sets the first page offset from the top left corner of the control. + + + + + Gets or sets a value indicating whether the toolbar is visible. + + + + + Gets or sets a value indicating whether the statusbar is visible. + + + + + Gets or sets a value indicating whether the outline control is visible. + + + + + Specifies the set of buttons available in the toolbar. + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Gets or sets the visual style. + + + + + Gets or sets a value indicating that the BackColor property must be used to draw the background area. + + + By default, the background area is drawn using the color defined in the current UIStyle. + + + + + Gets the preview window's toolbar. + + + + + Gets the preview window's statusbar. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Updates the control appearance and layout on dpi change. + + + + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + If true, makes the new tab active. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Switches to the tab with specified text. + + Text of the tab. + true if the tab with specified text exists, or false if there is no such tab. + + + + Deletes the report tab with specified text. + + The text of the tab. + + + + Checks if the tab with specified text exists. + + The text of the tab. + true if the tab exists. + + + + Displays the text in the status bar. + + Text to display. + + + + Sets the focus to the preview control. + + + + + Prints the current report. + + true if report was printed; false if user cancels the "Print" dialog. + + + + Saves the current report to a .fpx file using the "Save FIle" dialog. + + + + + Saves the current report to a specified .fpx file. + + + + + Saves the current report to a stream. + + + + + Loads the report from a .fpx file using the "Open File" dialog. + + + + + Loads the report from a specified .fpx file. + + + + + Load the report from a stream. + + The stream to load from. + + + + Sends an email. + + + + + Finds the text in the current report using the "Find Text" dialog. + + + + + Finds the specified text in the current report. + + Text to find. + A value indicating whether the search is case-sensitive. + A value indicating whether the search matches whole words only. + true if text found. + + + + Finds the next occurence of text specified in the Find method. + + true if text found. + + + + Navigates to the first page. + + + + + Navigates to the previuos page. + + + + + Navigates to the next page. + + + + + Navigates to the last page. + + + + + Gets or sets the current page number. + + + This value is 1-based. + + + + + Gets the pages count in the current report. + + + + + Gets or sets the zoom factor. + + + 1 corresponds to 100% zoom. + + + + + Zooms in. + + + + + Zooms out. + + + + + Zooms to fit the page width. + + + + + Zooms to fit the whole page. + + + + + Edits the current page in the designer. + + + + + Copies the current page in preview. + + + + + Removes the current page in preview. + + + + + Edits the current report in the designer. + + + + + Edits the watermark. + + + + + Edits the page settings. + + + + + Navigates to the specified position inside a specified page. + + The page number (1-based). + The position inside a page, in pixels. + + + + Clears the preview. + + + + + Refresh the report. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies an action that will be performed on PreparedPages.AddPage method call. + + + + + Do not add the new prepared page if possible, increment the CurPage instead. + + + + + Add the new prepared page. + + + + + Represents a class that contains all parameters of Swiss QR Code. + + + + + IBAN object + + + + + (either EUR or CHF) + + + + + Creditor (payee) information + + + + + Reference information + + + + + Can be null + + + + + Debitor (payer) information + + + + + Amount + + + + + Optional command for alternative processing mode - line 1 + + + + + Optional command for alternative processing mode - line 2 + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR" + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Represents a barcode object. + Represents a barcode object. + + + The instance of this class represents a barcode. Here are some common + actions that can be performed with this object: + + + To select the type of barcode, use the property. + + + + To specify a static barcode data, use the property. + You also may use the or properties + to specify dynamic value for a barcode. + + + + To set a barcode orientation, use the property. + + + + To specify the size of barcode, set the property + to true and use the property to zoom the barcode. + If property is set to false, you need to specify the + size using the Width and + Height properties. + + + + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + + + + + + + + + + + + + + + + Specifies the horizontal alignment of a Barcode object. Works only when autosize is on. + + + + + Specifies that the barcode is aligned to the left of the original layout. + + + + + Specifies that the barcode is aligned to the center of the original layout. + + + + + Specifies that the barcode is aligned to the right of the original layout. + + + + + Gets or sets the barcode type. + + + + + Gets or sets the horizontal alignment of a Barcode object. + + + + + Gets or sets the symbology name. + + + The following symbology names are supported: + + "2/5 Interleaved" + "2/5 Industrial" + "2/5 Matrix" + "Codabar" + "Code128" + "Code39" + "Code39 Extended" + "Code93" + "Code93 Extended" + "EAN8" + "EAN13" + "MSI" + "PostNet" + "UPC-A" + "UPC-E0" + "UPC-E1" + "Supplement 2" + "Supplement 5" + "PDF417" + "Datamatrix" + "QRCode" + + + + + barcode.SymbologyName = "PDF417"; + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + Gets or sets the angle of barcode, in degrees. + + + + + Gets or sets a value that determines whether the barcode should handle its width automatically. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the barcode data. + + + + + Enable or disable of using an expression in Text + + + + + Gets or sets brackets for using in expressions + + + + + Gets or sets a value that indicates if the barcode should display a human-readable text. + + + + + Gets or sets the barcode data. + + + + + Gets or sets padding within the BarcodeObject. + + + + + Gets or sets a zoom of the barcode. + + + + + Gets or sets a value that determines whether it is necessary to hide the object if the + barcode data is empty. + + + + + Gets or sets the text that will be displayed if the barcode data is empty. + + + + + Gets or sets values for forced use of a bitmap image instead of a vector + + + + + Initialize current BarcodeObject as Swiss QR. + + Parameters of swiss qr. + + + + Relocate BarcodeObject based on alignment + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + + Aztec 2D code representation + + Rustam Abdullaev + + + + Compact or full symbol indicator + + + + + Size in pixels (width and height) + + + + + Number of levels + + + + + Number of data codewords + + + + + The symbol image + + + + + The class holds the available options for the AztecWriter + + + + + Representing the minimal percentage of error correction words. + Note: an Aztec symbol should have a minimum of 25% EC words. + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + A simple, fast array of bits, represented compactly by an array of ints internally. + + Sean Owen + + + Flips bit i. + + + bit to set + + + + + Gets the next set. + + first bit to check + index of first bit that is set, starting from the given index, or size if none are set + at or beyond this given index + + + + see getNextSet(int) + + index to start looking for unset bit + index of next unset bit, or if none are unset until the end + + + Sets a block of 32 bits, starting at bit i. + + + first bit to set + + the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + + + Sets a range of bits. + + start of range, inclusive. + end of range, exclusive + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + + start of range, inclusive. + + end of range, exclusive + + if true, checks that bits in range are set, otherwise checks that they are not set + + true iff all bits are set or not set in range, according to value argument + + IllegalArgumentException if end is less than or equal to start + + + + Appends the bit. + + The bit. + + + underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + + + Appends the least-significant bits, from value, in order from most-significant to + least-significant. For example, appending 6 bits from 0x000001E will append the bits + 0, 1, 1, 1, 1, 0 in that order. + + containing bits to append + bits from value to append + + + + Toes the bytes. + + first bit to start writing + array to write into. Bytes are written most-significant byte first. This is the opposite + of the internal representation, which is exposed by BitArray + position in array to start writing + how many bytes to write + + + Reverses all bits in the array. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Erstellt ein neues Objekt, das eine Kopie der aktuellen Instanz darstellt. + + + Ein neues Objekt, das eine Kopie dieser Instanz darstellt. + + + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+
+ Sean Owen + dswitkin@google.com (Daniel Switkin) +
+ + The width of the matrix + + + + The height of the matrix + + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + + row/column dimension of this matrix + + + +

Gets the requested bit, where true means black.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + + value of given bit in matrix + +
+ +

Flips the given bit.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ +
+ The horizontal position to begin at (inclusive) + + The vertical position to begin at (inclusive) + + The width of the region + + The height of the region + +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + + The row to retrieve + + An optional caller-allocated BitArray, will be allocated if null or too small + + The resulting BitArray - this reference should always be used even when passing + your own row + + + + + Sets the row. + + row to set + {@link BitArray} to copy from + + + + Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees + + + + + This is useful in detecting the enclosing rectangle of a 'pure' barcode. + + {left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white + + + + This is useful in detecting a corner of a 'pure' barcode. + + {x,y} coordinate of top-left-most 1 bit, or null if it is all white + + + + These are a set of hints that you may pass to Writers to specify their behavior. + + dswitkin@google.com (Daniel Switkin) + + + + Specifies the width of the barcode image + type: + + + + + Specifies the height of the barcode image + type: + + + + + Don't put the content string into the output image. + type: + + + + + Specifies what character encoding to use where applicable. + type: + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + type: + + + + + Specifies whether to use compact mode for PDF417. + type: + + + + + Don't append ECI segment. + That is against the specification of QR Code but some + readers have problems if the charset is switched from + ISO-8859-1 (default) to UTF-8 with the necessary ECI segment. + If you set the property to true you can use UTF-8 encoding + and the ECI segment is omitted. + type: + + + + + if true, don't switch to codeset C for numbers + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + Generates Aztec 2D barcodes. + + Rustam Abdullaev + + + + Encodes the given binary content as an Aztec symbol + + input data string + Aztec symbol matrix with metadata + + + + Encodes the given binary content as an Aztec symbol + + input data string + minimal percentage of error check words (According to ISO/IEC 24778:2008, + a minimum of 23% + 3 words is recommended) + if non-zero, a user-specified value for the number of layers + + Aztec symbol matrix with metadata + + + + + Defines an container for encoder options + + + + + Gets the data container for all options + + + + + Specifies the height of the barcode image + + + + + Specifies the width of the barcode image + + + + + Don't put the content string into the output image. + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + + + + + Initializes a new instance of the class. + + + + +

This class contains utility methods for performing mathematical operations over + the Galois Fields. Operations use a given primitive polynomial in calculations.

+

Throughout this package, elements of the GF are represented as an {@code int} + for convenience and speed (but at the cost of memory). +

+
+ Sean Owen +
+ + + Create a representation of GF(size) using the given primitive polynomial. + + irreducible polynomial whose coefficients are represented by + * the bits of an int, where the least-significant bit represents the constant + * coefficient + the size of the field + the factor b in the generator polynomial can be 0- or 1-based + * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). + * In most cases it should be 1, but for QR code it is 0. + + + + Builds the monomial. + + The degree. + The coefficient. + the monomial representing coefficient * x^degree + + + + Implements both addition and subtraction -- they are the same in GF(size). + + sum/difference of a and b + + + + Exps the specified a. + + 2 to the power of a in GF(size) + + + + Logs the specified a. + + A. + base 2 log of a in GF(size) + + + + Inverses the specified a. + + multiplicative inverse of a + + + + Multiplies the specified a with b. + + A. + The b. + product of a and b in GF(size) + + + + Gets the size. + + + + + Gets the generator base. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + +

Represents a polynomial whose coefficients are elements of a GF. + Instances of this class are immutable.

+

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+
+ Sean Owen +
+ + + Initializes a new instance of the class. + + the {@link GenericGF} instance representing the field to use + to perform computations + coefficients as ints representing elements of GF(size), arranged + from most significant (highest-power term) coefficient to least significant + if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + + degree of this polynomial + + + + + Gets a value indicating whether this is zero. + + true iff this polynomial is the monomial "0" + + + + coefficient of x^degree term in this polynomial + + The degree. + coefficient of x^degree term in this polynomial + + + + evaluation of this polynomial at a given point + + A. + evaluation of this polynomial at a given point + + + + This produces nearly optimal encodings of text into the first-level of + encoding used by Aztec code. + It uses a dynamic algorithm. For each prefix of the string, it determines + a set of encodings that could lead to this prefix. We repeatedly add a + character and generate a new set of optimal encodings until we have read + through the entire input. + @author Frank Yellin + @author Rustam Abdullaev + + + + + Convert the text represented by this High Level Encoder into a BitArray. + + text represented by this encoder encoded as a + + + + Implements Reed-Solomon encoding, as the name implies. + + Sean Owen + William Rucklidge + + + + State represents all information about a sequence necessary to generate the current output. + Note that a state is immutable. + + + + + Create a new state representing this state with a latch to a (not + necessary different) mode, and then a code. + + + + + Create a new state representing this state, with a temporary shift + to a different mode to output a single value. + + + + + Create a new state representing this state, but an additional character + output in Binary Shift mode. + + + + + Create the state identical to this one, but we are no longer in + Binary Shift mode. + + + + + Returns true if "this" state is better (or equal) to be in than "that" + state under all possible circumstances. + + + + + Contains conversion support elements such as classes, interfaces and static methods. + + + + + Copies an array of chars obtained from a String into a specified array of chars + + The String to get the chars from + Position of the String to start getting the chars + Position of the String to end getting the chars + Array to return the chars + Position of the destination array of chars to start storing the chars + An array of chars + + + + Sets the capacity for the specified List + + The List which capacity will be set + The new capacity value + + + + Converts a string-Collection to an array + + The strings. + + + + + Joins all elements to one string. + + + The separator. + The values. + + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The value. + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The start index. + The end index. + The value. + + + + Generates the Code128 barcode. + + + This barcode supports three code pages: A, B and C. You need to set appropriate code page + in the barcode text, or use the auto encode feature. See the property + for more details. + + This example shows how to configure the BarcodeObject to display Code128 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + + + + + + Gets or sets a value that determines whether the barcode should automatically + use appropriate encoding. + + + You may use this property to encode data automatically. If you set it to false, + you must specify the code page inside the data string. The following control codes are available: + + + Sequence + Code128 control code + + + &A; + START A / CODE A + + + &B; + START B / CODE B + + + &C; + START C / CODE C + + + + &S; + SHIFT + + + &1; + FNC1 + + + &2; + FNC2 + + + &3; + FNC3 + + + &4; + FNC4 + + + The following example shows how to specify control codes: + + BarcodeObject barcode; + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + barcode.Text = "&C;1234&A;ABC"; + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for 2D-barcodes such as PDF417 and Datamatrix. + + + + + Generates the "2/5 Interleaved" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Identcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Leitcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Generates the "ITF-14" barcode. + + + + + Gets or sets the value indicating that vertical bearer bars are needed to draw. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "2/5 Industrial" barcode. + + + + + Generates the "2/5 Matrix" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 extended barcode. + + + + + Generates the Code93 barcode. + + + + + + + + Generates the Code93 extended barcode. + + + + + Generates the 2D Aztec barcode. + + + + + Gets or sets the error correction percent. + + + + + Initializes a new instance of the class with default settings. + + + + + + + + The base class for all barcodes. + + + + + Gets the name of barcode. + + + + + Gets or sets the color of barcode. + + + + + Creates the exact copy of this barcode. + + The copy of this barcode. + + + + Assigns properties from other, similar barcode. + + Barcode object to assign properties from. + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Codabar barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the Datamatrix encoding. + + + + + Specifies the auto encoding. + + + + + Specifies the ASCII encoding. + + + + + Specifies the C40 encoding. + + + + + Specifies the text encoding. + + + + + Specifies the binary encoding. + + + + + Specifies the X12 encoding. + + + + + Specifies the Edifact encoding. + + + + + Specifies the Datamatrix symbol size. + + + + + Specifies the auto size. + + + + + Specifies the 10x10 size. + + + + + Specifies the 12x12 size. + + + + + Specifies the 8x8 size. + + + + + Specifies the 14x14 size. + + + + + Specifies the 8x32 size. + + + + + Specifies the 16x16 size. + + + + + Specifies the 12x26 size. + + + + + Specifies the 18x18 size. + + + + + Specifies the 20x20 size. + + + + + Specifies the 12x36 size. + + + + + Specifies the 22x22 size. + + + + + Specifies the 16x36 size. + + + + + Specifies the 24x24 size. + + + + + Specifies the 26x26 size. + + + + + Specifies the 16x48 size. + + + + + Specifies the 32x32 size. + + + + + Specifies the 36x36 size. + + + + + Specifies the 40x40 size. + + + + + Specifies the 44x44 size. + + + + + Specifies the 48x48 size. + + + + + Specifies the 52x52 size. + + + + + Specifies the 64x64 size. + + + + + Specifies the 72x72 size. + + + + + Specifies the 80x80 size. + + + + + Specifies the 88x88 size. + + + + + Specifies the 96x96 size. + + + + + Specifies the 104x104 size. + + + + + Specifies the 120x120 size. + + + + + Specifies the 132x132 size. + + + + + Specifies the 144x144 size. + + + + + Generates the 2D Data Matrix barcode. + + + + + Gets or sets the symbol size. + + + + + Gets or sets the encoding mode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the size of the pixel. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for EAN barcodes. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the EAN8 barcode. + + + + + Generates the EAN13 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the GS1-128 (formerly known as UCC-128 or EAN-128) barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Intelligent Mail (USPS) barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 2D MaxiCode barcode. + + + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + + + + Initializes a new instance of the class with default settings. + + + + + + + Implements MaxiCode according to ISO 16023:2000. + + MaxiCode employs a pattern of hexagons around a central 'bulls-eye' + finder pattern. Encoding in several modes is supported, but encoding in + Mode 2 and 3 require primary messages to be set. Input characters can be + any from the ISO 8859-1 (Latin-1) character set. + + TODO: Add ECI functionality. + + @author Robin Stuart + @author Daniel Gredler + + + MaxiCode module sequence, from ISO/IEC 16023 Figure 5 (30 x 33 data grid). + + + ASCII character to Code Set mapping, from ISO/IEC 16023 Appendix A. + 1 = Set A, 2 = Set B, 3 = Set C, 4 = Set D, 5 = Set E. + 0 refers to special characters that fit into more than one set (e.g. GS). + + + ASCII character to symbol value, from ISO/IEC 16023 Appendix A. + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + @param mode the MaxiCode mode to use + + + Returns the MaxiCode mode being used. Only modes 2 to 6 are supported. + + @return the MaxiCode mode being used + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the + position of this symbol in the series. Valid values are 1 through 8 inclusive. + + @param position the position of this MaxiCode symbol in the structured append series + + + Returns the position of this MaxiCode symbol in a series of symbols using structured append. If this symbol is not part of + such a series, this method will return 1. + + @return the position of this MaxiCode symbol in a series of symbols using structured append + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the total + number of symbols in the series. Valid values are 1 through 8 inclusive. A value of 1 indicates that this symbol is not + part of a structured append series. + + @param total the total number of MaxiCode symbols in the structured append series + + + Returns the size of the series of MaxiCode symbols using structured append that this symbol is part of. If this symbol is + not part of a structured append series, this method will return 1. + + @return size of the series that this symbol is part of + + + Sets the primary data. Should only be used for modes 2 and 3. Must conform to the following structure: + + + + + + +
CharactersMeaning
1-9Postal code data which can consist of up to 9 digits (for mode 2) or up to 6 + alphanumeric characters (for mode 3). Remaining unused characters should be + filled with the SPACE character (ASCII 32).
10-12Three-digit country code according to ISO-3166.
13-15Three digit service code. This depends on your parcel courier.
+ + @param primary the primary data +
+ + Returns the primary data for this MaxiCode symbol. Should only be used for modes 2 and 3. + + @return the primary data for this MaxiCode symbol + + + {@inheritDoc} + + + Extracts the postal code, country code and service code from the primary data and returns the corresponding primary message + codewords. + + @return the primary message codewords + + + Returns the primary message codewords for mode 2. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Returns the primary message codewords for mode 3. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Formats text according to Appendix A, populating the {@link #set} and {@link #character} arrays. + + @return true if the content fits in this symbol and was formatted; false otherwise + + + Guesses the best set to use at the specified index by looking at the surrounding sets. In general, characters in + lower-numbered sets are more common, so we choose them if we can. If no good surrounding sets can be found, the default + value returned is the first value from the valid set. + + @param index the current index + @param Length the maximum Length to look at + @param valid the valid sets for this index + @return the best set to use at the specified index + + + Moves everything up so that the specified shift or latch character can be inserted. + + @param position the position beyond which everything needs to be shifted + @param c the latch or shift character to insert at the specified position, after everything has been shifted + + + Returns the error correction codewords for the specified data codewords. + + @param codewords the codewords that we need error correction codewords for + @param ecclen the number of error correction codewords needed + @return the error correction codewords for the specified data codewords + + + {@inheritDoc} + + + {@inheritDoc} + + + + Generates the MSI barcode. + + + + + Specifies the error correction level used for PDF417 barcode. + + + + + Indicates that correction level should be calculated automatically. + + + + + Specifies level 0. + + + + + Specifies level 1. + + + + + Specifies level 2. + + + + + Specifies level 3. + + + + + Specifies level 4. + + + + + Specifies level 5. + + + + + Specifies level 6. + + + + + Specifies level 7. + + + + + Specifies level 8. + + + + + Specifies the compaction mode used for PDF417 barcode. + + + + + Indicates that compaction mode should be calculated automatically. + + + + + Specifies the text compaction mode. + + + + + Specifies the numeric compaction mode. + + + + + Specifies the binary compaction mode. + + + + + Generates the 2D PDF417 barcode. + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = PDF417CompactionMode.Text; + + + + + + Gets or sets the barcode aspect ratio. + + + A ratio or 0.5 will make the barcode width twice as large as the height. + + + + + Gets or sets the number of barcode data columns. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the number of barcode data rows. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the error level correction used for the barcode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the compaction mode. + + + + + Gets or sets the size of the pixel. + + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Pharmacode barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + Generates the Plessey barcode. + + + + + Appends the given pattern to the target array starting at pos. + + encode black/white pattern into this array + position to start encoding at in target + lengths of black/white runs to encode + starting color - false for white, true for black + the number of elements added to target. + + + + Generates the PostNet barcode. + + + + + Specifies the QR code error correction level. + + + + + L = ~7% correction. + + + + + M = ~15% correction. + + + + + Q = ~25% correction. + + + + + H = ~30% correction. + + + + + Specifies the QR Code encoding. + + + + + UTF-8 encoding. + + + + + ISO 8859-1 encoding. + + + + + Shift_JIS encoding. + + + + + Windows-1251 encoding. + + + + + cp866 encoding. + + + + + Generates the 2D QR code barcode. + + + + + Gets or sets the error correction. + + + + + Gets or sets the encoding used for text conversion. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E0 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E1 barcode. + + + + + Generates the UPC A barcode. + + + + + Generates the 2-digit supplement barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 5-digit supplement barcode. + + + + + The base class for linear (1D) barcodes. + + + + + Gets or sets a value that determines if the barcode object should calculate + the check digit automatically. + + + + + Gets or sets a relative width of wide bars in the barcode. + + + + + Gets the value indicating that the barcode is numeric. + + + + + Gets or sets a value indicating that leading/trailing whitespaces must be trimmed. + + + true if trim; otherwise, false. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Container object that may contain child objects. + + + + + Gets the collection of child objects. + + + + + This event occurs before the container layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a script event name that will be fired before the container layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + + + + + + + + + + Initializes a new instance of the ContainerObject class with default settings. + + + + + + + + + + + + + + + + + The default field name. + + + + + FastReport json connection + + + + + Name of json object table + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the JsonDataConnection connection string builder. + + + Use this class to parse connection string returned by the JsonDataConnection class. + + + + + Gets or sets json data + + + + + Gets or sets json schema + + + + + Gets or sets json url encoding + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + JsonTableDataSource present a json array object + + + + + Gets or sets value for force update schema on init schema + + + + + + + + + + + + + + + + + + + + + + + This class represents a single data column in a . + + + + + + + + Gets or sets the business object property name which this column is bound to. + + + + + Gets or sets the business object property descriptor which this column is bound to. + + + + + Gets or sets the type of data supplied by this column. + + + + + Gets or sets a value that specifies the type of a control that will be created + when you drop this column on a report page. + + + If you need to specify the custom type, use the property instead. + + + + + Gets or sets a name of custom bindable control. + + + Use this property if you want to bind a column to custom object type. You need to + specify the type name of your object; that object must be registered in FastReport using the + RegisteredObjects.Add method. + + + + + Gets or sets the format of this column. + + + This property is used when you drag a column from the Data window to the report page. + FastReport will create a "Text" object and set its "Format" property to the corresponding format. + By default, this property is set to Auto. It means that the format will be determined + automatically depending on the property. + + + + + Gets or sets expression of the calculated column. + + + This property is used if the property is true. + + + + + Gets or sets a value that indicates whether this column is calculated. + + + You should specify the property for calculated columns. + + + + + Gets the collection of child columns. + + + + + Gets or sets the tag value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Column class with default settings. + + + + + + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all connection editors. This control is used when you edit + the connection in the Data Wizard. + + + + + Gets or sets a connection string. + + + + + This method should construct the connection string from values entered by user. + + The connection string. + + + + This method should parse the connection string and fill the user interface elements. + + The connection string. + + + + Updates the component layout on dpi change. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a connection to xml file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + XmlDataConnection conn = new XmlDataConnection(); + conn.XmlFile = @"c:\data.xml"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .xsd file. + + + + + Gets or sets the path to .xml file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a total that is used to calculate aggregates such as Sum, Min, Max, Avg, Count. + + + + + + + + Gets or sets the total type. + + + + + Gets or sets the expression used to calculate the total. + + + + + Gets or sets the evaluator databand. + + + The total will be calculated for each row of this band. + + + + + This property is kept for compatibility only. + + + + + Gets or sets the band to print the total on. + + + The total will be resetted after the specified band has been printed. + + + + + Gets or sets a value that determines whether the total should be resetted after print. + + + + + Gets or sets a value that determines whether the total should be resetted if printed + on repeated band (i.e. band with "RepeatOnEveryPage" flag). + + + + + Gets or sets the condition which tells the total to evaluate. + + + + + Gets or sets a value that determines if invisible rows of the Evaluator should + be included into the total's value. + + + + + This property is not relevant to this class. + + + + + Gets the value of total. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a datasource based on DataTable class. + + This example shows how to add a new table to the existing connection: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = "Table1"; + conn.Tables.Add(table); + + + + + + + + + Gets or sets the underlying DataTable object. + + + + + Gets or sets the table name. + + + + + Gets or sets SQL "select" command. + + + If this command contains parameters, you should specify them in the + property. + + + + + Gets a collection of parameters used by "select" command. + + + You must set up this property if the SQL query that you've specified in the + property contains parameters. + You can pass a value to the SQL parameter in two ways. + The right way is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the SQL parameter. To do this, set the SQL parameter's Expression property + to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + The other way (unrecommended) is to find a datasource object and set its parameter from a code: + + TableDataSource ds = report.GetDataSource("My DataSource Name") as TableDataSource; + ds.Parameters[0].Value = 10; + + This way is not good because you hardcode the report object's name. + + + + + Gets or sets the parent object. + + + + + Gets or sets a value that determines whether it is necessary to store table data in a report file. + + + + + Gets or sets the table data. + + + This property is for internal use only. + + + + + If set, ignores the Connection (always returns null). Needed when we replace the + existing connection-based datasource with datatable defined in an application. + + + + + Gets or sets the query builder schema. + + + This property is for internal use only. + + + + + + + + + + + + + + + + + Refresh the table schema. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a master-detail relation between two data sources. + + + To setup a relation, you must specify parent and child datasources. For a parent datasource, + you must specify set of key columns; for child datasource, you must specify set of columns that + relate to the parent key columns. + This example shows how to create relation between Customers and Orders tables: + + Report report1; + DataSourceBase customersTable = report1.Dictionary.DataSources.FindByAlias("Customers"); + DataSourceBase ordersTable = report1.Dictionary.DataSources.FindByAlias("Orders"); + Relation rel = new Relation(); + rel.Name = "customersOrders"; + rel.ParentDataSource = customersTable; + rel.ChildDataSource = ordersTable; + rel.ParentColumns = new string[] { "CustomerID" }; + rel.ChildColumns = new string[] { "CustomerID" }; + report1.Dictionary.Relations.Add(rel); + + + + + + + + + + Gets or sets the parent datasource. + + + + + Gets or sets the child datasource. + + + + + Gets or sets an array of parent datasource columns. + + + Note: both and must have the + same number of elements. + + + + + Gets or sets an array of child datasource columns. + + + Note: both and must have the + same number of elements. + + + + + + + + Compares this relation with another one. + + Another relation to compare with. + true if both relations are equal; false otherwise. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to any OLE DB database. + + This example shows how to add a new connection to the report. + + Report report1; + OleDbDataConnection conn = new OleDbDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to any database through ODBC. + + This example shows how to add a new connection to the report. + + Report report1; + OdbcDataConnection conn = new OdbcDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS SQL database. + + This example shows how to add a new connection to the report. + + Report report1; + MsSqlDataConnection conn = new MsSqlDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS Access database (.mdb file). + + This example shows how to add a new connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + Gets or sets the datasource file name. + + + + + Gets or sets the user name. + + + + + Gets or sets the password. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data connection components such as . + + This example shows how to add a new MS Access connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + Gets a string that will identify a connection in the Data Wizard. + + The string that contains the connection type and some meaningful information. + + + + Gets the default type for a new parameter. + + The integer representation of a parameter type. + + + + Gets a control that will be used to edit the connection properties. + + The editor's control. + + + + + + + Tests the connection. + + + If test connection is not successful, this method throws an exception. Catch this exception to + show an error message. + + + + + Gets an internal DataSet object that contains all data tables. + + + + + Gets a collection of data tables in this connection. + + + To add a table to the connection, you must either create a new TableDataSource and add it + to this collection or call the method which will add + all tables available in the database. + + + + + Gets or sets a connection string that contains all connection parameters. + + + To modify some parameter of the connection, use respective + ConnectionStringBuilder class. + Security note: the connection string may contain a user name/password. + This information is stored in a report file. By default, it is crypted using the standard + FastReport's password. Since FastReport's source code is available to anyone who paid for it, + it may be insecure to use the standard password. For more security, you should use own + password. To do this, specify it in the Crypter.DefaultPassword property. + + This example demonstrates how to change a connection string: + + OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(oleDbConnection1.ConnectionString); + builder.PersistSecurityInfo = false; + oleDbConnection1.ConnectionString = builder.ToString(); + + + + + + Gets or sets an expression that returns a connection string. + + + Use this property to set the connection string dynamically. + The recommended way to do this is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the connection. Set the ConnectionStringExpression property of the + connection object to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + + Once you set value for this property, the property will be ignored + when report is run. + + + + + + Gets or sets a value indicates if this connection is SQL-based. + + + + + Gets or sets a value indicating whether a login dialog appears immediately before opening a connection. + + + Set LoginPrompt to true to provide login dialog when establishing a connection. If this + property is false (by default), you should provide login information (user name and password) + in the property. Though that property is stored in a crypted form, + this may be insecure. + Another way to pass login information to the connection is to use + property that is bound to the report parameter. In that + case you supply the entire connection string from your application. + + + + + Gets or sets the command timeout, in seconds. + + + + + + + + Initializes a DataSet instance. + + The DataSet object. + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Disposes a DataSet. + + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Sets the connection string. + + New connection string. + + Use this method if you need to perform some actions when the connection string is set. + + + + + Gets a connection string that contains username and password specified. + + User name. + Password. + + Override this method to pass login information to the connection. Typical implementation + must get the existing , merge specified login information into it + and return the new value. + + + + + + + + + + + + + + + + + + + + + + + + + + Fills the collection with all tables available in the database. + + + This method does not read the table data; to do this, call the + method of each table. + + + + + Fills the collection with all tables available in the database. + + Set to true to initialize each table's schema. + + + + Creates the relations between tables. Applies to XmlDataConnection only. + + + + + Gets an array of table names available in the database. + + An array of strings. + + + + Returns a type of connection. + + Type instance. + + You should override this method if you developing a new connection component. + If your connection component does not use data connection, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override Type GetConnectionType() + { + return typeof(OleDbConnection); + } + + + + + + Returns a connection object. + + The DbConnection instance. + Either creates a new DbConnection instance of type provided by the + method, or returns the application connection if set + in the Config.DesignerSettings.ApplicationConnection. + + + + Opens a specified connection object. + + Connection to open. + + Use this method to open a connection returned by the method. + This method displays a login dialog if your connection has the + property set to true. Once you have entered an user name and password in + this dialog, it will remeber the entered values and will not used anymore in this report session. + + + + + Disposes a connection. + + The connection to dispose. + + + + Returns a object that is specific to this connection. + + The SQL command used to fetch a table data rows. + The connection object. + The select command parameters. + The DbDataAdapter object. + + You should override this method if you are developing a new connection component. In this method, + you need to create the adapter and set its SelectCommand's parameters. + If your connection does not use data adapter, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, + CommandParameterCollection parameters) + { + OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection as OleDbConnection); + foreach (CommandParameter p in parameters) + { + OleDbParameter parameter = adapter.SelectCommand.Parameters.Add(p.Name, (OleDbType)p.DataType, p.Size); + parameter.Value = p.Value; + } + return adapter; + } + + + + + + Gets the type of parameter that is specific to this connection. + + The parameter's type. + + This property is used in the report designer to display available data types when you edit the + connection parameters. For example, the type of OleDbConnection parameter is a OleDbType. + + + + + Quotes the specified DB identifier such as table name or column name. + + Identifier to quote. + The opened DB connection. + The quoted identifier. + + + + Fills the table schema. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table schema. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Fills the table data. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table data. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Creates table. + For internal use only. + + + + + Deletes table. + For internal use only. + + + + + Clone table. + For internal use only. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data components such as data sources, columns. + + + + + + + + Gets or sets alias of this object. + + + Alias is a human-friendly name of this object. It may contain any symbols (including + spaces and national symbols). + + + + + Gets or sets a value indicates that object is enabled and thus can be used in a report. + + + This property is used to hide an object from the Data Dictionary window. Hidden + objects are still accessible in the "Data|Choose Data Source..." menu. + + + + + Gets or sets a name of the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets or sets a reference to the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a value indicates that this object has an alias. + + + + + + + + + + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to csv file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + CsvDataConnection conn = new CsvDataConnection(); + conn.CsvFile = @"c:\data.csv"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of the .csv file. + + + + + Gets or sets the separator of the .csv file. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types fhould be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Obsolete. Specifies a set of flags used to convert business objects into datasources. + + + + + Specifies no actions. + + + + + Allows using the fields of a business object. + + + + + Allows using properties of a business object with BrowsableAttribute only. + + + + + Specifies a kind of property. + + + + + Specifies the property of a simple type (such as integer). + + + + + Specifies the complex property such as class with own properties. + + + + + Specifies the property which is a list of objects (is of IEnumerable type). + + + + + Represents a datasource based on business object of IEnumerable type. + + + Do not use this class directly. To register a business object, use the + Report.RegisterData method. + + + + + Occurs when FastReport engine loads data source with data from a business object. + + + Use this event if you want to implement load-on-demand. Event handler must load the data into + your business object. + + + + + + + + + + + + + + + + + + + + Represents the method that will handle the LoadBusinessObject event. + + The source of the event. + The event data. + + + + Provides data for event. + + + + + Parent object for this data source. + + + + + Specifies the format for the column value. + + + + + The format will be determined automatically depending on the column's DataType. + + + + + Specifies the General format (no formatting). + + + + + Specifies the Number format. + + + + + Specifies the Currency format. + + + + + Specifies the Date format. + + + + + Specifies the Time format. + + + + + Specifies the Percent format. + + + + + Specifies the Boolean format. + + + + + Specifies the type of an object that will be created when you drop the + data column on a report page. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the custom object, specified in the + property. + + + + + Represents the collection of objects. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + Finds a column by its name. + + The name of a column. + The object if found; otherwise null. + + + + Finds a column by its alias. + + The alias of a column. + The object if found; otherwise null. + + + + Returns an unique column name based on given name. + + The base name. + The unique name. + + + + Returns an unique column alias based on given alias. + + The base alias. + The unique alias. + + + + Sorts the collection of columns. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of columns. + + + + + + + + This class represents a single parameter to use in the "select" command. + + + + + Gets or sets the parameter's data type. + + + + + Gets or sets the size of parameter's data. + + + This property is used if the property is set to String. + + + + + Gets or sets an expression that returns the parameter's value. + + + If this property is not set, the property will be used + to obtain a parameter's value. + + + + + Gets or sets a default value for this parameter. + + + This value is used when you designing a report. Also it is used when report is running + in case if you don't provide a value for the property. + + + + + Gets or sets the parameter's value. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + This class is used to store the list of parameters defined in the datasource. See the + property for more details. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a data connection. + + The index of a data connection in this collection. + The data connection with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the CsvDataConnection connection string builder. + + + Use this class to parse connection string returned by the CsvDataConnection class. + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of .csv file. + + + + + Gets or sets the separator. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types should be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified connection string. + + The connection string. + + + + Base class for all CubeSources such as . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a CubeSource by its name. + + The name of a CubeSource. + The object if found; otherwise null. + + + + Finds a CubeSource by its alias. + + The alias of a CubeSource. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Base class for all datasources such as . + + + + + Occurs when the FastReport engine loads data source with data. + + + Use this event if you want to implement load-on-demand. Event handler must load the data + into the data object which this datasource is bound to (for example, the + TableDataSource uses data from the DataTable object bound to + the Table property). + + + + + Gets a number of data rows in this datasource. + + + You should initialize the datasource by the Init method before using this property. + + + + + Gets a value indicating that datasource has more rows, that is the + is less than the . + + + You should initialize the datasource by the Init method before using this property. + Usually this property is used with the following code block: + + dataSource.Init(); + while (dataSource.HasMoreRows) + { + // do something... + dataSource.Next(); + } + + + + + + Gets the current data row. + + + This property is updated when you call the method. + + + + + Gets an index of current data row. + + + You should initialize the datasource by the Init method before using this property. + This property is updated when you call the method. + + + + + Gets data stored in a specified column. + + Alias of a column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Gets data stored in a specified column. + + The column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Forces loading of data for this datasource. + + + This property is false by default. Set it to true if you need to reload data + each time when the datasource initialized. Note that this may slow down the performance. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the additional filter settings. + + + + + Gets data stored in a specified column. + + The column alias. + An object that contains the data. + + + + Gets data stored in a specified column. + + The column. + An object that contains the data. + + + + Initializes the datasource schema. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + + + + Loads the datasource with data. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + Rows to fill with data. + + + + Initializes this datasource. + + + This method fills the table with data. You should always call it before using most of + datasource properties. + + + + + Initializes this datasource and applies the specified filter. + + The filter expression. + + + + Initializes this datasource, applies the specified filter and sorts the rows. + + The filter expression. + The collection of sort descriptors. + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. + + Parent datasource. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. Also applies the specified filter and sorts the rows. + + Parent datasource. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation. + Also applies the specified filter and sorts the rows. + + The master-detail relation. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes the data source if it is not initialized yet. + + + + + Navigates to the first row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the next row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the prior row. + + + You should initialize the datasource by the Init method before using this method. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a datasource by its name. + + The name of a datasource. + The object if found; otherwise null. + + + + Finds a datasource by its alias. + + The alias of a datasource. + The object if found; otherwise null. + + + + Sorts data sources by theirs names. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of data sources. + + + + + + + + Determines how to filter the data value. + + + The "Data value" is a value contained in the datasource which you filter. + The "Selected value" is a value you have entered or selected in the dialog control. + + + + + Data value is equal to selected value. + + + + + Data value is not equal to selected value. + + + + + Data value is less than selected value. + + + + + Data value is less than or equal to selected value. + + + + + Data value is greater than selected value. + + + + + Data value is greater than or equal to selected value. + + + + + Data string contains selected value. + + + + + Data string does not contain selected value. + + + + + Data string starts with selected value. + + + + + Data string does not start with selected value. + + + + + Data string ends with selected value. + + + + + Data string does not end with selected value. + + + + + This class stores all report data items such as datasources, connections, relations, parameters, + system variables. + + + You can access the report dictionary via Report.Dictionary property. + + + + + Gets a collection of connection objects available in a report. + + + + + Gets a collection of datasources available in a report. + + + Usually you don't need to use this property. It contains only datasources + registered using the RegisterData method. All other datasources are contained + in connection objects and may be accessed via property. + + + + + Gets a collection of relations. + + + + + Gets a collection of parameters. + + + Another way to access parameters is to use the Report.Parameters property + which is actually a shortcut to this property. You also may use the Report.GetParameter + and Report.GetParameterValue methods. + + + + + Gets a collection of system variables like Date, PageNofM etc. + + + Another way to access a system variable is to use the Report.GetVariableValue method. + + + + + Gets a collection of totals. + + + Another way to get a total value is to use the Report.GetTotalValue method. + + + + + Gets a collection of cubesources available in a report. + + + Usually you don't need to use this property. It contains only cubesources + registered using the RegisterData method. + + + + + Gets a list of registered items. + + + This property is for internal use only. + + + + + + + + Registers a DataView. + + The DataView to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a business object. + + The business object. + The name of the object. + Maximum level of data nesting. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a CubeLink. + + The CubeLink to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a data object. + + The object to register. + The name of the object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Unregisters the previously registered data. + + The application data. + + + + Unregisters the previously registered data. + + The application data. + The name of the data. + + You must specify the same data and name as when you call RegisterData. + + + + + Re-registers the data registered before. + + + This method is for internal use only. + + + + + Re-registers the data registered before. + + + + + + Clears all registered data. + + + + + Enables or disables relations between data tables. + + + Call this method if you create master-detail report from code. This method enables + relation between two data tables which Enabled flag is set to true. Relations + whose parent and child tables are disabled, gets disabled too. + + + + + Creates unique name for data item such as connection, datasource, relation, parameter or total. + + The base name. + The new unique name. + + Use this method to create unique name of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new parameter: + + Report report1; + Parameter par = new Parameter(); + par.Name = report1.Dictionary.CreateUniqueName("Parameter"); + report1.Parameters.Add(par); + + + + + + + Creates unique alias for data item such as connection, datasource or relation. + + The base alias. + The new unique alias. + + Use this method to create unique alias of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new table: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = report1.Dictionary.CreateUniqueName("EmployeesTable"); + table.Alias = report1.Dictionary.CreateUniqueAlias("Employees"); + conn.Tables.Add(table); + + + + + + + Finds a data item such as connection, datasource, relation, parameter or total by its name. + + The item's name. + The data item if found; otherwise, null. + + + + Finds a data item such as connection, datasource or relation by its alias. + + The item's alias. + The data item if found; otherwise, null. + + + + Finds a datasource that matches the specified DataTable. + + The DataTable object to check. + The DataSourceBase object if found. + + This method is for internal use only. + + + + + Finds a data component that matches the specified reference name. + + The name to check. + The DataComponentBase object if found. + + This method is for internal use only. + + + + + + + + + + + Saves the dictionary to a stream. + + Stream to save to. + + + + Saves the dictionary to a file. + + The name of a file to save to. + + + + Loads the dictionary from a stream. + + The stream to load from. + + + + Loads the dictionary from a file. + + The name of a file to load from. + + + + Merges this dictionary with another Dictionary. + + Another dictionary to merge the data from. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the item registered in a dictionary. + + + + + Gets the item data. + + + + + Gets the item name. + + + + + Represents a report parameter that is used to pass user data to a report. + + + See for details about using parameters. + + + + + Gets or sets the name of parameter. + + + + + Gets or sets the type of parameter. + + + + + Gets or sets the value of parameter. + + + You may specify the static value in this property. Note: if the + property is not empty, it will be calculated and its value will be returned. + + + + + Gets or sets value of the parameter as a string. + + + + + Gets or sets an expression of the parameter. + + + This expression will be calculated each time you access a parameter's Value. + + + + + Gets or sets the description of a parameter. + + + + + Gets a collection of nested parameters. + + + Parameters can have child (nested) parameters. To get or set a nested + parameter's value, use the method. + + + + + Gets the full name of the parameter. This is useful to get the nested parameter's full name. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified name. + + + + + Represents the collection of objects. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Copies the parameters from other collection. + + Parameters to copy from. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a relation. + + The index of a relation in this collection. + The relation with specified index. + + + + Finds a relation by its name. + + The name of a relation. + The object if found; otherwise null. + + + + Finds a relation by its alias. + + The alias of a relation. + The object if found; otherwise null. + + + + Finds a relation that is equal to specified one. + + Another relation to compare with. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Represents the collection of system variables. + + + + + Represents the base class for system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Returns date and time of the report's start. + + + + + + + + Returns current page number. + + + + + + + + Returns total number of pages in the report. To use this variable, you need + to enable the report's double pass. + + + + + + + + Returns a string containing the current page number in a form "Page N". + + + + + + + + Returns a string containing the current page number and total pages in a form "Page N of M". + To use this variable, you need to enable the report's double pass. + + + + + + + + Returns data row number inside the group. This value is reset at the start of a new group. + + + + + + + + Returns absolute number of data row. This value is never reset at the start of a new group. + + + + + + + + Returns current page number. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the number of total pages in the report. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the name of the printed copy. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns a level of hierarchy in the hierarchical report. + + + + + + + + Returns the row number like "1.2.1" in the hierarchical report. + + + + + + + + Represents the collection of objects. + + + + + Gets or sets a data table. + + The index of a data table in this collection. + The data table with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Specifies the total type. + + + + + The total returns sum of values. + + + + + The total returns minimal value. + + + + + The total returns maximal value. + + + + + The total returns average value. + + + + + The total returns number of values. + + + + + The total returns number of distinct values. + + + + + Represents the collection of objects. + + + + + Gets or sets a total. + + The index of a total in this collection. + The total with specified index. + + + + Finds a total by its name. + + The name of a total. + The object if found; otherwise null. + + + + Returns an unique total name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Gets the underlying DataView object. + + + + + + + + + + + + + + + + + Represents the XmlDataConnection connection string builder. + + + Use this class to parse connection string returned by the XmlDataConnection class. + + + + + Gets or sets the path to .xml file. + + + + + Gets or sets the path to .xsd file. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + Allows working with JsonObject + + + + + Returns child object for JsonArray + + + + + + + Returns child object for JsonObject + + + + + + + Returns count of child object + + + + + Returns true if this object is JsonArray + + + + + Returns true if this object is JsonObject + + + + + Returns list of JsonObject keys + + + + + Pars json text string and return a new JsonBase Object + + + + + + + returns true + + + + + + + Serialize this object to sb + + + + indent in space, 0 = without indent + + + + Based on code of Stefan Bцther, xprocs@hotmail.de + + + + + Contains standard functions registered in the "Data" window. + + + + + Returns the larger of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the smaller of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns an integer value representing the character code corresponding to a character. + + Character to convert. + The character code. + + + + Returns the character associated with the specified character code. + + Character code to convert. + The character. + + + + Inserts a specified string at a specified index position in the original string. + + The original string. + The index position of the insertion. + The string to insert. + A new string. + + + + Gets the number of characters in a string. + + The original string. + The number of characters. + + + + Converts a specified string to lowercase. + + The string to convert. + A string in lowercase. + + + + Right-aligns the characters in a string, padding with spaces on the left for a specified total length. + + The original string. + The number of characters in the resulting string. + Right-aligned string, padded on the left with spaces. + + + + Right-aligns the characters in a string, padding on the left with a specified character + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Right-aligned string, padded on the left with padding characters. + + + + Left-aligns the characters in a string, padding with spaces on the right, for a specified total length. + + The original string. + The number of characters in the resulting string. + Left-aligned string, padded on the right with spaces. + + + + Left-aligns the characters in a string, padding on the right with a specified character, + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Left-aligned string, padded on the right with padding characters. + + + + Converts the specified string to titlecase. + + The string to convert. + A new string. + + + + Deletes all the characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + A new string. + + + + Deletes a specified number of characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + The number of characters to delete. + A new string. + + + + Replaces all occurrences of a specified string in the original string, with another specified string. + + The original string. + A string to be replaced. + A string to replace all occurrences of oldValue. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position. + + The original string. + The starting character position of a substring. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position, + with a specified length. + + The original string. + The starting character position of a substring. + The number of characters in the substring. + A new string. + + + + Removes all occurrences of white space characters from the beginning and end of the original string. + + The original string. + A new string. + + + + Converts a specified string to uppercase. + + The string to convert. + A string in uppercase. + + + + Adds the specified number of days to the original date. + + The original date. + A number of whole and fractional days. + A new DateTime value. + + + + Adds the specified number of hours to the original date. + + The original date. + A number of whole and fractional hours. + A new DateTime value. + + + + Adds the specified number of minutes to the original date. + + The original date. + A number of whole and fractional minutes. + A new DateTime value. + + + + Adds the specified number of months to the original date. + + The original date. + A number of months. + A new DateTime value. + + + + Adds the specified number of seconds to the original date. + + The original date. + A number of whole and fractional seconds. + A new DateTime value. + + + + Adds the specified number of years to the original date. + + The original date. + A number of years. + A new DateTime value. + + + + Subtracts the specified date and time from the original date. + + The original date. + The date and time to subtract. + A TimeSpan interval between two dates. + + + + Initializes a new instance of the DateTime. + + The year. + The month. + The day. + A new DateTime value. + + + + Gets the day of the month. + + The date value. + The day component. + + + + Gets the localized name of the day of the week. + + The date value. + The name of the day of the week. + + + + Gets the day of the year. + + The date value. + The day of the year. + + + + Returns the number of days in the specified month and year. + + The year. + The month. + The number of days in month for the specified year. + + + + Gets the hour component of the date. + + The date. + The hour component. + + + + Gets the minute component of the date. + + The date. + The minute component. + + + + Gets the month component of the date. + + The date. + The month component. + + + + Gets the localized month name. + + The month number. + The month name. + + + + Gets the seconds component of the date. + + The date. + The seconds component. + + + + Gets the week of the year. + + The date value. + The week of the year. + + + + Gets the year component of the date. + + The date. + The year component. + + + + Replaces the format item in a specified String with the text equivalent of the value of a + corresponding Object instance in a specified array. + + A String containing zero or more format items. + An Object array containing zero or more objects to format. + A copy of format in which the format items have been replaced by the String equivalent of the corresponding instances of Object in args. + + + + Returns a string formatted as a currency value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a currency value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The format specifier, one of the + "Long Date", "Short Date", "Long Time", "Short Time" values. + The formatted string. + + + + Returns a string formatted as a numeric value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a numeric value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a percent value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a percent value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Converts a numeric value to Roman string representation. + + Integer value in range 0-3998. + The string in Roman form. + + + + Converts a currency value to an english (US) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (US) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (US) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (GB) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a russian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "страница". + The name in plural form, for example "страницы". + The name in plural form, for example "страниц". + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a german string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a french string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a dutch string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + the currency value to convert + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "INR". + + + + + Converts a numeric value to a indian numbering system string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a currency value to a ukrainian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "UAH". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "сторінка". + The name in plural form, for example "сторінки". + The name in plural form, for example "сторінок". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a spanish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a persian representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a polish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Selects and returns a value from a list of arguments. + + A value between 1 and the number of elements passed in the "choice" argument. + Object parameter array. + One of the values in the "choice" argument. + + + + Returns one of two objects, depending on the evaluation of an expression. + + The expression you want to evaluate. + Returned if Expression evaluates to True. + Returned if Expression evaluates to False. + Either truePart os falsePart. + + + + Evaluates a list of expressions and returns a value corresponding to the first + expression in the list that is True. + + Parameter array consists of paired expressions and values. + The value corresponding to an expression which returns true. + + + + Checks if the specified object is null. + + The report instance. + Either a name of DB column, or a parameter name, or a total name to check. + true if the object's value is null. + + + + The FastReport.dll assembly initializer. + + + + + Registers all standard objects, wizards, export filters. + + + + + Base class for all bands. + + + + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This event occurs before the band layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a value indicating that the band should be printed from a new page. + + + New page is not generated when printing very first group or data row. This is made to avoid empty + first page. + + + + + Gets or sets a value that determines the number of repetitions of the same band. + + + + + Gets or sets a value indicating that the first row can start a new report page. + + + Use this property if is set to true. Normally the new page + is not started when printing the first data row, to avoid empty first page. + + + + + Gets or sets a value indicating that the band should be printed on the page bottom. + + + + + Gets or sets a value indicating that the band should be printed together with its child band. + + + + + Gets or sets an outline expression. + + + + Outline is a tree control displayed in the preview window. It represents the prepared report structure. + Each outline node can be clicked to navigate to the item in the prepared report. + + + To create the outline, set this property to any valid expression that represents the outline node text. + This expression will be calculated when band is about to print, and its value will be added to the + outline. Thus, nodes' hierarchy in the outline is similar to the bands' hierarchy + in a report. That means there will be the main and subordinate outline nodes, corresponding + to the main and subordinate bands in a report (a report with two levels of data or with groups can + exemplify the point). + + + + + + Gets or sets a child band that will be printed right after this band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + Gets a collection of report objects belongs to this band. + + + + + Gets a value indicating that band is reprinted on a new page. + + + This property is applicable to the DataHeaderBand and GroupHeaderBand only. + It returns true if its RepeatOnAllPages property is true and band is + reprinted on a new page. + + + + + Gets or sets a script event name that will be fired before the band layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + Gets or sets collection of guide lines for this band. + + + + + Gets a row number (the same value returned by the "Row#" system variable). + + + This property can be used when running a report. It may be useful to print hierarchical + row numbers in a master-detail report, like this: + 1.1 + 1.2 + 2.1 + 2.2 + To do this, put the Text object on a detail data band with the following text in it: + [Data1.RowNo].[Data2.RowNo] + + + + + Gets an absolute row number (the same value returned by the "AbsRow#" system variable). + + + + + Gets a value indicating that this is the first data row. + + + + + Gets a value indicating that this is the last data row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Specifies an origin where the new objects inserted from. + + + + + Specifies that a new object was inserted from the "Objects" toolbar or "Insert" menu. + + + + + Specifies that a new object was dragged from the "Dictionary" window. + + + + + Specifies that a new object was pasted from the clipboard. + + + + + Represents the root class of the FastReport object's hierarhy. + + + + + Gets a value indicating whether the object is selected in the designer. + + + + + Gets a value indicating whether one of the object's parent is selected in the designer. + + + + + Deletes the object in the designer. + + + This method is called when you delete the object in the designer. + Typically this method calls the method to delete the object and all + its children. You may override it to delete the object only, and keep children. + + + + + Called before inserting a new object in the designer. + + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + Some objects are registered in the designer several times with the same object + type, but different flags. For example, the + represents different shapes: rectangle, roundrect, ellipse and so on. All these + shapes are registered in the designer using flags (the last parameter in this + code): + + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 108, "Objects,Shapes,Rectangle", 0); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 109, "Objects,Shapes,RoundRectangle", 1); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 110, "Objects,Shapes,Ellipse", 2); + + When we put the "Ellipse" object on a band, the designer creates the + ShapeObject instance and calls its OnBeforeInsert method with + flags value set to 2. In turn, the OnBeforeInsert method converts the + int value of the flags to the shape kind: + + public override void OnBeforeInsert(int flags) + { + FShape = (ShapeKind)flags; + } + + + + Object's flags. + + + + Called after the new object was inserted in the designer. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + This method is called when new object is inserted, pasted from clipboard or dragged from + "Dictionary" window. You may override this method if you need to perform some actions when object + is inserted. Typical implementation invokes the object's editor if "Edit after insert" flag is set + in the designer options. + + The insertion source. + + + + Called when the user selects another object in the designer. + + + This method is typically used by the in-place object's editor to check if selection was changed and close + the editor. + + + + + Gets the object's context menu. + + Null reference if object does not have a menu. + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + You may use base menu classes such as , + to create own context menus. + + + + + Gets or sets the name of the object. + + + Name of the report object must contain alpha, digit, underscore symbols only. + Data objects such as Variable, TableDataSource + etc. can have any characters in they names. Each component must have unique + name. + + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + + + Another object with such name exists. + Rename an object that was introduced in the ancestor report. + + + + Gets or sets the flags that restrict some actions in the designer. + + + Use this property to restrict some user actions like move, resize, edit, delete. For example, if + Restriction.DontMove flag is set, user cannot move the object in the designer. + + + + + Gets the flags that allow some functionality in the designer. + + + Use this property only if you developing a new FastReport object. + + + + + Gets or sets the parent of the object. + + + Each report object must have a parent in order to appear in the report. Parent must be able to + contain objects of such type. + Another way (preferred) to set a parent is to use specific properties of the parent object. + For example, the object has the collection. + To add a new page to the report, use the following code: report1.Pages.Add(new ReportPage()); + + + + Report report1; + ReportPage page = new ReportPage(); + page.Parent = report1; + + Parent object cannot contain this object. + + + + The base part of the object's name. + + + This property is used to automatically create unique object's name. See + + + + + Gets the short type name. + + + Returns the short type name, such as "TextObject". + + + + + Gets reference to the parent object. + + + + + Gets reference to the parent object. + + + + + Gets the collection of this object's child objects. + + + This property returns child objects that belongs to this object. For example, Report.ChildObjects + will return only pages that contains in the report, but not page childs such as bands. To return all + child objects, use property. + + + + + Gets the collection of all child objects. + + + This property returns child objects that belongs to this object and to child objects of this object. + For example, Report.AllObjects will return all objects that contains in the report - such as + pages, bands, text objects. + + + + + Gets or sets the Z-order of the object. + + + The Z-order is also called "creation order". It is the index of an object in the parent's objects list. + For example, put two text objects on a band. First object will have ZOrder = 0, second = 1. Setting the + second object's ZOrder to 0 will move it to the back of the first text object. + + + + + Gets a value indicating whether the object was introduced in the ancestor report. + + + + + Gets a value indicating whether the object is in the design state. + + + + + Gets a value indicating whether the object is currently printing. + + + + + Gets a value indicating whether the object is currently processed by the report engine. + + + + + Gets an original component for this object. + + + This property is used in the preview mode. Each object in the prepared report is bound to its + original (from the report template). This technique is used to minimize the prepared report's size. + + + + + Helper method, helps to set a reference-type value to the property. + + Old property value. + New property value. + + This method is used widely to set a new value to the property that references another FastReport object. + Method deals with the property. + + This is example of the DataBand.Header property: + public DataHeaderBand Header + { + get { return FHeader; } + set + { + SetProp(FHeader, value); + FHeader = value; + } + } + + + + + Checks if two float values are different. + + First value. + Second value. + true if values are not equal. + + This method is needed to compare two float values using some precision (0.001). It is useful + to compare objects' locations and sizes for equality. + + + + + Deserializes nested object properties. + + Reader object. + + Typically the object serializes all properties to the single xml item: + + <TextObject Name="Text2" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + + Some objects like have child objects that serialized in subitems: + + <DataBand Name="Data1" Top="163" Width="718.2" Height="18.9"> + <TextObject Name="Text3" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + </DataBand> + + To read such subitems, the DeserializeSubItems method is used. Base + implementation reads the child objects. You may override it to read some specific subitems. + + The following code is used to read report's styles: + + protected override void DeserializeSubItems(FRReader reader) + { + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else + base.DeserializeSubItems(reader); + } + + + + + + Replaces the macros in the given string and returns the new string. + + The text containing macros. + The text with macros replaced with its values. + + + + + + + Set object's flags. + + Flag to set. + true to set the flag, false to reset. + + + + Sets the reference to a Report. + + Report to set. + + + + Sets the object's name. + + + This method is for internal use only. It just sets a new name without any checks + (unlike the property setter). + + Name Property + New name. + + + + Sets the object's parent. + + + This method is for internal use only. You can use it if you are developing a new + component for FastReport. Override it to perform some actions when the parent of an + object is changing. This method checks that parent can contain a child. + + Parent object cannot contain this object. + New parent. + + + + Sets the object's parent. + + New parent. + + This method is for internal use only. You can use it if you are developing a new component for FastReport. + This method does not perform any checks, it just sets the new parent. + + + + + Searches for an object with given name. + + Name of the object to find. + Returns a null reference if object is not found + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + if (text1 != null) + { + // object found + } + + + + + + Creates the unique object's name. + + + Note: you have to set object's parent before calling this method. Method uses the + property to create a name. + Note: this method may be very slow on a report that contains lots of objects. Consider + using own naming logic in this case. + + + + TextObject textObj = new TextObject(); + dataBand1.Objects.Add(textObj); + textObj.CreateUniqueName(); + + + + + + Clears the object's state. + + + This method also disposes all object's children. + + + + + Serializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to save the state. It may happen + when: + + + saving the report to the file or stream; + + + saving the report to the designer's undo buffer; + + + + assigning the object to another object using the + or AssignAll methods; + + + + saving the object to the designer's clipboard; + + + saving the object to the preview (when run a + report). + + + + Writer object. + + + + Deserializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to restore the state. It may + happen when: + + + loading the report from a file or stream; + + + loading the report from the designer's undo + buffer; + + + assigning another object to this object using the + or AssignAll methods; + + + loading the object from the designer's + clipboard; + + loading the object from the preview pages. + + + Reader object. + + + + Assigns values from another source. + + + Note: this method is relatively slow because it serializes + an object to the xml and then deserializes it. + + Source to assign from. + + + Copies the contents of another, similar object. + + Call Assign to copy the properties from another object of the same type. + The standard form of a call to Assign is + destination.Assign(source); + + which tells the destination object to copy the contents of the + source object to itself. In this method, all child objects are + ignored. If you want to copy child objects, use the + AssignAll method. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings, do not copy report objects + report2.Assign(report1); + + AssignAll Method + Source object to copy the contents from. + + + Copies the contents (including children) of another, similar object. + + + This method is similar to method. It copies child + objects as well. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings and objects + report2.AssignAll(report1); + + + Source object to copy the state from. + + + + Gets a value indicating whether the object has the specified parent in its parent hierarhy. + + Parent object to check. + Returns true if the object has given parent in its parent hierarhy. + + + + Gets a value indicating whether the object has a specified flag in its property. + + Flag to check. + true if Flags property contains specified flag. + + + + Gets a value indicating whether the object has a specified restriction + in its property. + + Restriction to check. + true if Restrictions property contains specified restriction. + + + + Invokes script event. + + Name of the event to invoke. + Event parameters. + + Do not call this method directly. You should use it if you are developing a new component + for FastReport. + Use this method to call an event handler that is located in the report's script. + + Example of the OnBeforePrint method: + public void OnBeforePrint(EventArgs e) + { + if (BeforePrint != null) + BeforePrint(this, e); + InvokeEvent(BeforePrintEvent, e); + } + + + + + Called after all report objects were loaded. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + + + + + Gets all expressions contained in the object. + + Array of expressions or null if object contains no expressions. + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + This method is called by FastReport each time before run a report. FastReport + do this to collect all expressions and compile them. For example, + GetExpressions method of the class + parses the text and returns all expressions found in the text. + + + + + + Returns a custom code that will be added to the report script before report is run. + + A custom script text, if any. Otherwise returns null. + + This method may return any valid code that may be inserted into the report script. Currently it is + used in the TableObject to define the following script methods: Sum, Min, Max, Avg, Count. + + + Note: you must take into account the current script language - C# or VB.Net. You may check it via + Report.ScriptLanguage property. + + + + + + Used to extract macros such as "TotalPages#" in the preview mode. + + + This method is used mainly by the TextObject to extract macros and replace it with + actual values passed in the pageIndex and totalPages parameters. This method + is called automatically when the object is being previewed. + + + + + Used to get information of the need to convertation if the function returns true, then the GetConvertedObjects function is called + + The export or the object, that call this method + By default returns false + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Used to get an enumeration of the objects to which this object will be converted, before calling this function, the IsHaveToConvert function will be called + + By default returns this object + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Gets the collection of all child objects, converts objects if necessary + + the object or export, that call this convertation + + + + Initializes a new instance of the Base class with default settings. + + + + + This class represents the context menu of the . + + + This class adds the "Can Break" menu item to the component context menu. + + + + + The "Can Break" menu item. + + + + + Initializes a new instance of the BreakableComponentMenu class with default settings. + + + + + Represents a text object which draws each symbol of text in its own cell. + + + The text may be aligned to left or right side, or centered. Use the + property to do this. The "justify" align is not supported now, as well as vertical alignment. + The cell size is defined in the and properties. + These properties are 0 by default, in this case the size of cell is calculated automatically based + on the object's Font. + To define a spacing (gap) between cells, use the and + properties. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets or sets the width of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the height of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the horizontal spacing between cells, in pixels. + + + + + Gets or sets the vertical spacing between cells, in pixels. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents a check box object. + + + + + + + + + + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the unchecked state. + + + + + Gets or sets a color of the check symbol. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "[Datasource.Column]". + + + + + Gets or sets an expression that determines whether to show a check. + + + + + Gets or sets the check symbol width ratio. + + + Valid values are from 0.2 to 2. + + + + + Gets or sets a value determines whether to hide the checkbox if it is in the unchecked state. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the CheckBoxObject class with default settings. + + + + + This class represents a child band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + + + + + + + Gets or sets a value indicating that band will be used to fill unused space on a page. + + + If you set this property to true, the band will be printed several times to fill + unused space on a report page. + + + + + Gets or sets a value that determines the overall number of data rows printed by the data band. + + + Using this property, you may complete the data band upto N data rows. + If the data band has less number of rows, this band will be used to print empty rows. + + + + + Gets or sets a value indicating that the band will be printed if its parent databand is empty. + + + The child band with this property set to true, connected to a databand can be used to print "No data" + text if the databand has no rows. + + + + + + + + + + + Returns true, if compilation is successful + + + + + Handle compile errors + + Returns true if all errors were handled + + + + Returns true, if recompilation is successful + + + + + This class is used to pass find arguments to some methods of the CodeUtils class. + + + + + The start position of the search. After the search, this property points to + the begin of an expression. + + + + + After the search, this property points to the end of an expression. + + + + + The char sequence used to find the expression's begin. + + + + + The char sequence used to find the expression's end. + + + + + The text with embedded expressions. + + + + + The last found expression. + + + + + This static class contains methods that may be used to find expressions embedded + in the object's text. + + + + + Returns expressions found in the text. + + Text that may contain expressions. + The char sequence used to find the start of expression. + The char sequence used to find the end of expression. + Array of expressions if found; otherwise return an empty array. + + + + Gets first expression found in the text. + + Object with find arguments. + Indicates whether to skip strings. + The expression if found; otherwise, returns an empty string. + + + + Class that implements some object's properties such as location, size and visibility. + + + + + Corrects the object's size and sizing point if the size becomes negative. + + Current mouse state. + Typically you don't need to use or override this method. + This method is called by the FastReport designer to check if the object's size becomes negative + when resizing the object by the mouse. Method must correct the object's size and/or position to + make it positive, also change the sizing point if needed. + + + + Checks if the object is inside its parent. + + if true, check now independent of any conditions. + + Typically you don't need to use or override this method. + When you move an object with the mouse, it may be moved outside its parent. If so, this method + must find a new parent for the object and correct it's Left, Top and Parent + properties. If immediately parameter is false, you can optimize the method + to search for new parent only if the object's bounds are outside parent. If this parameter is + true, you must skip any optimizations and search for a parent immediately. + + + + + Draws the object. + + Paint event args. + + This method is widely used in the FastReport. It is called each time when the object needs to draw + or print itself. + In order to draw the object correctly, you should multiply the object's bounds by the scale + parameter. + cache parameter is used to optimize the drawing speed. It holds all items such as + pens, fonts, brushes, string formats that was used before. If the item with requested parameters + exists in the cache, it will be returned (instead of create new item and then dispose it). + + + + + Draw the frame around the object to indicate that it accepts the drag&drop operation. + + Paint event args. + The color of frame. + + + + Draw the selection points. + + Paint event args. + + This method draws a set of selection points returned by the method. + + + + + + + + Gets the preferred size of an object. + + Preferred size. + + This method is called by the FastReport designer when you insert a new object. + + + + + Returns a "smart tag" menu. + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + + + Handles double click event in the designer. + + + This method is called when the user doubleclicks the object in the designer. Typical implementation + invokes the object's editor (calls the InvokeEditor method) and sets the designer's + Modified flag. + + + + + Handles the DragDrop event in the designer. + + Current mouse state. + + This method is called when the user drops an item from the Data Tree window into this object. + This method should copy the information from the e.DraggedObject object and set the + e.Handled flag to true to complete the drag operation. + + + + + Handles the DragOver event in the designer. + + Current mouse state. + + This method is called when the user drags an item from the Data Tree window. This method should + check that the mouse (e.X, e.Y) is inside the object, then set the e.Handled flag + to true if an item can be dragged into this object. + + + + + Handles KeyDown event in the designer. + + The designer's workspace. + Keyboard event parameters. + + This method is called when the user presses any key in the designer. Typical implementation + does nothing. + + + + + Handles MouseDown event that occurs when the user clicks the mouse in the designer. + + + This method is called when the user press the mouse button in the designer. + The standard implementation does the following: + + checks if the mouse pointer is inside the object; + add an object to the selected objects list of the designer; + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. Typical + use of this method is to change the mouse cursor to SizeAll when it is over + an object. The standard implementation does the following: + + checks if the mouse pointer is inside the object; + changes the cursor shape (e.Cursor property); + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. The + standard implementation does the following: + + + if mouse button is not pressed, check that mouse pointer is inside one of + the selection points returned by the + method and set the e.SizingPoint member to the corresponding sizing + point; + + if mouse button is pressed, and e.SizingPoint member is not + SizingPoint.None, resize the object. + + + Current mouse state. + + + + Handles MouseUp event that occurs when the user releases the mouse button in the designer. + + + This method is called when the user releases the mouse button in the + designer. The standard implementation does the following: + + if e.Mode is WorkspaceMode2.SelectionRect, checks if object + is inside the selection rectangle and sets e.Handled flag if so; + + checks that object is inside its parent (calls the + method). + + + + Current mouse state. + + + + Handles mouse wheel event. + + Current mouse state. + + + + Checks if given point is inside the object's bounds. + + point to check. + true if point is inside the object's bounds. + + You can override this method if your objectis not of rectangular form. + + + + + Draws the selection point. + + Paint event args. + object. + object. + Left coordinate. + Top coordinate. + + + + Gets the object's selection points. + + Array of objects. + + Selection point is a small square displayed at the object's sides when object is selected + in the designer. You can drag this square by the mouse to change the object's size. For example, + the TextObject has eight selection points to change its width and height by the mouse. + If you are developing a new component for FastReport, you may override this method + if your object has non-standard set of selection points. For example, if an object has something like + "AutoSize" property, it would be good to disable all selection points if that property is true, + to disable resizing of the object by the mouse. + + + + + Gets a value indicating that given point is inside selection point. + + point's x coordinate. + point's y coordinate. + selection point. + true if (x,y) is inside the point + + + + Gets the absolute bottom coordinate of the object. + + + + + Gets the absolute bounding rectangle of the object. + + + + + Gets the absolute left coordinate of the object. + + + + + Gets the absolute right coordinate of the object. + + + + + Gets the absolute top coordinate of the object. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control + is resized with its parent. + + + Use the Anchor property to define how a control is automatically resized as its parent control + is resized. Anchoring a control to its parent control ensures that the anchored edges remain in the + same position relative to the edges of the parent control when the parent control is resized. + You can anchor a control to one or more edges of its container. For example, if you have a band + with a TextObject whose Anchor property value is set to Top, Bottom, the TextObject is stretched to + maintain the anchored distance to the top and bottom edges of the band as the height of the band + is increased. + + + + + Gets the bottom coordinate of the object in relation to its container. + + + To change the bottom coordinate, change the and/or properties. + + + + + Gets or sets the bounding rectangle of the object. + + + Assigning a value to this property is equal to assigning values to the , + , , properties. + + + + + Gets or sets the size of client area of the object. + + + This property is used in the class. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control + is resized with its parent. + + + Use the Dock property to define how a control is automatically resized as its parent control is + resized. For example, setting Dock to DockStyle.Left causes the control to align itself with the + left edges of its parent control and to resize as the parent control is resized. + A control can be docked to one edge of its parent container or can be docked to all edges and + fill the parent container. + + + + + Gets or sets a group index. + + + Group index is used to group objects in the designer (using "Group" button). When you select + any object in a group, entire group becomes selected. To reset a group, set the GroupIndex + to 0 (default value). + + + + + Gets or sets the height of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Height to 10mm + text1.Height = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Height = " + (text1.Height / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets the left coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Left to 10mm + text1.Left = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Left = " + (text1.Left / Units.Millimeters).ToString() + "mm"); + + + + + Gets the right coordinate of the object in relation to its container. + + + To change the right coordinate, change the and/or properties. + + + + + Gets or sets the Tag string for this component. + + + + + Gets or sets the top coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Top to 10mm + text1.Top = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Top = " + (text1.Top / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets a value indicating whether the object is displayed in the preview window. + + + Setting this property to false will hide the object in the preview window. + + The following report script will control the Text1 visibility depending on the value of the + data column: + private void Data1_BeforePrint(object sender, EventArgs e) + { + Text1.Visible = [Orders.Shipped] == true; + } + + + + + Gets or sets a string containing expression that determines should be object displayed in the preview window. + + + + + Gets or sets a value that determines if the object can be printed on the printer. + + + Object with Printable = false is still visible in the preview window, but not on the printout. + If you want to hide an object in the preview, set the property to false. + + + + + Gets or sets a string containing expression that determines should be object printed on the printer. + + + + + Gets or sets the width of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Width to 10mm + text1.Width = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Width = " + (text1.Width / Units.Millimeters).ToString() + "mm"); + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. This class implements the following actions: Edit, Cut, Copy, + Paste, Delete, Bring to Front, Send to Back. + + + + + The "Name" menu item. + + + + + The "Edit" menu item. + + + + + The "Cut" menu item. + + + + + The "Copy" menu item. + + + + + The "Paste" menu item. + + + + + The "Delete" menu item. + + + + + The "BringToFront" menu item. + + + + + The "SendToBack" menu item. + + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Represents a combobox that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Gets or sets value indicating whether it is necessary to show a color name in a combobox. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a drop-down control that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the control that owns this dropdown. + + Set the Owner to onscreen control that initiates dropdown. This control will + be used to calculate dpi-dependent sizes. + + + + Gets or sets the selected color. + + + + + Sets the UI style. + + The style to set. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a popup window that alows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup control. + + + + Represents the combobox used to select a data column. + + + + + Occurs when the text portion of the combobox is changed. + + + + + + + + Gets or sets the data source. + + + + + Gets or sets the Report. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + This is an internal enum that represents the selected datatree item type. + + + + + Nothing selected. + + + + + Data column selected. + + + + + Total selected. + + + + + Parameter selected. + + + + + Function selected. + + + + + Dialog control selected. + + + + + This is an internal control that represents the data tree. + + + This control is for internal use only. + + + + + DataSource property + + + + + SelectedItem property + + + + + SelectedItemType property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the DataTreeView control. + + + + + Split Container Control + + + + + Constructor + + + + + Represents the label with line. + + + + + + + + Initializes a new instance of the class. + + + + + Represents a control that may contain several pages. It is similar to the TabControl + but contains no tabs. This control is widely used in wizards. + + + + + Occurs when page is selected. + + + + + Gets or sets a value that determines whether the selector area is visible or not. + + + + + Gets or sets the height of selector tab. + + + + + This property is not relevant to this class + + + + + Gets or sets the active page. + + + + + Gets or sets the index of active page. + + + + + Gets or sets the highlighted page index. + + + + + Gets the collection of pages. + + + + + + + + + + + + + + + + + + + + Gets tab at specified mouse point. + + The mouse point. + Index of tab under mouse; -1 if mouse is outside tab area. + + + + Selects the next page. + + + + + Selects the previous page. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a single page of the control. + + + + + Gets or sets the image associated with this page. + + + + + Gets or sets the page caption text. + + + + + + + + + + + + + + Represents a popup form. + + + Use this form if you want to show some controls in non-modal borderless form that + behaves like other standard popup controls such as context menu. This form does not + move a focus from the parent form. + + + + + Shows the form. + + The control which location is used as a reference for pt parameter. + The location relative to the ctl control. + + + + Shows the form. + + The control which location is used as a reference for x, y parameters. + The x position relative to the ctl control. + The y position relative to the ctl control. + + + + Shows the form. + + The absolute screen location. + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup form. + + + + Handler which allows to prevent canceling of popup window + + Popup helper + Event arguments + + + + Contains event information for a PopupClosed event. + + + + + The popup form. + + + + + Gets the popup form which is being closed. + + + + + Constructs a new instance of this class for the specified + popup form. + + Popup Form which is being closed. + + + + Arguments to a PopupCancelEvent. Provides a + reference to the popup form that is to be closed and + allows the operation to be cancelled. + + + + + Whether to cancel the operation + + + + + Mouse down location + + + + + Popup form. + + + + + Constructs a new instance of this class. + + The popup form + The mouse location, if any, where the + mouse event that would cancel the popup occured. + + + + Gets the popup form + + + + + Gets the location that the mouse down which would cancel this + popup occurred + + + + + Gets/sets whether to cancel closing the form. Set to + true to prevent the popup from being closed. + + + + + Represents the method which responds to a PopupClosed event. + + + + + Represents the method which responds to a PopupCancel event. + + + + + A class to assist in creating popup windows like Combo Box drop-downs and Menus. + This class includes functionality to keep the title bar of the popup owner form + active whilst the popup is displayed, and to automatically cancel the popup + whenever the user clicks outside the popup window or shifts focus to another + application. + + + + + Event Handler to detect when the popup window is closed + + + + + Message filter to detect mouse clicks anywhere in the application + whilst the popup window is being displayed. + + + + + The popup form that is being shown. + + + + + The owner of the popup form that is being shown: + + + + + Whether the popup is showing or not. + + + + + Whether the popup has been cancelled, notified by PopupCancel, + rather than closed. + + + + + Raised when the popup form is closed. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + Shows the specified Form as a popup window, keeping the + Owner's title bar active and preparing to cancel the popup + should the user click anywhere outside the popup window. + Typical code to use this message is as follows: + + frmPopup popup = new frmPopup(); + Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom)); + popupHelper.ShowPopup(this, popup, location); + + Put as much initialisation code as possible + into the popup form's constructor, rather than the System.Windows.Forms.Load + event as this will improve visual appearance. + + Main form which owns the popup + Window to show as a popup + Location relative to the screen to show the popup at. + + + + Responds to the + event from the popup form. + + Popup form that has been closed. + Not used. + + + + Subclasses the owning form's existing Window Procedure to enables the + title bar to remain active when a popup is show, and to detect if + the user clicks onto another application whilst the popup is visible. + + Window Procedure Message + + + + Called when the popup is being hidden. + + + + + Raises the event. + + describing the + popup form that is being closed. + + + + Raises the event. + + describing the + popup form that about to be cancelled. + + + + Default constructor. + + Use the + method to attach this class to the form you want to show popups from. + + + + A Message Loop filter which detect mouse events whilst the popup form is shown + and notifies the owning class when a mouse + click outside the popup occurs. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + The popup form + + + + + The owning object. + + + + + Constructs a new instance of this class and sets the owning + object. + + The object + which owns this class. + + + + Gets/sets the popup form which is being displayed. + + + + + Checks the message loop for mouse messages whilst the popup + window is displayed. If one is detected the position is + checked to see if it is outside the form, and the owner + is notified if so. + + Windows Message about to be processed by the + message loop + true to filter the message, false otherwise. + This implementation always returns false. + + + + Checks the mouse location and calls the OnCancelPopup method + if the mouse is outside the popup form. + + + + + Raises the event. + + The associated + with the cancel event. + + + + Represents the control that combines a textbox and a button. + + + + + Occurs when the button is clicked. + + + + + Occurs when the text is changed. + + + + + + + + Gets or sets the button's image. + + + + + Gets or sets the button's text. + + + + + + + + + + + + + + Set focus on text box. + + + + + + Initializes a new instance of the class. + + + + + TreeView control with multiselect support. + + + This control is for internal use only. + + + + + Creates a new instance of the TreeViewMultiSelect control. + + + + + Gets a copy of list of selected nodes. + + + + + + + + + + + + + + + + + + + + Specifies how text in a is horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + Gets or sets the alignment to apply to the current + selection or insertion point. + + + Replaces the SelectionAlignment from . + + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in screen pixels + Value in twips + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in twips + Value in screen pixels + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + (Index of last character that fitted on the page) + 1 + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + The calculated text height + (Index of last character that fitted on the page) + 1 + + + + The base class for the context menu item. + + + + + Gets a collection of menu items. + + + + + Gets or sets "Check on click" property. + + + + + Sets bold font. + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. + + + + + The reference to the report designer. + + + + + Gets a collection of menu items. + + + You should add new items to this collection. + + + + + This method is called to reflect changes in the designer. + + + + + Creates a new menu item. + + Item's text. + New item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New item. + + + + Displays context menu. + + Parent control. + Location. + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Specifies the shape of the CrossBandObject. + + + + + Specifies the vertical line shape. + + + + + Specifies the rectangle shape. + + + + + Represents an object that can be printed across several bands. + + + + + Gets or sets the object's shape. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + This class represents the Data band. + + + Use the property to connect the band to a datasource. Set the + property if you want to filter data rows. The + property can be used to sort data rows. + + + + + + + + + + + + + + + + + Invokes column editor + + + + + Gets or sets a header band. + + + + + Gets a collection of detail bands. + + + + + Gets or sets a footer band. + + + + + Gets or sets a data source. + Please note: data source have to be enabled. + + + + + Gets or sets a number of rows in the virtual data source. + + + Use this property if your data band is not connected to any data source. In this case + the virtual data source with the specified number of rows will be used. + + + + + Limits the maximum number of rows in a datasource. 0 means no limit. + + + + + Gets or sets a relation used to establish a master-detail relationship between + this band and its parent. + + + Use this property if there are several relations exist between two data sources. + If there is only one relation (in most cases it is), you can leave this property empty. + + + + + Gets the collection of sort conditions. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will not be printed. + + + + + Gets the band columns. + + + + + Gets or sets a value that determines whether to print a band if all its detail rows are empty. + + + + + Gets or sets a value that determines whether to print a band if its datasource is empty. + + + + + Gets or sets a value indicating that all band rows should be printed together on one page. + + + + + Gets or sets a value indicating that the band should be printed together with all its detail rows. + + + + + Gets or sets the key column that identifies the data row. + + + This property is used when printing a hierarchic list. + To print the hierarchic list, you have to setup three properties: IdColumn, + ParentIdColumn and Indent. First two properties are used to identify the data + row and its parent; the Indent property specifies the indent that will be used to shift + the databand according to its hierarchy level. + When printing hierarchy, FastReport shifts the band to the right + (by value specified in the property), and also decreases the + width of the band by the same value. You may use the Anchor property of the + objects on a band to indicate whether the object should move with the band, or stay + on its original position, or shrink. + + + + + Gets or sets the column that identifies the parent data row. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets the indent that will be used to shift the databand according to its hierarchy level. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets a value indicating that the databand should collect child data rows. + + + This property determines how the master-detail report is printed. Default behavior is: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + MasterData row2 + -- DetailData row1 + -- DetailData row2 + When you set this property to true, the master databand will collect all child data rows + under a single master data row: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + -- DetailData row4 + -- DetailData row5 + + + + + Gets or sets a value that determines whether to reset the page numbers when this band starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the data source connected to this band. + + + + + + + + Initializes a new instance of the class. + + + + + Class represent a smart tag that is used to choose a data column. + + + + + Gets or sets the data column name. + + + + + + + + Gets a root datasource for the object currently edited. + + The DataSourceBase object if found; null otherwise. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents a smart tag that is used to choose a data source. + + + + + Gets or sets a data source. + + + + + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the report's designer control. + + + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + This control represents pure designer surface + Objects toolbar. If you need + standard menu, statusbar, toolbars and tool windows, use the + control instead. Also you may + decide to use a designer's form () + instead of a control. + To run a designer, you need to attach a Report instance to it. This can be done via + the property. + To call the designer in MDI (Multi-Document Interface) mode, use the + property. + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + + Occurs when designer's UI state changed. + + + + + Gets or sets the edited report. + + + To initialize the designer, you need to pass a Report instance to this property. + This will create the designer's surface associated with the report. + + Designer designer = new Designer(); + designer.Parent = form1; + designer.Report = report1; + + + + + + Gets active report object. + + + May be null if Start Page selected, or no reports opened. + + + + + Gets a collection of global plugins such as menu, properties window, etc. + + + + + Gets a collection of objects on the active page of the active report. + + + + + Gets a collection of selected objects on the active page of the active report. + + + + + Gets a collection of selected objects of the ComponentBase type. + + + + + Gets a collection of selected objects of the ReportComponentBase type. + + + + + Gets a collection of selected objects of the TextObject type. + + + + + Gets or sets a value indicating that the report was modified. + + + + + Gets or sets a value that determines whether to ask user to save changes when closing the designer. + + + + + Gets the designer restrictions. + + + + + Gets or sets a value indicating that designer is run in MDI mode. + + + To call the designer in MDI (Multi-Document Interface) mode, use the following code: + + DesignerControl designer = new DesignerControl(); + designer.MdiMode = true; + designer.ShowDialog(); + + + + + + Gets or sets the visual style. + + + + + Gets a value indicating that designer is used to edit a preview page. + + + + + Gets or sets the zoom factor. + + + + + Gets the zoom factor with respect of designer's dpi value. + + + + + The "File|New" command. + + + + + The "New Page" toolbar command. + + + + + The "New Dialog" toolbar command. + + + + + The "File|Open..." command. + + + + + The "File|Save" command. + + + + + The "File|Save As..." command. + + + + + The "File|Save All" command. + + + + + The "File|Close" command. + + + + + The "Window|Close All" command. + + + + + The "File|Preview..." command. + + + + + The "File|Printer Setup..." command. + + + + + The "File|Page Setup..." command. + + + + + The "Data|Add New Data Source..." command. + + + + + The "Data|Sort Data Sources" command. + + + + + The "Data|Choose Report Data..." command. + + + + + The "Edit|Undo" command. + + + + + The "Edit|Redo" command. + + + + + The "Edit|Cut" command. + + + + + The "Edit|Copy" command. + + + + + The "Edit|Paste" command. + + + + + The "Format Painter" toolbar command. + + + + + The "Edit|Delete" command. + + + + + The "Edit|Copy Page" command. + + + + + The "Edit|Delete Page" command. + + + + + The "Edit|Select All" command. + + + + + The "Edit|Group" command. + + + + + The "Edit|Ungroup" command. + + + + + The "Edit" command. + + + + + The "Edit|Find..." command. + + + + + The "Polygon move command" command. + + + + + The "Polygon point move" command. + + + + + The "Polygon add new point" command. + + + + + The "Polygon berier" command. + + + + + The "Polygon remove point" command. + + + + + The "Edit|Replace..." command. + + + + + The "Bring To Front" command. + + + + + The "Send To Back" command. + + + + + The "Insert" command. + + + + + The "Insert Band" command. + + + + + The "Recent Files" command. + + + + + The "File|Select Language..." command. + + + + + The "View|Start Page" command. + + + + + The "Report|Options..." command. + + + + + The "View|Options..." command. + + + + + The "Report|Styles..." command. + + + + + The "Help|Help Contents..." command. + + + + + The "Help|About..." command. + + + + + The "Show welcome window..." command. + + + + + Gets or sets the layout state of the designer. + + + This property is used to store layout in Visual Studio design time. You may also use + it to save and restore the designer's layout in your code. However, consider using the + and methods that use FastReport + configuration file. + + + + + Fires when the layout is changed. + + + This event is for internal use only. + + + + + Updates UI style of the designer. + + + + + Initializes designer plugins such as toolbars and toolwindows. + + + + + + + + Zooms the report to page width. + + + + + Zooms the report to whole page. + + + + + Cancels paste mode. + + + + + AutoSave system initialization. + + + + + Stops the AutoSave system. + + + + + Call this method if you change something in the report. + + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + The name of modified object. + + + + Call this method to tell the designer that current selection is changed. + + The plugin that changes the selection (may be null). + + + + Locks all plugins. + + + This method is usually called when we destroy the report to prevent unexpected + errors - such as trying to draw destroyed objects. + + + + + Unlocks all plugins. + + + Call this method after the Lock. + + + + + Call this method to refresh all plugins' content. + + The plugin that we don't need to refresh. + + + + Updates localization of the designer. + + + + + Updates layout and images on dpi change. + + The sender object. + + + + Saves config to a FastReport configuration file. + + + + + Restores config from a FastReport configuration file. + + + Call this method to restore the designer's layout. You need to do this after the + designer's control is placed on a form. + + + + + Refresh the designer's toolbars and toolwindows layout. + + + Call this method if you use + DesignerControl. To restore + the layout that you've created in VS design time, you need to call this method in the form's + Load event handler. If you don't do this, tool windows like Properties, Data, Report Tree + will not be available. + + + + + + + + + + + Initializes the workspace after the new report is loaded. + + + + + Tries to create a new empty report. + + true if report was created successfully; false if user cancels the action. + + + + Displays a message in the "Messages" window. + + Message text. + + + + Clears the "Messages" window. + + + + + Shows the selected object's information in the designer's statusbar. + + Object's location. + Object's size. + Textual information about the selected object. + + + + Close all opened reports, ask to save changes. + + true if all tabs closed succesfully. + + Use this method to close all opened documents and save changes when you closing the main form + that contains the designer control. To do this, create an event handler for your form's FormClosing + event and call this method inside the handler. If it returns false, set e.Cancel to true. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all designer commands. + + + + + Gets a value indicating that the command is enabled. + + + If you use own controls that invoke designer commands, use this property to refresh + the Enabled state of a control that is bound to this command. + + + + + Defines a custom action for this command. + + + Using custom action, you can override the standard behavior of this designer's command. + + + This example demonstrates how to override the "New..." command behavior. + + // add an event handler that will be fired when the designer is run + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + // override "New..." command behavior + (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); + } + + void cmdNew_CustomAction(object sender, EventArgs e) + { + // show the "Label" wizard instead of standard "Add New Item" dialog + Designer designer = sender as Designer; + LabelWizard wizard = new LabelWizard(); + wizard.Run(designer); + } + + + + + + Gets a value for the Enabled property. + + true if command is enabled. + + + + Invokes the command. + + + + + Invokes the command with specified sender and event args. + + Sender. + Event args. + + This method is compatible with standard and can be passed + to the event handler constructor directly. + + + + + Represents the "File|New" command. + + + + + + + + + + + Represents the "New Page" toolbar command. + + + + + + + + + + + Represents the "New Dialog" toolbar command. + + + + + + + + + + + Represents the "File|Open..." command. Also can be used for loading a file + from the recent files list. + + + + + + + + + + + Loads a specified report file. + + File to load. + + + + Represents the "File|Save" command. + + + + + + + + + + + Represents the "File|Save As..." command. + + + + + + + + + + + Represents the "File|Save All" command. + + + + + + + + + + + Represents the "File|Close" command. + + + + + + + + + + + Represents the "Window|Close All" command. + + + + + + + + Represents the "File|Preview..." command. + + + + + + + + + + + Represents the "File|Page Setup..." command. + + + + + + + + + + + Represents the "Report|Options..." command. + + + + + + + + + + + Represents the "File|Printer Setup..." command. + + + + + + + + + + + Represents the "Edit|Undo" command. + + + + + + + + + + + Undo several actions. + + Number of actions to undo. + + + + Represents the "Edit|Redo" command. + + + + + + + + + + + Redo several actions. + + Number of actions to redo. + + + + Represents the "Edit|Cut" command. + + + + + + + + + + + Represents the "Edit|Copy" command. + + + + + + + + Represents the "Edit|Copy Page" command. + + + + + + + + + + + Represents the "Edit|Paste" command. + + + + + + + + + + + Represents the "Format Painter" toolbar command. + + + + + + + + + + + Represents the "Edit|Delete" command. + + + + + + + + + + + Represents the "Edit|Delete Page" command. + + + + + + + + + + + Represents the "Edit|Select All" command. + + + + + + + + + + + Represents the "Edit|Group" command. + + + + + + + + + + + Represents the "Edit|Ungroup" command. + + + + + + + + Represents the "Edit" command. + + + + + + + + + + + Represents the "Edit|Find..." command. + + + + + + + + + + + Represents the "Edit|Replace..." command. + + + + + Represents the "Bring To Front" context menu command. + + + + + + + + + + + Represents the "Send To Back" context menu command. + + + + + + + + Represents the "Insert" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Insert Band" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Data|Add Data Source..." command. + + + + + + + + + + + Represents the "Data|Sort Data Sources" command. + + + + + + + + + + + Represents the "Data|Choose Report Data..." command. + + + + + + + + + + + Represents the "Recent Files" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the recent files list is enabled. + + + + + + + + Represents the "File|Select Language..." command. + + + + + + + + Represents the "View|Options..." command. + + + + + + + + Represents the "View|Start Page" command. + + + + + + + + + + + Represents the "Select polygon move" command. + + + + + + + + + + + Represents the "Report|Styles..." command. + + + + + + + + + + + Represents the "Help|Help Contents..." command. + + + + + + + + + + + Represents the "Help|About..." command. + + + + + + + + Represents the "Show welcome window..." command. + + + + + + + + + + + Provides a data for the designer ReportLoaded event. + + + + + The current report. + + + + + Represents the method that will handle the designer ReportLoaded event. + + The source of the event. + The event data. + + + + Provides a data for the designer ObjectInserted event. + + + + + Gets the inserted object. + + + + + Gets the source where the object is inserted from. + + + + + Represents the method that will handle the designer ObjectInserted event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets or sets a file name. + + + This property contains the location of a report. If you work with files (like the + standard "Open" and "Save" dialogs do), treat this property as a file name. + + + + + Gets or sets a value indicating that the dialog was cancelled. + + + This property is used to tell the designer that the user was cancelled the dialog. + + + + + Gets or sets the custom data that is shared across events. + + + You may set the Data in the OpenDialog event and use it later in the OpenReport event. + + + + + Gets a report designer. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets a report. + + + Use this report in the load/save operations. + + + + + Gets a file name. + + + This property contains the location of a report that was selected by the user in the + open/save dialogs. If you work with files (like the standard "Open" and "Save" dialogs do), + treat this property as a file name. + + + + + Gets the custom data that was set in the OpenDialog event. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides data for the FilterConnectionTables event. + + + + + Gets the Connection object. + + + + + Gets the table name. + + + + + Gets or sets a value that indicates whether this table should be skipped. + + + + + Represents the method that will handle the FilterConnectionTables event. + + The source of the event. + The event data. + + + + Provides data for the CustomQueryBuilder event. + + + + + Gets the Connection object. + + + + + Gets or sets the query text. + + + + + Gets or sets the query parameters. + + + + + Represents the method that will handle the CustomQueryBuilder event. + + The source of the event. + The event data. + + + + Represents list of registered design plugins. + + + + + Adds a new plugin's type. + + The type of a plugin. + + + + Represents a set of designer's restrictions. + + + + + Gets or sets a value that enables or disables the "Open" action. + + + + + Gets or sets a value that enables or disables the "Save/Save as" actions. + + + + + Gets or sets a value that enables or disables the "New..." action. + + + + + Gets or sets a value that enables or disables the "Preview" action. + + + + + Gets or sets a value that enables or disables the recent files list. + + + + + Gets or sets a value that enables or disables the "Code" tab. + + + + + Gets or sets a value that enables or disables the "Data" menu. + + + + + Gets or sets a value that enables or disables the "Data|Add New Data Source..." menu. + + + + + Gets or sets a value that enables or disables the "Data|Sort Data Sources" menu. + + + + + Gets or sets a value that enables or disables the "Report|Options..." menu. + + + + + Gets or sets a value that enables or disables insertion of objects. + + + + + Gets or sets a value that enables or disables the insertion of bands. + + + + + Gets or sets a value that enables or disables the "Delete Page" action. + + + + + Gets or sets a value that enables or disables the creation of report/dialog pages. + + + + + Gets or set a value that enables or disbles the "Copy Page" action. + + + + + Gets or sets a value that enables or disables the "Page Setup" action. + + + + + Copies the contents of another, similar object. + + Source object to copy the contents from. + + + + Creates exact copy of this object. + + The copy of this object. + + + + This class contains settings that will be applied to the report designer. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when the designer is closed. + + + + + Occurs when the report is loaded. + + + + + Occurs when a report page or a dialog form is added to the report. + + + Use this event if you want to customize the page properties. + + + This example demonstrates how to change the default page margins. + + Config.DesignerSettings.PageAdded += new EventHandler(DesignerSettings_PageAdded); + + void DesignerSettings_PageAdded(object sender, EventArgs e) + { + if (sender is ReportPage) + (sender as ReportPage).TopMargin = 0; + } + + + + + + Occurs when object is inserted. + + + + + + + + + + + + + + + + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + Config.DesignerSettings.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + Config.DesignerSettings.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Occurs when the query builder is called. + + + Subscribe to this event if you want to replace the embedded query builder with your own one. + + + + + Gets or sets the icon for the designer window. + + + + + Gets or sets the default font used in a report. + + + + + Gets or sets a value indicating whether the designer window is displayed in the Windows taskbar. + + + + + Gets the designer restrictions flags. + + + + + Gets or sets the title text for the designer window. + + + If no text is set, the default text "FastReport -" will be used. + + + + + Gets or sets application-defined DbConnection object that will be used in the designer + to create a new datasource. + + + The application connection object is used in the "Data Wizard" to create new datasources. + In this mode, you can't create any other connections in the wizard; only application + connection is available. You still able to choose tables or create a new queries inside + this connection. The connection information (ConnectionString) is not stored in the report file. + + + + + Gets the toolstrip renderer. + + + + + Adds a custom connection used in the "Data Wizard" window. + + + Use this method to provide own connection strings for the "Data Wizard" dialog. To do this, you need + to pass the type of connection object and connection string associated with it. You must use one of the + connection objects registered in FastReport that inherit from the + class. + To clear the custom connections, use the method. + + + This example shows how to add own connection string. + + Config.DesignerSettings.AddCustomConnection(typeof(MsAccessDataConnection), @"Data Source=c:\data.mdb"); + + + + + + Clears the custom connections added by the AddCustomConnection method. + + + + + Initializes a new instance of the class. + + + + + Base class for all export plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Save File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Saves the specified report into specified file. + + Report object. + File name. + + + + Represents the FR3 export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR3 units converter. + + + + + Converts Color to TColor. + + Color value. + String that contains TColor value. + + + + Converts font style. + + FontStyle value. + String that contains converted value. + + + + Converts horizontal alignment of text. + + HorzAlign value. + String that contains converted value. + + + + Converts vertical alignment of text. + + VertAlign value. + String that contains coverted value. + + + + Converts font size to delphi font height. + + Font size value. + String that contains font height value. + + + + Convert line style to frame style. + + Line style value. + String that contains converted value. + + + + Converts barcode type. + + BarcodeBase instance. + String that contains converted value. + + + + Converts BorderLines value. + + BorderLines instance. + String that contains converted value. + + + + Converts CheckedSymbol value. + + CheckeSymbol instance. + String that contains converted value. + + + + Converts ScaleDock value. + + ScaleDock instance. + String that contains converted value. + + + + Converts DashStyle value. + + DashStyle instance. + String that contains converted value. + + + + Converts TotalType value. + + TotalType instance. + String that contains converted value. + + + + Converts MapLabelKind value. + + MapLabelKind instance. + String that contains converted value. + + + + Converts MapPalette value. + + MapPalette instance. + String that contains converted value. + + + + Converts ShapeKind value. + + ShapeKind instance. + String that contains coverted value. + + + + Represents the RDL export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR units converter. + + + + + Converts the float size in pixels to string value in millimeters. + + The float value in pixels. + The string value in millimeters. + + + + Converts the float size in millimeters to string value in millimeters. + + The float value in millimeters. + The string value in millimeters. + + + + Converts the bool value to string. + + The bool value. + The string value. + + + + Converts the int size in pixels to string value in pt. + + The int value in pixels. + The string value in pt. + + + + Converts the Color value to string. + + The Color value. + The string representation of Color value. + + + + Converts the LineStyle value to RDL BorderStyle value. + + The LineStyle value. + The string with RDL BorderStyle value. + + + + Converts the GradientStyle value to RDL GradientType value. + + The GradientStyle value. + The string with RDL GradientType value. + + + + Converts the FontStyle value to RDL FontStyle value. + + The FontStyle value. + The string with RDL FontStyle value. + + + + Converts the FontFamily value to RDL FontFamily value. + + The FontFamily value. + The string with RDL FontFamily value. + + + + Converts the HorzAlign value to RDL TextAlign value. + + The HorzAlign value. + The string with RDL TextAling value. + + + + Converts the VertAling value to RDL VerticalAling value. + + The VertAling value. + The string with RDL VerticalAlign value. + + + + Converts the Angle value to RDL WritingMode value. + + The Angle value. + The string with RDL WritingMode value. + + + + Converts the FontSize value to RDL FontSize value. + + The FontSize value. + The string with RDL FontSize value. + + + + Converts the PictureBoxSizeMode value to RDL Sizing value. + + The PictureBoxSizeMode value. + The string with RDL Sizing value. + + + + Converts the SeriesChartType value to RDL Chart.Type value. + + The SeriesChartType value. + The string with RDL Chart.Type value. + + + + Converts the ChartColorPalette value to RDL Chart.Palette value. + + The ChartColorPalette value. + The string with RDL Chart.Palette value. + + + + Converts the Legend.Docking and Legend.Alignment values to RDL Chart.Legend.Position value. + + The Legend.Docking value. + The Legend.Alignment value. + The string with RDL Chart.Legend.Position value. + + + + Converts the LegendStyle value to Chart.Legend.Layout value. + + The LegendStyle value. + The string with RDL Chart.Legend.Layout value. + + + + Converts the LightStyle value to RDL Shading value. + + The LightStyle value. + The string with RDL Shading value. + + + + Converts the ChartDashStyle value to RDL BorderStyle value. + + The ChartDashStyle value. + The string with RDL ChartDahsStyle value. + + + + Converts the ContentAlignment value to RDL TextAlign value. + + The ContentAlignment value. + The string with RDL TextAlign value. + + + + Converts the ContentAlignment value to RDL VerticalAlign value. + + The ContentAlignment value. + The string with RDL VerticalAlign value. + + + + Converts the AxisEnabled value to RDL Axis.Visible value. + + The AxisEnabled value. + The string with RDL Axis.Visible value. + + + + Converts the TickMarkStyle value to RDL TickMarkStyle value. + + The TickMarkStyle value. + The string with RDL TickMarkStyle value. + + + + Converts the StringAlignment value to RDL TextAlign value. + + The StringAlignment value. + The string with RDL TextAlign value. + + + + Provides functionality required for report designer plugins such as toolbars and toolwindows. + + + + + Gets the plugin name. + + + + + Saves the plugin state. + + This example shows how to save the state: + + public void SaveState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + xi.SetProp("ShowGrid", DialogWorkspace.ShowGrid ? "1" : "0"); + } + + + + + + Restores the plugin state. + + This example shows how to restore the state: + + public void RestoreState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + DialogWorkspace.ShowGrid = xi.GetProp("ShowGrid") != "0"; + } + + + + + + Updates plugin state when current selection was changed. + + + Typically you need to do the same work in the and + methods. + + + + + Updates plugin state when the report was modified. + + + Typically you need to do the same work in the and + methods. + + + + + Locks the plugin. + + + This method is called by the designer when report is loading. It may be needed to disable + some operations (like painting) that use the report. + + + + + Unlocks the plugin. + + This method is called by the designer when report is loaded. It follows the Lock + method call and must reset the lock. + + + + Localizes the plugin. + + + This method is called by the designer when current localization is changed. + + + + + Gets an options page that will be used in the Designer Options dialog to edit the plugin options. + + The options page, if implemented; otherwise, null. + + + + Updates UI style of the plugin. + + + The plugin should update its style according to the designer's UIStyle property. + + + + + Updates layout on dpi change. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Open File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + + + + Gets or sets reference to the import. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a open dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + Represents the List and Label import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Import RichTextFile to a report + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents collection of designer plugins. + + + This class is used in the Designer.Plugins property. + To register own plugin, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Finds a plugin by its name. + + The plugin's name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.Find("MessagesWindow") as MessagesWindow; + + + + + + Finds a plugin by its type name. + + The plugin's type name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + Base class for all designer toolbars. + + + Use this class to write own designer's toolbar. To do this: + - in the constructor, set the Name property and create toolbar buttons. + The Name will be used to restore toolbar's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolbar, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Gets the report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new button. + + Button's name. + Button's image index. + Click handler. + New button. + + + + Creates a new button. + + Button's name. + Button's image index. + Button's tooltip text. + Click handler. + New button. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the "Data Dictionary" window. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Describes an item dragged from the "Data Dictionary" window. + + + + + The dragged object. + + + + + The text of dragged object. + + + + + Collection of dragged items. + + + + + Represents the "Messages" window. + + + To get this window, use the following code: + + Designer designer; + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + + + + Clears the message list. + + + + + Adds a new message. + + The message text. + The name of object related to a message. + + + + Adds a new script-related message. + + The message text. + The line of the script. + The column of the script. + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Properties" window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Report Tree" window. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Extend the class for window with TreeView. + + + + + + + + This method puts data to TreeView. + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + + + + + + + + + + Base class for all tool windows such as "Properties", "Data Dictionary" etc. + + + Use this class to create own tool window. To do this: + - in the constructor, set the Name and Image properties and create necessary controls. + The Name will be used to restore window's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolwindow, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolWindow)); + + + + + + + Gets the report designer. + + + + + Gets a value indicating that window is locked. + + + + + + + + Gets or sets shortcut keys used to show this toolwindow. + + + + + Gets or sets a value indicating that the toolwindow can be closed by the x button. + + + + + Gets a parent control that contains all controls. + + + Add your control to the parent control Controls collection. + + + + + Shows the toolwindow. + + + + + Hides the toolwindow. + + + + + + + + + + + + + + + + + + + + + + + + + + Implements method. + + The options page, if implemented; otherwise, null. + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the standard report designer. + + + This control extends the control with + standard menu, status bar, and toolbars. + To choose toolbars and tool windows in design-time, click the "View" menu + in this control and select what you want to see. Toolbars can be reordered using the mouse. + To restore the designer layout at runtime, you need to call the + RefreshLayout method in your + form's Load event handler. + + + + + Gets the main menu. + + + + + Gets or sets a value indicating whether the main menu should be displayed or not. + + + + + Gets or sets a value indicating whether the status bar should be displayed or not. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents standard designer's form. + + + This form contains the . Use the + property to get access to this control. + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + If you decided to use this class, you need: + + + create an instance of this class; + + + set the Designer.Report property to report that you need to design; + + + call either ShowModal or Show methods to display a form. + + + + + + + Gets a reference to the control which is actually a designer. + + + + + Gets a list of File menu buttons + + + + + Creates a new instance of the class with default settings. + + + + + Creates a new instance of the class with default settings. + + enables welcome window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the designer's main menu. + + + To get this menu, use the following code: + + Designer designer; + DesignerMenu menu = designer.Plugins.FindType("DesignerMenu") as DesignerMenu; + + + + + + The "File" menu. + + + + + The "File|New..." menu. + + + + + The "File|Open..." menu. + + + + + The "File|Close" menu. + + + + + The "File|Save" menu. + + + + + The "File|Save as..." menu. + + + + + The "File|Save All" menu. + + + + + The "File|Page Setup..." menu. + + + + + The "File|Printer Setup..." menu. + + + + + The "File|Preview..." menu. + + + + + The "File|Select Language" menu. + + + + + The "File|Exit" menu. + + + + + The "Edit" menu. + + + + + The "Edit|Undo" menu. + + + + + The "Edit|Redo" menu. + + + + + The "Edit|Cut" menu. + + + + + The "Edit|Copy" menu. + + + + + The "Edit|Paste" menu. + + + + + The "Edit|Delete" menu. + + + + + The "Edit|NewPage" menu. + + + + + The "Edit|Copy Page" menu. + + + + + The "Edit|Delete Page" menu. + + + + + The "Edit|Select All" menu. + + + + + The "Edit|Group" menu. + + + + + The "Edit|Ungroup" menu. + + + + + The "Edit|Find..." menu. + + + + + The "Edit|Replace..." menu. + + + + + The "View" menu. + + + + + The "View|Toolbars" menu. + + + + + The "View|Start Page" menu. + + + + + The "View|Options..." menu. + + + + + The "Insert" menu. + + + + + The "Report" menu. + + + + + The "Report|Options..." menu. + + + + + The "Data" menu. + + + + + The "Data|Choose Report Data..." menu. + + + + + The "Data|Add Data Source..." menu. + + + + + The "Data|Show Data Dictionary" menu. + + + + + The "Window" menu. + + + + + The "Window|Close All" menu. + + + + + The "Help" menu. + + + + + The "Help|Help Contents..." menu. + + + + + The "Help|About..." menu. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new menu item. + + New menu item. + + + + Creates a new menu item. + + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New menu item. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the designer's statusbar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Updates the information about location and size. + + The location. + The size. + + + + Updates the name and text information. + + The text. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Contains the email settings such as recipient(s) address, name, subject, message body. + + + + + + + Gets or sets the recipient(s) email addresses. + + + This property contains one or several email addresses in the following form: "john@url.com". + + + + + Gets or sets the message subject. + + + + + Gets or sets the message body. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains some global settings that used in the FastReport.Net. + + + This component is intended for use in the Visual Studio IDE to quickly configure + FastReport global settings. To use it, drop the component on your Form and set up + its properties and events. + Here are some common actions that can be performed with this object: + + + To define own open/save dialogs that will be used in the report designer, + use the , , + , events; + + + + To pass connection string to the connection object defined in a report, + or to define own database login dialog, use the event; + + + + To adjust the connection object after it is opened, + use the event; + + + + To define own progress window, use the , + and events; + + + + To setup some common properties of the report, designer and preview, + use properties defined in this class; + + + + To set UI style of the designer and preview window, + use property. + + + + This component actually uses the static class which + contains , and + properties. You can use Config class as well. + + + + + Gets or sets the UI style of the designer and preview windows. + + + This property affects both designer and preview windows. + + + + + Indicates whether the Ribbon-style window should be used. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs when progress state is changed. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Gets or sets the report settings. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + environmentSettings1.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when report is loaded in the designer. + + + Use this event handler to register application data in a report. + + + + + Occurs when object is inserted in the designer. + + + Use this event handler to set some object's properties when it is inserted. + + + + + Occurs when the report designer is about to show the "Open" dialog. + + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will open the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to show the "Save" dialog. + + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will save the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to load the report. + + This event is used together with the event. + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + load the e.Report from the location specified in the e.FileName property. + For example, if you work with files: e.Report.Load(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to save the report. + + This event is used together with the event. + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + save the e.Report to the location specified in the e.FileName property. + For example, if you work with files: e.Report.Save(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + environmentSettings1.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + environmentSettings1.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Gets or sets the designer settings. + + + + + Gets or sets the preview settings. + + + + + Gets or sets the email settings. + + + + + Represents a group header band. + + + A simple group consists of one GroupHeaderBand and the DataBand that is set + to the property. To create the nested groups, use the property. + + Only the last nested group can have data band. + + Use the property to set the group condition. The + property can be used to set the sort order for group's data rows. You can also use the Sort + property of the group's DataBand to specify additional sort. + + This example shows how to create nested groups. + + ReportPage page = report.Pages[0] as ReportPage; + + // create the main group + GroupHeaderBand mainGroup = new GroupHeaderBand(); + mainGroup.Height = Units.Millimeters * 10; + mainGroup.Name = "MainGroup"; + mainGroup.Condition = "[Orders.CustomerName]"; + // add a group to the page + page.Bands.Add(mainGroup); + + // create the nested group + GroupHeaderBand nestedGroup = new GroupHeaderBand(); + nestedGroup.Height = Units.Millimeters * 10; + nestedGroup.Name = "NestedGroup"; + nestedGroup.Condition = "[Orders.OrderDate]"; + // add it to the main group + mainGroup.NestedGroup = nestedGroup; + + // create a data band + DataBand dataBand = new DataBand(); + dataBand.Height = Units.Millimeters * 10; + dataBand.Name = "GroupData"; + dataBand.DataSource = report.GetDataSource("Orders"); + // connect the databand to the nested group + nestedGroup.Data = dataBand; + + + + + + + + + + + + + + + Gets or sets a nested group. + + + Use this property to create nested groups. + + Only the last nested group can have data band. + + + + This example demonstrates how to create a group with nested group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.NestedGroup = new GroupHeaderBand(); + group.NestedGroup.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets the group data band. + + + Use this property to add a data band to a group. Note: only the last nested group can have Data band. + + + This example demonstrates how to add a data band to a group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets a group footer. + + + + + Gets or sets a header band. + + + + + Gets or sets a footer band. + + + To access a group footer band, use the property. + + + + + Gets or sets the group condition. + + + This property can contain any valid expression. When running a report, this expression is calculated + for each data row. When the value of this condition is changed, FastReport starts a new group. + + + + + Gets or sets the sort order. + + + FastReport can sort data rows automatically using the value. + + + + + Gets or sets a value indicating that the group should be printed together on one page. + + + + + Gets or sets a value that determines whether to reset the page numbers when this group starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for headers and footers which support the "Keep With Data" and "Repeat on Every Page" features. + + + + + + + + Gets or sets a value indicating that the band should be printed together with data band. + + + + + Gets or sets a value that determines whether to repeat this band on every page. + + + When band is repeated, its property is set to true. You can use + it to show any additional information on the band. To do this, + use the property which + can be set to "Rpeeated". In that case the object will be printed + only on the repeated band. + + + + + + + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObject. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Implements the object's editor. + + + + + Invokes the object's editor. + + true if object was succesfully edited. + + This method is called by FastReport when the object is doubleclicked in the designer. + + + + + Provides the "search" functionality in the preview and designer. + + + + + Finds the specified text inside the object. + + Text to find. + true to perform case-sensitive search. + true to find whole words only. + Array of character ranges that describes the occurences of text found; + null if text not found. + + + + Draws the highlight to show the text found. + + Draw event arguments. + Range of characters to highlight. + + + + Represents a line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. Set the property to true + if you want to show a diagonal line. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating that the line is diagonal. + + + If this property is false, the line can be only horizontal or vertical. + + + + + Gets or sets the start cap settings. + + + + + Gets or sets the end cap settings. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report pages and dialog forms. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the snap size for this page. + + + + + Gets a page designer for this page type. + + The page designer. + + + + This method is called by the designer when you create a new page. + + + You may create the default page layout (add default bands, set default page size, etc). + + + + + Causes the page to refresh in the preview window. + + + Call this method when you handle object's MouseMove, MouseDown, MouseUp, MouseEnter, MouseLeave events + and want to refresh the preview window. + + If you have changed some objects on a page, the Refresh method will not save the changes. + This means when you print or export the page, you will see original (unmodified) page content. + If you want to save the changes, you have to use the method instead. + + + + + + Modifies the page content and refresh it in the preview window. + + + Call this method when you handle object's Click, MouseDown or MouseUp events + and want to modify an object and refresh the preview window. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Picture object that can display pictures. + + + The Picture object can display the following kind of pictures: + + + picture that is embedded in the report file. Use the + property to do this; + + + picture that is stored in the database BLOb field. Use the + property to specify the name of data column you want to show; + + + picture that is stored in the local disk file. Use the + property to specify the name of the file; + + + picture that is stored in the Web. Use the + property to specify the picture's URL. + + + Use the property to specify a size mode. The + and properties can be used to restrict the image size if SizeMode + is set to AutoSize. + The property can be used to display an image with + transparent background. Use the property if you want to display + semi-transparent image. + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image. + + + By default, image that you assign to this property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set the property to true right after you assign an image: + + myPictureObject.Image = new Bitmap("file.bmp"); + myPictureObject.ShouldDisposeImage = true; + + + + + + Gets or sets the expansion of image. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Gets or sets a hash of grayscale svg image + + + + + Gets or sets the color of the image that will be treated as transparent. + + + + + Gets or sets the transparency of the PictureObject. + + + Valid range of values is 0..1. Default value is 0. + + + + + Gets or sets a value indicating that the image should be tiled. + + + + + Gets or sets a value indicating that the image stored in the + property should be disposed when this object is disposed. + + + By default, image assigned to the property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set this property to true right after you assign an image to the property. + + + + + Gets or sets a bitmap transparent image + + + + + + + + + + + + + + + + + Draws the image. + + Paint event args. + + + + Sets image data to FImageData + + + + + + + + + + + + Loads image + + + + + Disposes image + + + + + + + + + + + + + + Forces loading the image from a data column. + + + Call this method in the AfterData event handler to force loading an image + into the property. Normally, the image is stored internally as byte[] array + and never loaded into the Image property, to save the time. The side effect is that you + can't analyze the image properties such as width and height. If you need this, call this method + before you access the Image property. Note that this will significantly slow down the report. + + + + + Initializes a new instance of the class with default settings. + + + + + the base class for all picture objects + + + + + Draw an error image to Graphics g, when the image is designing + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image rotation angle, in degrees. Possible values are 0, 90, 180, 270. + + + + + Gets or sets the data column name to get the image from. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + + + + Gets or sets the path for the image to display in the PictureObject. + + + This property may contain the path to the image file as well as external URL. + + + + + Gets or sets the expression that determines the source for the image to display in the PictureObject. + + + The result of the expression should be data column name or path to the image file. + The data column name will be saved to the property. + The path will be savetd to the property. + + + + + Gets a value indicating that the image stored in the databases column + + + + + Gets a value indicating that the image stored in the separate file + + + + + Gets a value indicating that the image stored in the Web + + + + + Gets or sets the maximum height of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets the maximum width of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets padding within the PictureObject. + + + + + Gets or sets a value indicating whether the PictureObject should display + the error indicator if there is no image in it. + + + + + Gets or sets a value that specifies how an image is positioned within a PictureObject. + + + + + + + + Gets or sets the alignment of a image in the border. + + + + + Return base size of image, internal use only + + + + + Return base size of image, internal use only + + + + + + + + + + + Calculates URI from ImageLocation + + + + + + + + + gets points for transform this image + + the box where to draw image + image width + image height + scale horizontal + scale vertical + offset of left + offset of top + out start of vectors + out end of frist vector + out end of second vector + + + + Loads image + + + + + Moves the point on specified angle + + + + + + + + + + + + Rotates vector on specified angle + + + + + + + + + + + Draws not tiled image + + + + + + + + Reset index of image + + + + + When auto size was updated, internal use only + + + + + + + + Represents a polygon object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + scale by width + scale by height + Always returns a non-empty path + + + + Draw polyline path to graphics + + Event arguments + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a poly line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + + + Add point to end of polyline and recalculate bounds after add. + Can be first point. + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + Add point to start of polyline and recalculate bounds after add + Can be first point + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + + + + + + + Replace points with star + + Minimum value is 3 + + + + + + + + + + + + + + + + + + + Insert point to desired place of polyline + Recalculate bounds after insert + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + + + + Insert point to near line + Recalculate bounds after insert + + local x - relative to left-top point + local y - relative to left-top point + depricated + Index of inserted point + + + + + + + + + + + + + + + + Delete point from polyline by index + Recalculate bounds after remove + + Index of point in polyline + + + + + + + Delete point from polyline by index. + Recalculate bounds. + + Index of point in polyline + + + + + + + + + + Returns best new point position based on mouse + + + + + + do not set this value, internal use only + + + + + Return points collection. + You can modify the collection for change this object. + + + + + Returns origin of coordinates relative to the top left corner + + + + + Returns origin of coordinates relative to the top left corner + + + + + Return points array of line + deprecated + + + + + Return point types array. 0 - Start of line, 1 - Keep on line + deprecated + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + Left boundary + Top boundary + Right boundary + Bottom boundary + scale by width + scale by height + Always returns a non-empty path + + + + Recalculate position and size of element + + + + + + + + Add point to end of polyline, need to recalculate bounds after add + First point must have zero coordinate and zero type. + Recalculate bounds. + Method is slow do not use this. + + local x - relative to left-top point + local y - relative to left-top point + depreceted + + + + Delete point from polyline by index. + Recalculate bounds. + Method is slow do not use this. + + Index of point in polyline + + + + Draw polyline path to graphics + + Event arguments + + + + Insert point to desired place of polyline + recalculateBounds(); + Method is slow do not use this + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + deprecated + + + + Represent a point for polygon object + + + + + Specifies the set of buttons available in the preview. + + + + + No buttons visible. + + + + + The "Print" button is visible. + + + + + The "Open" button is visible. + + + + + The "Save" button is visible. + + + + + The "Email" button is visible. + + + + + The "Find" button is visible. + + + + + The zoom buttons are visible. + + + + + The "Outline" button is visible. + + + + + The "Page setup" button is visible. + + + + + The "Edit" button is visible. + + + + + The "Watermark" button is visible. + + + + + The page navigator buttons are visible. + + + + + The "Close" button is visible. + + + + + The "Design" button is visible. + + + + + The "Copy Page" button is visible. + + + + + The "Delete Page" button is visible. + + + + + The "About" button is visible. + + + + + All buttons are visible. + + + + + Specifies the set of export buttons available in the preview. + + + + + No exports visible. + + + + + The "Prepared" button is visible. + + + + + The "PDFExport" button is visible. + + + + + The "RTFExport" button is visible. + + + + + The "HTMLExport" button is visible. + + + + + The "MHTExport" button is visible. + + + + + The "XMLExport" export button is visible. + + + + + The "Excel2007Export" button is visible. + + + + + The "Excel2003Document" button is visible. + + + + + The "Word2007Export" button is visible. + + + + + The "PowerPoint2007Export" button is visible. + + + + + The "ODSExport" button is visible. + + + + + The "ODTExport" button is visible. + + + + + The "XPSExport" export button is visible. + + + + + The "CSVExport" button is visible. + + + + + The "DBFExport" button is visible. + + + + + The "TextExport" button is visible. + + + + + The "ZplExport" button is visible. + + + + + The "ImageExport" button is visible. + + + + + The "XAMLExport" button is visible. + + + + + The "SVGExport" button is visible. + + + + + The "PPMLExport" button is visible. + + + + + The "PSExport" button is visible. + + + + + The "JsonExport" button is visible. + + + + + The "LaTeXExport" button is visible. + + + + + The "HpglExport" button is visible. + + + + + The All export buttons is visible. + + + + + Specifies the set of export in clouds buttons available in the preview. + + + + + No exports in clouds visible. + + + + + The "Box" button is visible. + + + + + The "Dropbox" button is visible. + + + + + The "FastCloud" button is visible. + + + + + The "Ftp" button is visible. + + + + + The "GoogleDrive" button is visible. + + + + + The "SkyDrive" button is visible. + + + + + The All export in clouds buttons is visible. + + + + + Specifies the set of export by messenger buttons available in the preview. + + + + + No exports by messengers visible. + + + + + The "Xmpp" button is visible. + + + + + The All export my messengers buttons is visible. + + + + + Contains some settings of the preview window. + + + + + Occurs when the standard preview window opened. + + + You may use this event to change the standard preview window, for example, add an own button to it. + The sender parameter in this event is the PreviewControl. + + + + + Gets or sets a set of buttons that will be visible in the preview's toolbar. + + + Here is an example how you can disable the "Print" and "EMail" buttons: + + Config.PreviewSettings.Buttons = PreviewButtons.Open | + PreviewButtons.Save | + PreviewButtons.Find | + PreviewButtons.Zoom | + PreviewButtons.Outline | + PreviewButtons.PageSetup | + PreviewButtons.Edit | + PreviewButtons.Watermark | + PreviewButtons.Navigator | + PreviewButtons.Close; + + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Specifies the set of exports by messengers that will be available in the preview's "save" menu. + + + + + Gets or sets the number of prepared pages that can be stored in the memory cache during preview. + + + Decrease this value if your prepared report contains a lot of pictures. This will + save the RAM memory. + + + + + Gets or sets a value indicating whether the preview window is displayed in the Windows taskbar. + + + + + Gets or sets a value indicating whether the preview window should be displayed as a topmost form. + + + + + Gets or sets the icon for the preview window. + + + + + Gets or sets the text for the preview window. + + + If no text is set, the default text "Preview" will be used. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Enables or disables the "Print to file" feature in the print dialog. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the PreviewSettings class with default settings. + + + + + Specifies the report printing mode. + + + + + Specifies the default printing mode. One report page produces + one printed paper sheet of the same size. + + + + + Specifies the split mode. Big report page produces several smaller paper sheets. + Use this mode to print A3 report on A4 printer. + + + + + Specifies the scale mode. One or several report pages produce one bigger paper sheet. + Use this mode to print A5 report on A4 printer. + + + + + Specifies the number of report pages printed on one paper sheet. + + + + + Specifies one report page per sheet. + + + + + Specifies two report pages per sheet. + + + + + Specifies four report pages per sheet. + + + + + Specifies eight report pages per sheet. + + + + + Specifies the pages to print. + + + + + Print all report pages. + + + + + Print odd pages only. + + + + + Print even pages only. + + + + + This class contains the printer settings. + It is used in the property. + + + Typical use of this class is to setup a printer properties without using the "Print" + dialog. In this case, setup necessary properties and turn off the dialog via the + property. + + + + + Gets or sets the printer name. + + + + + Gets or sets a value indicating that the printer name should be saved in a report file. + + + If this property is set to true, the printer name will be saved in a report file. + Next time when you open the report, the printer will be automatically selected. + + + + + Gets or sets a value indicating that the printing output should be send + to a file instead of a printer. + + + Also set the property. + + + + + The name of a file to print the report to. + + + This property is used if property is true. + + + + + Gets or sets a value specifies the page range to print. + + + + + Gets or sets the page number(s) to print. + + + This property is used if property is set to PageNumbers. + You can specify the page numbers, separated by commas, or the page ranges. + For example: "1,3,5-12". + + + + + Gets or sets the number of copies to print. + + + + + Gets or sets a value indicating whether the printed document should be collated. + + + + + Gets or sets a value specifies the pages to print. + + + + + Gets or sets a value determines whether to print pages in reverse order. + + + + + Gets or sets the duplex mode. + + + + + Gets or sets the paper source. + + + This property corresponds to the RAW source number. Default value is 7 which + corresponds to DMBIN_AUTO. + + + + + Gets or sets the print mode. + + + See the enumeration for details. If you use + the mode other than Default, you must specify the sheet size in the + , properties. + + + + + Gets or sets the width of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper width in millimeters. + + + + + Gets or sets the height of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper height in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + + + Gets or sets the number of pages per printed sheet. + + + This property is used if the property is set to Scale. + + + + + Gets or sets an array of printed copy names, such as "Original", "Copy", etc. + + + + + Specifies whether to display the "Print" dialog. + + + + + + + + Assigns values from another source. + + Source to assign from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a report object. + + + The instance of this class contains a report. Here are some common + actions that can be performed with this object: + + + To load a report, use the + method or call static method. + + + To save a report, call the method. + + + To register application dataset for use it in a report, call one of the + RegisterData methods. + + + To pass some parameter to a report, use the + method. + + + To design a report, call the method. + + + To run a report and preview it, call the method. + Another way is to call the method, then call the + method. + + + To run a report and print it, call the method. + Another way is to call the method, then call the + method. + + + To load/save prepared report, use one of the LoadPrepared and + SavePrepared methods. + + + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + The report consists of one or several report pages (pages of the + type) and/or dialog forms (pages of the type). + They are stored in the collection. In turn, each page may contain report + objects. See the example below how to create a simple report in code. + + This example shows how to create a report instance, load it from a file, + register the application data, run and preview. + + Report report = new Report(); + report.Load("reportfile.frx"); + report.RegisterData(application_dataset); + report.Show(); + + This example shows how to create simple report in code. + + Report report = new Report(); + // create the report page + ReportPage page = new ReportPage(); + page.Name = "ReportPage1"; + // set paper width and height. Note: these properties are measured in millimeters. + page.PaperWidth = 210; + page.PaperHeight = 297; + // add a page to the report + report.Pages.Add(page); + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create Text object and put it to the title + TextObject text = new TextObject(); + text.Name = "Text1"; + text.Bounds = new RectangleF(0, 0, Units.Millimeters * 100, Units.Millimeters * 5); + page.ReportTitle.Objects.Add(text); + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to a page + page.Bands.Add(data); + + + + + + Gets a reference to the report designer. + + + This property can be used when report is designing. In other cases it returns null. + + + + + Runs the report designer. + + true if report was modified, otherwise false. + + + + Runs the report designer. + + A value indicates whether the designer should run modally. + true if report was modified, otherwise false. + + + + Runs the report designer. + + The main MDI form which will be a parent for the designer. + true if report was modified, otherwise false. + + + + Gets the email settings such as recipients, subject, message body. + + + + + Gets or sets the report preview control. + + + Use this property to attach a custom preview to your report. To do this, place the PreviewControl + control to your form and set the report's Preview property to this control. + + + + + Gets the print settings such as printer name, copies, pages to print etc. + + + + + + + + + + Prepares the report and prints it. + + + + + Prints the report with the "Print" dialog. + Report should be prepared using the method. + + + + + Prints the report without the "Print" dialog. + Report should be prepared using the method. + + Printer-specific settings. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Prepares the report and shows it in the preview window. + + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Prepares the report and shows it in the preview window. + + The main MDI form which will be a parent for the preview window. + + + + Previews the report. The report should be prepared using the method. + + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Previews the prepared report. + + The main MDI form which will be a parent for the preview window. + + + + Shows the "Print" dialog. + + Printer-specific settings. + true if the dialog was closed by "Print" button. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Occurs when calc execution is started. + + + + + Occurs when report is inherited and trying to load a base report. + + + Typical use of this event is to load the base report from a database instead of a file. + + + + + Occurs when report execution is started. + + + + + Occurs when report execution is finished. + + + + + Occurs before export to set custom export parameters. + + + + + Gets the pages contained in this report. + + + This property contains pages of all types (report and dialog). Use the is/as operators + if you want to work with pages of ReportPage type. + + The following code demonstrates how to access the first report page: + + ReportPage page1 = report1.Pages[0] as ReportPage; + + + + + + Gets the report's data. + + + The dictionary contains all data items such as connections, data sources, parameters, + system variables. + + + + + Gets the collection of report parameters. + + + Parameters are displayed in the "Data" window under the "Parameters" node. + Typical use of parameters is to pass some static data from the application to the report. + You can print such data, use it in the data row filter, script etc. + Another way to use parameters is to define some reusable piece of code, for example, + to define an expression that will return the concatenation of first and second employee name. + In this case, you set the parameter's Expression property to something like this: + [Employees.FirstName] + " " + [Employees.LastName]. Now this parameter may be used in the report + to print full employee name. Each time you access such parameter, it will calculate the expression + and return its value. + You can create nested parameters. To do this, add the new Parameter to the + Parameters collection of the root parameter. To access the nested parameter, you may use the + method. + To get or set the parameter's value, use the and + methods. To set the parameter's expression, use the + method that returns a Parameter object and set its + Expression property. + + + + + Gets or sets the report information such as report name, author, description etc. + + + + + Gets or sets the base report file name. + + + This property contains the name of a report file this report is inherited from. + Note: setting this property to non-empty value will clear the report and + load the base file into it. + + + + + Gets or sets the absolute path to the parent report. + + + This property contains the absolute path to the parent report. + + + + + Gets or sets the name of a file the report was loaded from. + + + This property is used to support the FastReport.Net infrastructure; + typically you don't need to use it. + + + + + Gets or sets the report script. + + + The script contains the ReportScript class that contains all report objects' + event handlers and own items such as private fields, properties, methods etc. The script + contains only items written by you. Unlike other report generators, the script does not + contain report objects declarations, initialization code. It is added automatically when + you run the report. + By default this property contains an empty script text. You may see it in the designer + when you switch to the Code window. + If you set this property programmatically, you have to declare the FastReport + namespace and the ReportScript class in it. Do not declare report items (such as bands, + objects, etc) in the ReportScript class: the report engine does this automatically when + you run the report. + Security note: since the report script is compiled into .NET assembly, it allows + you to do ANYTHING. For example, you may create a script that will read/write files from/to a disk. + To restrict such operations, use the property. + + + + + Gets or sets the script language of this report. + + + Note: changing this property will reset the report script to default empty script. + + + + + Gets or sets a value indicating whether the null DB value must be converted to zero, false or + empty string depending on the data column type. + + + This property is true by default. If you set it to false, you should check + the DB value before you do something with it (for example, typecast it to any type, use it + in a expression etc.) + + + + + Gets or sets a value that specifies whether the report engine should perform the second pass. + + + Typically the second pass is necessary to print the number of total pages. It also + may be used to perform some calculations on the first pass and print its results on the + second pass. + Use the Engine.FirstPass, Engine.FinalPass properties to determine which + pass the engine is performing now. + + + + + Gets or sets a value that specifies whether to compress the report file. + + + The report file is compressed using the Gzip algorithm. So you can open the + compressed report in any zip-compatible archiver. + + + + + Gets or sets a value that specifies whether to use the file cache rather than memory + to store the prepared report pages. + + + + + Gets or sets a value that specifies the quality of text rendering. + + + Note: the default property value is TextQuality.Default. That means the report + may look different depending on OS settings. This property does not affect the printout. + + + + + Gets or sets a value that specifies if the graphic objects such as bitmaps + and shapes should be displayed smoothly. + + + + + Gets or sets the report password. + + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in this property before loading + the report. In this case the report will load silently. + Password-protected report file is crypted using Rijndael algorithm. + Do not forget your password! It will be hard or even impossible to open + the protected file in this case. + + + + + Gets or sets a value indicating whether it is necessary to automatically fill + DataSet registered with RegisterData call. + + + If this property is true (by default), FastReport will automatically fill + the DataSet with data when you trying to run a report. Set it to false if + you want to fill the DataSet by yourself. + + + + + Gets or sets the maximum number of generated pages in a prepared report. + + + Use this property to limit the number of pages in a prepared report. + + + + + Gets or sets the collection of styles used in this report. + + + + + Gets or sets an array of assembly names that will be used to compile the report script. + + + By default this property contains the following assemblies: "System.dll", "System.Drawing.dll", + "System.Windows.Forms.dll", "System.Data.dll", "System.Xml.dll". If your script uses some types + from another assemblies, you have to add them to this property. + + + + + Gets or sets a script event name that will be fired when the report starts. + + + + + Gets or sets a script event name that will be fired when the report is finished. + + + + + Gets a value indicating that report execution was aborted. + + + + + Gets or sets a value that determines whether to store the report in the application resources. + Use this property in the MS Visual Studio IDE only. + + + By default this property is true. When set to false, you should store your report + in a file. + + + + + Gets or sets the resource string that contains the report. + + + This property is used by the MS Visual Studio to store the report. Do not use it directly. + + + + + Gets a value indicating that this report contains dialog forms. + + + + + Gets or sets a set of permissions that will be restricted for the script code. + + + Since the report script is compiled into .NET assembly, it allows you to do ANYTHING. + For example, you may create a script that will read/write files from/to a disk. This property + is used to restrict such operations. + This example shows how to restrict the file IO operations in a script: + + using System.Security; + using System.Security.Permissions; + ... + PermissionSet ps = new PermissionSet(PermissionState.None); + ps.AddPermission(new FileIOPermission(PermissionState.Unrestricted)); + report1.ScriptRestrictions = ps; + report1.Prepare(); + + + + + + + Gets a reference to the graphics cache for this report. + + + This property is used to support the FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a pages of the prepared report. + + + + + Gets a reference to the report engine. + + + This property can be used when report is running. In other cases it returns null. + + + + + Gets or sets the initial page number for PageN/PageNofM system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the report operation that is currently performed. + + + + + Gets or sets the Tag object of the report. + + + + + Gets or sets the flag for refresh. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the report's fields. + + + This method is for internal use only. + + + + + Generates the file (.cs or .vb) that contains the report source code. + + Name of the file. + + Use this method to generate the report source code. This code can be attached to your project. + In this case, you will need to call the following code to run a report: + + SimpleListReport report = new SimpleListReport(); + report.RegisterData(your_dataset); + report.Show(); + + + + + + Calculates an expression and returns the result. + + The expression to calculate. + If report is running, returns the result of calculation. + Otherwise returns null. + + The expression may be any valid expression such as "1 + 2". The expression + is calculated in the report script's ReportScript class instance context, + so you may refer to any objects available in this context: private fields, + methods, report objects. + + + + + Calculates an expression and returns the result. + + The expression to calculate. + The value of currently printing object. + If report is running, returns the result of calculation. + Otherwise returns null. + + Do not call this method directly. Use the Calc(string expression) method instead. + + + + + Returns an expression value. + + The expression. + The value of currently printing object. + Returns the result of calculation. + + This method is for internal use only, do not call it directly. + + + + + Invokes the script event handler with given name. + + The name of the script method. + The method parameters. + + + + Gets the data column's value. Automatically converts null value to 0, false or "" + depending on the column type. + + The name of the data column including the datasource name. + If report is running, returns the column value. Otherwise returns null. + + The return value of this method does not depend on the property. + + + + string employeeName = (string)report.GetColumnValue("Employees.FirstName"); + + + + + + Gets the data column's value. This method does not convert null values. + + The name of the data column including the datasource name. + If report is running, returns the column value. + Otherwise returns null. + + + + Gets the report parameter with given name. + + The name of the parameter. + The object if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Gets a value of the parameter with given name. + + The name of the parameter. + The parameter's value if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Sets the parameter's value. + + The name of the parameter. + Value to set. + + Use this method to pass a value to the parameter that you've created in the "Data" window. + Such parameter may be used everythere in a report; for example, you can print its value + or use it in expressions. + You should call this method after the report was loaded and before you run it. + To access a nested parameter, use the "." separator: "MainParameter.NestedParameter" + + This method will create the parameter if it does not exist. + + + This example shows how to pass a value to the parameter with "MyParam" name: + + // load the report + report1.Load("report.frx"); + // setup the parameter + report1.SetParameterValue("MyParam", 10); + // show the report + report1.Show(); + + + + + + Gets a value of the system variable with specified name. + + Name of a variable. + The variable's value if found, otherwise null. + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise 0. + This method converts null values to 0 if the property is set to true. + Use the method if you don't want the null conversion. + + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise null. + + + + Gets the datasource with specified name. + + Alias name of a datasource. + The datasource object if found, otherwise null. + + + + + + + Aborts the report execution. + + + + + + + + + + + Updates the report component's styles. + + + Call this method if you change the collection. + + + + + Sets prepared pages. + + + + + + This method fires the StartReport event and the script code connected + to the StartReportEvent. + + + + + This method fires the FinishReport event and the script code connected + to the FinishReportEvent. + + + + + Runs the Export event. + + ExportReportEventArgs object. + + + + Add the name of the assembly (in addition to the default) that will be used to compile the report script + + Assembly name + + For example: report.AddReferencedAssembly("Newtonsoft.Json.dll") + + + + + Add the names of the assembly (in addition to the default) that will be used to compile the report script + + Assembly's names + + + + + + + + + + Saves the report to a stream. + + The stream to save to. + + + + Saves the report to a file. + + The name of the file to save to. + + + + Loads report from a stream. + + The stream to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a file. + + The name of the file to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a string. + + The string that contains a stream in UTF8 or Base64 encoding. + + + + Saves the report to a string. + + The string that contains a stream. + + + + Saves the report to a string using the Base64 encoding. + + The string that contains a stream. + + + + Creates the report instance and loads the report from a stream. + + The stream to load from. + The new report instance. + + + + Creates the report instance and loads the report from a file. + + The name of the file to load from. + The new report instance. + + + + Creates the report instance and loads the report from a string. + + The string that contains a stream in UTF8 encoding. + The new report instance. + + + + Registers the application dataset with all its tables and relations to use it in the report. + + The application data. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1); + + + + + + Registers the application dataset with all its tables and relations to use it in the report and enables all its tables. + + The application data. + The boolean value indicating whether all tables should be enabled. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, true); + + + + + + Registers the application dataset with specified name. + + The application data. + The name of the data. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind"); + + + + + + Registers the application dataset with specified name and enables all its tables. + + The application data. + The name of the data. + The boolean value indicating whether all tables should be enabled. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind", true); + + + + + + Registers the application data table to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1.Tables["Orders"], "Orders"); + + + + + + Registers the application data view to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myDataView, "OrdersView"); + + + + + + Registers the application data relation to use it in the report. + + The application data. + The name of the data. + + You may specify any value for the name parameter: it is not displayed anywhere + in the designer and used only to load/save a report. The name must be persistent + and unique for each registered relation. + + + + report1.Load("report.frx"); + report1.RegisterData(myDataRelation, "myRelation"); + + + + + + Obsolete. Registers the application business object to use it in the report. + + Application data. + Name of the data. + Not used. + Maximum nesting level of business objects. + + This method is obsolete. Use the method instead. + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myBusinessObject, "Customers"); + + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + Maximum nesting level of business objects. + + This method creates initial datasource with specified nesting level. It is useful if + you create a report in code. In most cases, you don't need to specify the nesting level + because it may be selected in the designer's "Choose Report Data" dialog. + + + + + Registers the application cube link to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myCubeLink, "Orders"); + + + + + + Prepares the report. + + true if report was prepared succesfully. + + + + Prepares the report. + + Specifies whether the new report should be added to a + report that was prepared before. + true if report was prepared succesfully. + + Use this method to merge prepared reports. + + This example shows how to merge two reports and preview the result: + + Report report = new Report(); + report.Load("report1.frx"); + report.Prepare(); + report.Load("report2.frx"); + report.Prepare(true); + report.ShowPrepared(); + + + + + + Prepares the report with pages limit. + + Pages limit. The number of pages equal or less will be prepared. + true if report was prepared succesfully. + + + + For internal use only. + + + + + For internal use only. + + + + + Refresh the current report. + + + Call this method in the Click or MouseUp event handler of a report object to refresh + the currently previewed report. Report will be generated again, but without dialog forms. + + + + + Refresh prepared report after intercative actions. + + + + + Prepare page + + + + + + Exports a report. Report should be prepared using the method. + + The export filter. + Stream to save export result to. + + + + Exports a report. Report should be prepared using the method. + + The export filter. + File name to save export result to. + + + + Saves the prepared report. Report should be prepared using the method. + + File name to save to. + + + + Saves the prepared report. Report should be prepared using the method. + + Stream to save to. + + + + Loads the prepared report from a .fpx file. + + File name to load form. + + + + Loads the prepared report from a .fpx file. + + Stream to load from. + + + + Initializes a new instance of the class with default settings. + + + + + Ensure that static constructor is called. + + + + + Create name for all unnamed elements with prefix and start with number + + Prefix for name + Number from which to start + + + + The style of the report object markers. + + + + + Rectangle marker. + + + + + Small markers at the object's corners. + + + + + Base class for all report objects. + + + + + + + + + + + + + + + + + Assigns a format from another, similar object. + + Source object to assign a format from. + + + + + + + + + + Draws the object's markers. + + Draw event arguments. + + + + Draws the object's markers. + + Draw event arguments. + Marker style + + + + + + + + + + + + + This event occurs when the user moves the mouse over the object in the preview window. + + + + + This event occurs when the user releases the mouse button in the preview window. + + + + + This event occurs when the user clicks the mouse button in the preview window. + + + + + This event occurs when the mouse enters the object's bounds in the preview window. + + + + + This event occurs when the mouse leaves the object's bounds in the preview window. + + + + + Copies event handlers from another similar object. + + The object to copy handlers from. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method is fired when the user scrolls the mouse in the preview window. + + Event data. + + + + This event occurs before the object is added to the preview pages. + + + + + This event occurs after the object was added to the preview pages. + + + + + This event occurs after the object was filled with data. + + + + + This event occurs when the user clicks the object in the preview window. + + + + + Gets or sets a value that determines if the object can be exported. + + + + + Gets or sets a string containing expression that determines should be object exported. + + + + + Gets or sets an object's border. + + + + + Gets or sets an object's fill. + + + The fill can be one of the following types: , , + , . + To set the solid fill color, use the simpler property. + + This example shows how to set the new fill and change its properties: + + textObject1.Fill = new SolidFill(Color.Green); + (textObject1.Fill as SolidFill).Color = Color.Red; + + + + + + Gets or sets the fill color in a simple manner. + + + This property can be used in a report script to change the fill color of the object. It is + equivalent to: reportComponent1.Fill = new SolidFill(color); + + + + + Gets or sets a bookmark expression. + + + This property can contain any valid expression that returns a bookmark name. This can be, for example, + a data column. To navigate to a bookmark, you have to use the property. + + + + + Gets or sets a hyperlink. + + + The hyperlink is used to define clickable objects in the preview. + When you click such object, you may navigate to the external url, the page number, + the bookmark defined by other report object, or display the external report. + Set the Kind property of the hyperlink to select appropriate behavior. + Usually you should set the Expression property of the hyperlink to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to + something fixed (URL or page number, for example) you also may set the Value + property instead of Expression. + + + + + Determines if the object can grow. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object will grow to display all the information that it contains. + + + + + Determines if the object can shrink. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object can shrink to remove the unused space. + + + + + Determines if the object must grow to the band's bottom side. + + + If the property is set to true, object grows to the bottom side of its parent. This is useful if + you have several objects on a band, and some of them can grow or shrink. + + + + + Gets or sets a shift mode of the object. + + + See enumeration for details. + + + + + Gets or sets the style name. + + + Style is a set of common properties such as border, fill, font, text color. The Report + has a set of styles in the property. + + + + + Gets or sets a style name that will be applied to even band rows. + + + Style with this name must exist in the collection. + + + + + Gets or sets a style name that will be applied to this object when the mouse pointer is over it. + + + Style with this name must exist in the collection. + + + + + Gets or sets a value that determines which properties of the even style to use. + + + Usually you will need only the Fill property of the even style to be applied. If you want to + apply all style settings, set this property to StylePriority.UseAll. + + + + + Gets or sets a value that determines where to print the object. + + + See the enumeration for details. + + + + + Gets or sets a script event name that will be fired before the object will be printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was filled with data. + + + + + Gets or sets a script event name that will be fired when the user click the object in the preview window. + + + + + Determines if the object has custom border and use only Border.Width, Border.Style and + Border.Color properties. + + + This flag is used to disable some toolbar buttons when such object is selected. Applicable to the + ShapeObject and LineObject. + + + + + Determines if the object uses the Border. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Determines if the object uses the fill. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Gets or sets a value indicates that object should not be added to the preview. + + + + + Determines if serializing the Style property is needed. + + + The Style property must be serialized last. Some ancestor classes may turn off the standard Style + serialization and serialize it by themselves. + + + + + Determines if an object can provide the hyperlink value automatically. + + + This flag is used in complex objects such as Matrix or Chart. These objects can provide + a hyperlink value automatically, depending on where you click. + + + + + Gets an object's parent band. + + + + + Gets an object's parent data band. + + + + + Gets or sets an object's cursor shape. + + + This property is used in the preview mode. + + + + + Gets or sets a script event name that will be fired when the user + moves the mouse over the object in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + releases the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + clicks the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse enters the object's bounds in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse leaves the object's bounds in the preview window. + + + + + + + + Applies the style settings. + + Style to apply. + + + + Saves the current style. + + + + + Restores the current style. + + + + + Draws the object's background. + + Draw event arguments. + + + + + + + Determines if the object is visible on current drawing surface. + + Draw event arguments. + + + + + + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + + + + Checks if there are any listeners to the Click event. + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Performs a finalization after the report is finished. + + + This method is used by the report engine, do not call it directly. + + + + + Saves the object's state before printing it. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should save any object properties that may be changed during the object printing. + The standard implementation saves the object's bounds, visibility, bookmark and hyperlink. + + + + + Restores the object's state after printing it. + + + This method is called by the report engine after processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should restore the object properties that were saved by the method. + + + + + Calculates the object's height. + + Actual object's height, in pixels. + + Applicable to objects that contain several text lines, such as TextObject. Returns the height needed + to display all the text lines. + + + + + Gets the data from a datasource that the object is connected to. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should get the data from a datasource that the object is connected to. + + + + + + + + This method fires the BeforePrint event and the script code connected to the BeforePrintEvent. + + Event data. + + + + This method fires the AfterPrint event and the script code connected to the AfterPrintEvent. + + Event data. + + + + This method fires the AfterData event and the script code connected to the AfterDataEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific + to the ReportComponentBase. + + + + + The "Can Grow" menu item. + + + + + The "Can Shrink" menu item. + + + + + The "Grow to Bottom" menu item. + + + + + The "Hyperlink" menu item. + + + + + The "Style" menu item. + + + + + Initializes a new instance of the ReportComponentBaseMenu + class with default settings. + + The reference to a report designer. + + + + Represents a report page. + + + To get/set a paper size and orientation, use the , + and properties. Note that paper size is measured in millimeters. + Report page can contain one or several bands with report objects. Use the , + , , , + , , properties + to get/set the page bands. The property holds the list of data bands or groups. + Thus you may add several databands to this property to create master-master reports, for example. + + Report page can contain bands only. You cannot place report objects such as TextObject on a page. + + + + This example shows how to create a page with one ReportTitleBand and DataBand bands and add + it to the report. + + ReportPage page = new ReportPage(); + // set the paper in millimeters + page.PaperWidth = 210; + page.PaperHeight = 297; + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to the page + page.Bands.Add(data); + // add page to the report + report.Pages.Add(page); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets a value indicating that imperial units (inches, hundreths of inches) are used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + + + + Gets or sets the paper source for the first printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the first page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for all printed pages except the first one. + + + + This property represents the paper source (printer tray) that will be used when printing + all pages except the first one and the last one. To set source for first and last pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for the last printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the last page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the printer duplex mode that will be used when printing this page. + + + + + This event occurs when the report engine starts this page. + + + + + This event occurs when the report engine finished this page. + + + + + This event occurs when the report engine is about to print databands in this page. + + + + + Gets or sets a width of the paper, in millimeters. + + + + + Gets or sets the page name on export + + + + + Gets or sets a height of the paper, in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + This property stores the RawKind value of a selected papersize. It is used to distiguish + between several papers with the same size (for ex. "A3" and "A3 with no margins") used in some + printer drivers. + It is not obligatory to set this property. FastReport will select the + necessary paper using the PaperWidth and PaperHeight values. + + + + + Gets or sets a value indicating whether the page has unlimited height. + + + + + Gets or sets the value indicating whether the unlimited page should be printed on roll paper. + + + + + Gets or sets a value indicating whether the page has unlimited width. + + + + + Get or set the current height of unlimited page. + + + + + Get or set the current width of unlimited page. + + + + + Gets the current page height in pixels. + + + + + Gets the current page width in pixels. + + + + + Gets or sets a value indicating that page should be in landscape orientation. + + + When you change this property, it will automatically swap paper width and height, as well as paper margins. + + + + + Gets or sets the left page margin, in millimeters. + + + + + Gets or sets the top page margin, in millimeters. + + + + + Gets or sets the right page margin, in millimeters. + + + + + Gets or sets the bottom page margin, in millimeters. + + + + + Gets or sets a value indicating that even pages should swap its left and right margins when + previewed or printed. + + + + + Gets the page columns settings. + + + + + Gets or sets the page border that will be printed inside the page printing area. + + + + + Gets or sets the page background fill. + + + + + Gets or sets the page watermark. + + + To enabled watermark, set its Enabled property to true. + + + + + Gets or sets a value indicating that ReportTitle band should be printed before the + PageHeader band. + + + + + Gets or sets an outline expression. + + + For more information, see property. + + + + + Gets or sets a value indicating whether to start to print this page on a free space of the previous page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating that FastReport engine must reset page numbers before printing this page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating whether the page has extra width in the report designer. + + + This property may be useful if you work with such objects as Matrix and Table. + + + + + Gets or sets a value indicating whether this page will start on an odd page only. + + + This property is useful to print booklet-type reports. Setting this property to true + means that this page will start to print on an odd page only. If necessary, an empty page + will be added to the prepared report before this page will be printed. + + + + + Uses this page as a back page for previously printed pages. + + + + + Gets or sets a report title band. + + + + + Gets or sets a report summary band. + + + + + Gets or sets a page header band. + + + + + Gets or sets a page footer band. + + + + + Gets or sets a column header band. + + + + + Gets or sets a column footer band. + + + + + Gets or sets an overlay band. + + + + + Gets the collection of data bands or group header bands. + + + The Bands property holds the list of data bands or group headers. + Thus you may add several databands to this property to create master-master reports, for example. + + + + + Gets or sets the page guidelines. + + + This property hold all vertical guidelines. The horizontal guidelines are owned by the bands (see + property). + + + + + Gets or sets the reference to a parent SubreportObject that owns this page. + + + This property is null for regular report pages. See the for details. + + + + + Gets or sets a script event name that will be fired when the report engine starts this page. + + + + + Gets or sets a script event name that will be fired when the report engine finished this page. + + + + + Gets or sets a script event name that will be fired when the report engine is about + to print databands in this page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the StartPage event and the script code connected to the StartPageEvent. + + + + + This method fires the FinishPage event and the script code connected to the FinishPageEvent. + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains settings that will be applied to the Report component. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs after printing a report. + + + + + Occurs when progress state is changed. + + + + + Gets or sets a value that determines whether to show the progress window + when perform time-consuming operations such as run, print, export. + + + + + Gets or sets a value that determines whether to show the information about + the report performance (report generation time, memory consumed) in the + lower right corner of the preview window. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Occurs when discovering the structure of business object of ICustomTypeDescriptor type + with no instance specified. + + + The event handler must return an instance of that type. + + + + + Gets or sets the default script language. + + + + + Gets or sets the default paper size used when creating a new report. + + + + + Gets or sets a value indicating that the business object engine will use property values + when possible to discover the BO structure. + + + + + Gets or sets the default path for root of PictureObject.ImageLocation path. + + + + + Initializes a new instance of the class. + + + + + Represents a report summary band. + + + + + This property is not relevant to this class. + + + + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Alignment" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Aligns left edges of the selected objects. + + + + + Aligns right edges of the selected objects. + + + + + Aligns centers of the selected objects. + + + + + Aligns top edges of the selected objects. + + + + + Aligns bottom edges of the selected objects. + + + + + Aligns middles of the selected objects. + + + + + Makes the selected objects the same width as the first object. + + + + + Makes the selected objects the same height as the first object. + + + + + Makes the selected objects the same size as the first object. + + + + + Centers the selected objects horizontally. + + + + + Centers the selected objects vertically. + + + + + Aligns the selected objects to the grid. + + + + + Adjusts the size of selected objects to the grid. + + + + + Spaces the selected objects horizontally. + + + + + Increases horizontal spacing between the selected objects. + + + + + Decreases horizontal spacing between the selected objects. + + + + + Removes horizontal spacing between the selected objects. + + + + + Spaces the selected objects vertically. + + + + + Increases vertical spacing between the selected objects. + + + + + Decreases vertical spacing between the selected objects. + + + + + Removes vertical spacing between the selected objects. + + + + + Holds the list of selected objects of type. Used by the + . + + + + + Gets a value indicating that report page is selected. + + + + + Gets a value indicating that report is selected. + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Border and Fill" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. + If you want to access all selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Gets a value indicating whether the object with simple border is selected. + + + When the object has a simple border, you cannot change individual border lines. + Example of such an object is the "Shape" and "Line" objects. + + + + + Gets a value indicating whether the border operations are enabled. + + + + + Gets a value indicating whether the fill operations are enabled. + + + + + Sets the solid fill color for the selected objects. + + Fill color. + + + + Sets the fill for the selected objects. + + Fill. + + + + Sets the style for the selected objects. + + Style name. + + + + Sets the hyperlink for the selected objects. + + Hyperlink. + Indicates whether to modify the object's appearance. + Indicates whether it is necessary to change designer's modified state. + + + + Sets the CanGrow flag for the selected objects. + + Flag value. + + + + Sets the CanShrink flag for the selected objects. + + Flag value. + + + + Sets the GrowToBottom flag for the selected objects. + + Flag value. + + + + Toggles the specified border line for the selected objects. + + Border line. + Toggle value. + + + + Sets the border color for the selected objects. + + Border color. + + + + Sets the border width for the selected objects. + + Border width. + + + + Sets the border style for the selected objects. + + Border style. + + + + Sets the border for the selected objects. + + Border. + + + + Invokes the fill editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the border editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the hyperlink editor for the selected objects. + + true if editor was closed by the OK button. + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Text" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Sets the font name for the selected objects. + + Font name. + + + + Sets the font size for the selected objects. + + Font size. + + + + Toggles the specified font style for the selected objects. + + Font style. + Toggle value. + + + + Sets the horizontal text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the vertical text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the text color for the selected objects. + + Text color. + + + + Sets the angle for the selected objects. + + Angle to set. + + + + Sets the AutoWidth property value for the selected objects. + + Value to set. + + + + Sets the WordWrap property value for the selected objects. + + Value to set. + + + + Sets the highlight conditions for the selected objects. + + Highlight conditions. + + + + Clears the text of the selected objects. + + + + + Invokes the highlight editor for the selected objects. + + true if editor was closed with the OK button. + + + + Represents a shape object. + + + Use the property to specify a shape. To set the width, style and color of the + shape's border, use the Border.Width, Border.Style and Border.Color properties. + + + + + + + + + + + Gets or sets a shape kind. + + + + + Gets or sets a shape curvature if is RoundRectangle. + + + 0 value means automatic curvature. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for smart tags. + + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + Smart tag is internally a ContextMenuStrip. + + + + + + Gets the underlying context menu. + + + + + Gets the report object that invokes this smart tag. + + + + + Gets the report designer. + + + + + Called when the menu item is clicked. + + + Override this method to define a reaction on the menu item click. + + + + + Creates the smart tag menu items. + + + Override this method to create the smart tag menu. + + + + + Displays a smart tag at the specified screen location. + + + Do not call this method directly. It is called automatically when click on smart tag button. + + Screen location. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the base class for the report style or the highlight condition. + + + + + Gets or sets a value determines that the border must be applied. + + + + + Gets or sets a value determines that the fill must be applied. + + + + + Gets or sets a value determines that the font must be applied. + + + + + Gets or sets a value determines that the text fill must be applied. + + + + + Gets or sets a border. + + + + + Gets or sets a fill. + + + + + Gets or sets a font. + + + + + Gets or sets a text fill. + + + + + Initializes a new instance of the class with default settings. + + + + + Assigns values from another source. + + Source to assign from. + + + + Deserializes the style. + + Reader object. + + This method is for internal use only. + + + + + Serializes the style. + + Writer object. + + This method is for internal use only. + + + + + Represents a subreport object. + + + To create a subreport in code, you should create the report page first and + connect it to the subreport using the property. + + The following example shows how to create a subreport object in code. + + // create the main report page + ReportPage reportPage = new ReportPage(); + reportPage.Name = "Page1"; + report.Pages.Add(reportPage); + // create report title band + reportPage.ReportTitle = new ReportTitleBand(); + reportPage.ReportTitle.Name = "ReportTitle1"; + reportPage.ReportTitle.Height = Units.Millimeters * 10; + // add subreport on it + SubreportObject subreport = new SubreportObject(); + subreport.Name = "Subreport1"; + subreport.Bounds = new RectangleF(0, 0, Units.Millimeters * 25, Units.Millimeters * 5); + reportPage.ReportTitle.Objects.Add(subreport); + // create subreport page + ReportPage subreportPage = new ReportPage(); + subreportPage.Name = "SubreportPage1"; + report.Pages.Add(subreportPage); + // connect the subreport to the subreport page + subreport.ReportPage = subreportPage; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a report page that contains the subreport bands and objects. + + + + + Gets or sets a value indicating that subreport must print its objects on a parent band to which it belongs. + + + Default behavior of the subreport is to print subreport objects they own separate bands. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a paragraph format for a new html rendering type, not for others rendering + + + + + Gets or sets a value that determines if the text object should handle its width automatically. + + + + + Gets or sets a value that indicates whether the font size should shrink to + display the longest text line without word wrap. + + + To limit the minimum size, use the property. + + + + + Gets or sets the minimum size of font (or minimum width ratio) if the + mode is on. + + + This property determines the minimum font size (in case the property is set to + FontSize), or the minimum font width ratio (if AutoShrink is set to FontWidth). + The default value is 0, that means no limits. + + + + + Gets or sets the horizontal alignment of a text in the TextObject object. + + + + + Gets or sets the vertical alignment of a text in the TextObject object. + + + + + Gets or sets the text angle, in degrees. + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + Gets or sets a value that indicates if lines are automatically word-wrapped. + + + + + Gets or sets a value that determines if the text object will underline each text line. + + + + + Gets or sets the font settings for this object. + + + + + Gets or sets a collection of TAB symbol positions, in pixels. + + Use collection methods to add or remove TAB positions. + + + + Gets or sets the fill color used to draw a text. + + + Default fill is . You may specify other fill types, for example: + + text1.TextFill = new HatchFill(Color.Black, Color.White, HatchStyle.Cross); + + Use the property to set the solid text color. + + + + + Gets or sets the text outline. + + + + + Gets or sets the text color in a simple manner. + + + This property can be used in a report script to change the text color of the object. It is + equivalent to: textObject1.TextFill = new SolidFill(color); + + + + + Gets or sets the string trimming options. + + + + + Gets or sets the width ratio of the font. + + + Default value is 1. To make a font wider, set a value grether than 1; to make a font narrower, + set a value less than 1. + + + + + Gets or sets the height of single text line, in pixels. + + + + + Gets or sets the offset of the first TAB symbol. + + + + + Gets or sets the width of TAB symbol, in pixels. + + + + + Gets or sets a value that indicates if text should be clipped inside the object's bounds. + + + + + Gets the collection of conditional highlight attributes. + + + Conditional highlight is used to change the visual appearance of the Text object + depending on some condition(s). For example, you may highlight negative values displayed by + the Text object with red color. To do this, add the highlight condition: + + TextObject text1; + HighlightCondition highlight = new HighlightCondition(); + highlight.Expression = "Value < 0"; + highlight.Fill = new SolidFill(Color.Red); + highlight.ApplyFill = true; + text1.Highlight.Add(highlight); + + + + + + Gets or sets a value that indicates if the text object should display its contents similar to the printout. + + + + + Forces justify for the last text line. + + + + + Allows handling html tags in the text. + + + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Indicates handling html tags in the text. + + To set the value use the TextRenderer property. + + + + The type of text render + + /// + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Gets or sets the paragraph offset, in pixels. For HtmlParagraph use ParagraphFormat.FirstLineIndent. + + + + + Cache for inline images + + + + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + Base class for text objects such as and . + + + This class implements common functionality of the text objects. + + + + + + + + + + + + + + Gets or sets a value indicating that the object's text may contain expressions. + + + + + Gets or sets the symbols that will be used to find expressions in the object's text. + + + The default property value is "[,]". As you can see, the open and close symbols are + separated by the comma. You may use another symbols, for example: "<,>" or "<%,%>". + You should use different open and close symbols. + + + + + Gets or sets the object's text. + + + Text may contain expressions and data items, for example: "Today is [Date]". + When report is running, all expressions are calculated and replaced with actual + values, so the text would be "Today is 01.01.2008". + + + + + Gets or sets padding within the text object. + + + + + Gets or sets a value indicating that zero values must be hidden. + + + + + Gets or sets a value that will be hidden. + + + Use this property to specify a value that you would like to hide. For example, specify "0" + if you want to hide zero values, or use property to do this. + You also may use this property to hide default DateTime values (such as 1/1/1900). + In this case you need to specify a string containing both date and time, for example: + "1/1/1900 0:00:00". + + FastReport uses the ToString conversion to compare the expression value with this property. + This conversion depends on regional settings selected in the Control Panel, so be aware of this + if you going to distribute your report worldwide. + + + + + + Gets or sets a string that will be displayed instead of a null value. + + + + + Gets or sets the formatter that will be used to format data in the Text object. + + + The default formatter does nothing, i.e. it shows expression values with no formatting. + To set another formatting, create a new formatter and assign it to this property. + If there are several expressions in the text, use the property + to format each expression value. + + This example shows how to set currency formatter. + + TextObject text1; + text1.Format = new CurrencyFormat(); + + + + + + Gets or sets a value that specifies how the report engine processes this text object. + + + Use this property to perform such task as "print a total value in the group header". Normally, + all total values are calculated in the footers (for example, in a group footer). If you try to print + a total value in the group header, you will get 0. If you set this property to + ProcessAt.DataFinished, FastReport will do the following: + + + print the object (with wrong value); + + + print all related data rows; + + + calculate the correct object's value and replace old (wrong) value with the new one. + + + + This option will not work if you set the to true. + + + + + + Gets the collection of formatters. + + + This property is used to set format for each expression contained in the text. + For example, if the TextObject contains two expressions: + Today is [Date]; Page [PageN] + you can use the following code to format these expressions separately: + + text1.Formats.Clear(); + text1.Formats.Add(new DateFormat()); + text1.Formats.Add(new NumberFormat()); + + + + + + Gets or sets a value that determines how to display duplicate values. + + + + + Gets a value of expression contained in the object's text. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObjectBase. + + + + + The "Format" menu item. + + + + + The "Allow Expressions" menu item. + + + + + The "Hide Zeros" menu item. + + + + + Initializes a new instance of the TextObjectBaseMenu + class with default settings. + + The reference to a report designer. + + + + The class introduces some menu items specific to the TextObject. + + + + + The "Clear" menu item. + + + + + The "Auto Width" menu item. + + + + + The "Word Wrap" menu item. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Represents a zip code object. + + + This object is mainly used in Russia to print postal index on envelopes. It complies with the + GOST R 51506-99. + + + + + + + + + + + + + + + + + + + + Gets or sets the width of a single zipcode segment, in pixels. + + + + + Gets or sets the height of a single zipcode segment, in pixels. + + + + + Gets or sets the spacing between origins of segments, in pixels. + + + + + Gets or sets the number of segments in zipcode. + + + + + Gets or sets a value indicating whether the reference markers should be drawn. + + + Reference markers are used by postal service to automatically read the zipcode. + + + + + Gets or sets a value indicating whether the segment grid should be drawn. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the zip code. + + + + + Gets or sets the zip code. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with the default settings. + + + + + Box cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Box storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Box client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FastCloud storage client. + + + + + Gets or sets the access token. + + + + + Gets the report URL that can be used to download report from cloud. + + + + + Initializes a new instance of the class. + + + + + + + + Gets the access token. + + The access token string. + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Gets the proxy settings. + + The proxy settings. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FTP storage client. + + + + + Gets or sets the FTP server. + + + + + Gets or sets the username. + + + + + Gets or sets the password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + + + + + + + Represents form of the FTP storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all cloud storage clients. + + + + + Gets or sets the filename. + + + + + Gets or set the information is user authorized or not. + + + + + Gets or sets the proxy settings of a client. + + + + + Initializes a new instance of the class. + + + + + Prepares report before it will be saved to cloud storage. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Creates a MemoryStream instance using a Stream instance. + + The Stream instance that should be converted. + The MemoryStream instance. + + + + Saves a memory stream to cloud. + + The memory stream that should be saved. + + + + Saves the report to cloud storage. + + The report template that should be saved. + The export filter that should export template before. + + + + + Saves the stream to cloud storage. + + The stream that contains report. + The filename in which stream will be saved in cloud. + + + + Represents form of Dropbox storage client. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + Shows a dialog window. + + Modal result. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl. + + + + + Represents the Application Info diabolg form. + + + + + Gets the access token. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Dropbox cloud storage client. + + + + + The base URL for files_put command. + + + + + Gets or sets the application access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Dropbox application access token. + + + + + + + Represents form of Dropbox storage client. + + + + + Initializes a new instance of the class. + + The Dropbox access token. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Gets the client Auth key. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Google Drive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Google Drive storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Google Drive client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the information about SkyDrive application. + + + + + Gets or sets the client name. + + + + + Gets or sets the client ID. + + + + + Gets or sets the client secret. + + + + + Initializes a new instance of the class. + + The client name. + The client ID. + The client secret. + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of SkyDrive storage client. + + + + + Initializes a new instance of the class. + + The SkyDrive client info. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SkyDrive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL string. + + + + Gets the access token. + + The access token value. + + + + Represents the base form for cloud storage web browsers. + + + + + Gets or sets the url string. + + + + + Initizlizes a new instance of the class. + + + + + Initializes a new instance of the class. + + The url string. + + + + Handle the web browser form shown event. + + The event sender. + The event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The web browser component. + + + + + Represents an HTTP request method. + + + + + GET request method. + + + + + POST request method. + + + + + PUT request method. + + + + + Static class that contains HTTP utilities. + + + + + Encodes the URL string. + + The URL string. + The encoded URL string. + + + + Encodes the dictionary with URL parameters. + + The dictionary with parameters. + The encoded string. + + + + Decodes the URL string. + + The URL string. + The decoded URL string. + + + + Represents the consumer. + + + + + Gets the consumer key. + + + + + Gest the consumer secret. + + + + + Gets the consumer's signature method. + + + + + Initializes a new instance of the class. + + The consumer key. + The consumer secret. + + + + Represents parser for parse OAuth responses. + + + + + Parses token information in stream. + + The stream for parse. + The OAuth token. + + + + Parses token information in stream for SkyDrive. + + The stream for parse. + The SkyDrive access token. + + + + Parses token information in stream for Google Drive. + + The stream for parse. + The Google Drive access token. + + + + Parses token information in stream for FastCloud. + + The stream for parse. + The FastCloud access token. + + + + Represents the service provider. + + + + + Gets the request token URL. + + + + + Gets the user authorization URL. + + + + + Gets the callback URL. + + + + + Gets the access token URL. + + + + + Initializes a new instance of the class with a specified parameters. + + The request token URL. + The user authorization URL. + The callback URL. + The access token URL. + + + + Represents the OAuth token credentials. + + + + + Gets the token key. + + + + + Gets the token secret. + + + + + Initializes a new instance of the class. + + The token key. + The token secret. + + + + API for OAuth protocol. + + + + + Builds signed URL. + + The base token URL. + The HTTP method. + The consumer context. + The request token. + Signed URL. + + + + Represents the signature method. + + + + + Signature method PLAINTEXT. + + + + + Signature method HMAC-SHA1. + + + + + Signature method RSA-SHA1. + + + + + Represents proxy settings of the cloud storage. + + + + + Gets or sets the type of proxy. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + The type of proxy. + The proxy server. + The port number of server. + The username. + The user's password. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Provides utils for the web request. + + + + + Sets proxy settings for web request. + + The web request. + The cloud proxy settings. + + + + Represents the parameter of http request. + + + + + Gets the name of a request parameter. + + + + + Gets the value of a request parameter. + + + + + Initializes a naw instance of the class with a specified parameters. + + The name of a request parameter. + The value of a request paramter. + + + + Comparer class for comparing request parameters. + + + + + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Represents the crossview object that is used to print cube slice or slicegrid. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a value indicating whether to show a X Axis fields Caption. + + + + + Gets or sets a value indicating whether to show a Y Axis fields Caption. + + + + + Gets or sets a matrix style. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a cube source. + + + + + Gets the object that holds data of Cube + + + See the class for more details. + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents interface of the source for object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The descriptor that is used to describe one CrossView data cell. + + + The class is used to define one data cell of the CrossView. + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the CrossView data cells is stored + in the CrossViewObject.Data.Cells property. + + + + + Gets a value indicating that this is the "GrandTotal" element on X axis. + + + + + Gets a value indicating that this is the "GrandTotal" element on Y axis. + + + + + Gets a value indicating that this is the "Total" element on X axis. + + + + + Gets a value indicating that this is the "Total" element on Y axis. + + + + + Gets the name of field in X axis. + + + + + Gets the name of field in Y axis. + + + + + Gets the name of measure in cube. + + + + + Gets the x coordinate. + + + + + Gets the y coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name in X axis. + The Field Name in Y axis. + The Measure Name. + Indicates the "XTotal" element. + Indicates the "YTotal" element. + Indicates the "XGrandTotal" element. + Indicates the "YGrandTotal" element. + + + + Initializes a new instance of the class + + + + + Represents a collection of CrossView data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the CrossView descriptors. + + + This class contains three collections of descriptors such as , + and . Descriptors are filled from FastCube Slice. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + CrossViewObject crossView; + // change the fill color of the first matrix cell + crossView.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of CrossView header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + The descriptor that is used to describe one element of the CrossView header. + + + The class is used to define one header element of the CrossView + (either the column element or row element). + To set visual appearance of the element, use the + property. + The collection of descriptors used to represent the CrossView header is stored + in the CrossViewObject.Data.Columns and CrossViewObject.Data.Rows properties. + + + + + Gets a value indicating that this is the "GrandTotal" element. + + + + + Gets a value indicating that this is the "Total" element. + + + + + Gets a value indicating that this is the "Measure" element. + + + + + Gets the name of field in cube. + + + + + Gets the name of measure in cube. + + + + + Gets the cell coordinate. + + + + + Gets the size in cell coordinate. + + + + + Gets the level coordinate. + + + + + Gets the size in level coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name. + The Measure Name. + Indicates the "Total" element. + Indicates the "GrandTotal" element. + Indicates the "Measure" element. + + + + Initializes a new instance of the class + + + + + Represents a Windows CheckBox. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal CheckBox. + + + + + Gets or sets the value that determines the appearance of a CheckBox control. + Wraps the property. + + + + + Gets or sets the horizontal and vertical alignment of the check mark on a CheckBox control. + Wraps the property. + + + + + Gets or set a value indicating whether the CheckBox is in the checked state. + Wraps the property. + + + + + Gets or sets the state of the CheckBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the CheckBoxControl class with default settings. + + + + + Represents a Windows combo box control. + Wraps the control. + + + + + + + + + + + + + + Occurs after the selection has been changed. + Wraps the event. + + + + + Occurs each time an owner-drawn ComboBox item needs to be drawn and + when the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes. + Wraps the event. + + + + + Gets an internal ComboBox. + + + + + Gets or sets a value indicating whether your code or the operating system will handle drawing of elements in the list. + Wraps the property. + + + + + Gets or sets a value specifying the style of the combo box. + Wraps the property. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + Wraps the property. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets the height of an item in the combo box. + Wraps the property. + + + + + Gets a collection of the items contained in this ComboBox. + Wraps the property. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the combo box are sorted. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the index specifying the currently selected item. + Wraps the property. + + + + + Gets or sets currently selected item in the ComboBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Initializes a new instance of the ComboBoxControl class with default settings. + + + + + Implements base behavior of button controls. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value that indicates whether the control resizes based on its contents. + Wraps the property. + + + + + Gets or sets the image that is displayed on a button control. + Wraps the property. + + + + + Gets or sets the alignment of the image on the button control. + Wraps the property. + + + + + Gets or sets the alignment of the text on the button control. + Wraps the property. + + + + + Gets or sets the position of text and image relative to each other. + Wraps the property. + + + + + + + + + + + Represents a Windows button control. + Wraps the control. + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal Button. + + + + + Gets or sets a value that is returned to the parent form when the button is clicked. + Wraps the property. + + + + + + + + Initializes a new instance of the ButtonControl class with default settings. + + + + + Displays a ListBox in which a check box is displayed to the left of each item. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Occurs after item's check state was changed. + Wraps the event. + + + + + Gets an internal CheckedListBox. + + + + + Gets or sets a value indicating whether the check box should be toggled when an item is selected. + Wraps the property. + + + + + Collection of checked indexes in this CheckedListBox. + Wraps the property. + + + + + Collection of checked items in this CheckedListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ItemCheck event and the script code connected to the ItemCheckEvent. + + Event data. + + + + Initializes a new instance of the CheckedListBoxControl class with default settings. + + + + + Displays a hierarchical collection of labeled items, each represented by a TreeNode. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs after the tree node is selected. + Wraps the event. + + + + + Gets an internal TreeView. + + + + + Gets or sets a value indicating whether check boxes are displayed next to the tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between the tree nodes that are at the root of the tree view. + Wraps the property. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + Wraps the property. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + Wraps the property. + + + + + Gets or sets the tree node that is currently selected in the tree view control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + This method fires the AfterSelect event and the script code connected to the AfterSelectEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Windows text box control. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal TextBox. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + Wraps the property. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box control types a TAB character in the control instead of moving the focus to the next control in the tab order. + Wraps the property. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + Wraps the property. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + Wraps the property. + + + + + Gets or sets a value indicating whether this is a multiline TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + Wraps the property. + + + + + Gets or sets which scroll bars should appear in a multiline TextBox control. + Wraps the property. + + + + + Gets or sets how text is aligned in a TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + Wraps the property. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the TextBoxControl class with default settings. + + + + + Enables the user to select a single option from a group of choices when paired with other RadioButton controls. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal RadioButton. + + + + + Gets or sets the location of the check box portion of the RadioButton. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is checked. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the RadioButtonControl class with default settings. + + + + + Represents a Windows picture box control for displaying an image. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal PictureBox. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + Gets or sets the image that the PictureBox displays. + Wraps the property. + + + + + Indicates how the image is displayed. + Wraps the property. + + + + + + + + Initializes a new instance of the PictureBoxControl class with default settings. + + + + + Base class for controls that may contain child controls. + + + + + + + + + + + + + + + + + Gets the collection of child controls. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the ParentControl class with default settings. + + + + + Used to group collections of controls. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + Gets an internal Panel. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + + + + + + + Initializes a new instance of the PanelControl class with default settings. + + + + + Represents a Windows spin box (also known as an up-down control) that displays numeric values. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs when the Value property has been changed in some way. + Wraps the event. + + + + + Gets an internal NumericUpDown. + + + + + Gets or sets the number of decimal places to display in the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether the up-down control should display the value it contains in hexadecimal format. + Wraps the property. + + + + + Gets or sets the value to increment or decrement the up-down control when the up or down buttons are clicked. + Wraps the property. + + + + + Gets or sets the maximum value for the up-down control. + Wraps the property. + + + + + Gets or sets the minimum value for the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the up-down control when appropriate. + Wraps the property. + + + + + Gets or sets the value assigned to the up-down control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the NumericUpDownControl class with default settings. + + + + + Represents a Windows control that enables the user to select a date using a visual monthly calendar display. + Wraps the control. + + + + + + + + + + + + + + + + + Occurs when the date selected in the MonthCalendar changes. + Wraps the event. + + + + + Gets an internal MonthCalendar. + + + + + Gets or sets the number of columns and rows of months displayed. + Wraps the property. + + + + + Gets or sets the first day of the week as displayed in the month calendar. + Wraps the property. + + + + + Gets or sets the maximum allowable date. + Wraps the property. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + Wraps the property. + + + + + Gets or sets the minimum allowable date. + Wraps the property. + + + + + Gets or sets a value indicating whether the date represented by the TodayDate property is displayed at the bottom of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether today's date is circled. + Wraps the property. + + + + + Gets or sets a value indicating whether the month calendar control displays week numbers (1-52) to the left of each row of days. + Wraps the property. + + + + + Gets or sets the value that is used by MonthCalendar as today's date. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which annual days are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to bold. + Wraps the property. + + + + + Gets or sets the end date of the selected range of dates. + Wraps the property. + + + + + Gets or sets the selected range of dates for a month calendar control. + Wraps the property. + + + + + Gets or sets the start date of the selected range of dates. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the DateChanged event and the script code connected to the DateChangedEvent. + + Event data. + + + + Initializes a new instance of the MonthCalendarControl class with default settings. + + + + + Uses a mask to distinguish between proper and improper user input. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal MaskedTextBox. + + + + + Gets or sets the input mask to use at run time. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to reenter literal values. + Wraps the property. + + + + + Gets or sets how text is aligned in a masked text box control. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the MaskedTextBoxControl class with default settings. + + + + + Represents a Windows list view control, which displays a collection of items that can be displayed using one of four different views. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the checked state of an item changes. + Wraps the event. + + + + + Occurs when the index of the selected item in the list view control changes. + Wraps the event. + + + + + Gets an internal ListView. + + + + + Gets or sets a value indicating whether a check box appears next to each item in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether multiple items can be selected. + Wraps the property. + + + + + Gets or sets a value indicating whether items are displayed in groups. + Wraps the property. + + + + + Gets or sets how items are displayed in the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the indexes of the currently checked items in the control. + Wraps the property. + + + + + Gets the currently checked items in the control. + Wraps the property. + + + + + Gets the collection of all column headers that appear in the control. + Wraps the property. + + + + + Gets the collection of ListViewGroup objects assigned to the control. + Wraps the property. + + + + + Gets a collection containing all items in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as large icons in the control. + Wraps the property. + + + + + Gets the indexes of the selected items in the control. + Wraps the property. + + + + + Gets the items that are selected in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as small icons in the control. + Wraps the property. + + + + + + + + + + + + + + This method fires the ItemChecked event and the script code connected to the ItemCheckedEvent. + + Event data. + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + Initializes a new instance of the ListViewControl class with default settings. + + + + + Base class for list box controls such as ListBoxControl, CheckedListBoxControl. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the SelectedIndex property has changed. + Wraps the event. + + + + + Occurs when an owner-drawn ListBox is created and the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ListBox changes. + Wraps the event. + + + + + Gets or sets the width of columns in a multicolumn ListBox. + Wraps the property. + + + + + Gets or sets the drawing mode for the control. + Wraps the property. + + + + + Gets or sets the height of an item in the ListBox. + Wraps the property. + + + + + Gets the items of the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox supports multiple columns. + Wraps the property. + + + + + Gets or sets the method in which items are selected in the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the ListBox are sorted alphabetically. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox can recognize and expand tab characters when drawing its strings. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBox. + Wraps the property. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets the currently selected item in the ListBox. + Wraps the property. + + + + + Gets a collection containing the currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Represents a standard Windows label. + Wraps the control. + + + + + + + + Gets an internal Label. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. + Wraps the property. + + + + + Gets or sets the alignment of text in the label. + Wraps the property. + + + + + + + + Initializes a new instance of the LabelControl class with default settings. + + + + + Displays data in a customizable grid. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal DataGridView. + + + + + Gets or sets the data source that the DataGridView is displaying data for. + + + + + Gets or sets a value indicating whether the option to add rows is displayed to the user. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to delete rows from the DataGridView. + Wraps the property. + + + + + Gets or sets the default cell style applied to odd-numbered rows of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating how column widths are determined. + Wraps the property. + + + + + Gets or sets a value indicating how row heights are determined. + Wraps the property. + + + + + Gets or sets the background color of the DataGridView. + Wraps the property. + + + + + Gets or sets the border style for the DataGridView. + Wraps the property. + + + + + Gets the cell border style for the DataGridView. + Wraps the property. + + + + + Gets the border style applied to the column headers. + Wraps the property. + + + + + Gets or sets the default column header style. + Wraps the property. + + + + + Gets or sets the height, in pixels, of the column headers row. + Wraps the property. + + + + + Gets or sets a value indicating whether the height of the column headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the column header row is displayed. + Wraps the property. + + + + + Gets the collection of objects that represents the grid columns. + + + + + Gets or sets the default cell style to be applied to the cells in the DataGridView if no other cell style properties are set. + Wraps the property. + + + + + Gets or sets the color of the grid lines separating the cells of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the DataGridView at a time. + Wraps the property. + + + + + Gets a value indicating whether the user can edit the cells of the DataGridView control. + Wraps the property. + + + + + Gets or sets the border style of the row header cells. + Wraps the property. + + + + + Gets or sets the default style applied to the row header cells. + Wraps the property. + + + + + Gets or sets a value indicating whether the column that contains row headers is displayed. + Wraps the property. + + + + + Gets or sets the width, in pixels, of the column that contains the row headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the width of the row headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets the default style applied to the row cells of the DataGridView. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display for the DataGridView control. + Wraps the property. + + + + + Gets or sets a value indicating how the cells of the DataGridView can be selected. + Wraps the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the GridControl class with default settings. + + + + + Represents the special kind of report page that wraps the + and used to display dialog forms. + + + Use the property to add/remove controls to/from a dialog form. + If you set the Visible property to false, this dialog form will be + skippen when you run a report. + + This example shows how to create a dialog form with one button in code. + + DialogPage form = new DialogPage(); + // set the width and height in pixels + form.Width = 200; + form.Height = 200; + form.Name = "Form1"; + // create a button + ButtonControl button = new ButtonControl(); + button.Location = new Point(20, 20); + button.Size = new Size(75, 25); + button.Text = "The button"; + // add the button to the form + form.Controls.Add(button); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs before a form is displayed for the first time. + Wraps the event. + + + + + Occurs after the form is closed. + Wraps the event. + + + + + Occurs before the form is closed. + Wraps the event. + + + + + Occurs whenever the form is first displayed. + Wraps the event. + + + + + Occurs when the form is resized. + Wraps the event. + + + + + Occurs when the form is redrawn. + Wraps the event. + + + + + Gets an internal Form. + + + + + Gets or sets an active state in Web application. + + + + + Gets or sets the button on the form that is clicked when the user presses the ENTER key. + Wraps the property. + + + + + Gets or sets the button control that is clicked when the user presses the ESC key. + Wraps the property. + + + + + Gets the auto scale dimensions for this form. + + + + + Gets or sets the background color for the form. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the border style of the form. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the text associated with this form. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the collection of controls contained within the form. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shows the form as a modal dialog box with the currently active window set as its owner. + Wraps the method. + + One of the DialogResult values. + + + + This method fires the Load event and the script code connected to the LoadEvent. + + Event data. + + + + This method fires the FormClosed event and the script code connected to the FormClosedEvent. + + Event data. + + + + This method fires the FormClosing event and the script code connected to the FormClosingEvent. + + Event data. + + + + This method fires the Shown event and the script code connected to the ShownEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Initializes a new instance of the DialogPage class. + + + + + Base class for all dialog controls such as ButtonControl, TextBoxControl. + + + + + Determines whether is necessary to serialize the BackColor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Cursor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Font property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the ForeColor property. + + true if serialization is necessary. + + + + + + + Draws the selection point. + + Graphics object to draw on. + object. + object. + Left coordinate. + Top coordinate. + + + + + + + + + + Creates the empty event handler for the ClickEvent event in the report's script. + + true if event handler was created successfully. + + + + + + + Occurs when the control is clicked. + Wraps the event. + + + + + Occurs when the control is double-clicked. + Wraps the event. + + + + + Occurs when the control is entered. + Wraps the event. + + + + + Occurs when the input focus leaves the control. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is released while the control has focus. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is pressed. + Wraps the event. + + + + + Occurs when the mouse pointer is moved over the control. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is released. + Wraps the event. + + + + + Occurs when the mouse pointer enters the control. + Wraps the event. + + + + + Occurs when the mouse pointer leaves the control. + Wraps the event. + + + + + Occurs when the control is resized. + Wraps the event. + + + + + Occurs when the Text property value changes. + Wraps the event. + + + + + Occurs when the control is redrawn. + Wraps the event. + + + + + Gets an internal Control. + + + + + Gets or sets the background color for the control. + Wraps the property. + + + + + Gets or sets the cursor that is displayed when the mouse pointer is over the control. + Wraps the property. + + + + + Gets or sets a value indicating whether the control can respond to user interaction. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the foreground color of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the tab order of the control within its container. + Wraps the property. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + Wraps the property. + + + + + Gets or sets the text associated with this control. + Wraps the property. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is displayed. + Wraps the property. + + + + + Gets or sets a property that returns actual data contained in a control. This value is used + in the "Data" window. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + Called when the control's Enabled state changed. + + + + + Attaches Control events to its event handlers. + + + Override this method if your custom control has own events. + + See the example of AttachEvents implementation used in the CheckBoxControl: + + protected override void AttachEvents() + { + base.AttachEvents(); + CheckBox.CheckedChanged += new EventHandler(CheckBox_CheckedChanged); + } + + private void CheckBox_CheckedChanged(object sender, EventArgs e) + { + if (CheckedChanged != null) + CheckedChanged(this, e); + InvokeEvent(CheckedChangedEvent, e); + } + + + + + + Detaches Control events from its event handlers. + + + Override this method if your custom control has own events. In this method, you should + detach control's events that were attached in the method. + + See the example of DetachEvents implementation used in the CheckBoxControl: + + protected override void DetachEvents() + { + base.DetachEvents(); + CheckBox.CheckedChanged -= new EventHandler(CheckBox_CheckedChanged); + } + + + + + + + + + + + + Initializes the control before display it in the dialog form. + + + This method is called when report is run. + + + + + Finalizes the control after its parent form is closed. + + + This method is called when report is run. + + + + + Sets input focus to the control. + + + + + Conceals the control from the user. + + + + + Displays the control to the user. + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + This method fires the DoubleClick event and the script code connected to the DoubleClickEvent. + + Event data. + + + + This method fires the Enter event and the script code connected to the EnterEvent. + + Event data. + + + + This method fires the Leave event and the script code connected to the LeaveEvent. + + Event data. + + + + This method fires the KeyDown event and the script code connected to the KeyDownEvent. + + Event data. + + + + This method fires the KeyPress event and the script code connected to the KeyPressEvent. + + Event data. + + + + This method fires the KeyUp event and the script code connected to the KeyUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the TextChanged event and the script code connected to the TextChangedEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Base class for all dialog components. + + + + + + + + + + + + + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets the height and width of the control. + + + + + + + + Initializes a new instance of the DialogComponentBase class with default settings. + + + + + Represents the control with two lists (available items and selected items). + + + The control allows to select one or several items and then filter the datasource which it is connected to. + All you need is to setup the DataColumn property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value indicating that the items must be sorted. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the DataSelectorControl class with default settings. + + + + + Represents a Windows control that allows the user to select a date and a time and to display the date and time with a specified format. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs after the date has been changed. + Wraps the event. + + + + + Gets an internal DateTimePicker. + + + + + Gets or sets a value indicating whether the Value property has been set with a valid date/time value and the displayed value is able to be updated. + Wraps the property. + + + + + Gets or sets the custom date/time format string. + Wraps the property. + + + + + Gets or sets the alignment of the drop-down calendar on the DateTimePicker control. + Wraps the property. + + + + + Gets or sets the format of the date and time displayed in the control. + Wraps the property. + + + + + Gets or sets the maximum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets the minimum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Wraps the property. + + + + + Gets or sets a value indicating whether a spin button control (also known as an up-down control) is used to adjust the date/time value. + Wraps the property. + + + + + Gets or sets the date/time value assigned to the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the DateTimePickerControl class with default settings. + + + + + Represents the 's column. + Wraps the class. + + + + + Gets or sets the mode by which the column automatically adjusts its width. + Wraps the property. + + + + + Gets or sets the data column attached to this column. + + + + + Gets or sets the caption text on the column's header cell. + Wraps the property. + + + + + Gets or sets the column's default cell style. + Wraps the property. + + + + + Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control. + Wraps the property. + + + + + Gets or sets the current width of the column. + Wraps the property. + + + + + Gets or sets a value indicating whether the column is visible. + Wraps the property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the GridControlColumn class with default settings. + + + + + Represents the collection of GridControl columns. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + + + + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows rich text box control. + Wraps the control. + + + + + Gets an internal RichTextBox. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display in the RichTextBox control. + Wraps the property. + + + + + + + + Loads rtf from a file. + + File to load from. + + + + Loads rtf from a stream using specified stream type. + + Stream to load from. + Type of a stream. + + + + Loads rtf from a file using specified stream type. + + File to load from. + Type of a stream. + + + + Initializes a new instance of the RichTextBoxControl class with default settings. + + + + + Represents a Windows control that displays a frame around a group of controls with an optional caption. + Wraps the control. + + + + + Gets an internal GroupBox. + + + + + Initializes a new instance of the GroupBoxControl class with default settings. + + + + + The base class for all controls that support the data filtering feature. + + + The data filtering allows you to bind the control to a . + It will be automatically filled by data from the datasource's column. When you select/check + item(s) and close the dialog with OK button, it will filter the datasource according to your selection. + You can set the filter operation using the property. + + + + + Occurs after the control is filled with data. + + + + + Gets or sets a value that determines whether to fill the control with data automatically. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a value that determines whether to filter the datasource automatically + when you close the dialog by OK button. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a data column name that will be used to fill this control with data. + + + This property must contain both datasource name and column name, for example: + Orders.OrderID. You also may use relations, for example: Orders.Customers.CompanyName. + + + + + Gets or sets name of report parameter which value will be set to value contained + in this control when you close the dialog. + + + + + Gets or sets a value that specifies the filter operation. + + + + + Gets or sets the detail control used in cascaded filtering. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Fills the control with data. + + The data source. + The data column. + Here is the example of FillData method implementation: + + protected override void FillData(DataSourceBase dataSource, Column column) + { + Items.Clear(); + dataSource.First(); + while (dataSource.HasMoreRows) + { + Items.Add(dataSource[column].ToString()); + dataSource.Next(); + } + } + + + + + + Returns list of values that can be used to fill control with data. + + The data source. + The data column. + List of string values. + + This method is used by the FillData method to fill list-type controls + such as ListBox with data. The result list contains distinct values. + + + + + Returns value entered in the control. + + The value of type supported by this control. + + This method must return a value entered by the user. For example, TextBox + control must return its Text property value. If this control supports multi-selection, + return selected values in an array, for example string[] array for CheckedListBox. + + + + + Handles the cascaded filter internal logic. + + + This method should be called in your custom dialog control that supports data filtering. + Call it when the value in your control is changed. + + + + + + + + + + + + + + Fills the control with data from a datasource. + + + Call this method if you set the property to false. + + + + + Fills the control with data from a datasource. + + Parent data source + + Call this method if you need to implement cascaded filter. In the parentData parameter, + pass the parent data source that will be used to set up master-detail relationship with + data source in this control. + + + + + Fills the control with data from a datasource. + + Parent control + + Call this method if you need to implement cascaded filter. In the parentControl parameter, + pass the parent control which performs filtering on a parent data source. + + + + + Applies the filter to a datasource. + + + Call this method if you set the property to false. + + + + + Resets the filter set by this control. + + + + + This method fires the DataLoaded event and the script code connected to the DataLoadedEvent. + + Event data. + + + + Initializes a new instance of the DataFilterBaseControl class with default settings. + + + + + Represents the collection of dialog components. + + + + + Gets or sets a component. + + The index of a component in this collection. + The component with specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows control to display a list of items. + Wraps the control. + + + + + Gets an internal ListBox. + + + + + + + + + + + Initializes a new instance of the ListBoxControl class with default settings. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all forms. + + + + + The event occurs on form's dpi change. + + + + + Convenience method returns an image with specified index for this form's dpi. + + Image index. + The image. + + + + Convenience method returns an image with specified name for this form's dpi. + + Image resource name. + The image. + + + + Convenience method returns an imagelist for this form's dpi. + + The imagelist. + + + + Localizes the dialog controls. + + + Use this method to set control's captions specific to the current locale. + + + + + + + + Update controls on dpi change. + + This method is called when the form's dpi is changed. Write custom logic to update + some controls (such as ListBox.ItemHeight) here. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Editor for rearrangement Exports Menu elements + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The form for message box with text editor + + + + + Gets or sets text + + + + + Defualt constructor + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base form for all export options dialog forms. + + + + + Represents the "Open after export" button visibility. + + + + + Gets a reference to the currently editing export filter. + + + + + + + + + + + Called when editing is done. + + + Override this method to pass edited values from the dialog controls to the export filter. + + See the example of this method implementation that is used in the ImageExport. + + protected override void Done() + { + base.Done(); + ImageExport imageExport = Export as ImageExport; + imageExport.ImageFormat = (ImageExportFormat)cbxImageFormat.SelectedIndex; + imageExport.Resolution = (int)udResolution.Value; + imageExport.JpegQuality = (int)udQuality.Value; + imageExport.SeparateFiles = cbSeparateFiles.Checked; + } + + + + + + + + + Initializes controls with initial values. + + The export filter to edit. + + Override this method to pass values from the export filter to the dialog controls. + + See the example of this method implementation that is used in the ImageExport. + + public override void Init(ExportBase export) + { + base.Init(export); + ImageExport imageExport = Export as ImageExport; + cbxImageFormat.SelectedIndex = (int)imageExport.ImageFormat; + udResolution.Value = imageExport.Resolution; + udQuality.Value = imageExport.JpegQuality; + cbSeparateFiles.Checked = imageExport.SeparateFiles; + } + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + "Page Range" groupbox. + + + + + "Page Numbers" label. + + + + + "Page Numbers" textbox. + + + + + "Page Numbers" radiobutton. + + + + + "Current Page" radiobutton. + + + + + "All Pages" radiobutton. + + + + + PageControl. + + + + + Pages panel. + + + + + "Open after export" checkbox. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Splash Screen showing during loading designer + + + + + Initializes a new instance of the class. + + + + + Filters mouse events. + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Welcome window displayed on the designer startup + + + + + Initializes a new instance of the class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The "Advanced Connection Properties" form. + + + + + Gets or sets the connection string builder which contains the connection properties. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the FastReport exception form. + + + + + + + + Creates a new instance ofthe form. + + The exception object which data to display in the form. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + Gets Aborted state + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for barcode editor + + + + + Generated text for barcode object + + + + + Initializes a new instance of the class. + + Text data for parsing + Report object for nodes + Brackets symbols + Editor for rich barcode? + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all dialog forms with two buttons, OK and Cancel. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The OK button. + + + + + The Cancel button. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for designer plugin's options page. + + + Use this class if you develop a designer plugin that may be configured in the + "View|Options..." menu. You need to implement an options page for your + plugin and return it in the IDesignerPlugin.GetOptionsPage method. + + + + + The TabControl control. + + + + + The TabPage control. + + + + + Initializes controls on this options page. + + + Override this method to fill options page's controls with initial values. + + + + + Finalizes the options page. + + The dialog result. + + Override this method to pass controls' values to the plugin. Do this if result is + DialogResult.OK. + + + + + Updates images used in the control. + + + + + Initializes a new instance of the DesignerOptionsPage class with default settings. + + + Usually you need to define another contructor which takes one parameter - the plugin. + + This example shows how to define own constructor which takes a plugin: + + public DialogPageOptions(DialogPageDesigner pd) : base() + { + FPageDesigner = pd; + InitializeComponent(); + } + + + + + + read current token, returns next + + + + + + + + read current token, returns next + + + + + + + + ignore current token, read from next, returns current i.e not next + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the report engine. + + + + + Shows band at the current position. + + Band to show. + + After the band is shown, the current position is advanced by the band's height. + + + + + Gets or sets the current X offset. + + + This property specifies the X offset where the current band will be printed. + + + + + Gets or sets the current Y offset. + + + This property specifies the Y offset where the current band will be printed. + After the band is printed, this value is incremented by the band's height. + + + + + Gets the index of currently printing column in the multi-column report. + + + This value is 0-based. + + + + + Gets or sets index of current prepared page the current band will print on. + + + Note: the page with specified index must exists. This property is used to print side-by-side + subreports and Table object. Usually you don't need to use it. + + + + + Gets the current page width, in pixels. + + + This property returns a paper width minus left and right margins. + + + + + Gets the current page height, in pixels. + + + This property returns a paper height minus top and bottom margins. + + + + + Gets the value indicating whether the page has unlimited height. + + + + + Gets the value indicating whether the page has unlimited width. + + + + + Gets or sets the current height of unlimited page. + + + + + Gets or sets the current width of unlimited page. + + + + + Gets the height of page footer (including all its child bands), in pixels. + + + + + Gets the height of column footer (including all its child bands), in pixels. + + + + + Gets the free space on the current page, in pixels. + + + This property returns the page height minus footers height minus CurY value. + + + + + Gets the current prepared page number. + + + This value is 1-based. The initial value (usually 1) is set in the Report.InitialPageNumber property. + + + + + Gets the number of total pages in a prepared report. + + + To use this property, your report must be two-pass. Set the + property to true. + + + + + Gets the string that represents the current page number. + + + This property returns a locale-based value, for example: "Page 1". + + + + + Gets the string that represents the "Page N of M" number. + + + This property returns a locale-based value, for example: "Page 1 of 10". + + + + + Gets the current row number of currently printing band. + + + This value is 1-based. It resets to 1 on each new group. + + + + + Gets the running current row number of currently printing band. + + + This value is 1-based. + + + + + Gets the date of report start. + + + + + Gets a value indicating whether the report is executing the final pass. + + + This property is true if report is one-pass, or if report is two-pass and + the second pass is executing. + + + + + Gets a value indicating whether the report is executing the first pass. + + + This property is true if report is one-pass, or if report is two-pass and + the first pass is executing. + + + + + Gets a level of hierarchy when printing hierarchical bands. + + + The first level of hierarchy has 0 index. + + + + + Gets the row number like "1.2.1" when printing hierarchical bands. + + + + + Returns true of keeping is enabled + + + + + Returns keeping position + + + + + Starts the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Ends the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Gets xml containing outline nodes. + + + + + Creates a new outline element with specified text. + + Text of element. + + After you call this method, the element will be added to the current position in the outline. + The next call to AddOutline will add new element as a child of this element. + To shift the position, use the or + OutlineUp methods. + + + + + Sets the current outline position to root. + + + + + Shifts the current outline position one level up. + + + + + Creates a new bookmark with specified name at current position. + + + + + + Gets a page number for the specified bookmark name. + + Name of bookmark. + Page number if bookmark with such name found; 0 otherwise. + + Use this method to print the table of contents in your report. Normally it can be done + using bookmarks. + + You must set your report to double pass to use this method. + + + + + + Resets the logical page numbers. + + + + + Called when the number of pages increased during DoublePass + + + + + Starts a new page. + + + + + Starts a new column. + + + + + Processes the specified text object which ProcessAt property is set to Custom. + + The text object to process. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents a linear gauge. + + + + + + + + + + + Gets or sets the value that specifies inverted gauge or not. + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a linear pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Initializes a new instance of the + + The parent gauge object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a linear gauge. + + + + + + + + + + + + + + + + + Returns centr of the gauge + + + + + The number of radians in one degree + + + + + Gets or sets the Radial Gauge type + + + + + Gats or sets the Radial Gauge position. Doesn't work for Full Radial Gauge. + + + + + Gets or sets the semicircles offset + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Radial Gauge types + + + + + Full sized gauge + + + + + Half of the radial gauge + + + + + Quarter of the radial gauge + + + + + Radial Gauge position types + + + + + None + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + Represents a linear pointer. + + + + + Gets or sets the value, indicating that gradient should be rotated automatically + + + + + Initializes a new instance of the + + The parent gauge object. + The scale object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple progress gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Gets scale. Should be disabled for SimpleProgressGauge + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Gets or sets the number of fractional digits + + + + + + + + + + + + + + SimpleProgressGauge pointer types + + + + + Full sized pointer + + + + + Small pointer + + + + + + + + Gets or sets the pointer type + + + + + Gets or sets the small pointer width ratio + + + + + + + + + + + + + + Represents a simple gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a simple pointer. + + + + + Gets o sets the Left offset of gauge pointer. + + + + + Gets o sets the Top offset of gauge pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Gets or sets the pointer ratio. + + + + + Gets or sets the pointer horizontal offset (cm). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple scale. + + + + + Gets or sets the first subscale (top or left). + + + + + Gets or sets the second subscale (right or bottom). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represent the subscale of simple scale. + + + + + Gets or sets a value that specifies enabled subscale or not. + + + + + Gets or sets a value that specifies show caption or not. + + + + + Initializes a new instance of the class. + + + + + Copies the contents of another SimpleSubScale. + + The SimpleSubScale instance to copy the contents from. + + + + Serializes the SimpleSubScale. + + Writer object. + SimpleSubScale property name. + Another SimpleSubScale to compare with. + + This method is for internal use only. + + + + + Represents a gauge object. + + + + + + + + + + + + + + Gets or sets the minimal value of gauge. + + + + + Gets or sets the maximal value of gauge. + + + + + Gets or sets the currenta value of gauge. + + + + + Gets or sets scale of gauge. + + + + + Gets or sets pointer of gauge. + + + + + Gets or sets gauge label. + + + + + Gets or sets an expression that determines the value of gauge object. + + + + + Gets a value that specifies is gauge vertical or not. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + Scale of gauge. + Pointer of gauge. + + + + + + + + + + + + + Draws the gauge. + + Draw event arguments. + + + + + + + Clone Gauge Object + + clone of this object + + + + Represents a label of a gauge. + + + + + Gets or sets the label text + + + + + Gets or sets the label font + + + + + Gets or sets the label color + + + + + Gets or sets the label parent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Label text + Label font + Label color + Label parent + + + + Copies the contents of another GaugeLabel. + + The GaugeLabel instance to copy the contents from. + + + + Draws the gauge label. + + Draw event arguments. + + + + Serializes the gauge label. + + Writer object. + Gauge label property name. + Another GaugeLabel to compare with. + + This method is for internal use only. + + + + + Represents a pointer of gauge. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the color of a pointer. + + + + + Gets or sets the border width of a pointer. + + + + + Gets or sets the border color of a pointer. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugePointer. + + The GaugePointer instance to copy the contents from. + + + + Draws the gauge pointer. + + Draw event arguments. + + + + Serializes the gauge pointer. + + Writer object. + Gauge pointer property name. + Another GaugePointer to compare with. + + This method is for internal use only. + + + + + Represents a scale of a gauge. + + + + + Gets or sets major ticks of scale. + + + + + Gets or sets minor ticks of scale. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the font of scale. + + + + + Gets or sets the scale font color + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugeScale. + + The GaugeScale instance to copy the contents from. + + + + Draws the scale of gauge. + + Draw event arguments. + + + + Serializes the gauge scale. + + Writer object. + Scale property name. + Another GaugeScale to compare with. + + This method is for internal use only. + + + + + Represents a scale ticks. + + + + + Gets or sets the length of ticks. + + + + + Gets or sets the width of ticks. + + + + + Gets or sets the color of ticks. + + + + + Gets or sets the count of ticks + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + Ticks count. + + + + Copies the contents of another ScaleTicks. + + The ScaleTicks instance to copy the contents from. + + + + Serializes the scale ticks. + + Writer object. + Scale ticks property name. + Another ScaleTicks to compare with. + + This method is for internal use only. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + + + + + + + Provides a user interface for editing a text outline. + + + + + + + + + + + Provides a user interface for choosing a relation. + + + + + Provides a user interface for selecting a component inside the report. + + + + + + + + + + + + + + Provides a user interface for selecting a component inside the same band. + + + + + + + + + + + + + + Provides a user interface for editing a flags enumeration. + + + + + + + + + + + Provides a user interface for choosing a data type. + + + + + + + + + + + Provides a user interface for choosing a data column. + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + Provides a user interface for editing an angle in degrees. + + + + + + + + + + + Provides a user interface for editing a component's border. + + + + + + + + + + + Provides a user interface for selecting a component inside the same page. + + + + + + + + + + + + + + Provides a user interface for choosing a color. + + + + + + + + + + + + + + + + + Provides a user interface for editing a fill. + + + + + + + + + + + Provides a user interface for editing a string collection. + + + + + + + + + + + Represents a map object. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the path to folder containing shapefiles. + + + This property is used by the map editor when selecting a shapefile. + + + + + Gets or sets the map zoom. + + + + + Gets or sets minimum zoom value. + + + + + Gets or sets maximum zoom value. + + + + + Gets or sets the X offset of the map. + + + + + Gets or sets the Y offset of the map. + + + + + Gets or sets the value indicating that mercator projection must be used to view the map. + + + + + Gets the color scale settings. + + + + + Gets or sets a collection of map layers. + + + + + Gets or sets padding within the map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loads a map from file. + + Name of file that contains a map. + + + + Creates unique names for all contained objects such as layers, shapes, etc. + + + + + Initializes a new instance of the class. + + + + + Represents a map point. + + + + + Gets or sets the X-coordinate of the point. + + + + + Gets or sets the Y-coordinate of the point. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a polygon shape. + + + + + Holds the largest bounding rectangle of this shape. + + + + + Gets or sets a bounding box of this shape. + + + + + Gets or sets a list of polygons in this shape. + + + + + Gets or sets the shape data in binary format. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents four coordinates that define a bounding box. + + + + + Gets or sets the minimum X-coordinate of a bounding box. + + + + + Gets or sets the minimum Y-coordinate of a bounding box. + + + + + Gets or sets the maximum X-coordinate of a bounding box. + + + + + Gets or sets the maximum Y-coordinate of a bounding box. + + + + + Copies the contents of another instance. + + Source box to copy the contents from. + + + + Defines the palette used to display map shapes. + + + + + No palette used. + + + + + Light palette. + + + + + Pastel palette. + + + + + Grayscale palette. + + + + + Earth tones palette. + + + + + Sea green palette. + + + + + Bright pastel palette. + + + + + Represents a set of color ranges used to highlight polygons based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start color. + + + + + Gets or sets the middle color. + + + + + Gets or sets the end color. + + + + + Gets or sets a value indicating that the map's color scale must display data from this color ranges. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another ColorRanges. + + The ColorRanges instance to copy the contents from. + + + + Gets a color associated with given analytical value. + + The analytical value. + The color associated with this value, or Color.Transparent if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single color range. + + + + + Gets or sets color of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another ColorRange. + + The ColorRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The color of the range. + The start value of the range. + The end value of the range. + + + + Represents the color scale. + + + + + Gets or sets that must be displayed in this color scale. + + + + + Gets or sets the format string used to format data values. + + + + + Gets or sets a value indicating whether the color scale must be hidden if there is no data in it. + + + + + Gets or sets the text displayed in the color scale if there is no data in it. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a distance scale. + + + + + Initializes a new instance of the class. + + + + + Represents loading map data from dbf-file. + + + + + Gets or sets the filter string used in an open file dialog. + + + + + Initializes a new instance of the class. + + + + + Returns a file filter for an open file dialog. + + String that contains a file filter. + + + + Imports the map data from a specified file into a specfied layer. + + The MapObject for an importing map. + The name of a file that contains map. + + + + Represents the description of dBase field. + + + + + Gets the field name. + + + + + Gets the field type. + + + + + Gets the field length. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + The type of dBase field. + + + + + Character field. + + + + + Date field. + + + + + Numeric field. + + + + + Logical field. + + + + + Memo field. + + + + + Represents a collection of objects. + + + + + Gets a layer with specified index. + + Index of a layer. + The layer with specified index. + + + + Specifies the type of objects that layer contains. + + + + + The layer contains points. + + + + + The layer contains lines. + + + + + The layer contains polygons. + + + + + Specifies the spatial source for the layer. + + + + + Source is ESRI shapefile. + + + + + Source is a latitude/longitude/name provided by an application. + + + + + Determines how map labels are displayed. + + + + + No label displayed. + + + + + The shape name is displayed. + + + + + The value is displayed. + + + + + Both name and value displayed. + + + + + Represents a map layer. + + + + + Gets or sets a type of layer. + + + + + Gets or sets the spatial source for the layer. + + + + + Gets or sets the name of ESRI shapefile. + + + + + Gets or sets the data source. + + + + + Gets or sets the datasource filter expression. + + + + + Gets or sets spatial column name. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns spatial value. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns latitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns longitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns label value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns analytical value. + + + + + Gets or sets label's column name. + + + + + Gets or sets a value that determines how map labels are displayed. + + + + + Gets or sets the format of label's value. + + + + + Gets or sets the map accuracy. Lower value is better, but slower. + + + + + Gets or sets the value that determines the labels visiblity at a certain zoom value. + + + + + Gets or sets the aggregate function. + + + + + Gets or sets a value indicating that the layer is visible. + + + + + Gets or sets a bounding box of layer. + + + + + Gets a collection of map objects. + + + + + Gets the default style of shapes in this layer. + + + + + Gets or sets the palette used to highlight shapes. + + + + + Gets the color ranges used to highlight shapes based on analytical value. + + + + + Gets the size ranges used to draw points based on analytical value. + + + + + Gets or sets the expression that returns the name of polygon to zoom. + + + + + Gets or sets the bounding box as a string. + + + + + Gets a reference to the Map object. + + + + + + + + Draws the layer. + + The drawing parameters. + + + + Finds the shape under cursor. + + The cursor coordinates. + The ShapeBase object if found. + + + + + + + Creates unique names for all contained objects such as points, lines, polygons, etc. + + + + + Reduces the number of points in the shapes in this layer. + + The accuracy value. + + + + Loads the layer contents from ESRI shapefile (*.shp/*.dbf). + + The file name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds application provided data. + + Latitude value. + Longitude value. + The name displayed as a label. + Analytical value. + + Use this method if the is set to ApplicationData. + + + + + Adds a spatial/analytical value pair to the list. + + The spatial value. + The analytical value. + + Use this method if the is set to ShpFile. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a pair of double coordinates that defines a constituent point. + + + + + Gets or sets the X-coordinate of a point. + + + + + Gets or sets the Y-coordinate of a point. + + + + + Creates a new instance of the class with specified coordinates. + + X coordinate. + Y coordinate. + + + + Specifies the position of a scale control inside the map. + + + + + The scale is displayed at top left corner. + + + + + The scale is displayed at top center side. + + + + + The scale is displayed at top right corner. + + + + + The scale is displayed at middle left side. + + + + + The scale is displayed at middle right side. + + + + + The scale is displayed at bottom left corner. + + + + + The scale is displayed at bottom center side. + + + + + The scale is displayed at bottom right corner. + + + + + The base class for scale-type controls such as and . + + + + + Gets or sets the border. + + + + + Gets or sets the fill. + + + + + Gets or sets the title font. + + + + + Gets or sets the title text color. + + + + + Gets or sets the title text. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color. + + + + + Gets or sets the location of the scale. + + + + + Gets or sets the visibility of a scale. + + + + + Copies the contents of another ScaleBase. + + The ScaleBase instance to copy the contents from. + + + + Serializes the scale. + + Writer object. + Scale property name. + Another ScaleBase to compare with. + + This method is for internal use only. + + + + + Gets the size of the scale, in pixels. + + The SizeF structure containing the size of the object. + + + + Draws the object. + + Draw parameters. + Parent map object. + + + + Initializes a new instance of the class. + + + + + The base class for shape objects such as , and . + + + + + Gets or sets the shape visibility. + + + + + Gets or sets a value indicating that custom shape style is used. + + + If this property is false, the layer's DefaultShapeStyle is used. + + + + + Gets a custom shape style. + + + To use this property, first set the property to true. + + + + + Gets or sets the center point X offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the center point Y offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the shape X offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the shape Y offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the scale factor for this shape. + + + Use this property to adjust the shape size. + + + + + Gets or sets the spatial data associated with this shape. + + + + + Gets or sets the value. + + + + + Gets a reference to the parent Map object. + + + + + Gets a reference to the parent Layer object. + + + + + + + + Draws the shape. + + Object that provides a data for paint event. + + + + Draws the label. + + Object that provides a data for paint event. + + + + Checks if the shape is under cursor. + + The cursor coordinates. + true if the cursor is over the shape. + + + + Reduces the number of points in the shape. + + The accuracy value. + + + + + + + Initializes a component before running a report. + + + + + Finalizes a component before running a report. + + + + + Saves the state of this component. + + + + + Restores the state of this component. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents a line shape. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the spatial data of a shape. + + + + + Copies contents from another spatial data object. + + The object to copy contents from. + + + + Compares two spatial data objects. + + The spatial object to compare with. + true if spatial objects are identical. + + + + Gets a value by its key. + + The key of value. + The value. + + + + Sets a value by its key. + + The key of value. + The value. + + + + Gets a list of keys. + + The list of keys. + + + + Creates a new instance of the class. + + + + + Represents the style of a shape. + + + + + Gets or sets the border color. + + + + + Gets or sets the border style. + + + + + Gets or sets the border width. + + + + + Gets or sets the fill color. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the point size, in pixels. + + + + + Copies contents from another similar object. + + The object to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Represents a set of size ranges used to draw points based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start size. + + + + + Gets or sets the end size. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another SizeRanges. + + The SizeRanges instance to copy the contents from. + + + + Gets a size associated with given analytical value. + + The analytical value. + The size associated with this value, or 0 if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single size range. + + + + + Gets or sets size of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another SizeRange. + + The SizeRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The size of the range. + The start value of the range. + The end value of the range. + + + + Represents the matrix object that is used to print pivot table (also known as cross-tab). + + + The matrix consists of the following elements: columns, rows and data cells. Each element is + represented by the descriptor. The class is used + for columns and rows; the is used for data cells. + The property holds three collections of descriptors - Columns, + Rows and Cells. + To create the matrix in a code, you should perform the following actions: + + + create an instance of the MatrixObject and add it to the report; + + + create descriptors for columns, rows and cells and add it to the + collections inside the property; + + + call the method to create the matrix template + that will be used to create a result; + + + modify the matrix template (change captions, set the visual appearance). + + + To connect the matrix to a datasource, use the property. If + this property is not set, the result matrix will be empty. In this case you may use + the event handler to fill the matrix. + + This example demonstrates how to create a matrix in a code. + + // create an instance of MatrixObject + MatrixObject matrix = new MatrixObject(); + matrix.Name = "Matrix1"; + // add it to the report title band of the first report page + matrix.Parent = (report.Pages[0] as ReportPage).ReportTitle; + + // create two column descriptors + MatrixHeaderDescriptor column = new MatrixHeaderDescriptor("[MatrixDemo.Year]"); + matrix.Data.Columns.Add(column); + column = new MatrixHeaderDescriptor("[MatrixDemo.Month]"); + matrix.Data.Columns.Add(column); + + // create one row descriptor + MatrixHeaderDescriptor row = new MatrixHeaderDescriptor("[MatrixDemo.Name]"); + matrix.Data.Rows.Add(row); + + // create one data cell + MatrixCellDescriptor cell = new MatrixCellDescriptor("[MatrixDemo.Revenue]", MatrixAggregateFunction.Sum); + matrix.Data.Cells.Add(cell); + + // connect matrix to a datasource + matrix.DataSource = Report.GetDataSource("MatrixDemo"); + + // create the matrix template + matrix.BuildTemplate(); + + // change the style + matrix.Style = "Green"; + + // change the column and row total's text to "Grand Total" + matrix.Data.Columns[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allows to fill the matrix in code. + + + In most cases the matrix is connected to a datasource via the + property. When you run a report, the matrix is filled with datasource values automatically. + Using this event, you can put additional values to the matrix or even completely fill it + with own values (if is set to null. To do this, call the + Data.AddValue method. See the + method for more details. + + This example shows how to fill a matrix with own values. + + // suppose we have a matrix with one column, row and data cell. + // provide 3 one-dimensional arrays with one element in each to the AddValue method + Matrix1.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Andrew Fuller" }, + new object[] { 21.35f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Nancy Davolio" }, + new object[] { 421.5f }); + + // this code will produce the following matrix: + // | 1996 | 1997 | + // --------------+--------+--------+ + // Andrew Fuller | 123.45| 21.35| + // --------------+--------+--------+ + // Nancy Davolio | | 421.50| + // --------------+--------+--------+ + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value that determines whether the matrix must calculate column/row sizes automatically. + + + + + Gets or sets a value that determines how to print multiple data cells. + + + This property can be used if matrix has two or more data cells. Default property value + is false - that means the data cells will be stacked. + + + + + Gets or sets a value indicating that the side-by-side cells must be kept together on the same page. + + + + + Gets or sets a data source. + + + When you create the matrix in the designer by drag-drop data columns into it, + this property will be set automatically. However you need to set it if you create + the matrix in code. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will be skipped. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a matrix style. + + + + + Gets or sets even style priority for matrix cells. + + + + + Gets or sets need split rows. + + + + + Gets or sets a value indicating that empty matrix should be printed. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets the object that holds the collection of descriptors used + to build a matrix. + + + See the class for more details. + + + + + Gets or sets array of values that describes the currently printing column. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing column. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.ColumnValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (int)Matrix1.ColumnValues[0] == 2000. + + + + + + + + Gets or sets array of values that describes the currently printing row. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing row. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.RowValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (string)Matrix1.RowValues[0] == "Andrew Fuller". + + + + + + + + Gets or sets the index of currently printing column. + + + This property may be used to print even columns with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.ColumnIndex, + for example: Matrix1.ColumnIndex % 2 == 1. + + + + + + + + Gets or sets the index of currently printing row. + + + This property may be used to print even rows with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.RowIndex, + for example: Matrix1.RowIndex % 2 == 1. + + + + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + This method fires the AfterTotals event and the script code connected to the AfterTotalsEvent. + + Event data. + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + This is a shortcut method to call the matrix Data.AddValue. + See the method for more details. + + + + + Gets the value of the data cell with the specified index. + + Zero-based index of the data cell. + The cell's value. + + Use this method in the cell's expression if the cell has custom totals + (the total function is set to "Custom"). The example: + Matrix1.Value(0) / Matrix1.Value(1) + will return the result of dividing the first data cell's value by the second one. + + + + + Initializes a new instance of the class. + + + + + Specifies the aggregate function used in the . + + + + + No aggregates are used. + + + + + Specifies the sum of values. + + + + + Specifies the minimum of values. + + + + + Specifies the maximum of values. + + + + + Specifies the average of values. + + + + + Specifies the count of values. + + + + + Specifies the count of distinct values. + + + + + Specifies the custom function. + + + + + Determines how matrix percents are calculated. + + + + + Do not calculate percent value. + + + + + Calculate percent of the column total value. + + + + + Calculate percent of the row total value. + + + + + Calculate percent of the grand total value. + + + + + The descriptor that is used to describe one matrix data cell. + + + The class is used to define one data cell of the matrix. + The key properties are and . + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the matrix data cells is stored + in the MatrixObject.Data.Cells property. + + + + + Gets or sets an aggregate function used to calculate totals for this cell. + + + + + Gets or sets a value that determines how to calculate the percent value for this cell. + + + + + + + + + + + Initializes a new instance of the class + with default settings. + + + + + Initializes a new instance of the class + with specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class + with specified expression and aggregate function. + + The descriptor's expression. + The aggregate function. + + + + Initializes a new instance of the class + with specified expression, aggregate function, and a percent. + + The descriptor's expression. + The aggregate function. + The percent setting. + + + + Represents a collection of matrix data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the matrix descriptors. + + + This class contains three collections of descriptors such as , + and . Use collections' methods to add/remove + descriptors. When you are done, call the + method to refresh the matrix. + To fill a matrix in code, use the AddValue method. + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Clears all descriptors. + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + The number of elements in an array passed to this method must be the same as + a number of descriptors in the appropriate collection. That is, if your matrix + has one column, two row and one cell descriptors (in Columns, Rows and + Cells collections respectively), you have to pass one-element array for the + columnValues param, two-element array for the rowValues and one-element + array for the cellValues. + + This example demonstrates how to fill a simple matrix that contains one column, + row and cell. + + MatrixObject matrix; + matrix.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + + // this will produce the following result: + // | 1996 | + // --------------+----------+ + // Andrew Fuller | 123.45| + // --------------+----------+ + + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + Datasource row index. + + See the method for more details. + + + + + Gets a value with specified column, row and cell indicies. + + Index of a column. + Index of a row. + Index of a cell. + The value of a cell. + + + + Sets the cell's value. + + Index of a column. + Index of a row. + The new value. + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + MatrixObject matrix; + // change the fill color of the first matrix cell + matrix.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of matrix header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + Gets the list of indices of terminal items of this header. + + The list of indices. + + + + Gets the list of indices of terminal items of the header with specified address. + + The address of a header. + The list of indices. + + + + Removes a header item with the address specified. + + The address of a header. + + + + Gets an index of header with the address specified. + + The address of a header. + The index of header. + + + + Gets an index of header with the address specified. If there is no such header item, it will be created. + + The address of a header. + The index of header. + + + + + + + + + + The descriptor that is used to describe one element of the matrix header. + + + The class is used to define one header element of the matrix + (either the column element or row element). The key properties are + , and . + To set visual appearance of the element, use the + property. To set visual appearance of the "total" element, use the + property. + The collection of descriptors used to represent the matrix header is stored + in the MatrixObject.Data.Columns and MatrixObject.Data.Rows properties. + + + + + Gets or sets the sort order of header values. + + + This property determines how the values displayed in this element are sorted. The default sort + is ascending. + + + + + Gets or sets a value indicating that this element has associated "total" element. + + + To access the matrix cell that is bound to the "Total" element, use the + property. It may be useful to change the + "Total" text by something else. + + This example shows how to change the "Total" text of the total element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + Gets or sets the value indicating whether the total values must be printed before the data. + + + + + Gets or sets a value indicating that the page break must be printed before this element. + + + Page break is not printed before the very first element. + + + + + Gets or sets a value that determines whether it is necessary to suppress totals + if there is only one value in a group. + + + + + Gets or sets the template column bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to the "total" element of this descriptor. + + + This property may be useful to change the "Total" text by something else. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + This example shows how to change the "Total" element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Fill = new SolidFill(Color.Green); + + + + + + + + + + + + Initializes a new instance of the class with + default settings. + + + + + Initializes a new instance of the class with + specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class with + specified expression and totals. + + The descriptor's expression. + Indicates whether to show the "total" element. + + + + Initializes a new instance of the class with + specified expression, sort order and totals. + + The descriptor's expression. + Sort order used to sort header values. + Indicates whether to show the "total" element. + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Describes how the even style is applied to a matrix. + + + + + The even style is applied to matrix rows. + + + + + The even style is applied to matrix columns. + + + + + Represents the chart object based on Microsoft Chart control. + + + FastReport uses Microsoft Chart library to display charts. This library is included + in .Net Framework 4.0. For .Net 3.5 it is available as a separate download here: + http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c + This library requires .Net Framework 3.5 SP1. + To access Microsoft Chart object, use the property. It allows you + to set up chart appearance. For more information on available properties, refer to the + MS Chart documentation. + Chart object may contain one or several series. Each series is represented by two objects: + + + the Series that is handled by MS Chart. It is stored in the + Chart.Series collection; + + + the object that provides data for MS Chart series. + It is stored in the collection. + + + Do not operate series objects directly. To add or remove series, use + the and methods. These methods + handle Series and MSChartSeries in sync. + If you have a chart object on your Form and want to print it in FastReport, use + the method. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of objects. + + + + + Gets a reference to the MS Chart object. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the data source. + + + + + Gets or sets the filter expression. + + + This filter will be applied to all series in chart. You may also use the series' + property to filter each series individually. + + + + + Gets or sets a value indicating that all series' data point should be aligned by its X value. + + + Using this property is necessary to print stacked type series. These series must have + equal number of data points, and the order of data points must be the same for all series. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or set the color for auto-series. + + + If no color is specified, the new series will use the palette defined in the chart. + + + + + Gets or sets sort order for auto-series. + + + + + + + + Adds a new series. + + The type of series. + The new MSChartSeries object. + + + + Deletes a series at a specified index. + + Index of series. + + + + Assigns chart appearance, series and data from the + System.Windows.Forms.DataVisualization.Charting.Chart object. + + Chart object to assign data from. + + Use this method if you have a chart in your application and want to print it in FastReport. + To do this, put an empty MSChartObject in your report and execute the following code: + + report.Load("..."); + MSChartObject reportChart = report.FindObject("MSChart1") as MSChartObject; + reportChart.AssignChart(applicationChart); + report.Show(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Represents the small chart object (called sparkline) fully based on MSChartObject. + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies how the series points are sorted. + + + + + Points are not sorted. + + + + + Points are sorted by X value. + + + + + Points are sorted by Y value. + + + + + Specifies the direction in which the series points are sorted. + + + + + Points are sorted in ascending order. + + + + + Points are sorted in descending order. + + + + + Specifies how the series points are grouped. + + + + + Points are not grouped. + + + + + Points are grouped by X value. + + + + + Points are grouped by number specified in the . + + + + + Points are grouped by Years. + + + + + Points are grouped by Months. + + + + + Points are grouped by Weeks. + + + + + Points are grouped by Days. + + + + + Points are grouped by Hours. + + + + + Points are grouped by Minutes. + + + + + Points are grouped by Seconds. + + + + + Points are grouped by Milliseconds. + + + + + Specifies which pie value to explode. + + + + + Do not explode pie values. + + + + + Explode the biggest value. + + + + + Explode the lowest value. + + + + + Explode the value specified in the property. + + + + + Specifies which data points to collect into one point. + + + + + Do not collect points. + + + + + Show top N points (N value is specified in the + property), collect other points into one. + + + + + Show bottom N points (N value is specified in the + property), collect other points into one. + + + + + Collect points which have Y value less than specified + in the property. + + + + + Collect points which have Y value less than percent specified + in the property. + + + + + Collect points which have Y value greater than specified + in the property. + + + + + Collect points which have Y value greater than percent specified + in the property. + + + + + Represents a MS Chart series wrapper. + + + This class provides a data for MS Chart series. The series itself is stored inside the + MS Chart and is accessible via the property. + You don't need to create an instance of this class directly. Instead, use the + method. + + + + + Gets os sets the data filter expression. + + + The filter is applied for this series only. You can also use the + property to set a filter that will be applied to all + series in a chart. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or sets the sort method used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the sort order used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or sets the group method used to group data points. + + + This property is mainly used when series is filled with data with several identical X values. + In this case, you need to set the property to XValue. All identical data points will be + grouped into one point, their Y values will be summarized. You can choose the summary function + using the property. + + + + + Gets or sets the group interval. + + + This value is used if property is set to Number. + + + + + Gets or sets the function used to group data points. + + + + + Gets or sets the collect method used to collect several data points into one. + + + This instrument for data processing allows to collect several series points into one point. + The collected point will be displaed using the text specified in the + property and color specified in the property. + For example, to display top 5 values, set this property to TopN and specify + N value (5) in the property. + + + + + Gets or sets the collect value used to collect several data points into one. + + + This property is used if the property is set to any value other than None. + + + + + Gets or sets the text for the collected value. + + + + + Gets or sets the color for the collected value. + + + If this property is set to Transparent (by default), the default palette color + will be used to display a collected point. + + + + + Gets or sets the method used to explode values in pie-type series. + + + + + Gets or sets the value that must be exploded. + + + This property is used if property is set + to SpecificValue. + + + + + Gets or sets the data column or expression that returns the X value of data point. + + + + + Gets or sets the data column or expression that returns the first Y value of data point. + + + + + Gets or sets the data column or expression returns the second Y value of data point. + + + + + Gets or sets the data column or expression returns the third Y value of data point. + + + + + Gets or sets the data column or expression returns the fourth Y value of data point. + + + + + Gets or sets the data column or expression that returns the color of data point. + + + + + Gets or sets the data column or expression returns the label value of data point. + + + + + Gets a reference to MS Chart Series object. + + + Use this property to set many options available for the Series object. These options + include: visual appearance, labels, marks, value types. Refer to the Microsoft Chart control + documentation to learn more. + + + + + Gets a number of Y value per data point. + + + Number of Y values depends on series type. Most of series have only one Y value. Financial + series such as Stock and Candlestick, use four Y values. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Clears all data points in this series. + + + + + Adds a data point with specified X and Y values. + + X value. + Array of Y values. + + Note: number of values in the yValues parameter must be the same as value returned + by the property. + + + + + + + + Creates a new instance of the class with default settings. + + + + + Represents a collection of objects. + + + + + Gets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Resets series data. + + + + + Processes the current data row. + + + + + Finishes the series data. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SVG object + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets svg document + + + + + Gets or sets ViewBox value + + + + + Gets or sets AspectRatio value + + + + + + + + Gets or sets grayscale svg document + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Returns SVG string + + + + + + + + + + + + + + + + + + + + + + + Returns clone of this object + + + + + + Sets svg object by SvgDocument + + SVG document + + + + Sets svg object from specified path + + path to SVG file + + + + Sets svg object from svg string + + SVG string + + + + Initializes a new instance of the class with default settings. + + + + + Represents a table row. + + + Use the property to set the height of a row. If + property is true, the row will calculate its height automatically. + You can also set the and properties + to restrict the row's height. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a height of the row, in pixels. + + + The row height cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal height for this row, in pixels. + + + + + Gets or sets the maximal height for this row, in pixels. + + + + + Gets or sets a value determines if the row should calculate its height automatically. + + + The row height cannot exceed the range defined by the + and properties. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets the index of this row. + + + + + + + + Gets or sets the cell with specified index. + + Column index. + The TableCell object. + + + + Gets or sets the page break flag for this row. + + + + + Gets or sets the number of rows to keep on the same page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table object that consists of several rows and columns. + + + To add/remove columns, use the collection. To add/remove + rows, use the collection. To initialize a table with specified number of + columns and rows, use and properties. + To print a table in code, use the event. In the manual build + mode, you can use aggregate functions. The following functions available: + + + Aggregate function + Description + + + Sum(cell) + Calculates the sum of values in specified table cell. + + + Min(cell) + Calculates the minimum of values in specified table cell. + + + Max(cell) + Calculates the maximum of values in specified table cell. + + + Avg(cell) + Calculates the average of values in specified table cell. + + + Count(cell) + Calculates the number of repeats of a specified table cell. + + + To print aggregate value, place the aggregate function call in the table cell: + [Count(Cell2)]. + + + + + + + + + + + + + + + + + + + + + + + Allows to print table rows/columns dynamically. + + + This event is used to handle the table print process in a code. Using special methods + like , you can print specified rows/columns. + + First way is to repeat specified row(s) to get a table that will grow downwards. + To do this, you have to call the PrintRow method followed by the PrintColumns method. + + Another way is to repeat the specified column(s) to get a table that grows sidewards. + To do this, call the PrintColumn method followed by the PrintRows method. + + Finally, the third way is to repeat rows and columns. The table will grow downwards and + sidewards. To do this, call the PrintRow method followed by the PrintColumn + method (or vice versa). + + + + When you print a table row-by-row, you must call one of the PrintColumn, + PrintColumns methods right after the PrintRow method. + In the same manner, when you print a table column-by-column, call one of the + PrintRow, PrintRows methods right after the PrintColumn method. + If you ignore this rule you will get an exception. + + + + In this example, we will consider all three ways to print a table which has 3 rows and 3 columns. + Case 1: print a table downwards. + + // print table header (the first row) + Table1.PrintRow(0); + Table1.PrintColumns(); + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + Table1.PrintRow(1); + Table1.PrintColumns(); + } + // print table footer (the third row) + Table1.PrintRow(2); + Table1.PrintColumns(); + + + Case 2: print a table sidewards. + + // print table header (the first column) + Table1.PrintColumn(0); + Table1.PrintRows(); + // print table body (the second column) + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + Table1.PrintRows(); + } + // print table footer (the third column) + Table1.PrintColumn(2); + Table1.PrintRows(); + + + Case 3: print a table downwards and sidewards. + + // print the first row with all its columns + Table1.PrintRow(0); + // print header column + Table1.PrintColumn(0); + // print 10 data columns + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + // print footer column + Table1.PrintColumn(2); + + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + // print data row with all its columns + Table1.PrintRow(1); + Table1.PrintColumn(0); + for (int j = 0; j < 10; j++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + } + + // print table footer (the third row) + Table1.PrintRow(2); + // again print all columns in the table footer + Table1.PrintColumn(0); + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + + + + + + Gets or sets a script method name that will be used to handle the + event. + + + If you use this event, you must handle the table print process manually. + See the event for details. + + + + + Determines whether to manage cell spans automatically during manual build. + + + The default value for this property is true. If you set it to false, you need to manage + spans in your ManualBuild event handler. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + Prints a row with specified index. + + Index of a row to print. + + See the event for more details. + + + + + Prints rows with specified indices. + + Indices of rows to print. + + See the event for more details. + + + + + Prints all rows. + + + See the event for more details. + + + + + Prints a column with specified index. + + Index of a column to print. + + See the event for more details. + + + + + Prints columns with specified indices. + + Indices of columns to print. + + See the event for more details. + + + + + Prints all columns. + + + See the event for more details. + + + + + Adds a page before rows or columns. + + + Call this method to insert a page break before the next row or column that you intend to print + using PrintRow(s) or PrintColumn(s) methods. + See the event for more details. + + + + + Initializes a new instance of the class. + + + + + Represents a table column. + + + Use the property to set the width of a column. If + property is true, the column will calculate its width automatically. + You can also set the and properties + to restrict the column's width. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a width of the column, in pixels. + + + The column width cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal width for this column, in pixels. + + + + + Gets or sets the maximal width for this column, in pixels. + + + + + Gets or sets a value determines if the column should calculate its width automatically. + + + The column width cannot exceed the range defined by the + and properties. + + + + + Gets the index of this column. + + + + + + + + Gets or sets the page break flag for this column. + + + + + Gets or sets the number of columns to keep on the same page. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table cell. + + + Use , properties to set the cell's + column and row spans. To put an object inside the cell, use its property: + + TableCell cell1; + PictureObject picture1 = new PictureObject(); + picture1.Bounds = new RectangleF(0, 0, 32, 32); + picture1.Name = "Picture1"; + cell1.Objects.Add(picture1); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of objects contained in this cell. + + + + + Gets or sets the column span for this cell. + + + + + Gets or sets the row span for this cell. + + + + + + + + Gets the address of this cell. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets the TableBase object which this cell belongs to. + + + + + + + + Creates the exact copy of this cell. + + The copy of this cell. + + + + Determines if two cells have identical settings. + + Cell to compare with. + true if cells are equal. + + + + + + + Changes the cell's style. + + The new style. + + Each cell in a dynamic table object (or in a matrix) has associated style. + Several cells may share one style. If you try to change the cell's appearance directly + (like setting cell.TextColor), it may affect other cells in the table. + To change the single cell, use this method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + The base class for table-type controls such as and + . + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of table rows. + + + + + Gets a collection of table columns. + + + + + Gets or sets the number of fixed rows that will be repeated on each page. + + + + + Gets or sets the number of fixed columns that will be repeated on each page. + + + + + Gets or sets a value that determines whether is necessary to repeat table header on each page. + + + To define a table header, set the and + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Row header on each page. + + + To define a table Row header, set the + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Column header on each page. + + + To define a table Column header, set the + properties. + + + + + Gets or sets the table layout. + + + This property affects printing the big table that breaks across pages. + + + + + Gets or sets gap between parts of the table in wrapped layout mode. + + + This property is used if you set the property to Wrapped. + + + + + Gets or sets a value that determines whether to adjust the spanned cell's width when breaking the table across pages. + + + If set to true, the spanned cell's width will be adjusted to accomodate all contained text. + + + + + Gets or sets the table cell. + + Column index. + Row index. + The TableCell object that represents a cell. + + + + Gets or sets a number of columns in the table. + + + + + Gets or sets a number of rows in the table. + + + + + Gets a table which contains the result of rendering dynamic table. + + + Use this property to access the result of rendering your table in dynamic mode. + It may be useful if you want to center or right-align the result table on a page. + In this case, you need to add the following code at the end of your ManualBuild event handler: + + // right-align the table + Table1.ResultTable.Left = Engine.PageWidth - Table1.ResultTable.CalcWidth() - 1; + + + + + + + + + + + + + + + Gets data of the table cell with specified column and row numbers. + + The column number. + The row number. + TableCellData instance containing data of the table cell. + + + + Creates unique names for all table elements such as rows, columns, cells. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates and returns the table width, in pixels. + + + + + + + + + + + Calculates a sum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a minimum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a maximum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates an average of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates number of repeats of a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Initializes a new instance of the class. + + + + + Specifies the layout that will be used when printing a big table. + + + + + The table is printed across a pages then down. + + + + + The table is printed down then across a pages. + + + + + The table is wrapped. + + + + + Represents data of the table cell. + + + + + Gets or sets parent table of the cell. + + + + + Gets or sets objects collection of the cell. + + + + + Gets or sets text of the table cell. + + + + + Gets or sets value of the table cell. + + + + + Gets or sets hyperlink value of the table cell. + + + + + Gets or sets column span of the table cell. + + + + + Gets or sets row span of the table cell. + + + + + Gets or sets the address of the table cell. + + + + + Gets the table cell. + + + + + Gets style of table cell. + + + + + Gets original the table cell. + + + + + Gets width of the table cell. + + + + + Gets height of the table cell. + + + + + Initializes a new instance of the class. + + + + + Attaches the specified table cell. + + The table cell instance. + This method is called when we load the table. + + + + Assigns another instance. + + The table cell data that used as a source. + This method is called when we copy cells or clone columns/rows in a designer. + + + + Assigns another instance at run time. + + The table cell data that used as a source. + This flag shows should children be copied or not. + This method is called when we print a table. We should create a copy of the cell and set the style. + + + + Sets style of the table cell. + + The new style of the table cell. + + + + Disposes the instance. + + + + + Calculates width of the table cell. + + The value of the table cell width. + + + + Calculates height of the table cell. + + The width of the table cell. + The value of the table cell height. + + + + Updates layout of the table cell. + + The width of the table cell. + The height of the table cell. + The new value of x coordinate. + The new value of y coordinate. + + + + Represents a collection of objects. + + + + + Gets a column with specified index. + + Index of a column. + The column with specified index. + + + + + + + + + + Represents a result table. + + + Do not use this class directly. It is used by the and + objects to render a result. + + + + + Occurs after calculation of table bounds. + + + You may use this event to change automatically calculated rows/column sizes. It may be useful + if you need to fit dynamically printed table on a page. + + + + + + + + + + + Creates a new instance of the class. + + + + + Represents a collection of objects. + + + + + Gets a row with specified index. + + Index of a row. + The row with specified index. + + + + + + + + + + Represents the "Blank Report" wizard. + + + + + + + + Represents the "Inherited Report" wizard. + + + + + + + + Represents the "Label" wizard. + + + + + Gets a selected label manufacturer. + + + + + Gets a selected label name. + + + + + Gets the XML item containing a selected label parameters. + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents the "New Data Source" wizard. + + + + + + + + Represents the "Standard Report" wizard. + + + + + + + + The base class for all report wizards. + + + To create own wizard, use this class as a base. All you need is to override + the method. To register a wizard, use the + method. + + + + + Runs the wizard. + + Report designer. + true if wizard was executed succesfully. + + This method is called when you select a wizard in the "Add New Item" window and + click "Add" button. You should do the work in this method. + + + + + Represents the "New Dialog" wizard. + + + + + + + + Represents the "New Page" wizard. + + + + + + + + Represents a RichText object that can display formatted text. + + + Use the property to set the object's text. The text may include + the RTF formatting tags. + + + + + + + + + + + + + + Gets or sets the object's text. + + + This property returns the formatted text with rtf tags. + + + + + Gets or sets a name of the data column bound to this control. + + + Value must contain the datasource name, for example: "Datasource.Column". + + + + + Gets the actual text start. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets the actual text length. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets or sets the break style. + + + Set this property to true if you want editable rich text when you edit the prepared report page. + + + + + Experimental feature for translation of RichText into report objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The DIGEST-MD5 SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + + + + The PLAIN SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + Computes the client response for server challenge. + + The challenge from server. Usually empty for PLAIN mechanism. + The response from client. + + + + The base abstarct class for all SASL mechanisms. + + + + + Gets or sets the name of mechanism. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + The username. + The user's password. + + + + Computes client response for server challenge. + + The server challenge. + The client response. + + + + Gets the base64-encoded client response fo the server challenge. + + The base64-string containing server challenge. + The base64-string containing client response. + + + + Gets the client response for the server challenge. + + Byte array containing server challenge. + Byte array containing client response. + + + + The base class for all messengers. + + + + + Gets the filename. + + + + + Gets or sets the proxy settings. + + + + + Initializes a new instance of the class. + + + + + Authorizes the user. + + True if user has been successfully authorized. + + + + Prepares the report before it will be send. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Sends the report. + + The report template that should be sent. + The export filter that should export template before. + True if report has been successfully sent. + + + + Represents form of messenger. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl pageControl1. + + + + + Represents proxy settings of the messenger. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the type of proxy. + + + + + Initializes a new instance of the class. + + The proxy server. + The port number of server. + The username. + The user's password. + The type of proxy. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Represents the IQ stanza. + + + + + Gets or sets the type of iq. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the iq. + The type of iq. + The JID of the sender. + The JID of the recipient. + The ID of the iq. + The language of the iq. + The data of the iq. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP message. + + + + + Gets or sets the type of message. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the message. + The type of message. + The JID of the sender. + The JID of the recipient. + The ID of the message. + The language of the message. + The data of the message. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP Presence. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the presence. + The JID of the sender. + The JID of the recipient. + The ID of the presence. + The language of the presence. + The data of the presence. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the base class for XML stanzas used in XMPP. + + + + + Gets the data of the stanza. + + + + + Gets or sets the JID of the sender. + + + + + Gets or sets the JID of the recipient. + + + + + Gets or sets the ID of the stanza. + + + + + Gets or sets the language of the stanza. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the stanza. + The JID of the sender. + The JID of the recipient. + The ID of the stanza. + The language of the stanza. + The data of the stanza. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Converts stanza to string. + + String containing stanza value. + + + + The parser for XMPP XML-streams. + + + + + Initializes a new instance of the class. + + The stream for parsing. + True to leave the stream opened after closing the StreamReader instance. + + + + Read the XML stream up to opening "stream:stream" tag. + + + + + Reads the next XML element from the stream. + + The list of XML elements that are expected. + The XML element. + + + + Closes the stream parser. + + + + + Releases all resources used by the current instance of the class. + + + + + Represents a static class to simplify the work with XmlElement instance. + + + + + Creates a new XmlElement instance. + + The name of the element. + The namespace of the element. + A new instance of the class. + + + + Adds the specified child to the end of child nodes of element. + + The element for add the child to. + The child node to add. + A XmlElement instance. + + + + Adds the attribute to XmlElement with spefied name and value. + + The element for add the attribute to. + The name of attribute. + The value of attribute. + A XmlElement instance. + + + + Adds the specified text to the end of child nodes of element. + + The element for add the text to. + The text for add. + A XmlElement instance. + + + + Converts the XmlElement instance to a string. + + The element to convert to. + True if needed to include XML declaration. + True if needed to leave the tag of an empty element open. + The XmlElement instance as string. + + + + Represents the XMPP messenger. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the hostname of XMPP server. + + + + + Gets or sets the port number of the XMPP service of the server. + + + + + Gets or sets the username to send file to. + + + + + Gets or sets the JID to send from. + + + + + Gets or set the JID to send to. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + Username. + Password. + Hostname. + Port. + Username to send file to. + Send to user's resource. + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + JID to send to with resource. + + + + Sends the specified string to the server. + + The string to send. + + + + Initiates the stream to the server. + + The hostname. + The features response of the server. + + + + Validates the server certificate. + + The sender object. + X509 certificate. + The X509 chain. + The SSL policy errors. + True if successfull. + + + + Secures the stream by TLS. + + The hostname. + The features response of the server. + + + + Selects the SASL authentication mechanism. + + List of mechanisms. + The string containing mechanism name. + + + + Authenticates the user on the server using Plain mechanism. + + + + + Authenticates the user on the server using Digest-MD5 mechanism. + + + + + Authenticates the user on the server. + + The SASL mechanisms list. + + + + Setups the connection with the server. + + + + + Binds resource and gets the full JID that will be associated with current session. + + The full session JID. + + + + Opens session between client and server. + + The id of the opened session. + + + + Connects to the server. + + + + + Sends the message. + + The text of the message. + True if message has been successfully sent. + + + + Sends the presence. + + The text of the presence. + True if presence has been successfully sent. + + + + Initiates the In Band Bytestream for sending the file (XEP-0047). + + True if bytestream has been successfully initiated. + + + + Sends the chunk to the XMPP server. + + The data of the chunk. + The number of the chunk. + + + + Sends the file using In Band Bytestream. + + The memory stream containing data of the file. + True if file has been successfully sent. + + + + Sends the file using FastReport Cloud as a proxy server. + + The report template. + The export filter to export report before sending. + True if file has been successfully sent. + + + + Disconnects from the server. + + + + + + + + + + + Closes the connection. + + + + + Releases all the resources used by the XMPP messenger. + + + + + Represents the form of the XMPP messenger. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + Send to user's JID. + Report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Provides a type converter for a property representing a reference to another component in a report. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a value measured in the current report units. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing an expandable object. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a data type. + + + + + + + + + + + + + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + Represents a collection of bands. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + Owner that owns this collection. + + + + The layout of the data band columns. + + + + + Print columns across then down. + + + + + Print columns down then across. + + + + + This class holds the band columns settings. It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + The column width, in pixels. + + + + + Gets or sets the layout of the columns. + + + + + Gets or sets the minimum row count that must be printed. + + + This property is used if the Layout property is set to DownThenAcross. 0 means that + FastReport should calculate the optimal number of rows. + + + + + Assigns values from another source. + + Source to assign from. + + + + Initializes a new instance of the BandColumns class with default settings. + + + + + Specifies a set of actions that cannot be performed on the object in the design mode. + + + + + Specifies no restrictions. + + + + + Restricts moving the object. + + + + + Restricts resizing the object. + + + + + Restricts modifying the object's properties. + + + + + Restricts editing the object. + + + + + Restricts deleting the object. + + + + + Hides all properties of the object. + + + + + Specifies a set of actions that can be performed on the object in the design mode. + + + + + Specifies no actions. + + + + + Allows moving the object. + + + + + Allows resizing the object. + + + + + Allows deleting the object. + + + + + Allows editing the object. + + + + + Allows changing the Z-order of an object. + + + + + Allows moving the object to another parent. + + + + + Allows copying the object to the clipboard. + + + + + Allows drawing the object. + + + + + Allows grouping the object. + + + + + Allows write children in the preview mode by itself. + + + + + Allows write object's bounds into the report stream. + + + + + Allows the "smart tag" functionality. + + + + + Specifies that the object's name is global (this is true for all report objects + such as Text, Picture and so on). + + + + + Specifies that the object can display children in the designer's Report Tree window. + + + + + Specifies that the object supports mouse wheel in the preview window. + + + + + Specifies the style of a border line. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a double line. + + + + + Specifies the sides of a border. + + + + + Specifies no border lines. + + + + + Specifies the left border line. + + + + + Specifies the right border line. + + + + + Specifies the top border line. + + + + + Specifies the bottom border line. + + + + + Specifies all border lines. + + + + + Represents a single border line. + + + + + Gets or sets a color of the line. + + + + + Gets or sets a style of the line. + + + + + Gets or sets a width of the line, in pixels. + + + + + + + + + + + Represents a border around the report object. + + + Border consists of four lines. Each line has own color, style and width. Lines are accessible through + , , , properties. + + To turn on and off the lines, use the property. To set the same color, style or width + for each line, use , , properties of the Border. + + + + + Gets or sets a color of the border. + + + This property actually returns a color of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a value determines whether to draw a shadow. + + + + + Gets or sets a shadow width, in pixels. + + + + + Gets or sets a shadow color. + + + + + Gets or sets a style of the border. + + + This property actually returns a style of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a visible lines of a border. + + + + + Gets or sets a width of the border, in pixels. + + + This property actually returns a width of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets the left line of the border. + + + + + Gets or sets the top line of the border. + + + + + Gets or sets the right line of the border. + + + + + Gets or sets the bottom line of the border. + + + + + Gets or sets a value determines that Border must serialize only one line. + + + This property is for internal use only. + + + + + Creates the exact copy of this Border. + + A copy of this border. + + + + + + + + + + Serializes the border. + + Writer object. + Border property name. + Another Border to compare with. + + This method is for internal use only. + + + + + Draw the border using draw event arguments and specified bounding rectangle. + + Draw event arguments. + Bounding rectangle. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report components that can break across pages. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets or sets a reference to another similar object that will be used for displaying the + text that not fit in this object. + + + + + + + + + + + Breaks the contents of the object. + + Object to put the part of content to that does not fit in this object. These two + objects must have the same type. + true if there is enough space in this object to display at least one text line. + + + Do not call this method directly, it is used by the report engine. You should override it if + you are writing a new FastReport object. + + + This method must break the contents of the object. The part of content that fit in current object's + bounds should remain in this object, the part that does not fit should be transferred to breakTo + object. + + + + + + Initializes a new instance of the BreakableComponent class with default settings. + + + + + Specifies a line cap style. + + + + + Specifies a line without a cap. + + + + + Specifies a line with a circle cap. + + + + + Specifies a line with a square cap. + + + + + Specifies a line with a diamond cap. + + + + + Specifies a line with an arrow cap. + + + + + Specifies a start and end line caps. + + + + + Gets or sets a width of the cap. + + + + + Gets or sets a height of the cap. + + + + + Gets or sets a cap style. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this object. + + Copy of this object. + + + + + + + + + + Serializes the cap settings. + + Name of the cap property. + Writer object. + Another cap to compare with. + + This method is for internal use only. + + + + + Initializes a new instance of the CapSettings class with default settings. + + + + + Specifies a symbol that will be displayed when a is in the checked state. + + + + + Specifies a check symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a plus symbol. + + + + + Specifies a filled rectangle. + + + + + Specifies a symbol that will be displayed when a is in the unchecked state. + + + + + Specifies no symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a minus symbol. + + + + + Specifies a slash symbol. + + + + + Specifies a back slash symbol. + + + + + This class represents a column footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a column header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of highlight conditions used in the property + of the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies conditions from another collection. + + Collection to copy from. + + + + + + + + + + This class represents a data band footer. + + + + + This class represents a header of the data band. + + + + + Specifies the image format in SVG export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing objects to a svg + + + + + For setting namespace, clear all attributes on setting, therefore use this property before setting other svg options + + + + + Initialize a new Graphics for SVG, it's rendered to xml, layer by layer, not one image, + set the Size of this graphics in Size property + + + + + Base class for all fills. + + + + + Returned true if Color = Transparent + + + + + Creates exact copy of this fill. + + Copy of this object. + + + + Creates the GDI+ Brush object. + + Drawing rectangle. + Brush object. + + + + Creates the GDI+ Brush object with scaling. + + Drawing rectangle. + X scaling coefficient. + Y scaling coefficient. + Brush object. + + + + Serializes the fill. + + Writer object. + Name of the fill property. + Fill object to compare with. + + This method is for internal use only. + + + + + Fills the specified rectangle. + + Draw event arguments. + Drawing rectangle. + + + + Class represents the solid fill. + + + + + Gets or sets the fill color. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with Transparent color. + + + + + Initializes the class with specified color. + + + + + + Class represents the linear gradient fill. + + + + + Gets or sets the start color of the gradient. + + + + + Gets or sets the end color of the gradient. + + + + + Gets or sets the angle of the gradient. + + + + + Gets or sets the focus point of the gradient. + + + Value is a floating point value from 0 to 1. + + + + + Gets or sets the gradient contrast. + + + Value is a floating point value from 0 to 1. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with start and end colors. + + Start color. + End color. + + + + Initializes the class with start, end colors and angle. + + Start color. + End color. + Angle. + + + + Initializes the class with start and end colors, angle, focus and contrast. + + Start color. + End color. + Angle. + Focus. + Contrast. + + + + The style of the path gradient. + + + + + Elliptic gradient. + + + + + Rectangular gradient. + + + + + Class represents the path gradient fill. + + + + + Gets or sets the center color of the gradient. + + + + + Gets or sets the edge color of the gradient. + + + + + Gets or sets the style of the gradient. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with center, edge colors and style. + + Center color. + Edge color. + Gradient style. + + + + Class represents the hatch fill. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the background color. + + + + + Gets or sets the hatch style. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with foreground, background colors and hatch style. + + Foreground color. + Background color. + Hatch style. + + + + Class represents the glass fill. + + + + + Gets or sets the fill color. + + + + + Gets or sets the blend value. + + Value must be between 0 and 1. + + + + + Gets or sets a value determines whether to draw a hatch or not. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with given color, blend ratio and hatch style. + + Color. + Blend ratio (0..1). + Display the hatch. + + + + Class represents the Texture fill. + + + + + Gets or sets value, indicating that image should preserve aspect ratio + + + + + Gets or sets the image width + + + + + Gets or sets the image height + + + + + Gets or sets the texture wrap mode + + + + + Gets or sets the image index + + + + + Gets or sets the image data + + + + + Image left offset + + + + + Image top offset + + + + + Sets image data to imageData + + input image data + + + + Set image + + input image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default texture. + + + + + Initializes the class with specified image. + + + + + + Initializes the class with specified image. + + + + + + Font header + + + + + TrueTypeFont object + + + + + Create outline for group of characters + + text as array of glyph's indexes + position of text + font size + text in form of outline vectors + + + + Create outline for text string + + text which will be transformed to outline + position of text + font size in px + text in form of outline vectors + + + + + + + Expected default behaviour as version 2020.3 + + + + + We use dictionary and pack "Index To Location" table (reorder glyph indexes) + + + + + Get or set current script + + + + + Get or set current Language + + + + + Get available scripts + + + + + Get available languages for script + + + + + + + Get available features for language and script + + + + + + + + Prepare tables for drawing, subsetting and so on + + always true + + + + Return raw image of the font + + Array of font bytes + + + + + Parse font supplement tables which store properties of the font + + + + + Create glyph outline assigned to specific position + + unicode character which will be drawn + size of the character + position of outline + outline of character + + + + Get glyph's outline + + unicode charter + outline image size + + + + + Constructor of TrueTypeFont object + + The start of RAW image of font or font collection + Actual address of font within RAW image + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of OutlineTextMetric structure + + + + + Emulation of Uniscribe GetOutlineTextMetrics + + Reference to metric structure + + + + Translate text to positions of glyphs in glyph tables and glyphs width + + + size in px + + + + + + + + + Destructor of TrueTypeFont object + + + + + Font descriptor + + + + + Indicates that the point is the start of a figure. + + + + + Indicates that the point is one of the two endpoints of a line. + + + + + Indicates that the point is an endpoint or control point of a cubic Bézier spline. + + + + + Masks all bits except for the three low-order bits, which indicate the point type. + + + + + Specifies that the point is a marker. + + + + + Specifies that the point is the last point in a closed subpath (figure). + + + + + FontHeader table + + + + + Define type of font file + + + + + Classic TrueType font + + + + + Collection of TrueType fonts + + + + + OpenType font format + + + + + + + + GlyphSubstitution table + + + + + Return true if was applied + + + + + + + + + Return coverageIndex for ApplyForce or if fail then return -1 + + + + + + + + Apply this Substitution with specified coverageIndex, cant be called only after IsApply + + + + + + + + + Table with encoded glyphs' outline + + + + + HorizontalMetrix table + + + + + IndexToLocation table + + + + + Kerning table + + + + + MaximumProfile table + + + + + Name table keep human friendly description about font properties, including font names, author and copyright notes + + + + + OS/2 and Windows Metrics table + + + + + Description of FontTextMetric structure + + + + + Description of FontPanose structure + + + + + Request font file + + System.Drawing.Font object + System/IO.Stream object + + + + Get full path to a font file by it's identifier + + font name with attributes + path to a font file + + + + assign full path to a font file to it's identifier + + font name with attributes + path to a font file + + + + Request font file location + + + + + Request font file location + + + + + Register font file + + + + + Will be removed soon + + + + + Different caching strategies + + + + + Progress callback type definition + + Progress information + + + + Progress callback event + + + + + Open and parse TrueType file + + + + + + + + Find all fonts files in directory and it's subdirectories + + Directory where find fond files + Defines file which collect found fonts + + + + Get TrueType font from static collection + + String which identifies font - family name + "-B" for bold and "-I" for italic + + + + + Get font by its name and bold/italic attributes + + + TrueType font object + + + + Workaround function for avoid font duplicates + + if true then font append to collection, if false then font append to hash + Internal font structure + This parameter defines path to font file if file append to hash. Not used otherwise + + + + Parse raw image of font data and create TrueTypeFont objects from this image + + Defines font or collections + Pointer to memory of raw font data + + + + + Build list of fonts + + Optional path to font.list folder. + + + + Enumerate available fonts + + + + + Base class which is parent of any table in TrueType font or collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines how boolean values are formatted and displayed. + + + + + Gets or sets a string that will be displayed if value is false. + + + + + Gets or sets a string that will be displayed if value is true. + + + + + + + + + + + + + + + + + Initializes a new instance of the BooleanFormat class with default settings. + + + + + Defines how currency values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in currency values. + + + + + Gets or sets the string to use as the decimal separator in currency values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in currency values. + + + + + Gets or sets the string to use as the currency symbol. + + + + + Gets or sets the format pattern for positive currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0$n + 1n$ + 2$ n + 3n $ + + + + + + Gets or sets the format pattern for negative currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0 ($n) + 1 -$n + 2 $-n + 3 $n- + 4 (n$) + 5 -n$ + 6 n-$ + 7 n$- + 8 -n $ + 9 -$ n + 10n $- + 11$ n- + 12$ -n + 13n- $ + 14($ n) + 15(n $) + + + + + + + + + + + + + + + + + + Initializes a new instance of the CurrencyFormat class with default settings. + + + + + Represents a format that uses the Format string to display values. + + + + + Gets or sets a format string. + + + Default format is "G". For example, if you want to format a date, use the following + format string: "MM/dd/yyyy". See the System.String.Format method for list + of possible format strings. + + + + + + + + + + + + + + + + + Initializes a new instance of the CustomFormat class with default settings. + + + + + Defines how date values are formatted and displayed. + + + + + + + + Initializes a new instance of the DateFormat class with default settings. + + + + + Base class for all formats. + + + The format is used to format expression value in a object. + + + + + Gets the short format name (e.g. without a "Format" suffix). + + + + + Creates exact copy of this format. + + The copy of this format. + + + + Formats the specified value. + + The value to format. + The string that represents the formatted value. + + + + + + + + + + Represents a collection of formats used by the and + objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies formats from another collection. + + Collection to copy from. + + + + + + + + + + Represents a format used to display values with no formatting. + + + + + + + + + + + + + + + + + Defines how numeric values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in numeric values. + + + + + Gets or sets the string to use as the decimal separator in numeric values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in numeric values. + + + + + Gets or sets the format pattern for negative numeric values. + + This property can have one of the values in the following table. + The symbol n is a number. + + ValueAssociated Pattern + 0(n) + 1-n + 2- n + 3n- + 4n - + + + + + + + + + + + + + + + + + + Initializes a new instance of the NumberFormat class with default settings. + + + + + Defines how percent values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in percent values. + + + + + Gets or sets the string to use as the decimal separator in percent values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in percent values. + + + + + Gets or sets the string to use as the percent symbol. + + + + + Gets or sets the format pattern for positive percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0n % + 1n% + 2%n + 3% n + + + + + + Gets or sets the format pattern for negative percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0 -n % + 1 -n% + 2 -%n + 3 %-n + 4 %n- + 5 n-% + 6 n%- + 7 -%n + 8 n %- + 9 % n- + 10% -n + 11n- % + + + + + + + + + + + + + + + + + + Initializes a new instance of the PercentFormat class with default settings. + + + + + Defines how time values are formatted and displayed. + + + + + + + + Initializes a new instance of the TimeFormat class with default settings. + + + + + Represents a group footer band. + + + + + Specifies a sort order. + + + This enumeration is used in the group header and in the "Matrix" object. + + + + + Specifies no sort (natural order). + + + + + Specifies an ascending sort order. + + + + + Specifies a descending sort order. + + + + + Represents a single highlight condition used by the property + of the . + + + + + Gets or sets a highlight expression. + + + This property can contain any valid boolean expression. If value of this expression is true, + the fill and font settings will be applied to the TextObject. + + + + + Gets or sets the visibility flag. + + + If this property is set to false, the Text object will be hidden if the + condition is met. + + + + + + + + + + + Creates exact copy of this condition. + + A copy of this condition. + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the hyperlink type. + + + + + Specifies the hyperlink to external URL such as "http://www.fast-report.com", "mailto:" + or any other system command. + + + + + Specifies hyperlink to a given page number. + + + + + Specifies hyperlink to a bookmark. + + + + + Specifies hyperlink to external report. This report will be run when you follow the hyperlink. + + + + + Specifies hyperlink to this report's page. The page will be run when you follow the hyperlink. + + + + + Specifies a custom hyperlink. No actions performed when you click it, you should handle it + in the object's Click event handler. + + + + + This class contains a hyperlink settings. + + + + + Gets or sets the kind of hyperlink. + + + Use the Kind property to define hyperlink's behavior. + The hyperlink may be used to navigate to the external url, the page number, + the bookmark defined by other report object, the external report, the other page of this report, + and custom hyperlink. + + + + + Gets or sets the expression which value will be used for navigation. + + + Normally you should set the Expression property to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to some fixed data (URL or page number, for example), + use the property instead. + + + + + Gets or sets a value that will be used for navigation. + + + Use this property to specify the fixed data (such as URL, page number etc). If you want to + navigate to some dynamically calculated value, use the property instead. + + + + + Gets or sets a value that indicate should be links open in new tab or not. + + + It works for HTML-export only! + + + + + Gets or sets an external report file name. + + + Use this property if is set to DetailReport. + When you follow the hyperlink, this report will be loaded and run. + You also may specify the report's parameter in the property. + + + + + Gets or sets the name of this report's page. + + + Use this property if is set to DetailPage. + When you follow the hyperlink, the specified page will be executed. It may contain the + detailed report. You also may specify the report's parameter in the + property. + + + + + Gets or sets a parameter's name that will be set to hyperlink's value. + + + Use this property if is set to DetailReport or DetailPage. + If you want to pass the hyperlink's value to the report's parameter, specify the + parameter name in this property. This parameter will be set to the hyperlink's value + before running a report. It may be used to display detailed information about clicked item. + It is also possible to pass multiple values to several parameters. If hyperlink's value + contains separators (the separator string can be set in the + property), it will be splitted to several values. That values will be passed to nested parameters + of the ReportParameter (you should create nested parameters by youself). For example, you have + the ReportParameter called "SelectedValue" which has two nested parameters: the first one is + "Employee" and the second is "Category". The hyperlink's value is "Andrew Fuller;Beverages". + It will be splitted to two values: "Andrew Fuller" and "Beverages". The first nested parameter + of the ReportParameter that is "Employee" in our case will be set to "Andrew Fuller"; + the second nested parameter ("Category") will be set to "Beverages". + Note: when you create a parameter in the detailed report, don't forget to set + its DataType property. It is used to convert string values to actual data type. + + + + + + Gets or sets a string that will be used as a separator to pass several values + to the external report parameters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Provides the serialize/deserialize functionality. + + + + + Serializes the object. + + Writer object. + + + + Deserializes the object. + + Reader object. + + + + Implement this interface if your object can contain list of child objects. + + + + + Gets a value indicating that this object can contain the specified child object. + + Child object. + true if this object can contain the specified child object; otherwise, false. + + + + Gets a list of child objects. + + List to fill with values. + + + + Adds a child object to this object's childs. + + Object to add. + + + + Removes a specified object from this object's childs. + + + + + + Returns z-order of the specified child object. + + Child object. + Z-order of the specified object. + + This method must return the index of a specified child object in the internal child list. + + + + + Sets the z-order of the specified object. + + Child object. + New Z-order. + + This method must place the specified child object at the specified position in the internal child list. + + + + + Updates the children layout when the size of this object is changed by dx, dy values. + + X delta. + Y delta. + + This method must update positions/sizes of child objects whose Dock or Anchor properties + are set to non-default values. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents an overlay band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + This class contains the page columns settings. + It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + Gets or sets the column width. + + + + + Gets or sets a list of column starting positions. + + + Each value represents a column starting position measured in the millimeters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Represents a page footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a page header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the alignment of a image in the border. + + + + + Specifies that image is not aligned in the layout rectangle. + + + + + Specifies that image is aligned in the top-left of the layout rectangle. + + + + + Specifies that image is aligned in the top-center of the layout rectangle. + + + + + Specifies that image is aligned in the top-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies the language of the report's script. + + + + + The C# language. + + + + + The VisualBasic.Net language. + + + + + Specifies the quality of text rendering. + + + + + The default text quality, depends on system settings. + + + + + The regular quality. + + + + + The "ClearType" quality. + + + + + The AntiAlias quality. This mode may be used to produce the WYSIWYG text. + + + + + The "SingleBitPerPixel" quality. + + + + + The "SingleBitPerPixelGridFit" quality. + + + + + Specifies the report operation. + + + + + Specifies no operation. + + + + + The report is running. + + + + + The report is printing. + + + + + The report is exporting. + + + + + Specifies the page range to print/export. + + + + + Print all pages. + + + + + Print current page. + + + + + Print pages specified in the PageNumbers property of the PrintSettings. + + + + + The automatic shift mode. + + + + + Do not shift the object. + + + + + Shift the object up or down if any object above it shrinks or grows. + + + + + Shift the object up or down if any object above it shrinks or grows. + Objects must have overlapped x-coordinates. + + + + + Specifies where to print an object. + + + + + Do not print the object. + + + + + Print the object on the first page. If this flag is not set, the object will not + be printed on the first page. + + + + + Print the object on the last page. If this flag is not set, the object will not + be printed on the last page. You should set the report's double pass option to make + it work correctly. + + + + + Print the object on odd pages only. + + + + + Print the object on even pages only. + + + + + Print the object on band with "Repeat on Every Page" flag when that band is repeated. + + + + + Print the object if the report has single page only. + + + + + Specifies the style properties to use when style is applied. + + + + + Use the fill property of the style. + + + + + Use all style properties. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Provides data for the event. + + + + + Gets a name of the file to load the report from. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The name of the file to load the report from. + The report. + + + + Provides data for the event. + + + + + Gets an expression. + + + + + Gets or sets a object. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The text of expression. + The name of the file to load the report from. + The report. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Provides data for the Progress event. + + + + + Gets a progress message. + + + + + Gets the current page number. + + + + + Gets the number of total pages. + + + + + Initializes a new instance of the class using the specified + message, page number and total number of pages. + + The progress message. + Current page number. + Number of total pages. + + + + Represents the method that will handle the Progress event. + + The source of the event. + The event data. + + + + Provides data for the DatabaseLogin event. + + + + + Gets or sets the connection string. + + + + + Gets or sets an user name. + + + + + Gets or sets a password. + + + + + Initializes a new instance of the class using the specified + connection string. + + The connection string. + + + + Represents the method that will handle the DatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the AfterDatabaseLogin event. + + + + + Gets the DbConnection object. + + + + + Initializes a new instance of the class using + the specified connection. + + The connection object. + + + + Represents the method that will handle the AfterDatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the FilterProperties event. + + + + + Gets the property descriptor. + + + + + Gets or sets a value that indicates whether this property should be skipped. + + + + + Represents the method that will handle the FilterProperties event. + + The source of the event. + The event data. + + + + Provides data for the GetPropertyKind event. + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets or sets the kind of property. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Provides data for the GetTypeInstance event. + + + + + Gets the type. + + + + + Gets or sets the instance of type. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Event arguments for custom Export parameters + + + + + Used to set custom export parameters + + + + + Specifies the Save Mode of designed report. + + + + + The saving allowed to all. + + + + + The saving in original place. + + + + + The saving allowed to current user. + + + + + The saving allowed to current role/group. + + + + + The saving allowed with other security permissions. + + + + + The saving not allowed. + + + + + Custom saving rules. + + + + + This class represents the report information such as name, author, description etc. + + + + + Gets or sets the name of a report. + + + + + Gets or sets the author of a report. + + + + + Gets or sets the report version. + + + + + Gets or sets the report description. + + + + + Gets or sets the picture associated with a report. + + + + + Gets or sets the report creation date and time. + + + + + Gets or sets a value indicating that report was modified in the designer. + + + + + Gets or sets a value that determines whether to fill the property + automatically. + + + + + Gets or sets the ratio that will be used when generating a preview picture. + + + + + Gets the version of FastReport that was created this report file. + + + + + Gets or sets the Tag string object for this report file. + + + + + Gets or sets SaveMode property. + + + + + Resets all properties to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the default paper size used when creating a new report. + + + + + A4 paper (210 x 297 mm). + + + + + Letter paper (8.5 x 11 inches, 216 x 279 mm). + + + + + Represents a report title band. + + + + + Internal representation of RichText document + + + + + This class represents a RTF run. + + + + + Insert paragraph into list of paragraphs + + + + + Insert row into list of paragraphs + + + + + This class represents a RTF properies. + + + + + This class parses an entiry RTF document. + + + + + + + + + + + + + + + + + Get RTF structure based on range of elements + + + + + + Save RTF document to text stream + + + + + This class represents a RTF document header. + + + Refer to RTF-1.7 spec for detail description + + + + + Parser of RTF header. + + + Return false on finish of header + + + + + This class represents a RTF text paragraph. + + + + + This class detect a RTF control sequences and text. + + + + + This class represents a RTF column description. + + + + + + Create RTF row + + + + + + + Save RTF document to plain text stream + + + + + Specifies a kind of the shape. + + + + + Specifies a rectangle shape. + + + + + Specifies a round rectangle shape. + + + + + Specifies an ellipse shape. + + + + + Specifies a triangle shape. + + + + + Specifies a diamond shape. + + + + + Represents a sort condition used in the . + + + + + Gets or sets an expression used to sort data band rows. + + + This property can contain any valid expression. + + + + + Gets or sets a value indicating that sort must be performed in descending order. + + + + + Serializes the class. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the class. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified expression. + + + + + Initializes a new instance of the class with specified expression and sort order. + + + + + Represents a collection of sort conditions used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Assigns values from another collection. + + Collection to assign from. + + + + Represents a style. + + + + Style class holds border, fill, text fill and font settings. It can be applied to any report object of + type. + + + The Report object holds list of styles in its property. Each style has + unique name. To apply a style to the report component, set its + property to the style name. + + + + + + Gets or sets a name of the style. + + + The name must be unique. + + + + + + + + + + + Creates exact copy of this Style. + + Copy of this style. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of styles used in the . + + + + + Gets or sets the name of the style. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style with specified name. + + The name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style with specified name is in the collection. + + The style name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file. + + The name of the file. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file. + + The name of the file. + + + + Creates exact copy of this collection. + + The copy of this collection. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of the objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style collection with specified name. + + The style collection name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style collection with specified name is in the collection. + + The style collection name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Gets an array containing all collection items. + + An array containing all collection items. + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file with specified name. + + File name to save to. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file with specified name. + + Name of a file. + + + + Specifies the horizontal alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the left of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the right of the layout rectangle. + + + + + Specifies that text is aligned in the left and right sides of the layout rectangle. + + + + + Specifies the vertical alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the top of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the bottom of the layout rectangle. + + + + + The type of text renderer + + + + + The default render + + + + + Render with some html tags and stable logic + + + + + Render with img tags, span etc. Experimental and unstable logic + + + + + The format of paragraph + + + + + The first line on each paragraph, not effect if value less then 0 + + + + + The distance between lines, not effect if value less then 0 + + + + + The spacing type for distance between line calculation + + + + + The value for a multiplication line height for adding spacing + + + + + Skip the line indent in the first paragraph, for broken paragraphs + + + + + clone with new scale; + + + + + + + The spacing type between lines + + + + + Single spacing, not effect from LineSpacing + + + + + Minimal spacing in exactly size + + + + + The specific distance between the lines, for some exports, does not work if the distance value is too small. + + + + + The calculated distance between lines, for some exports, does not work if the distance value is too small. + + + + + Specifies the behavior of the AutoShrink feature of TextObject. + + + + + AutoShrink is disabled. + + + + + AutoShrink decreases the Font.Size property of the TextObject. + + + + + AutoShrink decreases the FontWidthRatio property of the TextObject. + + + + + Specifies how to display the duplicate values. + + + + + The TextObject can show duplicate values. + + + + + The TextObject with duplicate value will be hidden. + + + + + The TextObject with duplicate value will be shown but with no text. + + + + + Several TextObject objects with the same value will be merged into one TextObject object. + + + + + Specifies how the report engine processes the text objects. + + + + + Specifies the default process mode. The text object is processed just-in-time. + + + + + Specifies that the text object must be processed when the entire report is finished. This mode + can be used to print grand total value (which is normally calculated at the end of report) in the + report title band. + + + + + Specifies that the text object must be processed when the entire report page is finished. This mode + can be used if the report template consists of several report pages. + + + + + Specifies that the text object must be processed when any report page is finished. This mode + can be used to print the page total (which is normally calculated at the page footer) in the + page header band. + + + + + Specifies that the text object must be processed when the column is finished. This mode + can be used to print the column total (which is normally calculated at the column footer) in the + column header band. + + + + + Specifies that the text object must be processed when the data block is finished. This mode can be + used to print a total value in the data header (which is normally available + in the data footer only). + + + + + Specifies that the text object must be processed when the group is finished. This mode can be + used to print a total value in the group header (which is normally available + in the group footer only). + + + + + Specifies that the text object is processed manually when you call the Engine.ProcessObject + method in the report script. + + + + + Represents text outline. + + + + + Gets or sets a value indicating that outline is enabled. + + + + + Enable or disable draw the outline behind of text. + + + + + Gets or sets the outline color. + + + + + Gets or sets the outline width. + + + + + Specifies the style of an outline. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + True if outline enabled. + Outline color. + Outline width. + Outline style. + True if outline should be drawn behind text. + + + + Copies the content of another TextOutline. + + The TextOutline instance to copy the contents from. + + + + Creates the exact copy of this outline. + + Copy of this outline. + + + + Serializes the TextOutline. + + Writer object. + TextOutline property name. + Another TextOutline to compare with. + + + + Represents a cache of graphics objects such as pens, brushes, fonts and text formats. + + + Cache holds all used graphics objects. There is no need to dispose objects returned + by GetXXX calls. + + This example demonstrates how to use graphic cache. + + public void Draw(FRPaintEventArgs e) + { + Brush brush = e.Cache.GetBrush(BackColor); + Pen pen = e.Cache.GetPen(BorderColor, 1, BorderStyle); + e.Graphics.FillRectangle(brush, Bounds); + e.Graphics.DrawRectangle(pen, Bounds); + } + + + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + The Pen object. + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + Line join of a pen. + The Pen object. + + + + Gets a brush with specified color. + + Color of a brush. + The SolidBrush object. + + + + Gets a font with specified settings. + + Name of a font. + Size of a font. + Style of a font. + The Font object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + The StringFormat object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + Default distance between default tabs stops. + The StringFormat object. + + + + Disposes resources used by this object. + + + + + Initializes a new instance of the GraphicCache class with default settings. + + + + + A strongly typed object that readily casts an intrinsic + object to the other intrinsic types when possible. + + + The Variant class is an intrinsic object container structure + inspired by Visual Basic 6.0's Variant. The key features + of a Variant class include the ability to perform typecasts and + arithmetic between types that are not normally considered compatible. + For example, if a Variant class contains a string describing a + number, such as "1.1", then floating point arithmetic can be + performed on it. + Variants are normally considered dangerous because they + strip away the effectiveness of type safety, which is the + reason why the Visual Basic 6.0 Variant was left out of + Visual Basic .NET. However, this implementation restores the + Variant structure, both as a proof of concept and as a + restoration of the utility and positive merits of the Variant + where it can be used responsibly. + + + + + Creates a strongly typed object that readily casts a primitive + object to the other primitive types when possible. + + + + + The actual value being stored in its original , + returned as an . + + + + + The of the property. + + + + + Returns the for this instance. + + The enumerated constant that is the + of the class or value type that implements this interface. + + + + Returns the string equivalent of the property. + + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + The object after typecasting. + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + An + interface implementation that supplies culture-specific formatting information. + The object after typecasting. + + + + Returns true if the property implements + + + + + Returns true if the property + is a numeric intrinsic value. + + + + + Returns true if the property + is a numeric intrinsic value or else can be parsed into + a numeric intrinsic value. + + + + + Returns true if the value is a date or can be parsed into a date. + + + + + Returns true if the value is a TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent 16-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + Addition operator. + + + If the value on the right is a + or a , + the Variant is converted to a string and appended. + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Subtraction operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Unary minus operator. + + + + + Greater than operator. + + + + + Greater than or equal operator. + + + + + Less than operator. + + + + + Less than or equal operator. + + + + + Multiplication operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Division operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Modulus operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise And operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise Or operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Inequality operator. + + + + + The opposite of == + + + + + Equality operator. + First attempts to compare the left value after + temporarily converting it to the type of the right value. + If the conversion cannot occur, such as if the value is not an + intrinsic value type, the comparison occurs at the + level using Object.Equals. + + + + + + + + Equality operator. + + + + + + + + Equality operator. + + + + + + + + Returns property unless the value on the right + is null. If the value on the right is null, returns "". + + + + + + Converts the value of this instance to an equivalent + using the specified culture-specific formatting information. + + + + + + + See . + + + + + + See . + + + + + + + Converts an object to a boolean. + For any type, if null, returns false. + For Boolean: true/false. + For String: "", "false", "0", etc. == false; + "1", "true", etc. == true, else true. + For numeric intrinsics: 0 == false, else true. + For any other non-null object, returns true. + + The string to be converted + The boolean value of this string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the watermark image size mode. + + + + + Specifies the normal (original) size. + + + + + Specifies the centered image. + + + + + Specifies the stretched image. + + + + + Specifies the stretched image that keeps its aspect ratio. + + + + + Specifies the tiled image. + + + + + Specifies the watermark text rotation. + + + + + Specifies a horizontal text. + + + + + Specifies a vertical text. + + + + + Specifies a diagonal text. + + + + + Specifies a backward diagonal text. + + + + + Represents the report page watermark. + + + Watermark can draw text and/or image behind the page objects on in front of them. To enable + watermark, set its Enabled property to true. + + + + + Gets or sets avalue indicating that watermark is enabled. + + + + + Gets or sets the watermark image. + + + + + Gets or sets the watermark image size mode. + + + + + Gets or sets an image transparency. + + + Valid values are 0..1. 1 means totally transparent image. + + + + + Gets or sets the watermark text. + + + + + Gets or sets a font of the watermark text. + + + + + Gets or sets a text fill. + + + + + Gets or sets a text rotation. + + + + + Gets or sets a value indicates that the text should be displayed on top of all page objects. + + + + + Gets or sets a value indicates that the image should be displayed on top of all page objects. + + + + + + + + + + Draws watermark image. + + + + + + + + + Draws watermark text. + + + + + + + + + Serializes the watermark. + + Writer object. + The watermark property name. + Another Watermark object to compare with. + + This method is for internal use only. + + + + + Disposes resources used by the watermark. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this Watermark. + + Copy of this watermark. + + + + Initializes a new instance of the class with default settings. + + + + + An SVG element to render circles to the document. + + + + + Gets the center point of the circle. + + The center. + + + + Gets the representing this element. + + + + + Renders the circle to the specified object. + + The graphics object. + + + + Initializes a new instance of the class. + + + + + Represents and SVG ellipse element. + + + + + Gets the for this element. + + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Initializes a new instance of the class. + + + + + Represents and SVG image + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + Represents and SVG line element. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an element that is using a GraphicsPath as rendering base. + + + + + SvgPolygon defines a closed shape consisting of a set of connected straight line segments. + + + + + The points that make up the SvgPolygon + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + SvgPolyline defines a set of connected straight line segments. Typically, defines open shapes. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an SVG rectangle that could also have rounded edges. + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the position where the left point of the rectangle should start. + + + + + Gets or sets the position where the top point of the rectangle should start. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets or sets the X-radius of the rounded edges of this rectangle. + + + + + Gets or sets the Y-radius of the rounded edges of this rectangle. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + The class that all SVG elements should derive from when they are to be rendered. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the associated if one has been specified. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets the algorithm which is to be used to determine the clipping region. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the fill of the to the specified + + The object to render to. + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Gets or sets a value to determine whether the element will be rendered. + + + + + Gets or sets a value to determine whether the element will be rendered. + Needed to support SVG attribute display="none" + + + + + Gets or sets the fill of this element. + + + + + Defines the methods and properties that an must implement to support clipping. + + + + + Gets or sets the ID of the associated if one has been specified. + + + + + Specifies the rule used to define the clipping region when the element is within a . + + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Defines a path that can be used by other elements. + + + + + Specifies the coordinate system for the clipping path. + + + + + Initializes a new instance of the class. + + + + + Gets this 's region to be used as a clipping region. + + A new containing the to be used for clipping. + + + + + + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Indicates the algorithm which is to be used to determine the clipping region. + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from + that point to infinity in any direction and then examining the places where a segment of the + shape crosses the ray. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside. + + + + + Provides properties and methods to be implemented by view port elements. + + + + + Gets or sets the viewport of the element. + + + + + Description of SvgAspectRatio. + + + + Specifies the color space for gradient interpolations, color animations and alpha compositing. + When a child element is blended into a background, the value of the ‘color-interpolation’ property on the child determines the type of blending, not the value of the ‘color-interpolation’ on the parent. For gradients which make use of the ‘xlink:href’ attribute to reference another gradient, the gradient uses the ‘color-interpolation’ property value from the gradient element which is directly referenced by the ‘fill’ or ‘stroke’ property. When animating colors, color interpolation is performed according to the value of the ‘color-interpolation’ property on the element being animated. + + + Indicates that the user agent can choose either the sRGB or linearRGB spaces for color interpolation. This option indicates that the author doesn't require that color interpolation occur in a particular color space. + + + Indicates that color interpolation should occur in the sRGB color space. + + + Indicates that color interpolation should occur in the linearized RGB color space as described above. + + + The value is inherited from the parent element. + + + Defines the coordinate system for attributes ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’. + + + If markerUnits="strokeWidth", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in a coordinate system which has a single unit equal the size in user units of the current stroke width (see the ‘stroke-width’ property) in place for the graphic object referencing the marker. + + + If markerUnits="userSpaceOnUse", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in the current user coordinate system in place for the graphic object referencing the marker (i.e., the user coordinate system for the element referencing the ‘marker’ element via a ‘marker’, ‘marker-start’, ‘marker-mid’ or ‘marker-end’ property). + + + + Defines the various coordinate units certain SVG elements may use. + + + + + Indicates that the coordinate system of the owner element is to be used. + + + + + Indicates that the coordinate system of the entire document is to be used. + + + + This is the descriptor for the style of a font and takes the same values as the 'font-style' property, except that a comma-separated list is permitted. + + + Indicates that the font-face supplies all styles (normal, oblique and italic). + + + Specifies a font that is classified as 'normal' in the UA's font database. + + + Specifies a font that is classified as 'oblique' in the UA's font database. Fonts with Oblique, Slanted, or Incline in their names will typically be labeled 'oblique' in the font database. A font that is labeled 'oblique' in the UA's font database may actually have been generated by electronically slanting a normal font. + + + Specifies a font that is classified as 'italic' in the UA's font database, or, if that is not available, one labeled 'oblique'. Fonts with Italic, Cursive, or Kursiv in their names will typically be labeled 'italic' + + + The weight of a face relative to others in the same font family. + + + All font weights. + + + The value is inherited from the parent element. + + + Same as . + + + Same as . + + + One font weight darker than the parent element. + + + One font weight lighter than the parent element. + + + + + + + + + + + + Same as . + + + + + + + + + Same as . + + + + + + + + + + Represents an orientation in an Scalable Vector Graphics document. + + + + + Gets the value of the unit. + + + + + Gets the value of the unit. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Overflow is not rendered. + + + The value is inherited from the parent element. + + + The overflow is rendered - same as "visible". + + + Overflow is rendered. + + + Overflow causes a scrollbar to appear (horizontal, vertical or both). + + + + Represents a list of used with the and . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + This property describes decorations that are added to the text of an element. Conforming SVG Viewers are not required to support the blink value. + + + The value is inherited from the parent element. + + + The text is not decorated + + + The text is underlined. + + + The text is overlined. + + + The text is struck through. + + + The text will blink. + + + Indicates the type of adjustments which the user agent shall make to make the rendered length of the text match the value specified on the ‘textLength’ attribute. + + The user agent is required to achieve correct start and end positions for the text strings, but the locations of intermediate glyphs are not predictable because user agents might employ advanced algorithms to stretch or compress text strings in order to balance correct start and end positioning with optimal typography. + Note that, for a text string that contains n characters, the adjustments to the advance values often occur only for n−1 characters (see description of attribute ‘textLength’), whereas stretching or compressing of the glyphs will be applied to all n characters. + + + + Indicates that only the advance values are adjusted. The glyphs themselves are not stretched or compressed. + + + Indicates that the advance values are adjusted and the glyphs themselves stretched or compressed in one axis (i.e., a direction parallel to the inline-progression-direction). + + + Indicates the method by which text should be rendered along the path. + + + Indicates that the glyphs should be rendered using simple 2x3 transformations such that there is no stretching/warping of the glyphs. Typically, supplemental rotation, scaling and translation transformations are done for each glyph to be rendered. As a result, with align, fonts where the glyphs are designed to be connected (e.g., cursive fonts), the connections may not align properly when text is rendered along a path. + + + Indicates that the glyph outlines will be converted into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. + + + Indicates how the user agent should determine the spacing between glyphs that are to be rendered along a path. + + + Indicates that the glyphs should be rendered exactly according to the spacing rules as specified in Text on a path layout rules. + + + Indicates that the user agent should use text-on-a-path layout algorithms to adjust the spacing between glyphs in order to achieve visually appealing results. + + + + Represents a unit in an Scalable Vector Graphics document. + + + + + Gets and empty . + + + + + Gets an with a value of none. + + + + + Gets a value to determine whether the unit is empty. + + + + + Gets whether this unit is none. + + + + + Gets the value of the unit. + + + + + Gets the of unit. + + + + + Converts the current unit to one that can be used at render time. + + The container element used as the basis for calculations + The representation of the current unit in a device value (usually pixels). + + + + Converts the current unit to a percentage, if applicable. + + An of type . + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The type. + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Defines the various types of unit an can be. + + + + + Indicates that the unit holds no value. + + + + + Indicates that the unit is in pixels. + + + + + Indicates that the unit is equal to the pt size of the current font. + + + + + Indicates that the unit is equal to the x-height of the current font. + + + + + Indicates that the unit is a percentage. + + + + + Indicates that the unit has no unit identifier and is a value in the current user coordinate system. + + + + + Indicates the the unit is in inches. + + + + + Indicates that the unit is in centimeters. + + + + + Indicates that the unit is in millimeters. + + + + + Indicates that the unit is in picas. + + + + + Indicates that the unit is in points, the smallest unit of measure, being a subdivision of the larger . There are 12 points in the . + + + + + Represents a list of . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + It is often desirable to specify that a given set of graphics stretch to fit a particular container element. The viewBox attribute provides this capability. + + + + + Gets or sets the position where the viewport starts horizontally. + + + + + Gets or sets the position where the viewport starts vertically. + + + + + Gets or sets the width of the viewport. + + + + + Gets or sets the height of the viewport. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The min X. + The min Y. + The width. + The height. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An represents an SVG fragment that can be the root element or an embedded fragment of an SVG document. + + + + + Gets the SVG namespace string. + + + + + Gets or sets the position where the left point of the svg should start. + + + + + Gets or sets the position where the top point of the svg should start. + + + + + Gets or sets the width of the fragment. + + The width. + + + + Gets or sets the height of the fragment. + + The height. + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Indicates which font family is to be used to render the text. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Gets the for this element. + + + + + + Gets the bounds of the svg element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + An element used to group SVG shapes. + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + The �switch� element evaluates the �requiredFeatures�, �requiredExtensions� and �systemLanguage� attributes on its direct child elements in order, and then processes and renders the first child for which these attributes evaluate to true + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An element used to group SVG shapes. + + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Applies the required transforms to . + + The to be transformed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Initializes a new instance of the class. + + + + + The �foreignObject� element allows for inclusion of a foreign namespace which has its graphical content drawn by a different user agent + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + matrix | saturate | hueRotate | luminanceToAlpha + Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix. If attribute �type� is not specified, then the effect is as if a value of matrix were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + + Gets or sets the radius of the blur (only allows for one value - not the two specified in the SVG Spec) + + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the x-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the y-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + A filter effect consists of a series of graphics operations that are applied to a given source graphic to produce a modified graphical result. + + + + + Gets or sets the position where the left point of the filter. + + + + + Gets or sets the position where the top point of the filter. + + + + + Gets or sets the width of the resulting filter graphic. + + + + + Gets or sets the height of the resulting filter graphic. + + + + + Gets or sets the color-interpolation-filters of the resulting filter graphic. + NOT currently mapped through to bitmap + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Publish the element name to be able to differentiate non-svg elements. + + + + If specified, upon conversion, the default value will result in 'null'. + + + Creates a new instance. + + + Creates a new instance. + Specified the default value of the enum. + + + Attempts to convert the provided value to . + + + Attempts to convert the value to the destination type. + + + + Defines the methods and properties required for an SVG element to be styled. + + + + + Converts string representations of colours into objects. + + + + + Converts the given object to the converter's native type. + + A that provides a format context. You can use this object to get additional information about the environment from which this converter is being invoked. + A that specifies the culture to represent the color. + The object to convert. + + An representing the converted value. + + The conversion cannot be performed. + + + + + + + Converts HSL color (with HSL specified from 0 to 1) to RGB color. + Taken from http://www.geekymonkey.com/Programming/CSharp/RGB2HSL_HSL2RGB.htm + + + + + + + + + An unspecified . + + + + + A that should inherit from its parent. + + + + + A wrapper for a paint server which isn't defined currently in the parse process, but + should be defined by the time the image needs to render. + + + + + A wrapper for a paint server has a fallback if the primary server doesn't work. + + + + + Provides the base class for all paint servers that wish to render a gradient. + + + + + Initializes a new instance of the class. + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Gets the ramp of colors to use on a gradient. + + + + + Specifies what happens if the gradient starts or ends inside the bounds of the target rectangle. + + + + + Gets or sets the coordinate system of the gradient. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Gets a representing the 's gradient stops. + + The parent . + The opacity of the colour blend. + + + Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle. + + Possible values are: 'pad', which says to use the terminal colors of the gradient to fill the remainder of the target region, 'reflect', which says to reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled, and repeat, which says to repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + If the attribute is not specified, the effect is as if a value of 'pad' were specified. + + + + Use the terminal colors of the gradient to fill the remainder of the target region. + + + Reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled. + + + Repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + + + + Represents a colour stop in a gradient. + + + + + Gets or sets the offset, i.e. where the stop begins from the beginning, of the gradient stop. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the gradient stop (0-1). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The offset. + The colour. + + + + + Render this marker using the slope of the given line segment + + + + + + + + + Render this marker using the average of the slopes of the two given line segments + + + + + + + + + + Common code for rendering a marker once the orientation angle has been calculated + + + + + + + + + Create a pen that can be used to render this marker + + + + + + + Get a clone of the current path, scaled for the stroke width + + + + + + Adjust the given value to account for the width of the viewbox in the viewport + + + + + + + Adjust the given value to account for the height of the viewbox in the viewport + + + + + + + Represents the base class for all paint servers that are intended to be used as a fill or stroke. + + + + + An unspecified . + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + A pattern is used to fill or stroke an object using a pre-defined graphic object which can be replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. + + + + + Specifies a supplemental transformation which is applied on top of any + transformations necessary to create a new pattern coordinate system. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the height of the pattern. + + + + + Gets or sets the X-axis location of the pattern. + + + + + Gets or sets the Y-axis location of the pattern. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Initializes a new instance of the class. + + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Determine how much (approximately) the path must be scaled to contain the rectangle + + Bounds that the path must contain + Path of the gradient + Scale factor + + This method continually transforms the rectangle (fewer points) until it is contained by the path + and returns the result of the search. The scale factor is set to a constant 95% + + + + Specifies the shape to be used at the end of open subpaths when they are stroked. + + + The value is inherited from the parent element. + + + The ends of the subpaths are square but do not extend past the end of the subpath. + + + The ends of the subpaths are rounded. + + + The ends of the subpaths are square. + + + Specifies the shape to be used at the corners of paths or basic shapes when they are stroked. + + + The value is inherited from the parent element. + + + The corners of the paths are joined sharply. + + + The corners of the paths are rounded off. + + + The corners of the paths are "flattened". + + + + Represents an SVG path element. + + + + + Gets or sets a of path data. + + + + + Gets or sets the length of the path. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Parses the specified string into a collection of path segments. + + A containing path data. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if and contains relative coordinate values, otherwise false. + that contains absolute coordinates. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if contains relative coordinate value, otherwise false. + true if contains relative coordinate value, otherwise false. + that contains absolute coordinates. + + + + Convenience wrapper around a graphics object + + + + + Initializes a new instance of the class. + + + + + Creates a new from the specified . + + from which to create the new . + + + + Creates a new from the specified . + + The to create the renderer from. + + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + Based of parent. If parents are also not set, then + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed, crisp edges and geometric precision, but with geometric precision given more importance than speed and crisp edges. + + true + + + + Indicates that the user agent shall emphasize rendering speed over geometric precision and crisp edges. This option will sometimes cause the user agent to turn off shape anti-aliasing. + + false + + + + Indicates that the user agent shall attempt to emphasize the contrast between clean edges of artwork over rendering speed and geometric precision. To achieve crisp edges, the user agent might turn off anti-aliasing for all lines and curves or possibly just for straight lines which are close to vertical or horizontal. Also, the user agent might adjust line positions and line widths to align edges with device pixels. + + false + + + + Indicates that the user agent shall emphasize geometric precision over speed and crisp edges. + + false + + + + The creator of SVG content might want to provide a hint about what tradeoffs to make as the browser renders text. The text-rendering attribute provides these hints. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/text-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the browser shall make appropriate tradeoffs to balance speed, legibility and geometric precision, but with legibility given more importance than speed and geometric precision. + + + + + Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision. This option will sometimes cause some browsers to turn off text anti-aliasing. + + + + + Indicates that the browser shall emphasize legibility over rendering speed and geometric precision. The user agent will often choose whether to apply anti-aliasing techniques, built-in font hinting or both to produce the most legible text. + + + + + Indicates that the browser shall emphasize geometric precision over legibility and rendering speed. This option will usually cause the user agent to suspend the use of hinting so that glyph outlines are drawn with comparable geometric precision to the rendering of path data. + + + + + The image-rendering attribute provides a hint to the browser about how to make speed vs. quality tradeoffs as it performs image processing. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/image-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed and quality, but quality shall be given more importance than speed. + + + + + Indicates that the user agent shall emphasize rendering speed over quality. + + + + + Indicates that the user agent shall emphasize quality over rendering speed. + + + + + Specifies the SVG attribute name of the associated property. + + + + + Gets a containing the XLink namespace (http://www.w3.org/1999/xlink). + + + + + When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. + + An to compare with this instance of . + + true if this instance equals ; otherwise, false. + + + + + Gets the name of the SVG attribute. + + + + + Gets the name of the SVG attribute. + + + + + Gets the namespace of the SVG attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified attribute name. + + The name of the SVG attribute. + + + + Initializes a new instance of the class with the specified SVG attribute name and namespace. + + The name of the SVG attribute. + The namespace of the SVG attribute (e.g. http://www.w3.org/2000/svg). + + + + A collection of Scalable Vector Attributes that can be inherited from the owner elements ancestors. + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The value to return if a value hasn't already been specified. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name and inherits from ancestors if there is no attribute set. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the ancestors value for the same attribute; otherwise the default value of . + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + A collection of Custom Attributes + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + Create a deep copy of this . + + A deep copy of this + + + + Holds a dictionary of the default values of the SVG specification + + + + + Checks whether the property value is the default value of the svg definition. + + Name of the svg attribute + .NET value of the attribute + + + + The class used to create and load SVG documents. + + + + + Initializes a new instance of the class. + + + + + Gets an for this document. + + + + + Overwrites the current IdManager with a custom implementation. + Be careful with this: If elements have been inserted into the document before, + you have to take care that the new IdManager also knows of them. + + + + + + Gets or sets the Pixels Per Inch of the rendered image. + + + + + Gets or sets an external Cascading Style Sheet (CSS) + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + A dictionary of custom entity definitions to be used when resolving XML entities within the document. + An with the contents loaded. + The document at the specified cannot be found. + + + + Attempts to open an SVG document from the specified . + + The containing the SVG document to open. + + + + Attempts to create an SVG document from the specified string data. + + The SVG data. + + + + Opens an SVG document from the specified and adds the specified entities. + + The containing the SVG document to open. + Custom entity definitions. + The parameter cannot be null. + + + + Opens an SVG document from the specified . + + The containing the SVG document XML. + The parameter cannot be null. + + + + Renders the to the specified . + + The to render the document with. + The parameter cannot be null. + + + + Renders the to the specified . + + The to be rendered to. + The parameter cannot be null. + + + + Renders the and returns the image as a . + + A containing the rendered document. + + + + Renders the into a given Bitmap . + + + + + Renders the in given size and returns the image as a . + + A containing the rendered document. + + + + If both or one of raster height and width is not given (0), calculate that missing value from original SVG size + while keeping original SVG size ratio + + + + + + + + Maps a URI to an object containing the actual resource. + + The URI returned from + The current implementation does not use this parameter when resolving URIs. This is provided for future extensibility purposes. For example, this can be mapped to the xlink:role and used as an implementation specific argument in other scenarios. + The type of object to return. The current implementation only returns System.IO.Stream objects. + + A System.IO.Stream object or null if a type other than stream is specified. + + + is neither null nor a Stream type. + The specified URI is not an absolute URI. + + is null. + There is a runtime error (for example, an interrupted server connection). + + + + The base class of which all SVG elements are derived from. + + + + + Gets the name of the element. + + + + + Gets or sets the color of this element which drives the currentColor property. + + + + + Gets or sets the content of the element. + + + + + Gets an of all events belonging to the element. + + + + + Occurs when the element is loaded. + + + + + Gets a collection of all child . + + + + + Gets a value to determine whether the element has children. + + + + + Gets the parent . + + An if one exists; otherwise null. + + + + Gets the owner . + + + + + Gets a collection of element attributes. + + + + + Gets a collection of custom attributes + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Gets or sets the element transforms. + + The transforms. + + + + Gets or sets the ID of the element. + + The ID is already used within the . + + + + Gets or sets the space handling. + + The space handling. + + + + Only used by the ID Manager + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Fired when an Element was added to the children of this Element + + + + + Calls the method with the specified parameters. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Calls the method with the specified as the parameter. + + The that has been removed. + + + + Initializes a new instance of the class. + + + + + Renders this element to the . + + The that the element should use to render itself. + + + Derrived classes may decide that the element should not be written. For example, the text element shouldn't be written if it's empty. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the children of this . + + The to render the child s to. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Recursive method to add up the paths of all children + + + + + + + Recursive method to add up the paths of all children + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Fired when an Atrribute of this Element has changed + + + + + Fired when an Atrribute of this Element has changed + + + + + Gets or sets a value indicating whether this element's is dirty. + + + true if the path is dirty; otherwise, false. + + + + + Force recreation of the paths for the element and it's children. + + + + + Gets or sets the fill of this element. + + + + + Gets or sets the to be used when rendering a stroke around this element. + + + + + Gets or sets the opacity of this element's . + + + + + Gets or sets the width of the stroke (if the property has a valid value specified. + + + + + Gets or sets the opacity of the stroke, if the property has been specified. 1.0 is fully opaque; 0.0 is transparent. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the element. 1.0 is fully opaque; 0.0 is transparent. + + + + + Refers to the AnitAlias rendering of shapes. + + + + + Gets or sets the text anchor. + + + + + Specifies dominant-baseline positioning of text. + + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Refers to the boldness of the font. + + + + + Set all font information. + + + + + Get the font information based on data stored with the text object or inherited from the parent. + + + + + + Describes the Attribute which was set + + + + + Content of this whas was set + + + + + Describes the Attribute which was set + + + + + Represents the state of the mouse at the moment the event occured. + + + + + 1 = left, 2 = middle, 3 = right + + + + + Amount of mouse clicks, e.g. 2 for double click + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Represents a string argument + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Create a deep copy of this . + + A deep copy of this + + + This interface mostly indicates that a node is not to be drawn when rendering the SVG. + + + + Specifies the SVG name of an . + + + + + Gets the name of the SVG element. + + + + + Initializes a new instance of the class with the specified element name; + + The name of the SVG element. + + + + Represents a collection of s. + + + + + Initialises a new instance of an class. + + The owner of the collection. + + + + Returns the index of the specified in the collection. + + The to search for. + The index of the element if it is present; otherwise -1. + + + + Inserts the given to the collection at the specified index. + + The index that the should be added at. + The to be added. + + + + expensive recursive search for nodes of type T + + + + + + + expensive recursive search for first node of type T + + + + + + + Provides the methods required in order to parse and create instances from XML. + + + + + Gets a list of available types that can be used when creating an . + + + + + Creates an from the current node in the specified . + + The containing the node to parse into an . + The parameter cannot be null. + The CreateDocument method can only be used to parse root <svg> elements. + + + + Creates an from the current node in the specified . + + The containing the node to parse into a subclass of . + The that the created element belongs to. + The and parameters cannot be null. + + + + Contains information about a type inheriting from . + + + + + Gets the SVG name of the . + + + + + Gets the of the subclass. + + + + + Initializes a new instance of the struct. + + Name of the element. + Type of the element. + + + + Initializes a new instance of the class. + + + + + Provides methods to ensure element ID's are valid and unique. + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Adds the specified for ID management. + + The to be managed. + + + + Adds the specified for ID management. + And can auto fix the ID if it already exists or it starts with a number. + + The to be managed. + Pass true here, if you want the ID to be fixed + If not null, the action is called before the id is fixed + true, if ID was altered + + + + Removed the specified from ID management. + + The to be removed from ID management. + + + + Ensures that the specified ID is valid within the containing . + + A containing the ID to validate. + Creates a new unique id . + + The ID cannot start with a digit. + An element with the same ID already exists within the containing . + + + + + Initialises a new instance of an . + + The containing the s to manage. + + + + Svg helpers + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + http://stackoverflow.com/questions/3633000/net-enumerate-winforms-font-styles + + + + + Evaluates the integral of the function over the integral using the specified number of points + + + + + + + + http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + + http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Gets or sets a of path data. + + + + + Gets the for this element. + + + + + Initializes a new instance of the class. + + + + + The element defines a graphics element consisting of text. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Text anchor is used to align (start-, middle- or end-alignment) a string of text relative to a given point. + + + + The value is inherited from the parent element. + + + + The rendered characters are aligned such that the start of the text string is at the initial current text position. + + + + + The rendered characters are aligned such that the middle of the text string is at the current text position. + + + + + The rendered characters are aligned such that the end of the text string is at the initial current text position. + + + + + Gets or sets the text to be rendered. + + + + + Gets or sets the X. + + The X. + + + + Gets or sets the dX. + + The dX. + + + + Gets or sets the Y. + + The Y. + + + + Gets or sets the dY. + + The dY. + + + + Gets or sets the rotate. + + The rotate. + + + + The pre-calculated length of the text + + + + + Gets or sets the text anchor. + + The text anchor. + + + + Specifies spacing behavior between text characters. + + + + + Specifies spacing behavior between words. + + + + + Gets or sets the fill. + + + Unlike other s, has a default fill of black rather than transparent. + + The fill. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + Necessary to make sure that any internal tspan elements get rendered as well + + + + Gets the for this element. + + + + + + Sets the path on this element and all child elements. Uses the state + object to track the state of the drawing + + State of the drawing operation + + + + Prepare the text according to the whitespace handling rules. SVG Spec. + + Text to be prepared + Prepared text + + + Empty text elements are not legal - only write this element if it has children. + + + + The element defines a graphics element consisting of text. + + + + + Represents and element that may be transformed. + + + + + Gets or sets an of element transforms. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + The class which applies custom transform to this Matrix (Required for projects created by the Inkscape). + + + + + The class which applies the specified shear vector to this Matrix. + + + + + The class which applies the specified skew vector to this Matrix. + + + + + Multiplies all matrices + + The result of all transforms + + + + Fired when an SvgTransform has changed + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + The maximum allowed codepoint (defined in Unicode). + + + + Return the shortest form possible + + + + + exposed enumeration for the adding of separators into term lists + + + + + An implementation that generates + human-readable description of the selector. + + + + + Initializes the text. + + + + + Gets the generated human-readable description text. + + + + + Generates human-readable for a selector in a group. + + + + + Concludes the text. + + + + + Adds to the generated human-readable text. + + + + + Generates human-readable text of this type selector. + + + + + Generates human-readable text of this universal selector. + + + + + Generates human-readable text of this ID selector. + + + + + Generates human-readable text of this class selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates human-readable text of this combinator. + + + + + Represents a selectors implementation for an arbitrary document/node system. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent an implementation that is responsible for generating + an implementation for a selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits the closing/conclusion of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent a type or attribute name. + + + + + Represents a name from either the default or any namespace + in a target document, depending on whether a default namespace is + in effect or not. + + + + + Represents an empty namespace. + + + + + Represents any namespace. + + + + + Initializes an instance with a namespace prefix specification. + + + + + Gets the raw text value of this instance. + + + + + Indicates whether this instance represents a name + from either the default or any namespace in a target + document, depending on whether a default namespace is + in effect or not. + + + + + Indicates whether this instance represents a name + from any namespace (including one without one) + in a target document. + + + + + Indicates whether this instance represents a name + without a namespace in a target document. + + + + + Indicates whether this instance represents a name from a + specific namespace or not. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and another are equal. + + + + + Returns the hash code for this instance. + + + + + Returns a string representation of this instance. + + + + + Formats this namespace together with a name. + + + + + Semantic parser for CSS selector grammar. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Adds reading semantics to a base with the + option to un-read and insert new elements while consuming the source. + + + + + Initialize a new with a base + object. + + + + + Initialize a new with a base + object. + + + + + Indicates whether there is, at least, one value waiting to be read or not. + + + + + Pushes back a new value that will be returned on the next read. + + + + + Reads and returns the next value. + + + + + Peeks the next value waiting to be read. + + + Thrown if there is no value waiting to be read. + + + + + Returns an enumerator that iterates through the remaining + values to be read. + + + + + Disposes the enumerator used to initialize this object + if that enumerator supports . + + + + + Represents a selector implementation over an arbitrary type of elements. + + + + + A selector generator implementation for an arbitrary document/element system. + + + + + Initializes a new instance of this object with an instance + of and the default equality + comparer that is used for determining if two elements are equal. + + + + + Initializes a new instance of this object with an instance + of and an equality comparer + used for determining if two elements are equal. + + + + + Gets the selector implementation. + + + If the generation is not complete, this property returns the + last generated selector. + + + + + Gets the instance that this object + was initialized with. + + + + + Returns the collection of selector implementations representing + a group. + + + If the generation is not complete, this method return the + selectors generated so far in a group. + + + + + Adds a generated selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Delimits the closing/conclusion of a generation. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + An implementation that delegates + to two other objects, which + can be useful for doing work in a single pass. + + + + + Gets the first generator used to initialize this generator. + + + + + Gets the second generator used to initialize this generator. + + + + + Initializes a new instance of + with the two other objects + it delegates to. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Implementation for a selectors compiler that supports caching. + + + This class is primarily targeted for developers of selection + over an arbitrary document model. + + + + + Creates a caching selectors compiler on top on an existing compiler. + + + + + Creates a caching selectors compiler on top on an existing compiler. + An addition parameter specified a dictionary to use as the cache. + + + If is null then this method uses a + the implementation with an + ordinally case-insensitive selectors text comparer. + + + + + Represent a token and optionally any text associated with it. + + + + + Gets the kind/type/class of the token. + + + + + Gets text, if any, associated with the token. + + + + + Creates an end-of-input token. + + + + + Creates a star token. + + + + + Creates a dot token. + + + + + Creates a colon token. + + + + + Creates a comma token. + + + + + Creates a right parenthesis token. + + + + + Creates an equals token. + + + + + Creates a left bracket token. + + + + + Creates a right bracket token. + + + + + Creates a pipe (vertical line) token. + + + + + Creates a plus token. + + + + + Creates a greater token. + + + + + Creates an includes token. + + + + + Creates a dash-match token. + + + + + Creates a prefix-match token. + + + + + Creates a suffix-match token. + + + + + Creates a substring-match token. + + + + + Creates a general sibling token. + + + + + Creates an identifier token. + + + + + Creates an integer token. + + + + + Creates a hash-name token. + + + + + Creates a white-space token. + + + + + Creates a string token. + + + + + Creates a function token. + + + + + Creates an arbitrary character token. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Indicates whether the current object is equal to another object of the same type. + + + + + Gets a string representation of the token. + + + + + Performs a logical comparison of the two tokens to determine + whether they are equal. + + + + + Performs a logical comparison of the two tokens to determine + whether they are inequal. + + + + + Lexer for tokens in CSS selector grammar. + + + + + Parses tokens from a given text source. + + + + + Parses tokens from a given string. + + + + + Represents the classification of a token. + + + + + Represents end of input/file/stream + + + + + Represents {ident} + + + + + Represents "#" {name} + + + + + Represents "~=" + + + + + Represents "|=" + + + + + Represents "^=" + + + + + Represents "$=" + + + + + Represents "*=" + + + + + Represents {string} + + + + + Represents S* "+" + + + + + Represents S* ">" + + + + + Represents [ \t\r\n\f]+ + + + + + Represents {ident} ")" + + + + + Represents [0-9]+ + + + + + Represents S* "~" + + + + + Represents an arbitrary character + + +
+
diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/FlexCel.dll b/SW/20211125/AssessmentMgmt/bin/Debug/FlexCel.dll new file mode 100644 index 0000000..235a65c Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/FlexCel.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/0.png b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/0.png new file mode 100644 index 0000000..8eb900d Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/0.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/1.png b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/1.png new file mode 100644 index 0000000..886a920 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/1.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/2.png b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/2.png new file mode 100644 index 0000000..64592d6 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/2.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/3.png b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/3.png new file mode 100644 index 0000000..67bcf90 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/GueltigImages/3.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/RTFEditor.dll b/SW/20211125/AssessmentMgmt/bin/Debug/RTFEditor.dll new file mode 100644 index 0000000..eebbced Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/RTFEditor.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/SautinSoft.HtmlToRtf.dll b/SW/20211125/AssessmentMgmt/bin/Debug/SautinSoft.HtmlToRtf.dll new file mode 100644 index 0000000..a9c4f42 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/SautinSoft.HtmlToRtf.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/0.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/0.png new file mode 100644 index 0000000..15890a2 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/0.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/1.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/1.png new file mode 100644 index 0000000..be6f139 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/1.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/2.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/2.png new file mode 100644 index 0000000..e270244 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/2.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/3.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/3.png new file mode 100644 index 0000000..d3d0314 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/3.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/4.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/4.png new file mode 100644 index 0000000..30f0cf1 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/4.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/6.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/6.png new file mode 100644 index 0000000..67888e9 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/6.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/7.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/7.png new file mode 100644 index 0000000..f0e57f8 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/7.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/8.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/8.png new file mode 100644 index 0000000..ce624e6 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/8.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/Plan.png b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/Plan.png new file mode 100644 index 0000000..2f7043e Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/StatusImages/Plan.png differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Gauge.Windows.dll b/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Gauge.Windows.dll new file mode 100644 index 0000000..07cb293 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Gauge.Windows.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Shared.Base.dll b/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Shared.Base.dll new file mode 100644 index 0000000..ed1a771 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/Syncfusion.Shared.Base.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.dll b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.dll new file mode 100644 index 0000000..49c2d9c Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb new file mode 100644 index 0000000..17db9fe Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.xml b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.xml new file mode 100644 index 0000000..dae245f --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/ThemenDokumente.xml @@ -0,0 +1,1227 @@ + + + + +ThemenDokumente + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'DokumentAblageort'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr
  • +
  • iDokumentNr
  • +
  • sAblageort
  • +
  • sBeschreibung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'DokumentAblageTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokumenttyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumenttypnr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SpeicherTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSpeicherTypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokument'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentNr
  • +
  • iKeyValue
  • +
  • iDokType
  • +
  • iDokumenttypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • sFilename
  • +
  • sOriginalFilename_incl_Path
  • +
  • sVersion
  • +
  • sVersionsNr
  • +
  • daVersionsdatum
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • blobDocImage
  • +
  • iSpeichertypNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'spalten'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iEintragnr
  • +
  • sTabelle
  • +
  • sTabellenspalte
  • +
  • sSpalte
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite
  • +
  • iReihenfolge
  • +
  • sTiptext
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
  • sNumberFormat
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Dokument laden + + PersonNr + + + + + + Person sichern + + + + + + + Kopie eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz inaktivieren + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz physisch löschen + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Dokumenttypen laden und in der Datatable Dokumenttypdaten bereit stellen + + + + + + + Datei im Dokument speichern + + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + + + + + + + + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Doktype + 1: Vertragselement + 2: Test-Drehbuch + 3: Applikationsdokument + 4: Applikationlogbuch + ö + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. Beim Speichern werden ebenfalls allfällige Änderungen von C1DokumentAblagoeOrt durchgeführt. + Wurden lediglich Änderungen bei C1Dokumentablageort vorgenommen, wird separat gefrat, ob die Änderungen gespeichert werden sollen. + + + + + + + + Optionaler Parameter Dokumentnummer des aktuellen Dokuments + + + + + Formular-Load + + + + + + + + Formular schliessen + + + + + + + + Sicherungs-Button betätigt + + + + + + + + + Datensatz kopieren + + + + + + + + Neuer Datensatz erstellen + + + + + + + + Aktueller Datensatz inaktivieren + + + + + + + + Menu Beenden + + + + + + + + Vertragspartner suchen + + + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld + + + + + + + + Daten ab DB laden uns ins Form befüllen + + + + + + + Daten ab Form speichern + + + + + + Auswahl des zu speichernden Dokumentes + + + + + + + + Dokument anzeigen + + + + + + + + Text-Change von Txt-Dateiname + + + + + + + + Tabellenname übernehmen und Daten ab DB laden + + + + + + + Daten ab Datenbank laden + + + + + + Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt + + + + + + Update-Statement dynamisch für das UpdateCommand generieren + + + + + + Insert-Statement dynamisch für das InsertCommand generieren + + + + + + Prefixt für den SP-Übergabeparameter generieren + + Aktuelle Columnt + Prefis für SP-Übergabeparameter + + + + + SQL-DB-Type für den SP-Übergabeparameter festlegen + + Aktuelle Column + SQLDBType + + + + + Feldlänge für den SP-Übergabeparemter festlegen + + Aktulle Column + Feldlänge + + + + + Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + + + + + + Dispose von Tabledata + + + + + + Load der Verbindungstabelle + + + + + + + + + Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. + + + + + + + + + + Dokumente lesen und dem Grid übergeben + + C1TrueDBGrid mit Dokumente + + + + + + Kontakte auslesen und dem Truedbgrid übergeben + + TruedbGrid + Vertragselement, für welches die Dokumente ausgelesen werden + + + +
+
diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/XLSLib.dll b/SW/20211125/AssessmentMgmt/bin/Debug/XLSLib.dll new file mode 100644 index 0000000..d0324ca Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/XLSLib.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/_AM_FRReporting.zip b/SW/20211125/AssessmentMgmt/bin/Debug/_AM_FRReporting.zip new file mode 100644 index 0000000..8c152b5 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/_AM_FRReporting.zip differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.dll b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.dll new file mode 100644 index 0000000..eec0ad1 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.dll differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.pdb b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.pdb new file mode 100644 index 0000000..3602d8b Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.pdb differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.xml b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.xml new file mode 100644 index 0000000..064c1c8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/bin/Debug/_FRReporting.xml @@ -0,0 +1,1327 @@ + + + + +_FRReporting + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'Auswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bReport
  • +
  • sFilename
  • +
  • bExcel_Report
  • +
  • sSQL
  • +
  • sSQLType
  • +
  • sBeschreibung
  • +
  • sConnectionstring_Subreport
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungAuswertungParameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr
  • +
  • iAuswertungparameternr
  • +
  • sDBfeldname
  • +
  • iReihenfolge
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iParentid
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppeAuswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr
  • +
  • iAuswertungNr
  • +
  • bAktiv
  • +
  • daErstllt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungRptDatei'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungDateiNr
  • +
  • sFilename
  • +
  • sReportname
  • +
  • blobReportfile
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungparameternr
  • +
  • sBezeichnung
  • +
  • sOperator
  • +
  • sFeldbezug
  • +
  • sWert
  • +
  • sParamName
  • +
  • sParamType
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Mitarbeiter_Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr
  • +
  • iAuswertungnr
  • +
  • sBeschreibung
  • +
  • sParameterdaten
  • +
  • sTitelzeile1
  • +
  • sTitelzeile2
  • +
  • bParamPrint
  • +
  • sSQLWhere
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSecurityObjectNr
  • +
  • sSecurityForm
  • +
  • sSecurityObjectType
  • +
  • sSecurityObject
  • +
  • sSecurityObjectItem
  • +
  • sSecurityObjectDescriotion
  • +
  • iLevel
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Initialisierung des Formulars + + + + + + + Auswertungen, für welche der User berechtigt ist, auslesen + + + + + + + Interne Relation aufbauen und Tree aufbauen + + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + + + + + + Formularsecurity setzen + + Aktuelles Formular + + + + + + Daten ab Datenbank laden + + + + + + Prüft die DB-Einträge mit den Formcontrols und bei Übereinstimmung werden die Security-Einstellungen gesetzt + + + + + + Security-Einstellungen setzen + + Betroffenes Objeckt (Menuitem, Conrol usw.) + Readonly ja/nein + Sichtbar ja/nein + Name des Unterobjektes - wird für die Spalteneinstellungen von C1TruedbGrids verwendet + + + + + Alle Controls des Formulars zusammensuchen und auf der DB speichern + + Betroffenes Formular + + + + + + Sämtliche Controls vom Formular auslesen + + + + + + + + Auslesen von MenuItems + + + + + + + + + Auslesen von ContextMenuItems + + + + + + + + + Auslesen von Menu-Subitems + + + + + + + + Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + Formular + Objekttyp + Objektname + Objektitem + + + + + + Klasse für ein Control-Objekt + + + + + + Neue Instanz erstellen + + Control-Objekt + Betroffenes Formular + Objekttyp + Objektname + Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + + + + + Schreibt einen Datnsatz in die Tabelle SecurityObjects + + + + + + +Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + + + + + + Formular schliessen + + + + + + + + Formualr schliessen + + + + + + + + Formular schliessen + + + + + + + + Mousedown-Ereignis auf dem Tree + + + + + + + + Nach Selektion eines Nodes Parameter neu aufbereiten und Auswerungsmöglichkeit (CR/CSV) anzeigen + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Parameter initialisieren + + + + + + Selektion Parameter + + + + + + + + Datenrow in den zur Auswertung gehörenden Parameterliste suchen + + + + + + + + Where Bedingung für die Abfrage zusammenstellen + + + + + + Where zusammenstellen + + + + + +
+
diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/findinghelp.pdf b/SW/20211125/AssessmentMgmt/bin/Debug/findinghelp.pdf new file mode 100644 index 0000000..c3a0f47 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/bin/Debug/findinghelp.pdf differ diff --git a/SW/20211125/AssessmentMgmt/bin/Debug/x.log b/SW/20211125/AssessmentMgmt/bin/Debug/x.log new file mode 100644 index 0000000..e69de29 diff --git a/SW/20211125/AssessmentMgmt/frmMain.Designer.vb b/SW/20211125/AssessmentMgmt/frmMain.Designer.vb new file mode 100644 index 0000000..ab539d2 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/frmMain.Designer.vb @@ -0,0 +1,266 @@ + +Partial Class frmMain + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NeuAnmeldenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.VorgabenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PrüfplanToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PrüfschrittToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AssessmentsIsiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MassnahmenPlanToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MassnahmenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StammdatenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.FINMADefinitionenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ExtrasToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SystemAdministrationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ObjektListerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DemoAssessmentGenerierungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DemoMailGenerierungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ErinnerungsmailsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AuswertungenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnPruefschritt = New System.Windows.Forms.ToolStripButton() + Me.TSBtnAssessmentuebersicht = New System.Windows.Forms.ToolStripButton() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem, Me.VorgabenToolStripMenuItem, Me.PrüfplanToolStripMenuItem, Me.PrüfschrittToolStripMenuItem, Me.AssessmentsIsiToolStripMenuItem, Me.MassnahmenPlanToolStripMenuItem, Me.MassnahmenToolStripMenuItem, Me.ExtrasToolStripMenuItem, Me.StammdatenToolStripMenuItem, Me.AuswertungenToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(990, 24) + Me.MenuStrip1.TabIndex = 1 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem, Me.NeuAnmeldenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'NeuAnmeldenToolStripMenuItem + ' + Me.NeuAnmeldenToolStripMenuItem.Name = "NeuAnmeldenToolStripMenuItem" + Me.NeuAnmeldenToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.NeuAnmeldenToolStripMenuItem.Text = "&Neu anmelden" + ' + 'VorgabenToolStripMenuItem + ' + Me.VorgabenToolStripMenuItem.Name = "VorgabenToolStripMenuItem" + Me.VorgabenToolStripMenuItem.Size = New System.Drawing.Size(69, 20) + Me.VorgabenToolStripMenuItem.Text = "Vorgaben" + ' + 'PrüfplanToolStripMenuItem + ' + Me.PrüfplanToolStripMenuItem.Name = "PrüfplanToolStripMenuItem" + Me.PrüfplanToolStripMenuItem.Size = New System.Drawing.Size(109, 20) + Me.PrüfplanToolStripMenuItem.Text = "Assessment-Plan" + ' + 'PrüfschrittToolStripMenuItem + ' + Me.PrüfschrittToolStripMenuItem.Name = "PrüfschrittToolStripMenuItem" + Me.PrüfschrittToolStripMenuItem.Size = New System.Drawing.Size(81, 20) + Me.PrüfschrittToolStripMenuItem.Text = "Assessment" + ' + 'AssessmentsIsiToolStripMenuItem + ' + Me.AssessmentsIsiToolStripMenuItem.Name = "AssessmentsIsiToolStripMenuItem" + Me.AssessmentsIsiToolStripMenuItem.Size = New System.Drawing.Size(136, 20) + Me.AssessmentsIsiToolStripMenuItem.Text = "Assessment-Übersicht" + ' + 'MassnahmenPlanToolStripMenuItem + ' + Me.MassnahmenPlanToolStripMenuItem.Name = "MassnahmenPlanToolStripMenuItem" + Me.MassnahmenPlanToolStripMenuItem.Size = New System.Drawing.Size(84, 20) + Me.MassnahmenPlanToolStripMenuItem.Text = "Kontrollplan" + ' + 'MassnahmenToolStripMenuItem + ' + Me.MassnahmenToolStripMenuItem.Name = "MassnahmenToolStripMenuItem" + Me.MassnahmenToolStripMenuItem.Size = New System.Drawing.Size(67, 20) + Me.MassnahmenToolStripMenuItem.Text = "Kontrolle" + ' + 'StammdatenToolStripMenuItem + ' + Me.StammdatenToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FINMADefinitionenToolStripMenuItem}) + Me.StammdatenToolStripMenuItem.Name = "StammdatenToolStripMenuItem" + Me.StammdatenToolStripMenuItem.Size = New System.Drawing.Size(87, 20) + Me.StammdatenToolStripMenuItem.Text = "Stammdaten" + Me.StammdatenToolStripMenuItem.Visible = False + ' + 'FINMADefinitionenToolStripMenuItem + ' + Me.FINMADefinitionenToolStripMenuItem.Name = "FINMADefinitionenToolStripMenuItem" + Me.FINMADefinitionenToolStripMenuItem.Size = New System.Drawing.Size(181, 22) + Me.FINMADefinitionenToolStripMenuItem.Text = "FINMA-Definitionen" + ' + 'ExtrasToolStripMenuItem + ' + Me.ExtrasToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SystemAdministrationToolStripMenuItem, Me.ObjektListerToolStripMenuItem, Me.DemoAssessmentGenerierungToolStripMenuItem, Me.DemoMailGenerierungToolStripMenuItem, Me.ErinnerungsmailsToolStripMenuItem}) + Me.ExtrasToolStripMenuItem.Name = "ExtrasToolStripMenuItem" + Me.ExtrasToolStripMenuItem.Size = New System.Drawing.Size(50, 20) + Me.ExtrasToolStripMenuItem.Text = "&Extras" + ' + 'SystemAdministrationToolStripMenuItem + ' + Me.SystemAdministrationToolStripMenuItem.Name = "SystemAdministrationToolStripMenuItem" + Me.SystemAdministrationToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.SystemAdministrationToolStripMenuItem.Text = "&System-Administration" + ' + 'ObjektListerToolStripMenuItem + ' + Me.ObjektListerToolStripMenuItem.Name = "ObjektListerToolStripMenuItem" + Me.ObjektListerToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.ObjektListerToolStripMenuItem.Text = "Objekt-Lister" + ' + 'DemoAssessmentGenerierungToolStripMenuItem + ' + Me.DemoAssessmentGenerierungToolStripMenuItem.Name = "DemoAssessmentGenerierungToolStripMenuItem" + Me.DemoAssessmentGenerierungToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.DemoAssessmentGenerierungToolStripMenuItem.Text = "Demo Assessment-Generierung" + ' + 'DemoMailGenerierungToolStripMenuItem + ' + Me.DemoMailGenerierungToolStripMenuItem.Name = "DemoMailGenerierungToolStripMenuItem" + Me.DemoMailGenerierungToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.DemoMailGenerierungToolStripMenuItem.Text = "Demo Mail-Generierung" + ' + 'ErinnerungsmailsToolStripMenuItem + ' + Me.ErinnerungsmailsToolStripMenuItem.Name = "ErinnerungsmailsToolStripMenuItem" + Me.ErinnerungsmailsToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.ErinnerungsmailsToolStripMenuItem.Text = "Erinnerungsmails" + ' + 'AuswertungenToolStripMenuItem + ' + Me.AuswertungenToolStripMenuItem.Name = "AuswertungenToolStripMenuItem" + Me.AuswertungenToolStripMenuItem.Size = New System.Drawing.Size(96, 20) + Me.AuswertungenToolStripMenuItem.Text = "&Auswertungen" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnPruefschritt, Me.TSBtnAssessmentuebersicht}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(990, 25) + Me.ToolStrip1.TabIndex = 2 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "ToolStripButton1" + Me.TSBtnQuit.ToolTipText = "Anwendung beenden" + ' + 'TSBtnPruefschritt + ' + Me.TSBtnPruefschritt.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnPruefschritt.Image = CType(resources.GetObject("TSBtnPruefschritt.Image"), System.Drawing.Image) + Me.TSBtnPruefschritt.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnPruefschritt.Name = "TSBtnPruefschritt" + Me.TSBtnPruefschritt.Size = New System.Drawing.Size(23, 22) + Me.TSBtnPruefschritt.Text = "Assessment" + ' + 'TSBtnAssessmentuebersicht + ' + Me.TSBtnAssessmentuebersicht.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnAssessmentuebersicht.Image = CType(resources.GetObject("TSBtnAssessmentuebersicht.Image"), System.Drawing.Image) + Me.TSBtnAssessmentuebersicht.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnAssessmentuebersicht.Name = "TSBtnAssessmentuebersicht" + Me.TSBtnAssessmentuebersicht.Size = New System.Drawing.Size(23, 22) + Me.TSBtnAssessmentuebersicht.Text = "Assessment-Übersicht" + Me.TSBtnAssessmentuebersicht.ToolTipText = "Assessment-Übersicht" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "No Title #6.png") + Me.ImageList1.Images.SetKeyName(1, "Abort.png") + Me.ImageList1.Images.SetKeyName(2, "Stop.png") + Me.ImageList1.Images.SetKeyName(3, "OK1.png") + ' + 'frmMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(990, 518) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.IsMdiContainer = True + Me.Name = "frmMain" + Me.Text = "Assessment-Management TKB" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AuswertungenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ExtrasToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SystemAdministrationToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnPruefschritt As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnAssessmentuebersicht As System.Windows.Forms.ToolStripButton + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents NeuAnmeldenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ObjektListerToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents StammdatenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents FINMADefinitionenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents PrüfplanToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents VorgabenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ImageList1 As ImageList + Friend WithEvents PrüfschrittToolStripMenuItem As ToolStripMenuItem + Friend WithEvents MassnahmenPlanToolStripMenuItem As ToolStripMenuItem + Friend WithEvents MassnahmenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AssessmentsIsiToolStripMenuItem As ToolStripMenuItem + Friend WithEvents DemoAssessmentGenerierungToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ErinnerungsmailsToolStripMenuItem As ToolStripMenuItem + Friend WithEvents DemoMailGenerierungToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/SW/20211125/AssessmentMgmt/frmMain.resx b/SW/20211125/AssessmentMgmt/frmMain.resx new file mode 100644 index 0000000..0a91586 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/frmMain.resx @@ -0,0 +1,3747 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 132, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZALDsMwCEM5OkfLzbIaMGH5dJkligL2a1o5 + qP9RW3VVXYpzqLV2D+CZQVU/Y27uIg4OQQAJXz+hDsyEDtVQ7dib+1GH1fpUDljD6OF5HgjvKgHvN+iC + A0O1EvB+A8ghPvgqB4j9xPlHhidVB2lwwICfbkBxMAFGqHbszb1RGhywhtGxN/dGXAbgGD4CqACMMGZR + VwrA/Rtn/QiKfADckGXYsnwKqAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAB0AAAAWCAYAAAA8VJfMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFmSURBVEhLpVGLbsQwDOqn98+3QMDFSXSPDclHwNi5qNcB + P0v9BR/vqFAi/VGv0HIaT4++sZqK70BPlShPmbbAPXHpMh0i3zfLcACMY1QDMzErK7PkzUx4AUvNe56d + nzjkAByhwak38wQmYunAvHy56MAgMjzzZlJrGc8yzflSnQvM9Vn3m97MhBfEEsOXTxxyYmtnq9fMFTa9 + tH1TeTwPZB7AERqcejNPcAAs9JcOVF9/RLqYPfFmUvfBWgg+flPlWQPIAThCg1NvZiKXUT+Yl7tgqL8w + iAzPvJkrbPqC40uFzPG87AVT4AdskxyDgANgoX9T5eMy562drV4zE7nMzXxp9gDOiAEcocGpN/MEJvoF + /aUDznFAsASjZz6ZVeq1hW+/6exlAWiV7qaXxItc7D9YX1o5qtijuanFafbCYJb89k3fZLPinvGzDrhi + IDwge/mtn7KXNUHu4c8KSP62vsY/l1zXL+WU2z+0eKLRAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIhSURBVDhPxZLfS1NxGMb3T3Uxb+ymorrwoqu8TDAwxNoG + W1AaFjlI1KjQ0mlqOrPUzOwHqJmbbropKmnFmvlrm+a04cph2/d8Ou8mdroMgl44F+ccns/zvu/zmv5J + dQ4G6HgxxaOBSdqf+2nr99H6bJyWXi/NPR5cT9/R2D3Kg8cj3O8apsE9xIE0J9ZQKE2RVor9jCKVVvzY + VyRTisSexs53ja1djY2ERvSbxtq2xpGTRTmIOIu4qmUGxx0/ZdU+Sm/5Kb7pp7B8ggK7lxOXPORf8GA+ + 7+WYLcjylgEgbYuzrdbHzBfwh2B0EV7NafROKTo8isbhDLdfpqnq+8lRxzrhTQNAZpa2LTUTTH5GbxMi + O7Ac5w+xUxdbmhLk2dYIxQwAWZjMLICxD/Bad+4LKDq9iiYRD6a58SSF/eEuJXfjmK1rfIzyGyDbloUJ + 4M28xoruHN6ETzFYWIe5FQiGc6Odq45kAYv690OARCXbFkB/UOEeV7hGMtQO7HO9ew9Ha5Kyhm2Ka6IU + Vi5htqzyftUAkJwlKgF06WJxFgej89gCDM3CmcuLWcC8/u8QIEciOdvqfDS/zeDsSVLhTmJ1JSi5F8+2 + Lc4iPn1xmjzrKrPLBoBcmBzJ1foAFa4Q19q/YndtUlq/QVFdjLPOKAWVEY5fWSdfj/BUeSQb9yFAztN4 + YXIkkrNEJduWcWRmaVucRTy9ZABIycvfPgfS/14m0y+qHVIhYQoSoQAAAABJRU5ErkJggg== + + + + 438, 62 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABM + CwAAAk1TRnQBSQFMAgEBBAEAAegBAAHoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACQAB/wEH + BHEBcgH0CAAB/wGTBEYBbwH0CAAB/wGTBEYBbwH0CAAB/wEHBHEBcgH0BwAB8QNyBnEB/wUAAfIJRgH/ + BQABGglGAf8FAAHxA3IGcQH/BAABCAOXAnIGcQH/AwABGgNMCEYB/wMAARoDTAhGAf8DAAEIA5cCcgZx + Af8CAAH0BJcBCAGXAnIFcQIAAfQCFwFvARoBTARGAb0DRgIAAfQCFwFvAkwIRgIAAfQGlwNyBHECAASX + AQgC/wGXAnIEcQH0AQACbwEXAfQB/wHzAUwCRgL/AZQCRgH0AQACbwIXAW8CTAdGAfQBAAFyA5cBmAUA + BHEB9AH/A5cBCAH/AfQC/wGXAnIDcQFyAf8EbwL/AfMBTAL/ARsDRgFvAf8DbwIXAW8CTAZGAW8B/wOX + AXgBmAUAAXIDcQFyAfEClwEIAf8B9AKXAv8BlwNyAnEBGgHjBG8E/wG9BUYBGgHjAm8HlAEWAW8DRgHx + A5cBmAcAAnICcQEHAXgBlwH/AfQElwL/ApcCcgFxAQcC4wRvA/8BTAVGAQcC4wHzCf8DRgEHAXgBlwGY + AXgHAAGXAnIBcQEIApgHlwL/ApcCcgEaA+MCbwT/AfMBTAEXA0YBGgLjARYBvQMaBL0BlANGAQgEmAcA + AZcDcgH0A5gBeAaXAv8ClwFyAfQBFgPjAv8BGwFvAv8B8wJMAkYB9AEWA+MEbwIXA0wCRgH0A5gBeAGX + BQADlwJyAf8BCAOYAXgGlwH/ApcBBwH/AZQBFgHjAfMB/wHzA28C/wGUAkwBkwH/AZQBFgPjBG8CFwFv + AkwBkwH/AQgDmAF4BQADlwFyAQcBAAEHBZgIlwH/AQABkwIWAeMBvQHjBG8BlAEXAW8BTAH/AQABkwIW + A+MEbwIXAW8BTAH/AQABBwWYApcCmASXAf8BAAH/AQgFmAF4BZcB8QIAAf8BlAMWAuMEbwIXAfICAAH/ + AZQDFgLjBG8CFwEaAgAB/wEIBZgBeAWXAfEDAAH/AQgFmAF4ApcBmAEIBAAB/wGUAxYD4wNvARoEAAH/ + AZQDFgPjA28BGgQAAf8BCAWYAXgClwGYAQgFAAH/AQcBCAaYAfQGAAH/AZMBvQIWAuMBFgFvAfQGAAH/ + AZMBvQIWAuMBFgFvAfQGAAH/AQcBCAaYAfQIAAH/AfQCCAHxAf8KAAH/AfQBGgEHARoB/woAAf8B9AEa + AQcBGgH/CgAB/wH0AggB8QH/BQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EA + AfABDwHwAQ8B8AEPAfABDwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHAAQEBwAEBAYABAQGAAQEBgAEB + AYABAQGAAQABgAEAAYABAAGDAeAGAAEDAeAGAAEHAfAGAAEHAfAGAAEHAfAGAAEDAeAGAAEDAeABgAEA + AYABAAGAAQABgAEAAYABAQGAAQEBgAEBAYABAQHAAQMBwAEDAcABAwHAAQMB4AEHAeABBwHgAQcB4AEH + AfgBHwH4AR8B+AEfAfgBHws= + + + + + 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 + X9fIWBTqTItGG5/ev8SSXqrGXlKtzX7a7NzUxAagz+iIW92ik90HqwxnFew8knnvD3gsd4GuN0JufZzc + dpbJ8tPmDtOfkAFpP+4jN59f6jObUoP30XVafI0doWfjZCbTlvNpzhJa8XgcATII/Bqp13u9n8bqD2Gw + Afj/AdlDAoEyFHaAAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAA + AAAAAP7+/rT+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f3f + +vr63/Ly8t/q6uvf4+Tl39na2t/R0dDf0M7M383Kwt/KwrTfxruk38Gxkd+7pn3ftpxr37KUXN+ui1Df + q4VG36mCPt+mgDjfqH4236V9NN+lfjXfpoE536mDPd+riEbfrYxN37CSWt+4nGzfu6V938KxlN/GvKbf + zMW639DNyN/Ly8rf09LS397g4N/m5ujf7Ozs3/b29t/8/Pzf/f393/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/9/f20/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v/7+/v/8fHx/+np6v/g4OD/1tbW/9DPzP/MyL//x72q/8Kxkv+5onf/ + spNb/6uGQ/+lfDH/oHQi/51vF/+caxH/mmkL/5pnCf+ZZgf/mWUF/5llBP+aZQT/mWUE/5llBP+ZZQT/ + mWUF/5lmBv+ZZwn/mmgL/51rEf+ebhf/oXYl/6d+Mv+siEj/tJhj/7mke//CtJn/ysKy/9DLxP/R0M// + 2dra/+Xl5v/q6uv/9PT1//z9/P/+/////////////////////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////////////v/////////+/////v/+//3+/f/5+fn/7Ozt/+Hh4v/V1tb/ + z8/K/8vFt//DtZr/uaJ0/66PU/+lfjX/oHIf/5xrEf+aZwn/mWUE/5llAv+ZZAH/mGQB/5llAf+ZZQH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hkAP+YZQD/mWUA/5lkAP+YZQH/ + mWUC/5llBf+aZwv/nGwS/6F1JP+ogj//spRb/7qlff/GuaT/0MzC/9PS0P/Y2dn/5eXm/+3u7//4+Pj/ + /v39/////////////v/+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v7///////7//v/+//// + /v////r7+//z9fT/6urq/+Dg4P/R0M3/zMa5/8O1mP+3nm7/q4dF/6F1I/+cbBD/mWcH/5hlA/+ZZQH/ + mGYB/5hmAP+ZZgD/mWYB/5lmAf+ZZQH/mWUB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mGYB/5llAf+ZZQH/mGUC/5hlBf+aZwn/ + nW0T/6N5LP+ujVP/vKd+/8e7pP/MyMH/0M/P/9vc3P/r6+v/+fn5//3+/f/+//7////+//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v////v8/P/x8vL/4OLi/9bW1v/Py8b/yL2q/7mkfP+sikr/ + oXYm/5tqD/+ZZgX/mGUB/5hmAP+ZZgH/mWYB/5pmAP+ZZgH/mWYA/5lmAP+ZZwH/mmYB/5pmAf+aZgD/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mmYB/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mWYA/5lmAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5llAf+XZQD/mGUC/5lmB/+cbRb/pHwx/7KTWf+/rYn/ + xsCx/8/Oy//e3+D/6Onp//b29f/9/f3///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/f/09PX/ + 5ubn/9LT0v/LyMD/w7Wb/7SaZ/+lfjP/nW0V/5pnBv+YZQL/mGUB/5hmAf+YZgH/mWYB/5pmAP+aZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZQD/mmYA/5pmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYB/5lmAf+ZZgH/ + mWYB/5lmAf+ZZgH/mGYB/5hlAf+YZQP/mmcK/59yG/+phkD/uKN2/8a9qv/Ly8f/29vc/+bl5v/39/f/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/7+/v/7e7v/9fX1//PysH/wbOW/7KUXv+keCr/m2oO/5hlA/+YZAH/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mmYA/5pmAf+ZZgH/mWYA/5lmAf+ZZgH/mmYA/5lmAP+ZZQD/ + mWYA/5hlAf+ZZQD/mGYA/5llAP+ZZgD/mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmAf+ZZgH/mWYB/5lmAf+ZZgD/mmYB/5lmAf+YZQD/ + mWQB/5llBP+cbRP/p4E3/7adb//GvKj/y8nF/9jZ2P/r7Oz/+vr6//7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7///////////////7//v/6+vr/6enp/+Df4f/Rzsj/ + wrSa/7OVXv+idyb/mmgM/5hkAv+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZQH/mmgI/5tpDf+ZZQT/mWUB/5lmAf+YZgH/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5llAf+ZZgT/nWwR/6aANv+4oXT/ + ycCv/9TT0f/h4eL/7/Dw//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+//// + /v7+//7+/v/7/Pv/8vPz/+Li4v/Qz8v/xruo/7SaaP+kei7/m2oN/5lmAv+ZZQH/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUB/5tqC/+qiEb/tJhl/6V9NP+aaA3/l2UC/5llAf+YZgD/mWYA/5lmAP+aZgH/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZQH/mGYE/51uFv+rh0P/wKyH/8/Ivf/T1NL/5OXl//j4+f/+/v7/ + //////////////7///////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////+/v7/9/f3/+Tl5f/V1dX/ysS5/72og/+ogz3/ + nGwQ/5llA/+YZQH/mWYB/5pmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZwT/p4E3/83Bqf/f3NT/zcCl/7GSVv+ecRz/ + mWUE/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5lmB/+fciD/sJFY/8S3nf/OzMf/3Nvd/+3t7v/7+/v///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f79//Lz8//e3t//0s/M/8S5of+wklf/n3If/5lmBv+ZZgH/mWYB/5lmAf+ZZgD/mWYA/5lnAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/59xGf/Er4f/7evn//n6+v/x8e//3tfK/8Csgv+ngDf/m2oP/5hkAv+ZZgH/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5pmAf+ZZQD/mmYB/5lmAP+YZgD/mGYB/5lmAf+ZZgH/mWUB/5hlA/+aaAz/pXwy/7ihdf/JwrX/ + 09HQ/+bl5v/6+fr//v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/f/w8PD/2dnZ/87Iv/+8qIL/pn80/5tqDP+YZQL/ + mWYB/5lmAf+ZZgD/mWYA/5llAP+ZZgD/mWYA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5hlAf+aaQr/spRY/+Hb0P/7+vr///////7+/v/6+fr/ + 7Ork/9THsP+0l2H/oHMh/5lmB/+YZQH/mWYB/5lmAP+ZZgD/mWUA/5lmAP+aZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5llAP+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5llAf+ZZgH/mGYB/5llAf+ZZQP/nnAY/7CQVP/HuaD/1NHO/+bm5//39/f//f39//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+///6+/v/ + 6+vs/9bV1P/Jv67/s5dh/6BzHv+ZZgT/mWUA/5pmAP+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcA/5lmAf+ZZgH/ + mWYE/6V8Lv/RxKn/9vX0//7+/v/////////////////9/v3/9fTz/+Ld0P/Gsoz/qYQ+/5xrEP+aZQL/ + mGUB/5lmAf+ZZgD/mWYB/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZwH/mWYA/5llAP+YZQH/ + mmkM/6d/OP+9qYX/0c3G/93c3f/s7O3//P39///////+/v7//v////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj5/+Xl5v/T0c3/xLed/6yKSf+dbA//mWUC/5lmAf+aZgH/ + mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgH/mWYB/5llAf+ebxf/vqh9/+jm4f/8/Pz///////////////// + //////7////+/v7/+/z7/+3r5//Xzbn/uZ1o/6J2JP+ZZwj/mWUB/5plAf+ZZgD/mmYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mmYB/5pmAP+ZZQH/mWYG/6F0Iv+2nGz/y8S2/9TV1f/s7O3/ + +vn6/////v///v7///////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /////////////////////////////////////////////////////////////////v79//X29v/g4OH/ + 0MzI/7+ti/+mgDf/m2kK/5llAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZgH/ + m2kJ/6+PUf/c1sj/+Pn4//7+/v////////////7////////////////////+/////Pz9//f49//k4db/ + y7qa/62JSP+baxP/l2QD/5hmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/ + mGYA/5lmAP+YZgH/mGUC/5xuGP+xklv/xryp/9LR0f/m5eb/+/v7/////v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////39/f/y8vH/3dzc/87Kwv+7pXv/o3gn/5pnBv+ZZQH/mWYB/5lmAf+ZZgD/ + mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mGYB/5lmA/+lfCz/0MOo//Hy7//9/v3///////////////// + ///////+//////////////7////+/////v/+//z8+//x7+3/1cq4/7idbP+ieCj/mmcH/5hlAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mmYB/5lmAf+ZZgH/mWYA/5hmAf+ZZgH/mGUC/5xrEP+tikr/ + x7uj/9PSz//p6en/+/v7//7///////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////9/v7/7+/v/9na2f/Nyb// + uKBy/590Hv+ZZgL/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/ + nm8V/76meP/r6uP//f39//////////////////////////////////////////////////////////// + //////39/v/08/P/5ODY/8y7nP+vjkz/nW0V/5llBP+YZQH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aZgH/ + mWYB/5lmAf+ZZgD/mWYA/5lmAf+ZZgH/mWUB/5tpC/+phD7/w7WZ/9XT0P/m5ub/9vf2//7//v////// + //////7///////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + /////////v///////v/+//T19P/b3Nz/zsm+/7Wda/+fchr/mWYC/5plAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5poB/+yj07/4NnK//n5+f////////////////////// + //////////////////////////////////////////////////////7+/v/7+/v/8/Lw/9vUw/+7oXP/ + o3ot/5poCv+YZQL/mWYB/5pmAP+aZgD/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poCP+ngTr/xLSW/9HPy//g4OH/+vv6//7//v////7//v////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////7+/v/z9PT/29zc/8vHvP+2nWz/ + nnEa/5hmAv+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + pHsp/829oP/z8vH//v7+//////////////////////////////////////////////////////////// + ///////////////////////////+//7/+Pj3/+fk3f/Ju53/r45Q/55wGP+ZZgP/mWYA/5pmAP+ZZQD/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5pnCf+mfzb/wbCT/9DPzP/l5eb/ + +/z8//////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ////////////////+vr6/93e3v/Lx7//t59v/59yHP+YZgP/mWYB/5lmAf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5xuEv++pnX/6efh//v8/P////////////////////// + /////////////////////////////////////////////////////////////////////////v/+/v7/ + +/z8/+7u7P/d1sb/vqd5/6d+Mv+baQz/mGUC/5llAf+ZZgD/mmYA/5pmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5loCP+ngDf/wbOX/9HQzv/r6+z//v39//////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////z8/P/q6+v/0MzF/7mhdf+fch3/ + mGYD/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwX/ + rYpF/9zVxP/5+Pf//v/+//////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////f3+//n5+f/p5+H/0cSr/7CQV/+ecBv/ + mWUG/5llAf+aZgD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWUA/5poCP+pgz3/ + w7ae/9XU0//x8fH//v7+//////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////7////8/P3/6+rr/9LRzP+7qIL/oXUi/5hlAv+ZZQH/mWYA/5lmAP+ZZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYC/6N4JP/JuJf/8vHv//79/v////////////////////// + /v7///39/f/+/v7///////////////////////////////////////////////////////////////// + //////////////////7///39/f/y8fD/2tLG/76pf/+ogTj/nGoO/5llAf+ZZgD/mWYA/5lmAf+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5lmAf+ZZQD/mWUB/5toCv+riUf/xbuo/9jY1//19vb///7+//////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v////7//////v7//Pz8/+zt7f/U09D/vq+Q/6R7Lv+aZgT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+cbQ// + vKFu/+nl3v/7+/z////+/////////////v7///r6+v/x8ez/5+Tb/+3s5v/6+vv//v////////////// + /v/////////+/////v/////////////////////////////////////////////////+//39/P/39vb/ + 6ebh/9fLtP+2mV//onYh/5lmBv+ZZQH/mWYB/5lmAf+ZZgH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5tqDv+wkVb/ycKz/93d3f/4+Pj///////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////79/f/x8PH/2NjY/8a7p/+pgz7/m2cH/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/m2gG/6uGQP/XzLr/+Pj2//7+///+/v7//////////v/8/f3/ + 6Ofg/8i5lv+0mmH/ybqX//Hx7v/9/v7//v7///7////+/v7//v////7////+/v////////////////// + /////////////////////////////////v7///3//v/8/Pz/9/f1/+Td0//KuJb/qYRA/5xqD/+YZQL/ + mWYB/5pmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWUB/55vFv+1nGr/zcjA/+Tl5P/7+/v/ + //////7+/v///////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+//7/9fX1/9vb2//Mxbj/ro9U/5xqDP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5hlAv+hdB// + yLaT/+/t6//9/f3//v////3//v////7///////39/f/m49n/wK+K/6mHQ/+4m2L/6+ni//z9/f/7/Pv/ + 9vb2//f39v/6/Pv//v7+/////v///////v////////////////////////////////////////////// + /v7////+/v/+/v7/+/v6/+/u6v/RxrH/tplk/6F2I/+ZaAb/mGUB/5lmAf+aZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZQH/mGUC/6F1IP+9qYP/z87K/+nq6v/9/f3///////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + /v/+//z8/P/j5OT/z8zF/7iecP+ebxb/mWYB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/m2sN/7aZYv/l4df/+/v7//7//v/+/////v/+///////+//// + /f7+//f39v/m5OD/wKyB/7SXXf/o49n//Pz8/+/u6f/TybL/0cas/+Ti2v/39/f//v3+///////+//// + ///////////////////////////////////////////////////////////+/////Pz9//Py8v/i3dP/ + ybeU/6yIQ/+baxH/mWUD/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgH/mWYF/6Z/NP/Dt57/ + 09PS/+/v7//+/v7///////////////////////////////////////////////////////39/c7+/v7O + ///////////////////////////////////////////9/v3/9PT0/9fX1P+/r4//o3cm/5lmAv+ZZgD/ + mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZgD/mWYA/5pnBP+pgzj/ + 0say//b29f/+/v7//v/+///////+///////////////+//7//v7+//f39v/Xzrn/0cWm//Hw6//6+vr/ + 3NO//6yJRP+kezD/uqR1/9rTxf/18/L//f39//7+///+//////////////////////////////////// + /////////////////////////////////v7+//r7+v/x8Oz/1866/7ica/+jeCr/mWcJ/5hlAf+YZQD/ + mWYA/5lmAP+ZZQD/mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lmAf+ZZQH/m2kK/66OUP/Jw7b/2trb//f39/////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////b29//f3t//ysGv/6mFQf+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+aZgD/mGYA/5hmAP+ZZQH/oHIc/8SviP/s6uf//f39//////////////////////////// + /////////////////f38//Tz8P/19PH//Pz7//n5+P/UyrP/poA4/5hmC/+dbhn/sZFW/9HEq//p5+H/ + +Pf3//39/f/+//////////////////////////////////////////////////////////////////// + //////39/v/29vT/5eHY/8i3mP+vjEz/nW0U/5llA/+ZZQH/mWYA/5lmAP+YZgD/mGYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nnAX/7iidf/OzMj/6+vr//39/f/////////////////////////////////////////////////9/f3O + /v7+zv///////////////////////////v7+///////7+/v/5eXm/8/Mxf+0mmf/nGwQ/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5hmAf+ZZgH/mWUB/5xqDP+0ll3/ + 39nP//r6+v///////v///////////////v7+//////////////7//////v///////v////7+///+/v7/ + /f38/+vp4f/JuZX/ropE/51sE/+aaA//pn40/76off/Y0sT/8fDv//39/f/+//7//v////////////// + ///////////////////////////////////////////////////////+/v/7+/v/7+3s/93Uw/+7onH/ + pXwt/5lnCf+ZZAL/mWUA/5lmAP+YZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZgP/pX0x/8W4nv/Y19f/8fHy//7+/v////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + /v7+/+/v7//V1NP/wbGT/6N3Jf+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mWYB/5lmAf+aZgT/qoI4/9fMtf/19fX//v7///////////////////////////// + //////////////7/////////////////////////////////+/z7/+7t6f/a0bv/uqBp/6R6Kf+ZZwv/ + nm4Y/66OT//OwaL/7Oni//j5+P/+/v7///////////////////////////////////////////////// + //////////////7//v////7//v/+/v7/+Pj3/+jm3//PwaX/roxO/55uGf+YZQT/mGUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5pmAf+ZZQD/ + mmYB/5llAf+aaAv/sJJZ/83Ivf/d3t//9/j4//////////////////////////////////////////// + /f39zv7+/s7///////////////////////////7////6+vr/4ODh/8zGuf+si0v/mmgI/5hmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgH/mGYB/55wGf/BrIT/ + 7u3p//3+/f/+///////////////+/v7//Pv7//f39f/29fP/+vr5//7+/v////////////////////// + //////7//////v///f39//f29f/l4tj/zb6d/66MSf+ebhb/mmgN/6V8MP+/qHv/39jK//Lw7//8/Pz/ + ///////////////////////////////////////////////////////////+///////+///////+/v7/ + /P38//Dv7P/Y0MD/vaV5/6d+M/+aaAr/mWUB/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5pmAf+ZZQD/mWYB/5llAf+fch3/vauH/9HRz//u7u// + /f39///////////////////////////////////////9/f3O/v7+zv////////////////////////// + /P39/+3t7f/T0s7/uqV9/51wGP+ZZQH/mWUA/5plAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5hmAP+baQn/sJBS/9vVyf/5+fn//////////////////v////n4+P/j39T/ + z8Gj/8u6mf/j39X/+/v7///////+///////////////+///////////+/////////v7+//v7+//x8O3/ + 3NTB/76mc/+leyz/mmcM/59uGv+yklX/yrye/+nm3//39vf//v7+///////+//////////////////// + /////////////////////////////////////////////////f39//f39//q5uD/1car/7GQU/+ecBj/ + mWYF/5llAf+ZZgD/mWUA/5hmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYA/5hmBf+qh0P/yMCw/9zc3f/39/f///////////////////////////////// + //////39/c7+/v7O//////////////////////7////3+Pf/3t7f/8i/rv+ngjv/mWcF/5pmAf+aZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYD/6V8Lv/Nv6T/ + 8fHv//7+/v/////////////////+////9fTy/83Cqf+wk1j/p4I7/8/Cpv/4+Pf////+//7+///+//// + /v///////////////////////////////v////7+/v/5+fj/5uLa/87An/+wj03/nm8X/5pnDP+keyz/ + vaZ2/9nSwP/z8/D/+/v8//7//v/////////+//////////////////////////////////////////// + /////////////////v7+//39/f/29fP/3dfJ/76pgP+mfzb/m2kO/5hkAv+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUB/55vFv+6pHr/ + 0dDM/+3t7v/+/v7//v///////////////////////////////f39zv7+/s7////////////////+//7/ + /v7+/+7u7v/U0s7/uaB0/5xtEv+ZZgD/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/5lmAf+fcBf/vad6/+jl3//8/Pz///////////////////////7+///6+vr/ + 6OXe/8i9o/+ph0X/x7WQ//T18v/9/f3/+fn4//j49v/6+/v//v7+///+///////////+//7///////// + //////7+///7+/v/8/Lv/93Xxv/CrH//pXww/5lnDv+cbRf/r45O/87Ao//m49v/9vb1//39/f/+/v7/ + /////////v////////////////////////////////////////////////////////////7+/v/5+fn/ + 6ebh/83Bqf+zlVv/oHMd/5lnBP+ZZQD/mWUA/5pmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUE/6iCO//Hv6z/4OHh//r7+//////////+//////////// + ///////////9/f3O/v7+zv////////////////7////7+/z/4OHh/8i/rP+ngDf/mmYE/5pmAf+aZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmkJ/7GRUv/e2Mr/ + +fn5///+/v////////////////////////////7//v/7/Pz/5ODY/7ynev/Pwqf/9fXz//X19P/d1sX/ + 0cSl/9/Zyv/y8u//+/v8//7////+///////////////////////////////+/v7/+fr5/+vo4f/NwKL/ + spNU/55vGf+aZw3/pHot/7qicf/Vzrz/7+/t//z8/P/+//7//v/+//7//v////////////////////// + ///////////////////////////////////////+///8/Pz/8vPx/+Hbzv/Gsov/qoQ8/5tqDv+YZAP/ + mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5lmAf+ZZQH/ + nW0U/7ehdf/Rz8v/7e3t//39/f////////////////////////////39/c7+/v7O//////////////// + /v7+//Lz8//Z2NX/uKJ2/5xtEf+ZZgH/mWYB/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llA/+keyv/zsCk//Pz8f/+/v7///////////////////////////////// + //////7//v/29vP/5+LW/+3t5v/7+/v/7Oni/7qgbf+idyn/sZNV/87BpP/r6OL/+vr6//7+//////// + //////7////+///////////////+//7//Pz8//Lx7//d18b/val7/6d/Mf+aaAz/nW0V/6yLSv/Mv5// + 6Obe//f4+P/+/v7//v////////////////////////////////////////////////////////////// + //////7////+/v7/+vr5/+/t6v/TyLT/tppl/6F1Jf+ZZgf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+aZgH/mWYB/5lmAf+ZZgP/qIM6/8nAr//Y2dr/9fX2//7///////// + /////////////////f39zv7+/s7////////////////7+/v/4+Pj/8vDtP+ogz3/mGcE/5lmAf+ZZgD/ + mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/nW4T/7ujc//q6OH/ + /Pz9//7////+/////v///////////////v////////////////////39/f/9/fz//P39//39/f/q5+H/ + uqJx/51wHf+aaBD/pn0z/8awh//h2s3/9fTy//38/f/+/v7///////////////////////////////// + /v7+//j4+P/p6OL/0cWp/7SWWf+fch//mWcP/6J7Lv+7pXb/2tPD/+/v7P/7+/v//v7+//////////// + ///////////////////////////////////////////////////////////+//7//f79//X19P/k3tT/ + xbOP/6yIQ/+dbBH/mWUC/5llAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAf+aZgH/ + mmYA/5llAf+dbhX/vKeA/9XU0v/s7e3//v7+///////////////////////9/f3O/v7+zv////////// + //////X19f/Y19X/vKiD/55uFv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWYB/5ppCP+ujEv/2tHC//j4+P/+//7//v/////////+/////v////7//v/+//// + /////////////////////////////////v7///b29f/c1sn/vqp+/6Z/Mv+baQ7/n3Ea/7GSU//Sxaf/ + 6ebf//n5+f////7//v////////////////////////////////////z8/P/09PL/4t3P/8Gsg/+mfzX/ + mmkP/5xtF/+sikr/yLiY/+Th2P/09fT//v3+//////////////////////////////////////////// + /////////////////////////////////v7+//r6+v/v7ur/2tC8/7qgbv+keiv/mWcI/5llAf+ZZgH/ + mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5lmBf+riUf/zsi8/+fn6P/8/P3/ + //////////////////////39/c7+/v7O///////////9/f3/6Ojo/83Ivv+rikv/mWYG/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5pmAP+ZZgP/onko/8q6nP/y8e7/ + /f39//3//v/+///////+//3+/v/7/Pz/+vr6//v6+v/9/f3///////////////////////////////// + /f7+//f49//p6OL/zcKm/7OUWP+ecR3/mmgQ/6Z+Nf+/qn//39jJ//Tz8f/9/f3//v/+//7///////// + //////////////////////3//v/7+vr/6eXh/87DqP+1mF3/oHQg/5lnDP+idyf/uJ9r/9fPu//z8u// + /Pz8//7+/v/+/////v////////////////////////////////////////////////////////////// + /v////3+/v/39/b/6OTd/8u6nP+riEb/nGwU/5lmBP+ZZQH/mWYB/5lmAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/55zHv++rpD/2NjX//b29v///////////////////////f39zv7+/s7///// + //////X19v/Z2Nj/v7GU/590IP+ZZQH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgH/mmUB/51tEv+5oW//5eLb//v7+/////7///7////////+/v7/9fTz/+Ld0v/Yzrj/ + 3dfI//T08////////////////////////////////////////v/+//v8/P/x8e//4NrN/8Ouhf+ngjf/ + mmoR/55wHP+wj1H/z8Gk/+7r5P/4+Pf//f7+/////////////////////////////v/+//7+///8/Pz/ + 8/Px/+Tf1P/GtY3/qIM7/5tpEv+caxb/r41N/8u9nf/p5d3/+Pj4//z9/v////////////////////// + //////////////////////////////////////////////////////7////8/Pz/7ezq/9XMuv+6oHH/ + pHsr/5poCP+YZQH/mWYB/5lmAP+YZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQH/m2gK/7KVXv/MycL/ + 6Ojp//7+/v/////////////////9/f3O/v7+zv/////+/f7/6uvr/9DOyv+ymGX/mmoK/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+aaAb/qohD/9XOu//29vb/ + /v7+/////////v////////z9/f/l4tv/vKmA/6mHRP+5oG7/6eff//7+/v////////////////////// + //7////+//////////////7+/v/5+fn/7+3m/9HGq/+wlFf/nXAb/5poDf+mfTD/wqt+/9vTw//v8Oz/ + /Pz8//////////////////////////////7//////v/+/v7/+vv7/+zq5f/TybH/tZlh/6BzIP+aaA7/ + ongo/76lc//X0Lz/7+7r//z8/P////////////////////////////////////////////////////// + /v/////////////////////////9/P3/9vb1/+jl3v/Pv6H/rYtM/55uFv+ZZQT/mGUB/5pmAP+YZgD/ + mWUA/5pmAf+aZgH/mWUA/5pmAP+aZgL/pX0y/8W7qv/d3t7/+vn5//////////////////39/c79/v3O + /v/+//z7/P/k5OT/ycGx/6eAOP+ZZgP/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQD/ + mWYA/5lmAP+ZZQH/mWYD/6B2I//FtJP/7+3q//39/f///////////////////////f39/+vq5f/PxrH/ + sZZh/62MS//i287//f39//7+/v/9/f3//f39//7+/v/+//7////////////////////+//7////+/v3/ + 8vLx/9rVyP/Aq4H/qYM8/5trE/+dbhv/r45R/8y+n//r6OH/+fn4//7+/v////////////////////// + ///+///////+/////Pz8//b09P/f28//xbKM/6mFPv+bahL/nGwV/6uIQ//JuJT/5ODW//j39v/9/f3/ + /v/////////////////////////////////////////////////////////////////////////+//7/ + /f39//Py7//a0cH/vKV3/6R6MP+ZaAv/mGUB/5hlAf+ZZgD/mmYB/5pmAf+ZZgD/mGYA/5hmAf+dbhT/ + vamD/9XU0//y8vL//////////////////f39zv7+/s7/////9/f3/9jY1/++rY3/nnEa/5hlAf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAP+ZZgD/mWYA/5lmAf+dbRD/uJ1q/+Le1v/7+vv/ + /v/////////////////////////+//7/+/v7//Hx7//Mv6H/tJlf/+bf0v/9/P3/9/b1/+nl3P/n49r/ + 8vLx//z8/P/+//7////////////////////////////9/v7/9/f4/+vo4//XzLX/tJhf/55yIP+aaA// + pXwv/8Gqff/b08P/8/Lv//v7/P/+/v7///////////////////7//////////////v7+//n6+v/t7Oj/ + 1cy2/7mfa/+hdSb/mWcO/6B0Jf+5nmj/1s22/+3r6P/5+vr//v7+//////////////////////////// + /////////////////////////////////////////////////v7+//n4+P/n49z/zL6i/7GQU/+fcRn/ + mmYF/5lmAf+ZZgH/mWYB/5lmAP+YZgD/mWcB/5poB/+uj1X/zcrD/+rr7P/+/v7////////////9/f3O + /v3+zv7+/v/w8fD/1NLN/7OXYv+baQr/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYB/5lmAP+ZZQD/mmcF/6yIQv/d1cP/+Pj4//7+/v/////////////////////////////////+/v// + +/v7/+fk2P/UzLX/7+7q//r6+//j3dH/u6Fs/7SZYf/QxKr/6unj//j5+P/+/v7///////7////+//// + ///////+///+//7//P39//b29f/f2s3/w7GI/6eDOv+baxL/nW8Y/66OTf/Ov6H/5uTc//j3+P/+/v7/ + /v/////+//////7///////7////+/////v7+//39/f/39/b/5ODW/8Oxjf+ohUD/m2sT/5trEv+ohD3/ + xbKN/97b0P/z8/L//P38//3//v////////7///////////////////////////////////////////// + /////////////////v7+//v7+//z8u//3tjJ/8KthP+mfDD/mWcF/5hmAf+ZZgH/mWYB/5lmAP+ZZgH/ + mWUC/6R8MP/HvKn/39/f//v7+/////////////39/c7+/v3O/f39/+Xl5f/Mw7f/qIM8/5lmA/+aZgD/ + mWYA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mWYA/5lmAv+idSH/ybeU//Px7//+/v7/ + //////////////////////////////////////7////+/v7/+Pn4//b29P/7/fz/+fr6/9fOuf+ogjn/ + m2sS/6eANv/Aq4D/3tjL//Py8f/7+/v///7//////////////////////////////v7+//n5+v/s6uX/ + 0Mex/7icZv+gcyL/mmgP/6R7L/+9pnn/2dTE//Hx7//8/fz//v/+///////////////+///////+//// + /v////7+/v/6+vr/6enl/9LKtP+8pHH/o3or/5lnDv+hdCP/tJhh/9LHsP/s6uT/+vr6//7+/v////7/ + //7+/////////////////////////////////////////////////////////////v////7+/v/5+fn/ + 4t/Z/7acav+baw3/mWYA/5lnAP+ZZgH/mGYB/5hmAf+ZZgH/n3AX/72qh//T1NL/8vLz//////////// + /f39zv7+/s75+fn/4d/g/8Gzl/+fdB7/mWYB/5lmAP+ZZgH/mmYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5lmAf+ZZgH/nGsO/7ebZP/l4dj/+/v7//////////////////////////////////////////// + /v/+//7////+///////+//7////8/P3/6ujf/8q6mv+wj1D/nW4Z/59xH/+zlVv/zsKn/+bk3v/39/j/ + /v7+/////////////////////////////v/+//z8/P/19fT/4t/T/8azjP+phDz/m2oS/51vGv+uj1D/ + zsKk/+zq4//4+Pj//v7+/////v/+//////////7////+/////v////7////8/f3/9vX1/+rn3v/Lupr/ + rYpJ/5xtF/+bahT/qII8/8Owh//m4tb/9fTz//v8/P/+//////////////////////////////////// + //////////////////////////////////////n5+P/b1cf/rYxM/5loB/+ZZQD/mGYA/5lmAP+ZZgD/ + mGYA/5lmAP+aaAj/tJhk/9PQy//t7e3////////////9/f3O/f39zvHx8v/V09H/t6B0/5trDf+ZZgD/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+aZgH/mWYB/5pnBf+qhDv/2M64//b19f/+/v7/ + //////////////////7///7+///+/v7//v7+//////////////////////////7///////7+/v/6+/v/ + 8vHw/9zVxf+7o3L/pHou/5tqFf+kfTL/vKZ5/9rTxP/09PL//P38//7//////////v/////////+//// + /v////3+/v/5+/r/8e/q/9LHsP+ymF//oHQi/5pqEf+mfjP/v6l8/93Wx//x8O//+/z8///+//////// + /v/+///////////////////////+/v7/+/v7/+7t6v/Xz7z/uaFv/6J6K/+aaA7/oHMe/7idY//Qxaz/ + 5+bh//j5+P/9/v7///////////////////////////////////////////////////////7////9/f3/ + 7erk/8Gqfv+ecBf/mWYB/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWYA/5lmA/+qhkL/zsi7/+rq6v/+/f7/ + //////39/c79/fzO7u7v/9LOx/+tj1L/mWcF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgL/n3Md/8KviP/w7ur//v7+//////////////////7+/v/49/f/8vDs/+7r5P/39/T/ + /v7+/////////////v/+//////////////////7////+/v7/+Pf3/+nl3P/Ku5z/rIpM/5xuGv+dbxn/ + r49R/9DDpP/p59//+Pn4//3+/v/////////////////+/////v////7////9/f7/9PPz/9/b0f/FtZD/ + rIpG/5trFv+dbxv/sJFR/8q9nv/n5d//9/f3//7+/v////////////////////////////////////// + /f39//b29f/j4Nj/ybuc/62LS/+dbRf/mmoR/6aBOf/ArIT/4dzR//n5+P////////////////////// + /////////////////////////////////f7+//T08//VyK//p38w/5lnA/+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+ZZgH/mWUC/6J3J//DuaP/4uLj//z7/P/+/////f39zvz8+87r6+v/zca3/6V/NP+ZZgL/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5tpDP+0ll3/4dzR//r6+v////// + ////////////////+fn4/9zYyv/Es4v/vqZ2/93Uwv/6+fn////////+//////7///////7////+//// + /v////7////+//7/+/z8/+/u7P/Z0sL/u6R3/6N6Lv+baxX/pXwy/7+pfv/b1MX/8fDu//v8/P/+/v// + /////////v/+/////v////////////7/+vn5//Du6v/Z0Lv/tptl/6F2JP+ZaA7/o3ot/7yneP/a08P/ + 9PTy//z8/P/+/v7//////////////////////////////////f7+//v7+//w7+z/2dLB/72meP+jezD/ + mWgQ/6B0Jf/Es4z/8O/r//7+/v/////////////////////////////////////////////////3+Pj/ + 29fK/7KTV/+caQr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQD/nG0V/7yphv/W1dT/ + 9vb2///////9/f3O+vj6zt/f3v/Etp3/oHMf/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZwT/p382/8/Erf/09PP//v7+///////////////////////29vX/0s27/7ijdP+mgTn/ + yraR//X19P/+/////f39//r5+f/6+vr//P39//7//////////v///////////////f7+//f49//m5N7/ + zMCk/6+RVf+ecB7/nnAd/66NTf/Ov6H/5+Tc//j49//+/v7////////////9/////v/////////+/v7/ + /v7+//b29f/j39T/ybaS/6mEPv+caxP/nG8Z/7GSVf/Sxqr/5uTd//b29v/+/f7///////////////// + ///////////+/////v////3+/v/5+fj/5+Td/87Bov+wkVP/q4ZB/8/Bof/09PH///////////////// + /////////////////////////////////f39/+ro5P+9qX//nnEY/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+bagz/tZxs/9PSz//y8/P///////39/c739/jO3dzb/7yogf+dbBH/ + mWUA/5llAP+aZgH/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/55xGv+/rIL/6ujk//z9/f////// + //////////////////////z8/P/x8O7/3NfK/7KVWv/Dr4P/8/Lw//7+/f/08/H/3NTD/9nRvf/r6eT/ + +vr6//79/v/+//7///////////////////7///z8/P/y8vD/39jJ/7+pfv+lfTL/nGsT/6R7Lf+6o3L/ + 29PB/+/v7P/7+/v///7//////////////////////////////v7+//v7+//u7On/1sy4/7mfa/+gdSb/ + m2oS/6V+Mf+5onT/1s68//Hw7f/9/f3////////////////////////////+/////v////7+/v/7+/z/ + 9PPx/93Xyv/b077/8O3n//z8/P////////////////////////////////////////////7+/v/39/b/ + 1cmy/6Z/NP+ZZgT/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+YZgD/mWYB/5lnBf+tjVH/ + zsvE/+nq6v/+/v7//f39zvLz887a2db/tZpo/5poCf+ZZQD/mWUA/5pmAf+aZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAP+bagv/tJZb/9/azv/4+fn//v////////////////////////////////////39/f/v7en/ + ybua/9PJsf/39/X/+/v6/+LbzP+0lVf/qoZB/8W0j//j39X/9PTy//z9/f/+/v////////////////// + /v7+//39/f/7+vr/6ebh/9LGrP+zllz/nnIf/5xuHP+ui03/yLmZ/+Lf1//29vX//v7+///////+//// + /v/////////+/////v////39/f/29vX/5N/V/8q4lP+qhT//m2sS/51tFv+sikj/zb6f/+rn4P/39/f/ + /f79//7///////////////7////////////////////+/v7/+/v7//z7+v/9/f3///////////////// + ////////////////////////////////+fr6/+Le0/+2mGD/nGoL/5llAf+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+aZQD/mWUC/6eCOv/Jw7T/4eHh//v8/P/9/f3O6+vrztLQyf+tjlP/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYE/6d+Mv/Uya//9/f1//3+/v////// + //////////////////////////////////////n4+P/p6OL/8O/s//z8/P/5+fj/2M61/6qEPP+aaRP/ + oXYn/7abZf/Uy7P/8O/q//v7+v/+//7////////////+//7////////////8/Pz/9fXz/9/azf/Esov/ + p4E7/5pqFv+gdyn/tp1p/9jOuv/z8u7/+/v7//3+///+///////////////////////////+///7+/v/ + 8vDr/9TKtP+2m2X/onUl/5poEP+kei7/u6V2/9nSwf/v7uv/+vv7//////////7///////////////// + //////////////////////////////////////////////////////////////////////39/f/r6ub/ + wa6H/6BzHP+aZgH/mWYB/5pmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + o3kr/8S5pf/g4OD/+vr6//39/c7i4uLOy8W6/6mEP/+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5pmAf+ecBj/wauB/+vp5P/9/f3//v7////+///+//////////////////////////////////// + //////z8/P/+/v3////+//v7+v/s6eH/zsCi/7CTW/+eciD/m2sT/6qGPv/GtY7/5ODU//b29f/8/P3/ + /v////7///////////////7////9/v7/+fn5/+3s5//Owqr/sJNZ/55xHf+bbBb/rIlG/8q6mP/m4tn/ + 9vb1//z9/f/+/////v/////////////////////////+/v7/9fb0/+Pe1P/Fs5D/qodD/5trFP+cbhn/ + rI1M/8m6mf/k4dr/9vb2//7+/v///////v////////////////////////////////////////////// + ///////////////////////////+/v7/9PTy/9HIsv+ogjn/mWcF/5lmAP+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+fch7/wLKY/+Dg4f/6+vr//f39zuDe4M7Iv67/ + pXww/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZgD/m2kK/7CPUv/d18r/+fj5//7////+/v// + /////////////////v7+//7+/v////////////7////+/////v7///7//////v///v7+//z9/P/y8vH/ + 3NjN/7+th/+mgjz/m2wW/6F1Jv+5n2r/1Mmz/+no4//5+vn//f7+//7////////////////////+/v// + /fz9//Hy8f/d2M3/v6yD/6eBOf+caxf/oncq/7uicf/UzLf/7u7q//r7+//+/v////////////////// + ///////////+/v7/+vn5/+3r5//Yzrj/uZ9p/6N3J/+baA7/o3kq/7mgb//Y0L7/8/Lv//v8/P/+/v7/ + ///+//////////////////////////////////////////////////////////////////v8+//j3tX/ + s5hg/5trDf+ZZQH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5xtE/+9q4f/2trZ//b29f/9/f3O29vbzsa6o/+hdiT/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mmYA/5lmA/+jeiz/yruh//Dv7f/9/v3//////////////////f39//n5+P/29fT/9/b1//z8/P/+//7/ + /v/////////+/////v////7+///+/////v////3+/v/4+fj/6ujk/9HIs/+4n2z/ongr/5xsF/+ogjr/ + vqqB/93Yy//29fT//f39//7////////////////+///+/////f3+//n4+f/q6OT/08ix/7aaZP+gdSX/ + nW0Y/6mFQP/HtpH/4t7S//f39f/9/f3///////////////////////7////+/v7//f79//f29f/o5Nz/ + y7mY/6qGQv+caxX/nWwX/7COT//Nv5//5+Tc//b39v/9/f3///////////////////////////////// + ///////////////////////////9/v7/8O/t/8a1kv+gdB//mWUC/5hmAP+ZZgD/mWYA/5lmAP+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5pmAP+aZgD/mWUA/5pmAf+aZgH/nGsO/7mjef/V1NP/8vLy//39/c7Z2dnO + xbea/59yGv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYA/5hmAP+ZZgH/nm8W/76nef/p5eD//Pz8//////////// + //////7+/v/y8e//2tLD/829nv/Tx63/7+3q//z9/f/+//////////7////+/////v7///7////+//// + //////7//v/8/Pz/9fb0/+jk2v/GtZP/qYVB/5xrFf+ecR3/s5db/9XKsf/t6uT/+fr5//3+/v////// + /v////7////+/////v7+//z9/f/19fT/5uHV/8Syi/+qhT//nGwV/6B1I/+1m2T/1cu0/+zq5v/5+vn/ + /f7+//////////////////////////7//v7+//v8/P/u7On/08q1/7eea/+jeCv/m2kS/6N5K/+9pXX/ + 19C///Lx7//+/v7////////////////////////////////////+/////////////v/+//f29v/Yz73/ + qoZA/5lnBf+ZZQH/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmYA/5pmAP+ZZQD/ + mmYB/5pmAP+baQv/tZ1u/8/Pzf/w8PD//f39ztPU0s7CspL/nW4U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+ZZgD/ + mWYB/5toCP+vjUz/4NjK//v6+v///////////////////////v7+/+nn4f+/ror/qopF/62NTP/e2Mr/ + +/v8//7////+/v7//P39//3+/v///////////////////////v////////////7//Pz8/+3s6f/UzLn/ + tpxq/6B2KP+baxb/qIE7/8OwiP/d2Mr/8vLx//z8/P/+/v7///////7//////////////////v/8/Pv/ + 7ezn/9fOuv+2nWj/oXgq/5tsGP+ogj3/wq+J/9zYzP/y8vL//Pz8///+/////////////////v/+//// + /v////38/P/09PP/5OHY/8y9m/+rikX/nGwU/51uGP+4nmn/5uTb//39/f////////////////////// + //////////////7////////+///8/Pv/6OPb/7edaf+bbA//mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnCP+ylmP/1NLP//Pz8//9/f3O + 0tLRzr2qh/+dbRL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZgD/mGYA/5lmAP+ZZgL/pHoq/8y9oP/z8e///v7+//////////// + ////////////////9fTx/9/az//ArYb/qYdE/9nPuv/6+vr//f79//P08f/m5Nv/7+7r//r6+//+/v7/ + ///////////+//////////7////+//7//f39//X19f/i39b/yLma/6qJSf+cbRn/n3If/7GSVv/Qw6n/ + 6Obh//n5+f/+/v7//v/+//////////////7////////9/f3/9fX1/+Tf1//LvJv/rIlI/51sGP+fch// + sJNa/87Dq//o5+D/+fn5//7+/v/////////////+//////////////3+/v/8/Pz/8vHu/9jPvP+8pHP/ + qoU//8Swhf/w7un//v7+///////////////////////////////////////+//7//f7+/+7u6//JuJn/ + onck/5llAv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmcG/7CRWf/Qzsf/8PDw//39/c7Pz83Ou6iB/51tEf+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgH/ + mGUB/5xtEv+6onL/6OTe//v7+//+///////////////////////////////+/v7/+Pj4/9jQvf+8p3j/ + 4t3O//z8/P/5+vn/3dbD/7ujcP/GtpT/4t7W//f39//9/v7////////////+//////////7///////// + /v7+//r7+//v7uz/2dG+/7qhcP+ieSv/nGsU/6V+NP+/qn//4drN//Lx8P/7+/v//v7///7//v////// + ///////////+/v7//Pz7//Hv7P/c0r7/uaBs/6F2Jf+baxP/p4A3/7+sg//i3dH/8/Py//z8/f/+/v// + /v////7////////////9///+/v/8/v7/+Pj3/+nl3f/Y0b3/5OHY//v6+v////////////////////// + //////////////////////7////5+fn/3NTC/6uIQ/+aZwb/mWYA/5pmAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/ro9U/87LxP/t7e3/ + /Pz8zszJyM65pX3/nGwQ/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWcA/5hmAf+aaAb/rYpG/9vTw//39/b//v7+//////////// + ///////////////////////////9/f3/7u3o/+De0v/y8u///f3+//Py8P/It5L/oHUk/6F3KP+5oG// + 2dC9/+7u6//8+/z///////7//////////////////v/+/////v7+//39/f/5+fj/5uLb/83BpP+uj1L/ + nW8c/59xIf+zllv/zL+k/+Xi3f/3+Pf//v7+/////////////v////////////7//f3+//j4+P/k4Nf/ + xLWT/6uJSf+dbhv/n3Ik/7SXYP/QxKz/7ezo//j4+P/+//7///////////////7//v/+//7////+//// + /Pz8//r6+f/7+/v//v7///////////////////////////////////7////+/////P38/+rn4P++pXT/ + nWwR/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/zcrD//Dw8P/9/f3Oz87Mzrumff+aaw//mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + mGYC/6N4Jf/Kupn/8/Lv//7+/v/////////////////////////////////////////////////9/f3/ + +/v7//39/f///v//9vX1/9fOvP+0mGD/n3Ih/5xtGf+riEb/yLiX/+fj2//29fX//P38//7///////// + /v////7////+///////////////7/Pz/8/Px/9vUxf/Aqn//pHwy/5trFP+jey//uqR1/9vUw//19PH/ + /Pz8//7//////////////////////////v7+//n6+v/t7en/2NG//76meP+jeS7/m2sT/6eAN//CrYT/ + 3dbH//X08v/8/Pz///7+///+///+//7//v////7///////////////////////////////////////// + /////////////////v////7+/v/y8e//z8Ci/6R6KP+ZZQL/mWYB/5lmAf+ZZgD/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62MTf/OycP/ + 7/Dw//z9/c7OzczOvaiB/5trD/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/mWYA/5lmAf+cbBD/u6Bt/+nk3f/9/fz///////////////// + //////7///////////7////////////////////////////////////////9/f3/9fTz/97azv/EsIr/ + p4M8/5trFv+idif/uZ1q/9TKtf/s6ub/+vr6//7////+/////v/////////////////////////+/v7/ + +fn4/+vp4v/KvJ7/ro5P/51vGv+dbhn/sJBR/87Ao//p5d//9/j3//3+/f////////////////////// + /v/+//39/f/3+Pf/6eXe/8q7m/+vj07/nW4a/59wHf+xkVb/zsGm/+jm3//39/f//f7+//7//v/+//// + /////////////////////////////////////////////////////////////v//9/j3/9jQwP+ujEv/ + m2gI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgX/rYxO/9DMxf/s7O3/+/z8zsvLyc66p4H/nGwR/5hmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5plAP+aZgD/ + mWcF/6qFQf/Wzbr/9/f2///////////////////////+/v7/+/v8//v7+v/8/Pz//v7+//7///////// + //////////////////////7////+/f3/+fn5/+zq5v/TybP/t5xk/59yH/+caxX/qoVA/8Szjv/n4tn/ + +Pf3//3+/f/+//7//v/////////////////////////+/////P38//Dv7v/b08b/u6V5/6R8Mv+aaxX/ + pHsx/76ne//Y0sH/8fDu//v7/P/+/v7//v/+//7////+//7////+/////v/8/Pz/8fDt/93Vxv+8pHX/ + pnsv/5tqFv+jfDP/vKZ6/9jSw//w8O7/+vv7//7+/v/+//////////////////////////////////// + //////////////////////z9/P/o5d//uqJz/51uFP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBf+tjVD/ + zsrD/+3t7f/8/PzOz8/Ozryqhv+dbhP/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+hdiH/xbOQ/+7t6v/8/f3///////////////// + /v7+//Tz8P/g2s3/2M66/+fj2v/7+/r////////////////////////////+/////v/+///////+//7/ + /fz9//f39v/k4NT/wq+J/6eCPv+baxf/oHQn/7uib//VzLf/8fDs//r6+v/9/v7///////////////// + /////////////////f7+//j4+P/o5eD/zsGn/7CSWP+dcR//nW4a/62MTP/MvJ3/5uLZ//j59//+/v7/ + /v/////////+/v///v///////v/+/v7/+Pj3/+nl3P/Pv6H/sJBT/51wHP+cbxn/rY1P/8m8nv/l49v/ + +fn5//7////////////////////////////////////////////////////+/v7/9vXz/9LDp/+keiv/ + mWYD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcG/66QV//MysT/7+/v//39/c7W1tbOwbCO/51uFP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + nGsO/7qeaP/m4dj/+vv7//7////////////////////8/Pz/4tzO/7Wdav+ohUP/ybqY//X18v////// + /////////////////////////////////////////v///////v/+//r7+v/s6ub/0Mey/7OaZv+gdSj/ + nG0Y/6mFPv/HtY//39nN//Hx8P/9/P3//////////////////////////////////v7+//v8/P/z8vD/ + 4dvO/76qf/+kfDL/m2sU/6J5K/+8pHP/3dbF//Du6//6+vv//v7+///////////////////////+//// + /Pz8//Py7//h2sr/vKh6/6N8Lv+baxT/o3wz/8e4mP/x8O3////+//////////////////////////// + //////////////////////n5+P/e18n/spJU/5ppCf+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwf/ + spVg/87Myf/w7/D//f39ztHS087DtZj/n3IZ/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+aZgH/mWYB/5lmBf+phD3/1sy4//n49//+//////////////////// + //////z8/P/n5Nv/xbeY/6qKSf+9pXX/7+3p//7+/v////7//v////////////////////////////// + /v7+/////////////v////39/f/y8vL/4tzT/8i4lf+tikf/nG0W/59yIf+xlFz/zsKp/+zq5P/7+vr/ + /v7+/////////////////////////////v////7+///6+/r/6Obg/8q+pP+wkln/n3Mi/55vHf+vjU7/ + xreW/+Hd1f/29vX//v7+/////v/+/////////////////////v/+//r6+f/n5N7/y76i/7GTWf+qhkH/ + 0MKk//X18v/////////////////////////////////////////////////8/Pz/6ebh/76off+ebxf/ + mWYB/5pmAf+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCf+2nGv/1dLR//Lx8v/9/f3O09PUzsO3oP+hdiT/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/ + oXMe/8m2kf/u7en//f39/////////////////////////////v7+//r6+v/q6OP/v6p+/8Ougf/y8Ov/ + /v39//v7+v/39/T/+vr5//39/f/+//////////////////////////////////////////39/v/7+vr/ + 8vHt/9rRv/+3n23/oncr/5tpFf+lfjf/xK+I/97YzP/08/L/+/z8//7//v///////v////7////+//// + ///////+///8/Pz/8fDv/+Hazv/Gs43/poA6/5trFf+hdyf/tpxn/9nQvP/y8O3/+/v7//3//v////// + /////////////////v7+//v7+//x8O7/4tzQ/9zTvv/u7OX//P39//////////////////////////// + /////////v///////v7///Tz8v/Mv6b/pX0x/5lmBP+ZZgH/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kL/7qjd//b2tn/9fT1//39/c7b29vOxryp/6N6Lf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYC/5xrDP+2mWL/5N/U//r7+v/+//7////+/////v////// + /////////////////v7+//b29f/e18b/4tzM//n49v/7+/r/6OXc/9HEo//Z0bn/7erm//r7+v/+/v7/ + /v////////////////7//////////////v7///7+///9/v7/9/f3/+Xi2f/Iupv/rIpK/51uGf+fcR7/ + sJFV/87Cp//m5d7/+Pj4//3+/f/+//7//////////////////v/+///////+/f7/+/v6/+3r5f/OxKv/ + spVc/55xHv+dbBb/rIhF/8i4lv/m49r/9fX1//39/f/+//////////////////////////7+/v/8+/v/ + +vr6//z8/P/+/////v/////////////////////////////////////////6+fr/4tvP/7KSVv+aaQr/ + mWYB/5lmAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/vquF/+Hh3//4+Pj//f39zuHh4c7Mxbj/ + p4E7/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+aZgT/ + qIE3/9fMtv/29vT//f7+/////v///////////////////////////////////////P39//j49//4+ff/ + /v79//r59//Sxqr/poE1/6qEO//EsIj/4dzP//Lx7//7+/z//v7///////////////////////////// + ///////////+/v7//Pv7/+7u6//a08H/u6Nx/6R7LP+bahX/pHwz/72ofP/c1cX/8/Hv//39/f/+//7/ + /v////////////////////7////+/////P39//Pz8v/e2c3/v62F/6iDPv+caxf/oXcq/7mgbP/VzLb/ + 7u7q//r6+v////////////////////////////7//v/+//7//v/+///////+//////////////////// + ///////////+/////f3+/+7r5//Bq4L/n3EZ/5lmAf+ZZgH/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/59xG//AsJP/4uLh//r7+v/9/f3O3t7gzszHwP+si0z/mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mGYB/59xGP/Dr4b/7uzo//39/f///////v////7///////// + /////////////////////////////////v////7+/v///v7/+vn4/9fNt/+vj1L/n3Ac/59yIv+ylFv/ + zMCm/+jl4P/6+fn//v7+//7///////////////////////////////7////+//7//f39//n5+f/o5d7/ + 0MOo/6+PU/+dbRz/nW8e/62NUf/OwKT/7Orj//f49//+/v3////////////////////+//7////+//// + /f3+//n5+f/r6uX/1Mqz/7abZ/+gdCT/m2wV/6uGQf/Fs47/4t3S//j39v/9/f3///////////////// + /v////7////+//////////////////////////////////////////3+/v/z8/L/1Miw/6eANP+ZZgT/ + mWYA/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ongn/8K3ov/h4eH//Pz8//39/c7o6OnO + 08/L/7CVX/+aaAj/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmAP+ZZQD/mWUB/5llAf+baQr/ + sZJW/+DZzf/7+vr///////7//////v7//v/+//7//v/9/f7//v7+//3+/v/+/////v7///////////// + ///////////9/f3/8fDt/97XyP++p3n/ongt/5tqFf+jfDH/val9/+Lczv/y8vD/+/z8//3//v////// + ///////+/////////////////////////v/+//z8/P/z8vD/19HB/7qkdv+lfTL/m2sT/6V8L/++qHn/ + 2NG//+7t6//7+/v////+/////v/+//7///////7////+//////////79/v/49/X/5eDV/8Szjf+riEP/ + nGwW/6B0I/+4nGf/1sy2/+vr5v/5+fn//v7+//////////////////////////////////7///////// + ////////////////+fn4/93YzP+xlFr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+YZgD/ + mGYA/5lmAv+mgTj/xsGy/+Dh4f/9/f3//f39zvb19c7d29j/uaJ3/5xqD/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+YZwD/mGYA/5llAP+ZZQH/mGcD/6Z+MP/RxKv/8/Px//7+/v/////////////////7/Pz/ + 8vLv/+vm4P/s6OP/9fX0//3+/v/+///////////////////////////////+/v7/+vn4/+bj2//Kupv/ + roxM/51uGP+dcRz/spRY/83ApP/p5t//9vf2//3+/v/+//////////////////////////////////// + //////39/f/19fb/5uTd/9LGqf+yk1b/nXAc/5xuGv+rikv/ybqb/+rn4P/5+Pj//v7+/////v////7/ + /v/////////////////////////7+/v/7+7q/9jQu/+3nWr/pHgt/51sGf+ogz7/wa2H/97Zz//39/f/ + ///////////////////////////////////////////+//////////7+/f/u7Of/wa2H/59zHP+ZZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgH/mWcE/62NTv/Rzcb/5ujo//7+/v/9/f3O + 9vb2ztjZ2P++r5D/n3Ea/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmYB/5llAf+ecBj/ + v6l+/+no4v/8/f3///////7///////////7///Pz8P/Pxqz/uJ5q/72lef/h3NH//Pz8//////////// + //////////////////////7////+/v7/+/r7//Lw7f/Z0cD/u6Z3/6N7MP+baxX/pHwy/7yld//b1cX/ + 8fDv//z7/P///v///v///////////////////////////////v7///7+/v/7/Pz/9vb1/97Zyv++qX7/ + pX43/5ppFv+kejD/vqd5/9jRv//y8e//+vr6//7//v/////////////////////////////////9/f3/ + 9fX0/+bi2f/Lupr/rYpJ/5xtF/+gdiX/x7eS//T08P////////////////////////////////////7/ + //////7////+/v7/9/b2/9rQuv+phDv/mWcE/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mGYA/5lmAf+aaQr/tJpp/9XU0f/19vX//v////39/c739vfO2tra/8W7pf+jeir/mWUB/5llAP+aZgH/ + mmYB/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mmkI/7GSU//h2s//+fn5//7////////////////////+//7/ + 8vHu/87Cp/+ukVf/poE5/9LIsf/4+Pj///////////////////////////////////////7//////v// + /v7+//f39//p5uD/zb+j/7CRVv+dcB//nG4b/6+OT//Ju5z/6OTd//j39//9/f3///////////////// + ///////////+///////////////+/v7/+fn5/+ro4v/Owqj/sZRZ/59yH/+dbhf/rIpH/8m5mP/k39b/ + +Pj3//7+/v////////////////////////////7////+/v7/+/z8//Hw7f/c07//uaBu/7GSUv/SyK3/ + 9/j2//7//////////////////////////////////////////v////z8/P/l4dj/tplk/5xrDv+YZgD/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYA/51tFP+9q4j/1dXV//j4+P////// + /f39zvv7+87n5+f/zMe7/6mGQv+ZZgT/mWYA/5pmAf+aZgH/mWYB/5lmAP+ZZQD/mWYB/5hmA/+mfS3/ + 0cKn//X08v/+/v7//v////////////////////3//v/7+vr/7+7q/83Cqv+ohD7/yLeX//T08//+/v7/ + +/v6//b18//39/b//f39/////////////v////7+/v/////////+//z8/P/z8/D/3dfJ/8Csgf+mgDX/ + mmsT/6J5K/+7pHP/2NC+/+3t6f/6+vr///////////////////////////////////////////////// + /Pz8//Hy8P/g2s3/wK2E/6mEPP+baxb/oXcp/7ifbf/Xzrv/8O/r//z8/P////////////////////// + ///////////+/v///v7+//j49//o5d7/5N7S/+/u6v/8/f3///////////////////////////////// + ///////////9/f3/7+3q/8m4lP+hdCD/mmYC/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5lmAP+YZQH/oXYk/8a7pP/f39//+vr6//7////8/f3O/f39zu/w8P/Pzcn/spdi/5ppCf+ZZgD/ + mmYA/5lmAf+YZgH/mWYB/5llAf+ZZQH/nG4T/7+neP/t6eP//f39//7+/v////////////////////// + /v/////+///8/f3/5d/U/7mfbf/NvqP/9vXz//v7+//o5dv/zcCf/9PJs//p5+L/+fn5//7+/v////// + //7///////////////////7////5+Pj/7evl/8/Eqf+zl13/oHIh/5tsGf+riUn/xbaU/+Tg1//5+Pj/ + /f7+//7+//////////////////////7//////////////////v7+//r7+v/s6+b/1su1/7OXYf+gdCb/ + nGwY/6mGQ//Ht5T/4+DW//T19P/8/Pz//v/+/////////////v////7+//////7///////39/f/9/f3/ + /v7+/////////////////////////////////////////////v7+//X19P/Uyrf/qYU//5lnBv+aZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgH/mWYA/5lmBP+ohUD/zce7/+zs7P/+/v7/ + //////39/c79/f3O8fPy/9nZ2P++qoX/nW4U/5llAf+ZZgD/mWYB/5lmAf+aZgH/mWYA/5ppBv+sikn/ + 2tLC//j39/////////////////////////////////////////////7+/v/z8fD/4tzR/+jk3//7+vr/ + 9fXz/82+nf+kfC3/poA2/7+pf//h287/9PTy//z8/P/+//////////////////////////7+/v/9/f3/ + 8/Px/+Pf0//BrYX/pX84/5trFv+hdib/u6Fu/93Vwv/w7uz/+/z8//7+/v///////////////v////// + //////////////////////39/f/08/L/4t3S/8Szjf+phD3/m2sV/6B2JP+1mmX/0Mex/+no4//6+/r/ + /v/+//////////////7////////+//////////////////////////////////////////////////// + ///////////8/Pv/4+DY/7edaf+caw//mWUB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mmgI/7KYY//T0cz/8PDw/////////////f39zv3+/s73+fj/4uLi/8e8qP+ieiz/ + mGYC/5lmAf+ZZgH/mGYA/5lmAP+ZZgP/o3oo/8m7nP/x8O7//v7+//////////////////////////// + //////////////////////39/f/8+/z/+/z8//7+///08/H/y7ua/6V8MP+ZZw7/nnAe/7OVW//Nwqj/ + 5+bg//f39//9/f7////////////////////////////+/v7/+fr6/+nn4v/PxKv/sZRb/59yH/+dbhf/ + rIpH/8m4lf/k39b/9fX0//3+/v/+//7////+//////////////////////////////////7+/v/6+/r/ + 7Ovn/9nQuv+1mmX/oHQj/5xrF/+mgj3/xLOP/+Xi2P/29vT//v3+/////////v////////////////// + /////////////////////////////////////////////////f3+//Lw7v/KuZf/oncj/5llAv+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5hmAf+dbxb/vquJ/97e3f/4+Pj/ + ///////////9/f3O/f7+zvz9/f/k5OX/zMe+/62MTv+ZZwb/mWYB/5lmAf+YZgD/mGUB/5xtEv++p3f/ + 6+jh//z8/P/////////////////////////////////////////////////////////////////+//// + /v////v7+v/p5d7/zL6g/7CRVP+ecR3/mmkS/6R+NP+7qHv/2NPF//Dv7v/9/Pz///////////////// + ///////////+/v///Pz8//Pz8f/c2Mv/wq+I/6mEP/+cbBj/onYo/7ecaP/Xz7v/7ezn//v7+//+//7/ + //////////////////////////////////////7//v/9/f3/+Pf3/+He1P/Ds47/qIZC/5trGP+idSb/ + tptj/9bLs//u7Oj/+fn5//7+/v/+//////////////////////////////////////////////////// + ///////////29/f/2NC9/62JQ/+ZZwb/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgH/mWYB/6R8Lv/Jv63/4ODh//v7+/////////////39/c7+/v7O/v////Dx8f/T0tD/ + uKJ3/5xsEf+YZgH/mWYA/5lmAf+aZwT/qYY+/9fQv//4+Pn//v////////////////////////////// + //////////////////////////////////////7////+/////v////v7/P/w8O7/3djI/8Gtgf+ogjf/ + m2oP/51vGf+tj1D/ybye/+rm3//6+vn//v7+/////////////////////////////v79//j5+f/u7Oj/ + 2c+7/7ecaP+gdCb/nGwY/6qGQf/EsYr/5uDV//b19P/8/Pz//v////////////////////////////// + ///////////+/v7/+/v6/+3r5//RyrT/t51q/6F3J/+baxP/qoQ8/8Kuhv/g283/9fXz//39/v////// + /////////////////////////////////////////////////Pz8/+bj2/+5oG7/nGwR/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZwb/rpBU/9LOx//r6+v/ + /f39/////////////f39zv7+/s7/////+fn6/93d3v/Dt57/ongn/5lmAv+aZgH/mWYB/5pnBf+ri0n/ + 1c6///Xz8v/8+/z//v7///7////+/////v////////////////////////////////////////////// + //////////////////////3+/v/5+fj/6+nj/9bLsf+0l1z/n3Ee/5loD/+key//vqh6/9zVxP/y8u// + +vv7//7///////////7///////////7///7///7+/v/4+Pb/4t7S/8e2kv+phUD/nGwV/6B0If+2mmP/ + 0sav/+no4//4+fj///7+/////v////7///////7//////////////////////////f39//T09P/k4Nf/ + y7uZ/62KSP+cbBj/nnAh/7acaP/h3M//+/v7//////////////////////////////////7///////// + //////7+/f/x8e//yrqc/6N4J/+ZZgP/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5xuFP+8qoX/29rY//X19f/////////////////9/f3O/v7+zv/////9/f3/ + 6enq/9HLwP+tjEz/mmYF/5lmAf+ZZgH/mWUB/51wFv+zlFn/0MOo/+rn4f/4+Pj//f7+//3+//////// + ///////////////////////////////////////////////////////////////////////////9/f3/ + 9/b0/9/azf/Cr4b/qII7/5tpE/+dbhn/ro9R/83Ao//k4tr/+Pj4//z9/f/+//////////////////// + /v////7+/v/6+vr/7+7p/9TLtv+6oW7/oXYn/5trFv+mgTv/vqyF/+Dbz//29fP//Pz8/////v////// + /////////////////////////////////v/+//z8+//y8u//2NC//7mhcP+jezP/ro1P/+Pdzf/9/Pz/ + /////////////////////////////////v////7////+////+fn4/9vTw/+ujEv/mmcI/5hmAf+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQL/pH0y/8m/rf/k4+T/ + +Pn5//////////////////39/c7+/v7O//////7+/v/v7/D/1NTS/7mlfP+cbRT/mGYB/5lmAf+ZZgH/ + mGYC/5tpDf+nfjT/wKqA/9rTxf/x8fD//Pz8/////////v////////////////////////////////// + ///////////////////////////////////////////+/v7/+fn5/+zq5P/Tx6//tppi/590IP+aaQ// + onor/7qjcP/Y0b//7+3q//v7+//+/v7//////////////////////////v/8/f3/9vb2/+fk2//HtpT/ + q4hH/5xtGf+ecSD/tZde/9LGrf/s6uT/+vr5//3+/v////////////////////////////////////// + //////3+/f/29/b/5+Td/8/Eqf/Rxq3/7+7q//z+/v/+//////////////////////////////////// + //////z9/P/v6+T/vaR1/51tE/+ZZgH/mGYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poCv+xlmD/0c7H/+zs7P/+/v7//////////////////f39zv7+/s7///// + //////b29v/Z2dn/xbun/6V9Mf+YZQP/mGYB/5hmAf+ZZgH/mWUB/5lmBf+ecBn/sI9R/86/o//o49z/ + +Pn4//39/v////////////////////////////////////////////////////////////////////// + /////////////v///Pz9//X19f/j39P/xbWP/6yJRP+baxT/nG0W/6uJR//HtpX/4t7U//T08//9/f3/ + /v///////////////v////7////+////+/v7/+7t6v/Xzrv/u6Jw/6J4K/+cbBP/pn82/8Gug//c1sj/ + 8PDu//v8/P///////////////////////////////////////v////7////8/Pz/9vX0//X19P/7+/z/ + /v7+///////////////////////////////////////+/v7/8PDu/87Ao/+lfCz/mWYD/5lnAP+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/n3Me/8Cxk//a29r/ + +Pj4///////////////////////9/f3O/v7+zv///////////f39/+rq6v/Oy8X/s5hj/5tqC/+YZgH/ + mGYB/5lnAP+ZZgH/mGYB/5llAf+baQr/pHss/72kdf/c1MT/7+7r//v7+/////////////////////// + ///////////////////////////////////////////////////////////+/////v7+//v7+//w7uv/ + 1865/7mhb/+jeCn/mmgQ/6B2J/+1m2f/08q0/+zq5//6+/v//v/////////+/////v/+//7///////// + /P39//b29f/o5Nz/yryd/7GQUv+dbxv/nnEg/6+PVf/KvaH/6ebg//r6+v/+/v7///////////////// + /v/////////+/////f////////////////////////////7///////////////////////////////// + /v7+//b39//Z0sT/roxN/5toCP+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmBf+qiEb/0cvA/+bn5//8/fz///////////////////////39/c7+/v7O + /////////////v//9fX1/9jZ2f/DtJn/onYj/5hlAf+ZZgH/mWYB/5lmAf+ZZgH/mGYB/5hmAf+ZZgT/ + nm4Y/66NTv/JuJn/49/W//f49v/+/v7////////////+/////v////7//v////////////////////// + //////////////////////////////////////39/f/19fT/5uPZ/8q5lv+wjEf/nG0U/5prE/+phT7/ + xrSP/+fj2f/29vT//f39//7//v/+///////////////+/////v////z8/P/y8vD/4NnK/7uld/+jejD/ + m2kV/6N6MP/AqX3/3tfI//Lx7v/8/Pv//v7+//7+///+/v/////////+/v/+///////+//////////// + ///////////////////////////////////////////8/P3/6+jk/7+ne/+dbxX/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWUA/5pmAP+ZZQD/nm4U/7mlfv/V1NL/ + 8fHx//7+/v///////////////////////f39zv7+/s7////////////////8/Pz/4eLj/8rFvP+uj1L/ + mmgI/5lmAP+ZZgH/mWYB/5lmAf+ZZgH/mWUB/5llAf+YZQL/mmcJ/6N4KP+4n2z/3dTA//Px7v/7/Pv/ + /v/+///////+/////v/+//7///////////////////////////////////////////////////////// + //////7+/v/6/Pv/8fHu/97Vwv+6oW7/o3kq/5toEP+hdib/uZ5r/9bMt//v7en/+Pn5//3+/f////// + ///////////////////////////5+fj/5uTb/8u9n/+tjU//nm8a/59vGv+ujlD/zb2f/+bi2f/39/b/ + /v7+/////////////v////7///////////////////////////////////////////////////////// + /f7+//Pz8f/RxKr/pn8w/5hmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYA/5lmAP+ZZgD/mWYA/5pmBP+ogzz/y8S0/97f3//5+Pn////////////////////////////9/f3O + /v7+zv///////////////////v/w8PD/0dHP/7ysi/+fcx7/mGYB/5lmAf+ZZwH/mWYA/5lmAf+YZgH/ + mWYA/5lmAf+ZZgD/mWYD/5xtEv+ui0j/yrmX/+jk2//29vT//f39///////+//7////+//////////// + //////////////////////////////////////////////////////7////9/v7/+Pj2/+bi2f/KvJz/ + sJBS/55vG/+bahT/rIdD/8Szjf/c18v/8fLw//z9/f/+//////////////////////////7+///7/Pz/ + 8O/t/9vWx//BrIH/pnwy/51rF/+keS//uaN0/9jRwP/x8O3//P39//7//v/+//////////////////// + ///////////////////////////////////////+///5+vr/3NbJ/7CRU/+bagr/mGYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWcB/5lmAf+ZZgH/nG0S/7ijdv/V08// + 6Ojp//3+/v////////////////////////////39/c7+/v7O//////////////////////z8/P/m5ub/ + zsi+/62MT/+aZwj/mWYB/5lmAf+ZZgD/mWYB/5lmAf+YZgD/mGUB/5hmAP+ZZgD/mWUB/5lnCP+jeCn/ + u6Bv/9jNuf/w7uv/+/v6//7+//////////////////////////////////////////////////////// + //////////////////////////////7/+/v7//Dw7P/e18f/v6l6/6Z/MP+bag//nnIe/6+UWv/NxKr/ + 7evm//r6+f/+/v7////////////////////////////9/f3/+fn5/+vp4//Rxar/spNZ/51wHv+cbRr/ + q4pI/8m7mv/q5t7/9/b1//3+/v/+//////////////////////////////////////////////////// + /fz9/+zp5P+/qX//nnAY/5lmAf+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZwH/mWYB/5lmBP+ngTj/yL+u/+Df4P/29/f//v////////////////////////////// + /f39zv7+/s7///////////////////////////Ly8//X1tX/wLCP/6B0Iv+YZgP/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+aZQH/mWYB/5lmAP+ZZgD/mWYB/5llA/+caxH/rYhD/8ezj//j3tL/9fX1//z9/f////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//n5+f/r6eL/1Mir/7GSVP+ebxv/mWoS/6aBOv/DsIf/39nM//Tz8f/8/Pz//v7///////////// + //////7////+/v7//f39//T08v/a1cb/u6d7/6V+NP+bbBP/onkr/7yldP/g287/+vv6/////v////// + //////////////////////////////////////7////19PP/0cSs/6Z+M/+ZZgT/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZQH/nW4U/7mkef/V09H/ + 7+/w//7+/v////7////////////////////////////9/f3O/v7+zv////////////////////////// + +Pn5/93e3//NyL7/sZNa/5poC/+YZgH/mWYB/5lmAf+ZZQD/mWUA/5plAP+aZQD/mWUA/5pmAf+aZgH/ + mmYB/5llAf+ZZgX/oHQe/7eZYf/Tx7D/7Onm//n5+f/9/v7//v/////////+/////v////////////// + /////////////////////////////////////////////////v////39/f/19PL/3NbH/8Crgf+ngTn/ + m2sU/51xHv+zlVv/zsKo/+nn4f/5+Pn//v39/////v/+//7//v////7//v///////f7+//f3+P/m5N// + 0sew/7icZP+fcyT/qYVB/9rSv//6+/r///////7///////////////////////////////////////// + /P38/+Lc0P+ylVr/m2oL/5llAP+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/ + mmYB/5llAP+ZZgD/mWYB/5lnBf+qh0P/ysKy/9/f4P/7+/v///////////////////////////////// + //////39/c7+/v7O///////////////////////////+/v7/8fLz/9XW1f/DtZr/onkp/5hmAv+YZgH/ + mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZQP/nGoP/6iCO//CrYb/ + 3tjM//Lz8v/7/f3//v////7////+//////////////////////////////////////////////////// + //////////////////////7+/v/5+fj/6ufi/9TIr/+2mmH/oHUi/5tqEP+kfTD/v6p8/9zVxv/x8O7/ + +vv7//3//v////////////7//////////v/+//v8/P/29fT/497S/8e3lP/Ovp//7Ork//z9/f////// + //////////////////////////////////////39/f/w7ur/xbGJ/59zG/+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgH/oHMd/72siv/W1dL/ + 7e3t//7+/v///////////////////////////////////////f39zv7+/s7///////////////////// + ///////////8/Pz/5OTl/9HNyP+2nGr/nGwQ/5hmAf+YZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mmYB/5pmAf+ZZQD/mWYA/5lmAf+YZQH/mGYF/59xG/+zlFn/zsKp/+nn4f/5+fn//f39//7///////// + //////////////////////////////////////////////////////////////////////7+/v/8/Pz/ + 9/b1/+Hd0v/HtZD/qoQ//5tqEv+ebxz/r5FU/87Dp//m5d//9ff1//3+/f////7//v/////////+//// + /v/+//7+/v/6+vr/8vLv//X08f/6/Pv//v/+/////v/////////////////////////////////+/f7/ + 8fLx/9DGr/+pgjn/mmcF/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mWYB/5tpC/+wkln/zsrA/+fn5v/8/Pz///////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////7+/v/19fX/2trb/8e9q/+phEH/ + mGYH/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+aZgH/mmYB/5llAP+ZZgD/mGcB/5hmAf+YZgD/ + mGYB/5ppC/+lfjL/v6l9/9rTxf/w7+3/+/v7//7+/v///////v7+//////////////////////////// + ///////////////////////////////////////////+//7/+vv7/+/t6v/UybL/uJ1n/6F1J/+ZahL/ + pX4y/7qmeP/Vz73/7+7r//z8/P/+/v7//////////////////v////7////+/v///v7+//7//v/+//7/ + //////////////////////////////////////r6+v/d2M//sZRd/5pqDP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZgP/pXwx/8a5of/d3dz/ + 9/f3//////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////7+/v/u7u7/1tXS/7+ti/+gdCH/mGUC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgD/mGYA/5hmBf+ecBv/r45S/8q7n//n49z/ + +fn4//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v///Pz9//X28//l4db/yrmV/62LR/+dbRT/nG4W/6uKR//Jupr/6ebe//f39v/9/v7/ + ///////////+//////////////////////////7////+///////////////////////////////+/v7/ + 8O/s/8azj/+gcx7/mGYB/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/55wF/+6o3n/0c7K/+jo6P/9/f3///////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////j5+f/d3d// + zMjA/7OXYf+cag//mGUA/5hmAP+YZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5lkAv+aZwr/o3kr/7yjdP/h2Mj/8vHv//z8/P/+///////////+//////7/ + /v////////////////////////////////////////////////////////////////////v7+//y8e7/ + 2NC9/7afav+hdyf/mmkQ/6N5Lf+7o3L/2dLA/+/u7P/6+vv//v7///7///////////////////////// + //////7//////////v7///7////+/v///v7///f29v/Yzbr/qoVA/5pnBf+YZgH/mmUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYB/5lmAf+bagr/ro9T/8zFuv/g4OH/ + +vn6///////////////////////////////////////////////////////9/f3O/v7+zv////////// + /////////////////////////////////v7+//Dw8P/U1dT/xryq/6qGQP+aZwf/mWYA/5lmAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/mWYA/5lmAf+ZZQP/ + nm4V/7KQUv/MvZ//6ube//f29f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////79/v/19vb/4d/W/8a4l/+tjUz/nW4Z/5xsF/+ti0v/ + xreW/+Xi2v/29/f//v7+//7///////////////////////////////////////////////7//v/7+/v/ + 49/W/7WaZP+baw//mWYB/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hmAP+ZZgD/mmcF/6Z/Nf/DuKD/2NjX//Ly8v/+/v7//v////////////////////////////// + //////////////////////39/c7+/v7O/////////////////////////////////////////////v// + /f39/+vs7P/S0tD/wK+Q/6R5Kv+ZZgP/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+YZgH/mWYA/5lmAf+YZQH/mWcK/6R7Lv+7oXL/29LB//Dw7f/7/Pv/ + ///+//////////////////////////////////////////////////////////////////////////// + //////3////6+/v/7+/s/9zVwv+9pnT/pHwt/5pqEP+hdyf/vKZ2/+Lf1P/6+/v//v////////////// + /////////////////////////////////f39/+3r6P/Fs5H/oHUh/5lmAv+ZZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5llAv+hdSL/vKqG/9TTz//t7e3/ + /f39///////+/////////////////////////////////////////////////////f39zv7+/s7///// + ///////////////////////////////////////////+/v///P39/+fn6P/Oy8X/uqN3/59wGv+ZZQL/ + mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmYB/5pmAf+aZgD/ + mWYB/5hmAP+YZQH/mGUD/51tFP+vjEr/x7eV/+Xh1v/09fT//Pz9//7///////////////////////// + ///////////////////////////////////////////+/////v////7////9/v7/+fj4/+ro3//OwaP/ + ro5P/55xHv+vj07/4dvN//v8+//+//////////////////////////////////////7///7//v/39/b/ + 1My5/6mGQP+ZaAb/mGYB/5hmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgL/nm4V/7acbP/PysX/5+jo//v8/P///////v////7///////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////7////+////+vn6/+Hi4v/Kxbn/tJdh/5xsEv+ZZQH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWUB/5pnB/+hdiT/ + uZ1p/9PJtf/t6+j/+fr6//7+/v////////////////////////////////////////////////////// + /////////////////v/////////+/////f39//Lx7//b1MX/w7GK/8u+oP/u7un//f7+//////////// + ///////////////////////////+/////f39/+nl3v+5oG3/nGwR/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5tqD/+xkln/ysO4/93d3v/39/f/ + /v7+/////v/+//7///////////////////////////////////////////////////////39/c7+/v7O + ////////////////////////////////////////////////////////////////+Pj4/9zc2//Hvq// + r45R/5pqDf+YZQH/mGYB/5plAP+ZZgD/mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hlA/+caxL/qoVB/8KwjP/g3dL/9/f2//z9/f/+//7/ + //7///7///////////////////////////////////////////////////////////////////////// + /v7+//n5+f/x7+v/8O/s//v7+/////////////7+/v////////////////////////////7+/f/y8e7/ + zL2e/6N5Jv+ZZgL/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmUA/5lmAP+YZgH/ + mWYA/5llAf+aaQr/q4lI/8i+rP/X19f/8fHy//7+/v////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + /////////////////////////////v//9PT0/9jX1//GuqX/qohE/5tpCv+YZQH/mmYB/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5hlAf+YZgf/oHQg/7eaZP/XzLb/7uzn//r7+v/9/v7///////7///////////////////////// + ///////////////////////////////////////////////////////////+/v7///////////////// + ///////////////////////////+////+fj4/9vSwf+sikf/mmkH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZgH/mWcJ/6iDPf/GuqL/1tbU/+zt7f/9/f3/ + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv/////////////////////////////////////////////////////////////////////9/v7/ + 7+/v/9TS0f/Dtp3/qIM8/5loCf+ZZgH/mWYA/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5dmAf+YZQL/nGsO/6mDO//FsYr/ + 4NvP//Lx7//8/fz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////z8/P/n5d7/ + vKR0/51uEv+ZZwD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mmYB/5lnB/+lfzb/wrSX/9bW0//p6er/+/v7//7///////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + ///////////////////////////////////////////8/fz/6urq/9DPzf/CtJn/p4M7/5poCf+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mGYB/5lmAf+ZZQD/mGYG/6BzH/+yk1v/zcCm/+nn4f/6+/r//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3/9fTx/82+oP+jein/mWYC/5hmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+aaAb/pX4w/76vkP/Rz83/6erq//v7+//+//// + /v////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + ///////////7+/r/5ebm/8/OzP/Aspb/qIM+/5loCv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ZZgD/mWYA/5lmAP+YZgD/ + mGUB/5ppDP+lfjH/wat//+Pdz//z8vD//f39//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+//r5+f/g2Mr/ + sY5O/5poCP+YZgD/mGYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/ + mGgH/6Z+M/+/ro7/z83L/+Tk5P/6+vr////+//////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + ///////////////////////////////////////////////////////////6+vr/4+Pj/9DPzf/DtZv/ + qYZB/5poC/+YZQH/mWUB/5hmAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5lmBP+fcRv/s5NW/8/Bpf/p5t// + 9/f3//7+/v////////////7//v///v////////7///////////////////////////////////////// + //////////////////7////////7/Pz/6+fi/8Kqff+ebxT/mWYB/5llAP+YZgD/mGYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mWYB/5loCf+mgTn/v6+R/9LQzf/n6Oj/+/v7//////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + ///////////////////////////7+/v/6+zt/9PT0f/Gu6P/rItK/5trEP+ZZQH/mWYA/5lnAf+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+YZgD/mGYA/5llAv+baAv/pnwy/72lef/c1cb/8vHu//z8/P/+/v7////////////+//// + /v///////////////////////////////////////////////////////////////v7+//Hw7//LvaL/ + pHwt/5hmA/+ZZgD/mmYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgH/mGYB/5hlAf+aag3/ + qYZD/8G0mf/S0c3/7e3t//z9/f/+//////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + ///////////////////////////////////////////////////////////////////////////8+/z/ + 6Ojo/9TU0//Jv6z/sZNa/51uF/+YZQP/mWYB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+YZgD/mWYA/5llAf+ZZQT/ + nm4Y/7COUP/Lu5z/6OXe//X29f/9/f3////+//////////////////////////////////////////// + //////////////////////7////6+vn/3NXJ/66OUP+aaQn/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAf+aZgH/ + mWUA/5llAP+aZgH/mmYB/5lmAf+YZQL/nGwS/62NUP/EuaX/09LQ/+jq6f/7+/z///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + ///////////////////////////////////////+///7+/r/6erp/9fX1v/KxLb/tJxr/6B1Iv+ZZgX/ + mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+ZZgH/mWYA/5lmAP+ZZgD/mWYA/5hmAf+ZZQH/mmcJ/6V6K/+7onH/1s26/+7s6v/6+vr/ + /v///////////////////////////////////////////////////////////////f38//Du6P/BrIH/ + nm8W/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5pmAf+ZZQH/mWYE/59zHv+zl2T/ + yMGw/9fX1v/t7ez//Pz7//7///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7//v/8/fz/7+/w/97e3//RzcX/u6iB/6Z+NP+aaQr/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZwD/ + mWYB/5lmAP+ZZQH/mWYD/5xtFP+tiEj/xbSU/+bi2P/5+fj//f7+//////////////////////////// + //////////////////////7+/v/z8/H/08au/6iANP+aZgP/mWUA/5llAf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+aZgH/mWUB/5poB/+kfC//uaV8/8vHvf/a3Nz/8fHx//39/f////////7///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f7/+fn5/+Xl5//Nysj/ + xLac/66OT/+dbhf/mGUD/5hlAf+ZZgD/mWYB/5hmAf+ZZgD/mWYA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUB/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/5lnCP+hdib/ + vKFu/9nQvP/s6+b/+Pn5//3+/////////////////v///////////////v//////+fn5/9/Zz/+yk1f/ + m2kK/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aZgD/mWYA/5hmAf+ZZgH/mGYA/5lmAP+ZZgH/mWUB/5llAv+dbRL/q4lH/8Cylf/My8f/ + 3+Dg//X29f/+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/v7+zv////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////+vr6/+jn5//V1NT/zMS0/7mhcf+jeiv/mmgJ/5hlAf+YZgD/ + mWYB/5lmAf+ZZgD/mWYA/5lnAf+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYA/5llA/+dbBD/qoZA/8Kwi//d2M7/8vPy//z9/f/+//// + /v/+//7////+/////v////z9/f/q6eT/wayF/59yG/+ZZgL/mGYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5lmAf+aZgH/ + mWYB/5llAf+aaAn/oncm/7Sbav/Gv67/1dbT/+Pl5f/3+fj//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/c7+/v7O//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7/ + +/v7/+rq6//a2dr/z8zG/8Gzlv+tjE7/nW4a/5hlBf+YZQH/mGYB/5lmAP+ZZgD/mWYB/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmAP+ZZgH/ + mWYB/5llAf+ZZgf/oHMi/7SWYf/QxK7/7Orn//r7+v/9/v7//v////7//v/+/v//9fT0/9PHsf+ngTb/ + mmcE/5hmAf+YZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5hmAf+ZZgH/mWYB/5llAf+ZZwT/nm8Z/6yKTP+/sJH/zMnC/9/f3v/19fX/ + /Pz8/////v/+/////v////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39zv7+/s7///// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7//P39//b29v/m5ub/0tLS/83Fuf+7pX7/ + p4E8/5trE/+ZZQT/mGUA/5lmAP+ZZgH/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmYB/5lmAf+ZZgD/mmYA/5llAf+YZAP/m2oP/6eBOP/EsIj/ + 493R//Tz8v/9/f3//v7+//z7/P/k39b/tJhf/5tqDP+ZZQH/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5llAf+ZZQP/ + nGwQ/6d/Nf+6pHr/ycCy/9TT0v/i4uP/+Pn5/////v///v///v/+//7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////9/f3O/v7+zv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////z8/P/y8vL/4eHi/9PQzf/Ivan/tpxr/6V8MP+bag7/mGUD/5llAP+YZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAP+ZZQD/mWcF/6FzHv+0lV3/0sat/+zp4//39/f/7ezo/8a0kP+hdB7/ + mWUB/5lmAP+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hlAP+YZQP/m2oM/6R8L/+1m2n/x7ul/9LQzP/c3d3/6+vs//r6+v/+//// + ///////////+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////39/c7+/v7O + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////+/v/4+Pj/ + 5ubo/9fX2P/PzMX/xLee/7SYY/+lfC//m2sQ/5llBP+ZZQH/mWYB/5lmAf+ZZgH/mWYB/5lmAP+ZZgD/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5hmAP+YZgD/ + mGUC/5ppD/+ngDn/wKqB/9nSxP/Mwqz/qIM9/5pnBf+ZZgH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgH/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+ZZgD/mWYB/5lmAf+ZZgH/mGYA/5hlAf+YZQP/m2sO/6R7L/+0l2L/ + xbif/83KxP/Y2Nf/5+fo//n5+f/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////f39zv7+/s7///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////8/Pz/9fb1/+Lj5P/R0dL/zMnD/8W4of+2m2j/ + qH82/51tF/+ZZgj/mGUC/5hmAP+ZZgH/mWYB/5hmAP+ZZgH/mWYA/5lmAf+ZZgD/mWUA/5llAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mGUB/5hlBP+ecRr/q4lH/6mFQf+bag3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5lmAf+ZZgH/mWYB/5lmAP+ZZgH/mWYB/5lmAP+ZZgH/ + mWYB/5hmAv+ZZwf/nW4W/6Z/N/+1m2j/xbmf/9HNxv/Z2dj/5ubn//f39//9/f3///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////9/f3O + /v7+zv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v/+//7/+/v6//Ly8v/m5+j/2tvb/9PSzP/Fu6b/uqV6/6yJSv+gdCT/mmgN/5llBP+YZQH/ + mGUB/5lmAf+ZZgH/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5pmAf+aZgH/mWUA/5hlAf+ZZwX/mmYG/5hmAf+ZZgH/mWUA/5pmAf+aZgH/mWUA/5lmAP+ZZgD/ + mWYB/5lmAP+ZZgD/mWYB/5lmAf+YZQH/mGUB/5lmBP+baQ3/oHQj/6uJSf+6pXz/yL6q/9DNyf/b29r/ + 6+zs//b29//7/Pz//v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////39/c7+/v7O//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7///7+//z9/f/3+Pj/ + 5ufn/9XX1//U1NH/zcW4/8Kyk/+2mmn/p4E8/6BxHP+cagz/mWUG/5llAv+ZZQH/mWUB/5llAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/mmYB/5pmAf+ZZgD/mWYA/5pmAP+ZZgD/ + mGYB/5lmAf+ZZQD/mmYB/5pmAf+ZZQD/mWYB/5lmAf+YZgH/mGUB/5hlAP+YZQL/mWYF/5pqDv+fcx7/ + qYQ+/7ebaP/BspX/y8W4/9HQzf/d3d3/6uvr//j49//+/f7///7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /f39zv7+/s7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+///7+/z/9vf3/+3v7//c3N3/1NTU/9XTzf/IwLD/ + vq2O/7abaf+siEf/o3cr/55tFP+baAn/mWUG/5llAv+ZZQH/mWQB/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWYB/5llAP+ZZQD/mWYA/5lmAf+ZZgH/mWYA/5lmAf+ZZgH/mWYB/5llAP+ZZQD/mWUA/5hkAP+ZZQH/ + mWUD/5lmBf+aaAv/nG4V/6J5K/+siUf/tZxs/8Cwkf/IwLD/0c7H/9bW1f/g4OD/7+/w//j5+f/9/v7/ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////9/f3O/v7+zv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f7+//n5+f/v7/D/7O3t/+Hh4v/S0tP/zMvH/8zFuP/GuaH/vKeA/7SXYP+riEj/ + o3su/6ByH/+cbBb/mWgL/5lnCP+ZZQX/mWUE/5lkAv+ZZQL/mWUC/5llAv+ZZQL/mGUB/5hlAf+ZZQL/ + mWUD/5lmA/+ZZgT/mmYF/5lnCf+bag7/nG4V/6B0Iv+mfTT/rIhJ/7SZZf+8qYP/xrqi/8rFuP/Qzsz/ + 2NnY/9zd3f/s7Oz/8/Pz//r6+v/+/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////39/c7+/v7O//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/+/v7/ + /Pz7//Hy8//m5uj/3N3e/9ra2f/T0tH/0M7I/83Hu//Fvan/wbGS/72ogv+1m2r/spRb/62KTP+rhUD/ + p383/6Z8MP+jeSv/ongp/6J3J/+idyf/o3gp/6R8Lv+mfjP/p4E6/6uHRf+vjlD/spRe/7eecP+9qYX/ + wrOX/8i+rf/Lxbz/0tDL/9XU0//d3Nz/4+Tk/+vs7f/09fX/+vr6//7+/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39zv7+/s7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////////v////39/f/5+fn/+Pj3//Ly8v/r6+z/ + 7O3u/+Hh4v/U1dX/19bV/8/Oy//Szsj/ysW8/8zGuP/Hv67/yL6r/8W6pf/FuKL/x7qj/8S4oP/FuKL/ + xryn/8e+rP/JwrP/zci8/87KwP/Rzsj/0tDO/9bV1f/b3Nv/4uLi/+Li4//p6er/8PHw//f39//9/f3/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////9/f3O/v7+zv////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/////v////7//v///////v////3+/v/+/v7/+vn6//T19f/08/T/7+/v/+7u7//o6On/ + 6enq/+Pi4//g4eL/3Nzd/9na2v/j4+T/4uLj/9vb2//c3Nz/3d7f/+Pl5f/m5uf/6erq/+zu7v/u7+7/ + 8vLy//n5+v/7/Pz//P38//z9/f/9/v7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////39/c7+/v7O//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+//////////////////// + /f///////////////v///////////////v/+//7+/v/+/v7//Pz8//r7+//5+fn/9vf3//r7+//7+/v/ + +Pn4//n6+f/6+vr/+/z8//z9/P/9/v7//v7+//7//////////////////////////v////7///////// + /////////////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39zv7+/s7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + ///////////////////////////+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////9/f3O/f39p/7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O/v7+zv7+/s7+/v7O + /v7+zv7+/s7+/v7O/v7+zv39/acAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAA + AAAAAAAAAAD9/f25/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/f393vr6+t7y8vPe6Ojo3t7e3t7U08/ezcnC3sm/r97DtJjevKeA3rSZZ96ujlHe + qYVB3qZ9N96keS3eo3cp3qF3J96heCjepHks3qV+NN6ngjzerYpO3rSWYd67pX3ewrOX3srCsN7Kxr/e + 1dTS3uHf397o6Oje9PT03vr6+t79/f3e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e + /v7+3v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/rf9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/v///////v////7////+/////v////39/f/19vb/6enq/9zc3P/U0cz/ysKy/8Cxkv+1nG3/ + rYpL/6V7L/+gcRz/nGsQ/5pnCf+ZZwb/mWUD/5llA/+ZZQL/mWUC/5llAf+ZZQH/mWQB/5llAv+YZQP/ + mWUF/5pnCP+caxD/n3Ea/6R6L/+riUf/tZxt/8Gwkf/IwLH/1dPO/93d3f/p6en/9fb2//v8/P/+/v7/ + //////7+/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/v///////v/+//7+/v/6+vr/8fLy/+fm5v/U08// + ysKx/72rh/+wkVb/pHwt/51uFf+aaAj/mWYD/5hmAf+YZgD/mWUB/5llAP+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZQD/mGYB/5hlAf+ZZgP/mWcJ/51tFf+keiv/ + sJBY/7+sif/KwrL/09DN/97f3//x8fD//Pz8//7+/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////+/v7/ + +/z7/+3u7v/c3Nv/0MvD/8O0mv+ylmD/pHwv/5xsEf+ZZgT/mGYB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/ + mWYA/5lmAP+aZgD/mWUA/5llAP+ZZQD/mWUA/5pmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5llAf+YZQH/mWYE/5xsEv+kfDD/s5Zf/8Cylv/PzMT/39/f/+7v7v/6+vr/ + //7///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////39/f/z8/P/4N/e/83Jvv++rIv/rYtL/55xHP+aZgf/mWYB/5hlAP+YZQH/ + mWYB/5pmAP+ZZgH/mWYA/5hmAf+ZZgH/mWUA/5llAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+YZgD/mGYB/5lmAP+ZZgH/mGYA/5lmAP+YZQH/ + mWcH/59xGv+si0r/vauK/87KwP/a2tr/8PDw//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////+/////v/////////+/v7/9PT0/+bm5v/Tz8f/v62M/6uIRP+dbhb/ + mWYE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/ + m2kK/5lmBf+ZZQH/mWYB/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgT/nm4V/6uIRv++ro7/0c7G/+Tk5P/09PT/ + /f38/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ///////////////////////////////////////////////////////////+//7//v7+//j5+f/q6uv/ + 1dPP/8O2nf+tjE//nm8Y/5lmA/+ZZgH/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5llAf+gdB7/uJ5u/66OUf+cbRT/mWUC/5lmAP+ZZgD/mmYB/5pmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmBP+fcBr/sJFW/8e6o//U08//6+vr//r6+/////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + ///////////9/v7/8vPz/93c3P/LxLb/tp1t/6F2Jf+ZZwb/mGUB/5lmAP+ZZgH/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5tqC/+9pHP/6OXf/+Pd0//BrYP/ + pHwu/5pnCP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZgD/mmcI/6J4Kf+3oHP/y8W5/93c3P/08/T/ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////39/f/u7+7/1tTR/8O0mf+phkH/m2sO/5lmAv+ZZgD/ + mWYA/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/ + mWYD/6uHQP/h2sz//Pz8//z8/P/y8e3/18y2/7SVXP+ebxj/mGYD/5llAP+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/mWYA/5lmAf+ZZQD/ + mWYB/5hlAf+caw//rIpI/8W3nv/a2Nb/8vLy//z8/P////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////////////////////////////v/+////+vv7/+np6f/RzcX/ + uqJ3/6F2I/+ZZgT/mWUA/5pmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAf+ZZQH/oHIc/8y8nf/39/b//v7///////////7/+vr5/+jk2//HtI// + qIE3/5toCf+YZQH/mWYA/5lmAP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5hmAP+ZZQD/mWcG/6N5Kv+7poD/1NDK/+Xl5v/6+/v/ + /v7+//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////7+/v/4+fn/4+Pj/8zFt/+ylF7/nm0T/5lmAf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5lmAf+baQr/uZ1p/+vp4v/9/f3/ + //////7//////////v////3+/f/z8vD/3NTB/7icZf+gch3/mWUE/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWUA/5llAv+ebxf/tJlm/8vGuv/h4eH/+Pj4///+/v////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////v7+//b19f/f3t3/yL6q/6yJSP+baQv/mWUB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/ + mGYA/5lmAv+qhDv/3dbG//r7+v///////////////////v////////7////+/v7/+/v6/+zp4v/ItpX/ + qII8/5tpC/+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5pmAf+ZZgD/mGYA/5hmAP+YZQH/m2sO/6+PUv/KwrL/4eDg//n5+f/+//// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////+//7/9PX0/9vb2f/FuqP/ + qIM7/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/6BzGv/Mu5n/9/f0///+/v////////////////////// + //////////////////////79/v/z8vD/3dTF/7yhbf+gcx//mWYE/5llAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5toCf+siEX/yb+r/+Dg3//19fX//v/+///////+//7///////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////7+/v/39/f/3d3b/8W6of+mgDb/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/m2kJ/7mcZP/t6uT/ + /v7+/////////////////////////////////////////////////////////v7/+/z7/+3q5P/MvJ3/ + qoZC/5trDv+ZZgH/mmYA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/qYRA/8a7pv/d3Nz/+Pj4//7//v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////////////////////v////v7+//e3t3/xLmj/6eBOP+ZZwX/mWYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/qYI2/93Vw//6+vv///////////////////////////////////////////////// + /////////////v/////+//79/f/19fT/3dfI/7yjcv+idiT/mWcF/5llAf+ZZgD/mmYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWcH/6mEP//GvKn/4eHh//v7+/////////////////////////////////////////////////////// + //////7+/tL9/f3U/////////////////////////////////////////////////fz9/+np6f/Jvqv/ + qII7/5lnBf+ZZgD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxX/ybeS//X08v/+/v7///////////////// + ///////////////////////////////////////////+///////////////+////+/z7/+7t6P/Rwqj/ + rIlI/5xrEf+ZZQL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWUA/5pnB/+riEX/ycGy/+jn6P/8/f3///////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////7/ + /v/////+///8/f3/6+rr/8vFt/+rikn/mmcH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5poB/+2mF7/ + 6ube//39/f/+//////////39/f/4+Pb/9fXy//z8/P/+//////////7//////////v/////////+//// + /////////////////v7+//7+/v/19fT/3tjL/8Gqff+leir/m2gG/5lmAP+ZZgH/mWYA/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAn/ + ro9U/83Hvf/t7u7//v7+//////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////v////79/f/u7u7/0s7H/7GVXv+cagv/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+YZgD/mWYC/6Z9L//Zz7r/+/v6//7+/v///////v7+/+/u6v/Nv5//xbOM/+3r5P/9/v7/ + /v7///7+/v/+/////v7+///+//////////////////////////7////////+/v7/+/v7//Lx7f/XyrP/ + s5NX/51tE/+YZQL/mWYB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsP/7SbaP/T0Mr/8/P0///////+/v7///////////////// + //////////////////////7+/tL9/f3U/////////////////////////////v///v/+//P09P/X1dL/ + uqR7/51uFP+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/nW4S/8Wxif/z8u///v7+//3//v////7/ + /v7+/+3r5P/Dso7/rY1M/+HZyf/7/Pv/9PTz//Hv6//4+fn//v7+///////+//////////////////// + //////////////////7+//7+/v/6+vn/5N/V/8Krg/+lfC//mWgH/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGUB/59xGf+8qoX/ + 2dnW//f4+P////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////+//7//Pz8/+Li4f/DtZr/oncl/5hmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUA/5llAP+aaAb/ + sZBS/+bi2f/9/f3//v////7//////////v////v7+//p5uD/wa2A/+Pdzv/49/b/0cSn/7qhbv/Vy7b/ + 8/Lw//7+/v/+/////v/////////////////////////////////////////+/////Pz8//Hv7P/Yzrj/ + s5NY/55vF/+YZQP/mGUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mWYB/5llA/+lfC7/xLqk/+Dh4P/8/Pv///////////////////////////////// + //////7+/tL9/f3U///////////////////////////+/v7/7e3u/9DKvf+phkL/mmYE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/mGUA/5llAv+kein/1Mix//j4+P/+//////////7//////////v/////+///5+Pf/ + 7eri//j39f/z8u7/vKRz/5xsFf+mfjX/ybeT/+rm3//5+fn//f7+//////////7///////////////// + //////////////////////7+/v/6+vn/5uLZ/8axjf+ogDb/mmgI/5llAf+ZZQD/mGYA/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwb/rY5P/87JwP/w8PD/ + /v7+//////////////////////////////////7+/tL9/f3U///////////////////////////19fT/ + 1tXS/7adbv+bag3/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+YZgH/mWUB/51tEf/Bq4H/8O7s//7+/v/+//// + //////7+/v////////7//////v/+/////v7+//7+/v/7+vn/3tfF/7meZv+gch7/n3Ee/7WYYP/Vzbn/ + 9PPw//3+/f/+/////////////////////////////////////////////////////f39//Px8P/b0b7/ + t5ti/59xG/+ZZQP/mWUA/5hlAP+ZZQD/mmYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/nW0T/7ynf//a2df/9vb3//////////////////////////////////7+/tL9/f3U + //////////////////////z8/P/j4+P/xLif/6J2I/+YZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgH/ + mmcF/7GPTv/o49j//P39/////////////v7+//38/P/8/Pv//v79///////+///////////////+//7/ + +vr6/+vp4P/Mu5f/q4Y//51sFP+mfzT/yLWP/+rm3v/6+fn//v7///////////////////////////// + //////////////7//v/+///+/v/6+vn/6+jg/8e1kv+ogjv/mmkM/5llAf+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWUA/5llAP+ZZQD/mWYC/6V9Mf/IwK3/5ebm//39/f////// + //////////////////////7+/tL9/f3U/////////////////v7+//Ly8v/Szsb/rY5Q/5pnBf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgH/oncj/87BqP/4+Pf//v/+///////+/v7/8fDs/9rQu//XzLX/ + 8/Lv///////+//7///////7////+//////7///39/f/29fP/39fG/7yibP+hdCH/n3Ac/7aZYf/Xzbj/ + 8/Lv//39/f/////////////////////////////////////////+///+///+//7//f39//Py8P/d1MP/ + u59q/59yHP+ZZgT/mWUA/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mmYB/5pmAf+ZZQD/ + mWYA/5ppCP+zmGT/1NLO//T09P////////////7///////////////7+/tL9/f3U///////////+//// + +/v7/+Hh4P+/ro7/nnAW/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+caw3/vKR0/+3r5//+/v7/ + ///////////9/v7/5eDW/7mjdP+uj1H/5eDU//7+/v/+/v7//v7+//7///////////////7////+/v7/ + /Pz7/+zp4v/PwJ//rYlE/51tFf+mfjL/xLGJ/+nl2//5+fj//v7+//7+/v////////////////////// + //////////////////////7+/v/8/Pv/7Orj/8q7m/+qhUH/m2kN/5llAf+ZZgH/mWYB/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+hdiP/xLmg/+bm5v/9/f7//v////////////// + //////7+/tL9/f3U///////////+//7/8/Pz/9LNxP+riEb/mWcD/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lnBP+ui0f/4NvO//z8/P/////////////////+/v7/+Pj2/9vVxv+1mmb/4dvL//n5+f/r6N// + 6+fd//f49v/9/f7//v/+//7///////////////39/f/39vX/4t3N/72kc/+hdib/nm8b/7SWXP/Vy7T/ + 8O/s//z9/f/+/////v/+/////////////////////////////////////////////f7+//T08v/d1sb/ + vKNx/6J2Iv+ZZgT/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwf/ + sZRb/9XTzf/29vf//v////////////////////7+/tL9/f3U///////////9/f3/5+jn/8Cwj/+dbhX/ + mWUB/5lmAf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6F1IP/Qwqb/+Pj3//7///////////////////////// + /v/+//X08P/g2cf/8fHs/+/t5/+8o3H/sZFT/9DDp//w7ur//P39/////////////v/////////+//// + /Pz7/+3s5v/PwqP/rYtH/51tFf+kfDD/w7CI/+jl2//5+vn//v7+//////////////////////////// + //////////////////////7+///7/Pv/7+3o/9DCpv+uikn/nGsR/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZQH/oHUh/8S4oP/i4eL//Pz8//7//v////////////7+/tL9/f3U + ///////////19vb/1dHK/62MTP+ZZgT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZQH/nGoM/7qhb//v7ej/ + /v7+//7////+/////v/+//7//v////////////7+/f/9/fz//f39/+/t5/+6onH/nnEd/6N4KP/DrID/ + 5N7R//n49//+/f7///////7///////////////7+/v/29vX/4tzP/8Cpe/+jeCr/nXAc/7KVW//WzLb/ + 8fDs//z8/P///////v///////////////////////////////////////////////v/+//f39v/i287/ + wKl7/6R5KP+aZwb/mWUB/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYA/5llAP+aZgD/mmgH/7SYZP/Y1tL/ + 9vb2//////////////////7+/tL9/f3U//////7+/v/q6un/xLWd/59xGv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZwT/q4ZA/9/Xyf/7+/v//v/+///+/v/+/v7//f39//39/f/+/v7///////////////// + //////v7+//m5Nv/xrSO/6eANf+dbhn/r4xL/9LEqP/w7un//Pz9//7//v/+//////////////////// + /Pz8//Hv6//Pwqf/ro1L/51vGP+key//wa2D/+Pf0//6+vn//v7+//7///////////////////////// + //////////////////////7////7+/z/8vDs/9XIsP+xkVT/nGwT/5hlAv+YZgH/mWYA/5lmAP+ZZgD/ + mWYA/5llAP+ZZQD/mWUB/6N6Kv/KwbH/7u7u//////////////////7+/tL9/f3U//////f3+P/X1dL/ + sZVf/5pnBf+aZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5llAf+gcx3/y7uc//b19P/+/v7///////7+/v/z8vD/ + 4tzO/+Lcz//49/b//////////////////v/////////8/fz/8vLv/9rRvv+3m2P/n3Ig/6J4Kf++pnb/ + 5N7Q//j49v/9/v7//////////////////v7+//7+/v/29vb/5N7T/8Sug/+jeiv/nW4a/7OUWP/Xzbf/ + 9PLw//z8/f///////////////////////////////////////////////v///////v7+//n5+P/i3dL/ + wKmA/6V8Lf+aZwb/mWUB/5llAP+YZgD/mWUA/5llAP+ZZQD/mWUA/5tqDf+5o3r/3NvZ//v7+/////// + //////7+/tL8/PzU/v7+/+3t7v/KwrP/o3ss/5lmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5tpCv+3nGf/ + 6ujh//79/f/+/v////7///39/f/e2c3/tJtn/7WZY//s6uL//////////////////v7///7+//////// + /v7+//r7+v/s6eD/xraR/6aANv+dbhf/sIxL/8/BpP/t6+X//Pz8/////////////v/////+//////7/ + /f39//Dv6//UyK//sI9R/55vGf+lfC//xLCG/+Tg1P/5+fj//v7+//////////////////////////// + //////7//v///////v/////////8/Pz/8fDs/9nNtv+xkVX/nm4W/5hlA/+ZZgD/mWYA/5pmAf+aZgH/ + mWYA/5lmA/+qh0T/0czF//Pz8/////////////7+/tL9/f3U/f39/+Pi4v+8qoj/nGwQ/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mWUA/5lmAP+ZZQD/mWYD/6iCOf/a0cH/+/r6//////////////////7+/f/w7+z/0Mav/7KVWv/o4tb/ + /P39//X18//19PL/+/z8//7//v/////////+/////v/+/f3/8fHv/9nQvf+6n2r/n3Mi/6F1J/++pXX/ + 4tzO//f39f/+/v7////////+//////7///////7+/v/5+Pf/5N/U/8KuhP+lfTH/nW8a/7CPUf/VyK7/ + 8e/q//v8/P/+/v7////+///////////////////////////////////////////////+//r5+f/m4df/ + w6+J/6Z9M/+aaAj/mWUB/5lmAf+ZZgH/mGYA/5lmAf+gcx3/xbmi/+np6v/+/v7///////7+/tL9/f3U + +fn5/9nX0/+vkFb/mWcE/5lmAP+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mGYB/5lmAP+ZZQH/n3Ia/869nP/29fT//v7+//////////// + ///////////9/v7/7+3n/9HHq//w7un/8vDt/8q4lP/Dr4b/497S//f49v/+/v7//v////7///////// + /v7+//r6+v/s6eL/ybmV/6mEPP+dbxn/rIpG/9DBo//u6+b//Pz8//7//////v////////7////+/v7/ + /Pz9//Px7v/WzLT/sJFV/51vGv+jeSr/v6h6/+Dbz//29/X//f79//7//////v////////////////// + ///////////////////////////9/fz/8vHt/9nPu/+3mWD/nW0S/5hmAf+YZgH/mWYA/5lmAP+aaAn/ + t6B0/93c2//7+/v///////7+/tL9/f3U8vLy/83GuP+key3/mWUB/5lmAP+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mWYA/5lmAP+baQn/ + uJtk/+7q5P/+/v7//v/////////////////////////+//7//Pz7//f39f/7/fz/7Ori/7WYX/+gcx// + r45O/9LGq//v7ej/+/v7//7////////////////////9/v7/9PTy/9vUw/+6oGz/oHMh/6F2J/+8pHX/ + 39rM//j49//+/v7//////////v////7//v////7+/v/4+Pf/4t7U/8e0jv+ngDb/nW4Z/62MS//Pwqb/ + 7+zn//z9/P/+/v7////+///////////////////////////////////////+//7//v7+//n5+f/Y0MH/ + pX4x/5lmAf+ZZgD/mGYB/5hmAf+ZZgL/rIlI/9HNx//09PT///////7+/tL7/PzU6Ojo/8GylP+cbhL/ + mWYA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/mWYB/5pmAv+ogTb/29LA//v7+////v/////////////////////////////+//7/ + //7//////v/+/v//+Pj4/+Lcz//AqXv/o3ks/6R6L/+9pnn/39nM//f39v/+/v7///////7///////7/ + /v7+//r7+v/s6uL/zLya/6iEPP+dbxr/rYtJ/9LFqf/v7ej/+/v7//7//v/+/v///v/+//7////+//// + /P38//Xz8f/Yzrn/tJZe/55xHv+hdyf/wal5/+Lczv/09fP//f7+//////////////////////////// + ///////////////////+//X08f/Hs47/nW8U/5llAP+YZgD/mWYA/5hmAP+ZZgD/oncm/8zDsv/v7+// + //////7+/tL6+vrU4N7e/7Wdbf+aaAf/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mGYB/55vFv/HtI7/9vXz//////////// + //////r5+f/z8Oz/9PPu//39/f///////v/+/////////////v7///z8/f/w7un/0sSo/62KS/+ecR7/ + rIpI/9LEp//v7ej/+/z7//7+/////////v////7////9/v7/9fXz/9rTwv+6oW7/onYn/6J3Kf+9pnb/ + 39nL//b29f/+/v7///////7///////////////7+/v/5+fn/5uLa/8W0j/+ngDf/nW8Z/6uJR//NwKL/ + 8e/r//7+/v/////////////////////////////////+////+vr6/97Uwv+ogTP/mWYC/5llAP+ZZQD/ + mWUA/5lmAP+ZZgD/nW0S/7+wkf/o6Oj//f7+//39/dL39vbU29fS/6uKSf+ZZgL/mmYB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + mmgH/7SVW//o5dz//f39/////////////Pz8/9/bz/+/qn3/yLSN//Ty7////v///v7+//7+/v/+//// + /v////7+///+//7/9/f2/+Db0P++p3z/o3ou/6J4K/++pnj/39nL//b29f/9/v7///////7////+/v// + /v/+//v7+//v7Ob/zb+f/6uHQv+cbhj/rIpH/87BpP/x7+r/+/v7//7////////////////////+/v// + /P39//Py8P/a0b7/t5tl/59zIf+ogjv/3dbE//39/f/////////////////////////////////9/f3/ + 5+Td/7WZYP+baQj/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mmgH/7WbbP/c29n/+/v7//7+/tLx8fHU + z8i7/6R7Lf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/pX0v/9XMtv/5+vn//////////////////fz8/+Xj2v/Csoz/ + tJZb/+zp4P/9/f3/8/Hu/+zp4f/39vX//v7+/////v///////v////z8/P/v7ur/08iw/7CRVP+fcyD/ + rYlG/87Aof/t6+X/+/v7//7////+///////+///////+/v7/9fb0/9/YyP+6oG7/oXUl/6N5K/+/qHj/ + 3NXH//b19P/+/v7//////////////v///v////7+/v/6+vr/6+fg/8u8mv/HtIz/7eri//7+/v////// + ///////////////////////////29fT/yLeU/55wF/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgD/ + mWYD/62MT//W1M//+Pj4//7+/tLs7u7Uyb2o/59xGv+ZZQD/mmYB/5pmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebxT/xbGJ//Hx7v/+/v7/ + //////////////////////z8/P/k3tP/xrWQ/+/t5//49/b/z8Cf/7OWWv/Sxav/7+3p//z8+////v// + //7////////+/f7/+fn4/+Xg1f/Er4b/pX0y/6F3Kf+7oXH/3NXF//T08v/+/v7//v////7///////7/ + /v7///v7+//t6uX/zr+g/6yHQf+dbxj/qYZB/86/of/v7ej//Pv7//7+/v////7//v7////+/v/+/v// + /f3+//f39v/39vP//f39//////////////////////////////////v7+v/e1sb/qoQ6/5lmAv+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mGUB/6Z/NP/NyL3/8fHx//79/tLi4uPUv6+P/5xrDv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5poBv+zk1b/6ubc//39/f////////////////////////////7////39vX/7u3o//v7+v/08+// + xa+E/6B0Jf+kei3/v6h6/+Tf0f/4+Pf//v7+//7////+//7///////z8/P/y8u//1824/7KUXP+ecSH/ + qIQ+/8u6mf/u6+T/+/v7//7+/v/+//////7////////+/v7/+Pf1/97Xxv+6n23/oXQl/6F2Jv+7o3L/ + 3dfI//X18//+/v7////+//7///////////////////////////////////////////////////////// + /v39/+ro4v+3nGb/m2oK/5lmAP+aZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6F1I//Iv67/ + 7u7v//39/dLa2djUuKF3/5ppCP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYC/6V7K//Wy7X/+fn4//7+///+//////////////////// + //////7////+/v///v7+///+/v/7+/v/7Onh/8q7nv+qh0X/nnEe/6+OTv/UyK7/7uzn//v8+//+//7/ + /v////7////9/v7/+vn5/+Tg1//BrYb/pHwx/6F1Jv+6n23/3tbF//P08f/9/v7///////////////// + //////v7+//r6OP/zb2e/6uHQ/+dcBr/q4dC/8y8nf/s6eP//Pz8//7+/v////////////////////// + ///////////////////////////+////9vXz/8m7mv+gcxz/mWUB/5lmAP+YZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51vFv/Et5//7Ozr//39/dLX1tPUspdj/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgD/nWwQ/7+ofv/v7uv/ + /f7+/////////v7//Pv7//f39f/5+Pf//v39//7+/////////v////7+///+//7//f7+//T18//d18n/ + vKZ6/6R7MP+jei7/u6Nz/97Yyf/4+Pb//v7+/////////v7//v7///z8/f/x8O3/1cy3/7SXX/+gdCT/ + qYQ+/8m5lv/q59//+/v7//7+/v////////////7//v/9/f3/9/b0/+LazP+9o3P/oXQk/6B0JP+9pHP/ + 4NrK//b29P/+/f3////////////////////////////////////////////8/Pz/4NnL/6qFPv+ZZwP/ + mGYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xsD/+/r47/5OTk//z8/NLW087U + sJFV/5llAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/ + mWYA/5hlAP+aaAX/sZBQ/+Xf1f/8/Pz////////////8/Pz/4dzS/8i3kv/Txan/9vXz//7///////// + /v////7+///+/////v/+//7//v/7+/v/8fDr/9LGrP+tjE3/nnEd/6yJRv/Rw6b/7uzm//v7+//+//7/ + /v////7////+/v7/+fr5/+vn3v/GtI7/qII5/6B0I/+2mmT/2dC9//Lx7//9/f3//v////7///////// + /v/+//v8/P/s6eT/y72f/62KSP+ecBv/q4hD/82/ov/y8e7//v////////////////////////////7/ + //////7+/v/v7Oj/vKNx/5pqC/+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpCv+6poH/4ODg//z8/NLOzMbUrItL/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZgD/mWYA/5llAf+jeSf/1Meu//r6+f/////////////////8/Pv/ + 3NbI/7efbf+zl17/7evk//7+/v/4+Pf/9fXz//z8/P///v7///////7//////v///v7+//f39v/h3NH/ + vql//6R7Mf+ieCv/u6Ny/97XyP/29fT//f7+//7//v/////////+//7+/v/z8/H/2tLA/7edaf+gdSf/ + p4A5/8Kxi//l4dn/+Pn4//7+/v///////v////7+///9/f3/9fX0/+Pdzv+8pHP/pHos/7aaYf/u6+T/ + /v/+///////////////////////+//7//v7+//f29f/QwqX/oXUg/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnB/+4oHX/4uLh//z8/NLMyMDUqohE/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mGYB/5trDv+/qHv/ + 8O7q//3+/v//////////////////////+fj4/9rSwP/ArYL/8e7o//r6+f/a0rz/x7aQ/+Ld1P/5+fj/ + /v7+//7////+/v7//v/////+///7/Pz/8O/r/9PIsP+wkFP/n3Ig/6uHQ//Nvp//7uvm//r6+v/+/v7/ + ///////////+/v//+vr6/+zp4v/Nu5n/qIM7/59yH/+ylFv/1865//Py8P/9/f3//v////7////+//7/ + /v7+//z8/P/v7ej/18y0/9vTwP/6+fj//////////////////////////////////P39/+Pd0f+siUX/ + mWcE/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBv+1nGz/ + 3d3b//v7+9LIxLvUqYZA/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+YZgD/mWcF/66LSP/j3tL/+/v7//7//////////////////////////v/+//Py7v/o5t7/ + +vr5//X08v/CrYL/oHUk/7GRVf/VybL/8fDt//39/f/+//7///////7//v/+//7//f7+//r5+f/l4df/ + xbKM/6V+Nv+jeCv/uqBv/9rSwv/19PL//v7+///////+/v/////+//39/v/29fP/2dG//7adaf+idin/ + p4A5/8Wxi//o5Nz/+fn4//7//v/+/////v/+//7//v/+/v7/+/v6//v7+v/+/v////////////////// + //////7////+/v7/8vDs/8Gqe/+caw3/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBf+0mWj/3t3c//z8/NLMx7/UqoVB/5hmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/onci/9LEqP/5+ff///////////////// + /v/+///+/v////////////7+/v/+/v7///////r6+v/h287/u6Jy/6J3K/+kezD/w62D/+Pe0//29/b/ + /v7+//7////+///////////////9/f3/8/Lu/9nQu/+ylFn/n3Mh/6iDPf/Lu5r/7Oni//r7+v/+/v7/ + //7///7+///+/v7/+vr5/+vp4v/Nvp//q4ZB/6B0Iv+zk1j/18u0//Hw7P/8/Pz//v/+//7///////// + //////////////////////////////////////7////39/b/0sWs/6R5Jf+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmBf+zmWf/3t3c//r7+tLIxb7U + qoZE/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+bagz/ + vKNy/+/t6P/////////////////+/f3/+vv6//z7+//+/v7///////////////////////7//v/7+/r/ + 7evm/8/Bpf+ui0j/n3Ee/66NTv/Rxav/8/Ht//z9/P/+//7//////////////////v/+//r6+f/l4dj/ + w7CK/6V+Nv+gdSb/uZ5r/9vTwf/09PL//v39//7//v/+/////v/+//7+/v/29fT/39jI/7uhb/+jdij/ + pXsy/8Csg//h3tP/9/f3//3+/v/+//////////////////////////////////////////39/f/j3dL/ + rYtL/5pnBf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBf+zmWj/3dzb//r6+tLNysLUq4pI/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lnA/+siEL/39jK//v7+/////////////39/f/s6OD/0cWq/97Wxf/6+/n/ + //////////////////////7//v///////v7+//j49//i3M3/u6N0/6F3LP+kezH/wayB/+Xg0//39/b/ + /f3+///////////////////////9/f3/8vHu/9jPu/+0mWH/n3Mj/6iCO//It5T/6+jf//v7+v/+/v7/ + /v////7////+//7/+/v7/+7q5P/QwKH/rYpI/55yHv+ujlH/0cau//Pz8f/+//7///////////////// + //////////////////////Py7v/ErYL/nGwP/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+0nG//3d3c//z8/NLQzsrUr49Q/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6BzHv/QwaL/9/f2//7///////// + //////z8+//Z0b7/rpFX/7yldv/08+/////+///////////////////////+//7////+///////8/Pv/ + 7Orm/87Bp/+vjlD/oHMh/66MS//Nv6L/7Ork//z8/P/+/v7//////////////////v7+//r6+v/q597/ + xLGM/6Z/OP+gdCX/uZ1p/9nQvf/x8O7//f39//////////////////7+/v/4+Pb/4dvM/7micf+ieS3/ + tJhg/+vo4f////7/////////////////////////////////+fn4/9TIsv+leiv/mWYB/5hlAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+6pHv/ + 4N/g//z8/NLQzszUsZVe/5pmBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5lmAP+ZZgH/ + m2oK/7uhbv/u6+X//v7+//////////////////39/f/z8vD/0MOo/8Cpev/08e3//f38//j59v/7+/r/ + /v7+//7////+//////////7//////////f39//f29v/m4dX/waqA/6N6L/+hdSn/vKN0/+DZy//29vT/ + /f39//7//v/+/////v7///7////9/f3/8vHv/9rRv/+5nWn/oHQl/6Z/N//FsYv/6ufe//r6+f/+//7/ + /v//////////////+/v7/+zq5f/Wy7P/3NK8//j49v///////////////////////////////v/9/f3/ + 5d/W/7CQU/+aZwb/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tqC//ArYr/5ubm//z8/dLX1tPUtZxu/5pnB/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+aZgP/q4U9/9/XyP/7/Pv//v/+/////v/////////////////9/f3/ + 7evk/+Tf0P/6+vj/8O7p/82/m//Vyaz/7+3o//v7+//+/v////7////+/v///v///v7///7+///9/P3/ + 8O/r/9PIsf+wkVT/n3Ig/6qGQv/LvJ3/6ujh//r7+v/+//7///7////+///+/v7///7+//v7+//q5+D/ + x7aT/6eBOv+gciL/tJdf/9rRvP/y8e///P39//////////////////7+/v/7+/v/+/v7//7+/v/+//// + //////////////////7///7+/v/z8e//xa+H/51uEv+ZZgH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51tEf/Ftpn/7e7t//39/dLZ2tnU + vKiD/5tpC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAf+gcRn/zbua//f29P/+/v7/ + /v////7////////////////////+/////f39//z8+//+/v7/6OPW/66NTP+keSz/vaV2/93Wx//19PP/ + /v3+/////////////////////////v7//f7+//f49//m49f/xLCI/6Z+Nv+gdSj/uJ5r/93VxP/39/T/ + /f39///////+///////+//7+///9/f3/8/Px/9nSwP+4nmv/oXYo/6aANv/FsYr/5uLY//r6+f/+/v7/ + ///////////+//7//v/+/////v/+/////////////////////v/+//n6+v/Zzrn/pXwu/5lmAf+ZZQH/ + mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6BzHf/Gu6j/8PDw//39/dLg4ODUwbOX/51uE/+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQD/ + mWUB/5poCP+2mWH/7enh//7+/v/+/////v/+//7+/v/9/f7//v7+//7+///+/v7////////////+/v7/ + 9fTx/9jNuP+zlFr/nnIi/6mGQv/LvZ7/7uzm//v7+//+//7////////+/////////v/////////9/f3/ + 8/Lw/9XLtv+xk1n/n3Mi/6qFP//Lu5n/6OXd//r6+f////7////+///////+/////v7///v7+//u6+T/ + zLyc/6uIQ/+fcyH/spNY/9jOt//x8Oz//Pz8//////////////////////////////////////////// + /f38/+Xh2f+ylFj/mmgH/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgD/mGYA/6N8Lf/Jw7b/8PHx//39/tLu7u/Uy8Kv/6F0Iv+ZZQD/ + mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQD/mWYC/6eANP/b0sD/+vr6//////////7//P39/+7t5//i2cz/ + 6ubf//v7+//+/////////////////////v7///v6+f/l4Nb/w62F/6R9Mf+hdyf/uaBu/93VxP/09PH/ + /f3+///+/////////////////////////v7+//f39//m49r/ybiR/6Z/Nv+fcyT/tZhk/97VxP/19PL/ + /f39/////v/+///////////////+/v7/9vX0/+Dayv+8onP/o3ks/6V9M//Aq4P/6efg//7+/v////// + /////////////v////7///7//v////7/9vXy/8Wyjf+ebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYC/6qHRP/V0sz/ + 9fb2//79/tLu7u7UzMi+/6eBN/+ZZQH/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/nnAX/8i2kv/08/H/ + /v/+//7//v//////+fn4/9LIr/+uj1L/w6+J//X18////////////////////////v////7+///9/P3/ + 8vDs/9XMtv+zlVv/oHMk/6mDP//Kupn/6ufg//v7+v/+/v7//////////////////v7///7+/v/9/v7/ + 9fTx/9jPu/+0l2H/oHQk/6mDPf/ItpL/6OTc//r6+v/+///////////////////////+//v7+//u7ef/ + 0cOl/6yKSP+riUX/4tzN//7+/v///////////////////////v/+//7//v/7+/v/3NPA/6iBNf+YZgL/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+YZgD/mWcF/7KXY//b29n//Pz8//7+/tL19fXU19XQ/66QVP+ZZgP/mWYB/5pmAf+ZZQD/ + mWUA/5lmAP+aaAf/tphd/+vn4P/9/f3////////////+////+/z8/+vo4f/ArIT/tppk/+7s5//9/f3/ + +fn3//j39v/9/f3//v////7//////v7//v7+//r6+f/o5Nz/xrSP/6eBOf+fdCP/tptk/9rRvv/y8e// + /f39/////////////v///////////////v7///r6+v/n5Nz/yLeS/6mEPf+gdCP/tJdf/9nPu//08/D/ + /v7+//////////////////7////9/v7/+Pj2/+Pd0f/c1MD/8/Pw//7///////////////////////// + //////39/f/r6OH/t5pj/5toCP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/m2oN/72rh//j4+L//f39//3+/tL6+/vU + 39/e/7mjev+baQr/mWYA/5lmAf+ZZgH/mWYB/5hmAv+lfS7/2s+6//v6+v/+/v7///////////////// + //////z8/P/e1sX/xbGN//Hu6v/29fP/08aq/8q5l//m4tj/+vr5//7+/v///v/////////////9/f3/ + 9PTw/9rSvv+3nGb/n3Mk/6aAOf/Eso3/6ube//v6+v/+/v7////////////+//7////////////9/f7/ + 9fXy/97Wxf+4nWv/oHUn/6V+Nf/Fs4z/5eLZ//f39//+//7//v7+//7+/v/+/v/////+//39/f/9/fz/ + /v7////////////////////////+/////v7///T08v/HtpP/nnEZ/5llAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/ + oHQf/8i+qf/w8PD///////7+/tL7/PzU6erq/8e7o/+ecRr/mWYB/5hmAP+ZZgD/mWYA/51vEv/Drob/ + 8vHu//7+/v////////////////////////////7+/v/39vT/8O7r//r6+v/s6eL/s5RY/55wHP+ylFn/ + 1824//Hw7P/8/Pz//v7//////////////v7+//r6+v/r6OH/xrWS/6eCPP+fcyH/uJtj/9rQvP/z8u// + /P39//7//v////7///////////////////////v6+v/r6eL/zLyb/6uGQf+fciH/sZJX/9PJsv/z8+// + /P39///+///+/v//////////////////////////////////////////////////+/v7/93VxP+pgjn/ + mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgL/qIM9/9TQx//29vb///////7+/tL8/f3U8fHx/87Jv/+ngjv/ + mWYC/5lmAf+YZgD/mWgG/7OVV//o5dv//f39/////////////////////////////////////////v// + /v7+//7////19PH/08Wt/6+PUP+ecBz/pH0z/8CthP/i3tT/+Pj3//////////////////7////9/f3/ + 8/Pw/9jQvv+3nGf/oXYn/6d/OP/FsYz/5+Ta//n6+P/+//7////////////+/v7//v7+///////9/f3/ + +Pb1/97Xxv+4n2z/oHUo/6Z+Nf/EsYj/6OPY//j39//+/v7///////////////////////////////// + ///////////9/v7/6+nj/7meZ/+aaQr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+ZZwb/tZpp/93b2f/7+/v/ + //////39/dL9/f3U+fr6/9nY1v+zmWb/mmgH/5hmAP+ZZgH/oHQd/87Dqv/5+Pj////////////+//7/ + /////////////////////////////////v////7////+/v7/9/f2/+Tg0//EsIX/pn4x/51vGv+uj1H/ + 08eu//Px7f/9/fz////////////+/v///v/+//r6+v/t6uT/zr6g/6qGQ/+gcyP/spJX/9jNtf/y8Oz/ + /Pz8//////////////////7//////////v////v7+//q6OL/yr2f/6yIRv+fcyD/sZFU/9PHr//z8u// + /v7+///////////////////////////////////////29fT/y7ub/59yG/+ZZgH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAP+dbxb/w7WY/+no6P/+/v7///////7+/tL9/f3U/v7+/+jo6P/EtZj/n3AX/5lmAf+ZZgH/ + nXAW/8CqgP/n4tn/+fj4//3+/v/+/v7//v////////////////////////////////////////////// + //////39/P/z8u//2c63/7KUWf+dcB3/pHou/8Gsgf/k4NT/9/f2//7+/v///v/////+///+///+/v7/ + 9fXz/9/Yx/+6oG3/onco/6V8Mv/Aq4L/4t3S//n5+P/+/v7///////7////////////////////9/f7/ + 9vb0/+Lczv+8pHb/oncs/6yKSv/m4NT//v7+///////////////////////+/////v////z8+//g2Mn/ + q4U//5lnA/+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+mgTj/083D//Ly8/////////////7+/tL9/f3U + /v7+//Hx8f/PysD/p4M8/5hmAv+ZZgH/mWYC/55vFv+zk1j/1Mmz//Dv7P/8/P3///7///////////// + ////////////////////////////////////////////////+fn4/+fi2P/Gsov/p380/51wG/+ujk7/ + 0cWq/+7s6P/8/Pv//v7+///////+//7//v/+//v7+//t6+b/z8Cj/6uIR/+eciH/sI9S/9XJsP/x8Ov/ + /Pz8///////////////////////+/////v////z8/P/u7Of/0cas/8m5lv/w7un//v/+//////////// + /////////////////v7+//Hv6f+8oW7/nGoM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poCP+1nW7/ + 3dzZ//r6+v////////////7+/tL9/f3U//////j4+P/Z19b/t59y/5ppCv+YZgH/mGYA/5lmAf+aaAj/ + pHos/8Krgf/k3tP/+Pj3//7+/v////////////////////////////////////////////////////// + //////z8/f/08/D/2dG8/7icZf+fciH/oncp/7ykdf/e2Mr/9fXz//3+/f/+/v7//v////7//v/9/v7/ + 9vb1/9/Yy/++pnf/o3kq/6R6Lf+/qn3/39rN//b29f/+/v7///////////////7//v////7////+/v7/ + +fn4//b29P/8/Pz//v/////////////////////////+/v7/9fb0/87Aov+idiD/mWYB/5lmAf+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/6B0IP/Hvaf/6+vr//7+/v////////////7+/tL9/f3U//////7+/v/q6uv/ + yL6r/6N4J/+YZQH/mWYA/5lmAf+YZgH/mWYB/51tEf+wj1H/0sSs/+7r5//8/Pz///////////////// + /v/+/////v////////////////////////////7////+/v7/+vr6/+rm3//Lupn/qoQ9/51vGf+qh0T/ + y72e/+7t5//7/Pz//v/+//7//v/+/////v/+//v8/P/w7un/1Miu/7CPUP+ecSL/rIhK/9DDp//w7un/ + /Pz8//7+/v/+/v///v////7+/v/+///////+///////////////////////////////////////8/Pz/ + 39nM/6uHQ/+aZgP/mWUA/5llAP+YZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYE/62OUv/X1c//9vb2//////////// + //////7+/tL9/f3U///////////29vb/09HN/7GVXf+aZwb/mWYA/5lmAf+ZZgD/mWUA/5llAf+ZZgb/ + ongn/7yldv/l3tH/+Pf2//7+/v/+//7//v/+//7//v////////////////////////////////////// + //////39/f/19fL/4djG/7meaf+gdCL/oXUm/76ldf/h2cv/9fX0//z9/f/+///////////////+/v7/ + +vn4/+Ld0P++p3v/o3kt/6N4Kf+9pHX/4NnK//b18//+/v3///////7//v/+//////////////////// + //////////////////////7+/v/v7un/v6h4/5trDf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/ + nnAX/8KylP/i4uH//Pz8//////////////////7+/tL9/f3U///////////9/f3/4+Pi/8K2nf+fdCD/ + mWUB/5lmAf+ZZgD/mWYB/5hmAP+ZZgH/mWYB/5xrD/+vjEr/0sSo/+7s5//8/Pv//v7+/////v////// + ///////////////////////////////////////+///+////+/z7/+vo4f/MvZ3/rYlH/51vG/+siUX/ + yLqZ/+fl3v/6+/v////////////+/v7///////z8/P/v7en/1cqy/7GRVP+gciL/q4dG/8u9n//t6+X/ + /Pz8//7//v////////////////////////////7+/v////////7///j49//Pwqb/oncj/5lmAv+YZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAf+ZZwT/q4pI/9LOxf/v7+///v////////////////////7+/tL9/f3U + ////////////////9/b3/9fU0P+xlFv/mmcI/5lmAf+ZZgD/mWUB/5hmAP+ZZgH/mWYA/5lmAP+ZZgX/ + o3cm/76kdP/g2cr/9/b1//39/v////////////////////////////////////////////7+//////// + /v/+//79/v/29vT/4drL/8Codv+idyb/nnMh/7WcZ//d1sT/9fTy//39/f/////////////+///+/v7/ + +fn4/+bi1//ArIL/o3sw/6B2Jf+6om//4drK//n5+P////////////////////////////////////// + /fz8/+Pd0f+ti0n/mmcF/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAf+ecBf/wLCQ/+Pi4//7+/v/ + /v/+//////////////////7+/tL9/f3U/////////////////Pz8/+Hi4v/FuqP/oncn/5hmAf+ZZgH/ + mWUA/5llAP+aZQD/mWUA/5llAP+aZgH/mmUB/5tqDf+rhj//zb2d/+vo4v/6+/r//v7+/////v/+//// + ///////////////////////////+///////////////+/////Pz8//Hv6v/PwqT/roxM/55wHf+ogz3/ + ybiW/+jl3f/6+vr//v7+//7+/v/+//7//v////z9/f/u7er/08mx/7aYXv+hdin/w66F//X18v////// + //////////////////////7//v/+////8/Ht/8Cpff+cbA//mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5pmAf+ZZQD/ + mWYA/5pnBf+ujlD/0s/H//T09P////////////////////////////7+/tL9/f3U//////////////// + //////T19v/V1NH/tZtq/5ppCv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/ + oHMe/7icaP/b0sH/8/Px//39/v/+//////////////////////////////////////////////////// + //////7+/v/39/b/497R/8Ktgf+kfC//n3If/7WZYP/Yz7z/8vLw//v9/P///////v///////v/+/v7/ + +fn5/+nm3P/QwaX/4tvM//r7+v/////////////////////////////+/v/5+fj/1sqx/6N5KP+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6F1Iv/EuJ//5OTj//z8/P////////////////////// + //////7+/tL9/f3U//////////////////////39/f/n5+j/ysGy/6aANv+YZgP/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+aZgH/mWUA/5lmAP+YZgH/mGYB/5ppCv+ogjn/x7WR/+jk3f/5+Pj//v7+///////+/v7/ + /v7+///////////////////////////////////////+/v///f39//Hw7P/Wy7P/sZBU/55xHv+mgTn/ + xbWQ/+Ph2P/4+Pf//v7+//7////+//7//v/+//39/f/6+fn//Pz7//7//v////7///////////////// + //////z8/P/h3NL/r45P/5pnBv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+ZZgH/m2oL/7aca//b2dX/ + +Pj4//////////////////////////////////7+/tL9/f3U///////////////////////////6+fr/ + 3dzb/7+tiv+dbxj/mWUB/5llAP+ZZQD/mWUA/5llAP+aZgH/mWUA/5llAP+YZgD/mWYA/5hmAP+YZgP/ + nnAa/7SWXv/Wy7j/8/Hv//7+/v/+//////////////////////////////////////////////////// + /v////7+/v/4+Pf/5+LX/8ayif+ngDT/n3Id/7CSVv/Vy7X/8/Lu//z9/f///////v////7///////// + //////7+/v/+//////////////////////////Py8P/CrIT/nG0R/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pmAf+ZZgP/qIM8/8vEtv/r6ur//v7+//////////////////////////////////7+/tL9/f3U + ///////////////////////////+/v7/7e3u/8/Mxf+xk1v/mmgJ/5hmAP+YZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/mWYB/5poCP+lfTD/yLON/+nl3P/5+vn//v7+///+///+//7/ + /////////////////////////////////////////////////f39//Tz8P/Xzrj/spVa/55yHv+lfTP/ + w6+H/+Xg1v/49/j//v7+/////////////////////////////v7///7////+/v//+vn5/9fMt/+mfC7/ + mWYC/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmAf+fdB7/wbGT/9/f3//7+/r///////////////// + //////////////////////7+/tL9/f3U////////////////////////////////+/v7/+Pk4//Iv6// + qII6/5lmBP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQH/mWYA/5lmAP+ZZgL/ + n28Y/7SVW//XzLb/8vHu//z9/P/+//7///////////////////////////////////////////////// + //////7+/v/5+fn/5ePZ/8i2kP+ogjn/nnEe/7CRU//Wzbf/9fXz//7+/v////////////////////// + ///+///////9/Pz/5uHY/7GSVv+aaAf/mWYB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQD/mGYA/5xsD/+1nm7/ + 1tTQ//T09P/+/v7//v////////////////////////////////////7+/tL9/f3U//////////////// + /////////////////v7///r6+v/e3t3/wbGU/6J2I/+ZZQH/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5llAP+ZZgH/mGUB/5lnCP+mfC//xK+G/+Tf1P/49/b//f7+//7///////// + //////////////////////////////////////7////+/////f39//X08f/d1MD/t5tk/6B0Jf+6oW3/ + 8O7p//7+/v///////////////////////v7///7+/v/y8e//wq+I/51vFP+YZgH/mWYB/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mmgI/66NUP/PysD/8PDw//7+/v////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////7////29/f/19fS/7qkfP+ebxj/ + mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZgL/ + nG0S/7CPUP/RxKv/7u3o//z9/P////////////////////////////////////////////7///////// + //////7////7+/v/6ufg/8/Cpf/Y0Lv/+Pj3//////////////////////////////7///v7+//b0r7/ + pn4x/5lmAv+ZZgD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgT/qYM9/8m/rv/l5eX//Pz8/////v////7/ + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + ////////////////8/Pz/9PPyf+1m2r/nGwR/5hlAf+aZQD/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lnBv+ieCj/vad5/+Tf0v/49/b//v7+//7///////// + /////////////////////////////////////////////////v7+//r5+P/6+vn//v7+//////////// + /////////////////f39/+rm3v+2mGD/mmkI/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmA/+kfC// + xbmf/97e3f/5+fn///////////////////////////////////////////////////////7+/tL9/f3U + /////////////////////////////////////////////////f7+/+3u7v/PycD/sZVd/5trDv+ZZgH/ + mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+YZgL/ + nGwQ/6+MS//SxKj/7evl//v7+//+/v7///////////////////////////////////////////////// + ////////////////////////////////////////////////9PTy/8m4k/+fcRf/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYD/6F3J//BspP/3Nza//X19f/+//////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////z9/P/o5+f/y8W7/7CTWv+baw//mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZgD/mWYB/5hmBf+hdiT/uqBv/97Xx//39/b//v7+//////////// + //////////////////////////////////////////////////////////////////////7+/v/7+/v/ + 3tXD/6iBNv+ZZgL/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZgL/oncj/7yriv/Y1tT/9PX1//7+/v/+//// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////7+/v/4+Pj/8rEuf+xlF3/nGsP/5llAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYA/5llAP+YZQH/ + m2oM/6yIQf/Pv6D/7enj//v7+v////////////////////////////////////////////////////// + //////////////////////3+/v/u6uT/u55n/5tpCf+YZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+ieCf/ + vayK/9fW0//y8/P//v7+//////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + +/v7/+np6f/Oyr//tZll/51uFf+ZZQH/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+YZgD/mGYA/5lmBP+hcx//uZ5r/9zUxP/19fP//f3+//7///////// + /v////////////////////////////////////////////7//v/+//T08v/JuJj/oHMb/5hmAP+aZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5hmAf+YZgD/mWcF/6R8MP+/sJL/29rX//X29v/+//////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////7///z8/P/n5+f/0M3G/7mid/+fcx7/mGYD/5lmAf+ZZQH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5hmAP+ZZQH/ + m2kL/6qDPP/KuJT/6ebd//n5+f/+/v7///7////////////////////////////////////////+//// + /Pz8/93Wxv+ogjr/mWYD/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmYB/5llAP+ZZQD/mmYB/5lmAf+aaAn/qIQ//8O3oP/a2tn/9PX1///+//////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + ///////////////////////////////////////////////////////////////////////////7+/v/ + 6+zs/9XTzv++rYv/pHww/5lnBv+YZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/mGYA/5llA/+fchr/tZhh/9fNuf/z8/D//f7+//////////// + ///////////////////////////+/v7/7+zn/72jb/+baQn/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/5xtEv+vkVf/ + yMCw/+Dg3//39/f//v7+//////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + /////////////////////////////////f39//X19f/d3Nv/xLij/62MTf+caxH/mGUB/5lmAP+ZZgH/ + mGYA/5lmAP+ZZQD/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+ZZgD/mWUA/5llAP+ZZQH/ + mmgK/6Z9NP/JtpH/6OTb//j49//+/v7//v///////v///v///v////7////29fX/zb2g/6F0Hv+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZQD/mWYB/5lmAf+ZZgD/ + mWYA/5llAf+aZwT/oXYj/7ehdf/MycD/5ubn//r6+v////////////7///////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + ///////////////////////////////////////////////////////////////////////////49/f/ + 4eDh/87Ivf+5oXT/ongm/5lmBv+YZQH/mGYB/5lmAP+ZZgD/mGYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5llAv+ebxb/sZNX/9LGsP/v7+v//P39//7//v/+//// + /v////v8/P/f2Mr/q4dC/5lnBP+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mGYA/5llAf+ZZgH/mWYC/5xsEf+qh0X/wbSZ/9jX0//r7O3//Pz8//7///////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + //////////////////////////////7/+fn5/+rq6v/W1dH/xLef/66NUf+dbhj/mGUE/5hmAP+ZZgD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZQH/ + mWcI/6R6Lv/Aq4H/5uHX//j4+P/+/v7//v7+//Dt6f+8pHT/nGsM/5hmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGUB/5lmAf+aaAj/pHot/7mhd//Mxrv/ + 4eHg//n5+P/+/v7//v////7///////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + /////////////////////////////////////////////////////////////////v////3+/v/19fb/ + 5eXl/9HMxP++q4j/qYQ+/5xsEf+YZgP/mGUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/5lmAP+ZZgD/mWUA/5hlAv+dbRL/spBS/9THr//x7ur/9vX0/9LFq/+jdyP/ + mWUB/5lmAP+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+YZQH/ + mmcG/6F1I/+ylmD/yL2p/9fW0//p6en/+vv7/////v/+/v///v/+//////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7//Pz8/+3t7f/b2tr/ysS3/7qlff+pgz3/nWwT/5lmBP+ZZQH/ + mWYB/5lmAf+ZZgD/mWYA/5hmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5hmAP+YZgH/ + mWYH/6N4K/++p3z/zsKr/6yJR/+aZwX/mWUA/5llAP+ZZQD/mWYA/5llAP+ZZgH/mWYA/5lmAP+ZZgD/ + mWYA/5hmAf+ZZgH/mGUB/5loCf+hdSP/spNc/8S3n//T0cz/5eTk//f3+P/+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v/5+fn/ + 5+jo/9nZ1//Nx7v/vqqF/6yJSv+fch//mWgJ/5llAv+YZgD/mWUB/5hmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/5hlAf+baw//oXYi/5ppCv+ZZQH/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+ZZgD/mWYA/5lmAP+ZZgD/mWYB/5lmBP+cbBH/pX0y/7Wbaf/FuaP/1tTO/+bm5v/09PT/ + /f39//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v///////v39//n6+v/v8PD/2tva/9DMxP/Et5z/tZpp/6Z/N/+ebhb/ + mmcJ/5llA/+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWYB/5lmAP+ZZgD/ + mWYB/5hmAP+ZZQD/mmYB/5pmAf+ZZQD/mWYA/5lmAP+YZQD/mGUC/5lmBf+baw7/oncm/6+NT/+8qYT/ + ycKy/9jW0//n5+f/9/f3//39/f/+/////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f3U//////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+///////9/v7/ + +fn6//Hy8v/g4OD/2dfU/83Hu/+/sJP/tpxr/6uGRf+idSP/nGwS/5poCP+ZZQT/mGUB/5llAP+ZZQD/ + mWUA/5hlAf+ZZQD/mWUA/5llAP+YZgD/mWYB/5lmAf+ZZgD/mWUA/5llAf+ZZQL/mmcG/5tqDf+ecRv/ + pX80/7CSWP+8qIP/x72p/9PPyP/d3dv/6+zs//j4+P/9/v3//v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/tL9/f3U//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7////8/Pz/9/f3//Dx8f/f4OD/1dTS/9DMwv/HvKn/ + v66N/7Wcbv+vjlL/p4I8/6R5K/+gcyD/n28Y/51tE/+caxH/nGsQ/5trD/+caxD/nW0T/55vF/+gcx7/ + o3gn/6Z/Nv+sikr/tJhk/7ungf/FuKD/zse6/9XSzv/e3t7/6Onp//X09f/7+/v//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tL9/f3U + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////8/fz/9vb2//Ly8f/q6uv/5ubm/97d3P/S0cz/z8rB/8zEtf/Gu6b/xLac/8Gwkv++rIv/ + v6yK/76riP++rIr/wLCQ/8K1mv/IvKb/ysGw/87Ivf/T0Mr/2tnW/97e3v/m5eb/7e3u//f3+P/8/Pz/ + /v7+/////v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/tL9/f3U//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/////v/+/////v/+/v7//f7+//v6+//19vb/ + 8/Pz//Hx8f/s7O3/6urr/+Xl5v/g4eH/4+Pj/+fn5//h4eD/4uLi/+fn6P/q6+v/7u/v//Hx8v/19fX/ + +vr7//z8/P/8/f3//f7+/////////v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7+/tL9/f3U//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v/////////+/////////////////////v7+//3+/v/9/f3//P39//7+/f/8/fz/ + /f39//7+/v/+/v7//v///////////////v/////////+/////v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/tL9/f2x/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V/f391f39/dX9/f3V + /f391f39/dX9/f3V/f391f39/dX9/f3V/f391f7+/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAA + AAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA/v7+vf7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/7+/vf8vLy3+Xk49/W08vf + yb6r372rid+0mWbfq4lI36V9Md+hdSPfoHEb355wGd+ecBrfoHMe36J4Kd+pgjvfsZJZ37qkfN/Dtp7f + 083D3+De3N/u7u7f+fn53/39/d/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+vf7+/tj///////////////////// + /////////////////////////////////////////////////////////////////v7+//j5+f/u7u3/ + 2tfQ/8e7pP+3nm7/qYQ+/6B0Hv+baw3/mmcF/5llAv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUB/5lmA/+aaAn/nm8W/6Z9Mv+xk1v/w7KU/9TOwv/k4+L/9fb2//3+/f////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + ///////////////////////////////////////////////////////////////////////////+/v7/ + +vr6/+jo5//Ry7//vKeB/6mEP/+ebxb/mWcF/5lmAf+ZZgD/mGYA/5lmAP+ZZQD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgH/mWYD/5trDv+key7/tJpm/8rArP/h39z/ + 9PT0//7+/v////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+2P////////////////////////////////////////////////////////// + ///////////8/Pz/7u7t/9bPw/+5onb/pHsu/5ppCf+ZZQH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5pnBf+aaAj/mWUB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmBP+gcxz/sJNa/8m/q//m5eL/9/f3//7+/v////////////////////////////////////// + /////////////////////////////////v7+2P7+/tj///////////////////////////////////// + //////////////////////3+/v/z9PT/3NnT/7+siv+mfjP/mmkJ/5lmAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5pnBP+wj0//wKl+/6R6Kv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lnBP+hdSH/uJ5v/9PNwf/u7e7//Pz8//////////// + //////////////////////////////////////////////////////7+/tj+/v7Y//////////////// + //////////////////////////////////////39/f/s7ev/zsW0/66PU/+cbBH/mWYB/5lmAP+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAf+leyn/4NbE//f29P/e1cH/tZZb/51tEv+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/5poCP+ngTj/ + xLWZ/+Xk4f/6+vr////////////////////////////////////////////////////////////+/v7Y + /v7+2P////////////////////////////////////////////////v7+//m5eP/xLOV/6V8Lf+aZwT/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/5lmAP+caw3/x7OL//n49/////// + /v79//Du5//Mupf/qH8x/5poBv+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYC/59yG/+6onb/2tfQ//b29v/+/v7///////////////////////////////// + /////////////////v7+2P7+/tj///////////////////////////////////////////n5+f/g3dn/ + u6V7/59xGv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwP/ + s5JS/+3q4//+//7////////////+////+vr4/+TczP+4mmT/nm8U/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgD/m2sN/7GTWv/Vz8T/9fX0//////////// + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + ///+//n5+f/c2tT/t55u/51tEP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/pHkk/97Tvv/+/v3////////////////////////////+/v7/8e/q/9HAoP+pgTf/ + mmgH/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + rYxM/9PMv//y8vL//v/+///////////////////////////////////////+/v7Y/v7+2P////////// + //////////////////////v8/P/e3Nf/tp5t/5xsDv+YZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGsL/8exhv/4+Pb///////////////////////////////// + ///////////7+vn/5N3Q/7yhbP+gchn/mWUC/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5poBv+siUj/0sy///b29v////////////////////////////////////// + /v7+2P7+/tj///////////////////////////39/f/n5uL/uqN3/5xsD/+ZZgD/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7GOSv/t6eD//v/+///////9/f3/ + /v7+//////////////////////////////////3+/v/08u7/0sOn/6uFPv+baQn/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/66NUP/Z1Mv/+vr6//////////// + //////////////////////7+/tj+/v7Y//////////////////////3+/v/r6un/wK+N/55wF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6J1H//azrb/ + /Pz8/////v/29fL/2M20/+jj1v/9/v7//v7+//7//////v////////////////////7///r6+v/p49f/ + w6p7/6F0H/+ZZgL/mWYA/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + tJhk/+He2f/8/Pz////////////////////////////+/v7Y/v7+2P////////////////7////z8/L/ + y8Cs/6N4J/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tqCf/CqXv/9vXz//7//v/+//7/9fPw/8e2kf/SxKX/9vXy/+Tez//y8ez//v7+//////////// + /////////////////v7+//b18v/WybD/r4xI/5xqC/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/51tEf+9qoX/6ejn//7+/v///////////////////////v7+2P7+/tj///// + ///////////6+/v/29fP/6uIRv+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/mWYA/5lmAv+tiEH/6ePZ//7+/v////////////7+/v/v7OT/7Oje/+fh1P+siUX/ + u6Bu/+fh1P/6+vr//v///////////////////////////////Pz8/+vm3f/DrID/o3ck/5lmA/+ZZQD/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZQH/ongl/8rBrf/19fX///////////////// + //////7+/tj+/v7Y///////////+/v7/6Ofl/7qjeP+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+hcxv/1siu//z8+/////////////////////// + /v7+//7+/v/29PH/z76c/6qEO/+rhkH/0cKk//Tz7v/+/v7////////////////////////////+/v7/ + 9/b0/9vRuv+ykFH/nGoO/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pmA/+ujlH/ + 3NrU//v8/P/////////////////+/v7Y/v7+2P//////////9vb2/87Fsv+idyT/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aaQf/vaNw//X08f////// + /Pz7/+ji1v/n4dT//Pz8//7////+/////v7///r6+f/k3c7/vJ9q/6V7Lv+9onD/5d7R//v7+v////// + /////////////////////////v/9/fz/7Ojg/8izi/+keSj/mWcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmYB/5llAP+ZZQD/nG0R/8Cvjv/u7u3//////////////////v7+2P7+/tj//////f7+/+Xj4P+yll// + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + qoQ6/+Xf0v/+/v7///////n5+P/PwqX/wKt///f28//5+fj//Pz8/////////////v7+//Px7P/Sw6P/ + rIdC/6qFP//RwqP/8vDs//39/f////////////////////////////7+/v/5+ff/3dPA/7OUWP+dbRD/ + mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ogzv/2NTL//z8/P////////////7+/tj+/v7Y + //////j5+f/OxK//oHMc/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/n3AW/9LEpv/7+/r///////////////7/8vDr/9zTv//w7un/yLSM/9PFqP/18+// + /v7+///////+/v//+/v6/+bg0v+8o2//pXwv/7mdaf/k3tD/+vr5//7///////////////////////// + //////39/f/v7Ob/zLmV/6Z9MP+aZwb/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/nGsM/7+siP/t7e3/ + /v7+///////+/v7Y/v7+2P/////p6Ob/tJll/5lnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mmgG/7qfaf/z8u3//v////7//v/+//7///////7+/v/9/fz/ + 9PPv/8Cqff+mfTL/v6Vz/+jh1P/7+/r//v/////////+/v7/9PPv/9XHqv+siUb/qoZA/8+/n//x7+r/ + /v7+//////////////////////////////////n5+P/h2cn/uZxk/55vFf+ZZgL/mWYA/5lmAP+ZZgD/ + mWYA/5llAf+phT//3NnS//z9/f///////v7+2P7+/tj6+vr/08u9/6J4Jv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYB/6iBNP/k3c///f39//7//v/y8Ov/ + 6eTY//r6+f////////////7+/v/z8u7/08Wo/66KR/+siEX/08Sm//Xz7//+/v7////////////7+/v/ + 5uHV/8Gpef+lfTH/uZ1o/+Xez//6+vn//v///////////////////////////////f7+//Pw7P/OvZ3/ + qYE2/5poB/+ZZgH/mWYB/5llAP+ZZQD/nW0S/8W3nf/09PX///////7+/tj9/v3Y8PDv/72pg/+aaQj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55uE//NvJr/ + +vr5///+///9/fz/2tLA/7mgbv/u6+L//f39//39/f/+/v////////z8+//o49b/vKNy/6d/NP+8oW// + 5d/R//v7+v////////////7+/v/29fH/1siu/66MSv+rhj//zr2b//Lw6v/+/v3///////////////// + ///////////+////+vr5/+bf0P+6nmr/n3AY/5lmAv+ZZgH/mWYB/5lmA/+ylV//5+Xk//7+/v/+/v7Y + /f392OPh3f+si0r/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYA/5pnBf+6nGT/8e/q//////////////////b28//UyK7/7+zl/+DWw//XzLL/9PPv//7+/v////// + /v7+//Tz7//Wya7/rotJ/6yIQ//RwqP/8/Ht//7+/v///////v////v7+//q5dv/wap9/6V9M/+4mmL/ + 39jG//n49//+///////////////////////////////+/v7/8/Ht/9LDpf+qhDv/mWcE/5lmAf+ZZgH/ + pHss/9bRxv/8/Pz//v7+2Pr6+tjUzL3/oXUh/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAf+nfi//5NzM//7+/v/////////////////+/v7/+vr4//r6+f/QwKD/ + qoU//76ldf/l39P/+/v6////////////+/v7/+jj2P/BqXv/pn80/7uhbv/m4NP/+/v6//7//v////// + /v7+//X08f/Zzrb/sZBR/6iCO//KuJP/8e7o//39/f////////////////////////////7////5+Pf/ + xbGK/5tqCf+ZZgD/mGYA/51tEP/GuJ3/9fX1//7+/tjz8/PYxLOU/5tqC/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+dbRD/zLmV//r6+P///////Pv6//Ty7f/7+vn/ + ///////////+////9/f1/9zRuv+ykVb/rIlH/9LDpf/08u7//f7+//7////9/v7/9vXy/9XIrv+vjk7/ + rYlG/9HCpP/y8e3//v7+//7//////////f38/+vn3f/DroP/p381/7WYXv/e1sT//Pv7//////////// + ///////////+/v7/6eLW/6uFO/+ZZgH/mWUA/5lmAP+ZZwT/uKBy/+/u7v/9/v3Y7Orp2Leda/+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/tJVZ//Dt5/////// + /////+nm3f/ArID/5NzL//39/f/6+vn//f39//7////9/fz/7Ojg/8Wwif+qhUD/vKJw/+Xe0P/6+vr/ + /v////7////8/Pv/6+fc/8Krff+mfzb/u6Jv/+bg0//6+vn////////////+/v7/9/b0/9vRu/+zlFj/ + v6Z2//b28v//////////////////////9PPv/72jcP+baQf/mWUA/5llAP+ZZgD/mWYB/6yKSv/j4d7/ + /f392OLg3NisiUf/mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + pXsq/97Vwv/9/f3////////////4+Pb/08es/+HZxv/x7eb/ybaQ/+DYx//5+ff///7///7+///49/X/ + 3tTA/7WXXf+siUf/z7+g//Hv6v/+/v7//v////7+/v/29fL/2My0/7CPT/+rh0H/z7+f//Ty7f/+/v7/ + //////7////9/fz/8O3m/+/r4v/9/v3//////////////////Pz7/9fJrv+gchr/mWYA/5llAP+ZZQD/ + mWYA/5llAP+kfC3/2NPK//v7+9jVz8bYpXwv/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgD/nGwO/8m2jv/5+ff//v////////////////////b28//4+Pb/7eje/7aZYf+qhUD/ + zbuX//Hv6f/9/f3//v/+//39/f/v7eb/ybeT/6mEP/+5nWf/5N3N//n5+f/+//////////38/P/q5tv/ + wal9/6d/Nv+6oGz/4tzN//v6+f/+/////////////////////////////////////v7+/+jj2P+siEH/ + mWYC/5lmAf+ZZQD/mWUA/5llAP+ZZQD/oHIb/9DIuP/5+fnYzcOz2KB0H/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7GRUf/t6uP//v7///7+/v/5+Pf/+/r5//7+///+//// + /v////z9/P/t6+X/yLeU/6yHRf+3mmP/3dXB//n59//+/////v7///j49v/d1cL/tpli/6yIRv/Mu5n/ + 8e7p//7+/v///////v7+//b08v/ZzbX/sI5P/6qFQP/RwaH/8/Hs//7+/f////////////////////// + //////f29P/BqXr/m2oJ/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/51tEP/JvaX/9fX12Mi8pdiecBX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWUA/6R4Jf/d0r7//f39///////08/D/ + y7ua/9bKr//7/Pz//f39//7+/v/+/////v////n5+P/i28v/t5tl/6mFP//LuJP/7uzk//z9/P/+//// + /f39//Hv6P/Mu5j/q4hE/7eaZP/e1sT/+Pj2//7//v////7//Pz8/+rk2//ErYL/qIE4/7+neP/z8u3/ + //////////////////////z8/P/Zzbb/oXUf/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagv/ + w7SX//P09NjBtJnYnW4R/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5trDP/Gr4X/ + +Pf1////////////+/r5/9nQu//Nvp7/+Pj2/97Vwf/i283/+vr5//7////+/////f79//Hv6v/Ovp7/ + rIhG/7SWXP/e1MH/+Pf2//7+/v//////+vn4/+Pczf+6nmn/qYQ+/8i1kP/v7eb//f39//7////+/v7/ + 9/f0/9vQuv/Pv57/9/bz//////////////////7////t6OD/sI1J/5lnAv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/m2gI/8CujP/y8vLYv6+T2JxtD/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lnA/+wjkv/7eng//7+/v/////////////////4+PX/8vHs//f29P/CrIH/q4dF/869nf/y7+r/ + /f39///////+//7/+vr5/+Xe0f+8onL/q4ZC/8Wxif/t6uL//f39///////+/v7/8vDq/829nf+tiUn/ + tphf/97Uwv/5+Pb//v7+//7//v/9/f3/+/v6///+/v////////////7////49/X/x7GG/5xrC/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poB/+/q4f/8vLy2MCxldicbRD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+hdR//2s62//39/f///////Pz8//z7+v///v7////////////9/v7/ + 7+3m/8u4lf+rhkH/uJpl/+HZyf/7+vn//v/////////+/v7/9PLu/9DBpP+siUf/s5Ra/9vRvP/39vT/ + /v7+//7//v/6+vn/5d7Q/7yhbv+qhED/xrKL/+vo4f/8/Pz////////////////////////////9/f3/ + 2tC6/6N3JP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAf/vquI//Dw8NjDtp3Y + nW4S/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/wqt9//b18////////f38/93Uwf/QwqT/ + +fj2//////////////////7//v/6+fj/4NjG/7WZY/+riEX/zbyY/+/s5f/9/f3////////////7+/r/ + 5uDT/72ldf+ogz7/xa+G/+3p4P/8/Pz//v////7+/v/z8ez/08Om/6yKR/+ylFr/5eDT//7//v////// + ////////////////7+vk/7OSUv+ZZwL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + m2kJ/8Cvjv/y8vPYxryo2J9xGf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgL/ropE/+vm3P/+//// + //////39/f/i3M3/wq2C//Ty7f/6+vj/+/v6//7////+//////////39/f/w7ej/z76d/6uHRP+0ll7/ + 39XD//n49v/+/v7//v////7+/v/08u7/0sSp/7CNT/+xkFT/2My0//f28//+/v7///////z7+v/l39L/ + yreS/+rl2f//////////////////////+fj2/8eyi/+dbA7/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrDP/IuZ7/9fX12M3GuNiidyT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + oXMc/9jKsP/8/Pv/////////////////+vr5/+zp3//49/T/0cKg/828mP/v7OX//Pz9/////////v// + /v7///r6+f/i3M3/u59s/6qFQP/Gsoz/7eri//39/P////////7///z7+//n4tf/vaV2/6mDPv/DrYL/ + 6ubb//z8/P///////v7+//v7+v/9/f3//////////////////f39/+DVw/+keij/mWYB/5hmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ebhT/z8Sv//n5+djV0MnYpoA2/5llAP+ZZQD/ + mWUA/5lmAP+ZZQD/mmkH/7+kcv/29fH//v////7+/v/9/f3//v7+//7////+/v7/+/v6/9bJrv+uikn/ + s5Vc/93TwP/4+Pb//v/+/////////////f7+//Ty7f/RwqX/rIlI/7OUWf/c0bz/9/b0/////v////// + /v7+//X08f/Xy7L/sI9R/7COUP/Xy7L/9fTx//7+/v///////////////////////////+/r5f+0lVj/ + mmYD/5llAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/oXYi/9LMv//6+vrY + 4uHd2K6OUP+ZZQH/mWUA/5llAP+YZgD/mWYB/6uFPP/n4dX//v7+//7//v/r6N//1civ//Lw6//+//// + ///////////7+/r/5N3O/7ugbf+qhUD/x7KL/+zp4f/9/Pz/////////////////+vn5/+bh1P+9pHP/ + qIM+/8awiP/t6eD//Pz8/////////////Pz8/+vm3P/ErYP/qoVB/8azjP/4+Pb///////////////// + //////r6+P/MuZX/nW0Q/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/ + mWYB/6eCOf/f3NX//Pz82Ojo6Ni4oHP/mmcE/5pmAP+ZZQD/mWYA/59xF//Uxaj/+/v7///////+/v7/ + 6eXc/7mgb//g18b//Pz7//n49v/9/f3//v////79/f/z8u3/0sOn/66MS/+yk1b/2s+5//b18//+//// + //////7////+/v7/9PLv/9PFqf+vjU3/sZFU/9jNtv/39vT//v7////////+/v7/9/f0/9zRu//YzLL/ + +/r5//////////////////39/f/j2sv/p34v/5hmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lmAv+xlFz/6ejm//39/djz9PTYxrid/5xsD/+ZZgD/mWYB/5poBv+7n2n/ + 9fLu///+//////////////z8/P/f1cT/6ePZ/+ji1P/AqXr/3tXC//n49//+//7///////z7+//o4tb/ + v6d4/6iDPf/DrIL/7ejf//z8/P/////////+///////8/Pv/6eTZ/8CpfP+pgz7/wqt+/+jj2f/8/Pv/ + /v7///7////+/v3//f39///////////////////////x7+r/t5ph/5pnBf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaQj/wK2J//T09P/9/v7Y+fr62NbPxP+jeSn/ + mWYB/5lmAf+pgzb/5d7Q//7+/v///////////////////////fz8//z9/f/n4tX/s5RY/6iBOf/Gs4z/ + 7Onh//39/f///////v7+//Tz7//Txar/r41O/7KRVP/Xy7T/9vXy//7+/v////////////7+/v/29fH/ + 2Muy/66OT/+vjlD/18ux//b08f/+/v7////////////////////////////6+vn/z76c/55vE/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/n3Ib/9DHtf/6+vr/ + /f392P39/djl5OL/sJJX/5lmAv+aaAb/vqd4//b08v/+/v/////////////////////////////+//// + /f38/+3r4v/Kt5D/qII5/7GRVf/d0r3/+Pf1//7+/v////7/+/v7/+vm2//Cq37/qYQ+/8KpfP/o49j/ + +/v7/////v////////////z8/P/p5Nv/w62C/6qEP//BqX7/8u/q///////////////////////+/v7/ + 5N3O/6iANP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/6qIRP/h39n//v3+//7+/tj+/v7Y8/Pz/8Oykv+baw3/mWYC/6R5J//ItI3/7eni//z9/f////// + ///////////////////////////+//7/+vn4/9/Ww/+2mF//p4E4/8Swhv/r597//Pz8///////+/v7/ + 9vXy/9jNtf+wkFP/rYxN/9XHrP/18/D//v7+/////////////v7///j29P/Zz7n/w62E//Du5v////// + ///////////+//7/9fPu/7yfaf+aaAb/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5tpCP+8qID/8PDv///////+/v7Y/v7+2Pv6+v/V0Mb/pX0x/5hmAf+ZZgH/ + nGwO/7KRUf/c0Lv/9/b0/////v/////////////////////////////////9/f3/8e7o/828mv+qhUD/ + r45P/9bKsv/29fL//v7+//7//v/8/Pz/6ufe/8Wvhf+qhUD/vaN0/+Xf0v/8+/v///////7////+//// + /P39//j49v/9/f3/////////////////+/v6/9HBo/+fcRb/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+idyT/08y9//r7+v///////v7+2P7+/tj//v// + 6uno/7egcv+aaAf/mWYB/5lmAP+ZZgP/o3cl/8Osgf/t6N///f38//7////+//7///////////////// + ///////////6+fj/5N3N/7ufaP+mfjX/w6t//+rm3P/7+/v//v////7////5+Pb/3NK9/7KSV/+tikj/ + 0sKk//Pw6//+/v7////+/////////////////////////////v7+/+fh1P+qhDr/mWUB/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+aZwT/s5hj/+fl4//+/v7/ + //////7+/tj+/v7Y//////j4+P/QyLn/ongn/5lmAf+ZZgD/mWYA/5lmAf+bawv/sI5M/9rNtv/29fL/ + /v7+//////////////////////////////////7+/v/z8Ov/0cKj/62JRf+vjUz/0sWq//X08P/+/v7/ + //////38/P/t6eL/ybWO/6qEQP+5n2z/5N7P//v7+v////////////////////////////Xz7/+9o2// + mmkH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + oHQd/8zCrv/19fX////////////+/v7Y/v7+2P/////+/v7/5+fl/7igcv+aaQj/mWYA/5lmAP+ZZgD/ + mWUA/5pmA/+idSD/wal5/+nj2f/7/Pv///////////////////////////////////////v7+v/o4tX/ + vaRy/6aAN/++pnb/5+HU//v7+v////7//v7+//j49v/b0r7/tphf/7KTWP/q5tz///////////////// + //////z8/P/Vx6v/oHIZ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/7SYY//m5eL//v7+/////////////v7+2P7+/tj///////////j4+P/TzcD/ + pX4y/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWYA/5tpCv+sh0H/08Wp//Ty7v/9/v7///////////////// + /////////////////v7+//Tz7//Wya//r41N/6yIRf/Rw6b/8vHt//3+/f/+/////f38//Du6P/g1sT/ + 9vby//////////////////7+/v/o49j/rYhB/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUB/6R6Kv/Rybn/9/j3//////////////////7+/tj+/v7Y + ///////////+/v7/7e3s/8Gvjv+cbRL/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgD/mWYB/59yGf+7oW7/ + 5N3Q//v7+v/+///////////////////////////////+/////Pz8/+rl2v/DrH//qII6/7mfav/k3c7/ + +vr5///////+/////v7+//7//v/////////////////39fP/v6Z4/5tpCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5xrDf+9qYP/7ezr//////////// + ///////////+/v7Y/v7+2P////////////////z7+//c2dX/sJNa/5pnBf+YZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgH/mmgH/6qCOP/SwqT/8/Hs//7+/v/////////////////////////////////+/v7/ + 9/b0/9jNtf+wkFH/q4dD/86+nv/y8Oz//v7+///////////////////////8/Pz/2Muz/6F1H/+ZZgD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mGYA/5pnBP+uj1L/ + 3drT//v7+////////////////////////v7+2P7+/tj/////////////////////9vb2/9LLvf+ngTf/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAP+ZZgL/nnAX/7qeZ//j3Mz/+vn4//7///////// + ///////////////////////////8/Pz/7Ong/8eyiP+phD3/z8Cg//v8+//////////////////+/v7/ + 6uXc/62LRv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAf+mfjL/0cm5//f39v/+//////////////////////////7+/tj+/v7Y//////////////// + //////7////x8vH/yLyj/6J3Jf+ZZQH/mWUA/5lmAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+aZwX/ + p38y/8u5lv/w7uj//f79//////////////////////////////////7////4+PX/4dnI/+jk2f/+/v7/ + ////////////////+Pf1/8Wug/+bagr/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5llAf+hdSH/xrif/+/v7//+/v7////////////////////////////+/v7Y + /v7+2P///////////////////////////v7+/+zs6v/BsZH/n3Mc/5lmAf+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAf+cbRL/t5le/+DXxf/4+Pb//v////////////////////////////// + //////7+/v/+/v7//////////////////f39/9vQuv+jdyL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+fcRr/wbCN/+jo5v/9/v3///////////////// + /////////////////v7+2P7+/tj////////////////////////////////9/f3/5uTi/76sif+fcx3/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYB/5lnBP+leyv/yLSM//Ds5f/9/f3/ + /////////////////////////////////////////////////v///+/r4/+ykE//mWcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ecRj/vKmD/+Xk4f/8/Pz/ + //////////////////////////////////////7+/tj+/v7Y//////////////////////////////// + //////z8/P/m5eP/wbCQ/6F2Iv+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mGYB/5xsD/+0k1T/3NG9//j39f/+/v7///////////////////////////////////////j39f/Hsor/ + nGwN/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gdB// + vqyJ/+fl4//8/Pz////////////////////////////////////////////+/v7Y/v7+2P////////// + /////////////////////////////////f39/+fn5f/GuZ7/pX4y/5lnBf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+YZgD/mWYE/6R4Jv/Fr4T/6ubd//z8/P////////////////////// + //////39/f/f1cH/o3gm/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnBP+kfC7/xLWZ/+jn5f/8/f3///////////////////////////////////////////////// + /v7+2P7+/tj////////////////////////////////////////////////9/f3/7+/u/8/Ht/+tjU// + m2sN/5llAP+ZZQD/mWUA/5lmAP+ZZQD/mWUA/5llAP+ZZgD/mWYA/5lmAP+ZZQD/m2oM/6+LSv/azrb/ + 9fTy//7+/v/////////////////v6+X/tZVX/5pnA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAf+ZZgD/mWUA/5tqC/+si0r/zMOx/+3t7f/+/f3///////////////////////////////// + //////////////////////7+/tj+/v7Y//////////////////////////////////////////////// + ///////////09PT/2dXO/7umfP+idyb/mWYF/5lmAP+ZZgD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/oXUg/76meP/n49f/+/z7//7////5+fj/ybaR/51tD/+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/mWcE/6J3JP+5o3j/29fP//T09P/+/v7///////////////// + ///////////////////////////////////////////+/v7Y/v7+2P////////////////////////// + /////////////////////////////////v////r6+v/p6Ob/zsSy/7GTW/+fcRn/mWYD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+aaQn/rYhC/9XHrP/08u7/4djI/6Z9Lf+ZZgH/ + mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgP/n3EY/7CSWP/Mwa7/5uXk//v7+//+//// + /v///////////////////////////////////////////////////////////////v7+2P7+/tj///// + /////////////////////////////////////////////////////////////////v7+//X09P/f3dn/ + xrmg/7CRVv+gch3/mWcG/5lmAf+ZZgD/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAv+fchz/ + uZ1o/6+OT/+aZwX/mWUA/5llAP+ZZgD/mWYB/5lmAP+ZZgD/mWYB/5lnBv+fcx3/r5BV/8i7ov/g3tr/ + 9fX1//7+/v////////////////////////////////////////////////////////////////////// + //////7+/tj+/v7Y//////////////////////////////////////////////////////////////// + /////////////////f38//Pz8v/i4Nz/ysCs/7eeb/+mfjX/nW0S/5pnBv+ZZQH/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYA/5lnBP+ZZwT/mWYA/5pmAf+ZZQD/mGYA/5hmAf+ZZwX/nW4T/6eANv+3nm7/ + zMKu/+Lg3P/19fX//f39//////////////////////////////////////////////////////////// + ///////////////////////////+/v7Y/v7+2P////////////////////////////////////////// + /////////////////////////////////////////////////f39//b29v/n5uX/2dXM/8W4n/+4n3L/ + rIhF/6N4KP+ebxX/m2kL/5pnBv+aZgT/mWYD/5lmAv+ZZgP/mWcE/5toBv+bagz/nm8W/6N5Kv+riUj/ + uKBy/8e6ov/Y08r/6ejm//f39//9/v7///////////////////////////////////////////////// + /////////////////////////////////////////////////v7+2P7+/tj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+//z8/P/z8/P/6eno/+Dd2f/W0cX/yr+q/8Kxkv+8pn7/uJ5w/7SaaP+1mWb/tZtp/7igc/++qYL/ + w7OV/8zBrf/Vz8X/393Z/+vr6v/19fb//Pz8//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/tj+/v7Y + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v/9/v7/+/v8//f3+P/09PT/8fHx/+3t7P/p6ej/ + 7Ozr/+np6P/s7ez/8PHw//T09P/4+Pj/+/v7//z9/f/+//7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////+/v7Y/v7+t/7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/f7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y + /v7+2P7+/tj+/v7Y/v7+2P7+/tj+/v7Y/v7+twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAP7+/r/+/v7f/v7+3/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/Pz83/Lz8t/i4NrfzcSy37ypg9+xklnf + poA236F0Id+dbhXfnGwR35xsEt+ecBnfo3go36uIRN+1m2vfxbaa39nSyN/r6ujf+Pj43/39/d/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+v/7+/tr///// + //////////////////////////////////////////////////////z8/P/u7uz/2dHE/7+qgv+qh0P/ + n3Mb/5tpCf+ZZgL/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+ZZwT/nGwQ/6R6LP+zl2H/ + ybyi/+Th2//29/b//v7+//////////////////////////////////////////////////////////// + /v7+2v7+/tr////////////////////////////////////////////////9/v7/8/Lx/9jQwP+2nGv/ + oncl/5poBv+ZZQH/mWUA/5llAP+ZZQD/mWUA/5poB/+ZZwX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZgL/nG0Q/6qHQv/FtZb/5uPe//n5+f////////////////////////////////////// + /////////////////v7+2v7+/tr///////////////////////////////////////////n5+f/h3db/ + vad+/6J4Jv+aZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nGoJ/76kcf+9o3D/oHIY/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+cbQ//r45P/9DFsf/w7+7//v7+//////////// + /////////////////////////////////v7+2v7+/tr////////////////////////////////+//7/ + 9fX0/9PKt/+sikf/m2oJ/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAP+ZZgH/sI1I//Ds5P/49vP/ + 2cyy/66JQ/+baQj/mWYB/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/6F1If/Aq4T/ + 5+Xh//v8/P///////////////////////////////////////v7+2v7+/tr///////////////////// + //////7+/v/w7+7/ybqd/6R6Kf+ZZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+hdB3/ + 3NC5//7+/f///////f39/+7q4P/FrYD/oXQe/5lmAv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAP+caw7/tJhi/9/b0//7+/v//////////////////////////////////v7+2v7+/tr///// + /////////////////v/+/+/v7f/Ds5H/oHMb/5llAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5tpB//Grn//+vn3///////////////////////5+Pb/3tK7/7GNS/+bagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2gH/7CQU//c183/+/v7//////////////////////////// + /v7+2v7+/tr/////////////////////9PTz/8a1lv+fchr/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6+KQf/u6uD//////////////////////////////////f79/+/s5P/Ison/ + o3cj/5lmA/+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5poBv+vj1L/4d3V//39/f////// + /////////////////v7+2v7+/tr////////////////39/f/zsKr/6J1If+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/oHIY/9rNs//9/f3/+fj2/+Lbyf/39vL//v7+//7///////// + ///////////6+fj/4NbC/7aVV/+caw3/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+baAf/ + tZlk/+nn4//+/v7//////////////////v7+2v7+/tr///////////z8/P/b1cj/qIE3/5lmAf+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aaAX/wKZz//j39P/+//7/+Pf0/8/Bof/q5Nj/ + 3dO+/+zn3f/9/f3//////////////////v7+//Lw6v/MuZP/pXsq/5lmA/+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/nGwP/8CtiP/y8fD//////////////////v7+2v7+/tr//////v///+vq5/+1mWL/ + mmcE/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAf+rhTr/6+Xa//////////// + /v/+//f28//18+//w6t9/7KQUv/ZzLP/+Pf0///////////////////////7+/r/5NvL/7iZX/+dbRD/ + mWUB/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6J3JP/Tyrn/+/r7/////////////v7+2v7+/tr///// + +Pj4/8q8of+ebxP/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/55vFP/Wx6n/ + /f38//r59//q5Nj/+vn3//7////+////9fPu/9LCoP+wjUv/w6t9/+zn3f/9/f3///////////////// + /v7+//Xy7f/Qvp3/qH8x/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmA/+wklf/6Ofj//7///////// + /v7+2v7+/tr+//7/5uPd/6uIRP+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcF/7ygaf/29PH///////Xz8P/JuJX/6+fc//Lv6P/6+vj//v////z8+//o4dP/vqRw/7KQUv/YyrD/ + 9/bz//7//v/////////////////8/Pv/5+DR/7ueZ/+ebxT/mWYB/5llAP+ZZQD/mWUA/5llAP+dbxP/ + y76l//n6+f///////v7+2v7+/tr6+vr/yrue/5xsDv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQH/qIAy/+ni1f/+/////v////7+/v/z8ev/7+zk/7yjcP/KtY3/8u7n//7+/v////// + 9vXx/9TFp/+xj0//wal6/+vm2//9/fz//////////////////v7+//b08f/Uxaf/q4Q5/5poBv+ZZQD/ + mWUA/5llAP+ZZgL/r45Q/+nn4////////v7+2v7+/trr6eb/ro1O/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbhH/0sGg//z8+//6+fj/7urh//z7+v///////Pz8/+TczP+7n2n/ + t5he/+DVwP/6+vj///////39/P/q49f/wKd2/7GQUf/Xyq7/+Pf0///////////////////////9/fz/ + 6+Xa/7+kcv+gcRj/mWYB/5lmAP+ZZQD/n3AY/9LItP/8/Pz//v7+2vz8/NrVzLv/n3Ia/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnBP+4m2H/9fLu///////x8Ov/xrSQ/+/r4//49vP/ + /Pz8//7+/v/18u3/zr6b/7GQUf/Is4r/8O3l//7+/f/+//7/+Pbz/9fIrf+yklT/wKd3/+rk2P/8/Pz/ + /////////////////v////j28//ZyrD/rIdA/5ppB/+ZZgH/mmcE/7mhc//08/P//v7+2vb19drAq4P/ + mmgF/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/6d+Lf/n4ND//v7+///////+/v7/ + 7erh/+7r4//DrH//1ceq//b08f/+/v7//Pv7/+bf0P+8oW3/tpdd/97Tvv/6+fj////+//z9/P/r5tz/ + wap7/7GQUv/TxKb/9vXx//7+/v/////////////////9/f3/7Ofd/7SUV/+ZZgL/mWYB/6iCOv/l4tz/ + /f792uvo5tqujU3/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nWwO/8+9mf/8/Pv/ + /Pz7//b08P/9/f3////+//v7+v/h18T/uJtl/76kdP/p4tX//Pz8//7+/v/18+//0cGg/7GSVP/ItIz/ + 7+zk//3+/f/+////+ff1/9nNtP+zk1b/vqRx/+jj1//+/v7/////////////////7ung/62IP/+ZZgH/ + mWYA/59xGP/Wzbz//Pz82t7YzNqkein/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgL/ + tZZY//Px6///////8O3n/8q5lf/z8On/9PLt//r6+P/9/v3/8O3n/8u3k/+1llv/08Ol//Xz7//+/v7/ + /Pz7/+jh0/+9o3D/tphf/97Tvv/6+ff///////39/f/t6eD/xrGH/9TFpv/9/fz////////////5+Pb/ + w6t8/5tpB/+ZZQD/mWUA/5ppCP/FtZX/9/f52s/Er9qebxX/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5lmAP+leif/49vJ//7+/v///////Pz8/+bg0//x7uj/xK2B/8m2j//x7uf//f7+//v6+f/i2sj/ + u6Bs/7yicP/m39D/+/z7//7+/v/29PD/08Ok/7GPUf/Hson/7+vj//39/f//////+/r5//v6+P////// + //////3+/f/c0Ln/oXQc/5llAP+ZZQD/mWUA/5lmAv+5oXL/8vLy2sKxkdqbagr/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5xrC//Kto//+/v6//38/P/5+PX//v7+//3+/v/8/fz/5uDT/76ldf+5nGb/ + 3tO+//r59//+/v7/8vDr/8y6mP+1lVv/0L+e//Ty7f/+/v7//Pz7/+fg0v++pHL/tJVb/97SvP/5+ff/ + //////////////////////Ds5P+vjEf/mWYB/5llAP+ZZQD/mWUA/5llAf+xklj/7e3r2runfdqaZwX/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWYC/7STUv/y7+n//////+7r4//Lupf/9PLt//j49v/9/Pz/ + /v/+//b18v/Vx6z/s5Vb/8izjP/v6+P//f39//v7+v/l3c3/vKJw/7ugbf/i2sn/+/v5//7+/v/29PD/ + 08Sm/7SUWP/b0Ln//v7+////////////+vr4/8iyhv+bagn/mWUA/5llAP+ZZQD/mWUA/5llAP+siUf/ + 6Ofk2rafcdqaZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/o3ci/+DWwv/+/v7///////v7+f/h2cj/ + 8e/p/8m2kP/WyK7/9/bz//7//v/8/fz/6uXa/8Orf/+3mmP/3NC6//n49v/+/v7/9fPv/9HAoP+zlFr/ + zryZ//Pw6v/+/v7//Pz8/+3o3v/y7+f////////////+/v7/4dfC/6N3If+ZZgD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+phD7/5uXg2rafcdqZZwT/mWUA/5llAP+ZZQD/mWUA/5llAP+bagn/yLKH//v6+P/+/v3/ + +/v6//7+/v/+/v7//Pz7/9/Vwv+4m2X/wKd5/+rk2P/8/fz//v////j39f/ZzLP/tJZd/8awhv/t6eD/ + /f39//z7+v/n4NL/v6V0/7qdaf/g18T/+vr4///////////////////////x7uj/s5JQ/5lmAv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+phD3/5uTf2rmjedqaZwX/mWUA/5llAP+ZZQD/mWUA/5lmAf+xjkr/ + 8Ozk///////v7OT/z8Ch//j28/////////////7+/f/x7eb/yLSP/7WXXv/Uxaj/9fTw//7//v/9/f3/ + 7Ojf/8Sug/+2l1//2863//j39P/+/v7/9vTw/9XFp/+zllz/29G7//7+/v////////////v6+f/Mt5D/ + nGsL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+rh0T/5+bi2r+ti9qbaQn/mWUA/5llAP+ZZQD/ + mWYA/6J1Hv/d0rv//v79///////5+Pb/3dO9//Lv6P/l3cv/9vTx//7+/v///v//+vn4/+LZxv+5nGj/ + vqRz/+bf0f/8/Pr//v7///j39f/c0Ln/tZdf/8OsgP/s6N3//f39//38/P/s6N3/8e7m//////////// + /v7+/+PZyP+keib/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+xkVT/7u3r2sm8pNqdbhH/ + mWUA/5llAP+ZZQD/m2kH/8Wsfv/5+ff//v7+//39/f/+/v7//f38//Tx6//Ap3j/vaNz/+bg0f/8/Pv/ + //////7+/v/z8Or/zryZ/7OUWv/RwaD/9PHs//7+/v/9/f3/7erh/8eyiv+2l17/2Muw//f28//+//// + /v//////////////8/Dr/7aWWP+ZZgL/mWYA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5lmAv+3nmz/ + 8vLy2tfPwtqhdiL/mWUA/5llAP+ZZgH/rolC/+3p3//+//7/7uri/9XHrf/4+Pb///////7+/v/z8Or/ + zbqX/7SVW//Qv5//9PLt//7+/v//////+/r6/+TdzP+7oG3/vKFv/+Tdzf/7+/r///////r59//f1L// + uZ1n/9PEp//9/f3////////////8/Pv/z72Y/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5ppBv/EspD/9/f32uTh3dqqhkD/mWYA/5lmAP+gchj/282z//39/f//////9fTw/86+n//w7OX/ + 49vJ//Pw6v/+/v7/+/v6/+TczP+8om//u6Bt/+Pby//8+/r//v////7+/v/08u3/0cCg/7SVXP/OvJn/ + 8vDq//7+/v/+/f7/8/Dq//Hu5v/+/v7///////7+/v/l3c7/p30t/5lmAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/55wFf/Uy7j//Pz82vDw8Nq4oHD/mWcD/5poBv/Ap3T/+Pf0//////////// + //7+//j29P/z8ez/vaRy/7ibZP/g18X/+/r5//7+/v/08u3/z7+e/7SVW//OvJr/8/Dq//7+/v////// + /Pz7/+fg0v+9pHL/uZ1o/+Pax//7+vn///////////////////////Xz7/+5m2H/mmcE/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6eANP/m4tv//f392vr6+trOwan/nW0R/55vE//Vx6v/ + +vr5//7////////////////////+/v7/8u/p/867l/+vjk//y7eR//Hu5//9/f7//Pz6/+jh0/++pXT/ + up5o/+DXxf/7+vn///////7+/v/18+//08Sm/7WWXf/YzLP//v79/////////////Pz8/9LBoP+dbhH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYC/7iebP/z8/L//v7+2v39/drj39n/ + p4I4/5lnA/+leij/yraP//Hu5//+/v7///////////////////////z7+v/k28v/u59q/7aZYP/d077/ + +fj3//7+/v/29PD/08Sn/7SWW//Lt5H/8O3m//7+/v///////Pz8/+vm2v/q5dr//v7+///////+/v// + 6eLU/6mBMv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nm8U/9DFr//8/Pz/ + /v7+2v7+/tr19PT/vaiA/5poB/+ZZgH/nGsM/7ORUf/f1L//+/r4//7////////////////////+/v7/ + 9fPu/9LBoP+xj1D/x7KJ/+/s4//9/f3//P38/+vl2P/AqHr/t5pj/97Uvv/5+ff//v////7///////// + ///////////39fL/vKBp/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgH/ + rIpH/+jm4f///////v7+2v7+/tr9/f3/29XJ/6R7LP+ZZgH/mWYA/5lmAv+jdyL/yLKH//Ds4//+/f3/ + //////////////////////z8+//n4NL/v6Vz/7SWW//az7f/+fj2//7+/v/29fL/2Mqv/7SVXP/Hson/ + 8u/o//////////////////39/P/Vxaf/nm8U/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+cbQ7/yLmb//j4+P///////v7+2v7+/tr/////8vLx/76pgf+aagn/mWUA/5llAP+ZZgH/ + nGkJ/7CMSP/bz7f/+Pj1//7/////////////////////////9/Xy/9XGqf+zlFj/xK2A/+zo3v/8/fz/ + /f38/+vm2//JtY7/5t/P/////v///////////+vl2v+rhDj/mWYB/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5lmAv+ujUz/5+Tf/////v///////v7+2v7+/tr//////f39/+Hc1P+phkD/ + mWUB/5llAP+ZZQD/mWUA/5lmAv+gcxv/wql5/+vm3P/9/f3///////////////////////39/P/r5tv/ + w6t9/7OVWv/Wya//+Pbz//7+/v/7+/r//f38////////////+Pf0/76kcf+aaAb/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/6FzHf/RxrD/+/v6/////////////v7+2v7+/tr///// + //////f39//Mv6j/oHMc/5lmAP+ZZQD/mWUA/5llAP+ZZQD/mmgH/62HP//Zy7D/+Pbz/////v////// + ////////////////+ff1/9jMs/+0llr/wal7/+3q4P/+//7////////////9/f3/2Mqv/6ByGP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/m2oK/72me//w8O7///////////////// + /v7+2v7+/tr///////////7////x8O7/v6qB/5xsDv+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+gcRj/ + v6Rw/+nj1v/9/fz///////////////////////39/f/u6uH/ybWN/+DYxP/+/v7////////////t6N// + rIc//5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+aZwT/sZFW/+bi3f/9/v3/ + /////////////////v7+2v7+/tr////////////////+/v7/6ujj/7acav+bagr/mWYA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mmgF/6mCN//Uxab/9fTv//7//v///////////////////////Pv6//z8+/////// + //////n49v/Dq3v/m2kH/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5pnA/+riEP/ + 3NbL//v7/P///////////////////////v7+2v7+/tr//////////////////////f39/+Pg2v+0mWT/ + m2oL/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWYA/5lmAf+ebxP/up1l/+jg0f/8/Pv///////////////// + /////////////////v39/93Ruf+hdBv/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mmcE/6mFP//X0MH/+vr6/////////////////////////////v7+2v7+/tr///////////////////// + //////z9/f/l4tz/uJ9w/51uEf+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZgD/mWcE/6h+MP/Qvpv/ + 9PHs//7+/v//////////////////////7+vi/6+MRv+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQf/rYxM/9nTxv/6+vr//////////////////////////////////v7+2v7+/tr///// + ///////////////////////////9/f3/6+nm/8KwjP+idyT/mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWYA/5lmAf+dbA//tpdb/+Tbyv/6+vn////////////6+ff/x7CE/5tqCP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWYB/55uE/+2nGr/4NzU//v7+/////////////////////////////////////// + /v7+2v7+/tr//////////////////////////////////////v7+//Lx8P/Rx7T/ro1P/5xrD/+ZZgH/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/6V6KP/JtY//8u/o//39/f/f1L//onYg/5lmAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5hmAP+aaQj/p4E3/8e3mv/s6+f//P39//////////////////////////// + /////////////////v7+2v7+/tr////////////////////////////////////////////////6+vr/ + 5uPe/8Szk/+pgz3/nGsN/5lmAf+ZZQD/mWYA/5llAP+ZZQD/mWUA/5llAP+cawz/s5JT/9fJr/+yj03/ + mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQH/mmgI/6R7LP+8pnz/3djO//b29f/+/v7///////////////// + /////////////////////////////////v7+2v7+/tr///////////////////////////////////// + /////////////////v7+//X19f/i39f/xreY/6+OUv+gdB//m2kJ/5llAf+ZZQD/mWUA/5llAP+ZZQD/ + mWYC/55uE/+aaAf/mWUA/5llAP+YZgH/mmgG/59xF/+qhkL/wK2H/93Xy//z8/L//f39//////////// + /////////////////////////////////////////////////v7+2v7+/tr///////////////////// + ///////////////////////////////////////////+/v7/9/j4/+ro5f/Wz8D/wrGP/7SWYP+ogzz/ + oncl/59xGf+ebhL/nW0R/51uE/+fcRj/onYj/6eAN/+xklf/wKuF/9LItv/m497/9vb1//3+/f////// + /////////////////////////////////////////////////////////////////v7+2v7+/tr///// + //////////////////////////////////////////////////////////////////////7+/v/9/f3/ + 9vf3//Hw7//m5N//3djN/9fOvv/Rx7P/0cWw/9DGsf/Vzb3/3NbL/+Xi3P/u7ev/9vb2//z8/P////// + //////////////////////////////////////////////////////////////////////////////// + /v7+2v7+/rv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv9/v7b/f392/39/dv7+/vb+/v72/v7+9v8/Pzb/f392/3+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b/v7+2/7+/tv+/v7b + /v7+2/7+/tv+/v7b/v7+uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAA + gBAAAAAAAAAAAAAAAAAAAAAAAAD+/v7B/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/39/d/08/Hf + 3NXG38KtiN+tjE3fo3gm351tE9+bagvfm2oM355wFd+lfDDfs5Vd38u7nd/l4djf+Pj43/7+/t/+/v7f + /v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+wf7+/tz///////////////////////////7//v/29vT/ + 2tC9/7aZYv+idiH/mmkH/5lmAf+ZZgD/m2kI/5lmAv+ZZQD/mWUA/5lmAP+ZZgL/nGsN/6Z+Mf/Bq4D/ + 5eDV//v7+v/////////////////////////////////+/v7c/v7+3P/////////////////////9/f3/ + 5+Pa/7yjcv+gcxv/mWYC/5llAP+ZZQD/mWUA/6BxFv/MuJH/uJha/51sDf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5poBf+mfzH/y7qb//Px7//+/v7///////////////////////7+/tz+/v7c//////////////// + /Pv7/93Uwv+siEL/mmgF/5llAP+ZZQD/mWUA/5llAP+aaAX/w6l1//r59//29O//08Gd/6d9Lf+aZgP/ + mWUA/5llAP+ZZQD/mWUA/5llAP+dbRD/u6Fv/+zo4v/+/v7//////////////////v7+3P7+/tz///// + //////z8/P/Zz7v/pn4v/5lmAf+ZZQD/mWUA/5llAP+ZZQD/mWUA/62GOv/v6t/////////////9/fz/ + 6uLU/7yeZP+ebhD/mWUA/5llAP+ZZQD/mWUA/5llAP+baQf/tZdc/+rn4P/+///////////////+/v7c + /v7+3P/////9/v3/4dnL/6eAM/+ZZgH/mWUA/5llAP+ZZQD/mWUA/5llAP+fbxP/2suu//r6+P/v6+L/ + /f38//7/////////+Pbz/9bGpv+rgjX/mmcE/5llAP+ZZQD/mWUA/5llAP+baAb/uJxn//Hv6/////// + //////7+/tz+/v7c/////+7r5f+wj0//mWYC/5llAP+ZZQD/mWUA/5llAP+ZZQD/mmcD/7+ja//5+PX/ + +vr3/+Pbyf/e07z/4tfD//v7+f///////v79/+3n2//ApW//n3AU/5llAP+ZZQD/mWUA/5llAP+cawz/ + xrON//n5+P///////v7+3P7+/tz6+vn/xrKL/5tqCf+ZZQD/mWUA/5llAP+ZZQD/mWUA/5llAP+pgTL/ + 7ObZ//f18f/39PD//f39/+zl2P/FrX//zrqT//Pv5//+/v7///////r49f/azLD/rYY8/5poBf+ZZQD/ + mWUA/5llAP+jeCX/39fI//7+/v/+/v7c/v7+3Obh1v+lfCz/mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + nm0P/9XFpP/9/f3/7urg/+PczP/l3cv/+Pfz//j28v/XyKr/wah3/+DWwP/7+/n///////7+/v/w6uD/ + xKt6/6FzGf+ZZQH/mWUA/5pmA/+6n2r/9vb0//7+/tz6+vrcxrKK/5poBv+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5pnA/+7nWL/9/Xx//Ty7P/8+/n/+Pf0/9G/nf/HsIX/7OXY//z8+//s5dj/x7CF/8y4kv/y7ub/ + /v7+///////7+vj/39O7/7CMRf+baQf/mWUA/6J2If/h2s3//v7+3O3r5dyrh0D/mWUA/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/p30s/+ni0v/9/fz/4NjG/+vl2f/v6uD/+vr4/+LYxf/Dq33/2Mms//j28v/59/T/ + 2cyw/8Kpev/f1L3/+vr3///////+/v7/8u7m/8ixhP+gchj/mmgF/8ayjP/7+vrc2c+73J9xF/+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/51sDf/TwJz/+/r5//n39P/8/Pv/7unf/8exiP/Yyq7/+Pby//Pw6f/Qvpr/ + x7GG/+vk1//8/Pv/7ejd/8izif/Lto//8u/n////////////8Ozj/6uEOP+ZZgD/sZBQ//Lx7tzGsozc + m2gG/5llAP+ZZQD/mWUA/5llAP+ZZgL/uJha//b07//29PD/39XB/+vl2f/x7eT/9PHs/9PDpP/JtIv/ + 6uPV//r6+P/k28n/xKx//9fIq//49vL/+fj1/97TvP/q49X///////z8+v/KtIj/m2kH/5llAP+keyr/ + 5uDX3LWaY9yZZQH/mWUA/5llAP+ZZQD/mWUA/6V6Jf/n3s3/+/r4//v7+f/5+Pb/5NvI/8Sugv/f073/ + +Pf0/+jg0f/GsIf/1sir//b08P/08ev/0L6c/8avhP/q49b//f39/////v//////49nF/6N3H/+ZZQD/ + mWUA/59xF//Z0b/crIxL3JllAP+ZZQD/mWUA/5llAP+cawr/z7qT//38+//o4tX/5+HT/+3p3v/6+ff/ + 8e3k/826l//MuZT/7+rh//bz7v/Wx6v/x7GI/+fg0f/6+ff/5dzK/8+9mf/39vL///////Xy7P+1k1H/ + mWYB/5llAP+ZZQD/nW0P/9LGr9yqiEXcmWUA/5llAP+ZZQD/mWYB/7WUUv/18uz/+/v5//v7+f/39fH/ + 0cGh/866l//x7eT/+vr4/+LYxP/FroT/3dC5//j28//q49X/ybOL/9TEpf/08u3/+/v5//7+/v/9/Pz/ + z7qS/5xqCv+ZZQD/mWUA/5llAP+caw3/0MKp3K2NTtyZZQD/mWUA/5llAP+kdyD/5NrG//z8+//e1cH/ + 9fPt//z8+v/6+vf/39O+/8avhf/e0rz/+vn2//Lv6P/PvZv/y7eR/+7o3f/39fH/2Mqv/9rNtP/+/v3/ + /////+fezP+leiX/mWUA/5llAP+ZZQD/mWUA/51tEP/UyLHct5xo3JlmAv+ZZQD/m2kI/8u1iv/7+/n/ + /fz8//j28//n38//zryY/+/q4f/9/f3/8u7m/8+8mf/LuJL/7+rf//v6+P/j2cf/xrCG/9vOtP/49vP/ + +/v5///////29O//uJhZ/5lmAv+ZZQD/mWUA/5llAP+ZZQD/oHIa/93VxdzGs5Dcm2kH/5lmAf+yj0n/ + 8+/o//Pw6v/f1cH/+fj2//r59//h18P/xa+F/9zQuP/5+PX/+/v5/+LZxf/Fr4X/3M+3//n49f/08ev/ + 1MSm/+fg0P///////f38/9LAnP+cbAz/mWUA/5llAP+ZZQD/mWUA/5llAP+mfzH/6OXe3NvRwNygcxr/ + oXQa/+HVvv/+/v7//Pz7/+/s5P/Xya3/08Oi//Xy7f/z8On/0L6c/8u3kP/t6N3//f39//Tw6v/RwJ// + ybWO/+3n3P/8/Pv//f38///////p4tP/p30r/5llAP+ZZQD/mWUA/5llAP+ZZQD/mWUA/7aYXv/19fPc + 7u3o3K6LR/+nfi3/5NrH//z8+/////////////b07v/Uw6P/xKx//+XdzP/5+PX/5NvJ/8awhv/ZzLL/ + +ffz//z8+v/l3Mv/zbqX//Xz7v//////+Pby/7ydYv+aZgL/mWUA/5llAP+ZZQD/mWUA/5llAP+baQn/ + zr6f//z8/Nz6+vrcyLWS/5tqCf+leib/zrmS//Xy7P/+//7///////39/P/p4tP/xq+E/9C+nP/z8Or/ + 9PHr/9PDpP/Is4v/6+TX//39/P/6+ff//v39//7+/f/VxKT/nm0P/5llAP+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/6Z9Lv/o5Nv//v7+3P7+/tzo49v/p4A0/5lmAP+cawr/tZNR/+PZxf/8+/r////////////49vL/ + 2Mqt/8Osfv/j2cX/+fj2/+ffz//GsYf/4tjE//7//v//////7ObY/6mAMf+ZZQD/mWUA/5llAP+ZZQD/ + mWUA/5llAP+aaQb/w66D//r5+f/+/v7c/v7+3Pv7+v/KuJf/nGsM/5llAP+ZZgH/o3Yf/8myhv/y7uf/ + //7+///////+/v3/7Oba/8m0iv/Nu5f/8e3l//b07//z8On///////n39P++omv/mmcD/5llAP+ZZQD/ + mWUA/5llAP+ZZQD/mWUB/6qEOv/p5dz///////7+/tz+/v7c//////Dt6f+0llv/mmcD/5llAP+ZZQD/ + m2kI/7GNR//g1Lz/+/r4////////////+vj1/9vPtf/Fr4P/7unf///////+/v7/2Mms/55vEv+ZZQD/ + mWUA/5llAP+ZZQD/mWUA/5llAP+fchn/1Mat//z8/P///////v7+3P7+/tz//////v7+/+Xg1P+rh0D/ + mWYC/5llAP+ZZQD/mWUB/6FzGv/FrHz/8Ovi//7+/v///////v7+//Pv5//39fH//////+/p3v+shTj/ + mWUA/5llAP+ZZQD/mWUA/5llAP+ZZQD/nW0P/8Wxi//39/X////////////+/v7c/v7+3P////////// + /f39/9/XyP+rhj//mmcD/5llAP+ZZQD/mWUA/5poBv+tiD7/3M6z//r59v/////////////////6+ff/ + w6h0/5pnBP+ZZQD/mWUA/5llAP+ZZQD/mWUA/51uEf/CrIH/9PLv//////////////////7+/tz+/v7c + /////////////////f39/+Pd0f+yk1b/m2oK/5llAP+ZZQD/mWUA/5lmAf+fcBX/waVx/+3n3P/+/v3/ + /v7+/9zPtP+gcRX/mWUA/5llAP+ZZQD/mWUA/5lmAv+idyL/ybeV//Xz8f////////////////////// + /v7+3P7+/tz//////////////////////v7+/+7r5v/Gsoz/pHoq/5pnBf+ZZQD/mWUA/5llAP+aZwT/ + qoI1/9fHqP/r5Nj/rog//5lmAP+ZZQD/mWUA/5llAf+dbRD/sZFT/9vSwP/5+fj///////////////// + ///////////+/v7c/v7+3P////////////////////////////////r5+f/i3ND/wap//6iANf+dbRD/ + mmYD/5llAP+ZZQD/nm4R/6mBM/+baAb/mWYB/5ppB/+hdR7/spNW/9PFq//x7+v//v3+//////////// + //////////////////////7+/tz+/v7c///////////////////////////////////////////5+fn/ + 6+fg/9XJs//DrYP/tZZc/62KRv+rhT7/rIdB/7GQUf+7oW//zLuc/+HazP/08vD//f39//////////// + /////////////////////////////////v7+3P7+/r7+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/f393Pr6+tz19fPc8e/s3O7s59zu7erc8/Lv3Pj4+Nz7/Pzc/v7+3P7+/tz+/v7c + /v7+3P7+/tz+/v7c/v7+3P7+/tz+/v7c/v7+3P7+/tz+/v6+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAA + AAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAA////wP7+/t7+/v7e/v7+3v7+/t7+/v7e9PPx3trPu966oG7e + pn8y3p5vFN6baQnem2kK3p9xGd6phT7ewqyB3uLbzN75+fbe/v7+3v7+/t7+/v7e/v7+3v7+/t7////A + /v7+3f////////////////v7+v/g18b/tphd/59xF/+ZZgP/mWUA/6V6Jf+nfSv/mmcD/5llAP+ZZQD/ + mmgF/6N4I//BqHn/6+bc//79/f/////////////////+/v7c/v7+3f//////////+Pb0/827mP+jdyL/ + mWYB/5llAP+ZZQD/n3AS/9vMrv/t5tn/wKNs/59vEv+ZZQD/mWUA/5llAP+aZwT/q4U7/9zRvP/8/Pv/ + ///////////+/v7c/v7+3f/////5+Pb/x7KJ/55uEf+ZZQD/mWUA/5llAP+aZwP/wqVu//r49f/+//7/ + +vn2/9vLrv+shTj/mmcE/5llAP+ZZQD/mWUB/6R5Jv/ZzLX//f39///////+/v7c/v7+3fz8/P/RwaL/ + nm8T/5llAP+ZZQD/mWUA/5llAP+qgjL/7ujb/+3p3v/t6N3/9vTu//7+/v/w6+D/xKp3/6BxFv+ZZQD/ + mWUA/5llAP+mfS3/49zN//7+/v/+/v7c/v7+3efh1P+mfCv/mWUA/5llAP+ZZQD/mWUA/55tD//Yx6f/ + 9/Tw//n39P/p4tP/zbmS/+fezf/9/Pv/+/r4/9/SuP+wikH/m2gG/5llAP+ZZgL/tZVY//Tz7//+/v7c + +vn43cGndv+aZwP/mWUA/5llAP+ZZQD/mmYC/72fZP/49/P/7+zj/+Tcyv/q49T/8u3k/9PCof/Vxqf/ + 9fLs//7+/v/z7uX/yLCB/6J0G/+ZZQH/nW0P/9bJr//9/f3c5uDV3aV6KP+ZZQD/mWUA/5llAP+ZZQD/ + qH4r/+vj1f/t6d7/9PHr//Ht5P/TwqH/2cqu//Tx6v/l28j/zrqV/+bdy//8/Pr//Pv6/+PXwf+zj0r/ + m2kI/7WWWv/19fPczbqZ3ZtpCP+ZZQD/mWUA/5llAP+dbAz/1MKe//n49P/39fL/5dzL/9fIq//x7OT/ + 4tjE/8+8mP/p4dL/8u/n/9XFpv/Vxab/9/Tv///////s5dj/p30q/6N4I//m39Lct5lg3ZllAf+ZZQD/ + mWUA/5lmAv+6mlv/9/Xw/+3o3v/o4NH/6eLT/+jg0P/RwJ//5NvJ//Dr4v/UxKT/2Mqt//Tx6//p4dL/ + 8+/o//38+//OuI7/m2kI/5xrDP/UxqrcqYQ73ZllAP+ZZQD/mWUA/6Z6Jv/o4M//8Ozj//b07//y7uf/ + 1cap/9nMsf/v6uD/2s2z/9bGqf/v6+H/49nG/9G/nP/08er//////+fdy/+keCH/mWUA/5pnBP/Hsozc + pH0w3ZllAP+ZZQD/nGoJ/9C8lf/6+fb/9fLt/+bezv/Xya3/8u7m/+bdzP/RwJ//59/P/+ri1P/SwKD/ + 4tjF//Pw6P/6+fb/9/Xv/7iWVf+ZZgH/mWUA/5pmAv/Cq4DcqII53ZllAP+ZZgH/t5VS//bz7v/r5tv/ + 8Ozi//f18f/p4dL/0cCf/+Xcyv/y7ub/18mt/9jKrv/v6uD/39S+//Pv5//+/fz/0r6Y/5xrCv+ZZQD/ + mWUA/5pnBP/GsoncspNX3ZllAf+kdyD/5tzI//Lu5//5+PX/6eLT/9LBoP/s5tr/9vPu/9rNs//Wxqj/ + 8ezk/+jfz//TwqL/8e7l/////v/q4tH/pnsn/5llAP+ZZQD/mWUA/5xrC//Sw6jcx7ON3ZxsDP/Mtor/ + /Pz7//Ds5P/j2sf/4tjD/+7p3//Vxaf/3M+2//b07//r5df/0cGg/+PZxf/18uz/+vj1//j28v+7nF7/ + mWYC/5llAP+ZZQD/mWUA/6J3If/l3tDc4trL3aV8K//NuI3/9/Xw///////49fD/2cuv/9LCof/t6Nz/ + 5NrH/9HAn//q49X/9/Tw/9/Tvf/x7OP//v79/9bEof+dbA3/mWUA/5llAP+ZZQD/mWUA/7SUVf/19PLc + 9vXz3bmcY/+dbA3/uJhY/+jfzf/9/fz//v39/+vk1//QvZr/39S+/+/q4f/Wx6r/2syy//n39P/+/v7/ + 7OXX/6l/Lf+ZZQD/mWUA/5llAP+ZZQD/nGwN/9TFqf/9/f3c/f793eDXxf+hdR7/mWYC/6V5I//OuZD/ + 9fLs///////59/P/3dC3/9HAn//s5tr/6uPV//f18f/5+PT/vqFn/5pmAv+ZZQD/mWUA/5llAP+ZZgH/ + s5FR//Tx7f/+/v7c/v7+3fr6+f/Hson/nGsK/5llAP+bagj/tZJO/+TZxP/8/Pr//v79/+7p3f/UxKX/ + 8u/n//7+/v/ZyKn/nm4Q/5llAP+ZZQD/mWUA/5llAP+keSb/4djG//7+/v/+/v7c/v7+3f/////08u7/ + vKJu/5tpCf+ZZQD/mWUB/6N1Hf/Ks4X/9O/n//7+/v/8+/r//fz7/+/p3f+rgzT/mWUA/5llAP+ZZQD/ + mWUA/6F1Hv/Vxqv//Pz7///////+/v7c/v7+3f//////////8vDr/8Gqe/+ebxP/mWUA/5llAP+baQb/ + sYxE/+DTu//7+vn/+/n3/8KmcP+aZwP/mWUA/5llAP+ZZgL/pn4u/9bJr//7+/r////////////+/v7c + /v7+3f////////////////j39f/Vx6z/rIhB/5xrDP+ZZQH/mWUB/6FyGP/Fq3r/08Gd/59wE/+ZZQD/ + mWYC/6ByGf+6nWb/5t/R//39/P/////////////////+/v7c/v7+3f/////////////////////+/f3/ + 8O3n/9PFqf+4mmD/qH8y/6FzHP+gchn/o3gk/6N4I/+tiEH/wqp7/+DXxf/49/X///////////////// + ///////////+/v7c////wP7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v39/d749vXe7eri3uPbzd7d1MDe + 3tbE3ubh1d7y8Ove+/r63v7+/t7+/v7e/v7+3v7+/t7+/v7e/v7+3v7+/t7+/v6/AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQAAAAoAAAAAQAgAAAAAACQBgAAAAAAAAAAAAAAAAAA + AAAAAP7+/sH+/v7e/v7+3v7+/t78/Pze6uTa3seyid6rhj7ennAW3ptpCd6baQnen3Ib3q+NS97OvZ3e + 8Ozl3v39/d7+/v7e/v7+3v7+/t7////A/v7+3v//////////9/Xy/8++m/+ofzD/m2gG/5llAP+pgC// + vJ5i/59wE/+ZZQD/mWUA/5xqC/+uikT/2863//v6+f////////////7+/tz+/v7e//////Tx7P+/pXH/ + nWwN/5llAP+ZZQD/nm8Q/9vLrf/6+fb/3c+z/66HPP+aZwT/mWUA/5llAP+gcxr/zbqW//r59/////// + /v7+3P7+/t749/T/wah2/5tpCP+ZZQD/mWUA/5pmAv/Ao2n/8/Dp//Tx6v/7+vj/8u3j/8ete/+hchj/ + mWUA/5llAP+fbxP/0sGg//38/P/+/v7c/f393tXGqf+ebhD/mWUA/5llAP+ZZQD/qYAu/+vj1P/29O// + 6uPV/9bGp//x7OL/+/r4/+HVvP+yjEX/m2gG/5llAP+leif/5t/Q//7+/tzx7eberYhA/5llAP+ZZQD/ + mWUA/51sDf/WxaL/9/Xx/+nj1v/k2sb/7ebZ/9bGp//i18H/+vn2//Tw6P/LtIf/o3Ud/5pnA/++o2// + +vn43NTFp96cbAz/mWUA/5llAP+ZZgL/vJ1g//Xy7P/r5tr/7ejc/+LYw//Xx6n/7ObZ/+LYw//Wxqj/ + 8Ovg//z7+v/l2sX/sYxE/6V6J//o49bcuJxi3pllAf+ZZQD/mWUA/6d8KP/q4dH/8Ozj//Ht5P/e0rv/ + 3dG5/+vk1//Yyq3/4dbB/+7o3P/Zy6//8+/m//v59/+/omj/nGsL/9LCo9yogTXemWUA/5llAP+cawv/ + 07+a//Xy7f/08ev/3tO8/9/Tvf/m3s7/18mt/+ffz//j2cX/18iq//Pv5//9/Pv/3c6y/59vE/+ZZgL/ + wal53KN4J96ZZQD/mWYB/7mYV//18ev/8u/o/+LYxP/n38//59/O/9jJrf/n38//3tK7/9zPt//s5tn/ + 9vPu//Ls4v+uhzr/mWUA/5llAP+6nmjcpX0v3pllAP+leSP/6N/M//Hu5v/t6Nz/8u7m/+DUv//cz7b/ + 7efb/9zQt//e0rv/6ODQ/+3n2//8+/j/xqx5/5pnBP+ZZQD/mWUB/7+lctyykFHenGoJ/8+6kP/y7uf/ + 8e3l/+rj1f/Yya3/6uPV/+3n2//Yyq7/5t3M/+nh0f/j2cb//f38/+DUuv+gchb/mWUA/5llAP+aaAf/ + zruX3Mq2kN6rhDf/8Orf//z7+v/s5dn/1sep/+jh0v/d0br/3dG5//Lu5f/h18L/39O9//v6+P/07+f/ + sYtC/5llAP+ZZQD/mWUA/6F0HP/k3Mvc6eLV3qiBM/+6mlr/6uHP//39/P/z7+f/2cqu/9/TvP/n39D/ + 2Mmt/+nh0//29O7/+/r4/8qygv+baAb/mWUA/5llAP+ZZQH/t5dZ//j189z7+/rexq+E/5tpB/+meiX/ + 0LyT//f07v/8+/n/597M/9bHqf/n4ND/597O//v69//j2ML/onQb/5llAP+ZZQD/mWUA/6ByF//e0rz/ + /v7+3P7+/t7w7OX/sY5K/5lmAv+cagn/tpRR/+bbx//9/Pv/9fLs/97Suv/18uz/9fLr/7OQSv+ZZQH/ + mWUA/5llAP+bagj/xa6A//r5+P/+/v7c/v7+3v///v/n4NL/rYhA/5pmA/+ZZQH/o3Ye/8y1if/18en/ + /v79//z8+v/Ot4z/m2kH/5llAP+ZZQD/nGoK/76jbf/08u3///////7+/tz+/v7e//////7+/v/r5dr/ + uZxi/51uEP+ZZQD/m2kH/7KORv/h1b7/5NnE/6R3IP+ZZQD/mWYC/6N3If/JtIv/9fPv//////////// + /v7+3P7+/t7////////////////39fL/2cuy/7eXW/+keSX/nW0Q/6N3If+pgTP/n3AW/6mBM//Bp3b/ + 5d3N//z7+v/////////////////+/v7c/v7+wf7+/t7+/v7e/v7+3v7+/t7+/v7e+Pb03urj197bzrfe + 08Sm3tXGqd7f1cLe7uvj3vv7+t7+/v7e/v7+3v7+/t7+/v7e/v7+3v///8AAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD+/v7C/v7+3/7+/t/49vPf + 2cuw37OSUt+hcxzfnW0R35tpCd+idSDfuJpg3+DUvt/6+vjf/v7+3/7+/t/+/v7C/v7+3v/////w7OP/ + vqFq/55vEv+ZZQH/q4Ix/9bEoP+xi0L/m2gF/5lmAf+hdBv/x7CC//bz7v///////v7+3v7+/t7x7eX/ + tZNS/5pnBP+ZZQD/nm0O/9jHpf/59/T/8+/l/8qyg/+idBv/mWUB/5tpCP/ApG//9/Xx//7+/t75+Pbe + wqh1/5pnBf+ZZQD/mmYC/76gZP/z7+f/7Oba/+HWwP/28uz/5NnD/7SQS/+baQf/nGsL/9C9mf/8/Pve + 4dbC3qFzGv+ZZQD/mWUA/6h+K//p4dD/8Ozk/+PYxP/n3sz/3M60/+zl2P/08en/z7mO/6R4If+pgTL/ + 7ejd3r6jb96ZZgL/mWUA/51sDP/Vwpz/9PHs/+fezv/l28n/3dC3/+Xcyf/i18L/4NW///j28v/i1b3/ + pXkk/9LAn96ogDTemWUA/5lmAf+7mlv/8u7m/+3n3P/h18P/4NS//+HWwv/i2MP/3tK7/+vk1v/49vH/ + 0r2V/5xqCf+7nmfeoHUf3pllAP+meyX/6N7M//Ht5f/l3cz/5dzL/97Su//j2MX/3tK6/+Xcyf/y7uX/ + 6uLQ/6Z6Jf+ZZQD/spBP3qN5J96cagn/0b2U//Tx6//r5dj/6+PW/9/Tvf/l3Mr/4dbB/+HWwf/r5Nb/ + 9/Xv/7uaW/+ZZgH/mWUA/7aWWd6zkVDetpRQ//Pv5v/s59v/5NvJ/97SvP/o4ND/5t3L/+DVv//p4dL/ + +Pbx/9bDn/+dbAv/mWUA/5pnBP/Js4fe0b+d3raUUv/q4dD/+fby/+PYxP/f07z/4tfD/+DVwP/r5Nb/ + 8e3k/+3l1/+ofiv/mWUA/5llAP+idBz/5NvJ3vHs5d6vi0T/pnsl/9G9lf/28+3/8Ovg/93RuP/j2MX/ + 6OHR//n28v++oGT/mmYC/5llAP+aZgP/v6Nt//n49d79/f3e39K7/6J2H/+cagn/t5RR/+fcyP/59/L/ + 6ODQ//f18P/ZyKf/nm0O/5llAP+ZZQH/rIU6/+3n2//+/v7e/v7+3v38+//Yya3/pXsn/5pmAv+kdh7/ + zbaK//Xx6v/v6dz/q4Ix/5llAP+aZwT/rog//+bdzP/+/v7//v7+3v7+/t7//////f38/+fezv+8nmX/ + o3Yg/51tDv+zjkj/uJZV/51tDv+nfSz/xq5//+/q4f/+/v7///////7+/t7+/v7B/v7+3v7+/t79/f3e + +fj13ubez97SwqHex7CG3sm0jN7Wya3e7Obc3vv7+t7+/v7e/v7+3v7+/t7+/v7BAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/frmMain.vb b/SW/20211125/AssessmentMgmt/frmMain.vb new file mode 100644 index 0000000..e926012 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/frmMain.vb @@ -0,0 +1,336 @@ +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Public Class frmMain + +#Region "Deklarationen" + Dim ForceQuit As Boolean = False + Dim txt As New Utils.MyMessage + Dim sec As New Utils.MySecurity +#End Region + + + ''' + ''' Laden des Formulars + ''' + ''' + ''' + ''' + ''' + Private Sub ParseCommandLineArgs() + Dim inputArgument As String = "pnr=" + Dim inputName As String = "" + + For Each s As String In My.Application.CommandLineArgs + If s.ToLower.StartsWith(inputArgument) Then + inputName = s.Remove(0, inputArgument.Length) + End If + Next + + If inputName = "" Then + + Else + 'MsgBox("Input name: " & inputName) + End If + End Sub + + + Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + 'Try + ' Dim arguments As String() = Environment.GetCommandLineArgs() + ' MsgBox(arguments.Count.ToString) + 'Catch ex As Exception + ' MsgBox(ex.Message) + 'End Try + + If Not Init_System() Then + Me.Close() + Exit Sub + End If + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + Try + sec.Set_Form_Security(Me) + Catch + End Try + Delete_Temp_Files() + Me.Cursor = Cursors.Default + Load_ImageList("GueltigImages", Globals.GueltigImages) + Load_ImageList("StatusImages", Globals.StatusImages) + ' Globals.GueltigImages = Me.ImageList1 + PrüfschrittToolStripMenuItem_Click(sender, e) + ParseCommandLineArgs() + + End Sub + + + Sub Load_ImageList(ByVal Ort As String, ByRef Imagel As ImageList) + Imagel.Images.Clear() + Dim strFileSize As String = "" + Dim di As New IO.DirectoryInfo(Globals.ApplicationPath + Ort) + Dim aryFi As IO.FileInfo() = di.GetFiles("*.*") + Dim fi As IO.FileInfo + For Each fi In aryFi + Dim ImportedImage As Image = Image.FromFile(fi.FullName) + Imagel.Images.Add(ImportedImage) + Next + End Sub + ''' + ''' Löschen der Dateien im Temp-Verzeichnis + ''' + ''' + Private Sub Delete_Temp_Files() + Dim s As String + For Each s In System.IO.Directory.GetFiles(Globals.clsapplication.sTmp_filepath) + Try + System.IO.File.Delete(s) + Catch + End Try + Next s + End Sub + + ''' + ''' System-Initialosierung + ''' - Applikationsdaten auslesen + ''' - Aktueller Mitarbeiter auslesen bzw. Login-Dialog anzeigen + ''' + ''' + Private Function Init_System() As Boolean + ' Dim dbconn As New TKB.VV.DB.DB_Connection + ' dbconn = Nothing + + Globals.clsapplication.iApplikationsnr = 1 + Globals.clsapplication.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + Globals.clsapplication.SelectOne() + conn.CloseConnection(True) + + 'Show Login, sofern der Applikationsparameter gesetzt ist + If Globals.clsapplication.bShowlogin.Value = True Then + If Not login() Then Return False + Me.WindowState = FormWindowState.Maximized + If Not Directory.Exists(Globals.clsapplication.sTmp_filepath) Then + Directory.CreateDirectory(Globals.clsapplication.sTmp_filepath) + End If + Dim f As New frmSplash + f.MdiParent = Me + f.Show() + Application.DoEvents() + Return True + Else + '14.04.2009 - Menueintrag ausblenden, sofern das Loginfenster nicht angezeigt wird + Me.NeuAnmeldenToolStripMenuItem.Visible = False + Dim f As New frmSplash + f.MdiParent = Me + f.Show() + Application.DoEvents() + 'Prüfung mittels TG-Nummer, ob der User berechtigt ist + Dim tmp_mitarbeiter As New DB.MyMitarbeiter + Dim tmp_mitarbeiterdata As New DataTable + tmp_mitarbeiter.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + tmp_mitarbeiterdata = tmp_mitarbeiter.SelectWithTGNummer() + Globals.conn.CloseConnection(True) + Application.DoEvents() + If tmp_mitarbeiterdata.Rows.Count < 1 Then + txt.show_standardmessage(2, MsgBoxStyle.Exclamation) + Me.ForceQuit = True + Return False + Exit Function + End If + Globals.clsmitarbeiter.iMitarbeiternr = New SqlInt32(CType(tmp_mitarbeiterdata.Rows(0).Item("Mitarbeiternr"), Int32)) + Globals.clsmitarbeiter.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + Globals.clsmitarbeiter.SelectOne() + Globals.conn.CloseConnection(True) + tmp_mitarbeiter.Dispose() + tmp_mitarbeiterdata.Dispose() + Me.WindowState = FormWindowState.Maximized + If Not Directory.Exists(Globals.clsapplication.sTmp_filepath) Then + Directory.CreateDirectory(Globals.clsapplication.sTmp_filepath) + End If + Return True + End If + End Function + + ''' + ''' Login-Fenster anzeigen und neuen User anmelden + ''' + ''' + Private Function login() As Boolean + Dim f As New frmLogin + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + Globals.clsmitarbeiter.iMitarbeiternr = f.Mitarbeiternr + Globals.clsmitarbeiter.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + Globals.clsmitarbeiter.SelectOne() + Globals.conn.CloseConnection(True) + Else + Return False + End If + Return True + + End Function + + Private Sub NeuAnmeldenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuAnmeldenToolStripMenuItem.Click + login() + sec.Set_Form_Security(Me) + + End Sub + + Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click + Me.BeendenToolStripMenuItem_Click(sender, e) + End Sub + + + + Private Sub SystemAdministrationToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SystemAdministrationToolStripMenuItem.Click + Dim f As New frmSysadminMenu + f.MdiParent = Me + f.Show() + End Sub + + Private Sub ObjektListerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ObjektListerToolStripMenuItem.Click + If InputBox("Passwort:") <> "341211" Then Exit Sub + Dim formselector As New frmFormSelector + formselector.ListForms.Items.Clear() + formselector.ListForms.Items.Add(Me.Name) + For Each x As Form In Me.MdiChildren + formselector.ListForms.Items.Add(x.Name) + Next + formselector.ShowDialog() + If formselector.DialogResult = Windows.Forms.DialogResult.OK Then + If formselector.ListForms.SelectedItem = Me.Name Then + sec.List_Form_Controls(Me) + sec.Print_Screen(Me) + Exit Sub + End If + For Each x As Form In Me.MdiChildren + If x.Name = formselector.ListForms.SelectedItem Then + sec.List_Form_Controls(x) + sec.Print_Screen(x) + End If + Next + + End If + + End Sub + + + + Private Sub AuswertungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AuswertungenToolStripMenuItem.Click + Dim rpt As New _FRReporting._FRReporting + rpt.ConnectionString = Globals.sConnectionString + rpt.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value + rpt.TempFilePath = Globals.clsapplication.sTmp_filepath.Value + rpt.ReportSelect(Me) + End Sub + + + + + + Private Sub VorgabenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorgabenToolStripMenuItem.Click + Dim f As New frmVorgabe + f.MdiParent = Me + f.Show() + End Sub + + Private Sub PrüfschritteToolStripMenuItem_Click(sender As Object, e As EventArgs) + + End Sub + + Private Sub PrüfplanToolStripMenuItem1_Click(sender As Object, e As EventArgs) + + End Sub + + Private Sub PrüfschritteToolStripMenuItem1_Click(sender As Object, e As EventArgs) + + End Sub + + + Private Sub PrüfschrittToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PrüfschrittToolStripMenuItem.Click + Try + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + + Dim f As New frmPruefschrittUebersicht + f.MdiParent = Me + f.Show() + Catch ex As Exception + Finally + Me.Cursor = Cursors.Default + Application.DoEvents() + + + End Try + End Sub + + Private Sub MassnahmenPlanToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MassnahmenPlanToolStripMenuItem.Click + Dim f As New frmMassnahmeplan + f.MdiParent = Me + f.Show() + End Sub + + Private Sub PrüfplanToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PrüfplanToolStripMenuItem.Click + Dim f As New frmPPlan + f.MdiParent = Me + f.Show() + End Sub + + Private Sub MassnahmenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MassnahmenToolStripMenuItem.Click + Dim f As New frmMassnahmenuebersicht + f.MdiParent = Me + f.Show() + End Sub + + Private Sub TSBtnPruefschritt_Click(sender As Object, e As EventArgs) Handles TSBtnPruefschritt.Click + PrüfschrittToolStripMenuItem_Click(sender, e) + End Sub + + Private Sub TSBtnMonitoring_Click(sender As Object, e As EventArgs) Handles TSBtnAssessmentuebersicht.Click + AssessmentsIsiToolStripMenuItem_Click(sender, e) + End Sub + + Private Sub AssessmentsIsiToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AssessmentsIsiToolStripMenuItem.Click + Try + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + Dim f As New frmISI + f.MdiParent = Me + f.Show() + Catch ex As Exception + Finally + Me.Cursor = Cursors.Default + Application.DoEvents() + End Try + End Sub + + Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked + + End Sub + + Private Sub DemoAssessmentGenerierungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DemoAssessmentGenerierungToolStripMenuItem.Click + Dim f As New Demo_Assessmentgenerierung + f.MdiParent = Me + f.Show() + End Sub + + Private Sub ErinnerungsmailsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ErinnerungsmailsToolStripMenuItem.Click + Dim f As New frmMailInfo + f.MdiParent = Me + f.Show() + End Sub + + Private Sub DemoMailGenerierungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DemoMailGenerierungToolStripMenuItem.Click + Dim f As New Demo_Mailgenerierung + f.mdiparent = Me + f.show + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb b/SW/20211125/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb new file mode 100644 index 0000000..6ffebde --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb @@ -0,0 +1,7 @@ +' + Option Strict Off + Option Explicit On + + Imports System + Imports System.Reflection + diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe new file mode 100644 index 0000000..d999390 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb new file mode 100644 index 0000000..5f143fe Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..60da224 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CopyComplete b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache new file mode 100644 index 0000000..66e582b --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +d01855c7cb18c36508a9af65b63184e74a669555 diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..79b8579 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt @@ -0,0 +1,71 @@ +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.exe.config +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DevComponents.DotNetBar2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1Command.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Compat.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Bars.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.DataVisualization.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Editor.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DevComponents.DotNetBar2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1Command.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Form2.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDatenbankauswahl.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Demo_Assessmentgenerierung.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Demo_Mailgenerierung.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Form1.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmAbout.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmLogin.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMailInfo.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMsgBox.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSplash.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmISI.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmKategorie.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMassnahmeplan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMassnahmeplanDetail.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMassnahmenuebersicht.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.MassnahmeDetailBearbeitung.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmDefinition_Pruefplan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPPlan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPruefplan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPruefplanDetail.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmFinding.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmFindingHilfe.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMassnahme.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPruefschrittUebersicht.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmWeitergabe.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.PruefschrittDetailsBearbeitung.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditorExtTables.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmFormSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSysadminMenu.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSysadminTableSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmToolTipEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmVerbindungEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMain.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Resources.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmUebersicht.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmNeuerVorgabeEintrag.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmVorgabe.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmVorgabeDefinition.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.GenerateResource.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.exe.licenses +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.CoreCompileInputs.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.AssemblyReference.cache diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache new file mode 100644 index 0000000..2a3e03a Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.xml b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.xml new file mode 100644 index 0000000..96fff3a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.xml @@ -0,0 +1,3195 @@ + + + + +AssessmentMgmt + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'Application'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
  • sVersion. May be SqlString.Null
  • +
  • bShowlogin. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sTmp_filepath. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
  • sVersion. May be SqlString.Null
  • +
  • bShowlogin. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sTmp_filepath. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iApplikationsnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iApplikationsnr
  • +
  • sVersion
  • +
  • bShowlogin
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • sTmp_filepath
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'funktionsgruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sZugehoerigkeit. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sZugehoerigkeit. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iFunktionsgruppenr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • sZugehoerigkeit
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'funktionsgruppe_rolle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iFunktionsgrupperollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iFunktionsgrupperollenr
  • +
  • iFunktionsgruppenr
  • +
  • iRollenr
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'meldungstexte'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method using PK field 'meldungstextnr'. This method will + delete one or more rows from the database, based on the Primary Key field 'meldungstextnr'. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method using PK field 'sprache'. This method will + delete one or more rows from the database, based on the Primary Key field 'sprache'. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMeldungstextnr
  • +
  • iSprache
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMeldungstextnr
  • +
  • iSprache
  • +
  • sInhalt
  • +
  • sBeschreibung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'mitarbeiter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
  • sVorname. May be SqlString.Null
  • +
  • sName. May be SqlString.Null
  • +
  • sTgnummer. May be SqlString.Null
  • +
  • sEmail. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
  • sVorname. May be SqlString.Null
  • +
  • sName. May be SqlString.Null
  • +
  • sTgnummer. May be SqlString.Null
  • +
  • sEmail. May be SqlString.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiternr
  • +
  • sVorname
  • +
  • sName
  • +
  • sTgnummer
  • +
  • sEmail
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'mitarbeiter_funktionsgruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iFunktionsgruppenr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_funktionsgruppenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiter_funktionsgruppenr
  • +
  • iMitarbeiternr
  • +
  • iFunktionsgruppenr
  • +
  • bAktiv
  • +
  • iMandantnr
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'rolle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bSysadminrolle. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bSysadminrolle. May be SqlBoolean.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRollenr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRollenr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • bSysadminrolle
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Rolle_SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iSecurityobjectnr. May be SqlInt32.Null
  • +
  • bReadonly. May be SqlBoolean.Null
  • +
  • bInvisible. May be SqlBoolean.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iSecurityobjectnr. May be SqlInt32.Null
  • +
  • bReadonly. May be SqlBoolean.Null
  • +
  • bInvisible. May be SqlBoolean.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_securityobjectnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRolle_securityobjectnr
  • +
  • iRollenr
  • +
  • iSecurityobjectnr
  • +
  • bReadonly
  • +
  • bInvisible
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'rolle_sysadminfunktion'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iSysadminfnktnr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandant. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iSysadminfnktnr. May be SqlInt32.Null
  • +
  • iRollenr. May be SqlInt32.Null
  • +
  • iMandant. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iRolle_sysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iRolle_sysadminfnktnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iSysadminfnktnr
  • +
  • iRollenr
  • +
  • iMandant
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSecurityObjectNr
  • +
  • sSecurityForm
  • +
  • sSecurityObjectType
  • +
  • sSecurityObject
  • +
  • sSecurityObjectItem
  • +
  • sSecurityObjectDescriotion
  • +
  • iLevel
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'spalten'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iEintragnr
  • +
  • sTabelle
  • +
  • sTabellenspalte
  • +
  • sSpalte
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite
  • +
  • iReihenfolge
  • +
  • sTiptext
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
  • sNumberFormat
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'sysadminfunktion'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • iParentID. May be SqlInt32.Null
  • +
  • iSort. May be SqlInt32.Null
  • +
  • iImageIndex. May be SqlInt32.Null
  • +
  • iImageIndexOpen. May be SqlInt32.Null
  • +
  • iFtop. May be SqlInt32.Null
  • +
  • iFleft. May be SqlInt32.Null
  • +
  • iFwidth. May be SqlInt32.Null
  • +
  • iFheight. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sDomaintable. May be SqlString.Null
  • +
  • sKeyFields. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • iParentID. May be SqlInt32.Null
  • +
  • iSort. May be SqlInt32.Null
  • +
  • iImageIndex. May be SqlInt32.Null
  • +
  • iImageIndexOpen. May be SqlInt32.Null
  • +
  • iFtop. May be SqlInt32.Null
  • +
  • iFleft. May be SqlInt32.Null
  • +
  • iFwidth. May be SqlInt32.Null
  • +
  • iFheight. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • sDomaintable. May be SqlString.Null
  • +
  • sKeyFields. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSysadminfnktnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSysadminfnktnr
  • +
  • sBezeichnung
  • +
  • iParentID
  • +
  • iSort
  • +
  • iImageIndex
  • +
  • iImageIndexOpen
  • +
  • iFtop
  • +
  • iFleft
  • +
  • iFwidth
  • +
  • iFheight
  • +
  • sBeschreibung
  • +
  • iMandantnr
  • +
  • iSprache
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • sDomaintable
  • +
  • sKeyFields
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'ToolTip'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
  • sFormularName. May be SqlString.Null
  • +
  • sControlName. May be SqlString.Null
  • +
  • sToolTip. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
  • sFormularName. May be SqlString.Null
  • +
  • sControlName. May be SqlString.Null
  • +
  • sToolTip. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iToolTipNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iToolTipNr
  • +
  • sFormularName
  • +
  • sControlName
  • +
  • sToolTip
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Dynamische Datenbank-Verbindung aufbauen. Verwendet wird standardmässig Vertragsverwaltung.cfg. + Sollen Datenbank-Verbindungen zur Auswahl angezeigt werden, werden sämntliche Datenbank-Verbindungsdateien + mit dem Namen "Vertragsverwaltung....cfg" berücksichtigt + + + + + + Liest sämtlcihe CFG-Dateien mit dem Namen "Vertragsverwaltung...". Sind meherere Dateien vorhanden, + wird ein Auswahldialog zur Datenbank-Selektion angezeigt. + Standardmässig wird Vertragsverwaltung.cfg als CFG-Datei benutzt. + + Die CFG-Datei ist verschlüsselt und wird über die Crypto-Funktionen entschlüsselt. + + + + + + Alle Mitarbeiter inkl. vollständigem Name (Fullname) auslesen + + Datatable + + + + + Mitarbeiter mittels TGNummer auslesen + + Datatable + + + + + Security-Deklaration zum Auslesen der UserID vom Windows-User + + + + + + Windows-User auslesen + + + + + + + Form für die Datenbankauswahl + + + + + + Form für den Login. Wird nur angezeigt, sofern in der Tabelle Application Show-Login = true + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Form mit generalisiertem Domain-Table-Editor. + + + + + Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable + + + + Tabellenname übernehmen und Objekt DomainTable initialisieren + Initialisierung der Komponenten + + Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll + Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + pr_"Tablename"_SelectAll + pr_"Tablename"_Update + + + + + Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + + + + + + + + Schliessen des Formulars + + + + + + + + Ruft BeendetnToolStipMenuItem_Click auf + + + + + + + + Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + das Formular nicht gespeichert werden soll. + + + + + + + + Sichern der Daten + + + + + + + + Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlüsselwert gesetzt ist (bei neuem Datensatz) + wird dieser aus der Keytabelle ausgelesen und zugewiesen. + + + + Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig + + + + Aktualisierung der Default-Werte + + + + + + + + Anzeige allfälliger Cellen-Tips + + + + + + + + Form mit generalisiertem Domain-Table-Editor. + + + + + Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable + + + + Tabellenname übernehmen und Objekt DomainTable initialisieren + Initialisierung der Komponenten + + Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll + Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden + pr_"Tablename"_SelectAll + pr_"Tablename"_Update + + + + + Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen + + + + + + + + Schliessen des Formulars + + + + + + + + Ruft BeendetnToolStipMenuItem_Click auf + + + + + + + + Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder + das Formular nicht gespeichert werden soll. + + + + + + + + Sichern der Daten + + + + + + + + Load des Formulars + + + + + + + + Doppelklick auf einen Eintrag: Es wird geprüft, ob in der Tabelle SysadminFunktion im Attribut DomainTable + einen Wert vorhanden ist. Sofern dies der Fall ist, wird der generelle Domain-Table-Editor aufgerufen + + + + + + + + Schliessen des Formulares + + + + + + + + Fenster schliessen + + + + + + + + Neuer Eintrag im Menu einfügen + + + + + + + + Eintrag im Menu löschen + + + + + + + + Umbenennen des aktuellen Menu-Eintrages + + + + + + + + Menu Sichern + + + + + + + + Knoten rekursiv auslesen + + + + + + + + einzelner Knoten sichern + + + + + + + + Generiert die Spaltentitel in der Tabelle Spalten aufgrund der im Formular frmSysadminTableSelector gewählten Tabelle + + + + + + + + Ruft die SP zur Spalten-Generierung auf + + + + + + + Verbindungseditor: Verbindet 2 Domain-Tables in einer dritten Tabelle. + + + + + + + Laden der linken und rechten Tabelle + + + + + + + + + + Laden sämlticher Tabellen + + + + + + + + Aktualiserung der Verbindungstabelle + + + + + + Linker Fokus-Knopf betätigt + + + + + + + + Rechter Fokus-Knopf betätigt + + + + + + + + Prüfung, ob Verbindungstabelle geändert wurde. + + + + + + Formular schliessen + + + + + + + + Formular schliessen + + + + + + + + Formular-Resize: Button Verbinden und Button Focus-Rechts neu positionieren + + + + + + + + Verbindungstabelle sichern + + + + + + + + Nach Datenmutation der unteren Tabelle mutiert_am und mutierer nachführen + + + + + + + + Doppelklick in linken Grid + + + + + + + + Linke Tabelle angeklickt + + + + + + + + Doppelklick im rechten Grid + + + + + + + + Rechte Tabelle angeklickt + + + + + + + + Die linke und rechte Domain-Table in der unteren Tabelle verbinden. + Daten sichern und erneut laden + + + + + + + + Anzeige allfälliger Cellen-Tips + + + + + + + + Tabellenname übernehmen und Daten ab DB laden + + + + + + + Daten ab Datenbank laden + + + + + + Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt + + + + + + Update-Statement dynamisch für das UpdateCommand generieren + + + + + + Insert-Statement dynamisch für das InsertCommand generieren + + + + + + Prefixt für den SP-Übergabeparameter generieren + + Aktuelle Columnt + Prefis für SP-Übergabeparameter + + + + + SQL-DB-Type für den SP-Übergabeparameter festlegen + + Aktuelle Column + SQLDBType + + + + + Feldlänge für den SP-Übergabeparemter festlegen + + Aktulle Column + Feldlänge + + + + + Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + + + + + + Dispose von Tabledata + + + + + + Load der Verbindungstabelle + + + + + + + + + Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. + + + + + + + + + + Laden des Formulars + + + + + + + + + Löschen der Dateien im Temp-Verzeichnis + + + + + + System-Initialosierung + - Applikationsdaten auslesen + - Aktueller Mitarbeiter auslesen bzw. Login-Dialog anzeigen + + + + + + Login-Fenster anzeigen und neuen User anmelden + + + + + + Daten ab Datenbank laden + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Standard-Messages in div. Formatenm + + + + + + Dataview Meldungstexte um Textelemente für die Ausgabe zu suchen + + + + + + Meldungen aus der Datenbanklesen, sofern diese noch nicht ausgelesen worden sind. Nach dem ersten Lesen werden + die Daten aus der Tabelle Meldungstexte ohne erneutem DB-Zugriff verwendet + + + + + + + + Standardmessage + + Messagenr + Messagetyp + + + + + + Yes-No-Meldung + + Meldungsnr + MsgboxResult + + + + + Standard-Meldung, welcher 2 Strings als Parameter übergeben werden, damit diese im Meldungstext ersetzt werden können. + Parameter im Meldungstext #1 oder #2 + + + + + + + + + + + Yes-No-Meldung, welcher 2 Strings als Parameter übergeben werden, damit diese im Meldungstext ersetzt werden können. + Parameter im Meldungstext #1 oder #2 + + MeldungsNr + erster Text zum ersetzen + zweiter Text zum ersetzen + + + + + + Ausgabe der Meldung, welche übergeben wird. Als Option können 2 Texte zum Ersetzen übergeben werden. + Parameter im Meldungstext #1 oder #2 + + Meldungstext + erster Text zum ersetzen + zweiter Text zum ersetzen + + + + + + Meldung Yes-No-Cancel + + + + + + + + Zeig den eigenen Messagebox-Dialog + + + + + + + + + Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + + + + + + Formularsecurity setzen + + Aktuelles Formular + + + + + + Daten ab Datenbank laden + + + + + + Prüft die DB-Einträge mit den Formcontrols und bei Übereinstimmung werden die Security-Einstellungen gesetzt + + + + + + Security-Einstellungen setzen + + Betroffenes Objeckt (Menuitem, Conrol usw.) + Readonly ja/nein + Sichtbar ja/nein + Name des Unterobjektes - wird für die Spalteneinstellungen von C1TruedbGrids verwendet + + + + + Alle Controls des Formulars zusammensuchen und auf der DB speichern + + Betroffenes Formular + + + + + + Sämtliche Controls vom Formular auslesen + + + + + + + + Auslesen von MenuItems + + + + + + + + + Auslesen von ContextMenuItems + + + + + + + + + Auslesen von Menu-Subitems + + + + + + + + Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + Formular + Objekttyp + Objektname + Objektitem + + + + + + Klasse für ein Control-Objekt + + + + + + Neue Instanz erstellen + + Control-Objekt + Betroffenes Formular + Objekttyp + Objektname + Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + + + + + Schreibt einen Datnsatz in die Tabelle SecurityObjects + + + + + + +Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + + + + + + Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + + + + + + + + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Applikationsversion + + + + + + Applikationsdaten + + + + + + Angemelderter Mitarbeiter + + + + + + Applikationsparameter + + + + + + DB-Verbindungsklasse + + + + + + Aktueller Applikationspfad + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Mutierer auslesen + + + + + + + Löschen eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + +
+
diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Assessmentgenerierung.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Assessmentgenerierung.resources new file mode 100644 index 0000000..f2d0d16 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Assessmentgenerierung.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Mailgenerierung.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Mailgenerierung.resources new file mode 100644 index 0000000..16f3d1a Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Demo_Mailgenerierung.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form1.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form1.resources new file mode 100644 index 0000000..4a98f06 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form1.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources new file mode 100644 index 0000000..4a28f13 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.Resources.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmDefinition_Pruefplan.resources similarity index 100% rename from SW/Dokumente_sik/obj/Debug/ThemenDokumente.Resources.resources rename to SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmDefinition_Pruefplan.resources diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmFinding.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmFinding.resources new file mode 100644 index 0000000..08b1be7 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmFinding.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmToolTipEditor.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmToolTipEditor.resources new file mode 100644 index 0000000..901b304 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmToolTipEditor.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmUebersicht.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmUebersicht.resources new file mode 100644 index 0000000..5b4cf98 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.FrmUebersicht.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.MassnahmeDetailBearbeitung.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.MassnahmeDetailBearbeitung.resources new file mode 100644 index 0000000..0d30f77 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.MassnahmeDetailBearbeitung.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.PruefschrittDetailsBearbeitung.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.PruefschrittDetailsBearbeitung.resources new file mode 100644 index 0000000..3f6d38b Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.PruefschrittDetailsBearbeitung.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Resources.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Resources.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmAbout.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmAbout.resources new file mode 100644 index 0000000..186025f Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmAbout.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDatenbankauswahl.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDatenbankauswahl.resources new file mode 100644 index 0000000..65dc2c4 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDatenbankauswahl.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditor.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditor.resources new file mode 100644 index 0000000..522b284 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditor.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditorExtTables.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditorExtTables.resources new file mode 100644 index 0000000..328e452 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmDomainEditorExtTables.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFindingHilfe.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFindingHilfe.resources new file mode 100644 index 0000000..b27d6ac Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFindingHilfe.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFormSelector.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFormSelector.resources new file mode 100644 index 0000000..a1e2563 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmFormSelector.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources new file mode 100644 index 0000000..a214f38 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmKategorie.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmKategorie.resources new file mode 100644 index 0000000..677f798 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmKategorie.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmLogin.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmLogin.resources new file mode 100644 index 0000000..624e1ae Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmLogin.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMailInfo.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMailInfo.resources new file mode 100644 index 0000000..b6a3f5c Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMailInfo.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources new file mode 100644 index 0000000..15017be Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahme.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahme.resources new file mode 100644 index 0000000..62ebb1f Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahme.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmenuebersicht.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmenuebersicht.resources new file mode 100644 index 0000000..eff3a73 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmenuebersicht.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplan.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplan.resources new file mode 100644 index 0000000..2dcd933 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplan.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplanDetail.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplanDetail.resources new file mode 100644 index 0000000..88f7988 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMassnahmeplanDetail.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMsgBox.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMsgBox.resources new file mode 100644 index 0000000..04caa61 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMsgBox.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmNeuerVorgabeEintrag.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmNeuerVorgabeEintrag.resources new file mode 100644 index 0000000..9181966 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmNeuerVorgabeEintrag.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources new file mode 100644 index 0000000..683b39e Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplan.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplan.resources new file mode 100644 index 0000000..6f22972 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplan.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplanDetail.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplanDetail.resources new file mode 100644 index 0000000..09d011f Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefplanDetail.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefschrittUebersicht.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefschrittUebersicht.resources new file mode 100644 index 0000000..6adf078 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPruefschrittUebersicht.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSplash.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSplash.resources new file mode 100644 index 0000000..6902585 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSplash.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminMenu.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminMenu.resources new file mode 100644 index 0000000..66dacf7 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminMenu.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminTableSelector.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminTableSelector.resources new file mode 100644 index 0000000..65dc2c4 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmSysadminTableSelector.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVerbindungEditor.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVerbindungEditor.resources new file mode 100644 index 0000000..5561dd2 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVerbindungEditor.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources new file mode 100644 index 0000000..2fbd41e Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabeDefinition.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabeDefinition.resources new file mode 100644 index 0000000..4a24e09 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabeDefinition.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmWeitergabe.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmWeitergabe.resources new file mode 100644 index 0000000..3c05eae Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmWeitergabe.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.FileListAbsolute.txt b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..504f2a8 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.FileListAbsolute.txt @@ -0,0 +1,26 @@ +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\AssetMgmt.exe.config +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\AssetMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\AssetMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\bin\Debug\AssetMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmDatenbankauswahl.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmAbout.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmLogin.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmMsgBox.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmSplash.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditorExtTables.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmFormSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmSysadminMenu.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmSysadminTableSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.FrmToolTipEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmVerbindungEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.frmMain.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.Resources.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.exe.licenses +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssetMgmt\obj\x86\Debug\AssetMgmt.vbprojResolveAssemblyReference.cache diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.GenerateResource.Cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.GenerateResource.Cache similarity index 64% rename from SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.GenerateResource.Cache rename to SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.GenerateResource.Cache index 43db3a5..1e37eec 100644 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.GenerateResource.Cache and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbproj.GenerateResource.Cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbprojResolveAssemblyReference.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbprojResolveAssemblyReference.cache new file mode 100644 index 0000000..825aeff Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/AssetMgmt.vbprojResolveAssemblyReference.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/CoreCompileInputs.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/CoreCompileInputs.cache new file mode 100644 index 0000000..fe0f34a --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/CoreCompileInputs.cache @@ -0,0 +1 @@ +6fd09512136b212b5492b7a6a689c5731b737ed5 diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..36cf2b0 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..c92082e Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.read.1.tlog b/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.read.1.tlog new file mode 100644 index 0000000..52890c8 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.read.1.tlog differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.write.1.tlog b/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.write.1.tlog new file mode 100644 index 0000000..b5c0478 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/GenerateResource.write.1.tlog differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll b/SW/20211125/AssessmentMgmt/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..71968d1 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.Themenübersicht.resources b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.Themenübersicht.resources new file mode 100644 index 0000000..84b09f4 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.Themenübersicht.resources differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..4c35c16 --- /dev/null +++ b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt @@ -0,0 +1,50 @@ +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.exe +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.pdb +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.xml +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\bin\Debug\C1.Win.C1TrueDBGrid.4.dll +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\bin\Debug\C1.Win.C1TrueDBGrid.4.xml +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\ResolveAssemblyReference.cache +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmMain.resources +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDetail.resources +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.Resources.resources +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.Themenübersicht.resources +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\GenerateResource.read.1.tlog +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\GenerateResource.write.1.tlog +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.exe.licenses +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.exe +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.xml +E:\Software-Projekte\VS2010\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.pdb +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDetail2.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmMain.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDetail.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.Resources.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.exe.licenses +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.exe.config +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.exe +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.pdb +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\Themenmanagement.xml +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\ExtendedRichTextBox.pdb +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\ExtendedRichTextBox.xml +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.vbprojResolveAssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.exe +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.xml +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.pdb +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDatenbankauswahl.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmAbout.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmLogin.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmMsgBox.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmSplash.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmThemenübersicht.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDomainEditor.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmDomainEditorExtTables.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmFormSelector.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmSysadminMenu.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmSysadminTableSelector.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.FrmToolTipEditor.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\obj\x86\Debug\Themenmanagement.frmVerbindungEditor.resources +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\RTFEditor.dll +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\RTFEditor.pdb +E:\Software-Projekte\TKBDiverse\Themenmanagement\Themenmanagement\bin\Debug\RTFEditor.xml diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.GenerateResource.Cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.GenerateResource.Cache new file mode 100644 index 0000000..d7f2c92 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbproj.GenerateResource.Cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbprojResolveAssemblyReference.cache b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbprojResolveAssemblyReference.cache new file mode 100644 index 0000000..b64d271 Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/Themenmanagement.vbprojResolveAssemblyReference.cache differ diff --git a/SW/20211125/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses b/SW/20211125/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses new file mode 100644 index 0000000..fb53ddb Binary files /dev/null and b/SW/20211125/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses differ diff --git a/SW/20211125/Assetmgmt.jmconfig b/SW/20211125/Assetmgmt.jmconfig new file mode 100644 index 0000000..10eea63 --- /dev/null +++ b/SW/20211125/Assetmgmt.jmconfig @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/SW/20211125/Assetmgmt.sln.bak b/SW/20211125/Assetmgmt.sln.bak new file mode 100644 index 0000000..24936fe --- /dev/null +++ b/SW/20211125/Assetmgmt.sln.bak @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Themenmanagement", "Themenmanagement\Themenmanagement.vbproj", "{1B191999-7204-4EB5-96F7-A6805B0B32FC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.ActiveCfg = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Debug|x86.Build.0 = Debug|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.ActiveCfg = Release|x86 + {1B191999-7204-4EB5-96F7-A6805B0B32FC}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SW/20211125/Assetmgmt.v12.suo b/SW/20211125/Assetmgmt.v12.suo new file mode 100644 index 0000000..6f37609 Binary files /dev/null and b/SW/20211125/Assetmgmt.v12.suo differ diff --git a/SW/20211125/Dokumente/DB/Form1.Designer.vb b/SW/20211125/Dokumente/DB/Form1.Designer.vb new file mode 100644 index 0000000..af1749e --- /dev/null +++ b/SW/20211125/Dokumente/DB/Form1.Designer.vb @@ -0,0 +1,60 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(403, 186) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 0 + Me.C1TrueDBGrid1.UseCompatibleTextRendering = False + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Name = "Form1" + Me.Text = "Form1" + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/Dokumente/DB/Form1.resx b/SW/20211125/Dokumente/DB/Form1.resx new file mode 100644 index 0000000..eca6c46 --- /dev/null +++ b/SW/20211125/Dokumente/DB/Form1.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/Dokumente/DB/Form1.vb b/SW/20211125/Dokumente/DB/Form1.vb new file mode 100644 index 0000000..10d55d4 --- /dev/null +++ b/SW/20211125/Dokumente/DB/Form1.vb @@ -0,0 +1,3 @@ +Public Class Form1 + +End Class \ No newline at end of file diff --git a/SW/20211125/Dokumente/DB/clsConnectionProvider.vb b/SW/20211125/Dokumente/DB/clsConnectionProvider.vb new file mode 100644 index 0000000..5af5b4d --- /dev/null +++ b/SW/20211125/Dokumente/DB/clsConnectionProvider.vb @@ -0,0 +1,289 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Connection Provider class for Database connection sharing +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // This class implements IDisposable. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Configuration +Imports System.Data +Imports System.Data.SqlClient +Imports System.Collections + +Namespace DB + ' /// + ' /// Purpose: provides a SqlConnection object which can be shared among data-access tier objects + ' /// to provide a way to do ADO.NET transaction coding without the hassling with SqlConnection objects + ' /// on a high level. + ' /// + Public Class clsConnectionProvider + Implements IDisposable + +#Region " Class Member Declarations " + + Private m_scoDBConnection As SqlConnection + Private m_bIsTransactionPending, m_bIsDisposed As Boolean + Private m_stCurrentTransaction As SqlTransaction + Private m_alSavePoints As ArrayList + +#End Region + + + Public Sub New() + ' // Init the class + InitClass() + End Sub + + + ' /// + ' /// Purpose: Implements the IDispose' method Dispose. + ' /// + Overloads Public Sub Dispose() Implements IDisposable.Dispose + Dispose(True) + GC.SuppressFinalize(Me) + End Sub + + + ' /// + ' /// Purpose: Implements the Dispose functionality. + ' /// + Overridable Overloads Protected Sub Dispose(ByVal bIsDisposing As Boolean) + ' // Check to see if Dispose has already been called. + If Not m_bIsDisposed Then + If bIsDisposing Then + ' // Dispose managed resources. + If Not (m_stCurrentTransaction Is Nothing) Then + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + End If + If Not (m_scoDBConnection Is Nothing) Then + ' // closing the connection will abort (rollback) any pending transactions + m_scoDBConnection.Close() + m_scoDBConnection.Dispose() + m_scoDBConnection = Nothing + End If + End If + End If + m_bIsDisposed = True + End Sub + + + ' /// + ' /// Purpose: Initializes class members. + ' /// + Private Sub InitClass() + ' // Create all the objects and initialize other members. + m_scoDBConnection = new SqlConnection() + m_bIsDisposed = False + m_stCurrentTransaction = Nothing + m_bIsTransactionPending = False + m_alSavePoints = new ArrayList() + End Sub + + + ' /// + ' /// Purpose: Opens the connection object. + ' /// + ' /// True, if succeeded, otherwise an Exception exception is thrown. + Public Function OpenConnection() As Boolean + Try + If (m_scoDBConnection.State And ConnectionState.Open) > 0 Then + ' // It's already open. + Throw New Exception("OpenConnection::Connection is already open.") + End If + m_scoDBConnection.Open() + m_bIsTransactionPending = False + m_alSavePoints.Clear() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Starts a new ADO.NET transaction using the open connection object of this class. + ' /// + ' /// Name of the transaction to start + ' /// True, if transaction is started correctly, otherwise an Exception exception is thrown + Public Function BeginTransaction(sTransactionName As String) As Boolean + Try + If m_bIsTransactionPending Then + ' // no nested transactions allowed. + Throw New Exception("BeginTransaction::Already transaction pending. Nesting not allowed") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("BeginTransaction::Connection is not open.") + End If + ' // begin the transaction and store the transaction object. + m_stCurrentTransaction = m_scoDBConnection.BeginTransaction(IsolationLevel.ReadCommitted, sTransactionName) + m_bIsTransactionPending = True + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Commits a pending transaction on the open connection object of this class. + ' /// + ' /// True, if commit was succesful, or an Exception exception is thrown + Public Function CommitTransaction() As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("CommitTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("CommitTransaction::Connection is not open.") + End if + ' // commit the transaction + m_stCurrentTransaction.Commit() + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Rolls back a pending transaction on the open connection object of this class, + ' /// or rolls back to the savepoint with the given name. Savepoints are created with SaveTransaction(). + ' /// + ' /// Name of transaction to roll back. Can be name of savepoint + ' /// True, if rollback was succesful, or an Exception exception is thrown + Public Function RollbackTransaction(sTransactionToRollback As String) As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("RollbackTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("RollbackTransaction::Connection is not open.") + End If + ' // rollback the transaction + m_stCurrentTransaction.Rollback(sTransactionToRollback) + ' // if this wasn't a savepoint, we've rolled back the complete transaction, so we + ' // can clean it up. + If Not m_alSavePoints.Contains(sTransactionToRollback) Then + ' // it's not a savepoint + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + End If + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Saves a pending transaction on the open connection object of this class to a 'savepoint' + ' /// with the given name. + ' /// When a rollback is issued, the caller can rollback to this savepoint or roll back the complete transaction. + ' /// + ' /// Name of the savepoint to store the current transaction under. + ' /// True, if save was succesful, or an Exception exception is thrown + Public Function SaveTransaction(sSavePointName As String) As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("SaveTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("SaveTransaction::Connection is not open.") + End If + ' // save the transaction + m_stCurrentTransaction.Save(sSavePointName) + ' // Store the savepoint in the list. + m_alSavePoints.Add(sSavePointName) + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Closes the open connection. Depending on bCommitPendingTransactions, a pending + ' /// transaction is commited, or aborted. + ' /// + ' /// Flag for what to do when a transaction is still pending. True + ' /// will commit the current transaction, False will abort (rollback) the complete current transaction. + ' /// True, if close was succesful, False if connection was already closed, or an Exception exception is thrown when + ' /// an error occurs + Public Function CloseConnection(bCommitPendingTransaction As Boolean) As Boolean + Try + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // No open connection + Return False + End If + If m_bIsTransactionPending Then + If bCommitPendingTransaction Then + ' // Commit the pending transaction + m_stCurrentTransaction.Commit() + Else + ' // Rollback the pending transaction + m_stCurrentTransaction.Rollback() + End If + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + End If + ' // close the connection + m_scoDBConnection.Close() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + +#Region " Class Property Declarations " + + Public ReadOnly Property stCurrentTransaction() As SqlTransaction + Get + Return m_stCurrentTransaction + End Get + End Property + + + Public ReadOnly Property bIsTransactionPending() As Boolean + Get + Return m_bIsTransactionPending + End Get + End Property + + + Public ReadOnly Property scoDBConnection() As SqlConnection + Get + Return m_scoDBConnection + End Get + End Property + Public WriteOnly Property sConnectionString() As String + Set (ByVal Value As String) + m_scoDBConnection.ConnectionString = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/Dokumente/DB/clsDBInteractionBase.vb b/SW/20211125/Dokumente/DB/clsDBInteractionBase.vb new file mode 100644 index 0000000..60f5b0a --- /dev/null +++ b/SW/20211125/Dokumente/DB/clsDBInteractionBase.vb @@ -0,0 +1,208 @@ +' ////////////////////////////////////////////////////////////////////////////////////////// +' // Description: Base class for Database Interaction. +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because this class implements IDisposable, derived classes shouldn't do so. +' ////////////////////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Configuration +Imports System.Data +Imports System.Data.SqlClient +Imports System.Data.SqlTypes + +Namespace DB + ' /// + ' /// Purpose: Error Enums used by this LLBL library. + ' /// + Public Enum LLBLError + AllOk + ' // Add more here (check the comma's!) + End Enum + + + ' /// + ' /// Purpose: General interface of the API generated. Contains only common methods of all classes. + ' /// + Public Interface ICommonDBAccess + Function Insert() As Boolean + Function Update() As Boolean + Function Delete() As Boolean + Function SelectOne() As DataTable + Function SelectAll() As DataTable + End Interface + + + ' /// + ' /// Purpose: Abstract base class for Database Interaction classes. + ' /// + Public MustInherit Class clsDBInteractionBase + Implements IDisposable + Implements ICommonDBAccess + +#Region " Class Member Declarations " + + Protected m_scoMainConnection As SqlConnection + Protected m_iRowsAffected As Integer + Protected m_iErrorCode As SqlInt32 + Protected m_bMainConnectionIsCreatedLocal As Boolean + Protected m_cpMainConnectionProvider As clsConnectionProvider + Private m_sConnectionString As String + Private m_bIsDisposed As Boolean + +#End Region + + + ' /// + ' /// Purpose: Class constructor. + ' /// + Public Sub New() + ' // Initialize the class' members. + InitClass() + End Sub + + + ' /// + ' /// Purpose: Initializes class members. + ' /// + Private Sub InitClass() + ' // create all the objects and initialize other members. + m_scoMainConnection = new SqlConnection() + m_bMainConnectionIsCreatedLocal = True + m_cpMainConnectionProvider = Nothing + m_iErrorCode = New SqlInt32(LLBLError.AllOk) + m_bIsDisposed = False + End Sub + + + ' /// + ' /// Purpose: Implements the IDispose' method Dispose. + ' /// + Overloads Public Sub Dispose() Implements IDisposable.Dispose + Dispose(True) + GC.SuppressFinalize(Me) + End Sub + + + ' /// + ' /// Purpose: Implements the Dispose functionality. + ' /// + Overridable Overloads Protected Sub Dispose(ByVal bIsDisposing As Boolean) + ' // Check to see if Dispose has already been called. + If Not m_bIsDisposed Then + If bIsDisposing Then + ' // Dispose managed resources. + If m_bMainConnectionIsCreatedLocal Then + ' // Object is created in this class, so destroy it here. + m_scoMainConnection.Close() + m_scoMainConnection.Dispose() + m_bMainConnectionIsCreatedLocal = True + End If + m_cpMainConnectionProvider = Nothing + m_scoMainConnection = Nothing + End If + End If + m_bIsDisposed = True + End Sub + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Insert() method. + ' /// + Public Overridable Function Insert() As Boolean Implements ICommonDBAccess.Insert + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Delete() method. + ' /// + Public Overridable Function Delete() As Boolean Implements ICommonDBAccess.Delete + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Update() method. + ' /// + Public Overridable Function Update() As Boolean Implements ICommonDBAccess.Update + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.SelectOne() method. + ' /// + Public Overridable Function SelectOne() As DataTable Implements ICommonDBAccess.SelectOne + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.SelectAll() method. + ' /// + Public Overridable Function SelectAll() As DataTable Implements ICommonDBAccess.SelectAll + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + +#Region " Class Property Declarations " + + Public WriteOnly Property cpMainConnectionProvider() As clsConnectionProvider + Set(ByVal Value As clsConnectionProvider) + If Value Is Nothing Then + ' // Invalid value + Throw New ArgumentNullException("cpMainConnectionProvider", "Nothing passed as value to this property which is not allowed.") + End If + + ' // A connection provider object is passed to this class. + ' // Retrieve the SqlConnection object, if present and create a + ' // reference to it. If there is already a MainConnection object + ' // referenced by the membervar, destroy that one or simply + ' // remove the reference, based on the flag. + If Not (m_scoMainConnection Is Nothing) Then + ' // First get rid of current connection object. Caller is responsible + If m_bMainConnectionIsCreatedLocal Then + ' // Is local created object, close it and dispose it. + m_scoMainConnection.Close() + m_scoMainConnection.Dispose() + End If + ' // Remove reference. + m_scoMainConnection = Nothing + End If + m_cpMainConnectionProvider = CType(Value, clsConnectionProvider) + m_scoMainConnection = m_cpMainConnectionProvider.scoDBConnection + m_bMainConnectionIsCreatedLocal = False + End Set + End Property + + + Public ReadOnly Property iErrorCode() As SqlInt32 + Get + Return m_iErrorCode + End Get + End Property + + + Public Property sConnectionString() As String + Get + Return m_sConnectionString + End Get + Set (ByVal Value As String) + m_sConnectionString = Value + m_scoMainConnection.ConnectionString = m_sConnectionString + End Set + End Property + Public Readonly Property iRowsAffected() As Integer + Get + Return m_iRowsAffected + End Get + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/Dokumente_sik/DB/clsDokument.vb b/SW/20211125/Dokumente/DB/clsDokument.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsDokument.vb rename to SW/20211125/Dokumente/DB/clsDokument.vb diff --git a/SW/Dokumente_sik/DB/clsDokumentAblageTyp.vb b/SW/20211125/Dokumente/DB/clsDokumentAblageTyp.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsDokumentAblageTyp.vb rename to SW/20211125/Dokumente/DB/clsDokumentAblageTyp.vb diff --git a/SW/Dokumente_sik/DB/clsDokumentAblageort.vb b/SW/20211125/Dokumente/DB/clsDokumentAblageort.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsDokumentAblageort.vb rename to SW/20211125/Dokumente/DB/clsDokumentAblageort.vb diff --git a/SW/Dokumente_sik/DB/clsDokumenttyp.vb b/SW/20211125/Dokumente/DB/clsDokumenttyp.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsDokumenttyp.vb rename to SW/20211125/Dokumente/DB/clsDokumenttyp.vb diff --git a/SW/Dokumente_sik/DB/clsKey_tabelle.vb b/SW/20211125/Dokumente/DB/clsKey_tabelle.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsKey_tabelle.vb rename to SW/20211125/Dokumente/DB/clsKey_tabelle.vb diff --git a/SW/20211125/Dokumente/DB/clsMyKey_Tabelle.vb b/SW/20211125/Dokumente/DB/clsMyKey_Tabelle.vb new file mode 100644 index 0000000..b6c51fb --- /dev/null +++ b/SW/20211125/Dokumente/DB/clsMyKey_Tabelle.vb @@ -0,0 +1,61 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Namespace DB + Public Class clsMyKey_Tabelle + Inherits db.clsKey_tabelle + + Public Function get_dbkey(ByVal Tablename As String) As Long + Dim m_dbkey As Long + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[sp_get_dbkey]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@Tablename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Tablename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@dbkey", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_dbkey)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + Try + scmCmdToExecute.Connection.Open() + Catch ex As Exception + Finally + End Try + + scmCmdToExecute.ExecuteNonQuery() + m_dbkey = scmCmdToExecute.Parameters.Item("@dbkey").Value + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + scmCmdToExecute.Connection.Close() + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'sp_get_dbkey' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return m_dbkey + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::get_dbkey::Error occured." + ex.Message, ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + End Class +End Namespace diff --git a/SW/Dokumente_sik/DB/clsSpeicherTyp.vb b/SW/20211125/Dokumente/DB/clsSpeicherTyp.vb similarity index 100% rename from SW/Dokumente_sik/DB/clsSpeicherTyp.vb rename to SW/20211125/Dokumente/DB/clsSpeicherTyp.vb diff --git a/SW/20211125/Dokumente/DMS/MyDocMgmt.vb b/SW/20211125/Dokumente/DMS/MyDocMgmt.vb new file mode 100644 index 0000000..ef8d2cc --- /dev/null +++ b/SW/20211125/Dokumente/DMS/MyDocMgmt.vb @@ -0,0 +1,431 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.IO +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Diagnostics + +' +Namespace Utils + ''' + ''' Klasse fr das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + ''' + ''' + ''' Es werden folgende Datebanktabellen bercksichtigt: + ''' + ''' + ''' Dokument Attribut DocImage + ''' + ''' Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + ''' Vertragsbersicht|Vertragselemente + ''' + ''' yes + Public Class MyDocMgmt + ''' + ''' Grid-Layoutfile speichern + ''' + ''' C1Truedbgrind, von welchem das Layout gespeichert werden soll + ''' Nummer des Grids: 1=Vertragsbersicht... + ''' + ''' + Public Function Save_LayoutFile(ByRef c1data As C1TrueDBGrid, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + Dim filename As String = Globals.TmpFilepath(+Trim(Str(Profilnr)) + Trim(Str(GridNo)) + ".lyt") + c1data.SaveLayout(filename) + + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from profil where profilnr = " & Str(Profilnr), Connection) + 'mitarbeiternr=" + Str(Globals.clsmitarbeiter.iMitarbeiternr.Value) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "profil") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Profil sepeichern + myRow = ds.Tables(0).NewRow + myRow.Item(1) = Globals.Mitarbeiternr + myRow.Item(2) = "" + Select Case GridNo + Case 1 + myRow.Item(3) = mydata + End Select + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "profil") + Else + myRow = ds.Tables(0).Rows(0) + Select Case GridNo + Case 1 + myRow.Item(3) = mydata + End Select + DA.Update(ds, "profil") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return True + + End Function + + Private Function Get_Layoutfile_from_db(ByVal filename As String, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + 'Exit Function + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("Select * From profil where profilnr=" & Str(Profilnr), connection) + 'mitarbeiternr=" + Str(Globals.clsmitarbeiter.iMitarbeiternr.Value) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) + Dim ds As New DataSet() + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.Fill(ds, "docs") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Select Case GridNo + Case 1 + MyData = myRow.Item(3) + + End Select + + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Return True + Catch ex As Exception + Return False + End Try + CB = Nothing + ds = Nothing + da = Nothing + connection.Close() + connection = Nothing + Return True + End Function + + Public Function Get_Layout(ByRef c1data As C1TrueDBGrid, ByVal GridNo As Integer, ByVal Profilnr As Integer) As Boolean + Dim filename As String = Globals.TmpFilepath + Trim(Str(Profilnr)) + Trim(Str(GridNo)) + ".lyt" + If File.Exists(filename) Then + c1data.LoadLayout(filename) + Return True + End If + If Get_Layoutfile_from_db(filename, GridNo, Profilnr) Then + c1data.LoadLayout(filename) + Return True + End If + Return False + End Function + + ''' + ''' Dokument in der Tabelle Dokument speichern + ''' + ''' Nummer des Dokument-Datensatzes + ''' Zu speichender Dateiname + ''' + ''' + + Public Function Save_Document(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from dokument where dokumentnr =" + Str(Dokumentnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "Dokument") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + Return False + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(16) = mydata + DA.Update(ds, "Dokument") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return True + End Function + + ''' + ''' Liest das Dokument aus der DB und speichert dieses unter einem temporren Filenamen ab + ''' + ''' + ''' + ''' + Public Function Get_Dokument(ByVal DokumentNr As Integer) As String + Dim Filename As String = Globals.TmpFilepath + If Right(Filename, 1) <> "\" Then Filename = Filename + "\" + + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("Select * From Dokument where DokumentNr=" + Str(DokumentNr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) + Dim ds As New DataSet() + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.Fill(ds, "Dokument") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Select Case myRow.Item("Speichertypnr") + Case 1 + Dim MyData() As Byte + MyData = myRow.Item(16) + + Dim K As Long + K = UBound(MyData) + Filename = Filename + myRow.Item(6) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Case 2 + Filename = myRow.Item("OriginalFilename_incl_Path") + Case 3 + Filename = myRow.Item("OriginalFilename_incl_Path") + Case Else + Filename = myRow.Item("OriginalFilename_incl_Path") + End Select + + Catch ex As Exception + ''MsgBox(ex.Message, MsgBoxStyle.Critical) + Return "" + Finally + connection.Close() + connection = Nothing + End Try + CB = Nothing + ds = Nothing + da = Nothing + Return Filename + End Function + + Public Function Show_Document(ByVal Dokumentnr As Integer) As Boolean + Dim tmpfilename As String = "" + Try + tmpfilename = Me.Get_Dokument(Dokumentnr) + Catch + Return False + End Try + + If tmpfilename <> "" Then + OpenSystemFile(tmpfilename) + Return True + End If + Return False + End Function + + Public Function OpenSystemFile(ByVal sFileName As String) As Boolean + If Len(sFileName) > 0 Then + System.Diagnostics.Process.Start(sFileName) + ' + ' ShellExecute(GetDesktopWindow(), vbNullString, sFileName, vbNullString, vbNullString, vbNormalFocus) + Return True + End If + End Function + + Public Function Save_RptDatei(ByVal Auswertungnr As Integer, ByVal AuswertungName As String) As String + Dim filename As String = AuswertungName + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from AuswertungRptDatei where AuswertungDateiNr = " & Str(Auswertungnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Datei speichern + myRow = ds.Tables(0).NewRow + myRow.Item(0) = Auswertungnr + myRow.Item(1) = AuswertungName + myRow.Item(2) = RptName(AuswertungName) + myRow.Item(3) = mydata + myRow.Item(4) = Now + myRow.Item(5) = Now + myRow.Item(6) = Globals.Mitarbeiternr + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "RptFile") + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(1) = AuswertungName + myRow.Item(2) = RptName(AuswertungName) + myRow.Item(3) = mydata + myRow.Item(5) = Now + myRow.Item(6) = Globals.Mitarbeiternr + DA.Update(ds, "RptFile") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + Return RptName(AuswertungName) + End Function + + Public Function RptName(ByVal path As String) As String + Dim i As Integer + Dim file As String = path + i = InStrRev(file.Trim, "\") + If i = 0 Then + Return file.Trim + Else + Return Right(file.Trim, Len(file.Trim) - i) + End If + End Function + + Public Function Get_RptDatei(ByVal Auswertungnr As String, Optional ByVal fname As String = "") As String + Dim connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from AuswertungRptDatei where AuswertungDateiNr = " & Str(Auswertungnr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim Filename As String = "" + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Filename = Globals.TmpFilepath + "\" + myRow.Item(2).ToString + If fname <> "" Then + Filename = fname + End If + MyData = myRow.Item(3) + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Catch ex As Exception + Return "" + End Try + CB = Nothing + ds = Nothing + DA = Nothing + connection.Close() + connection = Nothing + Return Filename + End Function + + Public Function Save_Architekturfile(ByVal Applikationnr As Integer, ByVal iFilename As String) + Dim filename As String = iFilename + Dim Connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from ApplikationArchitektur where applikationnr = " & Str(Applikationnr), Connection) + Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read) + Dim mydata(fs.Length) As Byte + fs.Read(mydata, 0, fs.Length) + fs.Close() + Try + Connection.ConnectionString = Globals.sConnectionString + Connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + If ds.Tables(0).Rows.Count = 0 Then + ' Neues Datei speichern + myRow = ds.Tables(0).NewRow + myRow.Item(0) = Applikationnr + myRow.Item(1) = mydata + ' myRow.Item(4) = Now + ' myRow.Item(5) = Now + ' myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + ds.Tables(0).Rows.Add(myRow) + DA.Update(ds, "RptFile") + Else + myRow = ds.Tables(0).Rows(0) + myRow.Item(1) = mydata + ' myRow.Item(2) = RptName(AuswertungName) + ' myRow.Item(3) = mydata + ' myRow.Item(5) = Now + ' myRow.Item(6) = Globals.clsmitarbeiter.iMitarbeiternr.Value + DA.Update(ds, "RptFile") + End If + Catch ex As Exception + MsgBox(ex.Message) + Return False + End Try + fs = Nothing + cb = Nothing + ds = Nothing + DA = Nothing + Connection.Close() + Connection = Nothing + End Function + + Public Function Get_Architekturfile(ByVal Applikationnr As String, Optional ByVal fname As String = "") As String + Dim connection As New SqlConnection() + Dim DA As New SqlDataAdapter("select * from ApplikationArchitektur where applikationnr = " & Str(Applikationnr), connection) + Dim CB As SqlCommandBuilder = New SqlCommandBuilder(DA) + Dim ds As New DataSet() + Dim Filename As String = "" + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + DA.Fill(ds, "RptFile") + Dim myRow As DataRow + myRow = ds.Tables(0).Rows(0) + Dim MyData() As Byte + Filename = Globals.TmpFilepath + "\architekturfile.xml" + If fname <> "" Then + Filename = fname + End If + MyData = myRow.Item(1) + Dim K As Long + K = UBound(MyData) + Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) + fs.Write(MyData, 0, K) + fs.Close() + fs = Nothing + Catch ex As Exception + Return "" + End Try + CB = Nothing + ds = Nothing + DA = Nothing + connection.Close() + connection = Nothing + Return Filename + End Function + + End Class + +End Namespace diff --git a/SW/Dokumente_sik/DMS/clsDok.vb b/SW/20211125/Dokumente/DMS/clsDok.vb similarity index 85% rename from SW/Dokumente_sik/DMS/clsDok.vb rename to SW/20211125/Dokumente/DMS/clsDok.vb index 59a7680..26cdda0 100644 --- a/SW/Dokumente_sik/DMS/clsDok.vb +++ b/SW/20211125/Dokumente/DMS/clsDok.vb @@ -34,6 +34,7 @@ Namespace DMS Me.SelectOne() Globals.conn.CloseConnection(True) End Function + ''' ''' Person sichern ''' @@ -123,7 +124,7 @@ Namespace DMS Me.iDokumentNr = New SqlInt32(CType(newkey, Int32)) Me.iKeyValue = New SqlInt32(CType(Elementnr, Int32)) Me.iDokType = New SqlInt32(CType(doktype, Int32)) - Me.iDokumenttypNr = New SqlInt32(CType(1, Int32)) + Me.iDokumenttypNr = New SqlInt32(CType(2, Int32)) Me.sBezeichnung = New SqlString(CType("", String)) Me.sBeschreibung = New SqlString(CType("", String)) Me.sFilename = New SqlString(CType("", String)) @@ -174,8 +175,8 @@ Namespace DMS End If End Function - Public Function Show_Doc(ByVal dokumentnr As Integer) - Me.DocMgmt.Show_Document(dokumentnr) + Public Function Show_Doc(ByVal dokumentnr As Integer) As Boolean + Return Me.DocMgmt.Show_Document(dokumentnr) End Function Public Function Get_Dokumente(ByVal Keyvalue As Integer, ByVal Doktype As Integer) As DataTable @@ -199,6 +200,27 @@ Namespace DMS End Try End Function + Public Function Get_Dokumente_pruefschritt(ByVal Keyvalue As Integer, ByVal Doktype As Integer) As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = "dbo.sp_get_dokumente_Pruefschritt" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@keyvalue", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Keyvalue)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@doktype", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr)) + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + Throw New Exception("clsDok::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + Public Function Exists_Testdrehbuch(ByVal Applikationnr As Integer) As Integer Dim tmpdata As New DataTable tmpdata = Get_Dokumente(Applikationnr, 2) diff --git a/SW/Dokumente_sik/DMS/clsStammdaten.vb b/SW/20211125/Dokumente/DMS/clsStammdaten.vb similarity index 100% rename from SW/Dokumente_sik/DMS/clsStammdaten.vb rename to SW/20211125/Dokumente/DMS/clsStammdaten.vb diff --git a/SW/Dokumente_sik/Dokumente.Designer.vb b/SW/20211125/Dokumente/Dokumente.Designer.vb similarity index 88% rename from SW/Dokumente_sik/Dokumente.Designer.vb rename to SW/20211125/Dokumente/Dokumente.Designer.vb index 8d8fbfe..90fd071 100644 --- a/SW/Dokumente_sik/Dokumente.Designer.vb +++ b/SW/20211125/Dokumente/Dokumente.Designer.vb @@ -30,15 +30,18 @@ Partial Class Dokumente Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() Me.ImageListeDocIcon = New System.Windows.Forms.ImageList(Me.components) + Me.C1Dokumente = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.NeuesDokumentToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DokumentInformationenBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DokumentLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DokumentanzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.C1Dokumente = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ImageListPruefschritt = New System.Windows.Forms.ImageList(Me.components) + Me.C1CommandHolder1 = New C1.Win.C1Command.C1CommandHolder() Me.ToolStrip1.SuspendLayout() - Me.ContextMenuStrip1.SuspendLayout() CType(Me.C1Dokumente, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStrip1.SuspendLayout() + CType(Me.C1CommandHolder1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'ToolStrip1 @@ -100,47 +103,13 @@ Partial Class Dokumente Me.ImageListeDocIcon.Images.SetKeyName(6, "Document-Blank-icon.png") Me.ImageListeDocIcon.Images.SetKeyName(7, "photos-icon.png") ' - 'ContextMenuStrip1 - ' - Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuesDokumentToolStripMenuItem, Me.DokumentInformationenBearbeitenToolStripMenuItem, Me.DokumentLöschenToolStripMenuItem, Me.DokumentanzeigenToolStripMenuItem}) - Me.ContextMenuStrip1.Name = "ContextMenuStrip1" - Me.ContextMenuStrip1.Size = New System.Drawing.Size(271, 92) - ' - 'NeuesDokumentToolStripMenuItem - ' - Me.NeuesDokumentToolStripMenuItem.Image = CType(resources.GetObject("NeuesDokumentToolStripMenuItem.Image"), System.Drawing.Image) - Me.NeuesDokumentToolStripMenuItem.Name = "NeuesDokumentToolStripMenuItem" - Me.NeuesDokumentToolStripMenuItem.Size = New System.Drawing.Size(270, 22) - Me.NeuesDokumentToolStripMenuItem.Text = "&Neues Dokument" - ' - 'DokumentInformationenBearbeitenToolStripMenuItem - ' - Me.DokumentInformationenBearbeitenToolStripMenuItem.Image = CType(resources.GetObject("DokumentInformationenBearbeitenToolStripMenuItem.Image"), System.Drawing.Image) - Me.DokumentInformationenBearbeitenToolStripMenuItem.Name = "DokumentInformationenBearbeitenToolStripMenuItem" - Me.DokumentInformationenBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(270, 22) - Me.DokumentInformationenBearbeitenToolStripMenuItem.Text = "Dokument-Informationen bearbeiten" - ' - 'DokumentLöschenToolStripMenuItem - ' - Me.DokumentLöschenToolStripMenuItem.Image = CType(resources.GetObject("DokumentLöschenToolStripMenuItem.Image"), System.Drawing.Image) - Me.DokumentLöschenToolStripMenuItem.Name = "DokumentLöschenToolStripMenuItem" - Me.DokumentLöschenToolStripMenuItem.Size = New System.Drawing.Size(270, 22) - Me.DokumentLöschenToolStripMenuItem.Text = "Dokument löschen" - ' - 'DokumentanzeigenToolStripMenuItem - ' - Me.DokumentanzeigenToolStripMenuItem.Image = CType(resources.GetObject("DokumentanzeigenToolStripMenuItem.Image"), System.Drawing.Image) - Me.DokumentanzeigenToolStripMenuItem.Name = "DokumentanzeigenToolStripMenuItem" - Me.DokumentanzeigenToolStripMenuItem.Size = New System.Drawing.Size(270, 22) - Me.DokumentanzeigenToolStripMenuItem.Text = "Dokument &anzeigen" - ' 'C1Dokumente ' - Me.C1Dokumente.AllowUpdate = False + Me.C1Dokumente.AllowDrop = True Me.C1Dokumente.AlternatingRows = True - Me.C1Dokumente.CellTips = C1.Win.C1TrueDBGrid.CellTipEnum.Floating Me.C1Dokumente.ContextMenuStrip = Me.ContextMenuStrip1 Me.C1Dokumente.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Dokumente.FetchRowStyles = True Me.C1Dokumente.FilterBar = True Me.C1Dokumente.GroupByCaption = "Drag a column header here to group by that column" Me.C1Dokumente.Images.Add(CType(resources.GetObject("C1Dokumente.Images"), System.Drawing.Image)) @@ -152,10 +121,57 @@ Partial Class Dokumente Me.C1Dokumente.PrintInfo.PageSettings = CType(resources.GetObject("C1Dokumente.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) Me.C1Dokumente.Size = New System.Drawing.Size(625, 294) Me.C1Dokumente.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation - Me.C1Dokumente.TabIndex = 7 + Me.C1Dokumente.TabIndex = 9 Me.C1Dokumente.Text = "C1TrueDBGrid1" Me.C1Dokumente.PropBag = resources.GetString("C1Dokumente.PropBag") ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuesDokumentToolStripMenuItem, Me.DokumentInformationenBearbeitenToolStripMenuItem, Me.DokumentLöschenToolStripMenuItem, Me.DokumentanzeigenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(279, 124) + ' + 'NeuesDokumentToolStripMenuItem + ' + Me.NeuesDokumentToolStripMenuItem.Image = CType(resources.GetObject("NeuesDokumentToolStripMenuItem.Image"), System.Drawing.Image) + Me.NeuesDokumentToolStripMenuItem.Name = "NeuesDokumentToolStripMenuItem" + Me.NeuesDokumentToolStripMenuItem.Size = New System.Drawing.Size(278, 30) + Me.NeuesDokumentToolStripMenuItem.Text = "&Neues Dokument" + ' + 'DokumentInformationenBearbeitenToolStripMenuItem + ' + Me.DokumentInformationenBearbeitenToolStripMenuItem.Image = CType(resources.GetObject("DokumentInformationenBearbeitenToolStripMenuItem.Image"), System.Drawing.Image) + Me.DokumentInformationenBearbeitenToolStripMenuItem.Name = "DokumentInformationenBearbeitenToolStripMenuItem" + Me.DokumentInformationenBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(278, 30) + Me.DokumentInformationenBearbeitenToolStripMenuItem.Text = "Dokument-Informationen bearbeiten" + ' + 'DokumentLöschenToolStripMenuItem + ' + Me.DokumentLöschenToolStripMenuItem.Image = CType(resources.GetObject("DokumentLöschenToolStripMenuItem.Image"), System.Drawing.Image) + Me.DokumentLöschenToolStripMenuItem.Name = "DokumentLöschenToolStripMenuItem" + Me.DokumentLöschenToolStripMenuItem.Size = New System.Drawing.Size(278, 30) + Me.DokumentLöschenToolStripMenuItem.Text = "Dokument löschen" + ' + 'DokumentanzeigenToolStripMenuItem + ' + Me.DokumentanzeigenToolStripMenuItem.Image = CType(resources.GetObject("DokumentanzeigenToolStripMenuItem.Image"), System.Drawing.Image) + Me.DokumentanzeigenToolStripMenuItem.Name = "DokumentanzeigenToolStripMenuItem" + Me.DokumentanzeigenToolStripMenuItem.Size = New System.Drawing.Size(278, 30) + Me.DokumentanzeigenToolStripMenuItem.Text = "Dokument &anzeigen" + ' + 'ImageListPruefschritt + ' + Me.ImageListPruefschritt.ImageStream = CType(resources.GetObject("ImageListPruefschritt.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageListPruefschritt.TransparentColor = System.Drawing.Color.Transparent + Me.ImageListPruefschritt.Images.SetKeyName(0, "Vorgabe_Dokumente.png") + Me.ImageListPruefschritt.Images.SetKeyName(1, "Definition_Dokument.png") + Me.ImageListPruefschritt.Images.SetKeyName(2, "Pruefplan_Dokument.png") + ' + 'C1CommandHolder1 + ' + Me.C1CommandHolder1.Owner = Me + ' 'Dokumente ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -166,8 +182,9 @@ Partial Class Dokumente Me.Size = New System.Drawing.Size(625, 319) Me.ToolStrip1.ResumeLayout(False) Me.ToolStrip1.PerformLayout() - Me.ContextMenuStrip1.ResumeLayout(False) CType(Me.C1Dokumente, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStrip1.ResumeLayout(False) + CType(Me.C1CommandHolder1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -176,6 +193,7 @@ Partial Class Dokumente Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton Friend WithEvents ImageListeDocIcon As System.Windows.Forms.ImageList + Friend WithEvents C1Dokumente As C1.Win.C1TrueDBGrid.C1TrueDBGrid Friend WithEvents ToolStripButton4 As System.Windows.Forms.ToolStripButton Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip @@ -183,6 +201,6 @@ Partial Class Dokumente Friend WithEvents DokumentInformationenBearbeitenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents DokumentLöschenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents DokumentanzeigenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents C1Dokumente As C1.Win.C1TrueDBGrid.C1TrueDBGrid - + Friend WithEvents ImageListPruefschritt As ImageList + Friend WithEvents C1CommandHolder1 As C1.Win.C1Command.C1CommandHolder End Class diff --git a/SW/Dokumente_sik/Dokumente.resx b/SW/20211125/Dokumente/Dokumente.resx similarity index 74% rename from SW/Dokumente_sik/Dokumente.resx rename to SW/20211125/Dokumente/Dokumente.resx index caee81e..e5c5e23 100644 --- a/SW/Dokumente_sik/Dokumente.resx +++ b/SW/20211125/Dokumente/Dokumente.resx @@ -139,16 +139,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwsMyLpCsL - +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1L7brO3d1pxuta1Y3YSghuTbGrFp7W1Tt7mLNvL99wyey7bZ - D/6c5znnf855HmYr+CUS9n1b2y16/T9mensfPWAY6OrqEJBKF97JZPW0VB1h8UnXfIyD+8493CdDJkQi - vGxsxKxE0kMtlfk9dzOVmepEknuK6BKPif0SPKypgUssvk0t5dmMavVr/nNIsq1YNjFY8Z8G9zOF16rh - 79RSHiGmPZsJKZB0y8kAKZYnxUh5O/DDtg2xuRet1PZvOK9q+1rwWoEnm9PTJ5Gw78LqdDcZJMMfv0hF - beXZnB8J8B45VmfOkBccJps7kfKdQM67J0It5RG4G8q0twu/PEexHlSAJ19Yf9uPuO2Q8NlWX0tt5Sku - Pk7wng7kP15Hauo4sqHLSJPtQujgRWqpTOHLM2SWnMjM3kX2TR/ZfgHF0LFJWq7M+PgVEXgncl9fYSMe - RD4RQD7Ss0HL1Wlu3iu/1N+N7Dc3CnwEKEZtuZVPu2m5Ok0tLed37KzFvoYGVzr+oYmmt0Y4HD6gVqvH - NBqNVm8yKXS654Nms3nI4XCMluR0OoeIlERXXS7XAMuyp3w+n4y2M4zdbm+3WCx9pGnQYDAMG43GURLH - SFSXRM+l3AiRUq/XD1it1iMMwzB/AcmkJIfUYwLvAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pdyuFRWVeJF1Z + 0AeGKckIIpBGdzaU8KIomKN1ZRdBH2AXo/btZu2zOd1qWzG7CUELybc1ymntbVtucxdt5PvvGTyXbbMf + /DnPc87/nPM8zGbws6zzbVvbTXr9P2Z6eh7eZxho6+oQkEg+vJFK62mpOsLi486FGAf37bu4R4aMi0R4 + 3tiIOZbtppbK/J6/kcxMdSDBPUF0icf4XhYPamrgEotvUUt5NqIa3S//WSScrVgxMlj1nwL3I4mXyqGv + 1FIeIaY5kwnJkXDLyAAJVibFSHrb8d26BbH5iVZq+zecV7k1Hbxa4Mnm1PQJxG07kJ7uIoOk+OMXKamt + PBsLwwHeI0N65jR5wUGyuQNJ33HkvLsi1FIegbuuSHk78dNzBGtBOXjyhbXXffg2cUD4aK2vpbbyFBcf + xXlPO/LvriE5dQzZ0CWkyHYhtP8CtVSm8OkpMksOZObuIPuql2w/j2Lo6CQtV2Zs7LIIvAO5zy+wvhxE + Ph5APtK9TsvVaW7eLbvY14XsFzcKfAQoRq251fc7abk6TS0t57Ztr8WehgZXanm2iaY3Rzgc3qdSqUbV + arVGZzTKtdpnAyaTadBut4+U5HA4BokURFdcLle/0+k86fP5pLSdYWw22yGz2dxLmgb0ev2QwWAYIXGU + RFVJ9FzKDRMpdDpdv8ViOcwwDPMXw2okhLGDTtQAAAAASUVORK5CYII= @@ -184,14 +184,14 @@ - 758, 56 + 202, 13 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACs - EAAAAk1TRnQBSQFMAgEBCAEAATQBAQE0AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EAAAAk1TRnQBSQFMAgEBCAEAATwBAQE8AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -266,7 +266,7 @@ - 913, 56 + 652, 13 @@ -366,6 +366,62 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Flat,ControlDark,0, 1, 0, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 623, 292</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 623, 292</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Style4{}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{BackColor:255, 255, 192;}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style1{}Caption{AlignHorz:Center;}Style6{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FetchRowStyles="True" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 623, 292</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 623, 292</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + 419, 13 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADe + CQAAAk1TRnQBSQFMAgEBAwEAARgBAAEYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wUAAfQC/w0AAfQC/w0A + AfQC/x0AAf8B7wL0BP8IAAH/Ae8C9AT/CAAB/wHvAvQE/xkAAZIC8gLzAvQB/wgAAZIC8gLzAvQB/wgA + AZIC8gLzAvQB/xgAAe8B8gG2AmgBvAH0Af8IAAHvAfEBuwKzAbwB9AH/CAAB7wHwAXgCLwEHAfQB/xcA + Af8BsQGPAWkBYgE/AWkF/wQAAf8B3AHbAboCswG0Bf8EAAH/AVgCVwIvAVAF/xMAAfMBtwGxAY8CaQE/ + AWgE/wQAAfQB4QHcAdsBugGzAZABswT/BAABGwF+AVgCVwIvAVAE/xQAA7cBsQFpAj8BjggAAhkB4QHb + AboBkAGLAboIAAKfAX4CVwEvASkBeBgAAbcB8wK3AY8CaAkAAeEB4gEZAeEB2wGzAbQJAAF+AcMBnwF+ + AVcBLwFQGQAB/wG9AbcBvQGxAWkBPwkAAf8DGQHcAboBswkAAf8DnwFYAVYBLxwAArcBiAJpAfEKAALh + AdsBswG0AfIKAAF5AX4BVwEvAVAB8RoAAf8BsQGPAmkBiAFpCQAB/wHhAdsEugkAAfYBfgVXGQABvQK3 + A7EBjwkAAhkC4QHcAtsJAAKfAn4BWAJXGQABvQG3AdIDsQG3CQABGQLhA9wBGQkAAZ8CfgF5AVcBeQGZ + GQACtwOxAfQKAAPhAtwB9AoAAn4BeQFXAVgB9BoAAf8BvQHyAf8MAAH/ARkB8wH/DAAB/wIbAf9WAAFC + AU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAB8QH/AfEB/wHxAf8CAAHwAQ8B8AEP + AfABDwIAAfgBBwH4AQcB+AEHAgAB+AEHAfgBBwH4AQcCAAHwAQAB8AEAAfADAAHgAQEB4AEBAeABAQIA + AeABHwHgAR8B4AEfAgAB4AE/AeABPwHgAT8CAAHgAT8B4AE/AeABPwIAAfwBDwH8AQ8B/AEPAgAB/AEH + AfwBBwH8AQcCAAH8AQcB/AEHAfwBBwIAAfwBBwH8AQcB/AEHAgAB/AEPAfwBDwH8AQ8CAAH8AT8B/AE/ + AfwBPwIABv8CAAs= + + + + 809, 13 + \ No newline at end of file diff --git a/SW/Dokumente_sik/Dokumente.vb b/SW/20211125/Dokumente/Dokumente.vb similarity index 78% rename from SW/Dokumente_sik/Dokumente.vb rename to SW/20211125/Dokumente/Dokumente.vb index 2559286..c0c6764 100644 --- a/SW/Dokumente_sik/Dokumente.vb +++ b/SW/20211125/Dokumente/Dokumente.vb @@ -102,7 +102,7 @@ Public Class Dokumente End Set End Property Dim m_Show_Editfunctions As Boolean = True - _ + Public Property Show_Editfunctions() As Boolean Get Show_Editfunctions = m_Show_Editfunctions @@ -115,10 +115,35 @@ Public Class Dokumente End Set End Property + + Dim M_Pruefschrittnr As Integer + Property Pruefschrittnr As Integer + Get + Return M_Pruefschrittnr + End Get + Set(value As Integer) + M_Pruefschrittnr = value + Get_Dokumente_Pruefschritt + End Set + End Property #End Region Sub Set_ShowToolbar() - If Me.Show_Toolbar = True Then Me.ToolStrip1.Visible = True Else Me.ToolStrip1.Visible = False + If Me.Show_Toolbar = True Then + Me.NeuesDokumentToolStripMenuItem.Visible = True + Me.DokumentInformationenBearbeitenToolStripMenuItem.Visible = True + Me.DokumentLöschenToolStripMenuItem.Visible = True + Me.DokumentanzeigenToolStripMenuItem.Visible = True + Me.ToolStrip1.Visible = True + Me.C1Dokumente.AllowDrop = True + Else + Me.NeuesDokumentToolStripMenuItem.Visible = False + Me.DokumentInformationenBearbeitenToolStripMenuItem.Visible = False + Me.DokumentLöschenToolStripMenuItem.Visible = False + Me.DokumentanzeigenToolStripMenuItem.Visible = True + Me.ToolStrip1.Visible = False + Me.C1Dokumente.AllowDrop = False + End If End Sub Sub Set_Editfunctions() @@ -146,8 +171,12 @@ Public Class Dokumente 'Me.Doktype = 1 'Me.ThemaNr = 1 'Me.TempFilePath = "h:\tssettings\themenmgmt" - Globals.conn.sConnectionString = Me.ConnectionString - Globals.sConnectionString = Me.ConnectionString + Try + Globals.conn.sConnectionString = Me.ConnectionString + Globals.sConnectionString = Me.ConnectionString + Catch + End Try + Globals.Mitarbeiternr = Mitarbeiternr Globals.TmpFilepath = TempFilePath Set_ShowToolbar() @@ -155,7 +184,11 @@ Public Class Dokumente End Sub - Private Sub Refresh_Dokumente() + Public Sub Refresh_Dokumente() + If Me.Pruefschrittnr > 0 Then + Me.Get_Dokumente_Pruefschritt() + Exit Sub + End If Try Dim filtertext As String = "none" Try @@ -177,12 +210,69 @@ Public Class Dokumente Catch ex As Exception End Try Me.C1Dokumente.Enabled = True - Catch ex As Exception - 'MsgBox(ex.Message) - + Catch End Try End Sub + Private Sub Get_Dokumente_Pruefschritt() + Try + Dim filtertext As String = "none" + Try + filtertext = Me.C1Dokumente.Columns("Aktiv").FilterText + Catch ex As Exception + End Try + + Dim bm As Integer = 0 + bm = Me.C1Dokumente.Bookmark + + Me.C1Dokumente.Enabled = False + Get_Dokumente_Pruefschritt(Me.C1Dokumente, Me.ImageListeDocIcon, Me.Pruefschrittnr) + + Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Dokumente, "Dokument", Me.dokumente) + If filtertext <> "none" Then Me.C1Dokumente.Columns("Aktiv").FilterText = filtertext + + Dim bmp0 As New Bitmap(ImageListPruefschritt.Images(0)) + Dim bmp1 As New Bitmap(ImageListPruefschritt.Images(1)) + Dim bmp2 As New Bitmap(ImageListPruefschritt.Images(2)) + + Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem() + Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem() + + + v0.DisplayValue = bmp0 + v0.Value = 1 + + v1.DisplayValue = bmp1 + v1.Value = 2 + + v2.DisplayValue = bmp2 + v2.Value = 3 + + + Try + + C1Dokumente.Columns("DokTypeImage").ValueItems.Values.Add(v0) + C1Dokumente.Columns("DokTypeImage").ValueItems.Values.Add(v1) + C1Dokumente.Columns("DokTypeImage").ValueItems.Values.Add(v2) + C1Dokumente.Columns("DokTypeImage").ValueItems.Translate = True + Catch ex As Exception + MsgBox(ex.Message) + End Try + + Try + Me.C1Dokumente.Bookmark = bm + Catch ex As Exception + End Try + Me.C1Dokumente.Enabled = True + Catch + End Try + End Sub + + Public Sub Init() + Me.C1Dokumente.DataSource = Nothing + End Sub + #Region "Dokumente" @@ -210,6 +300,22 @@ Public Class Dokumente End Function + Public Function Get_Dokumente_Pruefschritt(ByRef c1data As C1TrueDBGrid, Optional ByVal ImgList As ImageList = Nothing, Optional Pruefschrittnr As Integer = 0) + Try + dokumente.Dispose() + dokumente = Nothing + Catch ex As Exception + + End Try + dokumente = Dokument.Get_Dokumente_pruefschritt(Pruefschrittnr, 0) + c1data.DataSource = dokumente + c1data.DataMember = dokumente.TableName + If Not ImgList Is Nothing Then + Set_Imagevalues(c1data, ImgList) + End If + + End Function + Private Sub Set_Imagevalues(ByRef c1data As C1TrueDBGrid, ByRef imglist As ImageList) Dim i As Integer @@ -323,7 +429,7 @@ Public Class Dokumente #End Region - Private Sub Dokumente_DragDrop(sender As Object, e As DragEventArgs) + Private Sub Dokumente_DragDrop(sender As Object, e As DragEventArgs) Handles C1Dokumente.DragDrop Dim s() As String = e.Data.GetData("FileDrop", False) Dim i As Integer For i = 0 To s.Length - 1 @@ -334,6 +440,7 @@ Public Class Dokumente End Sub Private Sub Dokumente_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter + If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then e.Effect = DragDropEffects.All Else @@ -342,7 +449,7 @@ Public Class Dokumente End Sub Private Sub Dokumente_Load(sender As Object, e As EventArgs) Handles Me.Load - Me.Refresh_Dokumente() + Refresh_Dokumente() End Sub Private Sub C1Dokumente_DoubleClick(sender As Object, e As EventArgs) Handles C1Dokumente.DoubleClick @@ -363,13 +470,14 @@ Public Class Dokumente f.ShowDialog() Me.Refresh_Dokumente() Catch ex As Exception + MsgBox(ex.Message) End Try End Sub Private Sub DokumentLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentLöschenToolStripMenuItem.Click Try - If MsgBox("Dokument wirklich löschen?", vbYesNoCancel + vbQuestion) = MsgBoxResult.Yes Then + If MsgBox("Dokument wirklich löschen?", vbYesNoCancel + vbQuestion, Title:="Assessment-Management") = MsgBoxResult.Yes Then Dokument.Delete_Dokument(Me.C1Dokumente.Columns("Dokumentnr").Value) Me.Refresh_Dokumente() End If @@ -413,7 +521,7 @@ Public Class Dokumente DokumentanzeigenToolStripMenuItem_Click(sender, e) End Sub - Private Sub C1Dokumente_Click(sender As Object, e As EventArgs) + Private Sub C1Dokumente_Click(sender As Object, e As EventArgs) Handles C1Dokumente.Click End Sub diff --git a/SW/Dokumente_sik/Klassen/Globals.vb b/SW/20211125/Dokumente/Klassen/Globals.vb similarity index 100% rename from SW/Dokumente_sik/Klassen/Globals.vb rename to SW/20211125/Dokumente/Klassen/Globals.vb diff --git a/SW/20211125/Dokumente/Klassen/MySpalten.vb b/SW/20211125/Dokumente/Klassen/MySpalten.vb new file mode 100644 index 0000000..4ca16cd --- /dev/null +++ b/SW/20211125/Dokumente/Klassen/MySpalten.vb @@ -0,0 +1,432 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +'* +' Object MyspaltenTitel +' +' Dieses Objekt liest die Daten aus der Tabelle Spalten und speichert diese in spaltendaten +' Die Daten werden fr die Spaltenbezeichnung der C1Datagrids verwendet +' +' Autor: Stefan Hutter +' Datum: 2.12.2002 +'* +Imports C1.Win.C1TrueDBGrid +Namespace Utils + + Public Class Tabellenspalte + Private m_table As String + Private m_field As String + Private m_spaltenname As String + Private m_locked As Boolean + Private m_Width As Integer + Private m_Order As Integer + Private m_alsHacken As Boolean + Private m_tiptext As String + Private m_numberformat As String + + Property ColWith() As Integer + Get + Return m_Width + End Get + Set(ByVal Value As Integer) + m_Width = Value + End Set + End Property + Property Order() As Integer + Get + Return m_Order + End Get + Set(ByVal Value As Integer) + m_Order = Value + End Set + End Property + Property Tabelle() As String + Get + Return m_table + End Get + Set(ByVal Value As String) + m_table = Value + End Set + End Property + Property Feld() As String + Get + Return m_field + End Get + Set(ByVal Value As String) + m_field = Value + End Set + End Property + Property spaltenname() As String + Get + Return m_spaltenname + End Get + Set(ByVal Value As String) + m_spaltenname = Value + End Set + End Property + Property locked() As Boolean + Get + Return m_locked + End Get + Set(ByVal Value As Boolean) + m_locked = Value + End Set + End Property + Property AlsHacken() As Boolean + Get + Return m_alsHacken + End Get + Set(ByVal Value As Boolean) + m_alsHacken = Value + End Set + End Property + Property TipText() As String + Get + Return m_tiptext + End Get + Set(ByVal Value As String) + m_tiptext = Value + End Set + End Property + Property Numberformat() As String + Get + Return m_numberformat + End Get + Set(ByVal value As String) + m_numberformat = value + End Set + End Property + Public Sub New() + + End Sub + Public Sub New(ByRef daten As Object, ByRef tablename As String, ByRef ds As DataSet) + Spaltentitel_aktualisieren(daten, tablename, ds) + End Sub + Public Function getspalte() + Try + Dim myspalten As New MySpaltenTitel() + myspalten.getspalte(Me.Tabelle, Me.Feld, Me.spaltenname, Me.locked, Me.ColWith, Me.Order, Me.AlsHacken, Me.TipText, Me.Numberformat) + Catch ex As Exception + MsgBox(ex.Message) + + End Try + End Function + + Public Function Spaltentitel_aktualisieren(ByRef daten As Object, ByRef tablename As String, ByRef ds As DataSet) + Dim anzcols As Integer + Dim i As Integer + Dim s As String + anzcols = daten.Splits(0).DisplayColumns.Count + Me.Tabelle = tablename + For i = 0 To daten.Columns.Count - 1 + s = daten.Columns(i).DataField + Me.Feld = s + Me.getspalte() + daten.Columns(i).Caption = Me.spaltenname + + If Me.ColWith = 0 Then + daten.Splits(0).DisplayColumns(i).Width = 0 + daten.Splits(0).DisplayColumns(i).Visible = False + Else + daten.Splits(0).DisplayColumns(i).Width = Me.ColWith + End If + + If Me.locked Then + daten.Splits(0).DisplayColumns(i).Locked = True + End If + + If Me.AlsHacken Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + End If + + 'Prsentation von aktiv + If LCase(daten.Columns(i).DataField) = "aktiv" Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + daten.Columns(i).ValueItems.DefaultItem = True + daten.Columns(i).DefaultValue = True + daten.Columns(i).FilterText = True + 'Dim items As C1.Win.C1TrueDBGrid.ValueItems = daten.Columns("aktiv").ValueItems + 'items.Values.Clear() + 'items.Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("False", False)) ' unchecked + 'items.Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("True", True)) ' checked + 'items.Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("", "INDETERMINATE")) ' indeterminate state + + + End If + Select Case LCase(daten.Columns(i).DataField) + Case "erstellt_am", "erstelltam" + daten.Columns(i).DefaultValue = Now + End Select + If daten.Columns(i).DataType.Name = "DateTime" Then + daten.Columns(i).NumberFormat = "dd.MM.yyyy HH:mm:ss" + End If + If Me.Numberformat <> "" Then + daten.columns(i).numberformat = Me.Numberformat + End If + Next + ColumnOrder(tablename, daten) + daten.HeadingStyle.WrapText = False + End Function + + Public Function Spaltentitel_aktualisieren(ByRef daten As Object, ByRef tablename As String, ByRef dt As DataTable, Optional ByVal Aktiv_Spalte_True_Setzen As Boolean = True) + Dim anzcols As Integer + Dim i As Integer + Dim t As New DataTable() + Dim s As String + anzcols = daten.Splits(0).DisplayColumns.Count + t = dt + Me.Tabelle = tablename + For i = 0 To daten.Columns.Count - 1 + s = daten.Columns(i).DataField + 'If s = "ApplikationNr" Then + ' MsgBox("Hallo") + + 'End If + Me.Feld = s + Me.getspalte() + daten.Columns(i).Caption = Me.spaltenname + + If Me.ColWith = 0 Then + daten.Splits(0).DisplayColumns(i).Width = 0 + daten.Splits(0).DisplayColumns(i).Visible = False + Else + daten.Splits(0).DisplayColumns(i).Width = Me.ColWith + End If + + If Me.locked Then + daten.Splits(0).DisplayColumns(i).Locked = True + End If + + If Me.AlsHacken Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + End If + + 'Prsentation von aktiv + If LCase(daten.Columns(i).DataField) = "aktiv" And Aktiv_Spalte_True_Setzen = True Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + daten.Columns(i).ValueItems.DefaultItem = True + daten.Columns(i).DefaultValue = True + daten.Columns(i).FilterText = True + End If + Select Case LCase(daten.Columns(i).DataField) + Case "erstellt_am", "erstelltam" + daten.Columns(i).DefaultValue = Now + End Select + If daten.Columns(i).DataType.Name = "DateTime" Then + daten.Columns(i).NumberFormat = "dd.MM.yyyy HH:mm:ss" + End If + If Me.Numberformat <> "" Then + daten.columns(i).numberformat = Me.Numberformat + End If + Next + ColumnOrder(tablename, daten) + daten.HeadingStyle.WrapText = False + End Function + + Public Function Spaltentitel_aktualisieren_Optionaler_Aktiv_Filer(ByRef daten As Object, ByRef tablename As String, ByRef dt As DataTable, Optional ByVal Aktiv_Filter As String = "") + Dim anzcols As Integer + Dim i As Integer + Dim t As New DataTable() + Dim s As String + anzcols = daten.Splits(0).DisplayColumns.Count + t = dt + Me.Tabelle = tablename + For i = 0 To daten.Columns.Count - 1 + s = daten.Columns(i).DataField + + Me.Feld = s + Me.getspalte() + If Me.spaltenname = "" Then + daten.Splits(0).DisplayColumns(i).Width = 0 + Else + daten.Columns(i).Caption = Me.spaltenname + + If Me.ColWith = 0 Then + daten.Splits(0).DisplayColumns(i).Width = 0 + daten.Splits(0).DisplayColumns(i).Visible = False + Else + daten.Splits(0).DisplayColumns(i).Width = Me.ColWith + End If + + If Me.locked Then + daten.Splits(0).DisplayColumns(i).Locked = True + End If + + If Me.AlsHacken Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + End If + + 'Prsentation von aktiv + If LCase(daten.Columns(i).DataField) = "aktiv" And Aktiv_Filter <> "" Then + daten.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox + daten.Columns(i).ValueItems.DefaultItem = True + daten.Columns(i).DefaultValue = True + daten.Columns(i).FilterText = Aktiv_Filter + End If + Select Case LCase(daten.Columns(i).DataField) + Case "erstellt_am", "erstelltam" + daten.Columns(i).DefaultValue = Now + End Select + If daten.Columns(i).DataType.Name = "DateTime" Then + daten.Columns(i).NumberFormat = "dd.MM.yyyy HH:mm:ss" + End If + If Me.Numberformat <> "" Then + daten.columns(i).numberformat = Me.Numberformat + End If + End If + Next + ColumnOrder(tablename, daten) + daten.HeadingStyle.WrapText = False + End Function + ''' + ''' Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + ''' + ''' + ''' + ''' + ''' + Public Function ColumnOrder(ByVal Tablename As String, ByRef Data As C1TrueDBGrid) + Dim spaltendata As DataTable = Globals.Spaltendaten + Dim dv() As DataRow + Dim dr As DataRow + Dim dc As New Collection + dv = spaltendata.Select("Tabelle='" & Tablename & "'", "Reihenfolge desc, Eintragnr") + For Each c As C1DisplayColumn In Data.Splits(0).DisplayColumns + dc.Add(c) + Next + While Data.Splits(0).DisplayColumns.Count > 0 + Data.Splits(0).DisplayColumns.RemoveAt(0) + End While + + For Each dr In dv + For Each e As C1DisplayColumn In dc + If e.Name = dr.Item(3) Then + Data.Splits(0).DisplayColumns.Insert(0, e) + End If + Next + Next + + End Function + End Class + + Public Class MySpaltenTitel + Private spaltendata As DataTable = Globals.Spaltendaten + Sub New() + load_data() + End Sub + + Sub dispose() + spaltendata.Dispose() + Me.dispose() + End Sub + + Public Function getspalte(ByVal tabelle As String, ByVal feld As String, ByRef spaltenname As String, ByRef locked As Boolean, _ + ByRef colwidth As Integer, ByRef order As Integer, ByRef alshacken As Boolean, ByRef tiptext As String, ByRef numberformat As String) + If spaltendata.Rows.Count = 0 Then load_data() + Dim dv() As DataRow + Dim dr As DataRow + dv = spaltendata.Select("Tabelle='" & tabelle & "' and tabellenspalte='" & feld & "'", "Reihenfolge, Eintragnr") + If dv.Length = 0 Then + spaltenname = "" + locked = True + colwidth = 0 + order = 0 + alshacken = False + tiptext = "" + numberformat = "" + End If + For Each dr In dv + spaltenname = dr.Item(3) + locked = dr.Item(4) + colwidth = dr.Item(6) + order = dr.Item(7) + alshacken = dr.Item(5) + tiptext = dr.Item(8) + numberformat = dr.Item(14).ToString + Next + 'Dim i As Integer + 'For i = 0 To spaltendata.Rows.Count - 1 + + ' If UCase(spaltendata.Rows(i).Item(1)) = UCase(tabelle) And UCase(spaltendata.Rows(i).Item(2)) = UCase(feld) Then + ' spaltenname = spaltendata.Rows(i).Item(3) + ' locked = spaltendata.Rows(i).Item(4) + ' colwidth = spaltendata.Rows(i).Item(6) + ' order = spaltendata.Rows(i).Item(7) + ' alshacken = spaltendata.Rows(i).Item(5) + ' tiptext = spaltendata.Rows(i).Item(8) + ' Exit Function + ' End If + 'Next + + End Function + + Public Sub load_data() + If Me.spaltendata.Rows.Count > 0 Then Exit Sub + Dim spalten As New Utils.clsSpalten() + spaltendata.Rows.Clear() + spalten.cpMainConnectionProvider = conn + spaltendata = spalten.Select_All_Aktiv + Globals.Spaltendaten = spaltendata + End Sub + End Class + + Public Class clsSpalten + Inherits DB.clsSpalten + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Public Function Select_All_Aktiv() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_SelectAll_Aktiv]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = New DataTable("spalten") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(0)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + End Class +End Namespace \ No newline at end of file diff --git a/SW/Dokumente_sik/Klassen/MySysadmin.vb b/SW/20211125/Dokumente/Klassen/MySysadmin.vb similarity index 100% rename from SW/Dokumente_sik/Klassen/MySysadmin.vb rename to SW/20211125/Dokumente/Klassen/MySysadmin.vb diff --git a/SW/20211125/Dokumente/Klassen/clsSpalten.vb b/SW/20211125/Dokumente/Klassen/clsSpalten.vb new file mode 100644 index 0000000..b2c1c8d --- /dev/null +++ b/SW/20211125/Dokumente/Klassen/clsSpalten.vb @@ -0,0 +1,630 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'spalten' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 13:15:45 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace db + ''' + ''' Purpose: Data Access class for the table 'spalten'. + ''' + Public Class clsSpalten + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bReadonly, m_bAlsHacken, m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMandantnr, m_iMutierer, m_iReihenfolge, m_iEintragnr, m_iBreite As SqlInt32 + Private m_sTabelle, m_sNumberFormat, m_sTiptext, m_sSpalte, m_sTabellenspalte As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iEintragnr
  • + '''
  • sTabelle. May be SqlString.Null
  • + '''
  • sTabellenspalte. May be SqlString.Null
  • + '''
  • sSpalte. May be SqlString.Null
  • + '''
  • bReadonly
  • + '''
  • bAlsHacken
  • + '''
  • iBreite. May be SqlInt32.Null
  • + '''
  • iReihenfolge. May be SqlInt32.Null
  • + '''
  • sTiptext. May be SqlString.Null
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • sNumberFormat. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ieintragnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iEintragnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stabelle", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTabelle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stabellenspalte", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTabellenspalte)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sspalte", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSpalte)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bReadonly", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bReadonly)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@balsHacken", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAlsHacken)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iBreite", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iBreite)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iReihenfolge", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iReihenfolge)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stiptext", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTiptext)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sNumberFormat", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sNumberFormat)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iEintragnr
  • + '''
  • sTabelle. May be SqlString.Null
  • + '''
  • sTabellenspalte. May be SqlString.Null
  • + '''
  • sSpalte. May be SqlString.Null
  • + '''
  • bReadonly
  • + '''
  • bAlsHacken
  • + '''
  • iBreite. May be SqlInt32.Null
  • + '''
  • iReihenfolge. May be SqlInt32.Null
  • + '''
  • sTiptext. May be SqlString.Null
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • sNumberFormat. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ieintragnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iEintragnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stabelle", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTabelle)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stabellenspalte", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTabellenspalte)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sspalte", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSpalte)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bReadonly", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bReadonly)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@balsHacken", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAlsHacken)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iBreite", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iBreite)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iReihenfolge", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iReihenfolge)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@stiptext", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTiptext)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sNumberFormat", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sNumberFormat)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iEintragnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ieintragnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iEintragnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iEintragnr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iEintragnr
  • + '''
  • sTabelle
  • + '''
  • sTabellenspalte
  • + '''
  • sSpalte
  • + '''
  • bReadonly
  • + '''
  • bAlsHacken
  • + '''
  • iBreite
  • + '''
  • iReihenfolge
  • + '''
  • sTiptext
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iMandantnr
  • + '''
  • sNumberFormat
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("spalten") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@ieintragnr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iEintragnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iEintragnr = New SqlInt32(CType(dtToReturn.Rows(0)("eintragnr"), Integer)) + If dtToReturn.Rows(0)("tabelle") Is System.DBNull.Value Then + m_sTabelle = SqlString.Null + Else + m_sTabelle = New SqlString(CType(dtToReturn.Rows(0)("tabelle"), String)) + End If + If dtToReturn.Rows(0)("tabellenspalte") Is System.DBNull.Value Then + m_sTabellenspalte = SqlString.Null + Else + m_sTabellenspalte = New SqlString(CType(dtToReturn.Rows(0)("tabellenspalte"), String)) + End If + If dtToReturn.Rows(0)("spalte") Is System.DBNull.Value Then + m_sSpalte = SqlString.Null + Else + m_sSpalte = New SqlString(CType(dtToReturn.Rows(0)("spalte"), String)) + End If + m_bReadonly = New SqlBoolean(CType(dtToReturn.Rows(0)("Readonly"), Boolean)) + m_bAlsHacken = New SqlBoolean(CType(dtToReturn.Rows(0)("alsHacken"), Boolean)) + If dtToReturn.Rows(0)("Breite") Is System.DBNull.Value Then + m_iBreite = SqlInt32.Null + Else + m_iBreite = New SqlInt32(CType(dtToReturn.Rows(0)("Breite"), Integer)) + End If + If dtToReturn.Rows(0)("Reihenfolge") Is System.DBNull.Value Then + m_iReihenfolge = SqlInt32.Null + Else + m_iReihenfolge = New SqlInt32(CType(dtToReturn.Rows(0)("Reihenfolge"), Integer)) + End If + If dtToReturn.Rows(0)("tiptext") Is System.DBNull.Value Then + m_sTiptext = SqlString.Null + Else + m_sTiptext = New SqlString(CType(dtToReturn.Rows(0)("tiptext"), String)) + End If + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("NumberFormat") Is System.DBNull.Value Then + m_sNumberFormat = SqlString.Null + Else + m_sNumberFormat = New SqlString(CType(dtToReturn.Rows(0)("NumberFormat"), String)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_spalten_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("spalten") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_spalten_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSpalten::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iEintragnr]() As SqlInt32 + Get + Return m_iEintragnr + End Get + Set(ByVal Value As SqlInt32) + Dim iEintragnrTmp As SqlInt32 = Value + If iEintragnrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iEintragnr", "iEintragnr can't be NULL") + End If + m_iEintragnr = Value + End Set + End Property + + + Public Property [sTabelle]() As SqlString + Get + Return m_sTabelle + End Get + Set(ByVal Value As SqlString) + m_sTabelle = Value + End Set + End Property + + + Public Property [sTabellenspalte]() As SqlString + Get + Return m_sTabellenspalte + End Get + Set(ByVal Value As SqlString) + m_sTabellenspalte = Value + End Set + End Property + + + Public Property [sSpalte]() As SqlString + Get + Return m_sSpalte + End Get + Set(ByVal Value As SqlString) + m_sSpalte = Value + End Set + End Property + + + Public Property [bReadonly]() As SqlBoolean + Get + Return m_bReadonly + End Get + Set(ByVal Value As SqlBoolean) + Dim bReadonlyTmp As SqlBoolean = Value + If bReadonlyTmp.IsNull Then + Throw New ArgumentOutOfRangeException("bReadonly", "bReadonly can't be NULL") + End If + m_bReadonly = Value + End Set + End Property + + + Public Property [bAlsHacken]() As SqlBoolean + Get + Return m_bAlsHacken + End Get + Set(ByVal Value As SqlBoolean) + Dim bAlsHackenTmp As SqlBoolean = Value + If bAlsHackenTmp.IsNull Then + Throw New ArgumentOutOfRangeException("bAlsHacken", "bAlsHacken can't be NULL") + End If + m_bAlsHacken = Value + End Set + End Property + + + Public Property [iBreite]() As SqlInt32 + Get + Return m_iBreite + End Get + Set(ByVal Value As SqlInt32) + m_iBreite = Value + End Set + End Property + + + Public Property [iReihenfolge]() As SqlInt32 + Get + Return m_iReihenfolge + End Get + Set(ByVal Value As SqlInt32) + m_iReihenfolge = Value + End Set + End Property + + + Public Property [sTiptext]() As SqlString + Get + Return m_sTiptext + End Get + Set(ByVal Value As SqlString) + m_sTiptext = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + Dim bAktivTmp As SqlBoolean = Value + If bAktivTmp.IsNull Then + Throw New ArgumentOutOfRangeException("bAktiv", "bAktiv can't be NULL") + End If + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [sNumberFormat]() As SqlString + Get + Return m_sNumberFormat + End Get + Set(ByVal Value As SqlString) + m_sNumberFormat = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/Dokumente/My Project/Application.Designer.vb b/SW/20211125/Dokumente/My Project/Application.Designer.vb new file mode 100644 index 0000000..d4cdc1f --- /dev/null +++ b/SW/20211125/Dokumente/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.17929 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/SW/Dokumente_sik/My Project/Application.myapp b/SW/20211125/Dokumente/My Project/Application.myapp similarity index 100% rename from SW/Dokumente_sik/My Project/Application.myapp rename to SW/20211125/Dokumente/My Project/Application.myapp diff --git a/SW/Dokumente_sik/My Project/AssemblyInfo.vb b/SW/20211125/Dokumente/My Project/AssemblyInfo.vb similarity index 100% rename from SW/Dokumente_sik/My Project/AssemblyInfo.vb rename to SW/20211125/Dokumente/My Project/AssemblyInfo.vb diff --git a/SW/Dokumente_sik/My Project/Resources.Designer.vb b/SW/20211125/Dokumente/My Project/Resources.Designer.vb similarity index 98% rename from SW/Dokumente_sik/My Project/Resources.Designer.vb rename to SW/20211125/Dokumente/My Project/Resources.Designer.vb index de3b4c1..9b11d9a 100644 --- a/SW/Dokumente_sik/My Project/Resources.Designer.vb +++ b/SW/20211125/Dokumente/My Project/Resources.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' Dieser Code wurde von einem Tool generiert. -' Laufzeitversion:4.0.30319.42000 +' Laufzeitversion:4.0.30319.17929 ' ' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn ' der Code erneut generiert wird. diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Resources.resx b/SW/20211125/Dokumente/My Project/Resources.resx similarity index 100% rename from SW/WindowsApplication1/WindowsApplication1/My Project/Resources.resx rename to SW/20211125/Dokumente/My Project/Resources.resx diff --git a/SW/Dokumente_sik/My Project/Settings.Designer.vb b/SW/20211125/Dokumente/My Project/Settings.Designer.vb similarity index 97% rename from SW/Dokumente_sik/My Project/Settings.Designer.vb rename to SW/20211125/Dokumente/My Project/Settings.Designer.vb index e107551..f853e6d 100644 --- a/SW/Dokumente_sik/My Project/Settings.Designer.vb +++ b/SW/20211125/Dokumente/My Project/Settings.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' Dieser Code wurde von einem Tool generiert. -' Laufzeitversion:4.0.30319.42000 +' Laufzeitversion:4.0.30319.17929 ' ' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn ' der Code erneut generiert wird. @@ -15,7 +15,7 @@ Option Explicit On Namespace My _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Settings.settings b/SW/20211125/Dokumente/My Project/Settings.settings similarity index 100% rename from SW/WindowsApplication1/WindowsApplication1/My Project/Settings.settings rename to SW/20211125/Dokumente/My Project/Settings.settings diff --git a/SW/20211125/Dokumente/My Project/licenses.licx b/SW/20211125/Dokumente/My Project/licenses.licx new file mode 100644 index 0000000..6e595ca --- /dev/null +++ b/SW/20211125/Dokumente/My Project/licenses.licx @@ -0,0 +1 @@ +C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20162.166, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da diff --git a/SW/Dokumente_sik/ThemenDokumente.vbproj b/SW/20211125/Dokumente/ThemenDokumente.vbproj similarity index 87% rename from SW/Dokumente_sik/ThemenDokumente.vbproj rename to SW/20211125/Dokumente/ThemenDokumente.vbproj index e32f1fe..98ffc54 100644 --- a/SW/Dokumente_sik/ThemenDokumente.vbproj +++ b/SW/20211125/Dokumente/ThemenDokumente.vbproj @@ -10,7 +10,7 @@ ThemenDokumente 512 Windows - v4.5 + v3.5 @@ -22,7 +22,6 @@ ThemenDokumente.xml _MYFORMS=True 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false pdbonly @@ -33,7 +32,6 @@ ThemenDokumente.xml _MYFORMS=True 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false On @@ -48,19 +46,19 @@ On - + + + + - - - @@ -81,6 +79,12 @@ + + Form1.vb + + + Form + @@ -120,6 +124,9 @@ + + Form1.vb + frmDokument.vb diff --git a/SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.dll b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.dll new file mode 100644 index 0000000..f6c5f51 Binary files /dev/null and b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.dll differ diff --git a/SW/Dokumente/bin/Debug/C1.Win.C1Command.2.xml b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.xml similarity index 99% rename from SW/Dokumente/bin/Debug/C1.Win.C1Command.2.xml rename to SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.xml index 9e74a65..8d617d5 100644 --- a/SW/Dokumente/bin/Debug/C1.Win.C1Command.2.xml +++ b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1Command.2.xml @@ -1139,13 +1139,6 @@ This method is for internal use only.
- - - This method is for internal use only. - - - - This method is for internal use only. @@ -1922,6 +1915,18 @@ + + + Opens a submenu for linked . + + True - opens all the tree of menu. False - opens only the current submenu. + Opens a submenu, if the linked command is of type. Otherwise, does nothing. + + + + Closes a submenu for linked . + + Occurs when the value of the Command property of the command link changes. @@ -2957,7 +2962,7 @@ - This class implements the familiar tab control interface: several overlaying pages (each of which can + This class implements the familiar tab control interface: several overlaying pages (each of which can contain arbitrary controls) accessible via tabs at the side of the control. @@ -3026,6 +3031,11 @@ This method is for internal use only. + + + Fires the AutoHidingChanging event. + + Releases the resources used by the C1DockingTab. @@ -3242,6 +3252,12 @@ The array of automatically created C1DockingTab controls. + + + Raises the event. + + An EventArgs that contains the event data. + This method is for internal use only. @@ -3255,7 +3271,7 @@ Raises the event. - An EventArgs that contains the event data. + An EventArgs that contains the event data. @@ -3490,7 +3506,7 @@ The tab page to float out. - Floats out the page to a default position. + Floats out the page to a default position. @@ -3528,6 +3544,16 @@ List of controls whose children are excluded from SaveLayout / RestoreLayout. + + + Occurs when the page header of DockingTab is clicked. + + + + + Event fires when the AutoHiding property is about to change. Allows to cancel the change. + + Fired when a new C1DockingTab is automatically created in response to user actions (e.g. tearing off a tab and dropping it elsewhere). @@ -3939,7 +3965,7 @@ Gets or sets whether tabs area is displayed within the . - Use the ShowTabs property to control the display of the tabs. + Use the ShowTabs property to control the display of the tabs. If this property is set to false, the tabs area is not displayed. @@ -4247,6 +4273,12 @@
+ + + Raises the event. + + An EventArgs that contains the event data. + This method is for internal use only. @@ -4284,6 +4316,11 @@ + + + Occurs when the page header is clicked. + + Occurs when the caption text changes. @@ -4618,6 +4655,13 @@ Gets the current element in the collection. + + + Removes the IList item at the specified index. + + + + This method is for internal use only. @@ -8096,6 +8140,11 @@ Gets or sets the value indicating whether the link is enabled. + + + Gets or sets the value indicating whether the link was pressed. + + Represents a collection of C1TopicLink objects. @@ -9542,6 +9591,15 @@ selectors to specify where the dragged view will be docked if you release it. + + + Visual studio 2012 - like docking style. + + + The VS2012 docking style feedback is similar to Visual Studio 2012, using docking zone + selectors to specify where the dragged view will be docked if you release it. + + Members of this enumeration are used to determine the value of the ClickSource property in the ClickEventArgs class. diff --git a/SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.dll b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.dll new file mode 100644 index 0000000..a78931e Binary files /dev/null and b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.dll differ diff --git a/SW/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml similarity index 99% rename from SW/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml rename to SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml index 433945e..3153e23 100644 --- a/SW/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml +++ b/SW/20211125/Dokumente/bin/Debug/C1.Win.C1TrueDBGrid.2.xml @@ -1361,6 +1361,16 @@ Gets or sets the border for the control. + + + Gets or sets the border color of the control. + + + Use the BorderColor property to specify the border color of the control. + This property is set using a object. + The BorderColor property has an effect only when the BorderStyle property is set to FixedSingle. + + Gets or sets a value indicating whether the InactiveStyle is applied to the grid when it loses focus. @@ -2410,6 +2420,21 @@ + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Raises the FetchRowStyle event. @@ -3316,6 +3341,11 @@ Occurs whenever a grouped cell that contains an aggregate is to be rendered and is true. + + + Occurs when the BorderColor property has changed. + + Occurs whenever the grid renders a row and the property has been set. @@ -3650,6 +3680,21 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Gets the current selected index. @@ -3993,6 +4038,11 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Occurs when the BorderColor property has changed. + + Gets or sets the object that controls the appearance of the caption area. @@ -4435,7 +4485,7 @@ - Performs internal reset. + Performs internal reset. @@ -4568,12 +4618,12 @@ Gets or sets the type of border rendered for a split. - + Base class for typeconverter. - + Returns an object from it's string representation. @@ -4582,7 +4632,7 @@ - + Returns a string representation from a given object. @@ -4591,7 +4641,7 @@ - + Returns true if the source type is string. @@ -4602,7 +4652,7 @@ - + Returns true of the type of string. @@ -4613,7 +4663,7 @@ - + Overloaded. Returns whether this converter can convert an object of one type to the type of this converter. @@ -4626,7 +4676,7 @@ - + Overloaded. Converts the given value object to the specified type. @@ -6916,6 +6966,12 @@ Row number to add. The index at which the row has been added. + + + Adds a range of rows to the end of the collection. + + The range of rows' numbers to add. + Inserts a row at the specified index. diff --git a/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll b/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll new file mode 100644 index 0000000..f054f62 Binary files /dev/null and b/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll differ diff --git a/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml b/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml new file mode 100644 index 0000000..9f06eb7 --- /dev/null +++ b/SW/20211125/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml @@ -0,0 +1,79349 @@ + + + + DevComponents.DotNetBar2 + + + + + Represents advanced multi-column Tree control. + + + + + Specifies the notification interface that node uses to communicate status changes to it's parent tree. + + + + Called when Node.Expanded property has changed. + Node which Expanded property has changed. + + + Called before node is collapsed + Context information. + + + Called before node is expanded + Context information. + + + Called after node is collapsed. + Context information. + + + Called after node is expanded + Context information + + + + Required designer variable. + + + + + Raises Render event. + + Provides event arguments. + + + Creates new instance of the class. + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the current renderer used by the control. + + Reference to the TreeRenderer used by the control. + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Invalidates node bounds on canvas. + + Reference node. + + + + Invalidates node bounds on canvas. + + Reference node. + + + + Finds the node based on the Node.Name property. + + Name of the node to find. + Reference to a node with given name or null if node cannot be found. + + + + Finds the node based on the Node.DataKey property. + + Data key to look for. + Reference to a node with given key or null if node cannot be found. + + + + Finds the node based on the Node.BindingIndex property. + + Index to look for. + Reference to a node with given key or null if node cannot be found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Reference to a node or null if no node is found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Partial text to look for + Reference node to start searching from + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Finds the first node where each Node.Cell[0:n].Text value starts with the + respective value found in the comma delimited 'text' string. + + Comma delimited partial text to look for + Reference node to start searching from + Controls whether case insensitive search is performed + Reference to a node or null if no node is found. + + + + Indicates whether SelectionBoxFillColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets SelectionBoxFillColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBorderColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether ExpandLineColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets ExpandLineColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandForeColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandForeColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverBackColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverBackColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverBackColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverBackColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether CommandMouseOverForeColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CommandMouseOverForeColor to it's default value. Used by windows forms designer design-time support. + + + + + Returns the zero based flat index of the node. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Reference to the node to return index for. + Zero based node index or -1 if index cannot be determined. + + + + Returns node based on the flat index. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Index to return node for. + Reference to a node or null if node at specified index cannot be found. + + + + Returns color scheme part color if set otherwise returns color passed in. + + Color. + Color scheme part. + Color. + + + + Collapses all nodes in a tree. + + + + + Expands all the tree nodes. + + + + + Paints control to canvas. This method might be used for print output. + + Graphics object to paint control to. + Indicates whether to paint control background. + + + + Paints control to canvas. This method might be used for print output. + + Graphics object to paint control to. + Indicates whether to paint control background. + Indicates clipping rectangle. Nodes outside of clipping rectangle will not be painted. You can pass Rectangle.Empty and all nodes will be painted. + + + + Processes the keyboard character and executes the search through the nodes. + + Character to process. + + + + + Raises ColumnResized event. + + ColumnHeader that was resized. + Event arguments + + + + Raises ColumnMoved event. + + ColumnHeader that was moved. + Provides event arguments. + + + + Raises ColumnResizing event. + + Column being resized + Event arguments + + + + Deselect specified node. Use this method when multiple node selection is enabled to deselect single node or all nodes. + + Reference to node to select or null to deselect all selected nodes. + Action that is selecting the node. + + + + Raises SelectionChanged event. + + Event arguments + + + + Raises CellSelected event. + + Event arguments. + + + + Raises CellUnselected event. + + Event arguments. + + + + Selected specified node. + + Node to select. + Action that is selecting the node. + + + + Invalidates the size for all top-level nodes and their sub-nodes. + + + + + Invalidates the size for a node and its sub-nodes. + + Node to invalidate size for. + + + + Ensures that selected node is visible i.e. that all parents of the selected node are expanded. If not selects the first parent node not expanded. + + + + + Starts editing specified cell, places the cell into the edit mode. + + Cell to start editing. + Action that is a cause for the edit. + + + + Starts editing specified cell, places the cell into the edit mode. + + Cell to start editing. + Action that is a cause for the edit. + Specifies the text to be edited instead of the text of the cell. Passing the NULL value will edit the text of the cell. + + + + Called just before cell editor is released for editing. + + Reference to the cell being edited. + Reference to the editor control. + + + + Raises the ProvideCustomCellEditor event. + + Event arguments. + + + + Ends cell editing. + + Specifies which action is cause for end of the editing. + Returns true if edits were applied to the cell or false otherwise. + + + + Ends cell editing. + + Specifies which action is cause for end of the editing. + Returns true if edits were applied to the cell or false otherwise. + + + + Raises the AfterCellEditComplete event. + + Provides information about event. + + + + Cancels the cell editing if it is in progress. + + Specifies which action is cause for canceling of editing. + + + + Raises BeforeNodeInsert event + + Node that is about to be inserted + Source of the event + + + + Raises AfterNodeInsert event + + Node that is inserted + Source of the event + + + + Raises BeforeNodeRemove event + + Node that is about to be removed + Source of the event + + + + Raises AfterNodeRemove event + + Node that is removed + Source of the event + + + + Called after node has been removed + + Node that is removed + Source of the event + + + + Invokes BeforeNodeDrop event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes AfterNodeDrop event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseDown event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseUp event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseMove event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeClick event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeDoubleClick event. If overridden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseEnter event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseLeave event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Invokes NodeMouseHover event. If overriden base implementation must be called in order for event to fire. + + Provides information about event + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Save nodes to XmlDocument. New Node AdvTree is created and nodes are serialized into it. + + Reference to an instance of XmlDocument object + + + + Saves nodes to a file. + + File name to save nodes to. + + + + Saves nodes to specified stream. + + Stream to save nodes to. + + + + Saves nodes to specified writer. + + Writer to save nodes to. + + + + Saves nodes to specified writer. + + Writer to save nodes to. + + + + Load nodes from file. + + File to load nodes from + + + + Load nodes from stream. + + Stream to load from + + + + Load nodes from reader. + + Reader to load from. + + + + Load nodes from reader. + + Reader to load from. + + + + Load nodes from an XmlDocument object. + + Document to load Nodes from. + + + + Forces the control to invalidate its client area and immediately redraw itself + and any child controls. Note however that this method will node do anything if refresh + is suspended as result of call to BeginUpdate method without corresponding EndUpdate + call or if SuspendPaint property is set to true. + + + + + Disables any redrawing of the tree control. To maintain performance while items + are added one at a time to the control, call the BeginUpdate method. The BeginUpdate + method prevents the control from painting until the + EndUpdate method is called. + + + + + Enables the redrawing of the tree view. To maintain performance while items are + added one at a time to the control, call the BeginUpdate + method. The BeginUpdate method prevents the control from painting until the EndUpdate + method is called. + + + Call to EndUpdate will enable the layout and painting in tree control. If there + are any pending layouts the EndUpdate will call + RecalcLayout method to perform the layout and it will + repaint the control. + + + + + Enables the redrawing of the tree view. To maintain performance while items are + added one at a time to the control, call the BeginUpdate + method. The BeginUpdate method prevents the control from painting until the EndUpdate + method is called. + + Gets or sets whether layout and refresh of control is performed if there are no other update blocks pending. + + + + Retrieves the tree node that is at the specified location. + + The Node at the specified point, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Point to evaluate and retrieve the node from. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Whether to enumerated displayed nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.Y coordinates of the + MouseDown event as the y parameter. + + The Y position to evaluate and retrieve the node from. + + + + Retrieves the node cell that is at the specified location. + + The Point to evaluate and retrieve the cell from. + The Cell at the specified point, in tree view coordinates. + + + + Retrieves the node cell that is at the specified location. + + The X position to evaluate and retrieve the cell from. + The Y position to evaluate and retrieve the cell from. + The Cell at the specified point, in tree view coordinates. + + + + Retrieves the node cell that is at the specified location. + + The X position to evaluate and retrieve the cell from. + The Y position to evaluate and retrieve the cell from. + Whether to enumerated displayed nodes only. + The Cell at the specified point, in tree view coordinates. + + + Applies any layout changes to the tree control. + + Layout will not be performed if BeginUpdate is called. Any calls to the + RecalcLayout will return without executing requested layout operation. + + + + + Recalculates layout for the tree control. Not affected by BeginUpdate call. + + + + + Returns translation matrix for current Zoom. Translation matrix is used to translate internal node coordinates to screen + coordinates when Zoom is not set to 1. + + Returns new instance of Matrix object. + + + + Returns layout based rectangle from screen rectangle. Layout based rectangle will be different + from screen rectangle when Zoom is not set to 1. This method will translate the screen rectangle enlarged by Zoom + to layout rectangle which does not have Zoom applied. + + Screen rectangle + Layout rectangle + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + Mouse event arguments + Returns translated position + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + Mouse position + Returns translated position + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + X coordinate + Y coordinate + + + + + Returns rectangle translated to screen rectangle if Zoom is not equal 1. + + Rectangle to translate + Screen Rectangle + + + + Returns size translated to screen dimension if Zoom is not equal 1. + + Size to translate + Screen Size + + + + Raises ColumnHeaderMouseUp event. + + Reference to ColumnHeader + Event arguments + + + + Raises ColumnHeaderMouseDown event. + + Reference to ColumnHeader + Event arguments + + + + Calls OnBeforeCheck method which fired + OnBeforeCheck event. + + Event arguments. + + + Raises the BeforeCheck event. + + A AdvTreeCellBeforeCheckEventArgs that contains the event + data. + + + + + Calls OnAfterCheck method which fired + AfterCheck event. + + Event arguments. + + + Raises the AfterCheck event. + + A AdvTreeEventArgs that contains the event + data. + + + + + Invokes CommandButtonClick event. + + Context node. + Event arguments. + + + + Invokes DeserializeNode event. + + Provides more information about the event + + + + Invokes SerializeNode event. + + Provides more information about the event + + + + Invokes the MarkupLinkClick evcent. + + Sender of the event, usually instance Cell object. + Event arguments + + + + Raises the NodeDragFeedback event. + + Provides event arguments. + + + + Processes drag over event. + + Drag event arguments. + + + + Raises the NodeDragStart event. + + Reference to node being dragged. + Event parameters + + + + Raises BeforeNodeDragStart event. + + Provides event arguments. + + + + Returns the display root node. + + Instance of node or null if there is no display root node. + + + + Returns reference to the node involved in drag-drop operation if any. + + Reference to node object or null if there is no drag node. + + + + + This member supports the .NET Framework infrastructure and is not intended to be + used directly from your code. + + + + + This member supports the .NET Framework infrastructure and is not intended to be + used directly from your code. + + + + + Raises FormattingEnabledChanged event. + + Event arguments. + + + + Raises FormatStringChanged event. + + Event arguments. + + + + Raises FormatInfoChanged event. + + Event arguments. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + Raises the DisplayMemberChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Disposes all nodes in Nodes collection and clears it. + + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Creates a new node for the data item. + + Item to create node for. + New instance of the node. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + Called when ParentFieldName property has changed. + + + + + Called when GroupingMembers property has changed. + + + + + Raises the Format event. + + Event parameters + + + + Clears internal property descriptors cache when data-binding is used. In most cases it is not needed that you call this method. Do so only if instructed by DevComponents support. + + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Raises the ValueMemberChanged event. + + Event arguments. + + + + Raises the SelectedValueChanged event. + + Event arguments. + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Occurs just before cell editor is released for editing. It allows you to customize any properties on edit control. + + + + + Occurs when mouse button is pressed over the column header. + + + + + Occurs when mouse button is released over the column header. + + + + + Occurs after the cell check box is checked. + + + + + Occurs before the cell check box is checked and provides opportunity to cancel the event. + + + + + Occurs after the tree node is collapsed. + + + + + Occurs before the tree node is collapsed. + + + + + Occurs after the tree node is expanded. + + + + + Occurs before the tree node is expanded. + + + + + Occurs when command button on node is clicked. + + + + + Occurs before cell is edited. The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs just before the cell editing is ended. The text box for editing is still visible and you can cancel + the exit out of editing mode at this point. The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs after cell editing has ended and before the new text entered by the user is assigned to the cell. You can abort the edits in this event. + The order of the cell editing events is as follows: + BeforeCellEdit, CellEditEnding, AfterCellEdit, AfterCellEditComplete. + + + + + Occurs after cell editing has been completed. This event cannot be canceled. + + + + + Occurs after node selection has changed. + + + + + Occurs before Node has been selected by user or through the SelectedNode property. Event can be cancelled. + + + + + Occurs after node has been selected by user or through the SelectedNode property. + + + + + Occurs after node has been deselected by user or through the SelectedNode or SelectedNodes properties. + + + + + Occurs before node has been removed from its parent. + + + + + Occurs after node has been removed from its parent. + + + + + Occurs before node is inserted or added as child node to parent node. + + + + + Occurs after node is inserted or added as child node. + + + + + Occurs when node drag & drop operation is initiated. + + + + + Occurs before internal node drag & drop support is initiated and allows you to cancel the drag & drop. + + + + + Occurs before Drag-Drop of a node is completed and gives you information about new parent of the node that is being dragged + as well as opportunity to cancel the operation. + + + + + Occurs while node is being dragged. You can handle this event to disable the drop at specific nodes or to even change the + drop location for the node by modifying event arguments. + + + + + Occurs after Drag-Drop of a node is completed. This operation cannot be cancelled. + + + + + Occurs when the mouse pointer is over the node and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the node and a mouse button is released. + + + + + Occurs when the mouse pointer is moved over the node. + + + + + Occurs when the mouse enters the node. + + + + + Occurs when the mouse leaves the node. + + + + + Occurs when the mouse hovers over the node. + + + + + Occurs when the node is clicked with left mouse button. If you need to know more information like if another mouse button is clicked etc. use + NodeMouseDown event. + + + + + Occurs when the node is double-clicked. + + + + + Occurs after an node has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data associated with the node and load it back up in DeserializeNode event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeNodeEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an node has been de-serialized (loaded) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrieve any data you saved in SerializeNode event. + + + + + Occurs when hyperlink in text-markup is clicked. + + + + + Occurs when cell with custom editor type is about to be edited by user. Handle this event to provide + custom editors. + + + + + Occurs when the DataSource changes. + + + + + Occurs when the DisplayMembers property changes. + + + + + Occurs when the control is bound to a data value that need to be converted. + + + + + Occurs when FormattingEnabled property changes. + + + + + Occurs when FormatString property changes. + + + + + Occurs when FormatInfo property has changed. + + + + + Occurs when a Node for an data-bound object item has been created and provides you with opportunity to modify the node. + + + + + Occurs when a group Node is created as result of GroupingMembers property setting and provides you with opportunity to modify the node. + + + + + Occurs when value of ValueMember property has changed. + + + + + Occurs when value of SelectedValue property has changed. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding and provides you with opportunity to modify it. + + + + + Occurs after column has been resized by end-user. + + + + + Occurs while column is being resized by end-user. + + + + + Occurs after cell has been selected. + + + + + Occurs after cell has been unselected. + + + + + Occurs after users has moved the column. + + + + + Occurs while tree control is being rendered. + + + + + Indicates whether nodes are disposed when control is disposed. + + + + + Indicates whether sorting of node collection sorts child nodes as well. Default value is false. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Gets the column header control which renderes the columns. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets the proposed size of the tile in Tile view. The size of the tile might be larger than specified if Style assigned to node, cells adds padding, margins etc. or if Node.Image or font is greater than width or height specified here. + + + + + Gets or sets a value indicating whether the selected tree node remains highlighted even when the tree control has lost the focus. + + + + + Gets whether keyboard focus is within the control. + + + + + Gets or sets whether cell editing is completed when control loses input focus. Default value is true. + + + + + Gets or sets the reference to DotNetBar ContextMenuBar component which is used to provide context menu for nodes. This property + is automatically maintained by AdvTree. + + + + + Gets or sets zoom factor for the control. Default value is 1. To zoom display of the nodes for 20% set zoom factor to 1.2 + To zoom view 2 times set zoom factor to 2. Value must be greater than 0. Zoom is supported only when non-column tree setup is used. + Please note that Zoom functionality is designed only for very special use cases and only for + plain tree control setup which does not use editing, alternating row colors, drag & drop or any other + advanced functionality. + + + + + Gets the size of the tree. + + + + + Gets or sets custom node renderer. You can set this property to your custom renderer. When set the RenderMode should be set to Custom to enable + your custom renderer. To choose one of the system renderer use RenderMode property. Default value is null. + + + + + Gets or sets the render mode used to render all nodes. Default value is eNodeRenderMode.Default which indicates that system default renderer is used. + Note that if you specify custom renderer you need to set AdvTree.NodeRenderer property to your custom renderer. + + + + + Gets the style for the background of the control. + + + + + Gets or sets internal layout cell horizontal spacing. This property is for advanced internal use and you should not set it. + + + + + Gets or sets whether automatic drag and drop is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting the tree. + + + + + Gets or sets the delimiter string that the tree node path uses. + + + + + Gets or sets whether user can resize the columns. Default value is true. + + + + + Gets or sets whether user can reorder the columns. Default value is false. + + + + + Gets the collection of column headers that appear in the tree. + + + By default there are no column headers defined. In that case tree control + functions as regular tree control where text has unrestricted width. + If you want to restrict the horizontal width of the text but not display + column header you can create one column and set its width to the width desired and + set its Visible property to false. + + + + + Gets or sets whether column headers are visible if they are defined through Columns collection. Default value is true. + + + + + Gets the collection of all style elements created for the tree. + + + + + Gets or sets default style for the node cell. + + + + + Gets or sets default style for the node cell when mouse is pressed. + + + + + Gets or sets default style for the node cell when mouse is over the cell. + + + + + Gets or sets default style for the node cell when cell is selected. + + + + + Gets or sets default style for the node cell when cell is disabled. + + + + + Gets or sets default style for the node when node is expanded. + + + + + Gets or sets default style for all nodes where style is not specified + explicity. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets style for the node when node is selected. Note that this style is applied to the default node style. + + + Reference to the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets style for the node when mouse is over node. Note that this style is applied to the default node style. + + + Reference to the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + + + A NodeCollection that represents the tree nodes + assigned to the tree control. + + + The Nodes property holds a collection of Node objects, each of which has a + Nodes property that can contain its own NodeCollection. + + + + + Gets or sets the vertical spacing between nodes in pixels. Default value is 3. + + + + + Gets or sets the horizontal spacing between nodes in pixels when control is in Tile layout. Default value is 4. + + + + + Gets or sets whether horizontal grid lines between each row are displayed. Default value is false. + + + + + Gets or sets whether column can be resized when mouse is over the column grid line and outside of the column header. + GridColumnLines must be set to true to make column lines visible. + + + + + Gets or sets whether grid lines are displayed when columns are defined. Default value is true. + + + + + Gets or sets the grid lines color. + + + + + Gets or sets the alternate row color applied to every other row. Default value is Color.Empty. + + + + + Gets or sets the background style for the child nodes columns. Background style defines the appearance of the column header background. + + + Reference to the style assigned to the column header. + + + + + Gets or sets the background style for the columns. Background style defines the appearance of the column header background. + + + Reference to the style assigned to the column header. + + ColumnStyleNormal Property + ColumnStyleMouseDown Property + ColumnStyleMouseOver Property + + + + Gets or sets the default style class assigned to the column headers. + + + Reference to the style assigned to the column header. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleMouseDown Property + ColumnStyleMouseOver Property + + + + Gets or sets default style class assigned to the column which is applied when mouse + button is pressed over the header. + + + Name of the style assigned to the column. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleNormal Property + ColumnStyleMouseOver Property + + + + Gets or sets default style class assigned to the column which is applied when mouse is + over the column. + + + Name of the style assigned to the column. + + + When style is not set on ColumnHeader objects then style setting from this property is used instead. + + ColumnStyleNormal Property + ColumnStyleMouseDown Property + + + + Gets collection that holds definition of column headers associated with nodes. + + + + + Gets or sets the tree node that is currently selected in the tree control. + + + If no Node is currently selected, the + SelectedNode property is a null reference (Nothing in Visual + Basic). + + + + + Gets or sets the collection of currently selected nodes in tree control. + + + + + Gets or sets whether multi-node selection is enabled. Default value is false. When + multi-selection is enabled use SelectedNodes property to retrive collection of selected nodes. + Use MultiSelectRule property to change the multi-node selection rule. + + + + + Gets or sets the rule that governs the multiple node selection. Default value indicates that only nodes + belonging to same parent can be multi-selected. + + + + + Returns reference to node layout object. + + + + + Returns reference to node display object. + + + + + Gets whether layout is suspended for tree control. Layout is suspended after + call to BeginUpdate method and it is resumed after the + call to EndUpdate method. + + + + + Gets whether control has layout operation pending on next paint or update. + + + + + Gets or sets whether paint operations are suspended for the control. You should use this method + if you need the RecalcLayout operations to proceed but you want to stop painting of the control. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box in cell is in indeterminate state. + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between nested nodes. RootConnector property specifies the connector + between root node and it's imidate nested nodes. This property specifies connector for all other nested levels. + Default value is null. + + + You can use + Node.ParentConnector + property to specify per node connectors. + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between linked nodes. Connector specified here is used to display the connection + between nodes that are on the path to the selected node. When set you can use it to visually indicate the path to the currently selected node. + Default value is null. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + You can specify cell layout on each node by using + Node.CellLayout + property. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + You can specify cell layout on each node by using + Node.CellLayout + property. + + + + + Gets or sets the color scheme style. Color scheme provides predefined colors based on popular visual styles. + We recommend that you use "SchemePart" color settings since they maintain consistant look that is + based on target system color scheme setting. + + + + + Gets the reference to the color scheme object. + + + + + Gets or sets whether the content of the control is centered within the bounds of control. Default value is true. + + + + + Gets or sets whether per cell selection mode is enabled. In cell selection mode the selection box is drawn over selected cell only + instead of all cells in the node. + Default value is false. + + + + + Gets or sets whether selection appearance changes depending on whether control has input focus. Default value is true. Setting this value to false causes selection box to be rendered as if control has focus all the time. + + + + + Gets or sets the node selection box style. + + SelectionBox Property + SelectionBoxSize Property + SelectionBoxFillColor Property + SelectionBoxBorderColor Property + + + + Gets or sets the value that indicates whether selection box is drawn around the + selected node. Default value is true. Another way to provide the visual indication that + node is selected is by using selected state style properties like + NodeStyleSelected + and + CellStyleSelected. + + CellStyleSelected Property + NodeStyleSelected Property + + + + Gets or sets the size/thickness in pixel of the selection box drawn around selected + node. + + + + + Gets or sets whether node is selected when mouse is pressed anywhere within node vertical bounds. Default value is true. + + + When set to false the node is selected only when mouse is pressed over the node content. + + + + + Gets or sets the total node expand area width in pixels. The expand button with ExpandButtonSize is fitted into this area. Default value is 24. + + + + + Gets or sets the size of the expand button that is used to expand/collapse node. Default value is 8,8. + + + + + Gets or sets expand button border color. Note that setting ExpandBorderColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme border color. Setting + this property overrides the setting of the corresponding ExpandBorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBorderColor property. + + + + + Gets or sets expand button back color. Note that setting ExpandBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme back color. Setting + this property overrides the setting of the corresponding ExpandBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBackColor property. + + + + + Gets or sets expand button target gradientback color. Note that setting ExpandBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme target gradient back color. Setting + this property overrides the setting of the corresponding ExpandBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandBackColor2 property. + + + + + Gets or sets expand button line color. Note that setting ExpandLineColorSchemePart property will override the value that you set here. + + + + + Gets or sets expand button color scheme line color. Setting + this property overrides the setting of the corresponding ExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandLineColor property. + + + + + Gets or sets the expand button background gradient angle. + + + + + Gets or sets the expand button image which is used to indicate that node will be expanded. To use images as expand buttons you also need to set ExpandButtonType=eExpandButtonType.Image. + + + + + Gets or sets the expand button image which is used to indicate that node will be collapsed. To use images as expand buttons you also need to set ExpandButtonType=eExpandButtonType.Image. + + + + + Gets or sets the type of the expand button used to expand/collapse nodes. + + + + + Gets or sets the display root node. Setting this property allows you to use any + Node as root display node. Default value is Null which means that first node from + AdvTree.Nodes collection is used as display root node. + + + + + Gets or sets the width of the command button. Default value is 10 pixels. + + + + + Gets or sets command button back color. Note that setting CommandBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme back color. Setting + this property overrides the setting of the corresponding CommandBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandBackColor property. + + + + + Gets or sets command button target gradient back color. Note that setting CommandBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme target gradient back color. Setting + this property overrides the setting of the corresponding CommandBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandBackColor2 property. + + + + + Gets or sets command button foreground color. Note that setting CommandForeColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme foreground color. Setting + this property overrides the setting of the corresponding CommandForeColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandForeColor property. + + + + + Gets or sets the command button background gradient angle. + + + + + Gets or sets command button mouse over back color. Note that setting CommandMouseOverBackColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button color scheme mouse over back color. Setting + this property overrides the setting of the corresponding CommandMouseOverBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverBackColor property. + + + + + Gets or sets command button mouse over target gradient back color. Note that setting CommandMouseOverBackColor2SchemePart property will override the value that you set here. + + + + + Gets or sets command button mouse over color scheme target gradient back color. Setting + this property overrides the setting of the corresponding CommandMouseOverBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverBackColor2 property. + + + + + Gets or sets command button mouse over foreground color. Note that setting CommandMouseOverForeColorSchemePart property will override the value that you set here. + + + + + Gets or sets command button mouse over color scheme foreground color. Setting + this property overrides the setting of the corresponding CommandMouseOverForeColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through CommandMouseOverForeColor property. + + + + + Gets or sets the command button mouse over background gradient angle. + + + + + Gets or sets a value indicating whether the label text of the node cells can be edited. Default value is false. + + + + + Returns whether cell editing is in progress. + + + + + Gets or sets whether keyboard incremental search through Node.Text property is enabled. Default value is true. + + + + + Gets or sets the keyboard search buffer expiration timeout. Default value is 1000 which indicates that + key pressed within 1 second will add to the search buffer and control will be searched for node text + that begins with resulting string. Setting this value to 0 will disable the search buffer. + + + + + Indicates whether search buffer is auto-cleared regardless of the expiration timeout if node is not found using current buffer content. + + + + + Gets or sets whether double-clicking the node will toggle its expanded state. Default value is true. + + + + + Gets or sets whether node is highlighted when mouse enters the node. Default value is false. + + + There are two ways to enable the node hot-tracking. You can set the HotTracking property to true in which case the + mouse tracking is enabled using system colors specified in TreeColorTable. You can also define the NodeStyleMouseOver + style which gets applied to the node when mouse is over the node. + + + + + Gets whether tree is in process of moving the column in response to user finishing the column move action. + + + + + Gets or sets how control positions the items. Default value is standard TreeView layout. + + + + + Gets or sets the color of the group divider line when in tile view. + + + + + Returns the reference to the node mouse is currently over or null (Nothing) if mouse is not over any node in tree. + + + + + Specifies the mouse cursor displayed when mouse is over the cell. Default value + is null which means that default control cursor is used. + + + To specify cursor for each individual cell use + Cell.Cursor property. + + + + + Gets reference to array of Cell objects that have HostedControl property set. + + + + + Gets or sets whether hosted controls are clipped so they don't overlap the control borders. Default value is true. + + + + + Gets or sets whether control border needs to be updated by calling UpdateControlBorderPanel() + + + + + Gets the reference to internal vertical scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets whether Vertical Scroll-bar is shown if needed because content of the control exceeds available height. Default value is true. + + + + + Gets or sets whether Horizontal Scroll-bar is shown if needed because content of the control exceeds available width. Default value is true. + + + + + Gets the reference to internal horizontal scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets a value indicating whether the tree control enables the user to scroll to any nodes placed outside of its visible boundaries. + This property is managed internally by AdvTree control and should not be modified. + + + + + Gets or sets the minimum size of the auto-scroll. Returns a Size that represents the minimum height and width of the scrolling area in pixels. + This property is managed internally by AdvTree control and should not be modified. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Gets the list of all checked nodes in tree including child nodes. + + + + + Gets or sets the offset in pixels from node's X position that is used during drag & drop operation to indicate that + dragged node is dropped as child node of the parent's node. + + + + + Gets or sets whether drag & drop internal implementation allows the copying of the node being dragged when CTRL key is pressed. + + + + + Gets or sets whether control accepts the dragged nodes from other AdvTree controls. Default value is true. + + + + + Gets or sets the distance to indent each of the child tree node levels. Default value is 16. + + + + + Indicates whether drop marker is displayed during drag-drop operation. + + + + + Gets or sets whether drag and drop operation is in progress. This member supports + the AdvTree infrastructure and is not intended to be used directly from your + code. + + + + + Gets or sets whether number of nodes being dragged is displayed on drag node preview. Default value is true. + + + + + Gets or sets whether multiple nodes drag & drop is enabled. Default value is true. + + + + + Indicates whether AutoScrollPosition is reset to 0,0 when all nodes are cleared from the tree. Default value is true. + + + + + Gets or sets the comma separated list of property or column names to display on popup tree control. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMembers property of the control. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets comma separated field or property names that holds the value that is used to identify node and parent node. Format expected is: FieldNodeId,ParentNodeFieldId. For example if your table represents departments, you have DepartmentId field which uniquely identifies a department and ParentDepartmentId field which identifies parent of the department if any you would set this property to DepartmentId,ParentDepartmentId. + Note that you can only use ParentFieldNames or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets comma separated list of field or property names that are used for grouping when data-binding is used. Note that you can only use ParentFieldName or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets style for automatically created group nodes when data-binding is used and GroupingMembers property is set. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the property to use as the actual value for the items in the control. Applies to data-binding scenarios. SelectedValue property will return the value of selected node as indicated by this property. + + + + + Gets or sets the value of the member property specified by the ValueMember property. + + + + + Indicates whether control changes the CurrencyManager.DataPosition when selected node is changed during data binding. + Default value is true. + + + + + Indicates whether touch support for scrolling is enabled. + + + + + Static class that holds AdvTree settings that are not commonly used. + + + + + Gets or sets whether tree control is scrolled horizontally so selected node is brought into the view. Default value is false. + You can set this property to false to disable the horizontal scrolling of tree control when selected node has changed. + + + + + Gets or sets whether AdvTree node comparer that provides column sorting uses standard text comparer instead of default + hybrid alpha-numeric comparer. Default value is false. + + + + + Defines an interface for cell edit control that allows custom controls to be used as cell editors. AdvTree control + expects that editing control inherits from System.Windows.Forms.Control. + + + + + Called when edit operation is started. The AdvTree control will first set CurrentValue, then call BeginEdit and will call EditComplete once + editing is completed. + + + + + Called when edit operation is completed. + + + + + Gets or sets current edit value. + + + + + AdvTree control subscribes to this event to be notified when edit operation is completed. For example when Enter key is + pressed the edit control might raise this event to indicate the completion of editing operation. + + + + + AdvTree control subscribes to this event to be notified that user has cancelled the editing. For example when Escape key is + pressed the edit control might raise this event to indicate that editing has been cancelled. + + + + + Gets or sets whether cell requests the word-wrap based on the current cell style. If your editor does not support + word-wrap functionality this can be ignored. + + + + + Defines delegate for PrepareCellEditor event. + + + + + + + Event arguments for PrepareCellEditor event. + + + + + Gets reference to the cell being edited. + + + + + Gets reference to the cell editor control. + + + + + Initializes a new instance of the PrepareCellEditorEventArgs class. + + + + + + + Defines delegate for PrepareCellEditor event. + + + + + + + Event arguments for AdvTree.Render event. + + + + + Indicates the rendering operation being performed. + + + + + Indicates graphics canvas to render on. + + + + + Initializes a new instance of the AdvTreeRenderEventArgs class. + + Specifies rendering type + Specifies graphics canvas to render on + + + + Specifies the rendering type being performed on AdvTree control Render event. + + + + + Control background is being painted. + + + + Represents a cell assigned to the Node. + + The Cell with Index 0 (zero) always exists for a Node and it is a cell that + you can interact with through the properties on a node, which are forwarding to the + Cell(0), or you can go directly to the Cell(0). + When Node has multiple columns defined each column corresponds to Cell in + Node's Cells collection. The first Column has Index 0, second Column Index 1 and so + forth. + Note that there is always at least one Cell in a Node even if multiple + columns are not used. + + + + + Initializes new instance of Cell class. + + + + + Initializes new instance of Cell class. + + Cell text. + + + + Initializes new instance of Cell class. + + Cell text. + + + + Initializes new instance of Cell class. + + Cell text. + + + + Releases the resources used by the Component. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Occurs after Tooltip text has changed. + + + + + Called when tooltip is shown and hidden. + + true if tooltip is being shown otherwise false. + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Sets the bounds of the cell. + + New cell bounds. + + + + Sets the bounds of the image inside of the cell. + + New cell bounds. + + + + Sets the bounds of the check box inside of the cell. + + New cell bounds. + + + + Sets whether cells is visible or not. This is set by node layout manager and it is based on column visibility. + + True if visible otherwise false. + + + + Sets the parent of the cell. + + Parent node. + + + + Occurs after text has changed. + + + + + Sets the Images to the new CellImages object. + + CellImages object. + + + + Returns whether Images property should be serialized. Used internally for windows forms designer support. + + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the mouse over flag. + + true if mouse is over the cell otherwise false. + + + + Sets the mouse down flag. + + true if left mouse button is pressed while over the cell otherwise false. + + + + Returns effective editor type used for cell editing. + + Editor type. + + + Makes a copy of a Cell. + + + + Ensures that the cell is visible, expanding nodes and scrolling the control as necessary. + + + + + Occurs when any image property for the cell has changed. + + + + + Invokes AfterCheck event on AdvTree + control. + + + + + Invokes BeforeCheck event on AdvTree + control. + + + + + Called just before cell layout is to be performed. + + + + + Occurs when text markup link is clicked. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets whether tooltip is visible or not. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Gets or sets whether cell content is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets whether cell can be edited. Cell can be edited if both Editable property is set to true and ColumnHeader.Editable property is set to true. + + + + + Gets or sets the item hosted inside of the cell. Only items that do not generate + popups are supported. Note that cell can only host either HostedItem or HostedControl but not both. + + + + + Gets or sets the control hosted inside of the cell. Note that cell can only host either HostedItem or HostedControl but not both. + + + When control is hosted inside of the cell, cell size is determined by the + size of the control hosted inside of it. The cell will not display its text but it will display any image assigned + or check box when control is hosted inside of it. The Style settings like Margin + and Padding will still apply. + + + + + Gets or sets whether hosted control size change event is ignored. + + + + + Gets or sets the hosted control size. Property is used to correctly scale control when AdvTree.Zoom is used to zoom view. + + + + + Returns name of the cell that can be used to identify it from the code. + + + + + Gets the relative bounds of the cell. + + + + + Gets the bounds of the cell. + + + + + Gets or sets the available content bounds for the text. Text will fitted into these bounds + but it's true location can be obtained only after it is displayed. + + + + + Gets the bounds of the text inside of cell. + + + + + Gets the relative bounds of the image inside of cell. + + + + + Gets the bounds of the image inside of cell. + + + + + Gets the bounds of the image inside of cell. + + + + + Gets the bounds of the check box inside of cell. + + + + + Gets a value indicating whether the cell is in an editable state. true if the cell is in editable state; otherwise, false. + + + + + Gets a value indicating whether the cell is in the selected state. true if the cell is in the selected state; otherwise, false. + + + + + Gets a value indicating whether the cell is visible. Cell is considered to be visible when it's parent column is visible. + + + + + Gets the parent node of the current cell. + + + + + Gets or sets the object that contains data about the cell. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the cell. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the format that is applied to the value of Text property for display purposes. See "Formatting Overview" in MSDN + for description on available format strings. For example you can specify "C" to format text as currency, or "D" to format text as decimal number etc. + + + + + + Gets the formatted display text. + + + + + Gets or sets the text displayed in the cell. + + + + + Gets the parent tree control that the cell belongs to. + + + + + Gets or sets the style class assigned to the cell. Null value indicates that + default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null (VB Nothing) indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null (VB Nothing) the style setting from parent tree + controls is used. CellStyleNormal on AdvTree control is a root style for a cell. + + StyleDisabled Property + StyleMouseDown Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the style name used by cell. This member is provided for internal use only. To set or get the style use StyleNormal property instead. + + + + + Gets or sets the style class that is to when cell is selected. Null value indicates that + default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default is null value. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleSelected on AdvTree control is a root style for a cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseDown Property + StyleMouseOver Property + + + + Gets or sets the selected style name used by cell. This member is provided for internal use only. To set or get the style use StyleSelected property instead. + + + + + Gets or sets the disabled style class assigned to the cell. Null value indicates + that default style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleDisabled on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseDown Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the disabled style name used by cell. This member is provided for internal use only. To set or get the style use StyleDisabled property instead. + + + + + Gets or sets the style class assigned to the cell which is applied when mouse + button is pressed while mouse is over the cell. Null value indicates that default + style is used as specified on cell's parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value style setting from parent tree + controls is used. CellStyleMouseDown on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseOver Property + StyleSelected Property + + + + Gets or sets the mouse down style name used by cell. This member is provided for internal use only. To set or get the style use StyleMouseDown property instead. + + + + + Gets or sets the style class assigned to the cell which is applied when mouse is + over the cell. Null value indicates that default style is used as specified on cell's + parent. + + + Reference to the style assigned to the cell or null value indicating that default + style setting from tree control is applied. Default value is null. + + + When property is set to null value the style setting from parent tree + controls is used. CellStyleMouseOver on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleDisabled Property + StyleMouseDown Property + StyleSelected Property + + + + Gets or sets the mouse over style name used by cell. This member is provided for internal use only. To set or get the style use StyleMouseOver property instead. + + + + + Gets or sets whether cell is enabled or not. + + + + + Gets the reference to images associated with this cell. + + + + + Gets or sets the image alignment in relation to the text displayed by cell. + + + + + Gets or sets the checkbox alignment in relation to the text displayed by cell. + + + + + Gets or sets whether check box is visible inside the cell. + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets whether mouse is over the cell. + + + + + Gets whether left mouse button is pressed while over the cell. + + + + + Gets or sets the layout of the cell parts like check box, image and text. Layout can be horizontal (default) + where parts of the cell are positioned next to each other horizontally, or vertical where + parts of the cell are positioned on top of each other vertically. + Alignment of the each part is controlled by alignment properties. + + ImageAlignment Property + CheckBoxAlignment Property + + + + Specifies the mouse cursor displayed when mouse is over the cell. + + + + + Gets or sets whether cell wrapped the text during the layout. + + + + + Gets or sets the editor type used to edit the cell. Setting this property to value other than Default + overrides the cell editor type specified on column cell belongs to. + + + + + Gets or sets whether cell can be selected by user by clicking it with the mouse or using keyboard. Default value is true. + + + + + Gets whether cell can be selected. Cell must be Visible, Enabled and Selectable in order for it to be selected. + + + + + Returns ColumnHeader cell is under if one is defined and cell is already parented to the tree. Otherwise it returns null/nothing. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether cell supports and renders text markup. Default value is true. + + + + + Gets whether item supports text markup. Default is false. + + + + + A strongly-typed collection of objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Gets the cell based on the column name. Node must be able to reach AdvTree control for this method to work. + + Column name. + Cell object or null. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Cell array. + + Array to copy to. + + + + Sets the node collection belongs to. + + Cell that is parent of this collection. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. Returns null/nothing if cell with given name is not found. + + + + + Gets or sets the node this collection is associated with. + + + + + Represents event arguments for cell editing events. + + + + + Indicates the action that caused the event. + + + + + Indicates the cell that is affected. + + + + + Indicates new text that will be assigned to the cell if one is appropriate for given event. + + + + + Indicates whether the current action is cancelled. For BeforeCellEdit event setting this + property to true will cancel the editing. For AfterCellEdit event setting this property to + true will cancel any changes made to the text and edits will not be accepted. For CellEditEnding + event setting this property to true will keep the cell in edit mode. + + + + + Indicates whether editing operation was canceled by the end user, usually by pressing ESCAPE key. + + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + Indicates whether action is canceled by the end user. + + + + Initializes new instance of CellEditEventArgs class. + + Reference to Cell this event is raised for. + Indicates the action that caused the event. + Indicates new text of the cell if it applies to given event. + Indicates whether action is canceled by the end user. + + + + Gets reference to the cell editor control. + + + + + Represents class that holds images for a cell. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Initializes new instance of CellImages class. + + Reference to parent cell. + + + + Resets Image property to it's default value (null, VB nothing). + + + + + Resets ImageMouseOver to it's default value (null, VB nothing). + + + + + Resets ImageDisabled to it's default value (null, VB nothing). + + + + + Resets ImageExpanded to it's default value (null, VB nothing). + + + + Makes a copy of a CellImages object. + + + + Changes the image and invokes largest image size calculation if the + image size truly changed. + + + + + + + Returns image from image list based on the image index. + + Index of the image to return. + Image object from image list. + + + + Returns image from image list based on the image key. + + Key of the image to return. + Image object from image list. + + + + Gets or sets default cell image. Setting this property to valid image will + override any setting of ImageIndex property. + + + The image set through this property will be serialized with the cell. If you + plan to use ImageList then use ImageIndex + property. + + If you plan to use alpha-blended images we recommend using PNG-24 format + which supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 + do not support alpha-blending when used through Image class. + + + Image object or null (Nothing) if no image is assigned. + + + + Gets or sets the image that is displayed when mouse is over the cell. Setting + this property to valid image will override any setting of ImageMouseOverIndex + property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writting .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the image that is displayed when cell is disabled. If not assigned + disabled image is created from default cell image. Setting this property to valid image + will override any setting of ImageDisabledIndex property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets image that is displayed when Node that this cell belongs to is + expanded. Setting this property to valid image will override any setting of + ImageExpandedIndex property. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the Index of default cell image from ImageList specified on AdvTree + control. + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + + + Gets or sets the key of the default cell image from ImageList specified on AdvTree control. + + + + + Property Editor support for ImageIndex selection + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of cell image when mouse is over the cell from ImageList + specified on AdvTree control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of cell image when mouse is over the cell from ImageList + specified on AdvTree control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of disabled cell image from ImageList specified on AdvTree + control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of disabled cell image from ImageList specified on AdvTree + control. + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the Index of cell image from ImageList specified on AdvTree control + that is used when Node associated with this cell is expanded + + + + + If you plan to use alpha-blended images we recommend using PNG-24 format which + supports alpha-blending. As of this writing .NET Framework 1.0 and 1.1 do not support + alpha-blending when used through Image class. + + + Gets or sets the key of cell image from ImageList specified on AdvTree control + that is used when Node associated with this cell is expanded + + + + + Gets or sets the parent node of the cell. + + + + + Gets whether CellImages object should be serialized or not. If object has all + default values then this property will return false. + + + + + Returns largest image size in this set of images. + + + + + Indicates whether assigned images are automatically disposed when the cell and node are disposed. Default value is false. + + + + Represents the node or tree ColumnHeader. + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with text. + + Text to initialize object with. + + + + Makes a copy of ColumnHeader object. + + Returns new instance of column header object. + + + + Sets the column bounds. + + + + + Resets Image property to it's default value (null, VB nothing). + + + + + Called when DataFieldName property has changed. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SortingEnabled property has changed. + + Old property value + New property value + + + + Called when SortDirection property has changed. + + Old property value + New property value + + + + Invalidates the appearance of column header. + + + + + Occurs after Tooltip text has changed. + + + + + Called when tooltip is shown and hidden. + + true if tooltip is being shown otherwise false. + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Automatically sets the column width (Width.Absolute) property based on the content of the column. + This will perform the one-time auto sizing of the column. To make column auto-size all the time + set Width.AutoSize=true. + + + + + Raises MouseMove event. + + Provides event arguments. + + + + Raises MouseEnter event. + + Provides event arguments. + + + + Raises MouseLeave event. + + Provides event arguments. + + + + Raises MouseHover event. + + Provides event arguments. + + + + Sort first level nodes that belong directly to this column. Calling this method repeatedly will + alternate between A-Z and Z-A sorting. + + + + + Sort first level nodes that belong directly to this column. + + true to use reverse Z-A sorting, false to sort from A-Z + + + + Called when SortComparer property has changed. + + Old property value + New property value + + + + Called when SortComparerReverse property has changed. + + Old property value + New property value + + + + Occurs when header size has changed due to the user resizing the column. + + + + + Occurs when mouse button is pressed over the column header. + + + + + Occurs when mouse button is released over the column header. + + + + + Occurs when header is double clicked. + + + + + Occurs when header is clicked. + + + + + Gets or sets whether cells content in this column is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets or sets the maximum number of characters the user can type or paste when editing cells in this column. + + + + + Returns name of the column header that can be used to identify it from the code. + + + + + Returns rectangle that this column occupies. If the layout has not been performed on the column the return value will be Rectangle.Empty. + + + + + Gets the reference to the object that represents width of the column as either + absolute or relative value. + + + Set Width using Absolute or Relative properties of ColumnWidth object. + + Absolute Property (DevComponents.AdvTree.ColumnWidth) + Relative Property (DevComponents.AdvTree.ColumnWidth) + + + + Gets or sets the minimum column width in pixels that is enforced when user is resizing the columns using mouse. + Default value is 0 which indicates that there is no minimum size constraint. + + + + + Gets or sets whether column is stretched to fill any empty space horizontally in tree when all columns consume less width than available. + Only one column in tree may have this property set to true and only last column with this property set will be stretched. + You should always set the Width for the column since Width will be used when columns consume more space in tree horizontally than available. + Applies to top-level columns only. + + + + + Gets or sets the style class assigned to the column. Empty value indicates that + default style is used as specified on cell's parent's control. + + + Name of the style assigned to the cell or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleNormal on AdvTree control is a root style for a cell. + + StyleMouseDown Property + StyleMouseOver Property + + + + Gets or sets the style class assigned to the column which is applied when mouse + button is pressed over the header. Empty value indicates that default + style is used as specified on column's parent. + + + Name of the style assigned to the column or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleMouseDown on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseOver Property + + + + Gets or sets the style class assigned to the column which is applied when mouse is + over the column. Empty value indicates that default style is used as specified on column's + parent control. + + + Name of the style assigned to the column or an empty string indicating that default + style setting from tree control is applied. Default is empty string. + + + When property is set to an empty string the style setting from parent tree + controls is used. ColumnStyleMouseOver on AdvTree control is a root style for a + cell. + + StyleNormal Property + StyleMouseDown Property + + + + Gets or sets the name of the column in the ColumnHeaderCollection. + + + + + Gets or sets the column caption. + + + + + Gets or sets whether column is visible. Hiding the header column will also hide corresponding data column. + + + + + + Gets or sets Image alignment inside of column. Default value is Left. + + + + + Gets or sets the data-field or property name that is used as source of data for this column when data-binding is used. + + + + + Gets or sets additional custom data associated with the column. + + + + + Gets or sets the color of the cells background for this column. + + + + + Gets or sets display index of the column. -1 indicates default value and is modified to actual display index when the column is added to a ColumnHeaderCollection. + + + A lower display index means a column will appear first (to the left) of columns with a higher display index. + Allowable values are from 0 to num columns - 1. (-1 is legal only as the default value and is modified to something else + when the column is added to a AdvTree's column collection). AdvTree enforces that no two columns have the same display index; + changing the display index of a column will cause the index of other columns to adjust as well. + + + + + Gets or sets whether user can sort by this column by clicking it. + + + + + Gets or sets the sort direction. Sort direction can be changed by clicking the column header if SortingEnabled=true. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets whether tooltip is visible or not. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the cell when Tooltip property is set. + + + + + Returns reference to AdvTree control this column belongs to. + + + + + Gets or sets whether column is automatically sized to the content when user double-clicks the column + on the column resize line. Column resizing must be enabled in order for this property to function. + Default value is true which indicates that column will be auto-sized to content when user double-clicks the + column resize marker. + + + + + Gets or sets whether column size has changed and it's layout needs to be recalculated. + + + + + Gets whether mouse left button is pressed on the column. + + + + + Gets whether mouse is over the column. + + + + + Occurs when mouse is moving over the column header. + + + + + Occurs when mouse enters column header. + + + + + Occurs when mouse leaves the column header. + + + + + Occurs when mouse hovers over the column. + + + + + Gets or sets the editor type used to edit the cell. Setting this property to value other than Default + overrides the cell editor type specified on column cell belongs to. + + + + + Gets or sets ascending (A-Z) column comparer used to sort nodes when this column is clicked. Your comparer will be passed to NodeCollection.Sort method and should know how to sort by appropriate column. + + + + + Gets or sets descending (Z-A) column comparer used to sort nodes when this column is clicked. Your comparer will be passed to NodeCollection.Sort method and should know how to sort by appropriate column. + + + + + Gets or sets whether to cancel internal sorting performed by AdvTree. + + + + + Gets or sets the column header being sorted. + + + + + Gets or sets the IComparer used for sorting. + + + + + Defines column related event arguments. + + + + + Gets reference to the column. + + + + + Initializes a new instance of the ColumnEventArgs class. + + + + + + Defines delegate for ColumnMoved event. + + + + + Defines column moved event arguments. + + + + + Gets the column display index before the column was moved. + + + + + Gets the column display index before the column was moved. + + + + + Initializes a new instance of the ColumnMovedEventArgs class. + + Column affected + Old display index + New display index + + + + Represents collection for ColumnHeader objects. + + + + + Default constructor. + + + + + Sets the node collection belongs to. + + ColumnHeader that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns index of the object inside of the collection. + + Name of column to return index for. + Index of the column or -1 if column not found. + + + + Returns index of the object inside of the collection based on column DataFieldName. + + DataFieldName of column to return index for. + Index of the column or -1 if column not found. + + + + Returns index of the object inside of the collection based on column DataFieldName. + + DataFieldName of column to return index for. + Index of the column or -1 if column not found. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Called when SortDirection property on column header is set to value other than None. + + Ref to column header + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColumnHeader array. + + Array to copy to. + + + + Gets the display index for specified column. + + Column that is part f ColumnHeaderCollection + Display index or -1 column is not part of this collection. + + + + Returns the column that is displayed at specified display index.. + + 0 based display index. + ColumnHeader + + + + Invalidates the display indexes and causes them to be re-evaluated on next layout. + + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Occurs before the cells are sorted. + + + + + Gets whether a column that is part of this collection has SortDirection set. + + + + + A map of display index (key) to index in the column collection (value). Used to quickly find a column from its display index. + + + + + Gets reference to last visible column or null if there is no last visible column. + + + + + Gets reference to first visible column or null if there is no first visible column. + + + + + Gets the column header rendering bounds. + + + + + Initializes a new instance of the IndexToDisplayIndex class. + + + + + + + Initializes a new instance of the ColumnHeaderControl class. + + + + + Returns mouse position which is translated if control Zoom is not equal 1 + + X coordinate + Y coordinate + + + + + Gets or sets the column move marker that marks insertion point for column that is dragged. Marker is drawn before the column specified by this index. + + + + + Gets or sets the column header collection to be rendered. + + + + + Represents the width of the Column. Supports absolute width in Pixels and + relative width as percentage of the width of parent control. + + + + + Creates new instance of the object. + + + + + Gets or sets relative width expressed as percentage between 1-100. 0 indicates that + absolute width will be used. + + + Relative width is expressed as percentage between 1-100 of the parent controls + width. 0 indicates that absolute width will be used. Absolute width always takes + priority over relative width. For example value of 30 assigned to this property + indicates that width of the column will be 30% of the total client width of the + control. + + + + Gets or sets the absolute width of the column in pixels. + + Absolute width always takes precedence over the relative width of the + column. + + + + + Gets or sets whether column width is automatically set based on the column's content. Default value is false. + When set absolute and relative size values are ignored. + + + + + Gets or sets whether column auto-width is set to minimum of the column header text width. Applies to AutoSize=true only. + + + + + Gets the auto-size calculated width of the column after tree layout is performed and column has AutoSize=true. + + + + + Provides event arguments for command button events. + + + + + Default constructor. + + Action type. + Context node. + + + + Indicates the action type that caused the event. + + + + + Indicates the node action is peformed on. + + + + + Represents collection of connector points for a node. + + + + + Default constructor. + + + + + Sets the node collection belongs to. + + Node that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds range of objects to the array. + + Array to add. + + + + Copies objects of the collection to the array. + + + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColumnHeader array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Control for input of the integer value. + + + + + Represents an control that allows numeric input. + + + + + Closes all popups managed by the owner control. + + + + + Defines interface that should be implemented by controls that support per control renderers. + + + + + Gets the renderer control will be rendered with. This can be either custom renderer set on the control or the + Rendering.GlobalManager specified renderer. + + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Defines interface for internal accessibility support for DotNetBar control. + + + + + Gets or sets the item default accesibility action will be performed on. + + + + + Provides support for custom localization. + + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Forces the button to perform internal layout. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Generates a Click event for the control. + + + + + Returns the collection of items with the specified name. This member is not implemented and should not be used. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. This member is not implemented and should not be used. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Control is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Gets/Sets the visual style for the button. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets button Color Scheme. ColorScheme does not apply to Office2007 styled buttons. + + + + + Specifies whether button is drawn using Windows Themes when running on OS that supports themes like Windows XP. + + + + + Gets whether Windows Themes should be used to draw the button. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets or sets the form button is attached to. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Creates new instance of the class. + + + + + Resets the input position so the new input overwrites current value. + + + + + Called when InputHorizontalAlignment property value has changed. + + Old value. + New Value. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Selects next input field if possible. + + true if next input field was selected otherwise false. + + + + Selects previous input field if possible. + + true if previous input field was selected otherwise false. + + + + ISupportInitialize.BeginInit implementation. While initialization is in progress ValueChanged events will not be fired. + + + + + ISupportInitialize.EndInit implementation. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Gets or sets whether control system buttons are rendered. Default value is true. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets whether watermark text should be rendered. + + + + + Gets or sets whether mouse wheel affects the input control. Default value is true. + + + + + Gets whether keyboard focus is within the control. + + + + + Gets the reference to internal visual item used as the root visual for the control. Using this property is in all cases not necessary except for some + very advanced usage scenarios. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed if set for the input items. Default value is true. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets the watermark text alignment. Default value is left. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Specifies the background style of the control. + + + + + Gets the preferred height of the control. + + + + + Gets or sets the keys used to navigate between the input fields provided by this control. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that background is not changed when control is disabled. + + + + + Gets or sets the control text color when control is disabled. Default value is an empty color which indicates that background is not changed when control is disabled. + + + + + Gets the system colors used by the control. + + + + + Defines an interface for the object that knows how to invoke a command. + + + + + Gets or sets the command that will be executed when the command source is invoked. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Initializes a new instance of the NumericInputBase class. + + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Gets or sets a value indicating whether a spin button control (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control is shown to adjust value of currently focused input item. + The value can be adjusted by using the up and down buttons to change the value. + + + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Called when Command property value changes. + + + + + + + + + + + Occurs when the Value or IsEmpty property changes. + + This event is not raised when the entered date is earlier than MinDateTime or later than MaxDateTime. + + + + + + Occurs when the Value or IsEmpty property changes. This event occurs at the same time and has same function as ValueChanged event. It is provided for binding support. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes read-only and does not allow the typing. However, drop-down and up/down buttons part if visible still allows user to possibly change the value of the control through the method you can provide on drop-down or through up/down buttons. Use this property to allow change of the value through drop-down or up/down buttons only. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the input value. + Set to true if a check box is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the input in the control. When the check box is selected, the value can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets the object that describes the settings for the button that displays popup calculator. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose only, not for the input purpose. + For example to display the number in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that IsEmpty property + may return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether control is empty i.e. it does not hold a valid value. + + + + + Specifies the behavior of ValueChanged event triggering. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the keyboard key that will toggle FreeTextEntryMode. Default value is Keys.None. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to dates like Today to today's date or Now to date and time now etc. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets the value displayed in the control. + + + + + Gets or sets the value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is int type or null. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Control for input of the integer value. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Decreases value of the control. + + + + + Increases the value of the control. + + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets the value displayed in the control. + + + + + Gets or sets the value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is int type or null. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Initializes a new instance of the DateTimeInput class. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Gets or sets the default date-time values that are used by the control. + + + + + Gets or sets a value indicating whether a spin button control (up-down control) is used to adjust the date/time value. The default is false. + + When the ShowUpDown property is set to true, a spin button control is shown to adjust value of currently focused input item. + The date and time can be adjusted by selecting each element individually and using the up and down buttons to change the value. + + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Resets Value property to default value. Used by Windows Forms designer. + + + + + Raises the ParseValue event. + + Provides event arguments. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Gets the Culture used by the date time input and month calendar controls + + reference to CultureInfo + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Raises the ValueChanged event. + + Provides event arguments. + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Called when DateTimeSelectorVisibility property has changed. + + Old property value + New property value + + + + Called when TimeFormat property has changed. + + Old property value + New property value + + + + Called when TimeSelectorType property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + + + + + + + Occurs when the Value or IsEmpty property changes. + + This event is not raised when the entered date is earlier than MinDateTime or later than MaxDateTime. + + + + + + Occurs when the Value or IsEmpty property changes. This event occurs at the same time and has same function as ValueChanged event. It is provided for binding support. + + + + + Occurs when the Format property value has changed. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ValueObject property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Gets whether popup calendar is open. + + + + + Gets or sets whether selected date on popup calendar can be changed using keyboard arrow keys. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Set to true if a check box is displayed to the left of the selected date; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the date in the control. When the check box is selected, the date/time value can be updated. When the check box is cleared, the date/time value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets the date time value of the control. You can use IsEmpty property to check whether control holds an empty value. + Setting this property to System.DateTime(0) will also make the control Empty if AllowEmptyState=true. + + + + + Gets or sets the date/time value of the control as an object. This property allows you to bind to the database fields and supports + null values. Expected value is DateTime object or null to indicate no date selected. + + + + + Gets or sets the values of the nested DateTimeGroup items. + + When nested date-time groups are used note that some of the features of the control are disabled, notably minimum and maximum values + for nested date-times. + + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that IsEmpty property + may return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether control is empty i.e. it does not hold a valid DateTime value. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the format date/time is displayed in. To specify custom format set this value to Custom and specify custom format using CustomFormat property. + + + + + Gets or sets the custom date/time format string. + + + + To display string literals that contain date and time separators or format strings listed below, + you must use escape characters in the substring. For example, to display the date as "June 15 at 12:00 PM", + set the CustomFormat property to "MMMM dd 'at' t:mm tt". If the "at" substring is not enclosed by escape characters, + the result is "June 15 aP 12:00PM" because the "t" character is read as the one-letter A.M./P.M. format string (see the format string table below). + + + To display single quote in custom format use two single quotes characters like so '' after each other and they will be displayed as single quote. + + The following list shows all the valid format strings and their descriptions: + + + Format String + Description + + + d + The one- or two-digit day. + + + dd + The two-digit day. Single-digit day values are preceded by a 0. + + + ddd + The three-character day-of-week abbreviation. + + + dddd + The full day-of-week name. + + + jjj + The three-digit day-of-year day. Single and two-digit values are preceded by 0. + + + j + The three-digit day-of-year day. + + + h + The one- or two-digit hour in 12-hour format. + + + hh + The two-digit hour in 12-hour format. Single digit values are preceded by a 0. + + + H + The one- or two-digit hour in 24-hour format. + + + HH + The two-digit hour in 24-hour format. Single digit values are preceded by a 0. + + + m + The one- or two-digit minute. + + + mm + The two-digit minute. Single digit values are preceded by a 0. + + + M + The one- or two-digit month number. + + + MM + The two-digit month number. Single digit values are preceded by a 0. + + + MMM + The three-character month abbreviation. + + + MMMM + The full month name. + + + s + The one- or two-digit seconds. + + + ss + The two-digit seconds. Single digit values are preceded by a 0. + + + t + The one-letter A.M./P.M. abbreviation (A.M. is displayed as "A"). + + + tt + The two-letter A.M./P.M. abbreviation (A.M. is displayed as "AM"). + + + y + The one-digit year (2001 is displayed as "1"). + + + yy + The last two digits of the year (2001 is displayed as "01"). + + + yyyy + The full year (2001 is displayed as "2001"). + + + { + Starts the nested date-time group inside of the control. Note that nested groups must always be closed. + Nested date-time groups can be used to represent range of input date/time values in the control + To access nested values use Values property. For example to have control represent the input from two time values you could set + CustomFormat to 'from' {HH:mm} 'to' {HH:mm} which will create two nested date/time groups that represent the time value. Entered + time values can be accessed through Values property which return an array of all input values. + + + } + Ends the nested date-time input group. + + + + + + + Gets or sets the CultureInfo for the culture used by the DateTime Input controls and Month Calendar controls. + Default value is null which indicates that controls will use CurrentUICulture. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + Gets the object that describes the settings for the button that shows drop-down calendar when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes + read-only and does not allow the typing. However, drop-down part if visible still allows user to change the value of the control + Use this property to allow change of the value through drop-down picker only. + + + + + Gets or sets whether empty input values (year, month or day) are set to defaults while user is entering data. Default value is true. + + + + + Gets the reference to the internal MonthCalendarItem control which is used to display calendar when drop-down is open. + + + + + Gets or sets whether first day in month is automatically selected on popup date picker when month or year is changed. + + + + + Gets or sets whether input focus is automatically advanced to next input field when input is complete in current one. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets the date-time selectors visibility on popup. Default value is Auto which will select selector visibility based on Format property setting. + + + + + Returns reference to internal time selector item which is used on drop-down to select time when control is used in time entry mode. + + + + + Gets or sets the popup time selector time format used to present time by the selector i.e. 12H or 24H format. + + + + + Indicates the type of popup time selector used. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to dates like Today to today's date or Now to date and time now etc. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Initializes a new instance of the DateTimeCellEditor class. + + + + + Represents cell display class. + + + + + Represents information necessary to paint the cell on canvas. + + + + + Initializes the tree color tables. + + + + + Provides data for RenderColumnHeader event. + + + + + Gets the column header that is rendered. + + + + + Target Graphics canvas. + + + + + Gets the bounds of the column header. + + + + + Gets the effective style for the column. + + + + + Gets the AdvTree control header is rendered for. + + + + + Gets or sets the color of the column sort indicator. + + + + + Initializes a new instance of the ColumnHeaderRendererEventArgs class. + + + + + Initializes a new instance of the ColumnHeaderRendererEventArgs class. + + + + + + + + + Represents helper class for node connector display. + + + + + From node reference. + + + + + From node style reference. + + + + + To node reference. + + + + + To node style reference. + + + + + Graphics object used for drawing. + + + + + Node offset since some node coordinates are relative. + + + + + Indicates whether from node is a root node. + + + + + Reference to node connector object that describes connector type. + + + + + Gets or sets whether connector is link connector. + + + + + Reference to the collection of the connector path points. Default value is null indicating there are no path points. + + + + + Provides data for the NodeRenderer.RenderDragDropMarker event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the selection bounds. + + + + + Initializes a new instance of the DragDropMarkerRendererEventArgs class. + + + + + Initializes a new instance of the DragDropMarkerRendererEventArgs class. + + + + + + + Represents the line connector display class. + + + + + Base class for drawing node connectors. + + + + + Creates new instance of the object. + + + + + Draws connector line between two nodes. + + Connector context information. + + + + Returns new instance of pen object for node connector line. Caller is responsible for + disposing of this object. + + Node connector display info. + New instance of Pen object. + + + + Draws connector line between two nodes. + + Connector context information. + + + + Provides information for cell rendering methods and events. + + + + + Summary description for NodeRendererEventArgs. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to Node object being rendered. + + + + + Gets or sets the absolute node bounds. + + + + + Gets or sets the reference to element style for rendered node or cell. Style provided here is the style + for current node or cell state. + + + + + Gets or sets color that is passed to renderer. May be Color.Empty. + + + + + Creates new instance of the class. + + + + + Gets or sets the cell being rendered. + + + + + Gets or sets absolute cell bounds. + + + + + Gets or sets the internal cell offset. + + + + + Gets or sets the color scheme. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + Reference to context node. + Reference to node bounds + Reference to cell style + Reference to cell + Reference to cell bounds + + + + Represents custom connector path info. + + + + + Summary description for NodeDisplay. + + + + Creates new instance of the class + Object to initialize class with. + + + + Paints the layout on canvas. + + + + + Sets locked offset to specific value. Point.Empty means there is no locked offset set. + + New locked offset. + + + + + + + + + + Gets or sets the offset of the tree content relative to the size of the container control. + + + + Gets or sets whether offset is locked, i.e. cannot be changed. + + + + Returns the default offset for the tree content relative to the size of the container. + + + + + Gets or sets the reference to the tree control managed by display class. + + + + + Base class for node expand button display. + + + + Creates new instance of the class + + + Draws expand button. + Context parameters for drawing expand button. + + + + Represents class that paints elliptical expand button. + + + + Draws ellipse type expand button. + Expand context drawing information. + + + + Represents expand button display using predefined images. + + + + + Draws image type expand button. + + Expand context information + + + + Represents event arguments for RenderExpandPart event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to Node object being rendered. + + + + Expand part bounds + + + Expand part border color + + + Expand part line color + + + Expand part background color + + + Expand part target gradient background color + + + Gradient angle + + + Expand part image when node is expanded + + + Expand part image when node is collapsed + + + Internal support for expand button types + + + Gets whether mouse is over expand part + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + + + + Represents class that paints rectangular expand button. + + + + + Draw rectangular type expand button. + + Expand button context information. + + + + Draw triangular type expand button. + + Expand button context information. + + + + Represent class that paints selection around node. + + + + + Represents default system node and cell renderer. + + + + + Represents abstract renderer class for node objects. + + + + + Draws node background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeBackground event. + + Event arguments. + + + + Draws node expand part. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeExpandPart method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeExpandPart event. + + + + + + Draws cell background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellBackground event. + + Event arguments + + + + Draws cell check box. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellCheckBox method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellCheckBox event. + + Event arguments + + + + Draws cell image. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellImage method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellImage event. + + Event arguments + + + + Draws cell text. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellText method so events can occur. + + Information provided for rendering. + + + + Raises RenderCellImage event. + + Event arguments + + + + Draws selection for SelectedNode. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSelection method so events can occur. + + Information provided for rendering. + + + + Raises RenderSelection event. + + Event data. + + + + Draws hot-tracking marker for mouse over node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderHotTracking method so events can occur. + + Information provided for rendering. + + + + Raises RenderHotTracking event. + + Event data. + + + + Draws connector between nodes. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderConnector method so events can occur. + + Information provided for rendering. + + + + Raises RenderConnector event. + + Event data. + + + + Draws the tree background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTreeBackground method so events can occur. + + Information provided for rendering. + + + + Raises RenderTreeBackground event. + + Event data. + + + + Draws the drag & drop marker that indicates the insertion point for the node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderDragDropMarker method so events can occur. + + Information provided for rendering. + + + + Raises RenderDragDropMarker event. + + Event data. + + + + Draws the column header. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColumnHeader method so events can occur. + + Information provided for rendering. + + + + Raises RenderDragDropMarker event. + + Event data. + + + + Draws node group line when in tile view. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTileGroupLine method so events can occur. + + Information provided for rendering. + + + + Raises RenderNodeBackground event. + + Event arguments. + + + + Occurs when node background is being drawn. + + + + + Occurs when node expand part is being drawn. + + + + + Occurs when cell background is being drawn. + + + + + Occurs when cell check-box is being drawn. + + + + + Occurs when cell image is being drawn. + + + + + Occurs when cell text is being drawn. + + + + + Occurs when node selection marker is rendered. + + + + + Occurs when node hot-tracking marker is rendered. + + + + + Occurs when node connector is being drawn. + + + + + Occurs when tree background is rendered. + + + + + + Renders the Column Header. + + + + + Occurs when node group line is being rendered while control is in tile view. + + + + + Gets or sets the color table used by the renderer. + + + + + Gets or sets the color table used by the renderer. + + + + + Returns ElementStyleDisplayInfo class that provides information for ElementStyle rendering. + + Reference to style. + Reference to graphics object. + Style bounds + New instance of ElementStyleDisplayInfo + + + + Draws node background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeBackground method so events can occur. + + Information provided for rendering. + + + + Draws node expand part. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNodeExpandPart method so events can occur. + + Information provided for rendering. + + + + Draws cell background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellBackground method so events can occur. + + Information provided for rendering. + + + + Draws cell check box. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellCheckBox method so events can occur. + + Information provided for rendering. + + + + Draws cell image. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellImage method so events can occur. + + Information provided for rendering. + + + + Draws cell text. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCellText method so events can occur. + + Information provided for rendering. + + + + Draws selection for SelectedNode. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSelection method so events can occur. + + Information provided for rendering. + + + + Draws hot-tracking marker for mouse over node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderHotTracking method so events can occur. + + Information provided for rendering. + + + + Draws connector between nodes. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderConnector method so events can occur. + + Information provided for rendering. + + + + Draws the tree background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTreeBackground method so events can occur. + + Information provided for rendering. + + + + Draws the drag & drop marker that indicates the insertion point for the node. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderDragDropMarker method so events can occur. + + Information provided for rendering. + + + + Draws the column header. If you need to provide custom rendering this is the method that you should override in your custom renderer. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColumnHeader method so events can occur. + + Information provided for rendering. + + + + Draws node group line when in tile view. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderTileGroupLine method so events can occur. + + Information provided for rendering. + + + + Summary description for NodeTreeDisplay. + + + + Creates new instance of the class + Object to initialize class with. + + + + Paints the tree on canvas. + + + + + Defines the color table for tree selection. + + + + + Gets or sets the outer border for the selection. + + + + + Gets or sets the outer border corner radius. + + + + + Gets or sets the inner border for the selection. + + + + + Gets or sets the selection fill. + + + + + Gets or sets the selection text color. + + + + + Data form RenderSelection event. + + + + + Gets or sets reference to Graphics object, canvas node is rendered on. + + + + + Gets or sets the reference to selected Node object. + + + + + Gets or sets the selection bounds. + + + + + Gets or sets the node selection box style. + + + + + Gets or sets whether tree control is active, focused. + + + + + Provides data for tree background rendering events. + + + + + Gets or sets reference to Graphics object, canvas tree background is rendered on. + + + + + Gets or sets the reference to AdvTree control. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + + + + Defines the Tree color table. + + + + + Gets or sets the color table used for the node selection display. + + + + + Gets or sets the color for node drag & drop marker. + + + + + Gets or sets the color of tree expand button type of rectangle. + + + + + Gets or sets the color of tree expand button type of Ellipse. + + + + + Gets or sets the color of tree expand button type of Triangle. + + + + + Gets or sets the color for tree grid lines. + + + + + Gets or sets the color of the column sort indicator which is rendered on columns when sorted. + + + + + Defines the color table for node expand button. + + + + + Gets or sets the border for the expand button which expands the node. + + + + + Gets or sets the expand button fill for button that expands the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which expands the node. + + + + + Gets or sets the expand button fill for button that expands the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which collapses the node. + + + + + Gets or sets the expand button fill for button that collapses the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Gets or sets the border for the expand button which collapses the node. + + + + + Gets or sets the expand button fill for button that collapses the node. + + + + + Gets or sets the expand button foreground for button that expands the node. + + + + + Defines the color table for tree selection. + + + + + Gets or sets the color table for FullRowSelect selection type. + + + + + Gets or sets the color table for FullRowSelect selection type when tree control is inactive. + + + + + Gets or sets the color table for HighlightCells selection type. + + + + + Gets or sets the color table for HighlightCells selection type when tree control is inactive. + + + + + Gets or sets the color table for NodeMarker selection type. + + + + + Gets or sets the color table for NodeMarker selection type when tree control is inactive. + + + + + Gets or sets the color table used for node hot-tracking. + + + + + Creates the pen for the border. + + Returns pen or null if pen cannot be created. + + + + Gets or sets the border width. Default value is 0. + + + + + Represents Collection for the ColorStop objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the ColorStop array. + + Array to copy to. + + + + Creates ColorBlend object based on the members of the collection. ColorBlend object will be valid only if all members of the collection + represents relative/percentage based color blends. + + + + + + Adds the ColorStop objects from the collection. + + Collection to copy objects from + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Returns reference to the object in collection based on it's index. + + + + + Defines single color blend point for the multicolor gradient fills. + + + + + Creates new instance of the class. When defining multicolor gradient blends and using the percentage positions the positions created + must start with 0f and end with 1f. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Gets or sets Color to use in multicolor gradient blend at specified position. + + + + + Gets or sets the color position in multicolor gradient blend. Values less or equal to 1 are used as percentage specifing percentages of distance along the gradient line. + Values greater than 1 are used as absolute pixel values of distance along the gradient line. + + + + + Represents BackgroundColorBlend object converter. + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Creates a pen based on fill parameters. + + Width of the pen to create + new instance of pen or null if pen cannot be created. + + + + Initializes a new instance of the GradientFill class. + + + + + Initializes a new instance of the GradientFill class. + + + + + + + Initializes a new instance of the GradientFill class. + + + + + + + + Initializes a new instance of the GradientFill class. + + + + + + Initializes a new instance of the GradientFill class. + + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Creates a pen based on fill parameters. + + Width of the pen to create + new instance of pen or null if pen cannot be created. + + + + Gets or sets the starting gradient fill color. + + + + + Gets or sets the end gradient fill color. + + + + + Gets the collection that defines the multicolor gradient background. + + + Setting this property creates a multicolor gradient with one color at each position along the gradient line. Setting this property nullifies all previous color, position, and falloff settings for this gradient fill. + + + + + Gets or sets the gradient fill angle. Default value is 90. + + + + + Defines a visual shape. + + + + + Renders shape on canvas. + + Target graphics to render shape on. + Shape bounds. + + + + Gets or sets the single piece of content inside of the shape. + + + + + Gets or sets whether to clip the Content of this shape. Default value is false. + + + + + Renders rectangle on canvas. + + Target graphics to render shape on. + Shape bounds. + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Gets or sets shape border. + + + + + Gets or sets the shape fill. + + + + + Gets or sets the CornerRadius. + + + + + Initializes a new instance of the SolidBorder class. + + + + + + + Initializes a new instance of the SolidBorder class. + + + + + + Initializes a new instance of the SolidBorder class. + + + + + Creates the pen for the border. + + Returns pen or null if pen cannot be created. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets or sets the fill color. + + + + + Initializes a new instance of the SolidFill class. + + + + + + Initializes a new instance of the SolidFill class. + + + + + Creates the brush for fill. + + Bounds for the brush + Returns brush or null if brush cannot be created for given bounds or colors are not set. It is responsibility of caller to Dispose the brush. + + + + Gets whether property should be serialized. + + true if property should be serialized + + + + Sets the property to its default value. + + + + + Gets or sets the fill color. + + + + + Specifies layout of the items in AdvTree control. + + + + + Standard TreeView layout. + + + + + ListView style tile layout. + + + + Specifies the way background image is displayed on background. + + + Image is stretched to fill the background + + + Image is centered inside the background + + + Image is tiled inside the background + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + Indicates alignment of a part of the cell like image or check box in relation to the text. + + + + Part is aligned to the left center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the right center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the top left of the text assuming left-to-right + orientation. + + + + Part is aligned above the text and centered. + + + + Part is aligned to the top right of the text assuming left-to-right + orientation. + + + + + Part is aligned to the bottom left of the text assuming left-to-right + orientation. + + + + Part is aligned below the text and centered. + + + + Part is aligned to the bottom right of the text assuming left-to-right + orientation. + + + + + Part has default alignment that depends on the parent control view. + + + + + Specifies how to trim characters from a text that does not completely fit into a element's shape. + + + + + Specifies that the text is trimmed to the nearest character. + + + + + Specifies that the text is trimmed to the nearest character, and an ellipsis is inserted at the end of a trimmed line. + + + + + The center is removed from trimmed lines and replaced by an ellipsis. The algorithm keeps as much of the last slash-delimited segment of the line as possible. + + + + + Specifies that text is trimmed to the nearest word, and an ellipsis is inserted at the end of a trimmed line. + + + + + Specifies no trimming. + + + + + Specifies that text is trimmed to the nearest word. + + + + + Indicates absolute vertical alignment of the content. + + + + + Content is aligned to the top + + + + + Content is aligned in the middle + + + + + Content is aligned at the bottom + + + + + Indicates absolute horizontal alignment + + + + + Content is left aligned + + + + + Content is centered + + + + + Content is right aligned + + + + + Indicates prefered node layout position on Map tree layout when node is the child node of the top-level root node. + + + + + Node is positioned based on default algorithm. + + + + + Sub-root node and all nodes after it are positioned to the left of the root. + + + + + Sub-root node and all nodes before it are positioned to the right of the root. + + + + + Specifies the column header visibility for the node. + + + + + Column header is automatically shown/hidden based on the node's position in the tree. When + Node is first child node i.e. with index=0 the header will be shown, otherwise header will + be hidden. + + + + + Column header is always displayed regardless of node's position. + + + + + Column header is always hidden regardless of node's position. + + + + + Indicates the part of the node. + + + + + Bounds of complete node content except expand button. This also includes the child node bounds if node is expanded. + + + + + Bounds of the expand button which collapses/expands the node. + + + + + Hit test bounds of the expand button which collapses/expands the node used by mouse routines to trigger node expansion/collapse. + + + + + Bounds of all child nodes of give node. + + + + + Bounds for cells inside a node. + + + + + Complete node bounds including expand button. + + + + + Bounds of the command button. + + + + + Bounds of child node columns if node has columns defined. + + + + + Indicates the part of the cell. + + + + + Bounds of check box or Rectangle.Empty if there is no check-box. + + + + + Bounds of image inside the cell or Rectangle.Empty if there is no image. + + + + + Text bounds inside of cell. + + + + + Cell bounds + + + + + Indicates part of the node mouse is placed over. + + + + + Mouse is not over any node part. + + + + + Mouse is placed over the node. + + + + + Mouse is placed over node expand button. + + + + + Mouse is placed over the cell. + + + + + Mouse is placed over the command button. + + + + + Indicates the visibility of node expand part which allows user to expand/collaps node. + + + + + Default setting which indicates that when node has child nodes expand part is visible otherwise it is hidden. + + + + + Expand part is always visible regardless of whether child nodes are present or not. + + + + + Expand part is always hidden regardless of whether child nodes are present or not. + + + + + Specifies the action that raised a AdvTreeEventArgs event + + + + + The event was caused by a keystroke. + + + + + The event was caused by a mouse operation. + + + + + The event was caused by the Node collapsing. + + + + + The event was caused by the Node expanding. + + + + + The event is caused programmatically from user code. + + + + + Specifies node connector type. Node connector is the type of the line/connection that is drawn to connect child node to it's parent node. + + + + + Straight line connector type. + + + + + Specifies the layout type used to position the cells within the nodes. + + + + + Specifies that default setting is to be used for cell layout. Default is Horizontal. When set to default on the Node, setting from Tree control is used. + + + + Horizontal layout positions the cells horizontally next to each other. + + + + Vertical layout positions cell vertically on top of each other. + + + + + Specifies the layout type used to position the parts of the cell like image, checkbox and text. + + + + + Specifies that default setting is to be used for cell parts layout. Default is Horizontal. When set to default on the Cell, setting from Tree control is used. + + + + Horizontal layout positions the parts of the cell horizontally next to each other. + + + + Vertical layout positions parts of the cell vertically on top of each other. + + + + + Specifies the color scheme loaded by ColorScheme object. + + + + + Indicates Office 2003 like color scheme. + + + + + Indicates VS.NET 2005 like color scheme. + + + + + Indicates Office 2007 like color scheme. + + + + + Specifies the currently selected system color scheme if running on Windows XP. + + + + + Color scheme cannot be determined. + + + + + Blue color scheme. + + + + + Olive green color scheme. + + + + + Silver color scheme. + + + + + Specifies the flow of diagram layout related to the root node. + + + + + Nodes are positioned from left to right with root node being the left-most node. + + + + + Nodes are positioned from right to left with root node being the right-most + node. + + + + + Nodes are positioned from top to bottom with root node being the top node. + + + + + Nodes are positioned from bottom to top with root node being bottom node. + + + + + Specifies the flow of the map layout. + + + + + Nodes are arranged around the root node. + + + + + Nodes are arranged from below the root node. + + + + + Nodes are arranged above the root node. + + + + + Nodes are arranged to the right of the root node. + + + + + Nodes are arranged to the left of the root node. + + + + + Specifies the type of the expand button. + + + + + Indicates elliptical expand button. + + + + + Indicates rectangular expand button. + + + + + Indicates that images are used for expand button. + + + + + Indicates the Windows Vista style expand button. + + + + + Specifies the visual style for the tree control. + + + + + Indicates default visual style. + + + + + Specifies the layout type for the nodes. + + + + + Nodes are arranged around root node in map format. + + + + + Nodes are arranged from left-to-right in diagram format. + + + + + Specifies renderer type used to render nodes. + + + + + Specifies default renderer which allows most customization through AdvTree + properties. Default renderer integrates with the Style architecture to provide + customization on renderer behavior. + + + + + Specifies that custom renderer is used. When set you must also set NodeRenderer + to renderer you want to use. + + + + + Specifies the node selection style. + + + + + Node selector highlights the complete node row when node is selected. + + + + + Node selector draws the rectangle that highlights the node content. Appearance similar to system tree view in Windows Vista. + + + + + Node selector draws hollow selection rectangle around the node. + + + + + Specifies the rule for multi-node selection. + + + + + Allows multiple selection of nodes with same parent node only. + + + + + Allows multiple selection of any node. + + + + + Gets or sets the image alignment inside of column header. + + + + + Image is left aligned. + + + + + Image is right aligned. + + + + + Specifies the editor type used when cell is edited. + + + + + Indicates default, text based editor. + + + + + Indicates that Integer numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that Double numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that Currency numeric editor will be used for editing the value of the cell or column. + + + + + Indicates that date editor will be used for editing the value of the cell or column. + + + + + Indicates that time editor will be used for editing the value of the cell or column. + + + + + Indicates that date and time editor will be used for editing the value of the cell or column. + + + + + Indicates that cell will use custom editor that you provide by handling AdvTree.ProvideCustomCellEditor event. + + + + + Specifies the sort direction for the column header. + + + + + No sort is specified. + + + + + Ascending sorting is in effect, i.e. A-Z + + + + + Descending sorting is in effect, i.e. Z-A + + + + + Defines the delegate for AdvTree cell based action events. + + + + + Defines the delegate for AdvTree cell based action events. + + + + + Defines the delegate for AdvTree node based action events that can be cancelled. + + + + + Defines the delegate for AdvTree node based action events. + + + + + Defines delegate for Command button events. + + + + + Defines delegate for label editing events. + + + + + Defines the delegate for AdvTree node based action events. + + + + + Defines the delegate for BeforeNodeDrop and AfterNodeDrop events + + + + + Defines the delegate for NodeDragFeedback event. + + + + + Defines the delegate for mouse based node events + + + + + Defines delegate for node rendering events. + + + + + Defines delegate for cell rendering events. + + + + + Defines delegate for RenderExpandPart event. + + + + + Defines delegate for RenderExpandPart event. + + + + + Defines delegate for RenderConnector event. + + + + + Defines delegate for TreeBackgroundRenderer events. + + + + + Defines delegate for RenderDragDropMarker event. + + + + + Defines delegate for RenderColumnHeader event. + + + + + Provides data for the ProvideCustomCellEditor event. + + + + + Gets or sets the cell editor. You must set this property in your event handler to the custom + editor to be used for cell editing. + + + + + Gets the cell editor will be used for. + + + + + Initializes a new instance of the CustomCellEditorEventArgs class. + + + + + + Defines delegate for ProvideCustomCellEditor event. + + + + + Provides more information about MarkupLinkClick event. + + + + + Gets the value of href attribute from the markup link that was clicked. + + + + + Gets the value of name attribute from the markup link that was clicked. + + + + + Creates new instance of the object. + + Value of name attribute. + Value of href attribute. + + + + Defines delegate for MarkupLinkClick event. + + + + + Represents arguments for SerializeNode event which allows you to add custom serialization data to definitions saved by control. + + + + + Gets reference to the node being serialized or de-serialized. + + + + + Gets reference to instance of XmlElement that item is serialized to or is being de-serialized from. You should not change any data directly on this element. + + + + + Gets the reference to XmlElement that you can serialize to or de-serialize any custom data from. You can add child elements or set the attributes on + this XmlElement when handling SerializeItem event. When handling DeserializeItem event you can load your data from this element. + + + + + Defines delegate for SerializeItem event. + + + + + Represents the table header. + + + + + Default constructor. + + + + + Gets the reference to the collection that contains the columns associated with header. + + + + + Gets or sets the name associated with this header definition. + + + + + Represents collection for HeaderDefinition objects. + + + + + Sets the node collection belongs to. + + HeaderDefinition that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the HeaderDefinition array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Provides WinApi functions to rest of the application. + + + + + Resets Hoover timer for specified control. + + + + + Provides AdvTree Keyboard handling. + + + + + Represents class for Node's cell layout. + + + + + Offset cell bounds, check box bounds, image bounds and text bounds by specified offset. + + Cell to offset. + Horizontal offset in pixels. + Vertical offset in pixels. + + + + Returns spacing between check box and image if both are displayed + + + + + Returns spacing between image or checkbox and text + + + + + Returns vertical spacing between cells in a node + + + + + Spacing between different parts of the cell, like image, option button, text and expand button area + + + + + Initializes a new instance of the CellTileLayout class. + + + + + Class that is used to layout column header. + + + + + Gets or sets the vertical spacing between nodes in pixels. + + + + + Gets or sets the horizontal spacing between nodes in pixels. + + + + + Returns horizontal spacing between cells in a node + + + + + Returns width of the expand button area. Default is 24 pixels. + + + + + Gets or sets the size of the expand part that is expanding/collapsing the node. Default value is 8,8. + + + + + Gets or sets width of command button area. Default is 8 pixels. + + + + + Summary description for NodeLayout. + + + + + Performs layout of the nodes inside of the tree control. + + + + + Performs layout for single unassigned node. Node does not have to be part of the tree control. + + Node to perform layout on. + + + + Resizes all styles and prepares them for layout. + + + + + Returns default top-level columns for tree control. + + Returns array list of ColumnInfo objects. + + + + Returns column information for a given node. + + Node to return column information for + Returns array list of ColumnInfo objects or null if there are no columns defined. + + + + Returns column header collection for the given column template name. + + Name of the column template. + Column header collection or null if template name cannot be found. + + + + Sets the position and size of the node command button. + + Node layout context information + + + + Determines the rectangle of the +/- part of the tree node that is used to expand node. + + Node layout context information + + + + Returns the size of the node expand part. + + Size of the expand part, default 8,8. + + + + Provides the layout for single node. + + Layout information. + + + + Returns true if given node has expand part. + + Layout context information. + + + + + Returns whether given node has command part. + + Layout context information. + True if command part should be drawn otherwise false. + + + + Returns class responsible for cell layout. + + Cell layout class. + + + + Offsets node location and location of it's child nodes bounds. + + Node to offset. + Horizontal offset. + Vertical offset. + + + + Gets or sets layout settings. + + + + + Gets or sets the child node indent in pixels. + + + + + Returns true if root node should have expanded part + + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Initializes a new instance of the NodeColumnInfo structure. + + + + + + + Gets or sets the list of column info object for the columns. + + + + + Gets or sets whether columns have auto-size column. + + + + + Used to pass node contextual information used for layout of the node. + + + + + Performs ListView Tile style layout. + + + + + Returns default top-level columns for tree control. + + Returns array list of ColumnInfo objects. + + + + Gets whether the expand part of the node +/- is aligned to the left of the node in left-to-right layout. + + Node to get expand part alignment for + true if node expand part is aligned to the left in left-to-right layout. + + + + Returns column information for a given node. + + Node to return column information for + Returns array list of ColumnInfo objects or null if there are no columns defined. + + + + Returns true if given node has expand part. + + Layout context information. + + + + + Returns class responsible for cell layout. + + Cell layout class. + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Gets or sets whether parent/child node relationship is displayed as groups. + + + + + Performs classic TreeView layout. + + + + + Gets whether the expand part of the node +/- is aligned to the left of the node in left-to-right layout. + + Node to get expand part alignment for + true if node expand part is aligned to the left in left-to-right layout. + + + + Returns true if expand part space should be accounted for even if they expand part is not visible or need to be displayed. Default value is false. + + + + + Represents the Node in Tree control. + + + + Default Constructor. + + + + Creates node and initializes its text. + + + + + Creates node and initializes its text and Style property. + + + + + Sets the bounds of the node. + + New location and size of the node. + + + + Sets the content bounds of the node. Content bound is bound for the the cells inside the node + and it excludes the expand rectangle. Bounds also include the node style padding and + reflect node margin. + + New location and size of the node. + + + + Sets cell bounds. + + New cells bounds. + + + + Sets node parent. + + Parent node object. + + + + Called when Parent of the node has changed. + + + + + Sets the bounds of the expand part. + + New part bounds. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets the Checked or CheckState properties. + + New value for checked state. + Action source. + + + + Sets whether node is in edit mode or not. + + True indicating that node is in edit mode false otherwise. + + + + Sets selected cell and provides information on the action that caused the selection change. + + New selected cell. + Action source. + + + + Resets image to its default value. Windows Forms designer support. + + + + + Resets image to its default value. Windows Forms designer support. + + + + + Resets ImageMouseOver to its default value. Windows Forms designer support. + + + + + Resets ImageExpanded to its default value. Windows Forms designer support. + + + + + Called after node has been deselected. + + Provides information on how selection was performed + + + + Called after node has been selected. + + Provides information on how selection was performed + + + + Returns cell within a node which contains specified coordinates. + + + + Cell which contains specified coordinates or null/nothing if no cell contains coordinates. + + + + Invalidates the layout for this node and causes the layout to be performed on next layout request. + + + + + Invalidates the layout for this node and causes the layout to be performed on next layout request. + + Indicates whether to invalidate layout for all child nodes as well. + + + + Invalidates node and causes a paint message to be sent to the tree. + + + + Initiates the editing of node text. + + This method by default edits text stored in Node.Text. Call to this method is + same as calling the overload method BeginData(0) with zero as parameter. Use BeginData + overload method to begin editing the specific column for multi-column nodes. + + + + Initiates the editing of node text. + + The initial text to be entered into the edit TextBox. Specify null to use existing text. + + + + Initiates text editing of certain Node column. + + Zero based index of a column to begin editing for. Column 0 always corresponds to + Node.Text property. + + + + Initiates text editing of certain Node column. + + Zero based index of a column to begin editing for. Column 0 always corresponds to + Node.Text property. + + + The initial text to be entered into the edit TextBox. Specify null to edit existing text. + + + + + Creates new instance of the node for the Copy() and DeepCopy() methods. Allows you to returns your own node type copy if you inherit from node to add custom properties. + + New instance of a node. + + + Makes a "shallow" copy of a Node. + + Shallow copy of a Node is a exact copy of Node but without copy + of all child nodes in Nodes collection. + + + + + Copies this node properties to a node. + + Node top copy properties to. + + + Makes a "deep" copy of a node. + + Deep copy of Node is a exact copy of Node including exact copies of all child nodes + in this node's Nodes collection. + + + + + Collapses the tree node. + + + + + Collapses the tree node. + + Action that caused the event + + + + Collapses all the child tree nodes. + + + + + Ends the editing of the node text or column. + + true if the editing of the tree node label text was canceled without being saved; otherwise, false. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Indicates the position within a tree visible area node is scrolled to + + + + Expands the node. + + + The Expand method expands the current Node down to the next level of nodes. + The state of a Node is persisted. For example, if the next level of child nodes was not collapsed previously, when the Expand method is called, the child nodes appear in their previously expanded state. + + + + + Expands the node. + + + The Expand method expands the current Node down to the next level of nodes. + The state of a Node is persisted. For example, if the next level of child nodes was not collapsed previously, when the Expand method is called, the child nodes appear in their previously expanded state. + + Action that caused the event. + + + + Expands all the child tree nodes. + + + + + Expands all the child tree nodes. + + + + + Removes the current node from the control. + + + When the Remove method is called, the node and any child nodes assigned to the Node are removed from the Tree. The removed child nodes are removed from the Tree, but are still attached to this node. + + + + + Removes the current node from the control and provides information about source of action + + + When the Remove method is called, the node and any child nodes assigned to the Node are removed from the Tree. The removed child nodes are removed from the Tree, but are still attached to this node. + + + + + Toggles the node to either the expanded or collapsed state. + + + + + Toggles the node to either the expanded or collapsed state. + + Action that caused the event. + + + Returns string representation of the Node. + + + + Called after new cell has been added to Cells collection. + + Reference to the new cell added. + + + + Called after cell has been removed from Cells collection. + + Reference to the removed cell. + + + + Occurs when property on the node has changed that influences the size of the node. + + + + + Occurs when any image property for the cell has changed. + + + + + Occurs when size of the child nodes has changed. + + + + + Called before Expanded state of the node has changed. + + New Expand State + Action Source + + + + Called when visual part of the node has changed due to the changes of its properties or properties of the cells contained by node. + + + + + Called after new node has been added to Nodes collection. + + Reference to the new node. + + + + Called after node has been removed from Nodes collection. + + Reference to the node that is removed. + + + + Creates new cells based on the columns defined on either parent node or the columns in tree control. Node + must be parented so it can get reference to a parent tree control. + + + + + Raises the Click event on node and parent tree if available. + + + + + Provides implementation for IComparable interface. This is used for sorting and it compares the Text property on nodes. + + + + + + + Occurs when the mouse pointer is over the node and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the node and a mouse button is released. + + + + + Occurs when the mouse pointer is moved over the node. + + + + + Occurs when the mouse enters the node. + + + + + Occurs when the mouse leaves the node. + + + + + Occurs when the mouse hovers over the node. + + + + + Occurs when the node is clicked with left mouse button. If you need to know more information like if another mouse button is clicked etc. use + NodeMouseDown event. + + + + + Occurs when the node is double-clicked. + + + + + Occurs when hyperlink in text-markup is clicked. + + + + + Gets whether node has child nodes. + + + + + Gets or sets the context menu assigned to this node. Standard Context Menus, VS.NET 2005 Context Menus and DotNetBar Suite context menus are supported. + Default value is null (Nothing) which indicates that no context menu is assigned. + + + + + Gets whether any of the cells inside the node has HostedControl property set. + + + + + Gets or sets custom node renderer. You can set this property to your custom renderer. When set the RenderMode should be set to custom to enable + your custom renderer. To choose one of the system renderer use RenderMode property. Default value is null. + + + + + Gets or sets the render mode used to render the node. Default value is eNodeRenderMode.Default which indicates that system default renderer is used. + Note that if you specify custom renderer you need to set either AdvTree.NodeRenderer or Node.NodeRenderer property. + + + + + Gets or sets whether node is expanded. Expanded node shows it's child nodes. + + + + + Returns name of the node that can be used to identify it from the code. + + + + + Gets or sets whether node can be dragged and dropped. Default value is true. + + + + + Gets or sets visibility of the expand button. Default value is Auto meaning that + expand button is displayed only if node has at least one child node. + + + You can use this property for example to dynamically load the child nodes when user + tries to expand the node. You could for example handle BeforeExpand event to load child + nodes into the node. + + + + + Gets or sets whether any operation on the node has been performed that would affect node's size. Size changed flag + internally indicates that node's size needs to be recalculated because it has changed + due to the changes in data. + + + + + Gets the relative bounds of the tree node including the expand part of the node. + + + + + Gets the absolute bounds of the tree node including the expand part of the node. + + + + + Gets the node content bounds. + + + + + Gets the bounds for all the cells inside the node. The bounds do not include the expand part. + + + + + Gets the bounds for all the cells inside the node. The bounds do not include the expand part. + + + + + Gets or sets the bounds of child nodes. + + + + + Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + + + Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + + + Indicates vertical alignment within the node bounds of expand part of the node, if one is visible. + + + + + Gets or sets the Command part bounds if command part is visible. + + + + + Gets or sets a value indicating whether the tree node is in a checked state. + + + + + Gets or sets the checkbox alignment in relation to the text displayed by first default cell. + + + + + Gets or sets whether check box is visible inside the cell. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets whether first cell content is editable when cell editing is enabled on tree control. Default value is true. + + + + + Gets the path from the root tree node to the current tree node. The path consists of the labels of all the tree nodes that must be navigated to get to this tree node, starting at the root tree node. The node labels are separated by the delimiter character specified in the PathSeparator property of the Tree control that contains this node. + + + + + Gets the zero based index of position of the tree node in the tree node collection. -1 is returned if node is not parented. If node is root node + the index of node in AdvTree.Nodes collection is returned. + + + + + Gets a value indicating whether the tree node is in an editable state. true if the tree node is in editable state; otherwise, false. + + + + + Gets whether left mouse button is pressed on any cell contained by this node. + + + + + Gets whether mouse cursor is over on any cell contained by this node. + + + + + Gets a value indicating whether the tree node is in the selected state. true if the tree node is in the selected state; otherwise, false. + + + + + Gets or sets whether node can be selected by user by clicking it with the mouse or using keyboard. Default value is true. + + + + + Gets whether node can be selected. Node must be Visible, Enabled and Selectable in order for it to be selected. + + + + + Gets or sets a cell that is in selected state otherwise it returns null. + + + + + Gets a value indicating whether the tree node is visible. Node is considered to be visible when it's Visible property is set to true and path to the node is available i.e. all parent nodes are expanded. + + + + + Returns whether node is displayed on the screen and visible to the user. When node is outside of the viewable area this property will return false. It will also return false if node is not visible. + + + + + Gets the last child tree node. The LastNode is the last child Node in the NodeCollection stored in the Nodes property of the current tree node. If the Node has no child tree node, the LastNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the next sibling tree node. The NextNode is the next sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no next tree node, the NextNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the zero-based depth of the tree node in the tree control. The root node is considered the first level of nesting and returns 0. + + + + + Gets the collection of Node objects assigned to the current tree node. The Nodes property can hold a collection of other Node objects. Each of the tree node in the collection has a Nodes property that can contain its own NodeCollection. Nesting of tree nodes can make it difficult to navigate a tree structure. The FullPath property makes it easier to determine your location in a tree. + + + + + Gets whether there is at least one child node that has its Visible property set to true. + + + + + Gets the parent tree node of the current tree node. If the tree node is at the root level, the Parent property returns a null reference (Nothing in Visual Basic). + + + + + Gets the previous sibling tree node. The PrevNode is the previous sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets the previous visible tree node. The PrevVisibleNode can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevVisibleNode property returns a null reference (Nothing in Visual Basic). + + + + + Gets or sets the object that contains data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the Binding index in CurrencyManager list if node is bound. You should not change this value directly since + it is used internally by the control for data binding scenarios. + + + + + Gets or sets the object that contains additional data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + This property has same function as Tag property and provides you with additional separate storage of data. + + + + + Gets or sets the object that contains additional data about the tree node. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + This property has same function as Tag property and provides you with additional separate storage of data. + + + + + Gets or sets the format that is applied to the value of Text property for display purposes (applies to first cell in a node, i.e. Cells[0]). See "Formatting Overview" in MSDN + for description on available format strings. For example you can specify "C" to format text as currency, or "D" to format text as decimal number etc. + + + + + + Gets or sets the text displayed in the tree node. + + + + + Gets or sets the control hosted inside of the first node cell. + + + When control is hosted inside of the cell, cell size is determined by the + size of the control hosted inside of it. The cell will not display its text but it will display any image assigned + or check box when control is hosted inside of it. The Style settings like Margin + and Padding will still apply. + + + + + Gets or sets the item hosted inside of the first cell. Only items that do not generate + popups are supported. Note that cell can only host either HostedItem or HostedControl but not both. + + + + + Gets the parent tree control that the tree node is assigned to. + + + + + Gets or sets the layout of the cells inside the node. Default value is Horizontal layout which + means that cell are positioned horizontally next to each other. + + + + + Gets or sets the cell alignment when CellLayout=Vertical. Default value is center which means that cells are center aligned. + + + + + Gets or sets the layout of the cell parts like check box, image and text. Layout can be horizontal (default) + where parts of the cell are positioned next to each other horizontally, or vertical where + parts of the cell are positioned on top of each other vertically. + Alignment of the each part is controlled by alignment properties. This property affects only the first cell inside of the node. + Use Cell.Layout property to change the part layout on each cell contained by node. + + + + + Gets/Sets informational text (tooltip) for the cell. + + + + + Gets the collection of all Cells assigned to this node. There should be always at least one cell in a node which is default cell. Default + collection contains a single cell. + + + + + Gets or sets whether column header for child nodes if defined is visible. Default value is true. + + + + + Gets whether node has child nodes columns defined. + + + + + Get collection of child node columns. + + + + Gets or sets the style of the cells when node is expanded. + + Reference to the style assigned to the node/cell or null value indicating that + default style setting from tree control is applied. Default value is null. + + + When node is expanded the style specified here will be used on all cells + associated with this node instead of the + Cell.StyleNormal. That way you can give + different appearance to your node's cells when node is expanded. + When property is set to null value the style setting from parent tree + controls is used. NodeStyleExpanded on + AdvTree control is a root style for a cell. + + + + + Gets or sets the expanded style name used by node. This member is provided for internal use only. To set or get the style use StyleExpanded property instead. + + + + + Gets or sets the style used when Node is selected. Default value is NULL (VB + Nothing) + + + + + Gets or sets the selected style name used by node. This member is provided for internal use only. To set or get the style use StyleSelected property instead. + + + + + Gets or sets the style used when mouse is over the Node. Default value is NULL + (VB Nothing) + + + + + Gets or sets the mouse over style name used by node. This member is provided for internal use only. To set or get the style use StyleMouseOver property instead. + + + + + Gets or sets the node style. + + + Reference to the style assigned to the node or null value indicating that default + style setting from tree control is applied. Default value is null. + + + Style specified by this property will be used as default style for the node. + Each cell within the node can also specify it's own style. Since node contains the + cells using this style property can you for example create a border around all cell + contained by the node. + When this property is set to null value (default value) NodeStyle + property on AdvTree control is used. + + + + + Gets or sets the style name used by node. This member is provided for internal use only. To set or get the style use Style property instead. + + + + + Gets or sets the part of the node mouse is over. + + + + + Gets or sets the node horizontal offset from the position determined by the layout manager. + + + + + Gets or sets the image alignment in relation to the text displayed by cell. This property affects only first default cell inside the node. + Property with same name is available on each cell and you can use it to affect each cell individually. + + + + + Gets or sets whether node is enabled. Default value is true. Setting this value to false will set Enabled=false on all child cells. + + + + + Gets or sets the image displayed when the tree node is disabled. If image is not specified control will create + gray-scale disabled image automatically. + + + Image specified will be used as image when node is disabled. + + + + + Gets or sets the image-list index value of the disabled image. + + + + + Gets or sets the image displayed when the tree node is in the unselected state. + + + Image specified will be used as a default image for any other node state where + different image is not specified. + + + + + Gets or sets the image-list key value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the image displayed when mouse is over the tree node. + + + + + Gets or sets the image-list index value of the image that is displayed by the tree nodes when mouse is over the node. + + + + + Gets or sets the image-list key value of the image that is displayed by the tree nodes when mouse is over the node. + + + + + Gets or sets the image displayed when node is expanded. + + + + + Gets or sets the image-list index value of the image that is displayed by the tree nodes when node is expanded. + + + + + Gets or sets the image-list key value of the image that is displayed by the tree nodes when node is expanded. + + + + + Property Editor support for ImageIndex selection + + + + + Gets or sets the NodeConnector object that describes the type of the connector used for + displaying connection between current node and its parent node. + Default value is null which means that settings from AdvTree control are used. + + RootConnector Property (DevComponents.AdvTree.AdvTree) + NodesConnector Property (DevComponents.AdvTree.AdvTree) + + + + Gets or sets whether node is visible. + + + + + Gets or sets whether command button is visible. Default value is false. + Command button can be used to display for example popup menu with commands for node, + or to display the list of linked nodes. + + + + + Gets or sets internal value that indicates that node is on "path" of the selected node. + + + + + + Gets or sets whether node selection is visible in UI when node is selected. Default value is true. You can + set this value to false to temporary disable the display of selection for a node. + + + + + Gets or sets the additional indent for the child nodes that is added to the AdvTree.Indent value when performing child node layout. Default value i 0. + + + + + Gets or sets whether Left/Right navigation through the cells when SingleCellSelection on tree is set is enabled. Default value is true. + + + + + Gets or sets whether style background that is applied to the node is drawn across the width of the tree control instead of only + behind the node content. Default value is false. + + + + + Gets or sets the child column header height. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the default action description of the control for use by accessibility client applications. + + + + + Gets or sets the description of the control used by accessibility client applications. + + + + + Gets or sets the name of the control used by accessibility client applications. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets a value indicating whether the node is visible to accessibility applications. + + + + + Represents collection for Node objects. + + + + + Sets the node collection belongs to. + + Node that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new object to the collection and provides information about the source of the command + + Node to add + Source action + + + + + Adds an array of objects to the collection. + + Array of Node objects. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + Action that is causing the event + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Removes specified object from the collection and provides information about source of the command + + Node to remove + Source action + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Node array. + + Array to copy to. + + + + Sorts the elements in the entire collection using the IComparable implementation of each element. + + + + + Sorts the elements in the entire collection using the specified comparer. + + The IComparer implementation to use when comparing elements.-or- null to use the IComparable implementation of each element. + + + + Sorts the elements in a range of elements in collection using the specified comparer. + + + + + + + + Finds the tree nodes with specified key, optionally searching sub-nodes. + + The name of the tree node to search for. + true to search child nodes of tree nodes; otherwise, false. + An array of Node objects whose Name property matches the specified key. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + Column/Cell index to use for sorting. + + + + Gets or sets the Column/Cell index that is used for sorting. + + + + + Reverse sort nodes. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + Column/Cell index to use for sorting. + + + + Sort by flat node index. + + + + + Creates new instance of NodeComparer class. You can use NodeComparer to sort the nodes by specific column/cell by calling + NodeCollection.Sort method and pass new instance of NodeComparer class. + + + + + Represents node connector. Node connector is the line that is drawn to indicate connection between child and parent node. + + + + + Default Constructor. + + + + + Creates new instance of the object with specified parameters. + + Connector line width. + Connector type. + + + + Returns true if editor should serialize LineColor property. + + + + + Occurs when appearance of the connector has changed as result of changed settings on the connector. + + + + + Gets or sets the connector line width. + + + + + Gets or sets the color of the connector line. + + + + + Gets or sets the type of the connector. + + + See eNodeConnectorType enum for list of + available connectors. + + eNodeConnectorType Enumeration + + + + Gets or sets the DashStyle for the connector line. Default value is DashStyle.Dot. + + + + + Represents node operations. + + + + + Returns full path to the given node. + + Node to return path to. + Full path to the node. + + + + Gets the last child tree node. The LastNode is the last child Node in the NodeCollection stored in the Nodes property of the current tree node. If the Node has no child tree node, the LastNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Last node if found or null if there is no last node. + + + + Returns last rendered node on screen. + + Tree control. + Last rendered node or null + + + + Returns first rendered node on screen. + + Tree control. + Last rendered node or null + + + + Gets first visible node. + + Reference to tree. + Last visible node found or null + + + + Gets last visible node in tree control. + + Reference to tree. + Last visible node found or null + + + + Gets last visible top-level node in tree control. + + Reference to tree. + Last visible node found or null + + + + Gets the next sibling tree node. The NextNode is the next sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no next tree node, the NextNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Returns next visible sibling tree node. + + Reference node + Node object or null if next visible node cannot be found + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the next visible tree node. The NextVisibleNode can be a child, sibling, or a tree node from another branch. If there is no next tree node, the NextVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets a value indicating whether the tree node is visible. Node is considered to be visible when it's Visible property is set to true and path to the node is available i.e. all parent nodes are expanded. + + + + + + + Returns whether node is displayed on the screen and visible to the user. When node is outside of the viewable area this property will return false. It will also return false if node is not visible. + + + + + + + Gets the zero based index of position of the tree node in the tree node collection. -1 is returned if node is not added to the nodes collection. + + Reference node. + Zero based index or -1 if node is not in collection. + + + + Gets the previous sibling tree node. The PrevNode is the previous sibling Node in the NodeCollection stored in the Nodes property of the tree node's parent Node. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the previous visible tree node. The PrevVisibleNode can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevVisibleNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Gets the previous tree node. The Previous Node can be a child, sibling, or a tree node from another branch. If there is no previous tree node, the PrevNode property returns a null reference (Nothing in Visual Basic). + + Reference node. + Node object or null if node cannot be found. + + + + Returns true if node passed is considered root node for display purposes. + + Reference to the tree control. + Node to test. + true if node is root node for display purposes otherwise false. + + + + Ensures that the cell is visible, expanding nodes and scrolling the control as necessary. + + Cell to be made visible. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + + + + Returns number of visible child nodes for given node. + + Reference node. + Number of visible child nodes. + + + + Returns true if node has at least single visible child node. + + Reference node. + True if at least single child node is visible otherwise false. + + + + Retrieves the tree node that is at the specified location. + + The Node at the specified point, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Point to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + Tree control to find node at. + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + Tree control to find node at. + The X position to evaluate and retrieve the node from. + The Y position to evaluate and retrieve the node from. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + Enumerates rendered nodes only. + + + + Retrieves the tree node that is at the specified vertical location. + + The TreeNode at the specified location, in tree view coordinates. + + You can pass the MouseEventArgs.X and MouseEventArgs.Y coordinates of the + MouseDown event as the x and y parameters. + + The Y position to evaluate and retrieve the node from. + Tree control to find node at. + Enumerates rendered nodes only. + + + + Gets the count of visible child nodes (Visible=true) for given node. + + Reference to Node object. + Number of visible nodes. + + + + Gets the first visible child node or returns null if node cannot be found. + + Reference to Node object. + First visible node or null if node cannot be found. + + + + Gets the last visible child node or returns null if node cannot be found. + + Reference to Node object. + Last visible node or null if node cannot be found. + + + + Gets whether any node from array is child node of parent on any level. + + Reference to parent node. + Reference to child nodes. + + + + + Gets whether node is child node of parent on any level. + + Reference to parent node. + Reference to child node. + + + + + Returns true if child node is child of any parent node at any level. + + Parent nodes array + Child node + true if child otherwise false + + + + Finds the node based on the Node.Name property. + + Reference to a tree control. + Reference to a node with given name or null if node cannot be found. + + + + Finds the node based on the Node.DataKey property. + + Reference to a tree control. + Reference to a node with given key or null if node cannot be found. + + + + Finds the node based on the Node.BindingIndex property. + + Reference to a tree control. + Index to look for + + + + Returns next visible cell in node. + + Reference to a node + The index at which to start search. + Reference to cell or null if there are no visible cells + + + + Returns previous visible cell in node. + + Reference to a node + The index at which to start search. + Reference to cell or null if there are no visible cells + + + + Returns the zero based flat index of the node. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Reference to parent tree control. + Reference to the node to return index for. + Zero based node index or -1 if index cannot be determined. + + + + Returns node based on the flat index. Flat index is the index of the node as if tree structure + has been flattened into the list. + + Parent tree control. + Index to return node for. + Reference to a node or null if node at specified index cannot be found. + + + + Finds the first node that starts with the specified text. Node.Text property is searched. + + Parent tree control. + Partial text to look for + Reference node to start searching from + Gets or sets whether search ignores the letter case + Reference to a node or null if no node is found. + + + + Returned as information about the node or its column header at given coordinates. + + + + + Defines options for EnsureVisible method which brings node into the view. + + + + + Scrolls the tree so node is displayed at the bottom of the tree, if possible. + + + + + Scrolls the tree so node is displayed in the middle of the tree, if possible. + + + + + Scrolls the tree so node is displayed at the top of the tree, if possible. + + + + + Class that provides predefined styles for the nodes. Styles are defined as static memeber of the class + + + + + Returns Apple element style + + + + + Returns Blue element style + + + + + Returns BlueLight element style + + + + + Returns BlueNight element style + + + + + Returns BlueMist element style + + + + + Returns Cyan element style + + + + + Returns Green element style + + + + + Returns Lemon element style + + + + + Returns Magenta element style + + + + + Returns Orange element style + + + + + Returns OrangeLight element style + + + + + Returns Purple element style + + + + + Returns PurpleMist element style + + + + + Returns Red element style + + + + + Returns Silver element style + + + + + Returns SilverMist element style + + + + + Returns Tan element style + + + + + Returns Teal element style + + + + + Returns Yellow element style + + + + + Returns Gray element style + + + + + Indicates predefined element style. + + + + + Represents the selected nodes collection. + + + + + Initializes a new instance of the SelectedNodesCollection class. + + + + + Adds new object to the collection and provides information about the source of the command + + Node to add + Source action + + + + + Adds an array of objects to the collection. + + Array of Node objects. + + + + Represents the text box for editing cell's text. + + + + + Gets or sets whether the editing is in word-wrap mode. + + + + + Gets or sets whether control prevents Beep sound when Enter key is pressed. + + + + + Summary description for TreeAreaInfo. + + + + + Reference to parent node in which child bounds the coordinates are. Can be null if no parent node contains given coordinates. + + + + + Node which contains specified coordinates. Can be null if no node contains coordinates. + + + + + Previous reference node for given coordinates. If coordinates fall between two nodes this will indicate previous node or null. + + + + + Next reference node for given coordinates. If coordinates fall between two nodes this will indicate next node or null. + + + + + Gets or sets the parent node drag node will be added to. When null the drag node is being added as top-level node. + + + + + Gets or sets the insert index of drag node into the parent's node Nodes collection. + + + + + Initializes a new instance of the NodeDragInfo class. + + + + + Initializes a new instance of the NodeDragInfo class. + + + + + + + Provides data for AdvTree Cell events that can be canceled. + + + + + Provides data for AdvTree Cell events. + + + + + Default constructor for event data. + + Type of the action event is raised for. + Cell that event is raised for. + + + + Indicates the type of the action performed on a cell. + + + + + Indicates the cell that action is performed on. + + + + + Default constructor for event data. + + Type of the action event is raised for. + Cell that event is raised for. + + + + Indicates that event action should be canceled. + + + + + Provides data for AdvTree.BeforeCheck event. + + + + + Initializes a new instance of the AdvTreeCellBeforeCheckEventArgs class. + + + + + + Represents event arguments for BeforeNodeDrop and AfterNodeDrop events + + + + + Provides data for AdvTree Node events that can be cancelled. + + + + + Provides data for AdvTree Node events that can be cancelled. + + + + + Provides data for AdvTree Node events. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates the type of the action performed on a node. + + + + + Indicates the node that action is performed on. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates that event action should be canceled. + + + + + Default constructor. + + Default action + Default node. + + + + Indicates the array of nodes that action is performed on. + + + + + Returns reference to the old parent node. + + + + + Reference to the new parent node if event is not cancelled. + + + + + Gets or sets whether drag node is being copied instead of moved. + + + + + Gets or sets the new insert position inside of NewParentNode.Nodes collection for the node being dragged. If InsertPosition is -1 + the ParentNode refers to the current mouse over node and drag & drop node will be added as child node to it. + + + + + Defines the data for NodeDragFeedback event. + + + + + Gets or sets whether this drop location is accepted. Default value is true. You can set this to false to disable drop at this location. + + + + + Gets or sets the parent node for the node that is being dragged. This can be null/nothing value to indicate a root top-level node that + is in AdvTree.Nodes collection. + + + + + Gets or sets the new insert position inside of ParentNode.Nodes collection for the node being dragged. If InsertPosition is -1 + the ParentNode refers to the current mouse over node and drag & drop node will be added as child node to it. + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + Gets reference to the node being dragged. + + + + + Gets or sets the drop effect for the drag-drop operation. + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Initializes a new instance of the TreeDragFeedbackEventArgs class. + + + + + + + Gets reference to the node being dragged. + + + + + Represents event arguments for NodeCollection based events, like BeforeNodeInsert, AfterNodeInsert etc. + + + + + Creates new instance of the class. + + Source action + Affected node + Parent of the node if any + + + + Indicates parent node of the affected node. For example if event handled is BeforeNodeInsert parent of the Node is has + not been set yet so this property provides information on the node that will become parent. If this property returns null + then node is being added or removed from the main AdvTree.Nodes collection. + + + + + Represents event arguments for node mouse based events. + + + + + Gets node affected by mouse action. + + + + + Gets which mouse button was pressed. + + + + + Gets the number of times the mouse button was pressed and released. + + + + + Gets a signed count of the number of detents the mouse wheel has rotated. A detent is one notch of the mouse wheel. + + + + + Gets the x-coordinate of the mouse. + + + + + Gets the y-coordinate of the mouse. + + + + + Provides means for AdvTree serialization. + + + + + Saves Nodes to specified file. + + AdvTree to save + Target file name + + + + Saves Nodes to stream. + + AdvTree to save + Stream to save nodes to. + + + + Saves Nodes to TextWriter + + AdvTree to save + TextWriter to write nodes to. + + + + Saves nodes to XmlWriter. + + AdvTree to save + XmlWriter to write nodes to + + + + + Saves AdvTree to an existing XmlDocument. New node AdvTree is created in document and Nodes are serialized into it. + + AdvTree to serialize + XmlDocument instance. + + + + Serializes AdvTree object to XmlElement object. + + Instance of AdvTree to serialize. + XmlElement to serialize to. + + + + Serializes Node and all child nodes to XmlElement object. + + Node to serialize. + Provides serialization context. + + + + Load AdvTree Nodes from file. + + Reference to AdvTree to populate + File name. + + + + Load AdvTree Nodes from stream. + + Reference to AdvTree to populate + Reference to stream + + + + Load AdvTree Nodes from reader. + + Reference to AdvTree to populate + Reference to reader. + + + + Load AdvTree Nodes from reader. + + Reference to AdvTree to populate + Reference to reader. + + + + Load AdvTree from XmlDocument that was created by Save method. + + Tree Control to load + XmlDocument to load control from + + + + Load nodes from XmlElement. + + Reference to AdvTree to be populated. + XmlElement that tree was serialized to. + + + + Load single node and it's child nodes if any. + + New instance of node that is populated with loaded data. + Provides deserialization context. + + + + Provides context information for serialization. + + + + + Gets or sets reference to context parent XmlElement when serializing or actual Node element when deserializing. + + + + + Gets or sets whether SerializeNode event handler has been defined and whether event should be fired. + + + + + Gets or sets whether DeserializeNode event handler has been defined and whether event should be fired. + + + + + Provides access to serializer. + + + + + Represents class for static tree utilities. + + + + + Initializes control with default settings for connectors and nodes. + + Control to initialize. + + + + Initializes control with default settings for connectors and nodes. + + Control to initialize. + Factory to use to create new instances of objects. + + + + Creates new style and adds it to styles collection + + Tree to assign style to + Style factory + + + + + + + + Returns reference to a node that is hosting given control. + + Reference to the AdvTree control instance + Control instance to look for + Reference to a node hosting control or null if node could not be found + + + + Represents internal component factory with design-time support. + + + + + Creates new instance of the class. + + Reference to DesignerHost to use for creation of new components. + + + + Creates new instance of the class. + + + + + Creates component and returns reference to the new instance. + + Type that identifies component to create. + New instance of the component. + + + + Represents class that holds padding information for user interface elements. + + + + + Gets or sets padding on left side. Default value is 0 + + + + + Gets or sets padding on right side. Default value is 0 + + + + + Gets or sets padding on top side. Default value is 0 + + + + + Gets or sets padding on bottom side. Default value is 0 + + + + + Creates new instance of the class and initializes it. + + Left padding + Right padding + Top padding + Bottom padding + + + + Gets amount of horizontal padding (Left+Right) + + + + + Gets amount of vertical padding (Top+Bottom) + + + + + Gets whether Padding is empty. + + + + + Analog clock control. + + + + + Resets the property to default value. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockControl class + + + + + Releases all resources used by the class. + + + + + Renders the clock's center cap. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's glass overlay. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's hands. + + Graphics object used for rendering. + Bounding rectangle. + True if this is the rending pass after the cap has been rendered. + + + + Renders the clock's numeric hour indicators. + + Graphics object used for rendering. + Bounding rectangle. + + + + Renders the clock's tick hour/minute indicators. + + Graphics object used for rendering. + Bounding rectangle. + + + + Called when TimeZone property has changed. + + Old property value + New property value + + + + Default minimum size. Defaults to 100, 100. + + + + + Gets or sets whether anti-aliasing is used when rendering the control. Default value is true. + + + + + Gets or sets the state for automatic mode. When true the clock will auto redraw once a second and display the current date/time. Default value is false. + + + + + Gets or sets clock style for this control. + + + + + Gets or sets the clock style data elements for this control. + + + + + Gets or sets a the indicator style the clock control. Default value is Ticks. + + + + + Gets or sets whether the time can be changed by moving the clock hands. Default value is false. + + + + + Gets or sets a value indicating whether to display the glass overlay on the clock control. Default value is true. + + + + + Gets or sets a value indicating whether to display the second hand on the clock control. Default value is true. + + + + + Occurs while user is dragging the mouse in order to change time. + + + + + Occurs when Value i.e. time clock is displaying has changed. + + + + + Gets or sets the current date/time value for this control. + + + + + Gets or sets the time-zone string identifier that is used to display the time when AutomaticMode=true and clock is displaying current time. + + + + + Enumeration containing the available hour/minute indicators. + + + + + Control will use ticks for hour/minute indicators. + + + + + Control will use numbers for hour indicators. + + + + + Enumeration containing the available mouse edit states. + + + + + Control is not currently in an edit state. + + + + + Control is currently in an hour edit state. + + + + + Control is currently in an minute edit state. + + + + + Control is currently in an second edit state. + + + + + Provides event arguments for TimeValueChanging event. + + + + + Gets the current time represented by the control. + + + + + Initializes a new instance of the TimeValueChangingEventArgs class. + + + + + + Defines delegate for TimeValueChanging event. + + Source of event. + Event arguments + + + + Data storage class for clock hand visual style. + + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockHand class. + + + + + Initializes a new instance of the ClockHand class. + + The hand style for this item. + The length of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle + The width of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. + + + + Indicates whether the specified point is contained within the bounds of this hand. + + The bounding rectangle of the parent clock control. + The clockwise angle for this clock hand in degrees from the 12 o'clock position. + A Point that represents the point to test. + + + + + Generates a scaled and rotated graphics path based on the given style, rectangle and angle. + + The bounding rectangle of the parent clock control. + The clockwise angle for this clock hand in degrees from the 12 o'clock position. + + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets a value indicating whether the hand is drawn over the cap. + + + + + Gets or sets the hand color data for this hand. + + + + + Gets or sets the hand style for this clock hand. Default value is Style1. + + + + + Gets or sets the length of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. Default value is 1.0. + + + + + Gets or sets the width of this clock hand as a percentage value ranging from 0.0 to 1.0, with 1.0 being half the width/height of the bounding rectangle. Default value is 0.1. + + + + + Occurs when property value has changed. + + + + + Enumeration containing the available hand styles. + + + + + Style 1. + + + + + Style 2. + + + + + Style 3. + + + + + Style 4. + + + + + Data storage class for clock visual styles. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Resets the property to default value. + + + + + Initializes a new instance of the ClockStyle class. + + + + + Initializes a new instance of the ClockStyle class. + + Predefined style from the PredefinedStyles enum. + + + + Initializes a new instance of the ClockStyle class. + + Predefined style from the PredefinedStyles enum. + + + + Releases all resources used by the class. + + + + + Loads a predefined style + + The predefined style to load. + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the PredefinedStyles value for this style. + + + + + Gets or sets the clock shape value for this style. + + + + + Gets or sets the bezel color data for this style. + + + + + Gets or sets the width of clock bezel as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the face color data for this style. + + + + + Gets or sets the face background image for this style. + + + + + Gets or sets the hour hand style for this style. + + + + + Gets or sets the minute hand style for this style. + + + + + Gets or sets the second hand style for this style. + + + + + Gets or sets the center cap color data for this style. + + + + + Gets or sets the center cap diameter as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the face number color for this style. + + + + + Gets or sets the center cap color data for this style. + + + + + Gets or sets the large tick color data for this style. + + + + + Gets or sets the large tick length as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the large tick width as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the small tick color data for this style. + + + + + Gets or sets the small tick length as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the small tick width as a percentage value ranging from 0.0 to 1.0. + + + + + Gets or sets the overlay glass angle, in degrees for this style. + + + + + Occurs when property value has changed. + + + + + Gets the parent of the style. + + + + + Enumeration containing the predefined clock styles. + + + + + Style 1. Default style, + + + + + Style 2. + + + + + No predefined style. + + + + + Enumeration containing the predefined clock shapes. + + + + + Round clock shape. + + + + + Data storage and utility class for defining gradient colors. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The gradient angle. + + + + Creates new instance of the object. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Loads data into the class, called by constructors. + + The first color for this entry. + The second color for this entry. + The border color for this entry. + The border width for this entry. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Creates Pen object using the BorderColor and BorderWidth properties. + + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The angle used for the gradients, allowing an override of BrushAngle + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The center point of the gradient as a percentage value typically ranging from 0.0 to 1.0. + + + + Creates a brush of the type specified by BrushType. + + The graphics path used to construct the brush. + The center point of the gradient as a percentage value typically ranging from 0.0 to 1.0. + The angle used for the gradients, allowing an override of BrushAngle + + + + Creates SolidBrushObject using Color1. + + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + + + + Creates a PathGradientBrush object. + + The graphics path used to construct the brush. + The center point of the gradient. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + The focus for the SigmaBellShape. + + + + Creates a LinearGradientBrush object. + + The graphics path used to construct the brush. + The gradient angle. + The focus for the SigmaBellShape. + The scale for the SigmaBellShape. + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the border color for this item. Default value is white. + + + + + Gets or sets the border width for this item. Default value is 0. + + + + + Gets or sets the brush angle for this item. Only applies to Linear and Reflected brush types. Default value is 0. + + + + + Gets or sets the brush SigmaBellShape focus for this item. Only applies to Reflected brush types. Default value is 0.5. + + + + + Gets or sets the brush SigmaBellShape scale for this item. Only applies to Reflected brush types. Default value is 0.5. + + + + + Gets or sets the brush type for this item. Default value is Solid. + + + + + Gets or sets the first color for this item. Default value is white. + + + + + Gets or sets the second color for this item. Default value is white. + + + + + Occurs when property value has changed. + + + + + Enumeration containing predefined brush types for the ColorData class. + + + + + Solid brush. + + + + + Linear gradient brush. + + + + + Centered path gradient brush. + + + + + Reflected linear gradient brush. + + + + + Math helper class + + + + + Converts radians to degrees. + + Value to be converted in radians. + Converted value in degrees. + + + + Converts degrees to radians. + + Value to be converted in degrees. + Converted value in radians. + + + + Raises AnimationCompleted event. + + Provides event arguments. + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Stops animation if one is currently running. + + + + + Sets the method which is called each time value on target object property is set. This method may execute the visual updates on animation client. + + Method to call + + + + Occurs after animation has completed. + + + + + Gets or sets whether animation is auto-disposed once its completed. Default value is false. + + + + + Gets whether animation run is complete. + + + + + Gets the animation duration in milliseconds. + + + + + Gets the animation easing function. + + + + + Gets or sets the number of fixed steps animation will perform from star to finish instead of using the easing function in time. + Stepped animation executes specified number of steps always with Duration specifying delays between each step. + + + + + Initializes a new instance of the AnimationRequest class. + + Target object for animation. + Target property name for animation. + From value. + To value. + + + + Initializes a new instance of the AnimationRequest class. + + Target object for animation. + Target property name for animation. + From value. + To value. + + + + Target object for animation. + + + + + Animation from value. + + + + + Animation to value. + + + + + Specifies the animation easing function + + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Initializes a new instance of the Animation class. + + Target object for animation + Target property name for animation + + + + Runs all animations from Animations list. + + + + + Returns whether Storyline is disposed. + + + + + Gets the list of animations to run using this storyline. + + + + + Gets or sets number of times storyline is repeated. Default value is 0 which indicates that storyline is run only once meaning not repeated. + + + + + Gets or sets whether storyline is auto-disposed when finished. + + + + + Clean up any resources being used. + + + + + Returns the reference to DockContainerItem tab if any under specified coordinates. + + X - client mouse coordinate + Y - client mouse coordinate + Reference to DockContainerItem whose tab is at specified coordinates or null if there is no tab at given coordinates + + + + Sets bars position on the auto-hide panel. + + Bar for which position should be changed. + New indexed position of the bar. + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the timeout in milliseconds for auto hide/show action. + When timeout has elapsed and mouse has left the bar the bar will be automatically hidden. + If mouse is hovering over the collapsed bar and timeout has elapsed the bar will be displayed. + + + + + Gets or sets whether bars on auto-hide panel are displayed when mouse hovers over the tab. + + + + + Gets or sets whether bars that have focus are collapsed automatically or not. + + + + + Gets or sets the style of auto-hide panel. + + + + + Gets or sets the ColorScheme object used by this panel. Default value is null which means that ColorScheme is + automatically created as specified by Style property. Note that if your DotNetBarManager has UseGlobalColorScheme set to true + ColorScheme from DotNetBarManager will be used. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class. + + + + + Indicates the Balloon tip position. + + + + + Tip is on the top. + + + + + Tip is on the left side. + + + + + Tip is on the right side. + + + + + Tip is on the bottom. + + + + + Indicates the style of the balloon. + + + + + Indicates type of Alert animation performed when alert is displayed. + + + + + No animation take place when alert is displayed. + + + + + Alert is animated from bottom to top. (Default) + + + + + Alert is animated from top to bottom. + + + + + Alert is animated from left to right. + + + + + Alert is animated from right to left. + + + + + Delegate for custom paint event handler. + + + + + Summary description for Balloon. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Auto resize balloon to the content. Balloon width is calculated so image and caption text can fit in single line. + + + + + Recalculates layout of the balloon. + + + + + Displays balloon using control to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain control. + + Control used for balloon positioning. + + + + Displays balloon using control to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain control. + + Control used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Displays balloon using rectangle to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain screen region. + + Rectangle in screen coordinates used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Displays balloon using item to automatically calculate balloon location. Method is usually used display balloon that is showing information for the certain item. + + Item used for balloon positioning. + Indicates whether balloon receives input focus. + + + + Display balloon. + + Indicates whether balloon receives input focus. + + + + Displays balloon. + + + + + Called when balloon is hidden. + + + + + Hides balloon. + + + + + Occurs when background is redrawn. + + + + + Occurs when caption image is redrawn. + + + + + Occurs when caption text is redrawn. + + + + + Occurs when text is redrawn. + + + + + Occurs when close button is clicked. + + + + + Occurs when TipPosition property has changed. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the target gradient background color. + + + + + Gets or sets gradient fill angle. + + + + + Specifies the transparency of background image. + + + + + Specifies background image position when container is larger than image. + + + + + Gets or sets the border color.. + + + + + Specifies balloon style. + + + + + Gets or sets whether the Close button is displayed. + + + + + Gets or sets the animation type used to display Alert type balloon. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after balloon closes automatically. + + + + + Gets or sets the custom image for Close Button. + + + + + Gets or sets the custom image for Close Button when mouse is over the button. + + + + + Gets or sets the custom image for Close Button when button is pressed. + + + + + Gets or sets the Caption image. + + + + + Gets or sets the Caption icon. Icon is used to provide support for alpha-blended images in caption. + + + + + Gets or sets the Caption font. + + + + + Gets or sets text displayed in caption. + + + + + Gets or sets color of caption text. + + + + + Gets or set position of the balloon tip. + + + + + Gets or sets tip distance from the edge of the balloon. + + + + + Returns length of the tip. + + + + + Gets/Sets whether Balloon is visible. + + + + + Represents a balloon style pop-up window that displays a brief description of a control's purpose when the mouse hovers over the control or when controls receives input focus. + + + + + Initializes a new instance of the BalloonTip class. + + + + + Clean up any resources being used. + + + + + Retrieves the Balloon Caption text associated with the specified control. + + + + + Associates Balloon Caption text with the specified control. + + The Control to associate the Balloon Caption text with. + The Balloon Caption text to display on the Balloon. + + + + Retrieves the Balloon text associated with the specified control. + + + + + Associates Balloon text with the specified control. + + The Control to associate the Balloon text with. + The Balloon text to display on the Balloon. + + + + Removes all Balloon texts currently associated with the BalloonTip control. + + + + + Removes specific Balloon texts currently associated with the BalloonTip control. + + Control that has Balloon texts associated. + + + + Shows Balloon for specific control. Control must have Balloon already assigned to it. + + Control that has Balloon already assigned. + + + + Closes Balloon control if visible. + + + + + Occurs before balloon is displayed. + + + + + Occurs before balloon is closed and allows to cancel the action. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets a value indicating whether the BalloonTip is currently active. + true if the BalloonTip is currently active; otherwise, false. The default is true. + + + + + Returns reference to the control that triggered balloon. + + + + + Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + + + Gets or sets a value indicating whether Balloon receives input focus when displayed. + Default value is false. + + + + + Gets or sets the time (in milliseconds) that passes before the BalloonTip appears. + + + + + Gets or sets a value indicating whether a Balloon window is displayed even when its parent form is not active. Default value is false. + + + + + Gets or sets the internal Balloon control that is used to display Balloon. + This property will have valid value only during time Balloon is actually + displayed on the screen. Value will also be valid during BalloonDisplaying event. + You can use this property to further customize Balloon control before it is + displayed to the user. You can also set it to your own instance of the Balloon + control (or the control that is inheriting it) for ultimate customization options. + Note that new instance of Balloon control is created each time Balloon needs to be displayed. + Once Balloon is closed control is disposed. + + + + + Specifies balloon style. + + + + + Gets or sets the animation type used to display Alert type balloon. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after balloon closes automatically. + + + + + Gets or sets whether Balloon is shown after control receives input focus. Default value is false. When set to true Balloon will not be displayed on mouse hover. + + + + + Gets or sets whether the Balloon Close button is displayed. + + + + + Gets or sets default balloon width. Usually the width of the balloon is calculated based on the width of the caption text. If caption text is not set then this value will be used as default width of the balloon. + + + + + Gets or sets the Balloon Caption image. + + + + + Gets or sets the Balloon Caption icon. Icon is used to provide support for alpha-blended images in caption. + + + + + Represents bar control. + + + + + Interface used for docking support. + + + + + Returns Minimum docked size of the control. + + + + + Returns Preferrred size of the docked control. + + + + + Sets the dock line for the control. Used internaly by dock manager. + + New Dock line. + + + + Indicated whether control can be docked on top dock site. + + + + + Indicated whether control can be docked on bottom dock site. + + + + + Indicated whether control can be docked on left dock site. + + + + + Indicated whether control can be docked on right dock site. + + + + + Indicates whether control can be docked as document i.e. middle (fill) dock site. + + + + + Indicates whether control can be docked as tab to another bar. + + + + + Indicated whether control can be stretched to fill dock site. + + + + + Holds the left position (dock offset) of the control. + + + + + Specifies the dock line for the control. + + + + + Specifies current dock orientation. + + + + + Gets whether control is docked. + + + + + Returns the dock site of the control. + + + + + Gets or sets the control dock side. + + + + + Gets or sets whether bar is locked to prevent docking below it. + + + + + Interface implemented by target Bar interested in access to designer. + + + + + Gets or sets the BarBaseControlDesigner instance. + + + + + Desribes interface that provides custom serialization support for items. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Raises BarStateChanged event. + + Provides event arguments. + + + + Initializes a new instance of the Bar class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Initializes a new instance of the Control class. + + Bar Caption + + + + Releases the focus from the bar and selects the control that had focus before bar was selected. If control that had focus could not be determined focus will stay on the bar. + This method is used by internal DotNetBar implementation and you should not use it. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises the PreRender event. + + Provides the event arguments + + + + Raises the PostRender event. + + Provides the event arguments + + + + Drawns bar grab handle if one specified. + + Context information. + + + + Paints bar side bar. + + Reference to graphics object. + + + + Recalculates the layout of the Bar, resizes the Bar if necessary and repaints it. + + + + + Recalculates the layout of the Bar and repaints it. This will not change the size of the Bar it will only force the recalculation of the size for each contained item and it will repaint the bar. To ensure that Bar is resized if necessary as well call RecalcLayout method. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Method is called by DotNetBarManager when bar is being moved and Escape key is pressed. + + + + + Called when IsMaximized property has changed. + + Old property value + New property value + + + + Closes the DockContainerItem with event source set to Code. + + DockContainerItem to close. + + + + Closes the DockContainerItem. + + DockContainerItem to close. + Source of the event. + + + + Raises the ItemClick event. + + Item that was clicked. + Event arguments. + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Saves the Bar definition to file. + + Definition file name. + + + + Loads the Bar definition from file. + + Definition file name. + + + + Saves the Bar layout to file. + + Definition file name. + + + + Loads the Bar definition from file. + + Definition file name. + + + + Sets the client size of the bar excluding caption. This method is useful when setting the size of the bars with layout type DockContainer. + + Width of bar in pixels. + Height of bar in pixels. + + + + Sets the client size of the bar excluding caption. This method is useful when setting the size of the bars with layout type DockContainer. + + New bar size + + + + Returns true if Font property should be serialized by Windows Forms designer. + + + + + Designer method to reset the property to its default value. + + + + + Resets the ColorScheme property to its default value. + + + + + Called when CanMaximizeFloating property has changed. + + Old property value + New property value + + + + Makes the Bar display by setting the visible property to true. + + + + + Hides the Bar. + + + + + Returns whether Size property should be serialized. + + + + + Returns the first child item with specified name regardless of it's hierarchy. + + Item name. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This member is not implemented and should not be used. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns AutoHidePanel that bar is on if in auto-hide state otherwise returns null. + + AutoHidePanel object or null if bar is not in auto-hide state. + + + + Raises BeforeAutoHideDisplayed event. + + + + + + Raises BeforeAutoHideHidden event. + + + + + + Destroys tooltip window. + + + + + Shows tooltip for this item. + + + + + Re-docks the floating bar to its previous docking position. + + + + + Invokes CaptionButtonClick event. + + + + + Displays or hides the automatic caption button popup menu. + + + + + Called when DockTabStripHeight property has changed. + + Old property value + New property value + + + + Returns the Minimum Size for specified orientation. + + Orientation to return minimum size for. + + + + + Returns the preferred size of the Bar when docked. + + Orientation to return preferred size for. + + + + + Sets the dock line but it does not forces the Bar to change position. The position will be changed on next layout request or when dock site needs to recalculate the layout of the bat. Used internally only. + + + + + ISupportInitialize.BeginInit implementation. + + + + + ISupportInitialize.EndInit implementation. + + + + + Returns Minimum docked size of the control. + + + + + Returns Preferrred size of the docked control. + + + + + Sets the dock line for the control. Used internaly by dock manager. + + New Dock line. + + + + Occurs after bar state has changed, like selected dock tab has changed, bar has closed, bar has been docked or undocked etc. + + + + + Occurs when Item is clicked. + + + + + Occurs after Bar is docked. + + + + + Occurs after Bar is undocked. + + + + + Occurs after Bar definition is loaded. + + + + + Occurs when current Dock tab has changed. + + + + + Occurs when bar visibility has changed as a result of user action. + + + + + Occurs when bar auto hide state has changed. + + + + + Occurs when Bar is about to be closed as a result of user clicking the Close button on the bar. + + + + + Occurs when Bar in auto-hide state is about to be displayed. + + + + + Occurs when popup item is closing. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup of type container is loading. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup of type container is unloading. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs when popup item is about to open. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs just before popup window is shown. Event is fired only when Bar is used independently of DotNetBarManager. + + + + + Occurs before dock tab is displayed. + + + + + Occurs when caption button is clicked. Caption button is button displayed on bars with grab handle style task pane. + + + + + Occurs on dockable bars when end-user attempts to close the individual DockContainerItem objects using system buttons on dock tab. + Event can be canceled by setting the Cancel property of event arguments to true. This even will occur only after user presses the + X button on tab that is displaying the dockable windows/documents. + + + + + Occurs on dockable bars after DockContainerItem is closed by end-user. This action cannot be cancelled. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Occurs after the TabStrip style which used on dockable windows has changed. This event gives you opportunity to + change the style of the tab strip by accessing Bar.DockTabControl.Style property. + + + + + Occurs before the bar control is rendered. This event is fired once for each part of the bar control being rendered. Check the Part property of the event arguments to identify the part being rendered. + You can cancel internal rendering by setting Cancel property. + + + + + Occurs after the bar control is rendered and allows you to render on top of the default rendering provided by the control. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Gets/Sets the owner of the Bar object. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Returns the reference to the control that last had input focus. This property should be used to + determine which control had input focus before bar gained the focus. Use it to apply + the menu command to active control. + + + + + Indicates the array of colors that when set are used to draw the border of the item. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets whether caption of floating bar will be drawn using themes. + + + + + Gets/Sets the parent item of the Bar. The parents item sub-items are displayed on the bar. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets or sets docked bar caption height. Default value is 0 which means system predefined height is used. + + + + + Gets or sets whether bar when changed over to floating state is hidden instead of shown. This property is used + internally to optimize loading of hidden floating bars. You should not use this property in your code. It is for internal DotNetBar + infrastructure use only. + + + + + Returns true if bar is being moved/dragged by user. + + + + + Gets or sets whether floating dockable window is maximized. + + + + + Specifies the bar behavior when its title is double-clicked + + + + + Returns whether popup bar should display shadow. + + + + + Returns whether popup bar shadow should be alpha-blended. + + + + + Gets/Sets the popup animation that will be applied when popup is shown. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Gets or sets whether layout changes are saved for this bar when DotNetBarManager.SaveLayout method is used to save layout for all bars. Default value is true which means that layout changes are saved. + + + + + Gets/Sets Bar layout as XML string. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Sets/Gets the side bar image structure. + + + + + Gets/Sets the caption of the Bar. This text is displayed in title of the Bar when Bar is floating. + + + + + Specifies whether Bar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Returns current Bar state. + + + + + Returns the collection of sub-items hosted on the Bar. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets/Sets whether the items that could not be displayed on the non-wrap Bar are displayed on popup menu or popup Bar. + + + + + Gets/Sets the spacing in pixels between the sub-items. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the top edge of the bar and the top of the item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the bottom edge of the bar and the bottom of the item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the left edge of the bar and the left side of the first item. + + + + + Gets/Sets the padding in pixels. This represents the spacing between the right edge of the bar and the right side of the last item. + + + + + Sets/Gets whether bar is menu bar. Menu bar will show system icons + for Maximized forms in MDI Applications. Only one bar can be a Menu bar in an application. + + + + + Gets or sets the visual type of the bar. The type specified here is used to determine the appearance of the bar. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets Caption (Title bar) background color. + + + + + Gets or sets Caption (Title bar) text color. + + + + + Gets or sets whether toolbars with appropriate style appear with rounded corners. Default value is true. + + + + + Gets/Sets the visual style of the Bar. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies to both docked and floating Bar states. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies only to Bars that are docked. + + + + + Gets/Sets whether the items will be wrapped into next line when Bar is full. Applies only to Bars that are floating. + + + + + Gets/Sets the grab handle style of the docked Bars. + + + + + Gets the grab handle client rectangle. + + + + + Returns CanClose based on the selected dock-container item. + + + + + Gets/Sets whether the Bar can be hidden by end-user. Applies to Document docked bars only. + + + + + Indicates whether Maximize button is visible on floating dock windows. + + + + + Gets/Sets border style when Bar is docked. + + + + + Gets/Sets whether floating bar is hidden when application loses focus. + + + + + Gets/Sets whether tab navigation buttons are shown for tabbed dockable bars. + + + + + Gets or sets the border line color when docked border is a single line. + + + + + Gets/Sets whether Bar is visible or not. + + + + + Returns number of items that have Visible property set to true. + + + + + Gets or sets whether bar is valid drop target for end-user bar customization. Default value is true. + When bar is used as dock container then you can use this property to prevent docking of other bars as dock tabs. + + + + + Gets or sets whether items on the Bar can be customized. + + + + + Specifies whether Bar was created by user using Customize dialog. + + + + + Gets/Sets the Bar name used to identify Bar from code. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets or sets the layout type. + + + + + Gets or sets whether all buttons are automatically resized to the largest button in collection. + + + + + Gets or sets rounded corner size for styles that use rounded corners. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets whether mouse over fade effect is enabled for buttons. Default value is false. Note that Fade effect + will work only when Office2007 style is used. For other styles this property has no effect and fade animation is not used regardless + this property setting. + + + + + Gets whether fade effect should be in use. + + + + + Gets or sets the Bar back color. + + + + + Gets or sets the Bar customize menu (Applies to the bars with LayoutType set to DockWindow only). + + + + + Indicates the auto-hide side of the parent form where bar is positioned. + + + + + Gets or sets whether tab text is always visible while bar is in auto-hide state. Default value is false which indicates that only text for the active dock tab is visible. + + + + + Indicates whether Bar is in auto-hide state. Applies to non-document dockable bars only. + + + + + Gets or sets the visibility of the bar when bar is in auto-hide state. + + + + + Indicates whether Bar can be auto hidden. + + + + + Gets or sets the global parent control used as part of Global Items feature when bar is used as context menu bar. This property is used internally by + DotNetBar and should not be set directly. + + + + + Gets or sets how long it takes to play the auto-hide animation, in milliseconds. Maximum value is 2000, 0 disables animation. + + + + + Occurs before the bar in auto-hide state is displayed on popup and allows you to cancel display by setting Cancel=true on event arguments. + + + + + Occurs before the bar in auto-hide state is hidden and allows you to cancel display by setting Cancel=true on event arguments. + + + + + Gets whether tooltip is visible or not. + + + + + Indicates whether dock tabs are visible when bar is acting as dock-container and it needs to display tabs to represents multiple DockContainerItem objects hosted by the bar. Default value is true. + + + + + Gets or sets height of the docked bar tab strip which displays docked tabs. + + + + + Returns the reference to internal TabStrip control used to display contained DockContainerItems. + + + + + Gets or sets the selected DockContainerItem if bar represents dockable window. + + + + + Gets or sets the tab (DockContainerItem) index for Bars with LayoutType set to eLayoutType.DockContainer. Index corresponds to the index of the DockContainerItem in Bar.Items collection. + + + + + Indicates Bar background image. + + + + + Gets or sets whether caption button menu for bars with grab handle task pane is automatically created. + Caption menu when automatically created will display the list of all items from Items collection + and it will maintain only one item from the list as visible item. + To create custom caption menu that is displayed when user clicks the caption button handle CaptionButtonClick event. + + + + + Gets or sets whether caption (text) of the bars with dock container layout is automatically set to the + selected dock container item text. + + + + + Specifies whether Bar can be undocked. Does not apply to stand alone bars. + + + + + Specifes whether end-user can tear-off (deattach) the tabs on dockable window. + + + + + Specifes whether end-user can reorder the tabs on dockable window. + + + + + Gets or sets whether bar or DockContainerItem that is torn-off this bar can be docked + as tab to another bar. Default value is true which indicates that bar can be docked as tab to another bar. + + + + + Gets or sets whether dock bar can be moved by dragging its caption using the mouse. + + + + + Specifies whether Bar can be docked on Top dock site or not. Does not apply to stand alone bars. + + + + + Specifies whether Bar can be docked on Bottom dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Left dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Right dock site or not. Does not apply to stand alone bars. + + + + + Specifies whether Bar can be docked as document. Default value is false. See DotNetBarManager.EnableDocumentDocking for more details. + + + + + Specifies whether Bar will stretch to always fill the space in dock site. Applies to the dockable bars only. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Gets/Sets the distance from the far left/top side of the docking site or suggests the order of the docked bar. Upon serialization this property + will contain actual left/top position of the bar. You can use it to re-order the bars docked on the same line. Property value is relative to the other + bars docked on the same line when it is used to change the order. For example setting DockOffset value to 10 will place the bar just after the last bar on the + same line that has DockOffset value less than 10. If there is no bar with DockOffset value less than 10 the bar will be placed in first position. + + + + + Gets/Sets the dock line. + + + + + Gets or sets the dock tab alignment. + + + + + Gets or sets whether selected dock tab is closed when Bar caption close button is pressed. Default value is false which indicates that whole bar will be hidden when bars close button is pressed. + + + + + Gets or sets whether close button is displayed on each dock tab that allows closing of the tab. Default value is false. + + + + + Gets or sets whether tab that shows all dock containers on the bar is visible all the time. By default + tab is hidden when there is only one item displayed. + + + + + Gets or sets whether bar is locked to prevent docking below it. Applies to undockable bars only. + + + + + Gets/Sets the orientation of the Bar. + + + + + Returns whether Bar is docked or not. + + + + + Returns the Bars dock site. + + + + + Gets/Sets the dock side for the Bar. + + + + + Gets or sets the inital floating location. This location will be used when DockSide is set to None. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Gets or sets whether control is selected in designer. + + + + + Gets or sets whether accelerator letters for menu or toolbar commands are underlined regardless of + current Windows settings. Accelerator keys allow easy access to menu commands by using + Alt + choosen key (letter). Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Indicates whether mnemonic keys, accelerator keys, which are set through item Text property used ampersand character are processed by control. + + + + + Specifes whether Bar can be docked on Top dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Bottom dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Left dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked on Right dock site or not. Does not apply to stand alone bars. + + + + + Specifes whether Bar can be docked as document. Default value is false. See DotNetBarManager.EnableDocumentDocking for more details. + + + + + Indicated whether control can be stretched to fill dock site. + + + + + Holds the left position (dock offset) of the control. + + + + + Specifies the dock line for the control. + + + + + Specifies current dock orientation. + + + + + Gets whether control is docked. + + + + + Returns the dock site of the control. + + + + + Gets or sets the control dock side. + + + + + Gets or sets whether bar is locked to prevent docking below it. + + + + + Defines delegate for the PreRender and PostRender Bar control events. + + + + + Represents event arguments for PreRender and PostRender Bar control event. + + + + + Gets the reference to the Bar being rendered. + + + + + Gets or sets the rectangle of the part being rendered. Certain parts of bar like the title buttons allow you to set this property to the custom size of your button. + Default value is the system size of the part being rendered. + + + + + Gets the Bar part being rendered. + + + + + When used in PreRender event allows you to cancel the default rendering by setting this property to true. + + + + + Gets the reference to the Graphics object to render the tab on. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Defines the part of the Bar control for custom rendering. + + + + + Indicates the Bar background and border. + + + + + Indicates the Bar caption. + + + + + Indicates the Bar close button displayed inside of caption. + + + + + Indicates the Bar customize button displayed inside of caption. + + + + + Indicates the Bar caption text. + + + + + Indicates the Bar grab handle. + + + + + Indicates the Bar resize handle. + + + + + Indicates the Bar auto-hide button displayed inside of caption. + + + + + Indicates the Bar caption task pane. + + + + + Indicates the Bar maximize button displayed inside of caption. + + + + + Indicates the complete bar area. This part is used for the PostRender event. + + + + + Defines delegate for BarStateChanged event. + + + + + + + Provides event arguments for ActiveDockContainerChanged event. + + + + + Gets the Bar that is changed. + + + + + Gets the type of the change that affected the bar. + + + + + Provides any optional context information about the state change. + + + + + Initializes a new instance of the BarStateChangedEventArgs class. + + + + + + + Initializes a new instance of the BarStateChangedEventArgs class. + + + + + + + + Defines bar state changes for BarStateChanged event. + + + + + Indicates that Bar selected dock tab is about to change. + + + + + Indicates that Bar selected dock tab has changed. + + + + + Indicates that bar docking has changed and bar was docked. + + + + + Indicates that bar has been undocked from dock site. + + + + + Indicates that bar dock tab has closed. + + + + + Indicates that bar in auto-hide state has been folded, i.e. returned to collapsed state. + + + + + Indicates that bar in auto-hide state has been open, shown. + + + + + Indicates that bar AutoHide property has changed meaning that bar has been either placed in auto-hide mode or taken out of auto-hide mode. + + + + + Indicates that tab has been moved within a bar tab-strip by end user. + + + + + Specifies the behavior of bar when its title is double clicked. + + + + + Double clicking bar title does not do anything. + + + + + Double clicking bar title when bar is docked will float the bar if CanUndock=true + + + + + Double clicking floating bar title will re-dock it if any of CanDock*** properties is true. + + + + + Double clicking will toggle bar state between float and dock state if all CanDock*** and CanUndock properties allow it. + + + + + Represents base control for bars. + + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Clean up any resources being used. + + + + + Applies design-time defaults to control. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Called after control has painted its content and allows painting on top of the controls content. + + Paint arguments. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Applies any layout changes and repaint the control. + + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after main application form is activated. + + + + + Occurs after main application form is deacticated. + + + + + Occurs on application wide mouse down event. + + + + + Gets or sets the form SideBar is attached to. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Specifies the background style of the Explorer Bar. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Gets accessible role. + + + + + Gets parent accessibility object. + + + + + Returns bounds of the control. + + + + + Returns current accessible state. + + + + + Summary description for BarFunctions. + + + + + Tries to invoke the RecalcLayout method on the control and return true if such method was invoked. + + Reference to the control + Indicates whether to invalidate control if no recalc layout method is found + return true if method is invoked. + + + + Creates copy of a bar to be used as new dock bar. This function is used to create new bar for tabs that are torn off the existing dock bars. + + Original base bar to base the new bar on. + New instance of a bar. Note that bar is not added to the DotNetBarManager.Bars collection and DockSide is not set. + + + + Returns if passed control is ready for painting. + + Control to test. + true if handle is valid otherwise false + + + + XML element is expected to be something like Image data Base64 encoded + + Image data + + + + + Collection of Bar objects. + + + + + Releases the resources used by the Component. + + + + + Adds an Bar to the end of Bars collection. + + The Bar to be added to the end of the Bars collection. + + + + Removes specified bar from collection. + + Bar to remove + + + + Determines whether an Bar is in the collection. + + The Bar to locate in the collection. + true if item is found in the collection; otherwise, false. + + + + Determines whether bar with given name is in collection. + + Name of the bar + True if bar is part of this collection, otherwise false. + + + + Returns the zero-based index of the Bar in the collection. + + Bar to locate. + + + + + Gets the Bar at the specified index. + + + + + Gets the Bar with the specified name. + + + + + Holds the XML element and attribute names for bar serialization. + + + + + Represents class with static functions that provide commonly used utility functions when working with + Bar objects and items hosted by Bar object. + + + + + Sets Bar visible property and remembers the auto-hide state. + + Bar to set visibility for. + true if visible otherwise false + + + + Sets the visible property of DockContainerItem and hides the bar if the given item is the last visible item on the bar. + It will also automatically display the bar if bar is not visible. + + DockContainerItem to set visibility for. + Indicates the visibility of the item + + + + Creates new instance of the bar and sets its properties so bar can be used as Document bar. + + Returns new instance of the bar. + + + + Sets the properties on a bar so it can be used as Document bar. + + Bar to set properties of. + + + + Changes the MDI Client border edge to remove 3D border or to add it. + + Reference to MDI Client object. + Indicates whether to remove border. + + + + Changes the MDI Client border edge to remove 3D border or to add it. + + Reference to MDI parent form. + Indicates whether to remove border. + + + + Disposes image reference and sets it to null. + + Reference to image to dispose. + + + + Disposes image reference and sets it to null. + + Reference to image to dispose. + + + + Invokes the method asynchronously using the WinForms Timer. + + Method to invoke. + + + + Invokes the method asynchronously using the WinForms Timer. + + Method to invoke. + Time in milliseconds after which method is invoked. + + + + Gets or sets whether Fade Animation is enabled on system level for DotNetBar items which use this. Default value is true. + + + + + Gets or sets whether StringFormat internally used by all DotNetBar controls to render text is GenericDefault. Default value is false + which indicates that GenericTypographic is used. + + + + + Gets or sets the anti-alias text rendering hint that will be used to render text on controls that have AntiAlias property set to true. + + + + + Gets or sets whether .NET Framework TextRenderer class is used for text rendering instead of Graphics.DrawString. + Default value is false. + Using TextRenderer will disable the Fade and Animation effects on controls because of issues in TextRenderer when drawing text on transparent + surfaces. + + + + + Gets or sets whether items always generate the Focus accessibility event when mouse enters the item. Default value is false which indicates + that focus event will be raised only when item is on menu bar. + + + + + Gets or sets whether Application Message Filter that is registered by popup controls + is automatically unregistered when last control is disposed. Default value is false and + in most cases should not be changed. + + + + + Get or sets the text-markup padding for text measurement when running on Japanese version of Windows. + + + + + Gets or sets whether Image and Icon resources assigned to items and controls are automatically disposed when + control or item is disposed. Default value is false. + + + + + Defines the base class for items that are used by DotNetBar. + + + + + Represents a content block interface. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets whether content block is visible. + + + + + Gets or sets the block margins. + + + + + Creates new instance of BaseItem. + + + + + Creates new instance of BaseItem and assigns item name. + + Item name. + + + + Creates new instance of BaseItem and assigns item name and item text. + + Item Name + Item Text + + + + Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Deserialize the Item from the XmlElement. + + Source XmlElement. + + + + Indicates whether SubItems collection is serialized. Default value is true. + + + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Called when item parent has changed. + + + + + Returns whether item is enabled including the parent control item is on. + + + + + + Returns whether item is enabled including the parent control item is on. + + + + + + Called when size of the item is changed externally. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Called when item Display state has changed. + + + + + Called when item owner has changed. + + + + + Raises SubItemsChanged event. + + + + + + Occurs after an item has been added to the container. This procedure is called on both item being added and the parent of the item. To distinguish between those two states check the item parameter. + + When occurring on the parent this will hold the reference to the item that has been added. When occurring on the item being added this will be null (Nothing). + + + + Occurs after an item has been removed. + + Item being removed. + + + + Occurs just before Click event is fired. + + + + + Occurs after SubItems Collection has been cleared. + + + + + Occurs before an item is removed. + + Item being removed. + + + + Occurs when IsOnCustomizeMenu property has changed. + + + + + Occurs when IsOnCustomizeDialogChanged property has changed. + + + + + Occurs when item enter or exists the design mode. + + + + + Occurs when tooltip is about to be shown or hidden. + + Specifies whether tooltip is shown or hidden. + + + + Occurs after item has received the input focus. + + Item that received the focus. + + + + Occurs after item has lost the input focus. + + Item that lost the input focus. + + + + Indicates whether the item enabled property has changed. + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Occurs when the mouse pointer enters the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer hovers the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer leaves the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Occurs when a key is pressed down while the item has focus. This is used by internal implementation only. + + + + + Processes the MouseLeave for the current mouse over item. + + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Raises the click event and provide the information about the source of the event. + + + + + + Raises the Click event with default source as Code. + + + + + Occurs when the item is double clicked. This is used by internal implementation only. + + + + + Invokes DoubleClick event. + + + + + Occurs when the item receives focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when the item has lost the focus. If overridden base implementation must be called so default processing can occur. + + + + + Sets the input focus to the item. If overridden base implementation must be called so default processing can occur. + + + + + Releases the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when item container has lost the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Occurs when item container receives the input focus. If overridden base implementation must be called so default processing can occur. + + + + + Indicates that item size has changed. It must be called by child item to let the parent know that its size + has been changed. + + + + + Return Sub Item at specified location + + + + + Gets the current expanded subitem. + + + + + + Gets the item that has input focus. + + Item that has focus or Null (Nothing) if none of the subitems have focus. + + + + Gets the owner of the item. + + DotNetBarManager that owns the item. + + + + Recalculate the size of the item. If overridden base implementation must be called so default processing can occur. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Must be overridden by class that is inheriting to provide the method to + return copy of an item. + + + + + Internal Copy implementation. + + Item to copy to. + + + + Returns copy of the item. + + Copy of the item. + + + + Forces the repaint the item. + + + + + Occurs when Expanded state changes. If overridden base implementation must be called so default processing can occur. + + + + + Raises ExpandChange event. + + Event arguments + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Releases all resurces used in this control. After calling Dispose() + object is not in valid state and cannot be recovered to the valid state. + Recreation of the object is required. + + + + + Occurs after item visual style has changed. + + + + + Occurs after text has changed. + + + + + Returns if passed control is valid. + + Control to test. + + + + + Resets Hoover timer. + + + + + Returns true if any subitem is contained on the control with a given handle. + + Container handle to test. + + + + + Occurs after Tooltip text has changed. + + + + + Sets orientation of the item but it does not cause the recalculate layout flag setting on the parent item. + + New orientation value. + + + + Destroys tooltip window. + + + + + Called when HotSubItem has changed. + + New value. + Old value. + + + + Shows tooltip for this item. + + + + + Returns the shortcut string that is displayed on tooltip. + + + + + + Collapses all sub items by setting their Expanded property to false. + + Item to collapse. + + + + Collapses all sub items by setting their Expanded property to false. Enumerates all child items as well. + + Item to collapse. + + + + Collapses whole tree for the item starting with its parent. + + Item to collapse. + + + + Returns whether item is hosted on popup menu or bar. + + Item to get information for. + + + + + Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. + + Hash code. + + + + Called when DragStartPoint property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Occurs when text markup link is clicked. + + + + + Updates data bindings for item and its sub-items in response to binding context change on parent control. + + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.Invoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An array of objects to pass as arguments to the specified method. This parameter can be null reference (Nothing in Visual Basic) if the method takes no arguments. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.Invoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Executes the specified delegate, on the thread that owns the control's underlying window handle, with the specified list of arguments. + This property calls directly the ContainerControl.BeginInvoke and is provided as shortcut convenience property only. + + A delegate to a method that takes parameters of the same number and type that are contained in the args parameter. + An Object that contains the return value from the delegate being invoked, or nullNothingnullptra null reference (Nothing in Visual Basic) if the delegate has no return value. + + + + Occurs when Item is clicked. + + + + + Occurs when Item is double-clicked. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when copy of the item is made. + + + + + Occurs when Text property of an Item has changed. + + + + + Occurs when Visible property of an Item has changed. + + + + + Occurs when Enabled property of an Item has changed. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Occurs when content of SubItems collection has changed. + + + + + Gets or sets whether item is rendered. + + + + + Gets or sets whether item is selectable at design-time. Default value is true. + + + + + Control Container (System.Windows.Forms.Control or its descendant) + + + + + Returns the Parent of the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Gets or sets Left position of this item + + + + + Gets or sets Top position of this item + + + + + Gets or sets Width of this item + + + + + Gets whether item is in right-to-left layout mode. + + + + + Gets or sets Height of this item + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item will auto expand when mouse is over the item or not. + + + + + Gets the rectangle that represents the display area of the item. + + + + + Gets or sets the size of the item. + + + + + IBlock member implementation + + + + + Specifies whether this item is visual container or not. For example + Tool Menu is not container since it drops-down its items and they are + not "visualy" contained. Also, the pop-up menus, drop-down Bars etc. are not containers. + + + + + Returns true if this item is currently displayed. This property should not be set directly since it is managed by system and container of the item. + + + + + Gets the mouse down coordinates. + + + + + Gets whether item is on context menu created using ContextMenuBar + + + + + Gets whether RaiseClick method will generate a click event give current item state. + + + + + Indicates whether RaiseClick method collapses parent popups before raising click event. Default value is true. + + + + + Gets whether item has input focus. + + + + + Indicates that item is recalculating its size. + + + + + Suspends all layout for the item including painting. Use this property carefully and only to improve performace. + + + + + Gets whether item has been disposed through Dispose method call. + + + + + Returns the collection of sub items. + + + + + Returns count of sub items in SubItems collection that have Visible property set to true. + + + + + Unique ID that indentifies the item. + + + + + Allows the user to associate custom user data with the item. + + + + + Applies new visual style to this the item and all of its sub-items. + + + + + Gets the effective item style. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Returns name of the item that can be used to identify item from the code. + + + + + Gets or sets the global name of the item that is used to synchronize the Global properties for the item across all instances with same + global name. Note that only instances that belong to the same control are synchronized. GlobalItem must be set to true to perform the synchronization. + You can find more information and list of + properties that are synchronized in help file. + + + + + Gets whether global properties should synchronized. + + + + + Gets orientation within container that is supported by this item. If item does not support certain orientation the container automatically hides it when container switches into that orientation. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets orientation inside the container. Do not change the value of this property. It is managed by system only. + + + + + Gets whether tooltip for the item is displayed. + + + + + Gets whether tooltip is visible or not. + + + + + Gets or sets the name of the bar this item originated on. This is used to remember the + originating bar when user is moving the items from bar to bar. + + + + + Gets or sets item's original position (index) if item position has changed due to the user customization. + + + + + Gets or sets flag that indicates whether item was customize by the end-user. + + + + + Gets reference to the tooltip control if tooltip is displayed for this item. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns whether item is hosted on Customize menu. + + + + + Returns whether item is hosted on Customize Dialog. + + + + + Returns whether item is hosted on menu or not. + + + + + Returns whether item is hosted on menu bar or not. + + + + + Returns whether item is hosted on bar or not. + + + + + Returns whether item is in design mode or not. + + + + + Get or sets whether item has been changed in a way that it needs its size recalculated. This is internal + property and it should not be used by your code. + + + + + Returns whether item is System item. + + + + + Indicates whether access key processing set using ampersand key in Text is enabled. When enabled, and access key is pressed, item will raise Click event. + + + + + Return Access key for the item. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Returns text representation of shortcut for this item. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets the design-marker orientation for the item. + + + + + + Specifes the mouse cursor displayed when mouse is over the item. + + + + + Indicates whether item will be Serialized. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the default action description of the control for use by accessibility client applications. + + + + + Gets or sets the description of the control used by accessibility client applications. + + + + + Gets or sets the name of the control used by accessibility client applications. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets a value indicating whether the item is visible to accessibility applications. + + + + + Gets the item state inside of the parent container. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that for ButtonItem instances if this property is set to null and command was assigned previously, Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets plain text without text-markup if text-markup is used in Text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets a value indicating whether the caller must call an invoke method when making method calls to the item because the caller is on a different thread than the one the item was created on. + This property calls directly the ContainerControl.InvokeRequired and is provided as shortcut convinience property only. + + + + + Defines item parent container states. + + + + + State is not set. + + + + + Item in on the NavigationPane in normal size. + + + + + Represents the controller which allows single BaseItem to be hosted on the control. + + + + + Initializes a new instance of the BaseItemController class. + + + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Defines class which described single binding. + + + + + Raises Format event. + + Provides event arguments. + + + + Initializes a new instance of the BindingDef class. + + + + + Initializes a new instance of the BindingDef class. + + + + + + + Updates specified item PropertyName with the data from data object property specified by DataMember. + + Item to set PropertyName on. + Data to retrieve DataMember value from. + + + + Updates specified item PropertyName with the data from data object property specified by DataMember. + + CurrencyManager to use + Item to set PropertyName on. + Data to retrieve DataMember value from. + + + + Called when PropertyName property has changed. + + Old property value + New property value + + + + Called when DataMember property has changed. + + Old property value + New property value + + + + Called when FormattingEnabled property has changed. + + Old property value + New property value + + + + Called when FormatString property has changed. + + Old property value + New property value + + + + Called when FormatInfo property has changed. + + Old property value + New property value + + + + Called when NullValue property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets the property name binding is attached to. + + + + + Gets the reference to BindingMemberInfo created based on DataMember. + + + + + Gets or sets the data member name which holds data that PropertyName is populated with. + + + + + Gets or sets whether type conversion and formatting is applied to the property data. + + + + + Gets or sets format specifier characters that indicate how a value is to be displayed. + For more information, see Formatting Overview: http://msdn.microsoft.com/en-us/library/26etazsy%28v=vs.71%29.aspx + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets the Object to be set as the target property when the data source contains a DBNull value. + The data source must contain DBNull for the NullValue property to be correctly applied. + If the data source type is a type such as a string or integer the value of the NullValue property will be ignored. + Also, the NullValue property is ignored if it is set to null. + + + + + Occurs when property on BindingDef object has changed. + + + + + Represents the method that will handle converting for bindings. + + + + + + + Gets the reference to the item being converted. + + + + + Get the reference to the name of the field or property on the item that needs conversion. + + + + + Represents BindingDefConverer converter. + + + + + Creates new instance of the class. + + + + + Checks whether conversion can be made to specified type. + + Context Information. + Destination type. + + + + + Converts object to specified type. + + Context information. + Culture information. + Object to convert. + Destination type. + Object converted to destination type. + + + + Represents the toolbar control with the magnifying (bubbling) buttons. + + + + + Creates new instance of the control. + + + + + Indicates whether property should be serialized. Used by the Windows Forms design-time support. + + + + + Resets the property to default value. Used by the Windows Forms design-time support. + + + + + Indicates whether property should be serialized. Used by the Windows Forms design-time support. + + + + + Resets the property to default value. Used by the Windows Forms design-time support. + + + + + Returns whether property should be serialized by Windows Forms designer. + + True if property is different than default value otherwise false. + + + + Returns whether property should be serialized by Windows Forms designer. + + True if property is different than default value otherwise false. + + + + Recalculates the layout of the control. This method should be called after all changes to the tabs, buttons are completed so + layout of the control recalculated. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Returns reference to the button at specified location + + x - coordinate + y - coordinate + Reference to the button or null if no button could be found at given coordinates. + + + + Returns reference to the button at specified location + + Location coordinates + Reference to the button or null if no button could be found at given coordinates. + + + + Returns tab at specific location. + + Coordinates to get the tab from. + Reference to the tab object or null if tab cannot be found at specified location + + + + Returns tab at specific location. + + x - coordinate + y - coordinate + Reference to the tab object or null if tab cannot be found at specified location + + + + Invokes BubbleStart event. + + + + + Invokes BubbleEnd event. + + + + + Invokes ButtonClick event on the control. + + Reference to the button that was clicked. + + + + Called after overlay window became inactive. + + + + + Stops the bubble animation effect is one is applied currently. + + + + + Internal processing of MouseMove event. + + Move move event arguments. + + + + Internal processing for MouseLeave event. + + Event arguments + + + + Called after all buttons have been removed. + + Tab from which all buttons were removed. + + + + Called after specified button has been removed. + + Tab from which button was removed. + Button that was removed. + + + + Called after new button is added to the Buttons collection. + + Tab to which button was added. + Reference to the button added. + + + + Called when Visible property of Button has changed. + + Button affected. + + + + Returns the button background rectangle for display purposes. Applies setting for the ButtonBackgroundStretch property. + + Background rectangle. + + + + Called after tab has been removed from the collection. + + Tab that was removed. + + + + Called after tab has been added to the collection. + + Newly added tab. + + + + Called after all tabs are removed from the collection. + + + + + Called after text of a tab has changed. + + Tab which text has changed. + + + + Called after Visible property of the tab has changed. + + Tab affected. + + + + Sets the tab mouse is placed over. + + Tab that mouse is currently over or null if mouse is not over any tab. + + + + Occurs when active tab is about to change. + + + + + Occurs when any of the buttons is clicked. Sender object should be casted to BubbleButton to get the button that was actually clicked. + + + + + Occurs when mouse first enters the control and bubble effect is employed to provide feedback. + + + + + Occurs when mouse leaves the control and bubble effect is ended. + + + + + Gets or sets the bubble button tooltip text color. Default value is White color. + + + + + Gets or sets the bubble button tooltip text outline color. Default value is Black color. + + + + + Gets or sets the spacing in pixels between buttons. Default value is 0. + + + + + Gets or sets whether background for the buttons is stretched to consume complete width of the control. Default value is true. + + + + + Gets the style for the background of the control. + + + + + Gets the style for the background of the buttons. + + + + + Gets the bounds of the buttons back area. + + + + + Gets the bounds of the tabs area. + + + + + Gets or sets the duration of animation that is performed when mouse enters a button for the first time or when mouse has left the control. + + + + + Gets or sets whether bubble animation is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets ImageList for images used on buttons. These images will be used as images for the buttons that are not magnified. + Use ImagesLarge to specify the magnified images for the coresponding images based on the index in this list. + + + + + Gets or sets ImageList for large-sized images used on buttons when button is magnified. + + + + + Gets or sets whether tooltips are displayed for the buttons. + + + + + Gets or sets size of the images when button is enlarged, default value is 48 by 48 pixels. Note that you should provide the + images in the same size for the buttons through the image properties on the buttons or through ImagesLarge property. + If the large images are not provided the regular button image will be automatically enlarged. + + + + + Gets or sets the normal image size for the buttons, default value is 24 by 24 pixels. This should be set to the default image size that you will use on the + buttons. If the images specified for the buttons are not of the same size as the size specified here then they will + be automatically resized. Normal size must always be smaller than the size specified by ImageSizeLarge property. + + + + + Gets or sets the font that is used to display tooltips. + + + + + Gets or sets the selected tab. + + + + + Gets the reference to the colors that are used when tab is selected. + + + + + Gets the reference to the colors that are used when mouse is over the tab. + + + + + Gets the collection of all tabs. + + + + + Gets or sets the button alignment. + + + + + Gets or sets whether tabs are visible. Default value is true. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Delegate for tab change events. + + + + + Represents the event arguments tab changing events. + + + + + Cancels the operation. + + + + + Specifies the event source. + + + + + Specifies newly selected tab. + + + + + Specifies currently selected tab. + + + + + Default Constructor. + + + + + Represents overlay class to support bubble effects on BubbleBar control. + + + + + Called just before window is shown. + + + + + Called after window is closed. + + + + + Summary description for BubbleBarGroup. + + + + + Represents interface for simple text only tab. + + + + + Returns the font used for tab text. + + Reference to font object. + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Returns true if tab is selected tab. + + + + + Returns true if mouse is over the tab. + + + + + Gets the tab alignment. + + + + + Default constructor. + + + + + Default constructor. + + Container object. + + + + Returns the font for the tab text. + + Reference to the font object. + + + + Sets the parent of the tab. + + Reference to the tab parent object or null. + + + + Called after new button is added to the Buttons collection. + + Reference to the added button. + + + + Called after specified button has been removed. + + Button that was removed. + + + + Called after all buttons have been removed. + + + + + Gets the collection of the buttons associated with the tab. + + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Returns true if tab is selected tab. + + + + + Returns true if mouse is over the tab. + + + + + Gets the tab alignment. + + + + + Returns reference to parent object or null if tab does not have parent. + + + + + Gets or sets whether tab has design-time focus. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Represents collection for BubbleBarTab objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the IBlock array. + + Array to copy to. + + + + Copies contained items to the ISimpleTab array. + + Array to copy to. + + + + Returns next visible tab from the reference tab. + + Reference tab. + Next visible tab or null if next visible tab cannot be determined. + + + + Returns previous visible tab from the reference tab. + + Reference tab. + Previous visible tab or null if Previous visible tab cannot be determined. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents a button used on BubbleBar control. + + + + + Creates new instance of button object. + + + + + Sets the display rectangle of the button. + + New display rectangle of the button. + + + + Sets the magnified display rectangle of the button. + + New magnified display rectangle. + + + + Sets whether mouse is over the button. + + True if mouse is over the button otherwise false. + + + + Raises the MouseEnter event. + + + + + Raises the MouseLeave event. + + + + + Sets whether left mouse button is pressed over this button. + + True if left mouse button is pressed otherwise false. + + + + Sets the parent collection button belongs to. + + Parent collection of the item. + + + + Returns the reference to the BubbleBar that contains this button. + + + + + + Invokes button's Click event. + + Indicates source of the event. + + + + Raises click event. + + Default event arguments. + + + + Occurs when user clicks the button. + + + + + Occurs when mouse enters the button. + + + + + Occurs when mouse leaves the button. + + + + + Gets or sets the shortcut key to expand/collapse splitter. + + + + + Gets or sets the tooltip for the button. + + + + + Gets or sets the default image used on the button. Note that for improved appearance of the buttons when enlarged + you should set the ImageIndexLarge to the large version of the image specified here. The image size should be the same size + that is specified by the image size properties on BubbleBar object. + + + + + Gets reference to the internal cached image loaded from the ImageIndex. + + + + + Gets reference to the internal cached image loaded from the ImageIndex. + + + + + Specifies the Button image. + + + + + Specifies enlarged the Button image. + + + + + Gets or sets the image index of the enlarged image for the button. Note that if large image is not specified the + default image will be enlarged which might not result in perfect image appearance. + + + + + Property for Property Editor support for ImageIndex selection. + + + + + Gets or sets a value indicating whether button is enabled. + + + + + Gets the display rectangle occupied by the button. + + + + + Gets or sets the magnified display rectangle of the button. + + + + + Gets whether mouse is over the button. + + + + + Gets whether left mouse button is pressed on the button. + + + + + Returns name of the button that can be used to identify it from the code. + + + + + Gets or sets a value indicating whether button is visible. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Gets or sets the object that contains data about the tab. Any Object derived type can be assigned to this property. If this property is being set through the Windows Forms designer, only text can be assigned. + + + + + Returns the reference to parent tab. + + + + + Gets or sets whether button has design-time focus. + + + + + Gets or sets the mouse cursor that is displayed when mouse is over the button. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Represents event arguments for Click event. + + + + + Gets the action that caused the event, event source. + + + + + Represents typed collection of BubbleButton objects. + + + + + Copies contained items to the IBlock array. + + Array to copy to. + + + + Creates new instance of the collection. + + Parent of the collection. + + + + Adds new item to the collection but it does not raise internal events. + + New item to add. + Index of newly added item. + + + + Adds new item to the collection at specified location but it does not raise internal events. + + New item to add. + Position to add item to. + + + + Clears the collection but it does not raise internal events. + + + + + Performs additional custom processes before setting a value in the CollectionBase instance. + + The zero-based index at which oldValue can be found. + The value to replace with newValue. + The new value of the element at index. + + + + Performs additional custom processes after setting a value in the CollectionBase instance. + + The zero-based index at which oldValue can be found. + The value to replace with newValue. + The new value of the element at index. + + + + Performs additional custom processes before inserting a new element into the CollectionBase instance. + + The zero-based index at which to insert value. + The new value of the element at index. + + + + Performs additional custom processes after inserting a new element into the CollectionBase instance. + + The zero-based index at which to insert value. + The new value of the element at index. + + + + Performs additional custom processes when removing an element from the CollectionBase instance. + + The zero-based index at which value can be found. + The value of the element to remove from index. + + + + Performs additional custom processes after removing an element from the CollectionBase instance. + + The zero-based index at which value can be found. + The value of the element to remove from index. + + + + Removes an item without raising internal events. + + Item to remove. + + + + Performs additional custom processes when clearing the contents of the CollectionBase instance. + + + + + Copies the collection to the ArrayList object. + + Target ArrayList. + + + + Adds new item to the collection. + + New item to add. + Index of newly added item. + + + + Adds new item to the collection at specified location. + + New item to add. + Position to insert item at. Position of -1 will append the item to the end of the collection. + Index of the newly added item. + + + + Inserts new item at the specified position. + + Position to insert item at. + Item to insert. + + + + Returns index of an item. + + Item to return index for. + Item at the specified position. + + + + Returns index of an item with given the item's name. + + Name of the item. + Index of the Item with the specified name or -1 if item is not found. + + + + Returns true if given item is contained by this collection. + + Item to test. + True if item is part of this collection otherwise false. + + + + Returns true if item with given name is part of this collection. + + Item name. + True if item is part of this collection otherwise false. + + + + Removes an item from the collection. + + Item to remove. + + + + Removes an item from collection at specified index. + + Index of the item to remove. + + + + Removes item from the collection with specified name. + + Name of the item to remove. + + + + Adds array of the items to the collection. + + Array of items to add. + + + + Copy the collection to the array. + + Array to copy collection to. + The zero-based relative index in array at which copying begins. + + + + Gets the parent of the collection. + + + + + Accesses items inside of the collection based on the index. + + + + + Accesses items inside of the collection based on the name. + + + + + Represents class for displaying BubbleButton objects on canvas. + + + + + Paints button on given canvas. + + Painting information. + + + + Represents class that holds information for BubbleButton painting. + + + + + Graphics object. + + + + + Button to paint. + + + + + Reference to BubbleBar control. + + + + + Gets or sets whether magnified version of the button is painted. + + + + + Gets or sets the button alignment inside of the bar. + + + + + Represents class for default layout of the BubbleButton objects. + + + + + Represents block layout manager responsible for sizing the content blocks. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + Content size available for the block in the given line. + + + + Performs layout finalization + + + + + + + + + Gets or sets the graphics object used by layout manager. + + + + + Creates new instance of the class. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Represents class that provides mangification for the BubbleMar control + + + + + Represents the serial content layout manager that arranges content blocks in series next to each other. + + + + + Represents interface for block layout. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Creates new instance of the class. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Occurs when X, Y position of next block is calcualted. + + + + + Occurs before new block is layed out. + + + + + Gets or sets the spacing in pixels between content blocks. Default value is 0. + + + + + Gets or sets whether content blocks are forced to fit the container bounds if they + occupy more space than it is available by container. Default value is false. + + + + + Gets or sets whether content blocks are resized to fit the container bound if they + occupy less space than it is available by container. Default value is false. + + + + + Gets or sets whether content blocks are resized (Width) to fit container bounds if they + occupy less space than the actual container width. Applies to the Vertical orientation only. Default value is false. + + + + + Gets or sets whether content blocks are resized (Height) to fit container bounds if they + occupy less space than the actual container height. Applies to the Horizontal orientation only. Default value is false. + + + + + Gets or sets the content orientation. Default value is Horizontal. + + + + + Gets or sets the content vertical alignment. Default value is Middle. + + + + + Gets or sets the block line vertical alignment. Default value is Middle. + + + + + Gets or sets the content horizontal alignment. Default value is Left. + + + + + Gets or sets whether all content blocks are resized so they have same height which is height of the tallest content block. Default value is false. + + + + + Gets or sets whether oversized blocks are resized based on the percentage reduction instead of based on equal pixel distribution. Default value is false. + + + + + Gets or sets whether content is wrapped into new line if it exceeds the width of the container. + + + + + Gets or sets whether layout is right-to-left. + + + + + Performs layout of the content block. + + Container bounds to layout content blocks in. + Content blocks to layout. + Block layout manager that resizes the content blocks. + The bounds of the content blocks within the container bounds. + + + + Gets or sets the bubble size for the mouse over item. + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex-1 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex-2 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex+1 + + + + + Gets or sets magnification factor for the item that is at the position MouseOverIndex+2 + + + + + Gets or sets the index of the item mouse is over. + + + + + Gets or sets new X coordinate of the mouse over item when in horizontal layout or Y + coordinate when in vertical layout. + + + + + Summary description for ButtonItem. + + + + + PopupItem Class can pop-up it's subitems on either the popup Bar + or menu. + + + + + Adds neccessary functions to base item so it supports images properly. + If your item implements images you should derive from this class instead of BaseItem + + + + + Create new instance of ImageItem. + + + + + Create new instance of ImageItem and assigns the item name. + + Item name. + + + + Create new instance of ImageItem and assigns the item name and text. + + Item name. + Item text. + + + + Must be called by any sub item that implements the image when image has changed + + + + + Called after image on an item has changed. + + + + + Refreshes internal image size structure. + + + + + Occurs after an item has been removed. + + Item being removed. + + + + Refreshes internal image size structure. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Provides design-time support for DotNetBar items. + + + + + Creates new instance of PopupItem. + + + + + Creates new instance of PopupItem and assigns the name to it. + + Item name + + + + Creates new instance of PopupItem and assigns the name and text to it. + + Item name. + Item text. + + + + Copies the PopupItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Displays the sub-items on popup menu. + + Popup location. + + + + Invokes PopupOpen event. + + + + + + Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + Indicates whether screen position of the menu is verified so the menu always appears on the screen. + + + + Raises PopupShowing event. + + Event arguments. + + + + Displays the sub-items on popup toolbar. + + Popup location. + + + + Displays the sub-items on popup toolbar. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays popup container. + + Popup location. + + + + Creates the popup container control which is a parent/holder control for the controls you want to display on the popup. + This method can be used if you do not wish to handle the PopupContainerLoad to add controls to the popup container. + After calling this method you can access PopupContainerControl property to add your controls to be displayed on the popup. + + Indicates whether PopupContainerLoad events are fired. + + + + Displays popup container. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Displays the sub-items on popup specified by PopupType. + + Popup location. + + + + Displays the sub-items on popup specified by PopupType. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Raises PopupClose event. + + Event arguments. + + + + Queries whether popup can be closed. + + Source of closing request. + true if popup can be closed otherwise false. + + + + Closes the currently open popup. + + + + + Raises PopupFinalized event. + + Event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Sets the SourceControl for popup menu or toolbar. + + Control that popup menu or toolbar was invoked for. + + + + Occurs when popup container is loading. Use this event to assign control to the popup container. If you want to use same control + that you added to the popup container after popup is closed you must handle the PopupContainerUnload event and remove the control + from the popup container so it is not disposed with the container. + + + + + Occurs when popup container is unloading. Use this event to save any state associated with the control that was contained by the container or + to remove the control from the container so it is not disposed with container. + + + + + Occurs when popup item is about to open. + + + + + Occurs while popup item is closing. + + + + + Occurs while popup item is closing. + + + + + Occurs after popup item has been closed. + + + + + Occurs just before popup window is shown. + + + + + Gets the size of the popup before it is displayed. + + + + + Gets or sets whether popup on-screen position is verified and popup location adjusted so it does not cross boundaries of the screen. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates side bar for pop-up window. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Gets or sets the popup offset. + + + + + Gets or sets the popup location. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets the control that is displaying the context menu. + + + + + Gets the reference to the internal host PopupContainerControl control. + + + + + Provides support for personalized menu items. + + + + + Creates new instance of ButtonItem. + + + + + Creates new instance of ButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of ButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Called when NotificationMarkText property has changed. + + Old property value + New property value + + + + Called when NotificationMarkPosition property has changed. + + Old property value + New property value + + + + Called when NotificationMarkSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when NotificationMarkOffset property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when button image has changed. + + + + + Called when container of the item has changed. + + Previous item container. + + + + Overriden. Draws the item. + + Item paint arguments. + + + + Resets ImageFixedSize property to its default value. + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Gets whether FixedSize property should be serialized. + + + + + Resets the property to default value. + + + + + Overridden. Recalculates the size of the item. + + + + + Overloaded. Called when size of the item is changed externally. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. The pulse effect + continues indefinitely until it is stopped by call to StopPulse method. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. Pulse effect + will alternate between the pulse state for the number of times specified by the pulseBeatCount parameter. + + Specifies the number of times button alternates between pulse states. 0 indicates indefinite pulse + + + + Stops the button Pulse effect. + + + + + Indicates whether the item enabled property has changed. + + + + + Provides internal implementation for ButtonItem mouse down events. + + Mouse event arguments. + + + + Occurs when the item is double clicked. This is used by internal implementation only. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Called after Checked property has changed. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Sets Checked property without firing any events or performing any built-in logic. + + + + + Fires CheckedChanged event. + + + + + Fires OptionGroupChanging event. + + + + + Occurs just before Click event is fired. + + + + + Returns the shortcut string that is displayed on tooltip. + + + + + + Gets or sets the current font for the button. + + + + + Occurs when Checked property has changed. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Indicates whether images assigned to the button are disposed when button is disposed. Default value is false. + + + + + Specifies maximum of 2 character text displayed inside of the notification mark on top of the button. + + + + + Indicates the position of the notification marker within the bounds of the button. + + + + + Specifies diameter of notification mark. When set to 0 system default value is used. + + + + + Gets or sets background color of the notification mark. + + + + + Specifies the offset for the notification mark relative to its position. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.RibbonTabItemColors collection. See documentation for Office2007ColorTable.RibbonTabItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + Applies to items with Office 2007 style only. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.Default + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Specifies the Button image which is used when button background is black or very dark. Image is used when button text is white. This is provided for Metro style applications. + + + + + Specifies the Button image. + + + + + Specifies the small Button image used by Ribbon control when small image variant is needed because of the automatic button resizing or + because the button is on the Quick Access Toolbar. + + + + + Gets or sets the image size that is used by the button when multiple ImageList controls are used as source for button image. + By default ImageList assigned to Images property of parent control is used. Using this property you can selection ImagesMedium or + ImagesLarge ImageList to be used as source for image for this button. + + + + + Gets or sets whether button uses the ImageSmall as source of the image displayed on the button if ImageSmall is set to valid image. Default value is false. + + + + + Specifies the index of the image for the button if ImageList is used. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the index of the image for the button when mouse is over the item when ImageList is used. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Specifies the index of the image for the button when mouse left button is pressed and ImageList is used. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Specifies the index of the image for the button when items Enabled property is set to false and ImageList is used. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets or sets the fixed size of the button. Both width and height must be set to value greater than 0 in order for button to use fixed size. + Setting both width and height to 0 (default value) indicates that button will be sized based on content. + + + + + Gets whether fade effect is enabled. + + + + + Gets whether Pulse function is enabled. + + + + + Gets whether the button is currently pulsing, alternating slowly between the mouse over and default state. + + + + + Gets or sets whether pulse effect started with StartPulse method stops automatically when mouse moves over the button. Default value is true. + + + + + Gets or sets the pulse speed. The value must be greater than 0 and less than 128. Higher values indicate faster pulse. Default value is 12. + + + + + Gets or sets whether button auto-expands on mouse hover when button is used as menu-item and displayed on menu. Default value is true. + + + + + Indicates whether button should popup when clicked automatically. + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or set the alternative shortcut text. + + + + + Returns shortcut text if any that needs to be displayed. + + + + + Gets or sets the image bounds. + + + + + Gets or sets sub items bounds. + + + + + Gets or sets text bounds. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Gets or sets the text color of the button. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is underlined when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is bold when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is bold. + + + + + Gets or sets whether the font used to draw the item text is italic. + + + + + Gets or sets whether the font used to draw the item text is underlined. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Returns the collection of sub items. + + + + + Gets or sets whether button appears as split button. Split button appearance divides button into two parts. Image which raises the click event + when clicked and text and expand sign which shows button sub items on popup menu when clicked. Button must have both text and image visible (ButtonStyle property) in order to appear as a full split button. + Use AutoExpandOnClick=true if you want to make complete surface of the button display popup when clicked. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the amount of padding added horizontally to the button images when not on menus. Default value is 10 pixels. + + + + + Gets or sets the amount of padding added vertically to the button images when not on menus. Default value is 6 pixels. + + + + + Gets or sets an shape descriptor for the button which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Indicates whether mouse is over the item. + + + + + Indicates whether mouse is over the expand part of the button. + + + + + Indicates whether mouse is pressed. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets whether the button text is automatically wrapped over multiple lines when button is used on RibbonBar control. Default value is true. + + + + + Gets or sets whether image animation is enabled + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Represents accessible interface for ButtonItem object. + + + + + Represents accessible interface for ButtonItem object. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Button that will become checked if operation is not canceled. + + + + + Button that is currently checked and which will be unchecked if operation is not canceled. + + + + + Default constructor. + + + + + Stores all information for side bar images that are used by Bar or Popup menu. + + + + + Gets or sets the side bar image. + + + + + Gets or sets the side bar back color. + + + + + Gets or sets the gradient staring color. + + + + + Gets or sets the gradient ending color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the gradient staring color. + + + + + Gets or sets whether image is stretched so it fills the side bar or not if image is smaller than current side bar size. + + + + + Summary description for ButtonItemLayout. + + + + + Arranges the button inner parts when button size has changed externally. + + Button to arrange inner parts for. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. The pulse effect + continues indefinitely until it is stopped by call to StopPulse method. + + + + + Starts the button pulse effect which alternates slowly between the mouse over and the default state. Pulse effect + will alternate between the pulse state for the number of times specified by the pulseBeatCount parameter. + + Specifies the number of times button alternates between pulse states. 0 indicates indefinite pulse + + + + Stops the button Pulse effect. + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Displays the sub-items on popup specified by PopupType. + + Popup location. + + + + Displays the sub-items on popup specified by PopupType. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Called when Command property value changes. + + + + + Occurs when Checked property has changed. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets whether the button is currently pulsing, alternating slowly between the mouse over and default state. + + + + + Gets or sets whether pulse effect started with StartPulse method stops automatically when mouse moves over the button. Default value is true. + + + + + Gets or sets the pulse speed. The value must be greater than 0 and less than 128. Higher values indicate faster pulse. Default value is 12. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets or sets the text alignment. Applies only when button text is not composed using text markup. Default value is center. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets or sets whether button is focused when pressed using left mouse button. Default value is true. + + + + + Gets whether command is executed when button is clicked. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Specifies the Button image which is used when button background is black or very dark. Image is used when button text is white. This is provided for Metro style applications. + + + + + Specifies the Button image. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Returns the collection of sub items. + + + + + Gets or sets whether button appears as split button. Split button appearance divides button into two parts. Image which raises the click event + when clicked and text and expand sign which shows button sub items on popup menu when clicked. Button must have both text and image visible (ButtonStyle property) in order to appear as a full split button. + + + + + Gets or sets whether button displays the expand part that indicates that button has popup. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Indicates the way button is rendering the mouse over state. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or sets the text associated with this button. + + + + + Gets/Sets informational text (tooltip) for the button. + + + + + Gets or sets whether mnemonic character assigned to button is processed only if Alt key is pressed. Default value is false which indicate that Alt key is not required. + + + + + + Indicates whether the button will auto-expand when clicked. + When button contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets an shape descriptor for the button which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.ButtonItemColors collection. See documentation for Office2007ColorTable.ButtonItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + Applies to items with Office 2007 style only. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.Default + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the mode by which the Button automatically resizes itself. + + + + + Gets or sets the amount of spacing between button image if specified and text. + + + + + Gets or sets the text color. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Gets or sets a value indicating whether the button is expanded (displays drop-down) or not. + + + + + Gets or sets the collection of shortcut keys associated with the button. When shortcut key is pressed button Click event is raised. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Returns current accessible state. + + + + + Summary description for ThemedButtonItemPainter. + + + + + Represents the Check-box item. Use a CheckBox to give the user an option, such as true/false or yes/no. + + + + + Creates new instance of CheckBoxItem. + + + + + Creates new instance of CheckBoxItem and assigns the name to it. + + Item name. + + + + Creates new instance of CheckBoxItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the CheckBoxItem specific properties to new instance of the item. + + New CheckBoxItem instance. + + + + Copies the CheckBoxItem specific properties to new instance of the item. + + New CheckBoxItem instance. + + + + Raises the click event and provide the information about the source of the event. + + + + + + Sets the Checked property of the item, raises appropriate events and provides the information about the source of the change. + + New value for Checked property + Source of the change. + + + + Called when Command property value changes. + + + + + Sets the Checked property of the item, raises appropriate events and provides the information about the source of the change. + + New value for Checked property + Source of the change. + + + + Raises CheckState changed event. + + Event arguments. + + + + Raises CheckedBindableChanged changed event. + + Event arguments. + + + + Called after Checked property has changed. + + + + + Raises the CheckedChanging event. + + + + + Raises the CheckedChanged event. + + + + + Occurs before Checked property is changed and allows you to cancel the change. + + + + + Occurs after Checked property is changed. Action cannot be cancelled. + + + + + Occurs when CheckState property has changed. + + + + + Occurs when CheckedBindable property has changed. + + + + + Gets or set whether the Checked values and the item appearance are automatically changed when the Check-Box is clicked. Default value is true. + + + + + Gets or sets the size of the check or radio sign. Default value is 13x13. Minimum value is 6x6. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets the check box position relative to the text. Default value is Left. + + + + + Gets whether mouse is over the item. + + + + + Gets whether left mouse button is pressed on the item. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Check-box that will become checked if operation is not cancelled. + + + + + Check-box that is currently checked and which will be unchecked if operation is not cancelled. This property will have only valid values for eCheckBoxStyle.RadioButton style CheckBoxItems. + + + + + Indicates the action that has caused the event. + + + + + Default constructor. + + + + + Represents painter for CheckBoxItem. + + + + + Paints CheckBoxItem. + + Provides arguments for the operation. + + + + Gets or sets color table used by renderer. + + + + + Represents circular progress indicator. + + + + + Creates new instance of circular progress indicator. + + + + + Creates new instance of circular progress indicator and assigns the name to it. + + Item name. + + + + Creates new instance of circular progress indicator and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Called when property on CircularProgressBar changes. + + Property Change Arguments + + + + Starts the progress bar loop for endless type progress bar. Progress bar will continue to run until Stop() method is called. + + + + + Stops the progress bar loop for endless type progress bar. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when ProgressTextFormat property has changed. + + Old property value + New property value + + + + Gets or sets the circular progress bar type. + + + + + Gets or sets the maximum value of the progress bar. + + + + + Gets or sets the minimum value of the progress bar. + + + + + Gets or sets the color of the progress percentage text. + + + + + Gets or sets whether text that displays the progress bar completion percentage text is visible. Default value is false. + + + + + Gets or sets the text displayed on top of the circular progress bar. + + + + + Gets or sets the current value of the progress bar. + + + + + Occurs when Value property has changed. + + + + + Gets or sets whether endless type progress bar is running. + + + + + Gets or sets the color of the color of progress indicator. + + + + + Gets or sets circular progress indicator diameter in pixels. + + + + + Gets or sets the text position in relation to the circular progress indicator. + + + + + Gets or sets whether text/label displayed next to the item is visible. + + + + + Gets or sets the suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed. + + + + + Gets or sets text padding. + + + + + Gets or sets the color of the text label. + + + + + Gets or sets the color of the pie progress bar dark border. + + + + + Gets or sets the color of the pie progress bar light border. + + + + + Gets or sets the color of the spoke progress bar dark border. + + + + + Gets or sets the color of the spoke progress bar light border. + + + + + Gets or sets format string for progress value. + + + + + Gets or sets the animation speed for endless running progress. Lower number means faster running. + + + + + Defines available circular progress bar types. + + + + + Line spokes progress bar. + + + + + Dot type/FireFox progress bar. + + + + + Donut type progress bar. + + + + + Spoke type progress bar. + + + + + Pie type progress bar. + + + + + Summary description for ColorFunctions. + + + + + Provides popup color picker. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the reference to the IWindowsFormsEditorService interface used for Windows Forms design time support. + + + + + Gets or sets the ColorScheme object for Scheme colors. + + + + + Gets or sets currently selected color. + + + + + Gets the selected color color scheme name if color scheme color is selected otherwise it returns an empty string. + + + + + Returns true if color selection was cancelled. + + + + + Represents the color comb control that allows color choice from pre-defined color comb palette. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Required designer variable. + + + + + Creates new instance of the control. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises MouseOverColorChanged event. + + Provides event arguments. + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets the color mouse is currently over. If mouse is not over any color in comb Color.Empty is returned. + + + + + Gets or sets the selected color. When setting the color note that color must be already present in the color comb otherwise the selected color will be reset to Color.Empty. + + + + + Occurs when MouseOverColor property has changed. + + + + + Represents the color selection control. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets the selected color. + + + + + Represents color item used for color picker control. Color item can only be used as part of the color picker DotNetBar feature. + + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + + Gets or sets the color represented by this item. Default value is Color.Black. + + + + + Gets or sets the size of the item when displayed. Default value is 13x13 pixels. + + + + + Gets or sets border drawn around the item. Default value is eColorItemBorder.All which indicates that border is drawn + on all four sides. + + + + + Gets whether mouse is over the item. + + + + + Represents the color picker drop down button. + + + + + Creates new instance of ButtonItem. + + + + + Creates new instance of ButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of ButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the ColorPreview event. + + Provides the data for the event. + + + + Invokes the ColorPreview event. + + Provides data for the event. + + + + Indicates whether SubItems collection is serialized. ColorPickerDropDown does not serialize the sub items. + + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Displays the Colors dialog that allows user to choose the color or create a custom color. If new color is chosen the + SelectedColorChanged event is raised. + + + + + Raises the BeforeColorDialog event. + + + + + + Update the selected color image if the SelectedColorImageRectangle has been set and button is using Image property to display the image. + + + + + Gets collection of ColorItem[] arrays that represent themed colors. Each ColorItem[] array is used to represent single line of theme colors. + + Collection of ColorItem[] arrays. + + + + Returns an array that represents the standard colors. Usually instances of ColorItem are included. + + ArrayList containing objects that describe standard colors. + + + + Invokes SelectedColorChanged event. + + + + + Occurs when color is chosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when mouse is moving over the colors presented by the color picker. You can use it to preview the color before it is selected. + + + + + Occurs before color picker dialog is shown. Data property of the event arguments will hold the reference to the Form about to be shown. + + + + + Gets or sets the last selected color from either the drop-down or Custom Color dialog box. Default value is + Color.Empty. You can use SelectedColorChanged event to be notified when this property changes. + + + + + Gets or sets whether theme colors are displayed on drop-down. Default value is true. + + + + + Gets or sets whether standard colors are displayed on drop-down. Default value is true. + + + + + Gets or sets more colors menu item is visible which allows user to open Custom Colors dialog box. Default value is true. + + + + + Gets or sets the rectangle in Image coordinates where selected color will be painted. Setting this property will + have an effect only if Image property is used to set the image. Default value is an empty rectangle which indicates + that selected color will not be painted on the image. + + + + + Gets whether internal representation of color items on popup has been initialized. + + + + + Gets or sets the Owner Window that will be used as owner for the colors modal dialog when displayed. + + + + + Gets or sets the array of ColorItem objects that will be used as theme colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets or sets the array of ColorItem objects that will be used as standard colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Indicates whether button should popup when clicked automatically. + + + + + Represents custom color blend selection control. + + + + + Raises SelectedColorChanged event. + + Provides event arguments. + + + + Occurs when SelectedColor has changed. + + + + + Gets or sets the color selected by the control. Color that is assigned must be visible on the face of the control otherwise the SelectedColor will be set to Color.Empty + + + + + Represents the form in Office style with custom borders and caption. + + + + + Represents the form class that should be used instead of standard Form when form caption is provided by Ribbon control + and custom form look and feel in style of Office 2007 is required. This form does not have standard form caption. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Called when EnableCustomStyle property has changed. + + + + + Gets whether custom form styling is enabled. + + true if custom styling is enabled otherwise false. + + + + Gets the array of LinearGradientColorTable objects that describe the border colors. The colors with index 0 is used as the outer most + border. + + Array of LinearGradientColorTable + + + + Returns form custom region. + + New instance of the custom region. + + + + Gets the form path for the given input bounds. + + Represent the form bounds. + + + + + Paints the non-client area of the form. + + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Invalidates non client area of the form. + + Indicates whether complete form is invalidated. + + + + Redraws the non-client area of the form. + + + + + Called when BackgroundImageUnderCaption property has changed. + + Old property value + New property value + + + + Called when RenderFormIcon property has changed. + + Old property value + New property value + + + + Called when RenderFormText property has changed. + + Old property value + New property value + + + + Gets or sets whether Windows Vista Glass support is enabled when form is running on Windows Vista with Glass support. + Default value is true. + + + + + Gets or sets the RibbonControl that is hosted by this form. This property is for internal use only. + + + + + Gets whether Vista glass effect extension over the ribbon control caption is enabled. + + + + + Gets or sets the form's window state. + + + + + Gets or sets whether custom style for the form is enabled. Default value is true. + + + + + Gets or sets top left rounded corner size. Default value is 6. + + + + + Gets or sets top right rounded corner size. Default value is 6. + + + + + + Gets or sets bottom left rounded corner size. Default value is 6. + + + + + Gets or sets bottom right rounded corner size. Default value is 6. + + + + + Gets whether client border is painted in OnPaint method. + + + + + Gets whether ribbon control caption is painted + + + + + Gets or sets whether 3D MDI border is removed. Default value is true. + + + + + Gets whether form uses custom region + + + + + Gets whether Windows Glass effect is rendered on the form when supported by Operating System and enabled using EnableGlass. + + + + + Returns whether form is sizable given form state (maximized, minimized, normal) and FormBorderStyle setting. + + + + + Gets or sets whether non-client area of the form rendering is enabled. + + + + + Indicates whether form BackgroundImage is pulled up and rendered under form caption as well. + + + + + Indicates whether form icon is drawn. This is different from ShowIcon property which when set to false also removes the form icon from task-bar. Setting this property to false will keep form icon in task-bar but will hide on the form. + + + + + Indicates whether form Text is rendered in form caption. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Gets whether custom form styling is enabled. + + true if custom styling is enabled otherwise false. + + + + Invalidates non client area of the form. + + Indicates whether complete form is invalidated. + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Gets the form path for the give input bounds. + + Represents the form bounds. + + + + + Updates the form title bar text. Usually calling this method is not necessary but under certain conditions when form is used as MDI parent form + calling it to update combined text is necessary. + + + + + Called when CloseEnabled property value has changed. + + + + + Paints the non-client area of the form. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + + Occurs when text-markup link in TitleText is clicked. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets whether Vista glass effect extension over the ribbon control caption is enabled. + + + + + Gets or sets the icon for the form. + + + + + Gets or sets a value indicating whether the form enables auto scrolling. + + + + + Gets or sets the Office 2007 Renderer global Color Table. Setting this property will affect all controls in application that are using Office 2007 global renderer. + + + + + Gets whether client border is painted in OnPaint method. + + + + + Gets whether ribbon control caption is painted + + + + + Gets or sets whether anti-alias smoothing is used while painting form caption. Default value is true. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets the tooltip for the form system icon. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the MetroForm class. + + + + + Gets the array of LinearGradientColorTable objects that describe the border colors. The colors with index 0 is used as the outer most + border. + + Array of LinearGradientColorTable + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Gets the form path for the given input bounds. + + Represent the form bounds. + + + + + Called when HelpButtonText property has changed. + + Old property value + New property value + + + + Called when SettingsButtonText property has changed. + + Old property value + New property value + + + + Raises SettingsButtonClick event. + + Provides event arguments. + + + + Raises HelpButtonClick event. + + Provides event arguments. + + + + This property is not applicable for MetroForm. + + + + + + + Gets or sets the HELP button text. + + + + + Gets or sets the SETTINGS button text. + + + + + Occurs when SETTINGS button, if displayed, is clicked. + + + + + Occurs when HELP button, if displayed, is clicked. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Color scheme used by items on the Bar. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + VS.NET 2005 Blue Color Scheme + + + + + Converts hex string to Color type. + + Hexadecimal color representation. + Reference to Color object. + + + + Converts hex string to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts hex string to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Specifies Dock Site BackColor. + + + + + Specifies Dock Site BackColor2. + + + + + Specifies the gradient angle. + + + + + Specifies the menu bar background color. + + + + + Specifies the target menu bar gradient background color. + + + + + Specifies the gradient angle. + + + + + Specifies the background color for the bar when floating or when docked. + + + + + Specifies the target gradient background color for the bar when floating or when docked. + + + + + Specifies the gradient angle. + + + + + Specifies the background color for the bar Caption. + + + + + Specifies the target gradient background color for the bar Caption. + + + + + Specifies the gradient angle. + + + + + Specifies the color for text of the Caption. + + + + + Specifies the Bar Caption inactive (lost focus) background color. + + + + + Specifies the target background gradient Bar Caption inactive (lost focus) color. + + + + + Specifies the gradient angle. + + + + + Specifies the Bar inactive (lost focus) text color. + + + + + Specifies the background color for popup bars. + + + + + Specifies the border color for popup bars. + + + + + Specifies the border color for docked bars. + + + + + Specifies the color of the grab handle stripes. + + + + + Specifies the border color for floating bars. + + + + + Specifies the item background color. + + + + + Specifies the target item background gradient color. + + + + + Specifies the gradient angle. + + + + + Specifies the item text color. + + + + + Specifies the background color for the item that is disabled. + + + + + Specifies the text color for the item that is disabled. + + + + + Specifies the background color when mouse is over the item. + + + + + Specifies the target gradient background color when mouse is over the item. + + + + + Specifies the gradient angle. + + + + + Specifies the text color when mouse is over the item. + + + + + Specifies the border color when mouse is over the item. + + + + + Specifies the background color when item is pressed. + + + + + Specifies the target gradient background color when item is pressed. + + + + + Specifies the gradient angle. + + + + + Specifies the text color when item is pressed. + + + + + Specifies the border color when item is pressed. + + + + + Specifies the color for the item group separator. + + + + + Specifies the color for the item group separator shade. + + + + + Specifies the background color for the shadow of expanded item. + + + + + Specifies the background color for the expanded item. + + + + + Specifies the target gradient background color for the expanded item. + + + + + Specifies the gradient angle. + + + + + Specifies the text color for the expanded item. + + + + + Specifies the border color for the expanded item. + + + + + Specifies the background color for the checked item. + + + + + Specifies the target gradient background color for the checked item. + + + + + Specifies the gradient angle. + + + + + Specifies the border color for the checked item. + + + + + Specifies the text color for the checked item. + + + + + Specifies the customize item background color. Applies to Office2003 style only. + + + + + Specifies the customize item target gradient background color. Applies to Office2003 style only. + + + + + Specifies the customize item background color gradient angle. Applies to Office2003 style only. + + + + + Specifies the customize item text color. Applies to Office2003 style only. + + + + + Specifies the color of the menu border. + + + + + Specifies the background color of the menu. + + + + + Specifies the target gradient background color of the menu. + + + + + Specifies the angle of the gradient fill for the menu background. + + + + + Specifies the background color of the menu part (left side) that is showing the images. + + + + + Specifies the target gradient background color of the menu part (left side) that is showing the images. + + + + + Specifies the angle of the gradient fill for the menu part (left side) that is showing the images. + + + + + Specifies the background color for the items that were not recently used. + + + + + Specifies the side bar color for the items that were not recently used. + + + + + Specifies the target gradient side bar color for the items that were not recently used. + + + + + Specifies the angle of the gradient fill for the menu part (left side) that is showing the images. + + + + + Specifies the border color for focused design-time item. + + + + + Gets or sets predefined color scheme. By default DotNetBar will automatically change and generate color scheme depending on system colors. + + + + + Specifies the background color of the panel. + + + + + Specifies the target background gradient color of the panel. + + + + + Specifies the angle of the gradient fill for the panel background. + + + + + Specifies border color of the panel. + + + + + Specifies color of the text on the panel. + + + + + Specifies the background color of the explorer bar. + + + + + Specifies the target gradient background color of the explorer bar. + + + + + Specifies the angle of the gradient fill for the explorer bar background. + + + + + Specifies the foreground color of MDI System Item buttons. + + + + + Specifies the background color of the Splitter. + + + + + Specifies the target background gradient color of the Splitter. + + + + + Specifies the angle of the gradient fill for the Splitter background. + + + + + Specifies border color of the Splitter. + + + + + Specifies color of the text on the Splitter. + + + + + Indicates auto-hide panel background image if any. + + + + + Gets or sets the color of the auto-hide panel background. + + + + + Gets or sets the color of the auto-hide panel background. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the auto-hide tab background gradient angle. + + + + + Gets or sets the color of the auto-hide tab text. + + + + + Gets or sets the color of the auto-hide tab border. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab. + + + + + Gets or sets the color of the auto-hide tab text. + + + + + Gets or sets the color of the tab border. + + + + + Specifies the type of predefined color scheme in ColorScheme object. + + + + + Default value. DotNetBar will automatically change and generate color scheme depending on system colors. + + + + + Blue Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Olive Green Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Silver Office 2003 Color Scheme. This setting specifies that this color scheme will be used regardless of system color setting on user machine. + + + + + Always use system colors to auto-generate color scheme. + + + + + Specifies a color scheme member. + + + + + Summary description for ColorSchemeEditor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Summary description for ColorSchemeVSEditor. + + + + + Represents Color type editor with support for color schemes. + + + + + Edits the value of the specified object using the editor style indicated by GetEditStyle. + + An ITypeDescriptorContext that can be used to gain additional context information. + An IServiceProvider that this editor can use to obtain services. + The object to edit. + The new value of the object. + + + + Gets the editor style used by the EditValue method. + + An ITypeDescriptorContext that can be used to gain additional context information. + A UITypeEditorEditStyle value that indicates the style of editor used by EditValue. If the UITypeEditor does not support this method, then GetEditStyle will return None. + + + + + Provides command related utility methods that register and unregister commands. + + + + + Connects the Command Source to the Command. + + Command source to connect to the command. + Reference to the command. + + + + Disconnects command source from the command. + + Reference to command source. + Reference to the command. + + + + Unregister command from all subscribers. Called when command is disposed. + + Command to unregister. + + + + Gets an array of Command Sources that are connected with the command. + + Reference to command + An array of command sources. + + + + Gets or sets whether commands use Reflection to find the property names when applying value to the unknown types. Default value is true. + Setting this value to false will increase performance if Unknown types are used but it will at same time disable the + command setting value for these types. + + + + + Gets or sets whether layout on the items of type BaseItem is automatically updated when command text or other property changes which requires layout updated. Default value is true. + + + + + Represents the bound data navigator in current DotNetBar style. + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Creates new instance of BindingNavigatorEx + + + + + Adds default items that make up the binding navigation control. + + + + + Gets or sets the reference to Add New record button. + + + + + Gets or sets the binding source for the navigator. + + + + + Gets or sets the label which represents the items count. + + + + + Indicates the format string for the label which displays the number of items bound. + + + + + Gets or sets the item which deletes current record. + + + + + Gets or sets the item which moves to first record. + + + + + Gets or sets the item which moves to last record. + + + + + Gets or sets the item which moves to next record. + + + + + Gets or sets the item which moves to previous record. + + + + + Gets or sets the text-box which shows current position. + + + + + Represents the class for the BaseItem non-popup based control host. + + + + + Creates new instance of the object. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Paints the control focus cues. + + Paint event information. + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Resets style to default value. Used by windows forms designer. + + + + + Called when visual property of the control has changed so the control can be updated. + + + + + Forces the button to perform internal layout. + + + + + Recalculates the size of the internal item. + + + + + Indicates to control that all further update operations should not result in layout and refresh of control content. + Use this method to optimize the addition of new items to the control. This method supports nested calls meaning + that multiple calls are allowed but they must be ended with appropriate number of EndUpdate calls. + IsUpdateSuspended property returns whether update is suspended. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Gets or sets the instance of BaseItem object hosted by this control. + + + + + Gets or sets whether during painting OnPaintBackground on base control is called when BackColor=Transparent. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Specifies the background style of the control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets/Sets the visual style for the control. + + + + + Gets whether control layout is suspended becouse of the call to BeginUpdate method. + + + + + Initializes a new instance of the CircularProgress class. + + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when Value property has changed. + + + + + Gets or sets the circular progress bar type. + + + + + Gets or sets the maximum value of the progress bar. + + + + + Gets or sets the minimum value of the progress bar. + + + + + Gets or sets the color of the progress percentage text. + + + + + Gets or sets whether text that displays the progress bar completion percentage text is visible. Default value is false. + + + + + Gets or sets the text displayed on top of the circular progress bar. + + + + + Gets or sets the current value of the progress bar. + + + + + Gets or sets whether endless type progress bar is running. + + + + + Gets or sets the color of the color of progress indicator. + + + + + Gets or sets the color of the pie progress bar dark border. + + + + + Gets or sets the color of the pie progress bar light border. + + + + + Gets or sets the color of the spoke progress bar dark border. + + + + + Gets or sets the color of the spoke progress bar light border. + + + + + Gets or sets format string for progress value. + + + + + Gets or sets the animation speed for endless running progress. Lower number means faster running. + + + + + Initializes a new instance of the CollapsibleSplitContainer class. + + + + + Raises BeforeNearCollapseButtonClick event. + + Provides event arguments. + + + + Raises NearCollapseButtonClick event. + + Provides event arguments. + + + + Raises BeforeFarCollapseButtonClick event. + + Provides event arguments. + + + + Raises FarCollapseButtonClick event. + + Provides event arguments. + + + + Called when ButtonPosition property has changed. + + Old property value + New property value + + + + Called when CollapseMode property has changed. + + Old property value + New property value + + + + + Occurs after near collapse button is clicked. + + + + + Occurs before far collapse button is clicked and allows you to cancel its action. + + + + + Occurs after far collapse button is clicked. + + + + + Indicates position of buttons inside container. + + + + + Specifies how panels are collapsed when collapse buttons are pressed. + + + + + Defines available positions for buttons inside CollapsibleSplitterContainer. + + + + + Buttons are positioned on left or top side depending on orientation. + + + + + Buttons are positioned in center of container. + + + + + Buttons are positioned on right or bottom side depending on orientation. + + + + + Defines collapse mode for the CollapsibleSplitContainer control. + + + + + When buttons are pressed the splitter is positioned at the PanelMinSize. + + + + + When buttons are pressed associated panel is collapsed through Panel1Collapsed or Panel2Collapsed properties. + + + + + Represents the color picker button control. + + + + + Creates new instance of the object. + + + + + Displays the Colors dialog that allows user to choose the color or create a custom color. If new color is chosen the + SelectedColorChanged event is raised. + + + + + Raises the ColorPreview event. + + Provides event data. + + + + Raises the SelectedColorChanged event. + + Provides event data. + + + + Indicates whether SubItems collection is serialized. ColorPickerDropDown does not serialize the sub items. + + + + + Gets whether property should be serialized. + + + + + Resets the property to its default value. + + + + + Invokes the ColorPreview event. + + Provides data for the event. + + + + Update the selected color image if the SelectedColorImageRectangle has been set and button is using Image property to display the image. + + + + + Occurs when color is chosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when mouse is moving over the colors presented by the color picker. You can use it to preview the color before it is selected. + + + + + Gets or sets the array of ColorItem objects that will be used as standard colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets or sets the array of ColorItem objects that will be used as theme colors instead of built-in color palette. + See: http://www.devcomponents.com/kb2/?p=79 for instructions. + + + + + Gets whether command is executed when button is clicked. + + + + + Gets or sets the Owner Window that will be used as owner for the colors modal dialog when displayed. + + + + + Gets or sets more colors menu item is visible which allows user to open Custom Colors dialog box. Default value is true. + + + + + Gets or sets the last selected color from either the drop-down or Custom Color dialog box. Default value is + Color.Empty. You can use SelectedColorChanged event to be notified when this property changes. + + + + + Gets or sets whether theme colors are displayed on drop-down. Default value is true. + + + + + Gets or sets whether standard colors are displayed on drop-down. Default value is true. + + + + + Gets or sets the rectangle in Image coordinates where selected color will be painted. Setting this property will + have an effect only if Image property is used to set the image. Default value is an empty rectangle which indicates + that selected color will not be painted on the image. + + + + + Represents enhanced Windows combo box control. + + + + + Creates new instance of ComboBoxEx. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Clean up any resources being used. + + + + + Loads all fonts available on system into the combo box. + + + + + Releases the focus from combo box. The control that last had focus will receive focus back when this method is called. + + + + + Called when DropDownColumns property has changed. + + Old property value + New property value + + + + Called when DropDownColumnsHeaders property has changed. + + Old property value + New property value + + + + Raises BeforeMultiColumnPopupOpen event. + + Provides event arguments. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises SelectionChanging event. + + Provides event arguments. + + + + Called when MultiColumnControlFont property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Occurs when drop down portion of combo box is shown or hidden. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets whether control is stand-alone control. Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the combo box background color. Note that in Office 2007 style back color of the control is automatically managed. + + + + + Gets or sets whether the BackColor value you set is used instead of the style back color automatically provided by the control. Default + value is false which indicates that BackColor property is automatically managed. Set this property to true and then set BackColor property + to make control use your custom back color. + + + + + Gets or sets value indicating whether system combo box appearance is used. Default value is false. + + + + + Gets or sets value indicating whether the combo box is draw using the Windows XP Theme manager when running on Windows XP or theme aware OS. + + + + + Disables internal drawing support for the List-box portion of Combo-box. Default value is false which means that internal drawing code is used. If + you plan to provide your own drawing for combo box items you must set this property to True. + + + + + Gets or sets whether combo box generates the audible alert when Enter key is pressed. + + + + + The ImageList control used by Combo box to draw images. + + + + + Determines the visual style applied to the combo box when shown. Default style is Office 2007. + + + + + Gets or sets whether ComboBoxEx thumb button that displays drop-down is rendered. Default value is true. + + + + + Gets or sets whether ComboBoxEx border is rendered. Default value is true. + + + + + Indicates whether ItemHeight property is set automatically based on the current font when DrawMode=OwnerDrawFixed + + + + + Gets or sets the custom color table used to render combo-box items + + + + + Gets or sets the text color for the text in combo-box when control Enabled property is set to false. + Setting this property is effective only for DropDownList ComboBox style. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that system background color is used when control is disabled. + + + + + Gets the window handle that the drop down list is bound to. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets or sets comma separated list of field names that are displayed on drop down. When set it activates ComboBoxEx multi-column drop-down mode. + DataSource must be set in order for drop-down to display data. + + + + + Indicates custom column names with each column separated by new line, i.e. \r\n escape sequence. + + + + + Occurs before the multi-column popup is opened and it allows canceling of popup by setting CancelEventArgs.Cancel=true. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding for multi-column drop-down and provides you with opportunity to modify it. + + + + + Occurs before selection on multi-column drop-down has changed and allows canceling of the change. Applies to multi-column drop-down only. + + + + + Gets or sets whether selection change on multi-column drop-down closes the popup. Default value is true. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup size is preserved between popup displays if popup is resized by end-user. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup can be resized by end user. Applies to multi-column drop-down only. + + + + + Indicates whether multi-column popup close button is visible. + + + + + Gets or sets whether multi-column popup window is open. Applies to multi-column drop-down only. + + + + + Gets the reference to the control which is used to display multi-column data on popup. Control is created just before the popup is opened. + + + + + Indicates the font used by the multi-column control on the popup. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the method that will handle the DropDownChange event. + + + + + Summary description for ComboBoxItem. + + + + + Creates new instance of ComboBoxItem. + + + + + Creates new instance of ComboBoxItem and assigns item name. + + Item Name. + + + + Creates new instance of ComboBoxItem and assigns item name and item text. + + Item Name + Item Text. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Returns whether property should be serialized. + + + + + Overridden. Releases the input focus. + + + + + Raises the ComboBoxTextChanged event. + + Provides event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Occurs when underlining control ComboBox.Text property has changed. + + + + + Occurs when selected item on combo box has changed. + + + + + Gets or sets the accessible role of the item. + + + + + Gets or sets whether combo box generates the audible alert when Enter key is pressed. + + + + + Gets or sets the text color of the combo box label. + + + + + IBlock member implementation + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + + + + + Gets or sets the height of the of the drop-down portion of a combo box. + + + + + Indicates the Width of the combo box part of the item. + + + + + Indicates whether control automatically releases its input focus when selection is made using keyboard. + + + + + Returns the reference to the inner combo box control. + + + + + Indicates whether item caption is always shown. + + + + + Gets an object representing the collection of the items contained in inner ComboBoxEx. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the text that is selected in the editable portion of a combo box. + + + + + Gets or sets currently selected item in the combo box. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the value indicating whether the item automatically loads all the fonts available into the combo box. + + + + + Gets or sets the height of an item in the combo box. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Gets or sets the value that indicates whether the item was recently used. + + + + + Overridden. Gets or sets the text associated with this item. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the item caption text displayed next to the combo box. + + + + + Gets or sets a string that specifies the property of the data source whose contents you want to display. When ComboBoxItem is used in DropDown mode + and objects like ComboItem are added to ComboBoxItems.Items collection DisplayMembers should be set to the name of the property you would + like to use as text representation in editable portion of ComboBox. For example in case of ComboItem objects property should be set to Text. + + + + + Specifies whether combo box is drawn using themes when running on OS that supports themes like Windows XP + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets whether control is stand-alone control. Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Summary description for ComboItem. + + + + + Creates new instance of ComboItem. + + + + + Initializes a new instance of the ComboItem class. + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + + Initializes a new instance of the ComboItem class. + + + + + + + Overridden. Returns a human-readable string representation of this object. + + A string that represents this object. + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the index value of the image assigned to the item. + + + + + Gets or sets the text alignment.. + + + + + Gets or sets the line alignment for the item. + + + + + Gets or sets the value that encapsulates text layout information (such as alignment, orientation, tab stops, and clipping) and display manipulations. + + + + + Gets or sets the image horizontal image position. + + + + + Gets or sets the font name used to draw the item text. + + + + + Gets or sets the text color. + + + + + Gets or sets the background color of the item. + + + + + Specifies style information applied to text. + + + + + Gets the em-size of this Font object in design units. + + + + + Gets or sets the image assigned to this item. + + + + + Gets or sets an object that contains data to associate with the item. + + + + + Serves as integration of regular Image class and Icon class + + + + + Specifies orientation of content. + + + + + Indicates Horizontal orientation of the content. + + + + + Indicates Vertical orientation of the content. + + + + + Specifies content horizontal alignment. + + + + + Content is left aligned.UI + + + + + Content is right aligned. + + + + + Content is centered. + + + + + Specifies content vertical alignment. + + + + + Content is top aligned. + + + + + Content is bottom aligned. + + + + + Content is in the middle. + + + + + Represents a extended content block interface for advanced layout information. + + + + + Returns whether element is an container so it receives full available size of parent control for layout. + + + + + Represents event arguments for SerialContentLayoutManager.NextPosition event. + + + + + Gets or sets the block that is layed out. + + + + + Gets or sets the current block position. + + + + + Gets or sets the calculated next block position. + + + + + Cancels default position calculation. + + + + + Represents event arguments for the SerialContentLayoutManager layout events. + + + + + Gets or sets the reference block object. + + + + + Gets or sets the position block will assume. + + + + + Cancel the layout of the block, applies only to BeforeXXX layout event. + + + + + Gets or sets the visibility index of the block. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Delegate for SerialContentLayoutManager.NextPosition event. + + + + + Delegate for the SerialContentLayoutManager layout events. + + + + + Summary description for ContextExMenuTypeEditor. + + + + + Gets the editor style used by the EditValue method. + + An ITypeDescriptorContext that can be used to gain additional context information. + A UITypeEditorEditStyle value that indicates the style of editor used by EditValue. If the UITypeEditor does not support this method, then GetEditStyle will return None + + + + Represents the context menu bar that provides the context menus for the System.Windows.Forms.Control inherited controls on the form. + + + + + Returns the instance of the BaseItem that is assigned as context menu to the control. + + Control to return context menu for. + Instance of the BaseItem used as context menu for the control. + + + + Assigns the context menu to a control. + + Control to assign the context menu to. + Instance of PopupItem derived class usually ButtonItem to act as context menu for a control. The SubItems collection of the item specified here actually defines the visible context menu items. + + + + Gets/Sets whether Bar is visible or not. + + + + + Summary description for Popups. + + + + + Summary description for ControlContainerItem. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + Item name. + + + + Creates new instance of ControlContainerItem and assigns item name and item text. + + Item name. + Item text. + + + + Overridden. Returns the copy of the ControlContainerItem. + + Copy of the ControlContainerItem. + + + + Overridden. Draws the item. + + Target Graphics object. + + + + Overridden. Recalculates the size of the item. + + + + + Called when size of the item is changed externally. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when container control needs to be assigned to the item. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Gets or sets the reference to the control that is managed by the item. + + + + + IBlock member implementation + + + + + Specifies whether contained control can be automatically resized to fill the item container. + + + + + Represents the Check Box control with extended styles. + + + + + Invokes the CheckedChanged event. + + + + + Invokes CheckedChanging event. + + + + + Called when Command property value changes. + + + + + Occurs before Checked property is changed and allows you to cancel the change. + + + + + Occurs after Checked property is changed with extended information. + + + + + Occurs after Checked property is changed. This event is provided for the Windows Forms data binding support. You can use CheckedChangedEx to get extended information about the changed. + + + + + Occurs after Checked property is changed. This event is provided for the Windows Forms data binding support. You can use CheckedChangedEx to get extended information about the changed. + + + + + Gets or sets the size of the check or radio sign. Default value is 13x13. Minimum value is 6x6. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the appearance style of the item. Default value is CheckBox. Item can also assume the style of radio-button. + + + + + Gets or sets the check box position relative to the text. Default value is Left. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the text associated with the control. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. If the ThreeState property is set to true + CheckState property should be used instead of Checked property to set the extended state of the control. + + + + + Specifies the state of a control, such as a check box, that can be checked, unchecked, or set to an indeterminate state. + + + + + Gets the underlying CheckBoxItem + + + + + Gets or sets whether mnemonic character assigned to control is processed only if Alt key is pressed. Default value is false which indicate that Alt key is not required. + + + + + Gets or set whether the Checked values and the item appearance are automatically changed when the Check-Box is clicked. Default value is true. + + + + + Gets or sets the object that represents the Checked state of control. + + + + + Gets or sets whether empty string is consider as null value during CheckValue value comparison. Default value is true. + + + + + Gets or sets the value that represents the Indeterminate state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Checked state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Unchecked state of check box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Delegate for OptionGroupChanging event. + + + + + Represents event arguments for OptionGroupChanging event. + + + + + Set to true to cancel the checking on NewChecked button. + + + + + Check-box that will become checked if operation is not cancelled. + + + + + Check-box that is currently checked and which will be unchecked if operation is not cancelled. This property will have only valid values for eCheckBoxStyle.RadioButton style CheckBoxItems. + + + + + Indicates the action that has caused the event. + + + + + Default constructor. + + + + + Represents the combo box like control which shows the AdvTree control on popup. Tree control + can be configured to display multiple columns as well. + + + + + Initializes a new instance of the TextBoxDropDown class. + + + + + Raises FormattingEnabledChanged event. + + Event arguments. + + + + Raises FormatStringChanged event. + + Event arguments. + + + + Raises FormatInfoChanged event. + + Event arguments. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + Raises the DisplayMemberChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Raises the DataColumnCreated event. + + Provides event arguments. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Creates a new node for the data item. + + Item to create node for. + New instance of the node. + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + Called when ParentFieldName property has changed. + + + + + Called when GroupingMembers property has changed. + + + + + Raises the Format event. + + Event parameters + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Raises the ValueMemberChanged event. + + Event arguments. + + + + Raises the SelectedValueChanged event. + + Event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Renders the selected node inside the combo box. + + Graphics reference. + Render bounds. + + + + Updates popup tree size based on its content. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Called when PopupLocation property has changed. + + Old property value + New property value + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs when the text alignment in text box has changed. + + + + + Occurs before Node has been selected by user or through the SelectedNode property. Event can be canceled. + + + + + Occurs after node has been selected by user or through the SelectedNode property. + + + + + Occurs when the DataSource changes. + + + + + Occurs when the DisplayMembers property changes. + + + + + Occurs when the control is bound to a data value that need to be converted. + + + + + Occurs when FormattingEnabled property changes. + + + + + Occurs when FormatString property changes. + + + + + Occurs when FormatInfo property has changed. + + + + + Occurs when a Node for an data-bound object item has been created and provides you with opportunity to modify the node. + + + + + Occurs when a group Node is created as result of GroupingMembers property setting and provides you with opportunity to modify the node. + + + + + Occurs when value of ValueMember property has changed. + + + + + Occurs when value of SelectedValue property has changed. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Occurs when ColumnHeader is automatically created by control as result of data binding and provides you with opportunity to modify it. + + + + + Gets or sets the tree node that is currently selected in the tree control. + + + If no Node is currently selected, the + SelectedNode property is a null reference (Nothing in Visual + Basic). + + + + + Gets or sets whether selection change on popup tree closes the popup. Default value is true. + + + + + Gets or sets the field name that holds the text that will be displayed in the control for selected item. When not set all items set in DisplayMembers will be displayed in control. + + + + + Gets or sets the field name that holds the text that will be displayed in the control for selected item. When not set all items set in DisplayMembers will be displayed in control. + + + + + Gets or sets the comma separated list of property or column names to display on popup tree control. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMembers property of the control. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets comma separated field or property names that holds the value that is used to identify node and parent node. Format expected is: FieldNodeId,ParentNodeFieldId. For example if your table represents departments, you have DepartmentId field which uniquely identifies a department and ParentDepartmentId field which identifies parent of the department if any you would set this property to DepartmentId,ParentDepartmentId. + Note that you can only use ParentFieldNames or GroupingMembers property but not both. If both are set ParentFieldName take precedence. + + + + + Gets or sets comma separated list of field or property names that are used for grouping when data-binding is used. + + + + + Gets or sets style for automatically created group nodes when data-binding is used and GroupingMembers property is set. + + + Name of the style assigned or null value indicating that no style is used. + Default value is null. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the property to use as the actual value for the items in the control. Applies to data-binding scenarios. SelectedValue property will return the value of selected node as indicated by this property. + + + + + Gets or sets the value of the member property specified by the ValueMember property. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is displayed if set for the input items. Default value is true. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets the watermark text alignment. Default value is left. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Indicates whether Enter key when pressed while control has input focus toggles the popup. Default value is true. + + + + + Gets or sets whether keyboard incremental search is enabled. Default value is true. + + + + + Gets or sets whether during keyboard search selected node can be set to nothing/null if there is no match found. + Default value is true. + + + + + Gets or sets the keyboard search buffer expiration timeout. Default value is 1000 which indicates that + key pressed within 1 second will add to the search buffer and control will be searched for node text + that begins with resulting string. Setting this value to 0 will disable the search buffer. + + + + + Indicates the custom popup location for the ComboTree popup + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal AdvTree control that is displayed on popup Use it to get access to the AdvTree events and properties. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboTreeBox control. + + + + + Gets or sets the width in pixels of the drop-down portion of the ComboTreeBox control. + + + + + Gets or sets a value indicating whether the combo box is displaying its drop-down portion. + + + + + Gets the collection of tree nodes that are assigned to the popup tree view control. + + + A NodeCollection that represents the tree nodes + assigned to the tree control. + + + The Nodes property holds a collection of Node objects, each of which has a + Nodes property that can contain its own NodeCollection. + + + + + Gets the collection of column headers that appear in the popup tree. + + + By default there are no column headers defined. In that case tree control + functions as regular tree control where text has unrestricted width. + If you want to restrict the horizontal width of the text but not display + column header you can create one column and set its width to the width desired and + set its Visible property to false. + + + + + Gets or sets whether column headers are visible if they are defined through Columns collection. Default value is true. + + + + + Gets or sets whether grid lines are displayed when columns are defined. Default value is true. + + + + + Gets or sets the grid lines color. + + + + + Gets or sets whether horizontal grid lines between each row are displayed. Default value is false. + + + + + Gets or sets whether node is highlighted when mouse enters the node. Default value is false. + + + There are two ways to enable the node hot-tracking. You can set the HotTracking property to true in which case the + mouse tracking is enabled using system colors specified in TreeColorTable. You can also define the NodeStyleMouseOver + style which gets applied to the node when mouse is over the node. + + + + + Gets or sets the node selection box style for popup tree control. + + SelectionBox Property + SelectionBoxSize Property + SelectionBoxFillColor Property + SelectionBoxBorderColor Property + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + + + + + Gets or sets the image-list index value of the default image that is displayed by the tree nodes. + + + + + Gets or sets the control background color when control is disabled. Default value is an empty color which indicates that system background color is used when control is disabled. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the method that will handle converting for ComboTree control. + + + + + + + Gets the reference to the item being converted. + + + + + Get the reference to the name of the field or property on the item that needs conversion. + + + + + Defines delegate for data node based events. + + + + + Defines event arguments for data node based events. + + + + + Gets or sets the node that is created for data item. + + + + + Gets the data-item node is being created for. + + + + + Initializes a new instance of the DataNodeEventArgs class. + + + + + + + Defines delegate for data column based events. + + + + + Defines event arguments for data column based events. + + + + + Gets or sets the column header that is created for data. + + + + + Initializes a new instance of the DataColumnEventArgs class. + + + + + + Initializes a new instance of the ControlWithBackgroundStyle class. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Specifies the background style of the control. + + + + + Represents the DataGridView control with enhanced Office 2007 style. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Indicates whether control will delay call to OnResize base DataGridView method when control is running on MDI Child which was introduced as workaround to an issue in control. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets whether selected column header is highlighted. Default value is true. + + + + + Gets or sets whether select all sign displayed in top-left corner of the grid is visible. Default value is true. + + + + + Gets or sets whether enhanced selection for the cells is painted in Office 2007 style. Default value is true. + + + + + Indicates whether BackgroundColor property set on DataGridView is obeyed instead of using system color scheme color. + + + + + GetContentBounds + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Establishes the given rowIndex as the + ActiveRowIndex. + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + + GetValue + + + + + + + Initiates the refresh of the cell button + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Gets whether the Column cells will fully paint + their cell background and content + + + + + Constructor + + + + + Gets whether ImageFixedSize property should be serialized. + + + + + Hooks or unhooks our system events + + + + + + Processes Button expand changes + + + + + + + ButtonItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Gets or sets the active row index + + + + + Gets the Control Button + + + + + Gets or sets the Current row index + + + + + Gets or sets a expanded button + was just closed + + + + + Gets or sets the cell callback state + + + + + Gets or sets whether Checked property is automatically inverted, button checked/unchecked, when button is clicked. Default value is false. + + + + + Indicates whether the button will auto-expand when clicked. + When button contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this property to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets button Color Scheme. ColorScheme does not apply to Office2007 styled buttons. + + + + + Gets or sets the predefined color of the button. Color specified applies to buttons with Office 2007 style only. It does not have + any effect on other styles. Default value is eButtonColor.BlueWithBackground + + + + + Gets or sets the custom color name. Name specified here must be represented by the corresponding object with the same name that is part + of the Office2007ColorTable.ButtonItemColors collection. See documentation for Office2007ColorTable.ButtonItemColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. Applies to items with Office 2007 style only. + + + + + Specifies the image for the button when items Enabled property is set to false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Indicates the way button is rendering the mouse over state. Setting the value to + Color will render the image in gray-scale when mouse is not over the item. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the Button image. + + + + + Sets fixed size of the image. Image will be scaled and painted it size specified. + + + + + Gets/Sets the image position inside the button. + + + + + Gets or sets the amount of spacing between button image if specified and text. + + + + + Gets or sets the location of popup in relation to it's parent. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Gets or sets an shape descriptor for the button + which describes the shape of the button. Default value is null + which indicates that system default shape is used. + + + + + Gets or sets whether button displays the expand part that indicates that button has popup. + + + + + Gets or sets whether button appears as split button. Split button appearance + divides button into two parts. Image which raises the click event when clicked + and text and expand sign which shows button sub items on popup menu when clicked. + Button must have both text and image visible (ButtonStyle property) in order to + appear as a full split button. + + + + + Gets/Sets the visual style for the button. + + + + + Returns the collection of sub items. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or sets the default Text to display on the Button + + + + + Gets or sets the text alignment. Applies only when button text is not composed using text markup. Default value is center. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + BeforeCellPaintEventArgs + + + + + RowIndex of cell being painted + + + + + ColumnIndex of cell being painted + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the Content bounds for the given cell + + + + + + + Initiates the refresh of the cell + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + HookEvents + + + + + + CheckBoxItem_Click + + + + + + + CheckBoxItem_DoubleClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Gets or sets the active row index + + + + + Gets the Control Button + + + + + Gets or sets the Current row index + + + + + Gets or sets the MouseDown row index + + + + + Gets or sets the cell callback state + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is checked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is unchecked. + + + + + Gets or sets the custom image that is displayed instead default check box representation when check box is in indeterminate state. + + + + + Gets or sets the check box position relative to the text. + Default value is Left. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Specifies the state of the control, that can be + checked, unchecked, or set to an indeterminate state. + + + + + CheckValue + + + + + Gets or sets the value that represents the Checked state value of the check + box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Indeterminate state of the check + box when CheckValue property is set to that value. Default value is null. + + + + + Gets or sets the value that represents the Unchecked state value of check + box when CheckValue property is set to that value. Default value is 'N'. + + + + + Gets or sets whether empty string is consider as null value + during CheckValue value comparison. Default value is true. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets whether text-markup support is enabled for controls + Text property. Default value is true. Set this property to false to + display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the default Text to display + + + + + Gets or sets the text color. Default value is + Color.Empty which indicates that default color is used. + + + + + Gets or sets whether text assigned to the check box is visible. + Default value is true. + + + + + Gets or sets a value indicating whether the CheckBox will allow + three check states rather than two. If the ThreeState property is + set to true CheckState property should be used instead of Checked + property to set the extended state of the control. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + Click + + + + + + + DrawItem + + + + + + + DropDownChange + + + + + + + MeasureItem + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + ParseFormattedValue + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + + DrawText + + + + + + + + + MustRenderVisibleControl + + + + + + + OnMouseEnter + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + HookEvents + + + + + + ComboBoxEx_DataSourceChanged + + + + + + + DoComboBoxEx_Click + + + + + + + DoComboBoxEx_DrawItem + + + + + + + DoComboBoxEx_DropDownChange + + + + + + + DoComboBoxEx_MeasureItem + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a ComboBox Cell is painted + + + + + Occurs when the ComboBox is clicked + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes + + + + + Occurs when drop down portion of the ComboBox is shown or hidden. + + + + + Occurs each time an owner-drawn ComboBox item needs + to be drawn and when the sizes of the list items are determined + + + + + Gets the underlying ComboBoxEx control + + + + + Gets or sets the ComboBox CurrencyManager + + + + + Gets or sets a custom System.Collections.Specialized.StringCollection + to use when the AutoCompleteSource property is set to CustomSource. + + + + + Gets or sets an option that controls how automatic completion works for the ComboBox. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + + + + + Gets or sets the data source that populates the selections for the combo box + + + + + Gets or sets a string that specifies the property or column + from which to retrieve strings for display in the combo box. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets a value indicating whether user code or + operating system code will handle drawing of elements in the list. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Gets or sets the width of the drop-down lists of the combo box. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the flat style appearance of the column's cells. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the format-specifier + characters that indicate how a value is to be displayed. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets the ImageList control used by Combo box to draw images. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets a value indicating whether + the control should resize to avoid showing partial items. + + + + + Gets or sets whether control is stand-alone control. + Stand-alone flag affects the appearance of the control in Office 2007 style. + + + + + Gets or sets the height of an item in the combo box. + + + + + Gets the collection of objects used as selections in the combo box. + + + + + Gets or sets the maximum number of items + in the drop-down list of the cells in the column. + + + + + Gets or sets the number of characters a user can type into the ComboBox. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets whether the items in the combo box are sorted. + + + + + Determines the visual style applied to + the combo box when shown. Default style is Office 2007. + + + + + Gets or sets the text associated with this control. + + + + + Gets or sets a string that specifies the property or column + from which to get values that correspond to the selections in the drop-down list. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text + is not set and control does not have input focus. This property supports text-markup. + Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0. + + + + + Gets the Cell paint setting for the control + + + + + DropDownChangeEventArgs + + + + + ColumnIndex + + + + + Expanded state + + + + + RowIndex + + + + + Handles OnTextChanged events + + + + + + OnSelectedIndexChanged + + + + + + NotifyDataGridViewOfValueChange + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DateTimeInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + Gets the underlying DateTimeInput control + + + + + Gets or sets whether empty null/nothing state of the control is + allowed. Default value is true which means that IsEmpty property may + return true if input value is resets or ValueObject set to null/nothing. + + + + + Gets or sets whether input focus is automatically advanced + to next input field when input is complete in current one. + + + + + Gets or sets whether first day in month is automatically + selected on popup date picker when month or year is changed. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. + When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the custom date/time format string. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether empty input values (year, month or day) are + set to defaults while user is entering data. Default value is true. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the format date/time is displayed in. To specify + custom format set this value to Custom and specify custom format + using CustomFormat property. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether input part of the control is read-only. When set + to true the input part of the control becomes read-only and does not allow + the typing. However, drop-down part if visible still allows user to change + the value of the control. Use this property to allow change of the value + through drop-down picker only. + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets the reference to the internal MonthCalendarItem control which is used to display calendar when drop-down is open. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DoubleInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + DoubleInput + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the Numeric String Format that is used to format + the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" + and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose + only, not for the input purpose. For example to display the number + in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the value to increment or decrement the value of the + control when the up or down buttons are clicked. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + ButtonFreeTextClick + + + + + + + ConvertFreeTextEntry + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + DoButtonFreeTextClick + + + + + + + DoConvertFreeTextEntry + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a DateTimeInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Occurs when Free-Text button is clicked + and allows you to cancel its default action + + + + + Occurs if Free-Text entry value is not natively recognized by + the control and provides you with opportunity to convert that + value to the value the control expects + + + + + IntegerInput + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button + that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets the Numeric String Format that is used to format + the numeric value entered for display purpose. Read more about + available formats in MSDN under "Standard Numeric Format Strings" + and "Custom Numeric Format Strings" topics. + + The format specified here indicates the format for display purpose + only, not for the input purpose. For example to display the number + in system Currency format set the DisplayFormat to 'C'. + + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the value to increment or decrement the value of the + control when the up or down buttons are clicked. + + + + + Gets or sets the input field alignment inside the control + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets a value indicating whether a check box is + displayed to the left of the input value. Set to true if a check box + is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed + to the left of the input in the control. When the check box is selected, the value + can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked + and unchecked. Use LockUpdateChecked property to get or sets whether check box is checked. + + + + + + Gets or sets a value indicating whether a spin button control + (up-down control) is used to adjust the current value. The default is false. + + When the ShowUpDown property is set to true, a spin button control + is shown to adjust value of currently focused input item. The value can + be adjusted by using the up and down buttons to change the value. + + + + + + Gets the Cell paint setting for the control + + + + + Handles OnValueChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + DrawControl + + + + + + + + DrawText + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Occurs right before a IpAddressInput Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button that shows calendar + is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying IpAddressInput control + + + + + Gets or sets whether empty null/nothing state of the control + is allowed. Default value is true which means that Text property + may return null if there is no input value. + + + + + Gets or sets whether free-text entry is automatically + turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether auto-overwrite functionality for input + is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether free text entries are attempted to be + auto-resolved to IP address as host/domain names. Default value is true. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Returns the collection of DropDownItems. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets whether control input is in + free-text input mode. Default value is false. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets whether input part of the control is read-only. When + set to true the input part of the control becomes read-only and does + not allow the typing. However, drop-down part if visible still allows + user to possibly change the value of the control through the method you + can provide on drop-down. Use this property to allow change of the value + through drop-down button only. + + + + + Gets or sets whether check box shown using ShowCheckBox + property which locks/unlocks the control update is checked. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets a value indicating whether a check box is displayed to + the left of the input value. Set to true if a check box is displayed + to the left of the input value; otherwise, false. The default is false. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Control for input of the integer value. + + + + + Initializes a new instance of the IpAddressInput class. + + + + + Copies the current value in the control to the Clipboard. + + + + + Pastes the current Clipboard content if possible as the value into the control. + + + + + Moves the current control value to the Clipboard. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Raises the LockUpdateChanged event. + + Provides event data./ + + + + Raises ValueChanged event. + + Provides event arguments. + + + + + + + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows calendar is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ShowCheckBox property is set to true and user changes the lock status of the control by clicking the check-box. + + + + + Occurs when Value property has changed. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the button that switches the control into the free-text entry mode when clicked. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is true which means that Text property + may return null if there is no input value. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets or sets whether input part of the control is read-only. When set to true the input part of the control becomes + read-only and does not allow the typing. However, drop-down part if visible still allows user to possibly change the value of the control + through the method you can provide on drop-down. + Use this property to allow change of the value through drop-down button only. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the input value. + Set to true if a check box is displayed to the left of the input value; otherwise, false. The default is false. + + When the ShowCheckBox property is set to true, a check box is displayed to the left of the input in the control. When the check box is selected, the value can be updated. When the check box is cleared, the value is unable to be changed. + You can handle the LockUpdateChanged event to be notified when this check box is checked and unchecked. Use LockUpdateChecked property + to get or sets whether check box is checked. + + + + + + Gets or sets whether check box shown using ShowCheckBox property which locks/unlocks the control update is checked. + + + + + List of characters that when pressed would select next input field. For example if you are + allowing time input you could set this property to : so when user presses the : character, + the input is forwarded to the next input field. + + + + + Gets or sets the IP Address value represented by the control. + + + + + Occurs if Free-Text entry value is not natively recognized by the control and provides you with opportunity to convert that value to the + value control expects. + + + + + Occurs when Free-Text button is clicked and allows you to cancel its default action. + + + + + Gets or sets whether free text entries are attempted to be auto-resolved to IP address as host/domain names. Default value is true. + + + + + Gets or sets whether free-text entry is automatically turned off when control loses input focus. Default value is false. + + + + + Gets or sets whether control input is in free-text input mode. Default value is false. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the Edit state + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + GetAdjustedEditingControlBounds + + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Label background + + + + + + + + Paints the Label background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + CellAlignPoint + + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + GetValue + + + + + + + GetHorizontalAlignment + + + + + + + Initiates the refresh of the cell label + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Hooks or unhooks our system events + + + + + + LabelItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the LabelX Column + + + + + + Dispose + + + + + + Button FlatStyle + + + + + Button UseColumnTextForButtonValue + + + + + InCallBack + + + + + Gets the Control LabelX + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the border sides that are displayed. + Default value specifies border on all 4 sides. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Specifies label image. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the vertical text alignment. + + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + KeyDown routine forwards all DataGridView sent keys to + the underlying focusable control + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + + DrawText + + + + + + + + + MustRenderVisibleControl + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetTextAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a MaskedTextBoxAdv Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying MaskedTextBoxAdv control + + + + + Gets or sets a value indicating whether PromptChar can be entered as valid data. + + + + + Gets or sets a value indicating whether characters outside of the ASCII character set will be accepted. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets or sets a value indicating whether the masked text box + control raises the system beep for each user key stroke that it rejects. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets the culture information associated with the masked text box. + + + + + Gets or sets a value that determines whether + literals and prompt characters are copied to the clipboard + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets a value indicating whether the prompt characters + in the input mask are hidden when the masked text box loses focus. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + + + Gets or sets the input mask to use at run time. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets the character used to represent the absence of user input. + + + + + Gets or sets a value indicating whether the parsing of + user input should stop after the first invalid character is reached. + + + + + Gets or sets a value that determines how an input + character that matches the prompt character should be handled. + + + + + Gets or sets a value that determines how + a space input character should be handled. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets a value indicating + whether the user is allowed to reenter literal values. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets or sets a value that determines whether literals + and prompt characters are included in the formatted string. + + + + + Gets or sets a value indicating whether + the operating system-supplied password character should be used. + + + + + Gets or sets the data type used to verify the data input by the user. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Initializes a new instance of the MaskedTextBoxAdv class. + + + + + Initializes a new instance of the MaskedTextBoxAdv class using the specified input mask. + + A custom mask language provider, derived from the MaskedTextProvider class. + + + + Initializes a new instance of the MaskedTextBoxAdv class using the specified input mask. + + Initializes a new instance of the MaskedTextBox class using the specified input mask. + + + + Raises TypeValidationCompleted event. + + + + + Raises the TextAlignChanged event. + + + + + Raises MaskInputRejected event. + + + + + + Raises the MaskChanged event. + + + + + Raises IsOverwriteModeChanged event. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Gets whether property should be serialized by Windows Forms designer. + + + + + Converts the user input string to an instance of the validating type. + + If successful, an Object of the type specified by the ValidatingType property; otherwise, null to indicate conversion failure. + + + + Returns a string that represents the current masked text box. This method overrides ToString. + + A String that contains information about the current MaskedTextBox. The string includes the type, a simplified view of the input string, and the formatted input string. + + + + Called when Command property value changes. + + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs after the insert mode has changed + + + + + Occurs after the input mask is changed. + + + + + Occurs when the user's input or assigned character does not match the corresponding format element of the input mask. + + + + + Occurs when the text alignment is changed. + + + + + Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property. + + + + + Specifies back color when Enabled=false + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal MaskedTextBox control. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets a value indicating whether PromptChar can be entered as valid data by the user. Default value is true. + + + + + Gets or sets a value indicating whether the MaskedTextBox control accepts characters outside of the ASCII character set. + true if only ASCII is accepted; false if the MaskedTextBox control can accept any arbitrary Unicode character. The default is false. + + + + + Gets or sets a value indicating whether the masked text box control raises the system beep for each user key stroke that it rejects. + + + + + Gets or sets the culture information associated with the masked text box. + + + + + Gets or sets a value that determines whether literals and prompt characters are copied to the clipboard. + + + + + Gets or sets the IFormatProvider to use when performing type validation. + + + + + Gets or sets a value indicating whether the prompt characters in the input mask are hidden when the masked text box loses focus. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + + + Gets or sets the input mask to use at run time. The default value is the empty string which allows any input + + + + + Gets a value indicating whether all required inputs have been entered into the input mask. Returns true if all required input has been entered into the mask; otherwise, false. + + + + + Gets a clone of the mask provider associated with this instance of the masked text box control. Returns masking language provider of type MaskedTextProvider. + + + + + Gets a value indicating whether all required and optional inputs have been entered into the input mask. Returns true if all required and optional inputs have been entered; otherwise, false. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets the character used to represent the absence of user input in MaskedTextBox. Returns character used to prompt the user for input. The default is an underscore (_). + + + + + Gets or sets whether text in control is read only. Default value is false. + + + + + Gets or sets a value indicating whether the parsing of user input should stop after the first invalid character is reached. Returns true if processing of the input string should be terminated at the first parsing error; otherwise, false if processing should ignore all errors. The default is false. + + + + + Gets or sets a value that determines how an input character that matches the prompt character should be handled. Returns true if the prompt character entered as input causes the current editable position in the mask to be reset; otherwise, false to indicate that the prompt character is to be processed as a normal input character. The default is true. + + + + + Gets or sets a value that determines how a space input character should be handled. Returns true if the space input character causes the current editable position in the mask to be reset; otherwise, false to indicate that it is to be processed as a normal input character. The default is true. + + + + + Gets or sets a value indicating the currently selected text in the control. + + + + + Gets or sets the number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + + + + + Gets or sets a value indicating whether the defined shortcuts are enabled. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets the length of the displayed text. + + + + + Gets or sets a value that determines whether literals and prompt characters are included in the formatted string. + + + + + Gets or sets a value indicating whether the operating system-supplied password character should be used. + + + + + Gets or sets the data type used to verify the data input by the user. Returns Type representing the data type used in validation. The default is null. + + + + + Gets the preferred height for a masked text box. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Button background + + + + + + + + Paints the button background and content + + + + + + + + + + + OnMouseEnter + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the content bounds for the given cell + + + + + + + + GetValue + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + FormattedValueType + + + + + Constructor + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Hooks or unhooks our system events + + + + + + ProgressBarItem_Click + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Button FlatStyle + + + + + Button UseColumnTextForButtonValue + + + + + InCallBack + + + + + Gets the Control ProgressBarX + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Gets or sets the predefined color state table for progress bar. Color + specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state + of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets/Sets the visual style for the control. + + + + + Gets or sets the default Text to display on the Progress Bar + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + GetAdjustedEditingControlBounds + + + + + + + + GetPreferredSize + + + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the Slider background + + + + + + + + Paints the Slider content + + + + + + + + + + + OnMouseEnter + + + + + + Process MouseEnter state + + + + + + + Processes MouseLeave events + + + + + + Processes MouseMove events + + + + + + Processes MouseDown events + + + + + + Processes MouseUp events + + + + + + CellAlignPoint + + + + + + + + GetSliderValue + + + + + + + Determines if the given part is set + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the content bounds for the given cell + + + + + + + Initiates the refresh of the cell slider + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Gets the type of the underlying data + (i.e., the type of the cell's Value property) + + + + + Constructor + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Hooks or unhooks our system events + + + + + + SliderItem_Click + + + + + + + SliderItem_ValueChanged + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a Slider Cell is painted + + + + + Gets or sets the active row index + + + + + Gets or sets the DataBindingComplete state + + + + + Gets the Control Slider + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the current position of the slider. + + + + + Gets the Cell paint setting for the ButtonX control + + + + + InitializeEditingControl + + + + + + + + DetachEditingControl + + + + + ButtonClearClick + + + + + + + ButtonCustomClick + + + + + + + ButtonCustom2Click + + + + + + + ButtonDropDownClick + + + + + + + KeyDown routine forwards all DataGridView sent keys to + the underlying focusable control + + + + + + + PositionEditingControl + + + + + + + + + + + + + + GetAdjustedEditingControlBounds + + + + + + + + Cell painting + + + + + + + + + + + + + + + + Paints the cell background + + + + + + + + Paints the cell content + + + + + + + + + + + + DrawControl + + + + + + + + + + DrawText + + + + + + + + + Gets the background bounds for the given cell + + + + + + + + Gets the button bounds for the given cell + + + + + + + GetValue + + + + + + + GetTextAlignment + + + + + + + Determines if the given part is set + + + + + + + + Gets the Type of the editing control associated with the cell + + + + + Constructor + + + + + Resets style to default value. Used by windows forms designer. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Appends text to the current text of a text box. + + The text to append to the current contents of the text box. + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength + property is zero so that no characters are selected in the control. + + + + + Retrieves the character that is closest to the specified location within the control. + + The location from which to seek the nearest character. + The character at the specified location. + + + + Retrieves the index of the character nearest to the specified location. + + The location to search. + The zero-based character index at the specified location. + + + + Retrieves the index of the first character of a given line. + + The line for which to get the index of its first character. + The zero-based character index in the specified line. + + + + Retrieves the index of the first character of the current line. + + The zero-based character index in the current line. + + + + Retrieves the line number from the specified character position within the text of the control. + + The character index position to search. + The zero-based line number in which the character index is located. + + + + Retrieves the location within the control at the specified character index. + + The index of the character for which to retrieve the location. + The location of the specified character. + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Selects a range of text in the text box. + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Replaces the specified selection in the TextBox with the contents of the Clipboard. + + The text to replace. + + + + DoButtonClearClick + + + + + + + DoButtonCustomClick + + + + + + + DoButtonCustom2Click + + + + + + + DoButtonDropDownClick + + + + + + + Gets the cell paint bitmap + + + + + + + Invokes BeforeCellPaint user events + + Row index + Column index + + + + Clones the ButtonX Column + + + + + + Dispose + + + + + + Occurs right before a TextBoxDropDown Cell is painted + + + + + Occurs when Clear button is clicked and allows you + to cancel the default action performed by the button + + + + + Occurs when ButtonCustom control is clicked + + + + + Occurs when ButtonCustom2 control is clicked + + + + + Occurs when Drop-Down button is clicked and allows you to cancel showing of the popup + + + + + Gets the underlying TextBoxDropDown control + + + + + Gets or sets a custom StringCollection to use when + the AutoCompleteSource property is set to CustomSource. + A StringCollection to use with AutoCompleteSource. + + + + + Gets or sets an option that controls + how automatic completion works for the TextBox. + One of the values of AutoCompleteMode. The values are Append, + None, Suggest, and SuggestAppend. The default is None. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + One of the values of AutoCompleteSource. The options are AllSystemSources, AllUrl, FileSystem, HistoryList, RecentlyUsedList, CustomSource, and None. The default is None. + + + + + Gets or sets the Background color. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button + that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button + that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the button + that shows drop-down when clicked. + + + + + Gets or sets whether the TextBox control + modifies the case of characters as they are typed. + One of the CharacterCasing enumeration values that specifies + whether the TextBox control modifies the case of characters. + The default is CharacterCasing.Normal. + + + + + Gets or sets whether the control + will be displayed for the current cell only. + + + + + Gets or sets the reference of the control that will be + displayed on popup that is shown when the drop-down button is clicked. + + + + + Gets or sets whether the control can respond to user interaction + + + + + Gets or sets the color used as background color to highlight + the text box when it has input focus and FocusHighlight is enabled. + + + + + Gets or sets whether FocusHighlightColor is used as + background color to highlight the text box when it has + input focus. Default value is false. + + + + + Gets or sets the foreground color. + + + + + Gets or sets a value indicating whether the selected text in + the text box control remains highlighted when the control loses focus. + true if the selected text does not appear highlighted when the + text box control loses focus; false, if the selected text remains + highlighted when the text box control loses focus. The default is true. + + + + + Gets or sets the Input Method Editor (IME) mode of the control. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + The number of characters that can be entered into the control. The default is 32767. + + + + + Gets or sets the character to be displayed in substitute for user input. + + + + + Gets or sets a value indicating whether control's + elements are aligned to support locales using right-to-left fonts. + + + + + Gets or sets a value indicating the currently selected text in the control. + A string that represents the currently selected text in the text box. + + + + + Gets or sets the number of characters selected in the text box. + The number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + The starting position of text selected in the text box. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets or sets how text is aligned in a masked text box control. + + + + + Gets the length of text in the control. + Returns number of characters contained in the text of the control. + + + + + Gets or sets a value indicating whether + the operating system-supplied password character should be used. + + + + + Gets or sets the watermark hiding behaviour. Default value + indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets whether watermark text is + displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark (tip) text displayed inside of + the control when Text is not set and control does not have + input focus. This property supports text-markup. + + + + + Gets the Cell paint setting for the control + + + + + Represents single line text box control with the drop down button to display custom control on popup and additional custom buttons. + + + + + Raises BeforeMultiColumnPopupOpen event. + + Provides event arguments. + + + + Initializes a new instance of the TextBoxDropDown class. + + + + + Raises the TextAlignChanged event. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Shows drop-down popup. Note that popup will be shown only if there is a DropDownControl assigned or DropDownItems collection has at least one item. + + + + + Closes the drop-down popup if it is open. + + + + + Raises the ButtonClearClick event. + + + + + + Raises the ButtonDropDownClick event. + + + + + + Called when DropDownControl property has changed. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Called when Command property value changes. + + + + + Returns a string that represents the current text in text box. This method overrides ToString. + + A String that contains information about the current TextBox. The string includes the type, a simplified view of the input string, and the formatted input string. + + + + Appends text to the current text of a text box. + + The text to append to the current contents of the text box. + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the control. + + + + + Retrieves the character that is closest to the specified location within the control. + + The location from which to seek the nearest character. + The character at the specified location. + + + + Retrieves the index of the character nearest to the specified location. + + The location to search. + The zero-based character index at the specified location. + + + + Retrieves the index of the first character of a given line. + + The line for which to get the index of its first character. + The zero-based character index in the specified line. + + + + Retrieves the index of the first character of the current line. + + The zero-based character index in the current line. + + + + Retrieves the line number from the specified character position within the text of the control. + + The character index position to search. + The zero-based line number in which the character index is located. + + + + Retrieves the location within the control at the specified character index. + + The index of the character for which to retrieve the location. + The location of the specified character. + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Selects a range of text in the text box. + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Replaces the specified selection in the TextBox with the contents of the Clipboard. + + The text to replace. + + + + Occurs when Clear button is clicked and allows you to cancel the default action performed by the button. + + + + + Occurs when Drop-Down button that shows popup is clicked and allows you to cancel showing of the popup. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Occurs when the text alignment is changed. + + + + + Occurs when the value of the Modified property has changed. + + + + + Occurs before the popup is opened and it allows canceling of popup by setting CancelEventArgs.Cancel=true. + + + + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Specifies the background style of the control. + + + + + Gets the object that describes the settings for the button that shows drop-down when clicked. + + + + + Gets the object that describes the settings for the button that clears the content of the control when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets or sets a value indicating whether the drop-down is open. + + + + + Indicates whether DropDownControl is automatically focused when popup is open. + + + + + Gets or sets the reference of the control that will be displayed on popup that is shown when drop-down button is clicked. + + + + + Gets the collection of BaseItem derived items displayed on popup menu. + + + + + Gets the reference to internal TextBox control. Use it to get access to the text box events and properties. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the text as it is currently displayed to the user. + + + + + Gets the preferred height for a text box. + + + + + Gets or sets a custom StringCollection to use when the AutoCompleteSource property is set to CustomSource. + A StringCollection to use with AutoCompleteSource. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + One of the values of AutoCompleteMode. The values are Append, None, Suggest, and SuggestAppend. The default is None. + + + + + Gets or sets a value specifying the source of complete strings used for automatic completion. + One of the values of AutoCompleteSource. The options are AllSystemSources, AllUrl, FileSystem, HistoryList, RecentlyUsedList, CustomSource, and None. The default is None. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + One of the CharacterCasing enumeration values that specifies whether the TextBox control modifies the case of characters. The default is CharacterCasing.Normal. + + + + + Gets or sets the character used to mask characters of a password in a single-line TextBox control. + The character used to mask characters entered in a single-line TextBox control. Set the value of this property to 0 (character value) if you do not want the control to mask characters as they are typed. Equals 0 (character value) by default. + + + + + Gets or sets how text is aligned in a TextBox control. + One of the HorizontalAlignment enumeration values that specifies how text is aligned in the control. The default is HorizontalAlignment.Left. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + true if the text in the TextBox control should appear as the default password character; otherwise, false. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the control loses focus. + true if the selected text does not appear highlighted when the text box control loses focus; false, if the selected text remains highlighted when the text box control loses focus. The default is true. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + The number of characters that can be entered into the control. The default is 32767. + + + + + Gets or sets a value that indicates that the text box control has been modified by the user since the control was created or its contents were last set. + true if the control's contents have been modified; otherwise, false. The default is false. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + true if the text box is read-only; otherwise, false. The default is false. + + + + + Gets or sets a value indicating the currently selected text in the control. + A string that represents the currently selected text in the text box. + + + + + Gets or sets the number of characters selected in the text box. + The number of characters selected in the text box. + + + + + Gets or sets the starting point of text selected in the text box. + The starting position of text selected in the text box. + + + + + Gets the length of text in the control.Returns number of characters contained in the text of the control. + + + + + Handles OnTextChanged events + + + + + + ApplyCellStyleToEditingControl + + + + + + Gets EditingControlFormattedValue + + + + + + + Gets whether the given key wants to be processed + by the Control + + + + + + + + PrepareEditingControlForEdit + + + + + + Gets or sets the DataGridView + + + + + Gets or sets the Control Formatted Value + + + + + Gets or sets the Control RoeIndex + + + + + Gets or sets the Control ValueChanged state + + + + + Gets the Panel Cursor + + + + + Gets whether to RepositionEditingControlOnValueChange + + + + + Displays the desktop alerts with optional image or symbol. Text on alerts supports text-markup. + + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies alert color. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Specifies alert color. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Alert position on the screen. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Alert position on the screen. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert at specific screen position. + + Text to show on the alert. Text supports text-markup. + Image to display on alert. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color. + Alert position on the screen. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert position on the screen + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert position on the screen + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Alert color + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert color + Alert position on the screen + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert position on the screen + Alert color + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Symbol to show on the alert, see http://www.devcomponents.com/kb2/?p=1347 + Symbol set to use + Symbol color or Color.Empty to use default text color + Alert position on the screen + Alert color + Duration of alert in the seconds. + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + + + + Shows desktop alert. + + Text to show on the alert. Text supports text-markup. + Image to display on the alert + Alert screen position + Alert color + Duration of alert in seconds + Alert ID used to recognize alert if clicked and specified Action is called + Action method to call if alert is clicked. + Text-markup link click event handler. + Specifies reference control which is used to find target screen alert is displayed on. + + + + Raises BeforeAlertDisplayed event. + + Provides event arguments. + + + + Indicates maximum alert size. + + + + + Specifies default alert screen position. + + + + + Specifies default alert color. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets time period in seconds after alert closes automatically. + + + + + Gets or sets whether text-markup can be used in alert text, default value is true. + + + + + Indicates whether alert plays exclamation sound when shown. + + + + + Occurs before alert is displayed and allows access to the alert Window through sender. + + + + + Defines predefined desktop alert colors. + + + + + Sets alert size based on its content, it respects MinimumSize and MaximumSize property settings. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when TextMarkupEnabled property has changed. + + Old property value + New property value + + + + Occurs when text markup link is clicked. + + + + + Raises MarkupLinkClick event. + + Provides event arguments. + + + + Display balloon. + + Indicates whether alert receives input focus upon showing. + + + + Displays balloon. + + + + + Called when alert needs to be hidden. + + + + + Hides balloon. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates image displayed on alert. + + + + + Indicates optional Alert Id. + + + + + Indicates the method that will be invoked if user clicks the alert. + + + + + Gets or sets whether text-markup can be used in Text property. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets the default alert size. + + + + + Gets or sets the total time in milliseconds alert animation takes. + Default value is 200. + + + + + Gets or sets whether balloon will close automatically when user click the close button. + + + + + Gets or sets time period in seconds after alert closes automatically. + + + + + Specifies the reference control which is used to find which screen the alert is displayed on. If not specified alert is displayed on primary screen. + + + + + Indicates spacing between alerts on the screen + + + + + Indicates the request screen position for the alert + + + + + Indicates spacing in pixels between image and text + + + + + Indicates whether alert plays exclamation sound when shown. + + + + + Indicates whether close button on alert is visible + + + + + Defines the alert positions. + + + + + Top-left screen position. + + + + + Top-right screen position. + + + + + Bottom-right screen position. + + + + + Bottom left screen position. + + + + + Component to display flyout popup. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Called when Content property has changed. + + Old property value + New property value + + + + Called when PointerSide property has changed. + + Old property value + New property value + + + + Called when TargetControl property has changed. + + Old property value + New property value + + + + Called when DeepControlIntegration property has changed. + + Old property value + New property value + + + + Called when DisplayMode property has changed. + + Old property value + New property value + + + + Called when CloseMode property has changed. + + Old property value + New property value + + + + Raises PrepareContent event. + + Provides event arguments. + + + + Shows flyout with the Content. + + + + + Returns the flyout size based on Content size. + + Proposed flyout size. + + + + Shows flyout at specified location and with specified size. Size can be empty (0,0) and flyout will be automatically sized based on the content. + + + + + + Raises FlyoutShowing event. + + Provides event arguments. + + + + Raises FlyoutShown event. + + Provides event arguments. + + + + Raises QueryShowFlyout event. + + Provides event arguments. + + + + Shows flyout at specified location and with specified size. Size can be empty (0,0) and flyout will be automatically sized based on the content. + + Screen bounds to display flyout at. + Side of the flyout which will have pointer triangle + Pointer position either x or y depending on which side pointer is displayed on. + Target item for the flyout. + + + + Raises FlyoutClosing event. + + Provides event arguments. + + + + Raises FlyoutClosed event. + + Provides event arguments. + + + + Closes the flyout form if it was open. + + + + + Called when ActivateOnShow property has changed. + + Old property value + New property value + + + + Called when TopMost property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when DropShadow property has changed. + + Old property value + New property value + + + + Called when Parent property has changed. + + Old property value + New property value + + + + Indicates a control, usually panel with other controls inside of it, that is displayed on the flyout popup. + + + + + Indicates the side of the flyout triangle pointer is displayed on. + + + + + Indicates the target control for the flyout display and positioning. + + + + + Indicates whether Flyout integrates on item level with DotNetBar controls it recognizes like SuperTabControl, AdvTree etc. + + + + + Specifies when the flyout is displayed. + + + + + Indicates when Flyout is automatically closed. + + + + + Occurs before the flyout is shown for specific target and allows you to prepare Content for it. Sender of event will be the targeted control or item. + + + + + Occurs after flyout has been shown. + + + + + Provides opportunity to cancel showing of the flyout before any objects are created and allocated. This is preferred event to cancel flyout showing. + + + + + Occurs before flyout is closed and allows you to cancel the closing. + + + + + Occurs after flyout is closed. + + + + + Indicates whether flyout is active/focused when its shown, default value is false. + + + + + Indicates whether flyout is made top-most window when shown + + + + + Gets or sets the background flyout color. Default value is Color.Empty which indicates that current color scheme will be used. + + + + + Gets or sets the flyout border color. Default value of Color.Empty indicates that color scheme will be used. + + + + + Indicates whether flyout displays drop shadow. + + + + + Gets or sets the parent control for the Flyout. Parent is used to find the parent form so flyout can be closed when form is de-activated. + + + + + Defines delegate for the FlyoutShowing event. + + + + + + + Gets the reference to the flyout form. + + + + + Gets the reference to the flyout target usually TargetControl. + + + + + Allows you to cancel showing of the flyout by setting this value to true. + + + + + Initializes a new instance of the FlyoutShowingEventArgs class. + + + + + + + Defines the modes for Flyout display. + + + + + Flyout is displayed manually using flyout.Show() method. + + + + + Flyout is displayed when mouse is over TargetControl. + + + + + Flyout is displayed when mouse is hovering over TargetControl. + + + + + Flyout is displayed when left mouse button is clicked on TargetControl. + + + + + Defines Flyout closing condition. + + + + + Flyout is closed manually using flyout.Close() method. + + + + + Flyout is closed when user clicks outside of flyout bounds. + + + + + Flyout is closed when TargetControl is hidden. + + + + + Flyout is closed when TargetControl loses focus. + + + + + Flyout is closed when parent forms deactivates. + + + + + Defines colors for the Flyout control. + + + + + Specifies Flyout background color. + + + + + Specifies Flyout border color. + + + + + Called when PointerOffset property has changed. + + Old property value + New property value + + + + Called when PointerSide property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Indicates whether flyout displays a drop shadow. + + + + + Gets or sets whether form is made active/focused when shown. + + + + + Gets or sets the pointer offset from the top-left corner + + + + + Gets or sets the side pointer triangle is displayed on. + + + + + Gets or sets the flyout border color. Default value of Color.Empty indicates that color scheme will be used. + + + + + Defines the side of triangle pointer displayed on flyout popup. + + + + + Represents graphical panel control with support for different visual styles and gradients. + + + + + Default constructor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies any region related settings from style to control. + + + + + Applies color scheme colors to the style objects. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the current style of the control. + + Instance of ElementStyle object. + + + + Returns the current mouse down style of the control. + + Instance of ElementStyle object. + + + + Returns the current mouse over style of the control. + + Instance of ElementStyle object. + + + + Paints panel using Windows themes. + + Paint event arguments + + + + Prepares paint surface for paint operation. Called as first thing in Paint event. + + + + + + Paints panel given current style. + + Paint event arguments + + + + Paints insides of the control. + + Paint event arguments. + + + + Indicates whether CanvasColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CanvasColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets the style to it's default value. + + + + + Resets the internal mouse tracking properties that track whether mouse is over the panel and whether is mouse pressed while over the panel. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Button color scheme to the control. + + + + + Applies predefined Label color scheme to the control. + + + + + Applies predefined lable style to the ElementStyle object. + + Reference to ElementStyle object. + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether focus rectangle is displayed when control has focus. + + + + + Gets or sets the canvas color for the panel. Canvas color will be visible on areas of the control that do not get covered + by the style and it will also be used as a base color for style to be painted on. + + + + + Gets or sets the panel style. + + + + + Gets or sets the panel style when mouse hovers over the panel. + + + + + Gets or sets the panel style when mouse button is pressed on the panel. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets color scheme style. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets the text rectangle. This property is set by internal implementation and it should not be set by outside code. + + + + + Gets or sets whether painting of the control is suspended. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Calls base WndProc implementation + + Describes Windows Message + + + + Gets the ItemPaintArgs which provide information for rendering. + + Reference to Canvas + Returns the new ItemPaintArgs instance + + + + Paints the background of the control + + PaintEventArgs arguments + + + + Converts the client point into the screen point. + + Client point + Client point converted into screen coordinates. + + + + Adjusts the client rectangle for the control. + + Reference to new client rectangle. + + + + Adjusts the border rectangle before the non-client border is rendered. + + Border rectangle + + + + Occurs after non-client area is rendered and provides opportunity to render on top of it. + + Reference to Graphics object. + + + + Gets the reference to the BorderStyle used by the control if any. + + + + + Returns the Windows handle associated with the control. + + + + + Returns width of the control. + + + + + Returns the height of the control. + + + + + Returns whether handled for the control has been created. + + + + + Returns background color of the control. + + + + + Returns background color of the control when Enabled=false. + + + + + Returns whether control is enabled. + + + + + Invalidates non-client area of the control. + + + + + Paints insides of the control. + + Paint event arguments. + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Applies color scheme to the panel. + + + + + Applies default group panel style to the control. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Gets or sets the panel color scheme. + + + + + Gets or sets the image that appears in title with text. + + + + + Gets or sets the position of the title image. Default value is left. + + + + + Gets or sets the scrollbar skining type when control is using Office 2007 style. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether box around the title of the group is drawn. Default value is true. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets whether panel automatically provides shadows for child controls. Default value is false. + + + + + Specifies back color when Enabled=false + + + + + Defines predefined color schemes for panel control. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether custom styling (Office 2007 style) is enabled. Default value is true. + + + + + Recalculates the size of the internal item. + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Invokes the MarkupLinkClick event. + + Provides additional data about event. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Command property value changes. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies spacing between label image and text. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the border sides that are displayed. Default value specifies border on all 4 sides. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Specifies label image. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the text vertical alignment. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets text-orientation. Default is horizontal. + + + + + Gets or sets how vertical text is rotated when TextOrientation = Vertical. + + + + + Gets the underlying LabelItem + + + + + Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + A single horizontal or vertical line control. + + + + + Initializes a new instance of the Line class. + + + + + Called when StartLineCap property has changed. + + Old property value + New property value + + + + Called when StartLineCapSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when EndLineCap property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Specifies the line alignment within control bounds. + + + + + Specifies distance from the start of a line to the beginning of a dash pattern. + + + + + Specifies the line dash style. + + + + + Gets or sets the line thickness in pixels. + + + + + Gets or sets whether vertical line is drawn. Default value is false which means horizontal line is drawn. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Indicates the start of the line cap. + + + + + Indicates the size of the start cap. + + + + + Indicates the start of the line cap. + + + + + Indicates end line cap size. + + + + + Defined line end types. + + + + + Provides data for CheckStateConvert event. + + + + + Initializes a new instance of the CheckStateConvertEventArgs class. + + + + + + Represents generic base control for items container control. + + + + + Represents base control for bars. + + + + + Provides interface for controls that support ribbon customization. + + + + + Called when item contained by the container is right-clicked. + + Instance of the item that was right-clicked. + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control. + + The AccessibleEvents object to notify the accessibility client applications of. + The child Control to notify of the accessible event. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Raises BeforeItemDrag event. + + Provides event arguments. + + + + + Called when DragInProgress property value has changed. + + + + + Releases the focus from the bar and selects the control that had focus before bar was selected. If control that had focus could not be determined focus will stay on the bar. + This method is used by internal DotNetBar implementation and you should not use it. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Invokes the ItemClick event. + + Reference to the item that was clicked. + + + + Returns the item at specified coordinates or null if no item can be found. + + X - coordinate to test. + Y - coordinate to test. + + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns automatically calculated width of the control given current content. + + Width in pixels. + + + + Clean up any resources being used. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Applies design-time defaults to control. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Indicates to control that all further update operations should not result in layout and refresh of control content. + Use this method to optimize the addition of new items to the control. This method supports nested calls meaning + that multiple calls are allowed but they must be ended with appropriate number of EndUpdate calls. + IsUpdateSuspended property returns whether update is suspended. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Indicates that update operation is complete and that control should perform layout and refresh to show changes. See BeginUpdate + for more details. + + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Invalidates the control layout and forces the control to recalculates the layout for the items it contains on next layout operation invoked using RecalcLayout method. + + + Call to this method is usually followed by the call to + RecalcLayout method to perform the control layout. + + + + + Applies any layout changes and repaint the control. + + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Gets or sets the form SideBar is attached to. + + + + + Gets or sets whether accelerator letters on buttons are underlined. Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Occurs before an item drag & drop operation is started and allows cancellation. + + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets whether control is in menu mode. + + + + + Returns the reference to the control that last had input focus. This property should be used to + determine which control had input focus before bar gained the focus. Use it to apply + the menu command to active control. + + + + + Returns whether control has any popups registered. + + + + + Gets or sets whether internal WM_GESTURENOTIFY handler is enabled. Default value is false. + + + + + Gets or sets whether ProcessDialogKey method calls base ContainerControl implementation. + By default base implementation is called but under certain conditions you might want to set + this property to true to receive KeyDown events for Arrow keys. + + + + + Gets or sets whether shortuct processing for the items hosted by this control is enabled. Default value is true. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Specifies the background style of the control. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether Key Tips (accelerator keys) for items are displayed on top of them. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Gets whether control layout is suspended becouse of the call to BeginUpdate method. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether control supports drag & drop. Default value is false. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Defines notification interface for scrollable item controls. + + + + + Indicates that item has been selected via keyboard. + + Reference to item being selected + + + + Gets or sets whether selection is allowed. + + + + + Gets or sets the selected item index. + + + + + Gets or sets the BindingContext. + + + + + Invalidates non-client area of the control. This method should be used + when you need to invalidate non-client area of the control. + + + + + Scrolls the control so that item is displayed within the visible bounds of the control. AutoScroll must be set to true for this method to work. + + Item to ensure visibility for. Item must belong to this control. + + + + Indicates that item has been selected via keyboard. + + Reference to item being selected + + + + Called when an item should be selected as result of the keyboard action. + + Item that is being selected. + + + + Raises the DataSourceChanged event. + + An EventArgs that contains the event data. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Raises the DataNodeCreated event. + + Provides event arguments. + + + + Raises the SelectedIndexChanged event. + + Event arguments. + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Indicates whether container responds to keyboard presses and changes the active/mouse over item. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Indicates whether control can be scrolled when client area is dragged using mouse. Default value is true. + + + + + Gets the reference to internal vertical scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets the reference to internal horizontal scroll-bar control if one is created or null if no scrollbar is visible. + + + + + Gets or sets a value indicating whether the control enables the user to scroll to items placed outside of its visible boundaries. + + + + + Gets or sets the minimum size of the auto-scroll. Returns a Size that represents the minimum height and width of the scrolling area in pixels. + This property is managed internally by control and should not be modified. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Gets or sets whether all painting in control is suspended. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Returns collection of items on a bar for binding support. + + + + + Gets or sets the item template that is repeated for each data-row when using data binding. + + + + + Gets the collection of the binding applied to ItemTemplate visual when using data-binding. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether automatic drag & drop support is enabled. Default value is false. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Occurs when the DataSource changes. + + + + + Occurs when a item for an data-bound object item has been created and provides you with opportunity to modify the created item. + + + + + Occurs when value of SelectedIndex property has changed. + + + + + Indicates whether touch support for scrolling is enabled. + + + + + Initializes a new instance of the ListBoxAdv class. + + + + + Called when CheckBoxesVisible property has changed. + + Old property value + New property value + + + + Called when ItemHeight property has changed. + + Old property value + New property value + + + + Called when SelectionMode property has changed. + + Old property value + New property value + + + + Selects or clears the selection for the specified item in a ListBoxAdv. Use this property to set the selection of items in a multiple-selection ListBoxAdv. To select an item in a single-selection ListBox, use the SelectedIndex property. + + The zero-based index of the item in a ListBox to select or clear the selection for. You can pass -1 to clear the selection. + true to select the specified item; otherwise, false. + + + + Selects or clears the selection for the specified item in a ListBoxAdv. Use this property to set the selection of items in a multiple-selection ListBoxAdv. To select an item in a single-selection ListBox, use the SelectedIndex property. + + The zero-based index of the item in a ListBox to select or clear the selection for. You can pass -1 to clear the selection. + true to select the specified item; otherwise, false. + Indicates the source of the change. + + + + Selects next visible list box item. + + + + + Selects previous visible list box item. + + + + + Gets ListBoxItem which represents an object value from Items collection when Items collection contains non ListBoxItem objects. + + Value to get ListBoxItem for. + + + + + Called when DisplayMember property has changed. + + Old property value + New property value + + + + Called when CheckStateMember property has changed. + + Old property value + New property value + + + + Raises CheckStateConvert event. + + Provides event arguments. + + + + Called when ValueMember property has changed. + + Old property value + New property value + + + + Clears internal property descriptors cache when data-binding is used. In most cases it is not needed that you call this method. Do so only if instructed by DevComponents support. + + + + + Finds the first item in the ListBox that starts with the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that starts with the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the item before the first item to be searched. Set to negative one (-1) to search from the beginning of the control. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that exactly matches the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Finds the first item in the ListBox that exactly matches the specified string. The search starts at a specific starting index. + + The text to search for. + The zero-based index of the item before the first item to be searched. Set to negative one (-1) to search from the beginning of the control. + The zero-based index of the first item found; returns ListBox.NoMatches if no match is found. + + + + Raises ItemCheck event. + + Provides event arguments. + + + + Sets the check state of the item at the specified index. + + The index of the item to set the state for. + One of the CheckState values. + + + + Gets the list of items displayed in list box. + + + + + Indicates whether check-boxes are visible inside list box items. + + + + + Indicates fixed item height. Maybe set to 0 to indicate that each item should be sized based on its content. + + + + + Specifies the selection mode used by the control. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBoxAdv. Negative one (-1) is returned if no item is selected. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBoxAdv. Do not modify items in this collection. To select or deselect list items while in multi-selection mode use SetSelected method. + + + + + Gets a collection containing the currently selected items in the ListBoxAdv. Do not modify items in this collection. To select or deselect list items while in multi-selection mode use SetSelected method. + + + + + Gets or sets the selected item. + + + + + Indicates property name which will provide the value to display for this list box when data-binding is used and DataSource is set. + + + + + Indicates property name which will provide the value for CheckState of the list box item when data-binding is used and DataSource is set. + + + + + Occurs when using data-binding with CheckStateMember specified and it allows you to convert a property value to CheckState. + + + + + Returns the enumerator with selected values if any + + + + + Gets or sets the value of the member property specified by the ValueMember property. If ValueMember specifies property that cannot be found on selected object this property returns null. + + + + + Indicates property name which will return the value for the selected item when SelectedValue property is accessed. + + + + + Occurs when CheckState of an ListBoxItem changes and it allows you to cancel the change. + + + + + Gets collection of checked items in the list. Modifying this collection does not have any effect on actual checked items. Use SetItemCheckState to set checked state of an item or access ListBoxItem directly and set its CheckState property. + + + + + + Defines selection modes for list control. + + + + + Items cannot be selected. + + + + + Only one item at the time can be selected. + + + + + Multiple items can be selected. A mouse click or pressing the SPACEBAR selects or deselects an item in the list. + + + + + Multiple items can be selected. Pressing SHIFT and clicking the mouse or pressing SHIFT and one of the arrow keys (UP ARROW, DOWN ARROW, LEFT ARROW, and RIGHT ARROW) extends the selection from the previously selected item to the current item. Pressing CTRL and clicking the mouse selects or deselects an item in the list. + + + + + Indicates that CheckState change of the item should be canceled. + + + + + Specifies the ListBoxItem that was changing. + + + + + When data-bound provides the object which was used to generate an ListBoxItem. + + + + + Initializes a new instance of the ListBoxAdvItemCheckEventArgs class. + + + + + + + Represents the ListBoxAdv item for internal use. Not for public usage. + + + + + Returns copy of the item. + + + + + Copies the ListBoxItem specific properties to new instance of the item. + + New ListBoxItem instance. + + + + Copies the ListBoxItem specific properties to new instance of the item. + + New item instance. + + + + Called when CheckState property has changed. + + Old property value + New property value + + + + Called when IsSelected property has changed. + + Old property value + New property value + + + + Sets selected state of the item including the source of the action that caused the change. + + + + + + + Called when HotTracking property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether mouse is over the item. + + + + + Gets the mouse state of the check box part of item if visible. + + + + + Indicates check-box state if visible. + + + + + Gets or sets whether item is selected. + + + + + Indicates whether item changes its background colors when mouse is over the item. + + + + + Specifies image displayed on the item. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Gets or sets the color of the text. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the text alignment. Default value is left. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the ListBoxItem being rendered. + Reference to the graphics object. + + + + Defines color table for ListBoxItem. + + + + + Specifies default state color table. + + + + + Specifies mouse over state color table. + + + + + Specifies selected state color table. + + + + + Defines single state color table for ListBoxItem. + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + + + + + Initializes a new instance of the OfficeListBoxItemStateColorTable class. + + + + + + Indicates item text color. + + + + + Gets or sets the background colors for the item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Represents the extended ListView control with the Office 2007 Style. + + + + + Called when ColumnHeaderFont property has changed. + + Old property value + New property value + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Resets internal Column Header handler. This method should be called after you change the View property + at run-time. If your control is always in single view there is no need to call this method. This method + will work only when controls handle has already been created. + + + + + Resets the internal color table reference. This method is usually called automatically by + + + + + Gets whether property should be serialized by VS.NET designer. + + + + + Resets property to its default value. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Gets or sets the column header font. Default value is null which means controls Font property is used. + + + + + Gets or sets the item foreground color when control or item is disabled. By default SystemColors.Dark is used. + + + + + Gets or sets whether control displays focus cues when focused. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Specifies the control border style. Default value has Class property set so the system style for the control is used. + + + + + Specifies back color when Enabled=false + + + + + Summary description for MessageHandler. + + + + + Calculates the size of non-client area of the control. + + + + + Paints the non-client area of the control. + + + + + Draws the non-client area buffered. + + + + + Represents the PageNavigator control + + + + + Constructor + + + + + Hooks or unhooks our control events + + true to hook, false to unhook + + + + Handles NavigatePreviousPage events + + + + + + + Raises the NavigatePreviousPage event + + + + + Handles NavigateToday events + + + + + + + Raises the NavigateToday event + + + + + Handles NavigateNextPage events + + + + + + + Raises the NavigateNextPage event + + + + + Forces the button to perform internal layout. + + + + + Dispose + + + + + + Occurs when NavigateNextPage button is clicked + + + + + Occurs when NavigateToday button is clicked + + + + + Occurs when NavigatePreviousPage button is clicked + + + + + DefaultSize + + + + + Gets or sets the layout orientation. Default value is horizontal. + + + + + Gets or sets the tooltip for the PreviousPage button of the control + + + + + Gets or sets the tooltip for the Today button + + + + + Gets or sets the tooltip for the NextPage button + + + + + Gets/Sets the visual style for the control. + + + + + PageNavigator buttons + + + + + Previous page + + + + + Today + + + + + Next page + + + + + Represents the PageNavigate item + + + + + Creates new instance of PageNavigateItem + + + + + Creates new instance of PageNavigateItem and assigns the name to it + + Item name + + + + Handles size recalc + + + + + Handles external size changes + + + + + Lays out our control based upon its + vertical / horizontal orientation + + + + + Handles control rendering + + + + + + Draws the PreviousPage button + + Graphics + Office2007ScrollBarColorTable + + + + Gets the PreviousPage bitmap + + + + + + + + Creates the PreviousPage bitmap + + + + + + + + Draws the Today button + + Graphics + Office2007ScrollBarColorTable + + + + Gets the Today Bitmap + + + + + + + + Creates the Today Bitmap + + + + + + + + Draws the NextPage button + + + + + + + Gets the NextPage Bitmap + + + + + + + + Creates the NextPage Bitmap + + + + + + + + Centers the given rect + + + + + + + Processes InternalMouseMove events + + + + + + Returns the HitText area for the given point + + + + + + + Processes Mouse Leave events + + + + + Processes Mouse Down events + + + + + + Processes Mouse Up events + + + + + + Raises the NavigatePreviousPage event + + + + + Raises the NavigateToday event + + + + + Raises the NavigateNextPage event + + + + + Handles timer click events + + + + + + + Enables our click timer + + + + + Disposes of the click timer + + + + + OnTooltipChanged + + + + + Updates the control tooltip + + + + + Returns copy of the item + + + + + Copies the PageNavigatorItem specific properties to + new instance of the item + + New PageNavigatorItem instance + + + + Dispose + + + + + Releases the given bitmap + + Bitmap to release + + + + Occurs when NavigateNextPage button is clicked + + + + + Occurs when NavigateToday button is clicked + + + + + Occurs when NavigatePreviousPage button is clicked + + + + + Gets or sets the MouseOverPart + + + + + Gets or sets the MouseDownPart + + + + + Gets or sets the control orientation. Default value is Horizontal + + + + + Gets or sets whether Click event will be auto repeated + when mouse button is kept pressed over the item + + + + + Gets or sets the auto-repeat interval for the click event + when mouse button is kept pressed over the item + + + + + Gets or sets the tooltip for the PreviousPage button of the control + + + + + Gets or sets the tooltip for the Today button + + + + + Gets or sets the tooltip for the NextPage button + + + + + Defines the PageNavigator item parts + + + + + Indicates no part + + + + + Indicates the PreviousPage button of the control + + + + + Indicates the TodayPage button of the control + + + + + Indicates the NextPage button of the control + + + + + Initializes a new instance of the PageSlider class. + + + + + Raises SelectedPageChanged event. + + Provides event arguments. + + + + Called when IndicatorVisible property has changed. + + Old property value + New property value + + + + Returns array of all pages in control. + + Array of pages. + + + + Removes and disposes all pages within the control. + + + + + Called when SelectedPage property has changed. + + Old property value + New property value + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Called when SelectedPagePadding property has changed. + + Old property value + New property value + + + + Called when PageSpacing property has changed. + + Old property value + New property value + + + + Called when NextPageVisibleMargin property has changed. + + Old property value + New property value + + + + Called when Orientation property has changed. + + Old property value + New property value + + + + Called when ScrollBarVisibility property has changed. + + Old property value + New property value + + + + Called when TouchEnabled property has changed. + + Old property value + New property value + + + + Occurs when selected page has changed. + + + + + Gets or sets whether current page indicator is visible. Default value is true. + + + + + Indicates selected page. + + + + + Indicates the animation time in milliseconds for operations that perform visual animation of transition. Set to zero to disable animation. + + + + + Gets or sets zero based selected page index. If there is no page selected returns -1. + + + + + Gets the total number of pages displayed by the control. + + + + + Gets or sets the single page padding. + + + + + Gets or sets the spacing in pixels between pages. + + + + + Gets or sets the page layout orientation. Default is horizontal. + + + + + Indicates whether page can be dragged using mouse to change currently selected page + + + + + Indicates whether selected page can be changed by using mouse drag on PageSlider client area which is not covered by pages. + + + + + Indicates scrollbar visibility. + + + + + Gets or sets the time in milliseconds that scrollbar is kept visible when there is no activity in control and mouse is over the control. + + + + + Indicates whether native touch support in control is enabled if available on target system. + + + + + Specifies scrollbar visibility. + + + + + Scrollbars are not visible. + + + + + Scrollbars are visible only if mouse is inside of the control. + + + + + Scrollbars are always visible. + + + + + Specifies level of touch enabled on the control. + + + + + Touch is enabled control wide. + + + + + Touch is disabled control wide. + + + + + Touch is enabled but only for the direct control client content. If touch input occurs on any child control it is not processed. + + + + + Called when PageNumber property has changed. + + Old property value + New property value + + + + Gets or sets page number. Page number determines the order in which pages are displayed inside of the PageSlider control. + + + + + Represents control which visually indicates current step in a sequence. + + + + + Initializes a new instance of the StepIndicator class. + + + + + Called when StepCount property has changed. + + Old property value + New property value + + + + Called when CurrentStep property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Orientation property has changed. + + Old property value + New property value + + + + Gets or sets the total number of steps that control will track. Default value is 10. + + + + + Gets or sets the current step in sequence. Current step should be less or equal than StepCount. + + + + + Gets or sets the background color of the control. + + + + + Gets or sets the color of the current step indicator. + + + + + Indicates the control orientation. + + + + + Processes the resizing messages. + + The message. + true, if the WndProc method from the base class shouldn't be invoked. + + + + Gets whether popup has been resized by end-user. + + + + + Type of resize mode, grips are automatically drawn at bottom-left and bottom-right corners. + + + + + Gets or sets whether Close button is visible in fotter. Resize handle must also be visible in order for close button to render. + + + + + Gets resize grip bounds. + + + + + Initializes a new instance of the ResizeGripColors structure. + + + + + + + + Specifies the popup resize modes + + + + + Raises Closed event. + + Provides event arguments. + + + + Raises Closing event. + + Provides event arguments. + + + + Show control on popup at specified location. + + + + + Shows control on popup at specified location with specified popup resize edges. + + + + + Shows control on popup at specified location and size with specified popup resize edges. + + + + + Hides popup if visible. + + + + + Occurs after popup is closed. + + + + + Occurs before popup is closed and allows canceling. + + + + + Gets whether popup is visible. + + + + + Gets the control displayed on popup. + + + + + Gets or sets the popup padding. + + + + + Gets or sets popup margin. + + + + + Represents the stand-alone progress bar control. + + + + + Advances the current position of the progress bar by the amount of the Step property. + + + + + Advances the current position of the progress bar by the specified amount. + + The amount by which to increment the progress bar's current position. + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the progress bar. + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the type of progress bar used to indicate progress. The Standard style displays the progress based on Minimum, Maximum and current Value. + The Marquee type is automatically moving progress bar that is used to indicate an ongoing operation for which the actual duration cannot be estimated. + + + + + Gets or sets the marquee animation speed in milliseconds. + + + + + Gets or sets the predefined color state table for progress bar. Color specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Gets the underlying ProgressBarItem + + + + + Defines color table for the StepItem. + + + + + Gets or sets the default state StepItem colors. + + + + + Gets or sets the mouse over state StepItem colors. + + + + + Gets or sets the StepItem colors when mouse is pressed over the item. + + + + + Gets or sets the StepItem colors when Value property is greater than Minimum property value, i.e. item is reporting progress. + Note that only Background color is used when progress indicator is drawn. + + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Paints StepItem. + + Provides arguments for the operation. + + + + Represents the color table for StepItem single state. + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + + + + Initializes a new instance of the OfficeStepItemStateColorTable class. + + + + + + + + + + Gets or sets the background colors for the step item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Gets or sets the text color for the step item. + + + + + Gets or sets the border colors of the step item. + + + + + Represents the progress steps control. + + + + + Initializes a new instance of the ProgressSteps class. + + + + + Returns collection of items on a bar. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the arrow pointer width for the StepItem objects hosted within this container. + + + + + Represents a step item which is used to show single step in multi-step progress control. + + + + + Creates new instance of StepItem. + + + + + Creates new instance of StepItem and assigns the name to it. + + Item name. + + + + Creates new instance of StepItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the StepItem specific properties to new instance of the item. + + New StepItem instance. + + + + Copies the StepItem specific properties to new instance of the item. + + New StepItem instance. + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Called when Minimum property has changed. + + Old property value + New property value + + + + Called when Maximum property has changed. + + Old property value + New property value + + + + Called when Value property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when MinimumSize property has changed. + + Old property value + New property value + + + + Called when HotTracking property has changed. + + Old property value + New property value + + + + Called when ImageTextSpacing property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets the render path of the item. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Indicates the image that is displayed next to the item text label. + + + + + Gets or sets whether this is first item in StepControl. + + + + + Gets or sets whether this is laste item in StepControl. + + + + + Indicates minimum size of the item + + + + + Specifies whether item changes its appearance when mouse is moved over the item + + + + + Gets whether mouse is over the item. + + + + + Gets whether left mouse button is pressed on the item. + + + + + Indicates the spacing between image and text. + + + + + Gets or sets padding around content of the item. + + + + + Indicates the array of colors that when set are used to draw the current progress, i.e. Value>Minimum + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Gets or sets the text alignment. Default value is left. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the color of the text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Container for the StepItem objects. + + + + + Initializes a new instance of the StepContainer class. + + + + + Returns copy of the item. + + + + + Copies the StepContainer specific properties to new instance of the item. + + New StepContainer instance. + + + + Copies the StepContainer specific properties to new instance of the item. + + New StepContainer instance. + + + + Called when PointerSize property has changed. + + Old property value + New property value + + + + Gets or sets the arrow pointer width for the StepItem objects hosted within this container. + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Slider item being rendered. + Reference to the graphics object. + + + + Represents Range Slider Control. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Raises GetRangeTooltipText event. + + Provides event arguments. + + + + Forces the button to perform internal layout. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value has changed and allow the cancellation of the change. + + + + + Occurs after Value property has changed + + + + + Occurs when control is about to display the range tooltip and it allows you to customize tooltip + + + + + Gets the RangeSliderItem. + + + + + Indicates whether clicking the area outside of the range change buttons moves the range change button to the clicked location if possible thus allowing range change. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Indicates image to be used as maximum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Indicates image to be used as minimum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Specifies minimum absolute range that user can select. Absolute range is defined as Abs(Value.Max-Value.Min) Applies to user performed selection through mouse only. + + + + + Gets current part that is pressed using mouse left button. + + + + + Gets mouse over part. + + + + + Gets bounds of maximum range sliding button. + + + + + Gets bounds of minimum range sliding button. + + + + + Indicates the size of the range change buttons. + + + + + Specifies the height of the range line + + + + + Gets or sets the string that is used to format the range value to be displayed while user moves the range buttons. Value set here is used in string.Format(RangeTooltipFormat, Value.Min, Value.Max). + + + + + Gets or sets the color of the range value. + + + + + Specifies whether range tooltip is shown while user is changing the range + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets tick marks bounds. + + + + + Gets tick marks bounds for second marker is visible. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Indicates tick display period + + + + + Indicates whether tick lines are shown + + + + + Gets or sets the range displayed by the control. + + + + + Represents the Rating control. + + + + + Initializes a new instance of the Rating class. + + + + + Raises the ParseRating event. + + Provides event arguments. + + + + Raises the ParseAverageRatingValue event. + + Provides event arguments. + + + + Raises the AverageRatingChanged event. + + Event data. + + + + Raises the RatingChanged event. + + Event data. + + + + Raises RatingChanging event. + + Event data + + + + Called when Command property value changes. + + + + + Occurs when Rating property has changed. + + + + + Occurs when RatingValue property has changed. + + + + + Occurs when Rating property is about to be changed and provides opportunity to cancel the change. + + + + + Occurs when AverageRating property has changed. + + + + + Occurs when AverageRatingValue property has changed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when RatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when AverageRatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Indicates number of stars used for the rating. Minium value is 2 stars. + + + + + Gets or sets the rating value represented by the control. Default value is 0 which indicates + that there is no rating set. Maximum value is 5. + + + + + Gets or sets the average rating shown by control. Control will display average rating (if set) when no explicit + Rating value is set through Rating property. Minimum value is 0 and Maximum value is 5. + + + + + Gets or sets the AverageRating property. This property is provided for Data-Binding with NULL value support. + + + + + Gets the reference to custom rating images. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets whether rating can be edited. Default value is true. + + + + + Gets or sets the orientation of rating control. + + + + + Gets or sets the Rating property value. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the spacing between optional text and the rating. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents an image control with built-in reflection. + + + + + Initializes a new instance of the ReflectionImage class. + + + + + Gets or sets the image displayed on the control. + + + + + Gets or sets whether reflection effect is enabled. Default value is true. + + + + + Represents an single line of text label control with text-markup support and built-in reflection. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether reflection effect is enabled. Default value is true. + + + + + Represents control which handles scroll-bars. + + + + + Initializes a new instance of the ScrollbarControl class. + + + + + Called when ScrollOverrideControl property has changed. + + Old property value + New property value + + + + Gets or sets the scroll-bar visual style. + + + + + Initializes a new instance of the RichTextBoxEx class. + + + + + Raises AcceptsTabChanged event. + + Provides event arguments. + + + + Raises HideSelectionChanged event. + + Provides event arguments. + + + + Raises ModifiedChanged event. + + Provides event arguments. + + + + Raises MultilineChanged event. + + Provides event arguments. + + + + Raises ReadOnlyChanged event. + + Provides event arguments. + + + + Raises LinkClicked event. + + Provides event arguments. + + + + Raises Protected event. + + Provides event arguments. + + + + Raises SelectionChanged event. + + Provides event arguments. + + + + Raises HScroll event. + + Provides event arguments. + + + + Raises HScroll event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Appends text to the current text of a text box + + + + + Determines whether you can paste information from the Clipboard in the specified data format. + + + + + + + Clears all text from the text box control. + + + + + Clears information about the most recent operation from the undo buffer of the text box. + + + + + Copies the current selection in the text box to the Clipboard. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the control. + + + + + Searches the text in a RichTextBox control for a string. + + + + + + + Searches the text of a RichTextBox control for the first instance of a character from a list of characters. + + + + + + + Searches the text in a RichTextBox control for a string with specific options applied to the search. + + + + + + + + Searches the text of a RichTextBox control, at a specific starting point, for the first instance of a character from a list of characters. + + + + + + + + Searches the text in a RichTextBox control for a string at a specific location within the control and with specific options applied to the search. + + + + + + + + + Searches a range of text in a RichTextBox control for the first instance of a character from a list of characters. + + + + + + + + + Searches the text in a RichTextBox control for a string within a range of text within the control and with specific options applied to the search. + + + + + + + + + + Retrieves the character that is closest to the specified location within the control. + + + + + + + Retrieves the index of the character nearest to the specified location + + + + + + + Retrieves the index of the first character of a given line. (Inherited from TextBoxBase.) + + + + + + + Retrieves the index of the first character of the current line. (Inherited from TextBoxBase.) + + + + + + Retrieves the line number from the specified character position within the text of the RichTextBox control. + + + + + + + Retrieves the location within the control at the specified character index. + + + + + + + Loads a rich text format (RTF) or standard ASCII text file into the RichTextBox control. + + + + + + Loads the contents of an existing data stream into the RichTextBox control. + + + + + + + Loads a specific type of file into the RichTextBox control. + + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + Pastes the contents of the Clipboard in the specified Clipboard format. + + + + + + Reapplies the last operation that was undone in the control. + + + + + Saves the contents of the RichTextBox to a rich text format (RTF) file. + + + + + + Saves the contents of a RichTextBox control to an open data stream. + + + + + + + Saves the contents of the RichTextBox to a specific type of file. + + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Activates the control. (Inherited from Control.) + + + + + Selects a range of text in the text box. + + + + + + + Selects all text in the text box. + + + + + Undoes the last edit operation in the text box. + + + + + Gets the reference to internal RichTextBox control. + + + + + Occurs when the value of the AcceptsTab property changes + + + + + Occurs when the value of the HideSelection property changes. + + + + + Occurs when the value of the Modified property changes. + + + + + Occurs when the value of the Multiline property changes. + + + + + Occurs when the value of the ReadOnly property changes. + + + + + Occurs when a hyperlink in the text is clicked. + + + + + Occurs when the user takes an action that would change a protected range of text. + + + + + Occurs when the current selection has changed. + + + + + Occurs when the horizontal scroll bar is clicked. + + + + + Occurs when the vertical scroll bar is clicked. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets the back color of the RichTextBox. + + + + + Gets or sets whether tab characters are accepted as input + + + + + Gets or sets whether automatic word selection is enabled. + + + + + Gets or sets indent for bullets in the control. + + + + + Gets or sets whether URLs are automatically formatted as links. + + + + + Gets or sets whether drag/drop of text, pictures and other data is enabled. + + + + + Gets or sets whether selection should be hidden when the edit control loses focus. + + + + + Gets or sets lines of text in a multi-line edit, as an array of String values. + + + + + Gets or sets maximum number of characters that can be entered into the edit control. + + + + + Gets or sets whether the text in the control can span more than one line. + + + + + Gets or sets whether the text in the edit control can be changed or not. + + + + + Gets or sets right margin dimensions. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + + + + + Gets or sets for multi-line edit control, which scroll bars will be shown. + + + + + Gets or sets whether shortcuts defined for the control are enabled. + + + + + Gets or sets whether selection margin is visible. + + + + + Gets or sets whether lines are automatically word-wrapped. + + + + + Gets or sets current zoom factor for the control content. + + + + + Should be fired when non-client size of the control changes, i.e. when WM_NCCALCSIZE message is received. + + + + + Should be fired when scroll-bar value on child control changes. + + + + + Should be fired when control receives WM_MOVE message. + + + + + Gets whether control is in design mode. + + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Defines arguments for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + + + + Initializes a new instance of the ScrollValueChangedEventArgs class. + + + + + + Defines information for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + + + + Defines delegate for IScrollBarOverrideSupport.ScrollBarValueChanged event. + + Sender. + Event arguments + + + + Gets or sets the scroll-bar visual style. + + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Paints ListBoxItem. + + Provides arguments for the operation. + + + + Represents SideNav control to create "hamburger" menus. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Updates the control colors from the global color table. + + + + + Maximizes control width so it fills up space to the right of the control. + + Source of the event. + + + + Restores the control to previous size if it was maximized before. + + Source of event. + + + + Opens the control, i.e. expands it, selects specified item and shows its associated panel. + + Item to select. + Source of the event. + + + + Closes the control, i.e. unselects any selected item, hide its associated panel and folds the control. + + Source of the event. + + + + Raises IsMenuExpandedChanged event. + + Provides event arguments. + + + + Expands or collapses the control items menu. + + + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Raises BeforeMaximize event. + + Provides event arguments. + + + + Raises BeforeRestore event. + + Provides event arguments. + + + + Raises BeforeOpen event. + + Provides event arguments. + + + + Raises BeforeClose event. + + Provides event arguments. + + + + Raises SelectedItemChanged event. + + Provides event arguments. + + + + Indicates whether splitter that is located on right hand side of open control is visible and enabled. + + + + + Indicates whether button which folds/closes the control is visible. + + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether control is closed, i.e. whether selected item panel is shown or not. When closed + any selected item is unselected and selected panel hidden. + + + + + Indicates whether side menu is expanded, i.e. shows both image and text. When menu is collapsed only image is shown. + + + + + Occurs when IsMenuExpanded property has changed its value. + + + + + Indicates the animation time in milliseconds for operations that perform visual animation of transition. Set to zero to disable animation. + + + + + Occurs before the control is maximized and allows you to cancel that. + + + + + Occurs before the control is restored and allows you to cancel that. + + + + + Occurs before the control is opened and allows you to cancel that. + + + + + Occurs before the control is closed and allows you to cancel that. + + + + + Gets currently selected item. Only items with Panel assigned can be selected. + + + + + Occurs when SelectedItem changes. + + + + + Gets reference to internal SideNavStrip control. + + + + + Defines delegate for the CancelSource events. + + + + + + + Event arguments for CancelSourceEventHandler + + + + + Gets the source of the event. + + + + + Gets any optional data that is associated with the event. + + + + + Creates new instance of the object. + + Source of event + + + + Creates new instance of the object. + + Source of event + Optional data associated with the event. + + + + Initializes a new instance of the MetroTabItem class. + + + + + Selects the tab. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets cached image rendering bounds. + + + + + Gets or sets cached text rendering bounds. + + + + + Gets or sets the panel assigned to this tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates the array of colors that when set are used to draw the background of the item. + + + + + Indicates the array of colors that when set are used to draw the border of the item. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Indicates an optional title for the associated panel. If not set item text is used. + + + + + Gets or sets whether this item acts as the SideNav control system menu which collapses and expands the SideNav items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Provides data for the SideNavItem rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Indicates whether to cancel system rendering of the item. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the ListBoxItem being rendered. + Reference to the graphics object. + + + + Defines color table for SideNav control. + + + + + Gets or sets the color table for SideNavItem + + + + + Gets or sets the background color of SideNav title bar. + + + + + Gets or sets the border color of the title of SideNav control. + + + + + Gets or sets the color of the strip which hosts the items. + + + + + Gets or sets the border color of the SideNav control. + + + + + Gets or sets the back color of panels that are attached to SideNavItem and displayed when SideNavItem is selected. + + + + + Defines color table for SideNavItem + + + + + Gets or sets the color table for Default state. + + + + + Gets or sets the color table for MouseOver state. + + + + + Gets or sets the color table for Pressed state. + + + + + Gets or sets the color table for Selected state. + + + + + Defines state color table for SideNavItem + + + + + Indicates item text color. + + + + + Gets or sets the background colors for the item. + + + + + Gets or sets the back colors gradient angle if there is more than one color in BackColors array. + + + + + Gets or sets the gradient colors positions if there is more than one color in BackColors array. + + + + + Gets or sets the border colors for the item. + + + + + Indicates the corner radius. + + + + + Represents a panel which hosts controls for the SideNavItem. + + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Returns collection of items on a bar. + + + + + Gets currently selected item. + + + + + Represents the panel which can slide out and into the view. + + + + + Raises IsOpenChanged event. + + Provides event arguments. + + + + Called when SlideSide property has changed. + + Old property value + New property value + + + + Called when IsOpen property has changed. + + Old property value + New property value + + + + Slides panel into the view. + + + + + Waits for current slide animation to finish and then returns control. + + + + + Slides panel out of the view. + + + + + Called when AnimationTime property has changed. + + Old property value + New property value + + + + Called when SlideOutButtonVisible property has changed. + + Old property value + New property value + + + + Called when SlideOutButtonSize property has changed. + + Old property value + New property value + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SlideOutActiveButtonSize property has changed. + + Old property value + New property value + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SlideOutButtonStyle property has changed. + + Old property value + New property value + + + + Called when CenterContent property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Occurs when IsOpen property value has changed, i.e. slide-panel is shown or hidden. + + + + + Gets or sets side panel slides into. + + + + + Gets or sets whether panel is open. When this property is changed panel will slide in or out of the view. + + + + + Gets or sets whether panel uses modal animation, meaning when IsOpen property is set the call is not returned until animation is complete. + + + + + Gets or sets the open panel bounds. When control IsOpen=false and panel is collapsed its original bounds are stored in OpenBounds property and restored once panel is open. + + + + + Gets or sets the animation duration time in milliseconds. Setting this property to 0 will disable slide animation. + + + + + Gets or sets whether slide out button is shown when panel is out of the view and which allows panel to be shown. + + + + + Gets or sets the slide-out buttton size in default state. + + + + + Gets or sets active (mouse over) slide out button size. + + + + + Gets or sets slide-out button style. + + + + + Gets or sets whether panel centers the Controls inside of it. Default value is false. + + + + + Gets or sets the color of the Symbol displayed on slideout button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the slideout button. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Defines the side SlidePanel slides into. + + + + + Represents the slider button that is used by SlidePanel when collapsed to slide it back into the view. + + + + + Initializes a new instance of the SliderButton class. + + + + + + Called when AutoTopMostEnabled property has changed. + + Old property value + New property value + + + + Called when SliderSize property has changed. + + Old property value + New property value + + + + Called when ActiveSliderSize property has changed. + + Old property value + New property value + + + + Called when IsActive property has changed. + + Old property value + New property value + + + + Called when IsMouseDown property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets or sets whether slider button automatically checks whether its top-most control on the form, i.e. visible at all times on top of other controls + + + + + Gets or sets the slider size in default state. Notice that size specified here applies to Left and Right SlidePanel positions. For Top and Bottom positions the Width and Height are interchaged. + + + + + Gets or sets the slider size in active state. Notice that size specified here applies to Left and Right SlidePanel positions. For Top and Bottom positions the Width and Height are interchaged. + + + + + Gets or sets whether slider button is in active state. + + + + + Gets or sets the style associated with the control. + + + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Represents the Slider control. + + + + + Raises the IncreaseButtonClick event. + + Provides event arguments + + + + Raises the DecreaseButtonClick event. + + Provides event arguments + + + + Raises the ValueChanged event. + + Provides event arguments + + + + Raises the ValueChanging event. + + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Forces the button to perform internal layout. + + + + + Called when Command property value changes. + + + + + Occurs after Value property has changed. + + + + + Occurs before Value property has changed. + + + + + Occurs when Increase button is clicked using mouse. + + + + + Occurs when Decrease button is clicked using mouse. + + + + + Gets or sets whether text-markup support is enabled for controls Text property. Default value is true. + Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the slider. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the tooltip for the Increase button of the slider. + + + + + Gets or sets the tooltip for the Decrease button of the slider. + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets the SliderItem. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the control which displays symbol from symbols library. + + + + + Initializes a new instance of the SymbolBox class. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Resets style to default value. Used by windows forms designer. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Specifies the background style of the control. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises CommandKeyDown event. + + Provides event arguments. + + + + Invalidates non-client area of the text box as response to the border changes. + + + + + Calculates and sets the text-box height based on font and style. This method is used internally and should not be used. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Invokes ButtonCustomClick event. + + + + + Invokes ButtonCustomClick2 event. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + Indicates whether internal override for IsInputKey returns true for the Enter key. + + + + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. + + + + + Gets or sets whether control prevents Beep sound when Enter key is pressed. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Occurs during preprocessing to handle command keys. Command keys are keys that always take precedence over regular input keys. Examples of command keys include accelerators and menu shortcuts. Set Handled=true to indicate that you handled the key and that it should not be passed for further processing. + + + + + Gets or sets the scrollbar skinning type when control is using Office 2007 style. + + + + + Specifies the control border style. Default value has Class property set so the system style for the control is used. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Specifies back color when Enabled=false + + + + + Represents the Vertical Office 2007 Style Scroll Bar control. + + + + + Gets or sets whether custom styling (Office 2007 style) is enabled. Default value is true. + + + + + Class represents single token in TokenEditor control. + + + + + Initializes a new instance of the EditToken class. + + Indicates token value. + + + + Initializes a new instance of the EditToken class. + + Indicates token value + Indicates token text + + + + Initializes a new instance of the EditToken class. + + Indicates token value + Indicates token text + Indicates token image + + + + Called when Value property has changed. + + Old property value + New property value + + + + Called when Text property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Tooltip property has changed. + + Old property value + New property value + + + + Called when MouseOverPart property has changed. + + Old property value + New property value + + + + Indicates the token value, for example an email token has email address as token Value and full name as token Text. + + + + + Indicates the token text, for example an email token has email address as token Value and full name as token Text. + + + + + Gets or sets custom data associated with the object. + + + + + Gets the display bounds of the token, if displayed, inside of TokenEditor control. + + + + + Indicates the image that is displayed next to the token + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the token instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates tooltip that is displayed when mouse is over the token and token is selected. + + + + + Gets the part of the token mouse is over. Valid only when token is selected. + + + + + Gets the bounds of the remove button if displayed. Valid only when token is selected. + + + + + Gets the bounds of the image if displayed. Valid only when token is selected. + + + + + Indicates whether token is selected. + + + + + Indicates whether token is focused while selected. + + + + + Defines the token parts. + + + + + Identifies no token part. + + + + + Identifies the token body/text. + + + + + Identifies the remove token button. + + + + + Identifies the token image. + + + + + Initializes a new instance of the TokenEditor class. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Resets style to default value. Used by windows forms designer. + + + + + Raises SelectedTokensChanged event. + + Provides event arguments. + + + + Called when RemoveTokenButtonVisible property has changed. + + Old property value + New property value + + + + Returns the token from SelectedTokens at specified position or null/nothing if no token is at given location. + + Location in client coordinates to test. + EditToken instance or null/nothing + + + + Raises TokenMouseEnter event. + + Provides event arguments. + + + + Raises TokenMouseLeave event. + + Provides event arguments. + + + + Raises TokenMouseClick event. + + Provides event arguments. + + + + Raises TokenMouseClick event. + + Provides event arguments. + + + + Raises TokenMouseHover event. + + Provides event arguments. + + + + Raises RemovingToken event. + + Provides event arguments. + + + + Called when ReadOnly property has changed. + + Old property value + New property value + + + + Called when DropDownHeight property has changed. + + Old property value + New property value + + + + Called when DropDownWidth property has changed. + + Old property value + New property value + + + + Raises AutoCompletePopupOpened event. + + Provides event arguments. + + + + Raises BeforeAutoCompletePopupOpen event. + + Provides event arguments. + + + + Raises BeforePopupOpen event. + + Provides event arguments. + + + + Raises ValidateToken event. + + Provides event arguments. + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Called when TextSeparator property has changed. + + Old property value + New property value + + + + Called when DropDownButtonVisible property has changed. + + Old property value + New property value + + + + Called when CheckBoxesVisible property has changed. + + Old property value + New property value + + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + + + + Gets or sets the location of the auto-scroll position. + + + + + Specifies the background style of the control. + + + + + Gets the collection of the selected tokens. + + + + + Occurs when SelectedTokens collection changes. + + + + + Gets the collection of the tokens available for selection. + + + + + Indicates whether remove token button is displayed on individual tokens so they can be removed from the selection. + + + + + Occurs when mouse enters one of the SelectedTokens token. + + + + + Occurs when mouse leaves one of the SelectedTokens token. + + + + + Occurs when mouse clicks one of the SelectedTokens token. + + + + + Occurs when mouse double clicks one of the SelectedTokens token. + + + + + Occurs when mouse hovers one of the SelectedTokens token. + + + + + Occurs before token is removed from the SelectedTokens by end user. + + + + + Indicates whether tokens can be added or removed by end user. Default value is false. + + + + + Indicates the height of the auto-complete drop-down. + + + + + Indicates the width of the auto-complete drop-down. + + + + + Indicates whether when token text is entered into the text-box pressing the Enter key attempts to validate the token and converts the text to token. + + + + + Occurs before token auto-complete popup is displayed and allows cancelation of popup display. + + + + + Occurs after auto-complete popup is open. + + + + + Occurs before the auto-complete popup is displayed and allows you to adjust popup location. + + + + + Indicates how tokens are filtered based on the entered text + + + + + Indicates whether auto-complete popup size is preserved between popup displays if popup is resized by end-user. + + + + + Indicates whether auto-complete popup can be resized by end user. + + + + + Indicates whether multi-column popup close button is visible. + + + + + Gets or sets whether auto-complete popup window is open. + + + + + Gets the list of separators which are used to divide entered text into the tokens. + + + + + Occurs when an token is selected from the auto-complete list or when text entry by end user is parsed into token to validate it. + + + + + Indicates whether control automatically increases its height as more tokens are selected. MaxHeightLines property controls the maximum number of lines control will grow to before showing scroll-bar. + + + + + Indicates maximum number of lines control will grow to when AutoSizeHeight=true. Set to 0 to indicates unlimited growth. + Default value is 5. + + + + + Gets reference to internal text-box control that is used to input the token text. + + + + + Indicates whether any text entered into the token editor is validated and converted to token when control loses focus. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup. + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Indicates the character separator that is used to separate tokens when controls Text property is updated or parsed. + + + + + Indicates whether drop-down button which shows available token popup is displayed + + + + + Indicates whether check-boxes are displayed on popup token selection list and used for token selection. + + + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the selected token when Tooltip property is set. + + + + + Delegate for the ValidateTokenEvent event. + + + + + Arguments for the ValidateTokenEvent event. + + + + + Indicates whether validated token is valid. Default value is true. When you set this property to false the token being validated will be discared. + + + + + Indicates the Token that will be accepted by the control if IsValid=true. + + + + + Indicates whether token is newly created. When false it means that token was taken from Tokens collection. + + + + + Initializes a new instance of the ValidateTokenEventArgs class. + + + + + + Delegate for RemovingToken event. + + + + + Defines event arguments for RemovingToken event. + + + + + Indicates the Token that will be removed. + + + + + Set to true to cancel removal of the token. + + + + + Indicates the source of the event. + + + + + Initializes a new instance of the RemovingTokenEventArgs class. + + + + + + Specifies the filter behavior on token editor popup list. + + + + + Token text is searched for the match. + + + + + Token value is searched for the match. + + + + + Both token text and value are searched for the match. + + + + + Delegate for TokenEditor.BeforePopupOpen event. + + + + + Defines event arguments for BeforePopupOpen event. + + + + + Gets or sets the screen location of the popup in relation to the TokenEditor control. + + + + + Gets the suggested popup size. + + + + + Initializes a new instance of the TokenEditorPopupEventArgs class. + + + + + + Represents the color table for TokenEditor control tokens. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Initializes a new instance of the TokenEditorColorTable class. + + + + + Gets or sets token default state colors. + + + + + Gets or sets token mouse over state colors. + + + + + Gets or sets token focused state colors. + + + + + Represents the state color table for token in TokenEditor control. + + + + + Initializes a new instance of the TokenColorTable class. + + + + + Initializes a new instance of the TokenColorTable class. + + + + + + + Initializes a new instance of the TokenColorTable class. + + + + + + + Gets or sets token text color. + + + + + Gets or sets the background color table. + + + + + Represents non-intrusive Warning Box control with Options and Close button. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Raises the CloseClick event. + + Event arguments. + + + + Raises the OptionsClick event. + + Event arguments. + + + + Updates control color scheme based on currently selected Office 2007 Color Table. Usually it is not necessary to + call this method manually. You need to call it to update the colors on control if you customize the Office2007ColorTable.WarningBox values. + + + + + Invokes the MarkupLinkClick event. + + Provides additional data about event. + + + + Called when AntiAlias property has changed. + + Old property value + New property value + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when Close button is clicked. + + + + + Occurs when Options button is clicked. + + + + + Occurs when warning text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the text displayed on close button tooltip. + + + + + Gets or sets the text displayed on warning control label. Supports text-markup. + + + + + Gets or sets whether text is wrapped on multiple lines if it cannot fit the space allocated to the control. + + + + + Gets or sets the image displayed next to the warning label text. Default value is null. + + + + + Gets or sets the text for the Options buttons. + + + + + Gets or sets whether Options button is visible. Default value is true. + + + + + Gets or sets whether Close button is visible. Default value is true. + + + + + Gets or sets the timeout in seconds after which the control automatically closes itself. Default value is 0 which indicates that auto-close + is disabled. + + + + + Gets or sets the control's color scheme. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Defines available WarningBox control color schemes. + + + + + Represents compact tree bread-crumb control. + + + + + Initializes a new instance of the CrumbBar class. + + + + + Finds CrumbBarItem with specified name. + + Name of item to look for + Item or null if no item was found. + + + + Sets the currently selected item in the control. + + Reference to selected item. + Source of the event. + + + + Shows the selected item popup menu if it has menu items. + + true if popup was shown otherwise false + + + + Gets whether an item is in selected path to the currently selected item as either one of the parents of selected item + or selected item itself. + + Item to test. + true if item is in selected path otherwise false. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises the SelectedItemChanging event. + + Provides event arguments. + + + + Raises the SelectedItemChanged event. + + Provides event arguments. + + + + Returns full path to the given node. + + Node to return path to. + Full path to the node. + + + + Occurs before SelectedItem has changed and provides opportunity to cancel the change. Set Cancel property on event arguments to true to cancel the change. + + + + + Occurs after SelectedItem has changed. The change of the selected item at this point cannot be canceled. For that use SelectedItemChanging event. + + + + + Gets or sets currently selected item. + + + + + Gets collection of items assigned to the control. + + + + + Gets or sets the visual style of the control. Default value is Windows Vista style. + + + + + Gets the color table used by the Vista style renderer. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets the delimiter string that the tree node path uses. + + + + + Defines delegate for CrumbBar selection events. + + + + + Provides data for CrumbBar selection events. + + + + + Gets or sets newly selected item. + + + + + Initializes a new instance of the CrumbBarSelectionEventArgs class. + + + + + + Represents an item for CrumbBar control. + + + + + Gets whether item is selected item in CrumbBar control. + + + + + Returns the collection of sub items. + + + + + Gets the path from the root tree node to the current tree node. The path consists of the labels of all the tree nodes that must be navigated to get to this tree node, starting at the root tree node. The node labels are separated by the delimiter character specified in the PathSeparator property of the Tree control that contains this node. + + + + + Represents collection of CrumbBarItem buttons. + + + + + Initializes a new instance of the CrumbBarItemsCollection class. + + + + + + Sets the node collection belongs to. + + CrumbBarItem that is parent of this collection. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the CrumbBarItem array. + + Array to copy to. + + + + Gets or sets the node this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Represents a view of CrumbBarItem displayed inside of CrumbBar control. + + + + + Initializes a new instance of the CrumbBarItemView class. + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Gets the item attached to the view. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets color table used by renderer. + + + + + Creates new instance of BaseItem. + + + + + Creates new instance of BaseItem and assigns item name. + + Item name. + + + + Creates new instance of BaseItem and assigns item name and item text. + + Item Name + Item Text + + + + Returns copy of ExplorerBarContainerItem item + + + + + Represents internal CrumbBar view container. + + + + + Initializes a new instance of the CrumbBarViewContainer class. + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Represents collection for Node objects. + + + + Creates new instance of the object. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Node array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides High DPI support for DotNetBar controls. + + + + + Gets or sets whether scale factor when set is normalized so both Width and Height values are the same. Default value is false. + If using ScaleMode=font the scale factor might not be same for Width and Height so this allows opportunity to keep existing size ratios on the DotNetBar sized controls. + When set to true the scale factor Height will always be set to scale factor Width. + + + + + Indicates whether controls will automatically scale current images based on the current DPI. Depending on scaling this may result in pixalted images. + Best policy is to provide separate images for each DPI level Windows runs on and if you do that you need to set this property to false to disable + automatic size scaling for the images. Default value is true which causes the images to be upscaled. + + + + + Initializes a new instance of the DualButton class. + + + + + Called when ButtonSize property has changed. + + Old property value + New property value + + + + Called when Text2 property has changed. + + Old property value + New property value + + + + Called when MouseOverPart property has changed. + + Old property value + New property value + + + + Called when LeftMouseButtonDownPart property has changed. + + Old property value + New property value + + + + Called when Command property value changes. + + + + + Called when IsSelected property has changed. + + Old property value + New property value + + + + Called when Font property has changed. + + Old property value + New property value + + + + Gets or sets the second button part text. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that for ButtonItem instances if this property is set to null and command was assigned previously, Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Gets or sets the selected part of button. + + + + + Gets or sets the text font. + + + + + Standalone Calculator control. + + + + + Raises CalculatorDisplayChanged event. + + Provides event arguments. + + + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Called when FocusButtonsOnMouseDown property has changed. + + Old property value + New property value + + + + Called when DisplayVisible property has changed. + + Old property value + New property value + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when a calc button has been clicked + + + + + Occurs when the calculator value has changed + + + + + Indicates whether calculator displays only Integer values. + + + + + Gets or sets whether memory keys are visible. Default value is true. + + + + + Gets or sets visibility of the decimal calculator key. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Gets or sets whether calculator display is visible. Default value is true. + + + + + ButtonClickEventArgs + + + + + ButtonClickEventArgs + + + + + Gets the calc button that was clicked + + + + + ValueChangedEventArgs + + + + + ValueChangedEventArgs + + + + + + + Gets the input string value + + + + + Gets or sets calculator value + + + + + Represents a control that enables the user to select time using visual time display. + + + + + Raises SelectedTimeChanged event. + + Provides event arguments. + + + + Raises OkClick event. + + Provides event arguments. + + + + Initializes a new instance of the MonthCalendarAdv class. + + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Occurs after SelectedTime changes. + + + + + Occurs when OK button is clicked. + + + + + Gets or sets the text displayed on OK button. + + + + + Gets or sets whether Ok button is visible. + + + + + Gets or sets the selected date time. + + + + + Gets or sets selected time. Returns TimeSpan.Zero if there is no time selected. + + + + + Gets or sets the time format used to present time by the selector. + + + + + Gets or sets the format for the 12 Hour Time Display. + + + + + Gets or sets the format for the 24 Hour Time Display. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Indicates the type of the selector used to select time. + + + + + Gets or sets the text displayed on Clear button only when MonthCalendarStyle is used. + + + + + Gets or sets the text displayed on Hour label. + + + + + Gets or sets the text displayed on Minute label. + + + + + Represents the Time selector item. + + + + + Initializes a new instance of the TimeSelectionItem class. + + + + + Raises SelectedTimeChanged event. + + Provides event arguments. + + + + Raises OkClick event. + + Provides event arguments. + + + + Returns whether property should be serialized. + + + + + Resets property to default value. + + + + + Called when SelectedTime property has changed. + + Old property value + New property value + + + + Called when TimeFormat24H property has changed. + + Old property value + New property value + + + + Called when TimeFormat12H property has changed. + + Old property value + New property value + + + + Called when SelectedDateTime property has changed. + + Old property value + New property value + + + + Called when OkText property has changed. + + Old property value + New property value + + + + Called when ClearText property has changed. + + Old property value + New property value + + + + Called when TimeFormat property has changed. + + Old property value + New property value + + + + Called when OkButtonVisible property has changed. + + Old property value + New property value + + + + Called when ClearButtonVisible property has changed. + + Old property value + New property value + + + + Called when SelectorType property has changed. + + Old property value + New property value + + + + Called when HourText property has changed. + + Old property value + New property value + + + + Called when MinuteText property has changed. + + Old property value + New property value + + + + Occurs after SelectedTime changes. + + + + + Occurs when OK button is clicked. + + + + + Gets or sets selected time. Returns TimeSpan.Zero if there is no time selected. + + + + + Gets or sets the format for the 24 Hour Time Display. + + + + + Gets or sets the format for the 12 Hour Time Display. + + + + + Gets or sets the selected date time. + + + + + Gets or sets the text displayed on OK button. + + + + + Gets or sets the text displayed on Clear button only when MonthCalendarStyle is used. + + + + + Gets or sets the time format used to present time by the selector. + + + + + Gets or sets whether Ok button is visible. + + + + + Gets or sets whether Ok button is visible. + + + + + Indicates the type of the selector used to select time. + + + + + Gets or sets the text displayed on Hour label. + + + + + Gets or sets the text displayed on Minute label. + + + + + Defines time selector format. + + + + + Selector uses system format. + + + + + Selector uses 24-hour time format. + + + + + Selector uses 12-hour time format. + + + + + Defines the TimeSelector styles. + + + + + Time selector uses style similar to MonthCalendarStyle. + + + + + Time selector uses the touch style. + + + + + Represents the group of the input items with automatic and manual item focus change. + + + + + Raises the RenderInvalid event. + + + + + Raises the ArrangeInvalid event. + + + + + Raises the ResetMouseHover event. + + + + + Occurs when item arrange becomes invalid. + + + + + Occurs when item appearance becomes invalid and items needs to be repainted. + + + + + Occurs when item needs to signal to parent control that MouseHover needs to be reset usually in response to tooltip hiding. + + + + + Occurs when item is clicked. + + + + + Occurs when item is clicked using mouse. + + + + + Occurs when mouse button is pressed over the item. + + + + + Occurs when mouse button is pressed over the item. + + + + + Occurs when mouse hovers over the item. + + + + + Gets or sets whether item is Enabled. + + + + + Gets or sets whether visual is rendered. Default value is true. + + + + + Gets the parent of the item. + + + + + Gets the relative location of the element inside of its parent item. + + + + + Gets or sets the item horizontal alignment inside of the parent group. Default value is left. + + + + + Occurs when child item input is complete. Method should be used to forward the input focus onto the different field if desired. + + + + + Occurs when input stack on the child control has changed. + + Control on which input has changed + + + + Occurs when input stack on the child control has changed. + + Control on which input has changed + + + + Gets or sets the horizontal spacing in pixels between the items. + + + + + Gets or sets whether visual is root visual directly parented to the control. + + + + + Gets or sets group vertical alignment. Default value is middle. + + + + + Gets or sets input group horizontal alignment. Default value is left. + + + + + Resets the input position so the new input overwrites current value. + + + + + Updates the IsEmpty property value based on the contained input controls. + + + + + Gets or sets whether Tab key is used to navigate between the fields. Default value is true. + + + + + Gets or sets whether Enter key is used to navigate between input fields. Default value is true. + + + + + Gets or sets whether Arrow keys are used to navigate between input fields. Default value is true. + + + + + Gets or sets whether input focus is automatically advanced to next input field when input is complete in current one. + + + + + Gets or sets whether input items are read-only. + + + + + Gets or sets whether input group is empty i.e. it does not hold any value. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets whether current input is the user input. + + + + + List of characters that when pressed would select next input field. + + + + + Initializes a new instance of the IPAddressGroup class. + + + + + Describes the Elliptical Shape. + + + + + Returns the shape that fits given bounds. + + Bounds to fit shape in. + GraphicsPath representing shape or null if shape cannot be created. + + + + Returns the inner shape based on the specified border size. + + Bounds to fit shape in. + GraphicsPath representing shape or null if shape cannot be created. + + + + Returns whether shape can be drawn given the bounds. + + Bounds to test. + true if shape can be drawn inside of bounds otherwise false. + + + + Represents EllipticalShapeDescriptor object converter. + + + + + Initializes FormatHelper class. + + + + + Defines an interface that represents the Command associated with an BaseItem instance. + + + + + Executes the command without specifying the source of the command. + + + + + Executes the command and specifies the source of the command. + + + + + Called when CommandSource is registered for the command. + + CommandSource registered. + + + + Called when CommandSource is unregistered for the command. + + CommandSource unregistered. + + + + Sets an property value on the subscribers through the reflection. If subscriber does not have + specified property with value type its value is not set. + + Property name to set. + Property value. + + + + Executes the code associated with the command. + + + + + Provides the opportunity to cancel the execution of the command. This event occurs before the Executed event. + + + + + Gets or sets the text associated with the items that are using command. + + + + + Gets or sets the value of Checked property if item associated with the command support it. + + + + + Gets or sets the value of Visible property if item associated with the command support it. + + + + + Gets or sets the value of Image property if item associated with the command support it. + + + + + Gets or sets the value of small image (ImageSmall) property if item associated with the command support it. + + + + + Gets or sets the value of Enabled property for items associated with the command. + + + + + Defines an command that is associated with an instance of BaseItem + + + + + Initializes a new instance of the Command class with the specified container. + + An IContainer that represents the container for the command. + + + + Initializes a new instance of the Command class with the specified container. + + An IContainer that represents the container for the command. + + + + Initializes a new instance of the Command class with the specified execute event handler. + + + + + Initializes a new instance of the Command class. + + + + + Executes the command. + + + + + Executes the command. + + + + + Raises the Execute event. + + Provides event data. + + + + Raises the PreviewExecuted event. + + Provides event data. + + + + Called when Text property is set. + + + + + Sets the Text property on all subscribers to the command Text. + + + + + Sets an property value on the subscribers through the reflection. If subscriber does not have + specified property with value type its value is not set. + + Property name to set. + Property value. + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Gets whether property is set and whether it will be applied to items associated with the command. + + + + + + Resets the property to its default value and disables its propagation to items that are associated with command. + + + + + Called when CommandSource is registered for the command. + + CommandSource registered. + + + + Called when CommandSource is unregistered for the command. + + CommandSource unregistered. + + + + Executes the code associated with the command when an instance of BaseItem is clicked. + + + + + Occurs before the Executed event and allows you to cancel the firing of Executed event. + + + + + Gets or sets the Text that is assigned to all command sources that are using this command and have Text property. + + + + + Gets or sets the value for the Checked property that is assigned to the command subscribers using this command and have Checked property. + + + + + Gets whether the command is in process of syncing its state to all subscribers. + + + + + Gets or sets the value for the Visible property that is assigned to the command subscribers using this command and have Visible property. + + + + + Gets or sets the image that is assigned to the command subscribers using this command and have Image property. + + + + + Gets or sets the small image that is assigned to the command subscribers using this command and have ImageSmall property. + + + + + Gets or sets the value for Enabled property assigned to the command subscribers using this command and have Enabled property. + + + + + Returns name of the node that can be used to identify it from the code. + + + + + Defines an container where you can arrange child elements added to SubItems collection either horizontally or vertically, relative to each other using SetDock and GetDock methods. + + + + + Initializes a new instance of the ItemDockContainer class. + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Recalculates the size of the container. Assumes that DisplayRectangle.Location is set to the upper left location of this container. + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Retrieves the docking for specified item. + + + + + Sets the docking within container for specified item. + + Item to set docking for. + Docking value. + + + + Returns empty container default design-time size. + + Size of an empty container. + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Return Sub Item at specified location + + + + + Gets or sets a value that indicates whether the last child element within a ItemDockContainer stretches to fill the remaining available space. + + + + + IBlock member implementation + + + + + Provides binding support for ItemPanel control. + + + + + Initializes a new instance of the ItemVisualGenerator class. + + + + + + Called when Bindings property has changed. + + Old property value + New property value + + + + Called when VisualTemplate property has changed. + + Old property value + New property value + + + + When overridden in a derived class, sets the specified array of objects in a collection in the derived class. + + An array of items. + + + + Creates a new item from template for the data. + + Data to create item for. + New instance of the BaseItem. + + + + When overridden in a derived class, sets the object with the specified index in the derived class. + + The array index of the object. + The object. + + + + When overridden in a derived class, resynchronizes the item data with the contents of the data source. + + + + + Gets or sets the data source for the ComboTree. Expected is an object that implements the IList or IListSource interfaces, + such as a DataSet or an Array. The default is null. + + + + + Gets or sets the visual template that is generated for each data item. + + + + + + Defines delegate for data visual creation based events. + + + + + Defines event arguments for data visual creation based events. + + + + + Gets or sets the visual that is created for data item. + + + + + Gets the data-item node is being created for. + + + + + Initializes a new instance of the DataNodeEventArgs class. + + + + + + + Defines BorderColors structure used to define border colors. + + + + + Creates new instance of the object. + + Uniform BorderColors + + + + Creates new instance of the object. + + Left BorderColors + Top BorderColors + Right BorderColors + Bottom BorderColors + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Returns hash code for object. + + Hash code + + + + Returns string representation of object. + + string representing BorderColors + + + + Gets string representation of object. + + Culture info. + string representing BorderColors + + + + Returns whether all values are empty. + + + + + Returns whether all values are the same. + + + + + Gets or sets the left BorderColors. + + + + + Gets or sets the top BorderColors. + + + + + Gets or sets the Right BorderColors. + + + + + Gets or sets the Bottom BorderColors. + + + + + Provides BorderColors TypeConverter. + + + + + Gets or sets the background color. + + + + + Gets or sets the canvas light shade color. This property is not directly used but it is provided for reference. + + + + + Gets or sets the canvas lighter shade color. This property is not directly used but it is provided for reference. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the base metro color. + + + + + Gets or sets background color of edit controls. + + + + + Gets or sets the color table for MetroAppForm. + + + + + Gets or sets the color table for MetroForm. + + + + + Gets or sets the color table for MetroTab. + + + + + Gets or sets color table for MetroStatusBar. + + + + + Gets or sets color table for MetroToolbar. + + + + + Gets or sets the color table used by MetroTile items. + + + + + Gets or sets the metro-part colors that define the metro UI color scheme. These colors are provided for you reference and reuse in your app. + + + + + Represents class that defines parameters for Metro style color scheme. + + + + + Initializes a new instance of the MetroStyleParameters class. + + Canvas color. + Base color. + + + + Initializes a new instance of the MetroColorGeneratorParameters structure. + + Canvas color. + Base color. + User friendly theme name. + + + + Returns array of all predefined Metro color themes. + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the Metro canvas. + + + + + Gets or sets the base color for the Metro style. + + + + + Gets or sets the user friendly theme name. + + + + + Initializes the Metro UI color table based on colors specified. + + + + + Defines base set of Metro UI color scheme. + + + + + Gets or sets the base canvas color, like form background. + + + + + Gets or sets the chrome base color, used for window border, selection marking etc. + + + + + Gets or sets the text color for text displayed over the BaseColor. + + + + + Gets or sets the text color displayed over the canvas color. + + + + + Gets or sets the lighter text color used for example for inactive non selected tab text etc. + + + + + Gets or sets the text color used for disabled text. + + + + + Gets or sets the text light color. + + + + + Gets or sets the color that lighter than canvas color unless canvas is white in which case this will be white as well. + + + + + Gets or sets the color that is in dark shade off of the canvas color. + + + + + Gets or sets the color that is in darker shade off of the canvas color. + + + + + Gets or sets the color that is in light shade off of the canvas color. + + + + + Gets or sets the color that is in lighter shade off of the canvas color. + + + + + Gets or sets the light base color shade. + + + + + Gets or sets the just a tad lighter base color. + + + + + Gets or sets the text color for light base color. + + + + + Gets or sets the lighter base color shade. + + + + + Gets or sets the lightest base color shade. + + + + + Gets or sets the dark base color shade. + + + + + Gets or sets the darker base color shade. + + + + + Gets or sets the base color analogous color 1 + + + + + Gets or sets the Analogous color light variant. + + + + + Gets or sets the text color for Analogous color light variant. + + + + + Gets or sets the Analogous color dark variant. + + + + + Gets or sets the Analogous color darker variant. + + + + + Gets or sets the Analogous color text color. + + + + + Gets or sets the off base color button gradient start. + + + + + Gets or sets the off base color button gradient start. + + + + + Gets or sets background color of edit controls. + + + + + Represents the MetroAppForm color table. + + + + + Gets or sets the border thickness. + + + + + Gets or sets the border thickness for form when it is running on Windows without Glass effect enabled. + + + + + Gets or sets the border colors. + + + + + Gets or sets the inactive form border colors. + + + + + Represents the MetroForm color table. + + + + + Gets or sets the border thickness. + + + + + Gets or sets the border thickness for form when it is running on Windows without Glass effect enabled. + + + + + Gets or sets the border colors. + + + + + Gets or sets the inactive form border colors. + + + + + Gets or sets the color array for the top-border lines. + + + + + Gets or sets the color array for the bottom-border lines. + + + + + Gets or sets status bar background style. + + + + + Gets or sets the resize handle marker light color. + + + + + Gets or sets the resize handle marker color. + + + + + Gets or sets the color table for MetroTabStrip. + + + + + Gets or sets tab panel background style. + + + + + Gets or sets the color table for MetroTabItem. + + + + + Gets or sets the color of the active form caption text displayed on metro strip. + + + + + Gets or sets the color of the inactive form caption text displayed on metro strip. + + + + + Gets or sets the text formatting for caption text. + + + + + Represents MetroTabItem color table. + + + + + Gets or sets the default state tab colors. + + + + + Gets or sets the mouse over state tab colors. + + + + + Gets or sets the selected state tab colors. + + + + + Gets or sets the pressed state tab colors. + + + + + Gets or sets the disabled state tab colors. + + + + + Initializes a new instance of the MetroTabItemStateColorTable class. + + + + + + + Gets or sets the background style. + + + + + Gets or sets tabstrip background style. + + + + + Gets or sets the tile check-mark background overlay color. + + + + + Gets or sets the tile check-mark foreground overlay color. + + + + + Gets or sets toolbar background style. + + + + + Initializes the Visual Studio 2012 color scheme Metro color table based on colors specified. + + + + + Gets or sets color hue. Hue is value from 0-1 which determines the degree on color wheel color is on, i.e. 0.5 = 180 degrees + + + + + Gets or sets the color saturation from 0-1, i.e. 0-100%. + + + + + Gets or sets the amount of white and black in color. + + + + + Initializes a new instance of the HSVColor structure. + + + + + + + + Gets whether values are close. + + First value. + Second value + true if values are close enough + + + + Gets whether value is zero + + value to check + true if value is considered zero + + + + Gets whether value is not an number. + + value to test + true if value is not an number + + + + Represents the Metro application button used on MetroTab control. + + + + + Initializes a new instance of the MetroAppButton class. + + + + + Processes the Escape key when Application Button is hosting the backstage tab and uses it to close the tab if open. + This method is called from ProcessDialogKey method of MetroForm. + + Key data + true if key was used to close backstage tab + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether control set on BackstageTab property is used on application menu popup. + + + + + Gets or sets the backstage tab that is displayed instead of popup menu. + + + + + Raises PrepareModalPanelBounds event. + + Provides event arguments. + + + + Initializes a new instance of the MetroForm class. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Shows the panel control in the center of the form and covers all non system controls making the panel effectively modal. + + Control to show. + + + + Shows the panel control in the center of the form by sliding it in from specified side and covers all non system controls making the panel effectively modal. + + Panel to show. + Side to slide panel into the view from. + + + + Shows the panel control in the center of the form by sliding it in from specified side and covers all non system controls making the panel effectively modal. + + Panel to show. + Side to slide panel into the view from. + Slide animation speed in milliseconds. + + + + Hides the panel control that was previously shown using ShowModalPanel method. + + Control to hide. + + + + Hides the panel control that was previously shown using ShowModalPanel method by sliding it out of the view to the specified side. + + Control to hide. + Side to slide control into. + + + + Gets effective Border Thickness for the form. + + Thickness + + + + Called when BorderThickness property has changed. + + Old property value + New property value + + + + Called when BorderColor property has changed. + + Old property value + New property value + + + + Called when WM_NCHITTEST message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_DWMCOMPOSITIONCHANGED message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_NCACTIVATE message is received. + + Reference to message data. + Return true to call base form implementation otherwise return false. + + + + Called when WM_NCCALCSIZE message is received. + + Message structure. + true to call base WndProc otherwise false. + + + + Occurs before modal panel is shown and allows change of modal panel bounds. + + + + + Gets or sets whether MetroShell is pre-rendered when form is shown to make first rendering smoother. Default value is true. + + + + + Gets whether at least one modal panel is displayed. + + + + + Indicates whether modal panel when displayed shows MetroStatusBar. + + + + + Returns whether Windows Glass effects are enabled. + + + + + Gets or sets the MetroTab that is hosted by this form. This property is for internal use only. + + + + + Gets or sets whether form can be resized. + + + + + Gets or sets the form border thickness. Default value is empty thickness which indicates that thickness is taken from MetroFormColorTable. + + + + + Gets or sets the form border colors. + + + + + Gets whether form is active. + + + + + Indicates the number of pixels subtracted from form's height or width (depending on taskbar position) when form is maximized and taskbar is in auto-hide state. Default value is 4. + + + + + This property is not to be used with MetroForm. + + + + + Gets or sets the size of the border on the edges of the form that when mouse is over allow for form resizing. + + + + + Indicates whether Close button in top-right corner of the form is visible. + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + This property cannot be used on MetroAppForm + + + + + Gets or sets text for form system menu Restore item. + + + + + Gets or sets text for form system menu Move item. + + + + + Gets or sets text for form system menu Size item. + + + + + Gets or sets text for form system menu Minimize item. + + + + + Gets or sets text for form system menu Maximize item. + + + + + Gets or sets text for form system menu Close item. + + + + + Initializes a new instance of the BorderOverlay class. + + + + + Delegate for PrepareModalPanelBounds event. + + + + + + + Provides data for PrepareModalPanelBounds event. + + + + + Gets or sets the bounds modal panel will occupy when shown. + + + + + Initializes a new instance of the ModalPanelBoundsEventArgs class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets the anti-alias setting for text-pane. + + + + + Enumeration of available common system strings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization from MetroTab control. Registered MetroToolbar controls are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control that holds references to known MetroToolbars. + + + + Gets reference to the internal Quick Access Toolbar Customization panel. + + + + + Represents Metro Tab control, usually used as application tab but can be used as standard tab control as well. + + + + + Raises SettingsButtonClick event. + + Provides event arguments. + + + + Raises HelpButtonClick event. + + Provides event arguments. + + + + Gets the name of the QAT Customize Item which is used to display the QAT Customize Dialog box. + + + + + Gets the name of the Add to Quick Access Toolbar context menu item. + + + + + Gets the name of the Remove from Quick Access Toolbar context menu item. + + + + + Gets the name of the QAT placement change context menu item. + + + + + Gets the name of the label displayed on Quick Access Toolbar customize popup menu. + + + + + Gets the string that is used as starting name for the frequently used QAT menu items created when QAT Customize menu is displayed. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Performs the setup of the MetroTabPanel with the current style of the MetroShell Control. + + Panel to apply style changes to. + + + + Creates new Rendering Tab at specified position, creates new associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + Specifies the position of the new tab inside of Items collection. + New instance of the MetroTabItem that was created. + + + + Creates new Rendering Tab and associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + New instance of the MetroTabItem that was created. + + + + Recalculates layout of the control and applies any changes made to the size or position of the items contained. + + + + + Occurs when text markup link is clicked. + + + + + Called when right-mouse button is pressed over MetroTabStrip + + Reference to MetroTabStrip object. + + + + Displays popup customize context menu for given customization object. + + Object that should be customized, usually an instance of BaseItem. + Indicates whether customize menu is displayed over metro tab strip + + + + Removes an item from the Quick Access Toolbar. + + Reference to the item that is already part of Quick Access Toolbar. + + + + Adds an instance of base type BaseItem to the Quick Access Toolbar. Note that this method creates + new instance of the item or an representation of the item being added and adds that to the Quick Access Toolbar. + + Reference to the item to add, must be an BaseItem type. + + + + Raises the BeforeCustomizeMenuPopup event. + + Event arguments + + + + Raises the BeforeAddItemToQuickAccessToolbar event. + + Event arguments. + + + + Shows the quick access toolbar customize dialog. + + + + + Applies the Quick Access Toolbar customization changes made on QatCustomizePanel to the MetroShell Control Quick Access Toolbar. Note that QatCustomizePanel.DataChanged property indicates whether user made any changes to the data on the panel. + + Reference to the QatCustomizePanel + + + + Raises the AfterQatDialogChangesApplied event. + + + + + Returns the Metro Application Button. + + reference to Application Button or null if button is not found. + + + + Registers the MetroToolbar or any other DotNetBar container that implements IOwner interface so it can participate in Quick Access Toolbar serialization and customization. + + + + + + Registers the MetroToolbar or any other DotNetBar container that implements IOwner interface so it can participate in Quick Access Toolbar serialization and customization. + + + + + + Occurs just before the customize popup menu is displayed and provides the ability to cancel the menu display as well + as to add/remove the menu items from the customize popup menu. + + + + + Occurs before an item is added to the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs before an item is removed from the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs when Item on metro tab strip or quick access toolbar is clicked. + + + + + Occurs before Quick Access Toolbar dialog is displayed. This event provides the opportunity to cancel the showing of + built-in dialog and display custom customization dialog. You can also set the Dialog property of the event arguments to + the custom dialog you want used instead of the DotNetBar system customization dialog. + + + + + Occurs after the Quick Access Toolbar dialog is closed. + + + + + Occurs after any changes done on the Quick Access Toolbar dialog are applied to the actual Quick Access Toolbar. + + + + + Occurs after selected Metro tab has changed. You can use + MetroShell.SelectedTab + property to get reference to newly selected tab. + + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when SETTINGS button, if displayed, is clicked. + + + + + Occurs when HELP button, if displayed, is clicked. + + + + + Gets the collection of the Quick Access Toolbar Frequently used commands. You should add existing buttons to this collection that + you already have on the MetroToolbar controls or on the application menu. The list will be used to construct the frequently used + menu that is displayed when Customize Quick Access Toolbar menu is displayed and it allows end-user to remove and add these + frequently used commands to the QAT directly from this menu. + Note that items you add here should not be items that are already on Quick Access Toolbar, i.e. in MetroShell.QuickToolbarItems collection. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Indicates whether Form.Icon is shown in top-left corner. + + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets whether custom caption and quick access toolbar provided by the control is visible. Default value is false. + This property should be set to true when control is used on MetroAppForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Specifies the background style of the control. + + + + + Gets or sets the currently selected MetroTabItem. MetroTabItems are selected using the Checked property. Only a single + MetroTabItem can be selected (Checked) at any given time. + + + + + Returns reference to internal metro tab-strip control. + + + + + Returns collection of items on a bar. + + + + + Returns collection of quick toolbar access and caption items. + + + + + Gets or sets whether mouse wheel scrolls through the Metro tabs. Default value is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. Default value is false. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets whether external implementation for metro toolbar and menu item customization will be used for customizing the control. When set to true + it enables the displaying of MetroToolbar and menu item context menus which allow customization. You are responsible for + adding the menu items to context menu to handle all aspects of item customization. See "MetroShell Control Quick Access Toolbar Customization" topic in help file under How To. + Default value is false. + + + + + Gets or sets whether customize dialog is used to customize the quick access toolbar. You can handle the EnterCustomize event + to display your custom dialog instead of built-in dialog for customization. Default value is true. + + + + + Gets or sets the categorization mode for the items on Quick Access Toolbar customize dialog box. Default value categorizes + items by the toolbar they appear on. + + + + + Gets or sets the Quick Access Toolbar layout description. You can use the value obtained from this property to save + the customized Quick Access Toolbar into registry or into any other storage object. You can also set the saved layout description back + to restore user customize layout. + + + + + Gets or sets whether Quick Access Toolbar has been customized by end-user. You can use value of this property to determine + whether Quick Access Toolbar layout that can be accessed using QatLayout property should be saved. + + + + + Gets the reference to the Metro localization object which holds all system text used by the component. + + + + + Gets or sets the side tab-strip is docked to. + + + + + Gets or sets whether SETTINGS button is visible. + + + + + + Gets or sets the SETTINGS button text. + + + + + Gets or sets the HELP button text. + + + + + Gets or sets the font tab items are displayed with. + + + + + Describes the categorization mode used to categorize items on the Customize Metro dialog. + + + + + Items are automatically categorized by the toolbar they appear on. + + + + + Items are categorized by the Category property on each item. Category property should be set on each item. + + + + + Represents Metro-UI Status Bar control. + + + + + Initializes a new instance of the MetroStatusBar class. + + + + + Called when ResizeHandleVisible property has changed. + + Old property value + New property value + + + + Indicates whether items that cannot fit are displayed on popup. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether resize handle used to resize the parent form is visible. + + + + + Gets or sets spacing between items, default value is 2. + + + + + Defines the internal container item for the ribbon strip control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent RibbonStrip control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Return Sub Item at specified location + + + + + Called when SettingsButtonText property has changed. + + Old property value + New property value + + + + Called when HelpButtonText property has changed. + + Old property value + New property value + + + + Gets reference to internal ribbon strip container that contains tabs and/or other items. + + + + + Gets reference to internal caption container item that contains the quick toolbar, start button and system caption item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Gets or sets whether Settings button is visible. + + + + + Gets or sets whether Help button is visible. + + + + + Gets or sets the Settings button text. + + + + + Represents Rendering Tab used on Metro Tab Control. + + + + + Initializes a new instance of the MetroTabItem class. + + + + + Selects the tab. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets cached image rendering bounds. + + + + + Gets or sets cached text rendering bounds. + + + + + Gets or sets whether tab renders its state. Used internally by DotNetBar. Do not set. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Gets or sets whether size of the tab has been reduced below the default calculated size. + + + + + Gets or sets the predefined color of item. Color specified here applies to items with Office 2007 style only. It does not have + any effect on other styles. Default value is eMetroTabColor.Default + + + + + Gets or sets the panel assigned to this tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the text color of the button. + + + + + Gets/Sets the button style which controls the appearance of the button elements. Changing the property can display image only, text only or image and text on the button at all times. + + + + + Specifies predefined color assigned to Metro Tab. + + + + + Represents simple item container which orders items horizontally and support all ItemAlignment settings. + + + + + Initializes a new instance of the SimpleItemContainer class. + + + + + Returns copy of the item. + + + + + Copies the item specific properties to new instance of the item. + + New instance. + + + + Copies the item specific properties to new instance of the item. + + New instance. + + + + Sets whether container is used as system container internally by DotNetBar. + + true or false to indicate whether container is system container or not. + + + + Called when ItemSpacing property has changed. + + Old property value + New property value + + + + Gets or sets the minimum size of the container. Either Width or Height can be set or both. Default value is 0,0 which means + that size is automatically calculated. + + + + + Returns whether instance of the item container is used as system container internally by DotNetBar. + + + + + Indicates the spacing between items. + + + + + Indicates additional spacing between item when its BeginGroup property is set. + + + + + Specifies the layout orientation + + + + + Indicates whether all items are resized to be of the size equal to largest item in the container + + + + + Represents panel used by MetroTabItem as a container panel for the control. + + + + + Creates new instance of the panel. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Represents Metro-UI TabStrip control. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Occurs when text markup link is clicked. + + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrived from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Returns effective caption height. + + Caption height. + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Called when ShowKeyTips on RibbonBar contained by this Ribbon is set to true + + + + + Forces the control to exit Ribbon Key-Tips mode. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Starts moving of the parent form action which happens when user attempts to drag the form caption. + + + + + Returns true if point is inside the caption area. + + Client point coordinates. + True if point is inside of caption area otherwise false. + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets whether custom caption line provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets/Sets the visual style of the control. + + + + + Returns collection of items on a bar. + + + + + Returns currently selected MetroTabItem. MetroTabItems are selected using the Checked property. Only a single + MetroTabItem can be Checked at any given time. + + + + + Gets whether Ribbon is in key-tips mode including its child controls. + + + + + Indicates whether Form.Icon is shown in top-left corner. + + + + + Returns collection of items on a bar. + + + + + Gets the reference to the internal container item for the items displayed in control caption. + + + + + Gets the reference to the internal container for the ribbon tabs and other items. + + + + + Represents Metro Tile. + + + + + Raises CheckedChanged event. + + Provides event arguments. + + + + Raises OptionGroupChanging event. + + Provides event arguments. + + + + Creates new instance of metro tile. + + + + + Creates new instance of metro tile and assigns the name to it. + + Item name. + + + + Creates new instance of metro tile and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the MetroTileItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the MetroTileItem specific properties to new instance of the item. + + New MetroTileItem instance. + + + + Called when NotificationMarkText property has changed. + + Old property value + New property value + + + + Called when NotificationMarkPosition property has changed. + + Old property value + New property value + + + + Called when NotificationMarkSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when NotificationMarkOffset property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs just before Click event is fired. + + + + + Called when TileSize property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when IsLeftMouseButtonDown property has changed. + + Old property value + New property value + + + + Called when IsMouseOver property has changed. + + Old property value + New property value + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Checked property has changed. + + Old property value + New property value + + + + Called when CheckBehavior property has changed. + + Old property value + New property value + + + + Called when CurrentFrame property has changed. + + Old property value + New property value + + + + Called when AutoRotateFramesInterval property has changed. + + Old property value + New property value + + + + Called when DragStartPoint property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs after Checked property has changed. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies maximum of 2 character text displayed inside of the notification mark on top of the button. + + + + + Indicates the position of the notification marker within the bounds of the button. + + + + + Specifies diameter of notification mark. When set to 0 system default value is used. + + + + + Gets or sets background color of the notification mark. + + + + + Specifies the offset for the notification mark relative to its position. + + + + + Gets or sets the tile size. + + + + + Gets or sets the predefined tile color for default tile frame. + + + + + Specifies the Tile style default tile frame. + + + + + Indicates the symbol displayed on face of the tile instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets the image displayed on the tile. + + + + + Gets or sets image alignment in relation to text. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether left mouse button is pressed over the tile. + + + + + Gets whether mouse is over the item. + + + + + Gets or sets the tile title text displayed by default in lower left corner. + + + + + Occurs when an hyperlink in title text markup is clicked. + + + + + Gets or sets the title text font. + + + + + Gets or sets the color of the title text. + + + + + Gets or sets title text alignment. + + + + + Gets or sets the top-left location of the image. + + + + + Gets or sets whether tile is checked. + + + + + Gets or sets the automatic check behavior of metro tile. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Gets the list of tile frames that are displayed when frame animation is enabled using AnimationEnabled property. + + + + + Gets or sets index of currently displayed frame in Frames collection. + + + + + Gets the index of last selected frame, i.e. before CurrentFrame was set with new value. + + + + + Gets or sets whether Frame animation is enabled when CurrentFrame has changed. Default value is true. + + + + + Gets or sets the frames animation duration in milliseconds. Default value is 800. + + + + + Gets or sets the automatic tile frame rotation interval in milliseconds. When set it will change the CurrentFrame property so each frame from Frames collection is displayed after interval set here. + + + + + Gets or sets tile background color when Enabled=false. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Specifies how MetroTileItem is checked. + + + + + Metro tile item inherits the check behavior from host control. + + + + + Metro tile item cannot be checked. + + + + + Metro tile item is checked using right mouse button. + + + + + Metro tile item is checked using middle mouse button. + + + + + Metro tile item is checked using left mouse button. + + + + + Defines single frame for metro-tile item. + + + + + Initializes a new instance of the MetroTileFrame class. + + + + + Called when TitleText property has changed. + + Old property value + New property value + + + + Raises TitleTextMarkupLinkClick event. + + Provides event arguments. + + + + Called when TitleTextFont property has changed. + + Old property value + New property value + + + + Called when TitleTextColor property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when TitleTextAlignment property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Image property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Text property has changed. + + Old property value + New property value + + + + Called when Color property has changed. + + Old property value + New property value + + + + Called when FrameDisplayDuration property has changed. + + Old property value + New property value + + + + Occurs when text markup link is clicked. + + + + + Raises MarkupLinkClick event. + + Provides event arguments. + + + + Called when TextMarkupEnabled property has changed. + + Old property value + New property value + + + + Called when ImageTextAlignment property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets the tile title text displayed by default in lower left corner. + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Occurs when an hyperlink in title text markup is clicked. + + + + + Gets or sets the title text font. + + + + + Gets or sets the color of the title text. + + + + + Gets or sets title text alignment. + + + + + Gets the effective style for the tile when TileColor property is set to predefined tile color. + + + + + Specifies the Tile style of the item. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the tile instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets the image displayed on the tile. + + + + + Gets or sets the top-left location of the image. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the predefined tile color. + + + + + Gets or sets the frame display duration in milliseconds during metro-tile frame animation. When not set then each frame will stay visible for duration set on MetroTileItem.AutoRotateFramesInterval. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether text-markup can be used in Text property. + + + + + Gets or sets image alignment in relation to text. + + + + + Occurs when property on BindingDef object has changed. + + + + + Represents panel for Metro Tiles. + + + + + Represents generic item panel container control. + + + + + Returns first checked top-level button item. + + An ButtonItem object or null if no button could be found. + + + + Adds new item to the ItemPanel based on specified ItemTemplate and sets its Text property. + + Text to assign to the item. + reference to newly created item + + + + Gets or sets default layout orientation inside the control. You can have multiple layouts inside of the control by adding + one or more instances of the ItemContainer object and chaning it's LayoutOrientation property. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets whether ButtonItem buttons when in vertical layout are fit into the available width so any text inside of them + is wrapped if needed. Default value is false. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Returns collection of items on a bar. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets the list of ButtonItem or CheckBoxItem controls that have their Checked property set to true. + + + + + Gets or sets ButtonItem or CheckBoxItem item that have their Checked property set to true. + + + + + Initializes a new instance of the MetroTilePanel class. + + + + + Gets or sets a value indicating whether the control enables the user to scroll to items placed outside of its visible boundaries. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Raises ExpandedChanging event. + + Provides event arguments. + + + + Raises ExpandedChanged event. + + Provides event arguments. + + + + Initializes a new instance of the MetroStatusBar class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Registers toolbar with MetroTab so it can participate in Quick Access Toolbar operations. + + MetroTab + + + + Unregisters previously registered toolbar from MetroTab and removes it from Quick Access Toolbar operations. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Invokes the ItemClick event. + + Reference to the item that was clicked. + + + + Called when AutoCollapse property has changed. + + Old property value + New property value + + + + Called when AnimationSpeed property has changed. + + Old property value + New property value + + + + Called when ExpandDirection property has changed. + + Old property value + New property value + + + + Occurs before Expanded property has changed, i.e. control expanded or collapsed and allows you to cancel action by setting Cancel=true on event arguments. + + + + + Occurs after Expanded property value has changed, i.e. control was expanded or collapsed. + + + + + Returns collection of items on a bar. + + + + + Gets or sets spacing between items, default value is 0. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether toolbar is attempted to be automatically registered with parent MetroShell control so it can participate in Quick Access Toolbar operations. Default value is true. + + + + + Gets or sets whether control is expanded or not. When control is expanded both main and extra toolbar items are visible. When collapsed + only main items are visible. Default value is false. + + + + + Gets or sets whether control is automatically collapsed, Expanded property set to False, if control was expanded and any button on the control was clicked or mouse is clicked elsewhere, parent form has lost input focus or some other control gains input focus. + + + + + Gets or sets the animation speed duration in milliseconds. Default value is 150 milliseconds. Set to zero, 0 to disable animation. + + + + + Gets or sets the expand direction for the toolbar. Default value is Auto. + + + + + Gets or sets whether Expand button is visible. Default value is true. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Defines expand direction behavior for MetroToolbar. + + + + + Expand direction is automatically determined by the position of the control on the form. + + + + + Control is expanded up so bottom of the control is fixed. + + + + + Control sis expanded down so top of the control is fixed. + + + + + Defines the internal container item for the MetroToolbar control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent MetroToolbar control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Called when ExpandButtonVisible property has changed. + + Old property value + New property value + + + + Gets or sets whether Expand button is visible. Default value is true. + + + + + Gets reference to container that host items. + + + + + Gets reference to container that hosts extra items. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Initializes Office Mobile 2014 color scheme Metro color table based on colors specified. + + + + + Draws the border. + + Graphics canvas. + Bounds for border. + Border thickness. + Border color. + + + + Draws background. + + Graphics canvas. + Background bounds. + Background color + + + + Deflates the rectangle by the border thickness. + + Rectangle. + Border thickness + Rectangle deflated by the border thickness + + + + Summary description for Office2003ButtonItemPainter. + + + + + Summary description for ButtonItemPainter. + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Represents the painter for the Office 2007 SystemCaptionItem + + + + + Represents the base class for the SystemCaptionItem painter. + + + + + Paints the SystemCaptionItem as icon in left hand corner. + + + + + + Paints the SystemCaptionItem as set of buttons minimize, restore/maximize and close. + + + + + + Paints the background of the button using specified color table colors. + + Graphics object. + Background bounds + Color Table + + + + Gets or sets color table used by renderer. + + + + + Abstract renderer for rendering Metro-UI controls. + + + + + Renders the + + + + + + Gets or sets color table used by renderer. + + + + + Renders the MetroTileItem. + + MetroTileItem to render. + Rendering event arguments. + + + + Renders the MetroForm. + + Form to render. + Rendering event arguments. + + + + Renders the MetroForm. + + Form to render. + Rendering event arguments. + + + + Renders the MetroTabItem. + + Form to render. + Rendering event arguments. + + + + Renders the MetroTabStrip + + TabStrip to render. + Paint args + + + + Renders the MetroStatusBar. + + Status bar to render + Paint args + + + + Renders the MetroStatusBar. + + Status bar to render + Paint args + + + + Defines class for passing rendering information to renderer. + + + + + Gets or sets the control to render. + + + + + Gets or sets the paint event arguments to use to render out control. + + + + + Gets or sets the current color table. + + + + + Gets or sets default font. + + + + + Gets or sets default plain font. + + + + + Gets or sets right-to-left setting. + + + + + Gets or sets the paint information for items. + + + + + Represents the Office 2007 Ribbon Tab Group painter. + + + + + Paints ribbon tab group. + + Context information + + + + Paints SwitchButton. + + Provides arguments for the operation. + + + + Gets or sets color table used by renderer. + + + + + Defines Thickness structure used by borders and margins. + + + + + Creates new instance of the object. + + Uniform Thickness + + + + Creates new instance of the object. + + Left Thickness + Top Thickness + Right Thickness + Bottom Thickness + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Gets whether object equals to this instance. + + object to test. + returns whether objects are Equals + + + + Returns hash code for object. + + Hash code + + + + Returns string representation of object. + + string representing Thickness + + + + Gets string representation of object. + + Culture info. + string representing Thickness + + + + Returns whether object holds valid value. + + Specifies whether negative values are allowed. + Specifies whether NaN values are allowed. + Specifies whether positive infinity values are allowed + Specifies whether negative infinity values are allowed + true if object holds valid value + + + + Returns true if two objects are close. + + Thickness to test. + true if values are close. + + + + Returns true if two objects are close. + + Thickness 1 + Thickness 2 + true if values are close. + + + + Returns whether all values are zero. + + + + + Returns whether all values are the same. + + + + + Gets or sets the left Thickness. + + + + + Gets or sets the top Thickness. + + + + + Gets or sets the Right Thickness. + + + + + Gets or sets the Bottom Thickness. + + + + + Gets the total horizontal thickness i.e. Left+Right. + + + + + Gets the total vertical thickness i.e. Top+Bottom. + + + + + Provides Thickness TypeConverter. + + + + + Represents the base class each micro-chart implements + + + + + Creates the chart image. + + Rendering information. + Image of the chart. + + + + Defines the style for Area micro chart. + + + + + Initializes a new instance of the AreaMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the chart area color. + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Defines the style for the bar style micro charts. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the minimum single bar width. + + + + + Gets or sets the color of positive bar value. + + + + + Gets or sets the color of negative bar value. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the value of the zero line, i.e. pivot point that determines negative and positive values. Default value is 0. + + + + + Gets or sets the color of the lowest value bar on graph. + + + + + Gets or sets the color of the highest value bar on graph. + + + + + Defines the style for 100% bar chart. + + + + + Initializes a new instance of the PieMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the minimum single bar width. + + + + + Gets the pre-defined slice colors for the pie chart. + + + + + Gets or sets the color of the slice outline. + + + + + Defines the style for the line micro chart. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the chart line. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the color of the + + + + + Gets or sets whether zero-line is drawn on chart. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the color of the + + + + + Occurs when style appearance changes. + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the first control line. + + + + + Gets or sets starting value that is used to draw first control line. + + + + + Gets or sets end value that is used to draw first control line. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the second control line. + + + + + Gets or sets starting value that is used to draw second control line. + + + + + Gets or sets end value that is used to draw second control line. + + + + + Represents Micro-Chart Control. + + + + + Initializes a new instance of the MicroChart class. + + + + + Forces the button to perform internal layout. + + + + + Raises MouseOverDataPointChanged event. + + Provides event arguments. + + + + Invalidates the chart display and requests the re-paint. + + Indicates whether to animate transition to new chart + + + + Called when Command property value changes. + + + + + Gets or sets whether mouse over tooltip for data point is enabled. Default value is true. + + + + + Gets the index of data point (DataPoints collection) that mouse is over or returns -1 if mouse is not over any data-point. + + + + + Occurs when MouseOverDataPointIndex property changes due to user moving the mouse and pointing it to different data point on chart. + + + + + Gets or sets the tooltips for each data-point assigned through DataPoints property. If not set control will automatically + show tooltip based on the data-point value. + + + + + Gets or sets the chart data points. Note that if you are adding or removing points directly from this collection you must call + Refresh() method on the control to refresh the display. + + + + + Gets or sets the format string for the value when it is displayed as tool-tip for data point. + + + + + Gets or sets whether chart is tracking mouse movement to show data-point and its value on tooltip. Default value is true. + + + + + Gets or sets whether transition animation between same chart with different data-points is enabled. Default value is true. + + + + + Gets or sets whether button like mouse over tracking is enabled for whole control. When enabled control looks like a button when mouse is over it. Default value is false. + + + + + Gets the style used to customize appearance of Line micro-chart. + + + + + Gets the style used to customize appearance of Plot micro-chart. + + + + + Gets the style used to customize appearance of Column micro-chart. + + + + + Gets the style used to customize appearance of Bar micro-chart. + + + + + Gets the style used to customize appearance of Win-Lose micro-chart. + + + + + Gets the style used to customize appearance of Pie micro-chart. + + + + + Gets the style used to customize appearance of Area micro-chart. + + + + + Gets the style used to customize appearance of 100% micro-chart. + + + + + Gets or sets the type of the chart rendered. + + + + + Gets or sets the maximum value for data points. By default maximum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets or sets the minimum value for data points. By default minimum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets whether command is executed when control is clicked. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Initializes a new instance of the TrendInfo structure. + + + + + + + + + Initializes a new instance of the TrendInfo structure. + + + + + Initializes a new instance of the MicroChartRenderInfo structure. + + + + + + + + + Represents the micro-chart item. + + + + + Creates new instance of MicroChartItem. + + + + + Creates new instance of MicroChartItem and assigns the name to it. + + Item name. + + + + Creates new instance of MicroChartItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the MicroChartItem specific properties to new instance of the item. + + New MicroChartItem instance. + + + + Copies the MicroChartItem specific properties to new instance of the item. + + New MicroChartItem instance. + + + + Recalculate the size of the item. If overridden base implementation must be called so default processing can occur. + + + + + Raises MouseOverDataPointChanged event. + + Provides event arguments. + + + + Invalidates the chart display and requests the re-paint. + + Indicates whether to animate transition to new chart + + + + Draws the chart. + + Paint arguments + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when DataMaxValue property has changed. + + Old property value + New property value + + + + Called when DataMinValue property has changed. + + Old property value + New property value + + + + Gets or sets the suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed. + + + + + Gets or sets the format string for the value when it is displayed as tool-tip for data point. + + + + + Gets or sets the chart data points. Note that if you are adding or removing points directly from this collection you must call + Refresh() method on the control to refresh the display. + + + + + Gets or sets the tooltips for each data-point assigned through DataPoints property. If not set control will automatically + show tooltip based on the data-point value. + + + + + Gets or sets whether transition animation between same chart with different data-points is enabled. Default value is true. + + + + + Gets whether fade effect is enabled. + + + + + Gets or sets whether chart is tracking mouse movement to show data-point and its value on tooltip. Default value is true. + + + + + Gets or sets whether button like mouse over tracking is enabled for whole control. When enabled control looks like a button when mouse is over it. Default value is false. + + + + + Gets the index of data point (DataPoints collection) that mouse is over or returns -1 if mouse is not over any data-point. + + + + + Gets or sets whether mouse over tooltip for data point is enabled. Default value is true. + + + + + Occurs when MouseOverDataPointIndex property changes due to user moving the mouse and pointing it to different data point on chart. + + + + + Gets the style used to customize appearance of Line micro-chart. + + + + + Gets the style used to customize appearance of Plot micro-chart. + + + + + Gets the style used to customize appearance of Column micro-chart. + + + + + Gets the style used to customize appearance of Bar micro-chart. + + + + + Gets the style used to customize appearance of Win-Lose micro-chart. + + + + + Gets the style used to customize appearance of Pie micro-chart. + + + + + Gets the style used to customize appearance of Area micro-chart. + + + + + Gets the style used to customize appearance of 100% micro-chart. + + + + + Gets or sets the width of the chart part of the control. + + + + + Gets or sets the height of the chart part of the control. + + + + + Gets or sets the type of the chart rendered. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets text-position in relation to the chart. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether caption/label set using Text property is visible. + + + + + Gets or sets text padding. + + + + + Gets or sets switch margin. + + + + + Gets or sets the text color. + + + + + Gets or sets the background image position + + + + + Gets or sets the background image used by the control. + + + + + Gets or sets the maximum value for data points. By default maximum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Gets or sets the minimum value for data points. By default minimum data point is calculated based on that data displayed by the chart, but when + two charts need to be scaled the same setting maximum and minimum values for them will ensure that scales are visually the same. + + + + + Indicates item's visibility when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Represents MicroChart hot-points. + + + + + Start angle for pie slice. + + + + + Sweep angle for pie slice. + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + + + Initializes a new instance of the MicroChartHotPoint structure. + + + + + + + + + + Defines available MicroChar types. + + + + + Identifies Plot chart. + + + + + Identifies WinLose chart. + + + + + Identifies Area chart. + + + + + Identifies Line chart. + + + + + Identifies Column chart. + + + + + Identifies Bar chart. + + + + + Identifies Pie chart. + + + + + Identifies 100% bar. + + + + + Defines micro-chart text position in relation to the chart. + + + + + Text is positioned to the left of the chart. + + + + + Text is positioned to the right of the chart. + + + + + Text is positioned on top of the chart. + + + + + Text is positioned on bottom of the chart. + + + + + Defines the style for pie chart. + + + + + Initializes a new instance of the PieMicroChartStyle class. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets the pre-defined slice colors for the pie chart. + + + + + Gets or sets the color of the slice outline. + + + + + Defines the style for the plot micro chart. + + + + + Raises StyleChanged event. + + Provides event arguments. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when style appearance changes. + + + + + Gets or sets the color of the chart line. + + + + + Gets or sets whether average line is drawn. + + + + + Gets or sets the color of the + + + + + Gets or sets whether zero-line is drawn on chart. + + + + + Gets or sets the value of the zero line, i.e. where zero line is drawn. Default value is 0. + + + + + Gets or sets the color of the + + + + + Gets or sets the color of the high point dot on chart. + + + + + Gets or sets the color of the low point dot on chart. + + + + + Gets or sets the color of the first point dot on chart. + + + + + Gets or sets the color of the last point dot on chart. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the first control line. + + + + + Gets or sets starting value that is used to draw first control line. + + + + + Gets or sets end value that is used to draw first control line. + + + + + Gets or sets whether control line is drawn. Default value is false. Control lines can be used to display for example low and high control bounds for the chart. + + + + + Gets or sets the color of the second control line. + + + + + Gets or sets starting value that is used to draw second control line. + + + + + Gets or sets end value that is used to draw second control line. + + + + + Class that tracks lists of all controls that host currently open popups. + + + + + Registers IOwnerMenuSupport popup host in response to host displaying its first popup. + + IOwnerMenuSupport host to register + + + + Unregisters IOwnerMenuSupport popup host in response to host closing its last popup. + + IOwnerMenuSupport host to unregister + + + + Closes all currently open popups. + + + + + Closes all currently open popups excluding specified popup host. + + IOwnerMenuSupport host to exclude from closing or null + + + + Represents custom collection with INotifyPropertyChanged and INotifyCollectionChanged interface support. + + + + + + Represents collection changed notification interface. + + + + + Occurs when collection changed. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + List to initialize collection with. + + + + Add item to collection. + + Item to add. + + + + Remove all items from collection. + + + + + Remove all items from collection. + + + + + Checks whether collection contains item. + + Item to look for. + true if item is in collection. + + + + Copy collection to array. + + Array to copy to. + Index to copy from. + + + + Copy collection to array. + + Array to copy to. + + + + Gets enumerator for collection. + + Enumerator. + + + + Returns index of an item. + + Reference to item. + Index of item. + + + + Insert item at specified location. + + Index to insert item in. + Item to insert. + + + + Inserts item. + + Index to insert item at. + Reference to item. + + + + Removes item from collection. + + Item to remove. + true if item was removed. + + + + Remove item at specified location. + + Index of item to remove. + + + + Remove item at specified location. + + Index of item to remove. + + + + Set item on location. + + Index + Item to assign. + + + + Returns items directly without checks. + + List of items. + + + + Occurs when collection is read. + + + + + Occurs when collection property has changed. + + Event arguments. + + + + Blocks the collection reentrancy. + + IDisposable to end re-entrancy + + + + Checks whether call creates reentrancy. + + + + + Called when collection has changed. + + Event arguments. + + + + Occurs when property value has changed. + + + + + Returns number of items in collection. + + + + + Returns item at index. + + Index of item. + Item at index. + + + + Returns the IList interface for items in collection. + + + + + Occurs when collection has changed. + + + + + Defines change actions. + + + + + Items were added. + + + + + Items were removed. + + + + + Items were replaced. + + + + + Items were moved. + + + + + Collection was reset. + + + + + Defines delegate for collection notification events. + + Event sender. + Event arguments. + + + + Defines collection change notification event arguments. + + + + + Create new instance of object. + + Action + + + + Creates new instance of object. + + Specifies action. + List of changed items. + + + + Creates new instance of object. + + Specifies action. + Item that was changed. + + + + Creates new instance of object. + + Action. + New items in collection. + Old items in collection. + + + + Creates new instance of object. + + Action. + List of changed items. + Starting index of change. + + + + Creates new instance of object. + + Action + Changed item + Index of change + + + + Creates new instance of object. + + Action + New item + Old item + + + + Creates new instance of object. + + Action + New items. + Removed items. + Starting index of change. + + + + Creates new instance of object. + + Action + Changed items + New index + Old index + + + + Creates new instance of object. + + Action + Changed item + New index + Old index + + + + Creates new instance of object. + + Action. + New item + Old item + New index + + + + Gets the type of the collection change action. + + + + + Gets list of newly added items. + + + + + Gets new starting index. + + + + + Gets list of removed items. + + + + + Old starting index. + + + + + Represents advanced property grid control. + + + + + Defines an interface that is used by advanced property grid parser to localize property names. + + + + + Gets localized property name. + + Property name to retrieve localized name for. + Localized Property name or null to use default. + + + + Gets localized category name. + + Category to retrieve localized value for. + Localized Category name or null to use default. + + + + Gets localized message for Tooltip body when error setting the property value has occurred. + + Default system message. + Localized message or null to use default. + + + + Gets the style that is applied to property node when it is in read-only state. + + + + + Gets the style that is applied to property node when its value has changed from the default value for the property. + + + + + Gets the property category style. + + + + + Gets the default style for unchanged value edit cell. + + + + + Initializes a new instance of the AdvPropertyGrid class. + + + + + Invokes PropertyValueChanging event. + + Event data. + + + + Invokes PropertyValueChanged event handler. + + Name of the property that has changed. + New property value. + Old property value. + + + + Invokes PropertyValueChanged event. + + Name of property that has changed + + + + Raises ValidatePropertyValue event. + + Provides event arguments. + + + + Raises PropertiesLoaded event. + + Provides event arguments. + + + + Commits any property edits that are currently in progress by applying the current entered value to the property. + Returns true if edit was applied. + + + + + Updates specified property value in property grid. + + Property Name to update value for. + + + + Refreshes the display of all property values in the grid. + + + + + Reloads all properties from selected object. + + + + + Collapses all the categories in the AdvPropertyGrid. + + + + + Expands all the categories in the AdvPropertyGrid. + + + + + Raises the PrepareErrorSuperTooltip event. + + Provides information about event. + + + + Sets the property grid column width. + + Column index + Width of column in pixels + + + + Raises the ConvertPropertyValueToString event. + + Provides event data + + + + Raises the ConvertFromStringToPropertyValue event. + + Provides event data + + + + Raises the ProvidePropertyValueList event. + + Provides event data + + + + Raises the ProvideUITypeEditor event. + + Provides event data + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Find PropertyNode using the property name. + + Property to name + PropertyNode or null if not found + + + + Called when SubPropertiesDefaultSort property has changed. + + Old property value + New property value + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Signals the object that initialization is starting. + + + + + Signals the object that initialization is ending. + + + + + Occurs when property grid needs property names translated for UI. + + + + + Occurs when Super Tooltip that is displayed for the error that occurred when property is being set is being assigned to a property node. + This event allows you to customize the super tooltip displayed. + + + + + Occurs when property value is being converted to text representation for display. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when text entered by user is being converted to typed property value to be assigned to the property. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when property looks for the list of valid values for the property to show on either drop-down or use + in auto-complete list. For example when property type is enum the internal implementation will convert available enum + values into string list and use on drop-down and in auto-complete list. You can use this event to provide + custom value list in combination with ConvertPropertyValueToString, ConvertFromStringToPropertyValue events. + You must set IsListValid=true on event arguments to indicate that list your provided should be used. + + + + + Occurs when property node needs the UITypeEditor for the property. You can handle this event and provide your own UITypeEditor to be used instead of the one specified on the property. + + + + + Occurs when user changes the value of the property in property grid. + + + + + Occurs before property value entered by the user is set on the property. You can cancel internal assignment by property grid by setting Handled=true on event arguments. + + + + + Occurs when users changes the property value and attempts to commit the changes. This even allows you to validate the value and show error message if value is invalid and cancel its application. + + + + + Occurs after properties have been loaded into the property grid. + + + + + Gets or sets the currently selected objects. + + + + + Gets or sets the currently selected object. + + + + + Gets or sets the browsable attributes associated with the object that the property grid is attached to. + + + + + Gets or sets whether property is highlighted to confirm the value update by user. Default value is true. + + + + + Gets or sets the list of property names that are not loaded into property grid regardless of their Browsable attribute setting. + + + + + Gets or sets the list of category names properties below to that are not loaded into property grid regardless of the property Browsable attribute setting. + + + + + Returns reference to internal SuperTooltip component used by AdvPropertyGrid. + + + + + Defines the appearance of the control. + + + + + Gets or sets the property sorting inside of the grid. + + + + + Gets or sets the help type that is provided by the control. Default help type is SuperTooltip which shows tooltip over each property + that provides property description. + + + + + Gets reference to the help panel that is displayed below property grid and which provides selected property description. + + + + + Gets reference to the expandable splitter that is displayed above the help panel and allows resizing of the panel. + + + + + Gets reference to internal AdvTree control that displays properties. + + + + + Gets or sets the grid lines color. + + + + + Gets the reference to the internal toolbar control displayed above the property grid. + + + + + Gets or sets whether toolbar is visible. Default value is true. + + + + + Gets or sets whether search text box that allows property filtering is visible. Default value is true. + + + + + Gets reference to internal TextBoxItem that represents search text box. + + + + + Gets the reference to the property gird localization object which holds all system text used by the component. + + + + + Gets or sets whether Tab key navigates between property nodes. Default value is true. + + + + + Gets or sets the password character used by the property values that are marked with PropertyPasswordText attribute. + + + + + Gets or sets the sub property default sorting. Default value is Alphabetical. + + + + + Occurs when property defined by AdvPropertyGrid control has changed. + + + + + Gets the style that is applied to property node when it is in read-only state. + + + + + Gets the style that is applied to property node when its value has changed from the default value for the property. + + + + + Gets the style that is applied to property edit cell when its displaying unchanged property value. + + + + + Gets the property category style. + + + + + Defines the sorting for the AdvPropertyGrid properties. + + + + + Specifies help types property grid uses to display help for selected property. + + + + + No help is visible. + + + + + SuperTooltip with property description is displayed when mouse is over the property. + + + + + Panel below property grid is displayed which shows the description for the selected property. + + + + + Defines delegate for Localize AdvPropertyGrid event. + + + + + + + Defines data for Localize AdvPropertyGrid event. + + + + + Gets the property name or category name localization is performed for. Inspect LocalizationType property to get localization type which + determines value specified in this property. + + + + + Gets the localization type being performed. + + + + + Gets or sets the localized value to be used. Set to null or empty string to use default value. + + + + + Initializes a new instance of the AdvPropertyGridLocalizeEventArgs class. + + Key value event is raised for. + Localization Type being performed. + + + + Defines the localization types for AdvPropertyGrid control. + + + + + Property name is localized. + + + + + Category is localized. + + + + + Error super tooltip parts are being localized. + + + + + Defines delegate for Localize AdvPropertyGrid event. + + + + + + + Defines data for PrepareErrorTooltip AdvPropertyGrid event. + + + + + Gets or sets the SuperTooltipInfo that represent tooltip that will be displayed to provide error information. + + + + + Gets the name of the property tooltip is displayed for. + + + + + Gets reference to the exception that was thrown when property was set. + + + + + Gets the value that was set and caused the error. + + + + + Initializes a new instance of the PropertyErrorTooltipEventArgs class. + + SuperTooltipInfo for error tooltip + Property that caused error + Exception that was raised when property was set + Value that caused the error. + + + + Defines delegate for Convert Value events. + + Sender + Event data. + + + + Defines data for Convert Value events that allows custom value conversion for property grid. + + + + + Gets or sets the string property value. + + + + + Gets or sets the typed property value. + + + + + Gets the property name for which conversion is being done. + + + + + Gets the target component that property is on. + + + + + Gets or sets whether converted value is used. You need to set this property to true to indicate that you have performed value conversion. + + + + + Gets the property descriptor that describes property. + + + + + Initializes a new instance of the ConvertValueEventArgs class. + + + + + + + + + Defines delegate for Convert Value events. + + Sender + Event data. + + + + Defines data for Convert Value events that allows custom value conversion for property grid. + + + + + Gets the property name value list is needed for. + + + + + Gets the target component that property is on. + + + + + Gets or sets whether property ValueList provided is valid. You must set this property to true in order for the list to be used. + + + + + Gets or sets the list of valid property values. + + + + + Gets the property descriptor that describes property. + + + + + Initializes a new instance of the PropertyValueListEventArgs class. + + + + + + + Defines delegate for Localize AdvPropertyGrid event. + + Sender of event. + Event data. + + + + Defines data for PrepareErrorTooltip AdvPropertyGrid event. + + + + + Gets the property name UITypeEditor is looked for. + + + + + Gets the property descriptor for property UITypeEditor is looked for. + + + + + Gets or sets the instance of UITypeEditor to be used for the property. You set this property to the UITypeEditor that you want + used for the property while editing. Note that you must set EditorSpecified = true in order for this value to be used. + + + + + Gets or sets whether the value specified in UITypeEditor property is used. You must set this value to true in order for + UITypeEditor property value to be used. + + + + + Initializes a new instance of the ProvideUITypeEditorEventArgs class. + + Property Name + Property Descriptor + + + + Defines delegate for PropertyValueChanging event. + + Event sender. + Event data. + + + + Defines arguments for PropertyValueChanging event. + + + + + Gets the name of the property which value is changing. + + + + + Gets the new value that is being set on property. + + + + + Gets or sets whether value assignment was handled by your code. Set to true to cancel internal AdvPropertyGrid property value assignment. + + + + + Gets the PropertyDescriptor for the property being changed. + + + + + Gets the full property path up to the selected object. + + + + + Initializes a new instance of the PropertyValueChangingEventArgs class. + + + + + + + Initializes a new instance of the PropertyValueChangingEventArgs class. + + + + + + + Defines delegate for ValidatePropertyValue event. + + Sender + ValidatePropertyValue event arguments + + + + Defines event arguments for ValidatePropertyValue event. + + + + + Gets or sets whether validation failed. Set to true to cancel property value assignment. + + + + + Gets the name of the property which value is changing. + + + + + Gets the new value that is being set on property. + + + + + Gets the target object on which property value is set. + + + + + Gets or sets the message that is displayed to user if validation fails, i.e. Cancel=true. + + + + + Initializes a new instance of the ValidatePropertyValueEventArgs class. + + + + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets the color of the node highlight when error has occurred while setting property value. + + + + + Gets or sets the color of the node highlight when property update was successful. + + + + + Gets or sets default style for property node. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets style for property node edit cell when displaying unchanged property value. + + + Default value is null. + + + + + Gets or sets style for property node when in read-only state. + + + Default value is null. + + + + + Gets or sets the image that is displayed in property name cell when property value has failed the validation. + + + + + Represents the class that stores text used by property grid control for localization purposes. + + + + + Raises the PropertyChanged event. + + Provides event arguments. + + + + Gets or sets tooltip used by Categorized toolbar button. + + + + + Gets or sets tooltip used by Alphabetical toolbar button. + + + + + Gets or sets the tooltip text used in tooltip when error occurred during property value setting. + + + + + Gets or sets the watermark text displayed in search text-box. + + + + + Occurs when property defined by AdvPropertyGridLocalization class has changed. + + + + + Represents the property category in AdvPropertyGrid. + + + + + Represents check-box style property node in AdvPropertyGrid. + + + + + Represents a property node in AdvPropertyGrid. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Releases the inline editor used by the node. + + + + + Places the node into the editing mode if possible, raises the exception if node is read-only. + + Action that caused the edit mode. + Indicates whether to focus the editor. + + + + Called after property editor is created. + + + + + Exits the editor mode. + + Action that caused the editor mode exit. + + + + Called when visual part of the node has changed due to the changes of its properties or properties of the cells contained by node. + + + + + Cancel the edit changes and applies the old property value. + + + + + Attempts to apply current edit value to the property. + + + + + Returns the full property path to the root of the selected object. + + Full property path. + + + + Starts fade background color style highlight for the property node. + + Specifies the fade background color. + + + + Applies PropertySettings to this node. + + + + + Gets or sets whether property text box is read only. Default value is false. + + + + + Gets whether node is in editing mode. + + + + + Gets or sets the property settings that are applied to this property node. + + + + + Gets or sets whether property node represents property for multiple objects. + + + + + Gets or sets whether property is password property which value is not displayed as plain text. + + + + + Defines delegate that is called after property editor is created. + + PropertyNode sender. + Reference to editor. + + + + Initializes a new instance of the PropertyNode class. + + + + + + Defines a attribute which applies an date-time editor to a property when used with AdvPropertyGrid control. Applies to DateTime property types only. + + + + + Defines base attribute for custom AdvPropertyGrid in-line property value editors. + + + + + Creates a control that is used as property value in-line editor. Control must implement IPropertyValueEditor interface. + + PropertyDescriptor for the property being edited. + Target object that owns the property. + Control that represents in-line editor. + + + + Gets or sets pre-defined format for date-time input. + + + + + Gets or sets custom format for date-time input. + + + + + Gets or sets whether empty null/nothing state of the control is allowed. Default value is false. + + + + + Gets or sets whether drop-down button that shows calendar is visible. Default value is true. + + + + + Gets or sets the minimum date that control accepts. + + + + + Gets or sets the maximum date that control accepts. + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + + + Initializes a new instance of the PropertyDateTimeEditor class. + + + + + Defines an interface that is implemented by the control that will be used by AdvPropertyGrid control to edit property value. + + + + + Focus the edit part of the control. + + + + + Gets or sets the font used by the edit part of the control. Font might be used to visually indicate that property value has changed. Implementing this property is optional. + + + + + Gets whether the edit part of the control is focused. + + + + + Gets or sets the value being edited. + + + + + Occurs when EditValue changes. Raising this even will cause the property value to be updated with the EditValue. + + + + + Defines a attribute which applies an double type numeric editor to a property when used with AdvPropertyGrid control. Applies to double property types only. + + + + + Gets or sets whether up/down button is shown. + + + + + Gets or sets the display format for the control when control does not have input focus. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets whether empty state i.e. null/nothing value is allowed when editor is used with nullable types. + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + + + Initializes a new instance of the PropertyDoubleEditor class. + + + + + + + Defines a attribute which applies an integer type numeric editor to a property when used with AdvPropertyGrid control. Applies to int property types only. + + + + + Gets or sets whether up/down button is shown. + + + + + Gets or sets the display format for the control when control does not have input focus. + + + + + Gets or sets the minimum value that can be entered. + + + + + Gets or sets the maximum value that can be entered. + + + + + Gets or sets whether empty state i.e. null/nothing value is allowed when editor is used with nullable types. + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + + + Initializes a new instance of the PropertyIntegerEditor class. + + + + + + + Defines multiple choice, option or check-boxes, in-line AdvPropertyGrid property value editor. + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + Initializes a new instance of the PropertyMultiChoiceEditor class. + + + + + + + + Represents item container that arranges items horizontally or vertically. + + + + + Creates new instance of the ItemContainer object. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Returns empty container default design-time size. + + Size of an empty container. + + + + Gets whether FixedSize property should be serialized. + + + + + Resets the property to default value. + + + + + Called when FixedSize property has changed. + + Old property value + New property value + + + + Recalculates the size of the container. Assumes that DisplayRectangle.Location is set to the upper left location of this container. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Return Sub Item at specified location + + + + + Called after TopInternal property has changed + + + + + Called after LeftInternal property has changed + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Called when item Display state has changed. + + + + + Sets whether container is used as system container internally by DotNetBar. + + true or false to indicate whether container is system container or not. + + + + Called when TitleVisible property has changed. + + Old property value + New property value + + + + Called when TitleText property has changed. + + Old property value + New property value + + + + Called when TitlePosition property has changed. + + Old property value + New property value + + + + Selects first visible item contained by the container by sending mouse over message. + + + + + Sets the new hot-sub item for the container. This method is designed for internal use by the DotNetBar and should not be used. + + Reference to an instance of BaseItem or null. + + + + Gets or sets the minimum size of the container. Either Width or Height can be set or both. Default value is 0,0 which means + that size is automatically calculated. + + + + + Specifies the container background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Gets or sets spacing in pixels between items. Default value is 0. + + + + + Gets or sets the suggested fixed size of the container. Width or Height or Both may be set to suggest fixed size for the container. + + + + + Gets or sets orientation inside the container. Do not change the value of this property. It is managed by system only. + + + + + Gets or sets orientation inside the container. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + IBlock member implementation + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Returns whether instance of the item container is used as system container internally by DotNetBar. + + + + + Gets or sets the accessible role of the item. + + + + + Specifies the title background style. + + + + + Indicates whether TitleText is visible if set. Default value is true. + + + + + Gets or sets the title text for the container. + + + + + Gets or sets position of title text. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Specifes the mouse cursor displayed when mouse is over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Indicates whether container responds to keyboard presses and changes the active/mouse over item. + + + + + Initializes a new instance of the PropertyMultiChoiceItemEditor class. + + + + + + + Represents the option list property node for AdvPropertyGrid. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Describes the property settings applied to the property on AdvPropertyGrid control. + + + + + Initializes a new instance of the PropertySettings class. + + + + + Initializes a new instance of the PropertySettings class. + + + + + + Initializes a new instance of the PropertySettings class. + + + + + + Raises the ConvertPropertyValueToString event. + + Provides event data + + + + Raises the ConvertFromStringToPropertyValue event. + + Provides event data + + + + Raises the ProvidePropertyValueList event. + + Provides event data + + + + Called when TypeConverter property has changed. + + Old property value + New property value + + + + Raises PropertyChanged event. + + Event data. + + + + Occurs when property value is being converted to text representation for display. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when text entered by user is being converted to typed property value to be assigned to the property. You can handle this event + to provide custom conversion for property values. You must set IsConverted=true on event arguments to indicate that you have performed value conversion. + + + + + Occurs when property looks for the list of valid values for the property to show on either drop-down or use + in auto-complete list. For example when property type is enum the internal implementation will convert available enum + values into string list and use on drop-down and in auto-complete list. You can use this event to provide + custom value list in combination with ConvertPropertyValueToString, ConvertFromStringToPropertyValue events. + You must set IsListValid=true on event arguments to indicate that list your provided should be used. + + + + + Gets or sets read-only property style. + + + Default value is null. + + + + + Gets or sets whether property is in read-only state. Default value is false. + + + + + Gets or sets the SuperTooltip that is displayed when property is in read-only state (ReadOnly=true). + + + + + Gets or sets the SuperTooltip that is assigned to the property. + + + + + Gets or sets the image that is displayed next to the property name in the grid. + + + + + Gets or sets the image alignment in relation to the property name inside of the grid cell. + + + + + Gets or sets the custom category node will be placed in instead of category specified by Category attribute. + + + + + Gets or sets the custom property name that is displayed in the grid instead of the real property name. + + + + + Gets or sets the name of the property that is managed by this informational object. If you set PropertyDescriptor than that is the value + that will be used by the control regardless of PropertyName value. + If you set PropertyName but not PropertyDescriptor then all properties with given name + regardless of type will use these settings. + + + + + Gets or sets property descriptor that identifies the property settings apply to. If you set PropertyDescriptor than that is the value + that will be used by the control regardless of PropertyName value. + If you set PropertyName but not PropertyDescriptor then all properties with given name + regardless of type will use these settings. + + + + + Gets or sets default property style. + + + Default value is null. + + + + + Gets or sets the UITypeEditor used to edit the property. + + + + + Gets or sets the custom in-line property value editor. Property value editor is created by inheriting from PropertyValueEditor class. + + + + + Gets or sets whether node is visible in property grid. Default value is true. + + + + + Gets or sets the property node type that is used to edit this property value. Note that content of property grid would need to be + reloaded to apply any changes to this property. + + + + + Gets or sets the property description that overrides description specified on property through DescriptionAttribute. + Default value is null. + + + + + Gets or sets custom TypeConverter assigned to the property which will override any TypeConverter that is returned by the PropertyDescriptor. + + + + + Occurs when property value on the object changes. + + + + + Defines the type of the property node in grid that is assigned to property. + + + + + Specifies default node type for the property. + + + + + Specifies the node type that is constructed as group of option buttons that represent all values for the property. Works best + for smaller set of Enum values. + + + + + Defines exception which is thrown when property value fails the validation in AdvPropertyGrid.ValidatePropertyValue event. + + + + + Initializes a new instance of the InvalidPropertyValueException class. + + + + + Defines Advanced Property Grid Node for Color type. + + + + + Initializes a new instance of the PropertyNode class. + + + + + + Initializes a new instance of the PropertyNodeFactory class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyParser class. + + + + + + Initializes a new instance of the PropertyGridInfoCollection class. + + + + + + Gets property info object based on property name. + + Property name. + PropertyGridInfo instance or null if it cannot be found. + + + + Gets property info object based on property descriptor. + + Property descriptor. + PropertyGridInfo instance or null if it cannot be found. + + + + Returns property setting based on property descriptor or name if property descriptor is not set on property settings + Property descriptor takes precedence. + + Property descriptor to look for. + Property Name to look for. + Property settings instance or null + + + + Gets the owner of the collection. + + + + + Defines a attribute which applies an slider in-line editor to a property when used with AdvPropertyGrid control. + + + + + Gets or sets the minimum slider value. + + + + + Gets or sets the maximum slider value. + + + + + Gets or sets whether slider text label is visible. + + + + + Gets or sets the slider label width. Default value is 18. + + + + + Gets or sets label text color. + + + + + Initializes a new instance of the PropertySliderEditor class. + + Minimum value for slider. + Maximum value for slider. + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + Initializes a new instance of the PropertySliderEditor class. + + + + + + + + + Creates a control that is used as property value in-line editor. Control must implement IPropertyValueEditor interface. + + PropertyDescriptor for the property being edited. + Target object that owns the property. + Control that represents in-line editor. + + + + Defines Radial Menu control. + + + + + Initializes a new instance of the RadialMenu class. + + + + + Raises BeforeMenuClose event. + + Provides event arguments. + + + + Raises BeforeMenuOpen event. + + Provides event arguments. + + + + Raises MenuOpened event. + + Provides event arguments. + + + + Raises MenuClosed event. + + Provides event arguments. + + + + Gets or sets whether radial menu is open. + + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when IsOpen property has changed. + + Old property value + New property value + + + + Sets whether radial menu is open and provides the source of the action. + + true to open menu, false to close it. + Source of the action. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Raises ItemAdded event. + + Reference to item. + Provides event arguments. + + + + Raises ItemRemoved event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseEnter event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseHover event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseLeave event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseDown event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseUp event. + + Reference to item. + Provides event arguments. + + + + Raises ItemMouseMove event. + + Reference to item. + Provides event arguments. + + + + Raises ItemClick event. + + Reference to item. + Provides event arguments. + + + + Raises ItemDoubleClick event. + + Reference to item. + Provides event arguments. + + + + Raises ItemExpandedChanged event. + + Reference to item. + Provides event arguments. + + + + Raises ItemTextChanged event. + + Provides event arguments. + + + + Raises ItemTooltipShowing event. + + Provides event arguments. + + + + Occurs before menu is closed and allows you to cancel closing. + + + + + Occurs before menu has been opened and allows you to cancel opening + + + + + Occurs after menu has been opened. + + + + + Occurs after menu is closed.Occurs after menu is closed. + + + + + Specifies the width of the sub-menu edge around the radial menu. + + + + + Indicates spacing between sub-menu marking edge and the item. + + + + + Gets or sets radial menu diameter. Minimum value is 64. + + + + + Gets reference to colors used by the radial menu. + + + + + Indicates the size of the back symbol that is displayed on center of radial menu + + + + + Specifies the back button symbol. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates diameter of center button of radial menu. + + + + + Specifies the maximum pie part angle an item will occupy. Maximum is 180, minimum is 1 degree. + + + + + Indicates maximum radial angle single item in menu can consume. By default this property is set to zero which indicates that + radial menu is equally divided between visible menu items. + + + + + Indicates the position of top-left corner of radial menu when shown in screen coordinates + + + + + Indicates image displayed in center of the radial menu. + + + + + Indicates symbol displayed in center of the radial menu. When set, it overrides any Image settings. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets whether radial menu is open. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether shortcut processing for the items hosted by this control is enabled. Default value is true. + + + + + Indicates whether radial menu is closed automatically when app is deactivated. Default value is true, if set to false + you are responsible for closing the menu. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Indicates the radial menu type. eRadialMenuType.Segment menu type allows for display of image, text and any sub-menu items. + eRadialMenuType.Circular allows only for display of Symbol or Image and it does not display either text or sub-menu items. + eRadialMenuType.Circular is designed to be used for single level menus only that don't need text. + + + + + Indicates whether control automatically scales the items if the parent Form performs scaling due to AutoScale settings. + + + + + Indicates accessibility help string + + + + + Returns whether control has any popups registered. + + + + + Indicates whether shortcuts handled by items are dispatched to the next handler or control. + + + + + Indicates whether items show tooltips. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets whether accelerator letters on buttons are underlined. Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Occurs after an item has been added to items collection. + + + + + Occurs after an item has been removed from items collection. + + + + + Occurs when mouse pointer enters boundaries of an item. + + + + + Occurs when mouse pointer hovers over an item. + + + + + Occurs when mouse pointer leaves boundaries of an item. + + + + + Occurs when mouse button is pressed on item. + + + + + Occurs when mouse button is released on item. + + + + + Occurs when mouse moves over an item. + + + + + Occurs when an item is clicked. + + + + + Occurs when an item is double-clicked. + + + + + Occurs when an item Expanded property value has changed. + + + + + Occurs when an item Text property value has changed. + + + + + Occurs when tooltip for an item is about to be displayed. + + + + + Defines colors used by Radial Menu Component. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets or sets the color of the Radial Menu button background. + + + + + Gets or sets the color of the radial menu button border. + + + + + Gets or sets the color of the Radial Menu background. + + + + + Gets or sets the color of the Radial Menu border + + + + + Gets or sets the color of border for mouse over state for the radial menu item expand part. + + + + + Gets or sets the color of the radial menu border for parts where items do not have sub-items, i.e. non-active area of the border. + + + + + Gets or sets the color of the expand sign which shows menu item sub-items. + + + + + Gets or sets the color of the radial menu item text. + + + + + Gets or sets the color of the radial menu item mouse over background. + + + + + Gets or sets the color of the radial menu item mouse over foreground. + + + + + Gets or sets the color of the radial menu item foreground when disabled. + + + + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets text color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets border color of the circular menu item type. Applies only to circular menu types. + + + + + Occurs when property value has changed. + + + + + Initializes a new instance of the RadialMenuContainer class. + + + + + Returns copy of the item. + + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New RadialMenuItem instance. + + + + Raises Opened event. + + Provides event arguments. + + + + Raises Closed event. + + Provides event arguments. + + + + Called when OpenState property has changed. + + Old property value + New property value + + + + Closes currently open popup. + + + + + Called when MaxItemRadialAngle property has changed. + + Old property value + New property value + + + + Called when Diameter property has changed. + + Old property value + New property value + + + + Called when CenterButtonDiameter property has changed. + + Old property value + New property value + + + + Called when SubMenuEdgeWidth property has changed. + + Old property value + New property value + + + + Called when SubMenuEdgeItemSpacing property has changed. + + Old property value + New property value + + + + Return Sub Item at specified location + + + + + Called when MenuLocation property has changed. + + Old property value + New property value + + + + Called when RadialMenu property has changed. + + Old property value + New property value + + + + Gets the current expanded subitem. + + + + + + Called when BackSymbolSize property has changed. + + Old property value + New property value + + + + Called when BackSymbol property has changed. + + Old property value + New property value + + + + Called when BackButtonSymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when MaxItemPieAngle property has changed. + + Old property value + New property value + + + + Called when MenuType property has changed. + + Old property value + New property value + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when Font property has changed. + + Old property value + New property value + + + + Occurs after radial menu is opened. + + + + + Occurs after radial menu is closed. + + + + + Returns internal popup control for radial menu. + + + + + Indicates maximum radial angle single item in menu can consume. By default this property is set to zero which indicates that + radial menu is equally divided between visible menu items. + + + + + Returns diameter which takes in account current scaling factor. + + + + + Gets or sets radial menu diameter. Minimum value is 64. + + + + + Returns actual center button diameter which takes in account current scale factor. + + + + + Indicates diameter of center button of radial menu. + + + + + Specifies the width of the sub-menu edge around the radial menu. + + + + + Indicates spacing between sub-menu marking edge and the item. + + + + + Indicates the position of top-left corner of radial menu when shown in screen coordinates + + + + + Indicates the size of the back symbol that is displayed on center of radial menu + + + + + Specifies the back button symbol. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Specifies the maximum pie part angle an item will occupy. Maximum is 180, minimum is 1 degree. + + + + + Gets reference to colors used by the radial menu. + + + + + Indicates the radial menu type. eRadialMenuType.Radial menu type allows for display of image, text and any sub-menu items. + eRadialMenuType.Circular allows only for display of Symbol or Image and it does not display either text or sub-menu items. + eRadialMenuType.Circular is designed to be used for single level menus only that don't need text. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the image displayed on the item. + + + + + Specifies font for menu items. + + + + + Initializes a new instance of the RadialSubItemInfo class. + + + + + + + + + Initializes a new instance of the RadialMenuPopupProxy class. + + + + + + Defines available radial menu type. + + + + + Defines Radial Menu Item. + + + + + Raises CheckedChanged event. + + Provides event arguments. + + + + Called when DisplayPath property has changed. + + Old property value + New property value + + + + Returns copy of the item. + + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the RadialMenuItem specific properties to new instance of the item. + + New RadialMenuItem instance. + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Called when Image property has changed. + + Old property value + New property value + + + + Called when TextVisible property has changed. + + Old property value + New property value + + + + Called when TracksMouse property has changed. + + Old property value + New property value + + + + Called when Checked property has changed. + + Old property value + New property value + + + + Called when TextOffset property has changed. + + Old property value + New property value + + + + Raises BeforeMenuOpened event. + + Provides event arguments. + + + + Raises BeforeMenuClosed event. + + Provides event arguments. + + + + Called when CircularMenuDiameter property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs after Checked property has changed. + + + + + Gets display path of the item. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the image displayed on the item. + + + + + Indicates whether text on item is visible. + + + + + Gets whether mouse is over the item. + + + + + Indicates whether item changes its appearance when mouse is over it or pressed + + + + + Indicates whether item is in checked state. + + + + + Gets or sets the optional text offset for the item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Occurs before radial menu item is expanded and its sub-items displayed. + + + + + Occurs before radial menu item is closed + + + + + Control Container (System.Windows.Forms.Control or its descendant) + + + + + Specifies explicit circular menu type diameter. Applies to circular menu type only. + + + + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets text color of the circular menu item type. Applies only to circular menu types. + + + + + Gets or sets border color of the circular menu item type. Applies only to circular menu types. + + + + + Initializes a new instance of the RadialMenuPopup class. + + + + + Called when DisplayItem property has changed. + + Old property value + New property value + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Returns the color scheme used by control. Color scheme for Office2007 style will be retrieved from the current renderer instead of + local color scheme referenced by ColorScheme property. + + An instance of ColorScheme object. + + + + Identifies the item displayed by this popup. + + + + + Gets or sets the content image displayed on the window. + + + + + Gets or sets the rendering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Represents rating item control which provides rating functionality. + + + + + Initializes a new instance of the RatingItem class. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the AverageRatingChanged event. + + Event data. + + + + Raises the ParseAverageRatingValue event. + + Provides event arguments. + + + + Sets the Rating value of the control and provides information about source of the rating change. + + New Rating value. + Source of this change. + + + + Raises RatingChanging event. + + Event data + + + + Raises the RatingChanged event. + + Event data. + + + + Raises the ParseRating event. + + Provides event arguments. + + + + Occurs when Rating property has changed. + + + + + Occurs when RatingValue property has changed. + + + + + Occurs when Rating property is about to be changed and provides opportunity to cancel the change. + + + + + Occurs when AverageRating property has changed. + + + + + Occurs when AverageRatingValue property has changed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs when RatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Occurs when AverageRatingValue property is set and it allows you to provide custom parsing for the values. + + + + + Gets or sets the average rating shown by control. Control will display average rating (if set) when no explicit + Rating value is set through Rating property. Minimum value is 0 and Maximum value is controlled by NumberOfStars property value. + + + + + Gets or sets the AverageRating property. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets the rating value represented by the control. Default value is 0 which indicates + that there is no rating set. Maximum value is controlled by NumberOfStars property. + + + + + Gets or sets the Rating property value. This property is provided for Data-Binding with NULL value support. + + + + + Gets or sets whether rating can be edited. Default value is true. + + + + + Specifies the control background style. Default value is an empty style which means that container does not display any background. + + + + + Gets the reference to custom rating images. + + + + + Gets or sets whether text assigned to the check box is visible. Default value is true. + + + + + Gets or sets the text color. Default value is Color.Empty which indicates that default color is used. + + + + + Gets or sets the spacing between optional text and the rating. + + + + + Gets or sets the orientation of rating control. + + + + + Indicates number of stars used for the rating. Minium value is 2 stars. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Initializes a new instance of the RatingImage structure. + + + + + + + Defines the custom rating images for Rating control. + + + + + Initializes a new instance of the RatingImages class. + + + + + Gets or sets the image used for unrated rating part. + + + + + Gets or sets the image used for unrated rating part when mouse is over the control. + + + + + Gets or sets the image used for rated part of the control. + + + + + Gets or sets the image used for Average Rated part of the control. + + + + + Gets or sets the image used for rated part of the control when mouse is over the control. + + + + + Delegate for Rating change events. + + + + + Represents event arguments for Rating change events. + + + + + New Rating value being assigned. + + + + + Previous or current value (if RatingChanging event). + + + + + Indicates the action that has caused the event. + + + + + Initializes a new instance of the RatingChangeEventArgs class. + + + + + + + + Represents color table for CrumbBarItemView. + + + + + Gets or sets the default state color table. + + + + + Gets or sets active mouse over color table. + + + + + Gets or sets inactive part mouse over color table. + + + + + Gets or sets the pressed color table. + + + + + Defines state color table for CrumbBarItemView + + + + + Gets or sets foreground/text color. + + + + + Gets or sets the background color blend collection. + + + + + Gets or sets the border color. + + + + + Gets or sets the border color. + + + + + Represents the color table for Office 2007 Style CalendarView Control. + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines colors for the WarningBox control. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Gets or sets the background color of WarningBox control. + + + + + Gets or sets the border color of the warning panel. + + + + + Gets or sets the back color of the warning panel. + + + + + Gets or sets the end gradient back color of the warning panel. + + + + + Renders the Range Slider items. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the Range Slider Item in single state. + + + + + Gets or sets the colors for the slider which changes the minimum value of the range. + + + + + Gets or sets the colors for the slider which changes the maximum value of the range. + + + + + Gets or sets the tick line color. + + + + + Gets or sets the color for the line which indicates current range value. + + + + + Gets or sets the background colors of the current range value. + + + + + Gets or sets the color for the line showing control range. + + + + + Gets or sets the background colors for the line showing control range. + + + + + Gets or sets the corner radius for the range rectangle. + + + + + Defines the color table for the Range Slider Item in single state. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Gets or sets the disabled colors. + + + + + Initializes a new instance of the Office2010RangeChangePartColorTable class. + + + + + Initializes a new instance of the Office2010RangeChangePartColorTable class. + + + + + + + + Gets or sets the part background colors. + + + + + Gets or sets the part border color + + + + + Gets or sets the part border light color + + + + + Represents color table for Office 2010 style. + + + + + Represents color table for Office 2007 style. + + + + + Defines the provider for the element style classes support. + + + + + Returns the instance of the ElementStyle with given class name or null if there is no class with that name defined. + + Class name. See static members of ElementStyleClassKeys class for the list of available keys. + Instance of ElementStyle for given class name or null if class cannot be found. + + + + Creates new instance of the object. + + + + + Initializes a new instance of the Office2007ColorTable class. + + Specifies the color factory for the color table. + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + + + + Creates new instance of the color table and initializes it with custom color scheme. + + Predefined color scheme to be used as starting color scheme. + Color to use as basis for new color scheme + + + + Gets or sets the RibbonBar color table. + + + + + Gets or sets the background colors for the ItemContainer with BeginGroup property set to true. + + + + + Gets or sets the background colors for the Bar object. + + + + + Gets or sets the colors for the RibbonControl. + + + + + Gets or sets the colors for the ColorItem which is used by drop-down Color Picker. + + + + + Gets or sets the color table for menus. + + + + + Gets or sets the color table for ComboBoxItem. + + + + + Gets or sets the colors for the Ribbon Bar dialog launcher button. + + + + + Gets or sets the legacy color scheme object that applies to the user interface elements not covered by color table. + + + + + Gets or sets the color table of the system buttons displayed in form caption. + + + + + Gets or sets the color table of the close system button displayed in form caption. Applies to Office 2010 styles and later only. + + + + + Gets or sets the color table for the form caption. + + + + + Gets or sets the bacgkround colors for the quick access toolbar. + + + + + Gets or sets the colors for the tab and tab strip control. + + + + + Gets or sets the colors for the tab strip control used on docking windows. When not set TabControl color scheme is used. + + + + + Gets or sets the KeyTips color table. + + + + + Gets or sets the color table for the CheckBoxItem. + + + + + Gets or sets the scroll bar colors. + + + + + Gets or sets the application style scroll bar colors. + + + + + Gets or sets the color table for the ProgressBarItem. + + + + + Gets or sets the color table for the paused ProgressBarItem. + + + + + Gets or sets the color table for the error state of ProgressBarItem. + + + + + Gets or sets the color table for the galleries. + + + + + Gets or sets the color table for the NavigationPane control. + + + + + Gets or sets the color table for the Slider item. + + + + + Gets or sets the color table for the Range Slider item. + + + + + Gets the SuperTooltip color table. + + + + + Gets the color table for the ListViewEx control. + + + + + Gets the color table for the ListViewEx control. + + + + + Gets the color table used by SideBar control. + + + + + Gets or sets the color table for AdvTree control. + + + + + Gets or sets the CrumBarItem color table. + + + + + Gets the color table used by Schedule control. + + + + + Gets or sets SwitchButton color table. + + + + + Gets or sets the colors for the StepItem used in ProgressSteps control. + + + + + Gets or sets the colors for the ListBoxItem used in ListBoxAdv control. + + + + + Gets or sets the color table for the radial menu. + + + + + Gets or sets color table for TokenEditor control tokens. + + + + + Gets or sets color table for Flyout control. + + + + + Gets or sets the colors for the SideNav control. + + + + + Returns the instance of the ElementStyle with given class name or null if there is no class with that name defined. + + Class name. See static members of ElementStyleClassKeys class for the list of available keys. + Instance of ElementStyle for given class name or null if class cannot be found. + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style. + The collection by default has elements that are created to + represents the members of eButtonColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. Name specified there can be used in ButtonItem.CustomColorName property to specify + custom color table for an ButtonItem. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style when + button is on RibbonBar control. When collection is empty the values from the ButtonItemColors collections are used instead. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by a button with Office 2007 style when + button is on menu bar. When collection is empty the values from the ButtonItemColors collections are used instead. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by Ribbon Application Menu Button in Office 2010 style. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by buttons that are on Backstage tab-strip. + + + + + Gets the reference to collection of Office2007ButtonItemColorTable objects the describe colors used by buttons that are on NavigationPane control. Currently used for Office 2010 style only. When empty ButtonItemColors is used. + + + + + Gets the reference to collection of Office2007RibbonTabItemColorTable objects the describe colors used by a ribbon tab with Office 2007 style. + The collection by default has elements that are created to + represents the members of eRibbonTabColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. Name specified there can be used in RibbonTabItem.CustomColorName property to specify + custom color table for an ButtonItem. + + + + + Gets the reference to collection of Office2007RibbonTabGroupColorTableCollection objects the describe colors used by a ribbon tab groups with Office 2007 style. + The collection by default has elements that are created to + represents the members of eRibbonTabGroupColor enumeration. The name of each color table object is the same as the string + enum representation. You can add custom members to this collection or modify the existing ones. Note that you must specify the + unique name for the new color table elements. + + + + + Returns the color scheme table was initialized with. + + + + + Get the reference to the collection that holds system cached styles. In most cases there is no need for you to modify members of this collection. + + + + + Gets or sets whether images like Start button image, are cloned when painted. This is reduces the performance but is necessary if they can be accessed from multiple threads. + + + + + Gets the reference to collection of contextual color tables that are based on items Control container type and other context properties. + When contextual color table is defined it overrides the default color table. + + + + + Initializes a new instance of the Office2010ColorTable class. + + + + + Gets the color scheme color table is initialized with. + + + + + Defines the color scheme type for the Office2010ColorTable. + + + + + Silver color scheme. + + + + + Blue color scheme. + + + + + Black color scheme. + + + + + Visual Studio 2010 Blue color scheme. + + + + + Specifies colors for StepIndicator control. + + + + + Initializes a new instance of the StepIndicatorColorTable class. + + + + + Initializes a new instance of the StepIndicatorColorTable class. + + + + + + + Gets or sets Background color of the control. + + + + + Gets or sets indicator color. + + + + + Defines the color table for SuperTab states + + + + + Event raised when the SuperTabColorTable is changed + + + + + Gets or sets the Background color + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the ControlBoxDefault colors + + + + + Gets or sets the ControlBoxMouseOver colors + + + + + Gets or sets the ControlBoxPressed colors + + + + + Gets or sets the colors for the InsertMarker. + + + + + Gets or sets the color for the SelectionMarker. + + + + + Gets whether the ColorTable is empty. + + + + + Defines the colors for the SuperTabControlBox states + + + + + Event raised when the SuperTabControlBoxStateColorTable is changed + + + + + Gets or sets the colors for the background. + + + + + Gets or sets the colors for the border. + + + + + Gets or sets the colors for the drawn image. + + + + + Defines the color table for SuperTabItem states + + + + + Event raised when the SuperTabItemColorTable is changed + + + + + Gets or sets the Default tab color settings + + + + + Gets or sets the Left Aligned tab color settings + + + + + Gets or sets the Bottom Aligned tab color settings + + + + + Gets or sets the Right Aligned tab color settings + + + + + Event raised when the SuperTabColorStates is changed + + + + + Gets or sets the tab colors when the tab is not selected, and the mouse is not over it + + + + + Gets or sets the tab colors when the tab is selected, but the mouse is not over the it + + + + + Gets or sets the tab colors when the tab is not selected, but the mouse is over it + + + + + Gets or sets the tab colors when the tab is selected, and the mouse is over it + + + + + Gets or sets the tab colors when the tab + is disabled, is not selected, and the mouse is not over it + + + + + Defines the colors for the SuperTabItem states + + + + + Event raised when the SuperTabItemStateColorTable is changed + + + + + Gets or sets the background colors. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the text color. + + + + + Gets or sets the Close Marker color. + + + + + Gets or sets the Selection Marker color. + + + + + Event raised when the SuperTabLinearGradientColorTable is changed + + + + + Gets or sets the Gradient Colors + + + + + Gets or sets the Gradient Color Positions + + + + + Gets or sets the Gradient angle + + + + + Gets or sets whether the Gradient will adapt to changes in the TabAlignment + + + + + Gets whether color definition is empty + + + + + Defines the colors for the SuperTabPanel + + + + + Event raised when the SuperTabPanelColorTable is changed + + + + + Gets or sets the Default tab panel color settings + + + + + Gets or sets the Left Aligned tab panel color settings + + + + + Gets or sets the Bottom Aligned tab panel color settings + + + + + Gets or sets the Right Aligned tab panel color settings + + + + + Event raised when the SuperTabPanelItemColorTable is changed + + + + + Gets or sets the background colors. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + GetOffice2010BackstageColorTable + + Office2010BackstageColorTable + + + + GetOffice2010BackstageBlueColorTable + + + + Office2010BackstageBlueColorTable + + + + GetVS2010BackstageBlueColorTable + + + + Office2010BackstageBlueColorTable + + + + GetOffice2010BackstageBlackColorTable + + + + Office2010BackstageBlackColorTable + + + + GetOffice2010BackstageSilverColorTable + + + + Office2010BackstageSilverColorTable + + + + GetOffice2007BackstageVistaGlassColorTable + + + + Office2010BackstageVistaGlassColorTable + + + + GetOffice2010BackstageSilverColorTable + + + + Office2010BackstageSilverColorTable + + + + GetOffice2010BackstageItemColorTable + + Office2010BackstageItemColorTable + + + + GetOffice2010BackstageBlueItemColorTable + + + + Office2010BackstageBlueItemColorTable + + + + GetOffice2010BackstageBlackItemColorTable + + + + Office2010BackstageBlackItemColorTable + + + + GetOffice2010BackstageSilverItemColorTable + + + + Office2010BackstageSilverItemColorTable + + + + GetOffice2007BackstageVistaGlassItemColorTable + + + + Office2010BackstageVistaGlassItemColorTable + + + + GetOffice2010BackstageSilverItemColorTable + + + + + Office2010BackstageSilverItemColorTable + + + + GetOffice2010BackstagePanelColorTable + + Office2010BackstagePanelColorTable + + + + GetOffice2010BackstageBluePanelColorTable + + + + Office2010BackstageBluePanelColorTable + + + + GetOffice2010BackstageBlackPanelColorTable + + + + Office2010BackstageBlackPanelColorTable + + + + GetOffice2010BackstageSilverPanelColorTable + + + + Office2010BackstageSilverPanelColorTable + + + + GetOffice2007BackstageVistaGlassPanelColorTable + + + + Office2010BackstageVistaGlassPanelColorTable + + + + GetOffice2010BackstageSilverPanelColorTable + + + + Office2010BackstageSilverPanelColorTable + + + + Defines color table for the SwitchButton control. + + + + + Gets or set the text/caption color. + + + + + Gets or sets the OFF text color. + + + + + Gets or sets the ON text color. + + + + + Gets or sets the button border color. + + + + + Gets or sets background color of OFF switch part. + + + + + Gets or sets background color of ON switch part. + + + + + Gets or sets the switch border color. + + + + + Gets or sets the switch background color. + + + + + Gets or sets the switch background color when in ON state, i.e. Value=true. When set to Color.Empty SwitchBackColor is always used. + + + + + Gets default disabled color scheme for the switch button. + + + + + Gets or sets default Switch Button color table. + + + + + Gets or sets the disabled Switch Button color table. + + + + + Represents the Windows 7 blue style color initialization class. + + + + + Represents color table for Windows 7 style. + + + + + Initializes a new instance of the Office2010ColorTable class. + + + + + Defines the color scheme type for the Office2010ColorTable. + + + + + Blue color scheme. + + + + + Provides information about the binding for the item. + + + + + Initializes a new instance of the ItemBindingInfo class. + + + + + + + Gets or sets the data row item is bound to. + + + + + Gets or sets the data item index. + + + + + Gets or sets the additional data connected to this binding information. + + + + + Represents the slider item which allows you to select a value from predefined range. + + + + + Creates new instance of SliderItem. + + + + + Creates new instance of SliderItem and assigns the name to it. + + Item name. + + + + Creates new instance of SliderItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Raises GetRangeTooltipText event. + + Provides event arguments. + + + + Gets the range part that is under specified client location. + + Location in parent control client coordinates. + Range part at specified location. + + + + Called when Minimum property has changed. + + Old property value + New property value + + + + Called when Maximum property has changed. + + Old property value + New property value + + + + Sets the range value. + + New Range value. + Source of the value change. + + + + Called when Value property has changed. + + Old property value + New property value + + + + Called when TicksVisible property has changed. + + Old property value + New property value + + + + Called when TicksStep property has changed. + + Old property value + New property value + + + + Called when RangeButtonSize property has changed. + + Old property value + New property value + + + + Called when TicksPosition property has changed. + + Old property value + New property value + + + + Called when MinimumAbsoluteRange property has changed. + + Old property value + New property value + + + + Called when RangeTooltipFormat property has changed. + + Old property value + New property value + + + + Called when MinRangeSliderImage property has changed. + + Old property value + New property value + + + + Called when MaxRangeSliderImage property has changed. + + Old property value + New property value + + + + Called when RangeLineHeight property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value has changed and allow the cancellation of the change. + + + + + Occurs after Value property has changed + + + + + Gets mouse over part. + + + + + Gets current part that is pressed using mouse left button. + + + + + Occurs when control is about to display the range tooltip and it allows you to customize tooltip + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the range displayed by the control. + + + + + Indicates whether tick lines are shown + + + + + Gets tick marks bounds. + + + + + Gets tick marks bounds for second marker is visible. + + + + + Gets bounds of minimum range sliding button. + + + + + Gets bounds of maximum range sliding button. + + + + + Indicates tick display period + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Gets or sets the width of the range slider in pixels. Value must be greater than 0. Default value is 140. + + + + + Gets or sets the Height of the range slider in pixels. Value must be greater than 0. Default value is 24. + + + + + Indicates the size of the range change buttons. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Specifies minimum absolute range that user can select. Absolute range is defined as Abs(Value.Max-Value.Min) Applies to user performed selection through mouse only. + + + + + Gets or sets the string that is used to format the range value to be displayed while user moves the range buttons. Value set here is used in string.Format(RangeTooltipFormat, Value.Min, Value.Max). + + + + + Specifies whether range tooltip is shown while user is changing the range + + + + + Indicates image to be used as minimum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Indicates image to be used as maximum range slider button instead of built-in button. Image is scaled to size set by RangeButtonSize. + + + + + Specifies the height of the range line + + + + + Indicates whether clicking the area outside of the range change buttons moves the range change button to the clicked location if possible thus allowing range change. + + + + + Gets or sets the color of the range value. + + + + + Specifies the ticks position inside of Range Slider. + + + + + Ticks are displayed on top of range sliders. + + + + + Ticks are displayed on bottom of range sliders. + + + + + Ticks are displayed on top and bottom of range sliders. + + + + + Defines value for the range slider controls. + + + + + Gets or sets the range minimum value. + + + + + Gets or sets the range maximum value. + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Range Slider item being rendered. + Reference to the graphics object. + + + + Defines delegate for RangeSliderValueChanging event. + + + + + + + Provides information for RangeSliderValueChanging event. + + + + + Represents event arguments that provide information on source of action. + + + + + Gets the source of the event. + + + + + Initializes a new instance of the EventSourceArgs class. + + + + + + New range value. + + + + + Set to true to cancel the value changing. + + + + + Initializes a new instance of the RangeSliderValueChangingEventArgs class. + + + + + + Defines the slider item parts. + + + + + Indicates no part. + + + + + Indicates the minimum range slider button. + + + + + Indicates the maximum range slider button. + + + + + Indicates the track area part of the control. + + + + + Defines delegate for RangeSliderValueChanging event. + + + + + + + Provides information for GetRangeTooltip event. + + + + + Gets or sets the tooltip to display. + + + + + Initializes a new instance of the RangeTooltipEventArgs class. + + + + + + Color definition class + + + + + Constructor - solid def + + RGB value + + + + Constructor - solid def + + Color + + + + Constructor - 2 color def + + Start Color + End Color + + + + Constructor - 2 color def + + Start Color + End Color + Gradient angle + + + + Constructor - Gradient def + + Array of RGB values + Gradient positions + + + + Constructor - Gradient def + + Array of Color values + Gradient positions + + + + Constructor - Gradient def + + Array of RGB values + Gradient positions + Gradient angle + + + + Constructor - Gradient def + + Array of Color values + Gradient positions + Gradient angle + + + + OnColorDefChanged + + + + + Event raised when the SuperTabColorStates is changed + + + + + Gets or sets the Color array + + + + + Gets or sets the Color Positions + + + + + Gets or sets the Gradient Angle + + + + + IsEmpty + + + + + ColorDefConvertor + + + + + Represents the visual separator line that is displayed between items. + + + + + Creates new instance of Separator. + + + + + Creates new instance of Separator and assigns the name to it. + + Item name. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets or sets separator padding. + + + + + Gets or sets the size of separator. Size specified is for separator in Vertical orientation. If orientation changes then the size will be internally switched to respect proper orientation. + + + + + Indicates splitter orientation. + + + + + Gets or sets the separator color. + + + + + Gets or sets the separator shade color. + + + + + Defines an item that allows the toolbar customization. + + + + + Creates new instance of CustomizeItem object. + + + + + Returns copy of CustomizeItem item + + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Occurs when tooltip is about to be shown or hidden. + + Specifies whether tooltip is shown or hidden. + + + + Loads the resources (text) used by this item. + + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Sets the custom system tooltip text for the item. + + Tooltip text. + + + + Overriden. Recalculates the size of the item. + + + + + Gets localized tooltip text for this instance of the item. + + Tooltip text. + + + + Called when mouse hovers over the customize item. + + + + + Forces the repaint the item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Gets whether the mouse is over the item. + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Gets or sets whether Customize menu item is visible. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Represents base class for the CalendarMonth and MultiMonthCalendar controls. This class is used internally by DotNetBar and is not intended for public use. + + + + + Initializes a new instance of the MultiMonthCalendar class. + + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Paints background of the item. + + Provides painting arguments + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Specifies the container background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Returns name of the item that can be used to identify item from the code. + + + + + Gets or sets the accessible role of the item. + + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Specifies the mouse cursor displayed when mouse is over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Gets or sets the text associated with this item. + + + + + Defines the visual marking applied to dates through month calendar control. + + + + + Initializes a new instance of the DateAppearanceDescription class. + + + + + Initializes a new instance of the DateAppearanceDescription class. + + + + + + Applies all settings from this object to specified object. + + Reference to object. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Gets or sets whether text is drawn using bold font. + + + + + Gets or sets the background color for the marked day. + + + + + Gets or sets the background target gradient color for the marked date. + + + + + Gets or sets the background gradient fill angle. Default value is 90. + + + + + Gets or sets the text color for the marked date. + + + + + Gets whether any of the appearance values have been changed. + + + + + Gets or sets the border color. + + + + + Gets or sets whether day marked is selectable by end user. Default value is true. + + + + + Reverts the input to the last stored value. + + + + + Called when input field is full, i.e. it has an complete entry. If auto-overwrite is enabled the continued typing after input is complete + will erase the existing entry and start new one. + + + + + Resets the input position so the new input overwrites current value. + + + + + Occurs when input on the control has changed. + + + + + Occurs when validation of the input is performed and it allows you to deny the input. + + + + + Occurs when IsEmpty property has changed. + + + + + Gets whether watermark will be drawn in current control state. + + + + + Gets or sets whether control is empty. + + + + + Gets or sets whether auto-overwrite functionality for input is enabled. When in auto-overwrite mode input field will erase existing entry + and start new one if typing is continued after InputComplete method is called. + + + + + Gets or sets the watermark text displayed on the input control when control is empty. + + + + + Gets or sets whether watermark text is displayed if set. Default value is true. + + + + + Gets or sets whether input item is read-only. + + + + + Gets or sets whether control allows empty input state i.e. does not have an text entered. Default value is true. + + + + + Raises SelectedIndexChanged event + + + + + Occurs when SelectedIndex property has changed. + + + + + Gets or sets the text that is selected by the control. + + + + + Gets or sets the currently selected index. -1 is returned if nothing is selected. + + + + + Gets or sets custom AM text used. + + + + + Gets or sets custom PM text used. + + + + + Represents a control that enables the user to select a date using a visual monthly calendar display. + + + + + Initializes a new instance of the MonthCalendarAdv class. + + + + + Returns the DayLabel at given client coordinates or null/nothing if there is no label at give location. + + X - position in client coordinates. + Y - position in client coordinates. + DayLabel at given coordinates or null/nothing. + + + + Returns the DayLabel that represents the date. + + Date to find label for. + DayLabel object or nothing if date cannot be founds. + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all monthly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all weekly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the day from the WeeklyMarkedDays. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all annually marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the AnnuallyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all marked dates set through MarkedDates property. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MarkedDates collection. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Repaints the marked dates to reflect the dates set in the lists of marked dates. + Use this method to reflect the changes made to the AnnuallyMarkedDates, MonthlyMarkedDates or MarkedDates properties as well + as change to the marked Colors properties. + + + + + Raises the DateChanged event. + + Provides event data. + + + + Raises the DateSelected event. + + Provides event data. + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the LabelMouseDown event. + + Provides event data. + + + + Raises the LabelMouseUp event. + + Provides event data. + + + + Raises the LabelMouseEnter event. + + Provides event data. + + + + Raises the LabelMouseLeave event. + + Provides event data. + + + + Raises the LabelMouseMove event. + + Provides event data. + + + + Raises the LabelMouseHover event. + + Provides event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Gets whether property should be serialized. Provided for design-time support. + + + + + Sets the number of columns and rows of months to display. + + The number of columns. + The number of rows. + ArgumentOutOfRangeException will be raised if any value is less than zero or one value is grater than zero and other is zero. + + + + Returns whether property should be serialized by Windows Forms designer. + + + + + Sets the selected dates in a month calendar control to the specified date range. + + The beginning date of the selection range. + The end date of the selection range. + startDate is less than the minimum date allowable for a month calendar control.
+ -or-
+ startDate is greater than the maximum allowable date for a month calendar control.
+ -or-
+ endDate is less than the minimum date allowable for a month calendar control.
+ -or- endDate is greater than the maximum allowable date for a month calendar control.
+
+ + If the startDate value is greater than endDate property value, the dates are swapped; the endDate value becomes the starting date, and startDate value becomes the end date. + +
+ + + Invalidates control auto-size and resizes the control if AutoSize is set to true. + + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Occurs when the user makes an explicit date selection using the mouse. + + + This event is similar to the DateChanged event, but it occurs at the end of a date selection made using the mouse. + The DateChanged event occurs during any date selection, whether by mouse, keyboard, or code. You should handle this event + when you enable multiple date selection through MultiSelect property and want to be notified after the date selection has been + made. DateChanged event would fire each time selection changes during the selection of multiple dates. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to mark using Colors.MonthlyMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the array of DayOfWeek members that determine which days of week to mark using Colors.WeeklyMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which annual days are marked using Colors.AnnualMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the array of DateTime objects that determines which non-recurring dates are marked using Colors.DayMarker settings. + Make sure to call UpdateMarkedDates() method to update calendar display with marked dates. + + + + + Gets or sets the first month displayed by the control. + + + + + Gets number of months displayed on the control. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Specifies the commands container background style. Commands container displays Today and Clear buttons if they are visible. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the number of columns and rows of months displayed on control. Default value is 0,0 which indicates that + calendar will display as many columns and rows as it is possible to fit into container space available. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the calendar selected date. Note that SelectedDate property should be used only when MultiSelect property is set to false. + When multiple dates can be selected use range selection properties: SelectionStart, SelectionEnd and SelectionRange. + + + + + Gets or sets whether selection of multiple dates up to the MaxSelectionCount is enabled. Default value is false which indicates that only + single day can be selected. + + + + + Gets the reference to the bottom container that parents the Today, and Clear system buttons. + + + + + Gets or sets whether Today button displayed at the bottom of the calendar is visible. Default value is false. + + + + + Gets or sets whether Clear button displayed at the bottom of the calendar is visible. Clear button clears the currently selected date. Default value is false. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + + + + + Gets or sets the start date of the selected range of dates. + + + + + Gets or sets the end date of the selected range of dates. + + + + + Gets or sets the selected range of dates for a month calendar control. + + Setting this property is functionally equivalent to using the SetSelectionRange method. You can set the start and end dates separately by setting either the SelectionStart or SelectionEnd properties. You cannot change the start and end dates by setting the SelectionRange.Start or SelectionRange.End property values of the SelectionRange property. You should use SelectionStart, SelectionEnd, or SetSelectionRange. + If the Start property value of the SelectionRange is greater than its End property value, the dates are swapped; the End property value becomes the starting date, and Start property value becomes the end date. + + + + + Gets or sets whether Year/Century selection is enabled when calendar is displaying single month. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control. + + + + + Represents the container that presents single calendar month. + + + + + Initializes a new instance of the CalendarMonth class. + + + + + Called when MonthSelectionMode property has changed. + + Old property value + New property value + + + + Must be overridden by class that is inheriting to provide the painting for the item. + + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the DateChanged event. + + Provides event data. + + + + Gets the DayLabel item assigned to the given date. Returns null if there is no label displayed for the date. + + Date to return label for. + DayLabel instance or null if date is not displayed on this calendar. + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Called when DayClickAutoClosePopup property has changed. + + Old property value + New property value + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets whether Year/Century selection is enabled. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets whether trailing days outside of the current displayed month are visible on calendar. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Returns the collection of sub items. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets whether multiple days can be selected by clicking each day. Default value is false. + + + + + Gets or sets whether selection of dates using mouse is enabled. Default value is true. + + + + + Gets or sets the calendar selected date. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets default text alignment for the DayLabel items representing calendar days. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets whether header navigation buttons for month and year are visible. Default value is true. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets whether clicking the day closes the parent popup if item is on popup. + + + + + Initializes a new instance of the YearSelectoControl class. + + + + + Initializes a new instance of the CenturySelectorControl class. + + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Initializes a new instance of the CenturySelectorControl class. + + + + + Initializes a new instance of the YearSelectorContainer class. + + + + + Raises SelectedYearChanged event. + + Provides event arguments. + + + + Defines the MonthCalendar and SingleMonthCalendar colors for customization. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Gets the appearance settings for the todays date. + + + + + Gets the appearance settings for selected days. + + + + + Gets the appearance settings for the trailing days on calendar. + + + + + Gets or sets the appearance settings for the labels that show week of year number. + + + + + Gets or sets the days divider line color. + + + + + Gets the appearance settings for the numeric day of month label. + + + + + Gets the appearance settings for the weekend days on calendar (Saturday and Sunday). + + + + + Gets the appearance settings for the trailing weekend days on calendar (Saturday and Sunday). + + + + + Gets the appearance settings for the labels that display day name in calendar header. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.MonthlyMarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.AnnuallyMarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.MarkedDates property. + + + + + Gets or sets the marker settings for days specified by MonthCalendarItem.WeeklyMarkedDays property. + + + + + Gets the minimum date value of the DateTimePicker control. + + + + + Specifies the maximum date value of the DateTimePicker control. This field is read-only. + + + + + Raises the ValueChanged event. + + + + + Occurs when Value or IsEmpty property has changed. + + + + + Gets or sets the date time. + + + + + Gets or sets the values of the nested DateTimeGroup items. + + + + + Gets or sets the minimum value represented by the group. + + + + + Gets or sets maximum value represented by the group. + + + + + Gets or sets whether input values are set to defaults while user is entering data. Default value is true. + + + + + Defines the date-time selector visibility for DateTimeInput control popup. + + + + + Depending on DateTimeInput.Format property setting either date or time selector is used. + + + + + Only date selector is visible. + + + + + Only time selector is visible on popup. + + + + + Both date and time selectors are visible. + + + + + Gets or sets the amount of padding added to text. + + + + + Gets or sets the text displayed by the label. + + + + + Defines an interface for the DateTime Part interaction. + + + + + Reverts to the last input value control held. + + + + + Gets or sets the date/time part value. + + + + + Gets or sets the minimum value for the date/time part entry. + + + + + Gets or sets the maximum value for the date/time part entry. + + + + + Gets the date time part control represents. + + + + + Gets or sets whether input part is empty. + + + + + Gets or sets the day in numeric format to display. Allowed values are from -1 to 6. -1 represents an empty state. + 0 represents Sunday and 6 Represents Saturday. + + + + + Gets or sets the array of custom names for days. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets whether abbreviated day names are used for display instead of full day names. Default value is false. + + + + + Represents a label for the NumericHourInput control that shows whether time is AM or PM. + + + + + Gets or sets custom AM text used. + + + + + Gets or sets custom PM text used. + + + + + Gets or sets whether abbreviated month names are used for display instead of full month names. Default value is false. + + + + + Occurs when Value property has changed. + + + + + Gets or sets whether mouse wheel increases or decreases the input value when used. + + + + + Gets or sets whether control allows empty input state i.e. does not have an number entered. Default value is true. When control is empty + IsEmpty property returns true and control does not display number. Set to false to always force control to have number displayed. + + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + + + Initializes a new instance of the NumericDayInput class. + + + + + Initializes a new instance of the NumericDayOfYearInput class. + + + + + Initializes a new instance of the NumericHourInput class. + + + + + Initializes a new instance of the NumericMinuteInput class. + + + + + Initializes a new instance of the NumericMonthInput class. + + + + + Initializes a new instance of the NumericSecondInput class. + + + + + Initializes a new instance of the NumericYearInput class. + + + + + Gets or sets the year display format. Default value is four digit format. + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseDateTimeValue event. + + + + + + + Initializes a new instance of the DayLabel class. + + + + + Raises the PaintLabel event. + + Provides event data. + + + + Returns copy of the item. + + + + + Copies the DayLabel specific properties to new instance of the item. + + New ButtonItem instance. + + + + Occurs when the mouse pointer enters the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer leaves the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + Gets whether property should be serialized. Provided for WinForms designer support. + + + Resets property to its default value. Provided for WinForms designer support. + + + + Occurs when label is rendered and it allows you to override default rendering. + + + + + Gets or sets the date represented by this label. DateTime.MinValue indicates that label is either used as textual day representation + or the week number as specified by the IsWeekOfYear property. + + + + + Gets or sets whether this label is used as the label that displays the day name. + + + + + Gets or sets whether this label is used as the week of year label. + + + + + Gets whether the label for date represents the trailing date, i.e. date that is from next or previous month for the month displayed. + + + + + Gets or sets whether mouse is over the item. + + + + + Gets or sets whether left-mouse button is pressed over the item. + + + + + Specifies the item background style. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets whether label appears as selected. + + + + + Gets or sets whether label provides visual indicator when mouse is over the label or pressed while over the label. Default value is true. + + + + + Gets or sets whether label is selectable. IsSelected property returns whether label is selected. Default value is true. + + + + + Gets or sets the label text color. Default value is an empty color. + + + + + Gets or sets whether text is drawn using Bold font. Default value is false. + + + + + Gets or sets the text alignment. + + + + + Gets or sets the image alignment. + + + + + Gets or sets the image displayed on the label. + + + + + Gets or sets whether flat Office 2007 style is used to render the item. Default value is false. + + + + + Gets or sets whether date represented by label is marked as todays date. + + + + + Gets or sets whether popup is displayed when mouse is pressed anywhere over the item. Default value is false which indicates + that popup is displayed only if image assigned to the item and mouse is pressed over image. + + + + + Indicates the alignment of the DayLabel part like text or image. + + + + + Provides data for DayLabel painting events. + + + + + Gets the graphics canvas for rendering. + + + + + Gets or sets which parts of the item will be drawn by the system. You can set this to None to completely disable system rendering. + + + + + Initializes a new instance of the DayPaintEventArgs class. + + Reference to Graphics canvas. + Reference to item being rendered. + + + + Renders the background of the item. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders the item text. + + + + + Renders items image. + + + + + Renders items image. + + + + + Defines delegate for DayLabel painting events. + + Source of the event. + Provides event data. + + + + Specifies the parts of DayLabel control. Members of this enum are intended to be used as flags (combined). + + + + + Specifies no part. + + + + + Specifies the label background. + + + + + Specifies the label text. + + + + + Specifies the label image. + + + + + Specifies all parts. + + + + + Indicates the hour format. + + + + + Indicates Ante Meridiem period, before the middle day. + + + + + Indicates Post Meridiem after the middle day". + + + + + Identifies the date time part. + + + + + Specifies the input fields alignment inside of the control. + + + + + Specifies the text alignment. + + + + + Specifies the format of the date time picker. + + + + + Indicates that custom format specified by CustomFormat property is used. + + + + + The DateTimePicker control displays the date/time value in the long date format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the short date format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the time format set by the user's operating system. + + + + + The DateTimePicker control displays the date/time value in the short time format set by the user's operating system. + + + + + Specifies the display format of the year in input control. + + + + + Specifies the visual item alignment inside the parent group. + + + + + Specifies the vertical alignment. + + + + + Describes the system button item type. System buttons are buttons created internally by controls. + + + + + Specifies the auto-change item when VisualUpDownButton control is clicked. + + + + + No item is automatically changed. + + + + + Auto-change focused item in parent group + + + + + Auto change first input item before the Up/Down button in parent group. + + + + + Specifies the keys used for navigation between input fields. + + + + + No key is used for the navigation. + + + + + Tab key is used to advance to the next input field. + + + + + Arrow keys are used to advance to the next input field. + + + + + Enter key is used to advance to the next input field. + + + + + Tab, Arrows and Enter keys are used to advance to the next input field. + + + + + Describes input button settings. + + + + + Initializes a new instance of the InputButtonSettings class. + + + + + Initializes a new instance of the InputButtonSettings class. + + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Copies properties to new instance of the item. + + New InputButtonSettings instance + + + + Gets or sets whether button is visible. + + + + + Gets or sets whether button is enabled. + + + + + Gets or sets the display position index of the button. Buttons are ordered from left to right with button with lowest index appearing as left-most button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the text displayed on the input button face. + + + + + Gets or sets the visual item button references for its action. + + + + + Gets or sets the shortcut key which when pressed triggers button click event or its default function. + + + + + Gets or sets tooltip displayed for the button when mouse hovers over it. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Defines the system colors used by the input controls. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Returns whether property should be serialized. Provided for design-time support. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Returns whether property should be serialized. Provided for design-time support. + + + + + Occurs when color has changed. + + + + + Gets or sets the background color of input item part when part has input focus. Default value is Color.Empty which indicates that system Highlight color is used. + + + + + Gets or sets the text color of input item part when part has input focus. Default value is Color.Empty which indicates that system HighlightText color is used. + + + + + Initializes a new instance of the InputValidationEventArgs class. + + Indicates current input. + + + + Defines delegate for input validation event. + + + + + + + Initializes a new instance of the VisualToggleButton class. + + + + + Raises the CheckedChanged event. + + + + + Occurs when Checked property has changed. + + + + + Gets or sets whether item is checked. + + + + + Gets whether left mouse button is pressed over the item. + + + + + Gets whether mouse is over the item. + + + + + Initializes a new instance of the LockUpdateCheckBox class. + + + + + Initializes a new instance of the MonthCalendarItem class. + + + + + Returns copy of the item. + + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Copies the CalendarMonth specific properties to new instance of the item. + + New ButtonItem instance. + + + + Returns whether property should be serialized by Windows Forms desginer. + + + + + Sets the selected dates in a month calendar control to the specified date range. + + The beginning date of the selection range. + The end date of the selection range. + startDate is less than the minimum date allowable for a month calendar control.
+ -or-
+ startDate is greater than the maximum allowable date for a month calendar control.
+ -or-
+ endDate is less than the minimum date allowable for a month calendar control.
+ -or- endDate is greater than the maximum allowable date for a month calendar control.
+
+ + If the startDate value is greater than endDate property value, the dates are swapped; the endDate value becomes the starting date, and startDate value becomes the end date. + +
+ + + Applies current date selection to the control. You are usually not required to make calls to this method directly since it is automatically + done by the control when selection changes. This method returns immediately if MultiSelect + property is set to false or SelectionStart or SelectionEnd properties have DateTime.MinValue. + + + + + Returns the DayLabel at given client coordinates or null/nothing if there is no label at give location. + + X - position in client coordinates. + Y - position in client coordinates. + DayLabel at given coordinates or null/nothing. + + + + Returns the DayLabel that represents the date. + + Date to find label for. + DayLabel object or nothing if date cannot be founds. + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all monthly marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all weekly marked days. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MonthlyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all annually marked dates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the AnnuallyMarkedDates. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Returns whether property should be serialized. Provided for Windows Forms designer support. + + + + + Resets property to its default value. Provided for Windows Forms designer support. + + + + + Removes all marked dates set through MarkedDates property. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + Removes the date from the MarkedDates collection. Note that you must call UpdateMarkedDates method to reflect these changes on calendar. + + + + + + Repaints the marked dates to reflect the dates set in the lists of marked dates. + Use this method to reflect the changes made to the AnnuallyMarkedDates, MonthlyMarkedDates or MarkedDates properties as well + as change to the marked Colors properties. + + + + + Raises the MonthChanged event. + + Provides additional event data. + + + + Raises the MonthChanging event. + + Provides additional event data. + + + + Raises the PaintLabel event. + + Provides event data. + + + + Raises the LabelMouseDown event. + + Provides event data. + + + + Raises the LabelMouseUp event. + + Provides event data. + + + + Raises the LabelMouseEnter event. + + Provides event data. + + + + Raises the LabelMouseLeave event. + + Provides event data. + + + + Raises the LabelMouseMove event. + + Provides event data. + + + + Raises the LabelMouseHover event. + + Provides event data. + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether property should be serialized. Provided for designer support. + + + + + + Reset property to default value. Provided for designer support. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MinDate property to its default value. + + + + + Gets whether Value property should be serialized by Windows Forms designer. + + true if value serialized otherwise false. + + + + Reset the MaxDate property to its default value. + + + + + Resets property to its default value. Provided for design-time support. + + + + + Gets whether property should be serialized. Provided for design-time support. + + + + + Sets the number of columns and rows of months to display. + + The number of columns. + The number of rows. + ArgumentOutOfRangeException will be raised if any value is less than zero or one value is grater than zero and other is zero. + + + + Raises the DateChanged event. + + Provides event data. + + + + Raises the DateSelected event. + + Provides event data. + + + + Reloads the localized strings for Today and Clear buttons. + + + + + Called when DayClickAutoClosePopup property has changed. + + Old property value + New property value + + + + Occurs when month displayed by the item has changed. + + + + + Occurs before the month that is displayed is changed. + + + + + Occurs when child label representing days is rendered and it allows you to override default rendering. + + + + + Occurs when mouse button is pressed over the day/week label inside of the calendar. + + + + + Occurs when mouse button is released over day/week label inside of the calendar. + + + + + Occurs when mouse enters the day/week label inside of the calendar. + + + + + Occurs when mouse leaves the day/week label inside of the calendar. + + + + + Occurs when mouse moves over the day/week label inside of the calendar. + + + + + Occurs when mouse remains still inside an day/week label of the calendar for an amount of time. + + + + + Occurs when SelectedDate property has changed. + + + + + Occurs when the user makes an explicit date selection using the mouse. + + + This event is similar to the DateChanged event, but it occurs at the end of a date selection made using the mouse. + The DateChanged event occurs during any date selection, whether by mouse, keyboard, or code. You should handle this event + when you enable multiple date selection through MultiSelect property and want to be notified after the date selection has been + made. DateChanged event would fire each time selection changes during the selection of multiple dates. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + + + + + Gets or sets the start date of the selected range of dates. + + + + + Gets or sets the end date of the selected range of dates. + + + + + Gets or sets the selected range of dates for a month calendar control. + + Setting this property is functionally equivalent to using the SetSelectionRange method. You can set the start and end dates separately by setting either the SelectionStart or SelectionEnd properties. You cannot change the start and end dates by setting the SelectionRange.Start or SelectionRange.End property values of the SelectionRange property. You should use SelectionStart, SelectionEnd, or SetSelectionRange. + If the Start property value of the SelectionRange is greater than its End property value, the dates are swapped; the End property value becomes the starting date, and Start property value becomes the end date. + + + + + Gets or sets whether selection of multiple dates up to the MaxSelectionCount is enabled. Default value is false which indicates that only + single day can be selected. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to mark using Colors.MonthlyMarker settings. + + + + + Gets or sets the array of DayOfWeek members that determine which days of week to mark using Colors.WeeklyMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which annual days are marked using Colors.AnnualMarker settings. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are marked using Colors.DayMarker settings. + + + + + Gets or sets the first month displayed by the control. + + + + + Gets number of months displayed on the control. + + + + + Gets the calendar colors used by the control. + + + + + Gets or sets the size of each day item on the calendar. Default value is 24, 15. + + + + + Gets or sets the size of date navigation buttons on the calendar. Default value is 13, 18. If you increase size of the navigation + buttons change DaySize as well so everything fits. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Specifies the commands container background style. Commands container displays Today and Clear buttons if they are visible. + + + + + Specifies the navigation container background style. Navigation container displays month, year and optional buttons. Default value is an empty style which means that container does not display any background. + BeginGroup property set to true will override this style on some styles. + + + + + Gets or sets the number of columns and rows of months displayed on control. Default value is 0,0 which indicates that + calendar will display as many columns and rows as it is possible to fit into container space available. + + + + + Gets or sets whether weekend days can be selected. Default value is true. + + + + + Gets or sets the rule used to determine first week of the year for week of year display on calendar. Default value is first-day. + + + + + Gets or sets the value that is used by calendar as today's date. + + + + + Gets a value indicating whether the TodayDate property has been explicitly set. + + + + + Gets or sets whether today marker that indicates TodayDate is visible on the calendar. Default value is true. + + + + + Gets or sets whether week of year is visible. Default value is false. + + + + + Gets or sets whether control uses the two letter day names. Default value is true. + + + + + Gets or sets the array of custom names for days displayed on calendar header. The array must have exactly 7 elements representing day names from 0 to 6. + + + + + Gets or sets the first day of week displayed on the calendar. Default value is Sunday. + + + + + Gets or sets the calendar selected date. Note that SelectedDate property should be used only when MultiSelect property is set to false. + When multiple dates can be selected use range selection properties: SelectionStart, SelectionEnd and SelectionRange. + + + + + Gets the reference to the bottom container that parents the Today, and Clear system buttons. + + + + + Gets reference to internal Today button on calendar. + + + + + Gets or sets whether Today button displayed at the bottom of the calendar is visible. Default value is false. + + + + + Gets or sets whether Clear button displayed at the bottom of the calendar is visible. Clear button clears the currently selected date. Default value is false. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether clicking the day closes the parent popup if item is on popup. + + + + + Gets or sets whether Year/Century selection is enabled when calendar is displaying single month. + + + + + Indicates whether month selector which is displayed when month label is clicked is using abbreviated month names instead of month number. + + + + + Indicates whether calendar is used in month selection mode which shows only month and year. + + + + + Gets or sets the size available for the item currently being arranged. + + + + + Gets or sets whether mouse is over the host control. + + + + + Gets or sets system colors used by the control. + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseValue event. + + + + + + + Defines data for the ParseValue event that allows you to provide custom parsing for values set to ValueObject property. + + + + + Get the value that was set to the ValueObject property and which should be converted to ParsedValue DateTime. + + + + + Gets or sets whether you have provided ParsedValue. + + + + + Initializes a new instance of the ParseDateTimeValueEventArgs class. + + Indicates the value object. + + + + /// + Gets or sets the parsed value from ValueObject property. + + + + + + Defines delegate for ParseValue event. + + + + + + + Gets or sets whether button automatically gets Click events repeated when mouse is kept pressed on the button. Default value is false. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets whether default button background is rendered when mouse is not over the host control. Default value is true. + + + + + Gets or sets the shortcut key which when pressed triggers button click event or its default function. + + + + + Gets or sets the button tooltip. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets or sets the fixed button height. + + + + + Gets whether mouse is over the control. + + + + + Gets whether mouse is pressed on the control. + + + + + Gets or sets the text displayed on the face of the button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Raises DecreaseValue event. + + Provides event arguments. + + + + Raises IncreaseValue event. + + Provides event arguments. + + + + Defines data for ConvertFreeTextEntry event. + + + + + Gets the string value that was entered by the user. + + + + + Gets or sets the converted ValueEntered into the control's value type. For example for IpAddressInput the value set here + must be of string type and in IP address format. For IntegerInput control the value set here must be an int type. For DateTimeInput + control value set here must be DateTime type. + If you provide ControlValue set ValueConverted=true to indicate so. + + + + + Gets or sets whether ValueEntered has been converted to ControlValue. Set to true to indicate that you have performed conversion. + + + + + Defines delegate for ConvertFreeTextEntry event. + + Source of event. + Provides event data. + + + + Gets or sets the value to increment or decrement the value of the control when the up or down buttons are clicked. + + + + + Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + + + Specifies trigger types for the value changed events on editor controls. + + + + + ValueChanged event is fired as soon as user types in the value. + + + + + ValueChanged event is fired after control loses input focus. + + + + + ValueChanged event is fired after control loses input focus or user presses the Enter key. + + + + Creates new instance of the class. + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the VisualItem array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents the up down button which allows change of the value in currently focused input control. + + + + + Initializes a new instance of the VisualUpDownButton class. + + + + + Raises the UpClick event. + + Provides event data. + + + + Raises the DownClick event. + + Provides event data. + + + + Occurs when Up part of the button has been clicked. + + + + + Occurs when Down part of the button has been clicked. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the image displayed on the face of the button. + + + + + Gets or sets the default width of the buttons. + + + + + Gets or sets whether control automatically tries to increase/decrease the value of the item that has input focus in the same + parent group as the button. Default value is false. + + + + + Gets or sets the item that is automatically changed when buttons are pressed. + + + + + Statis functions for design-time support. + + + + + Summary description for DesignTimeDte. + + + + + Summary description for Display. + + + + + System item that displays the items that could not fit inside the container on popup menu or toolbar. + + + + + Create new instance of DisplayMoreItem object. + + + + + Returns copy of DisplayMoreItem item + + + + + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. + + Previous container of the item. + + + + Overridden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Overridden. Displays the sub-items on popup. + + Popup location. + + + + Overridden. Displays the sub-items on popup. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Displays the sub-items on popup toolbar. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Displays the sub-items on popup menu. + + Horizontal coordinate in pixels of the upper left corner of a popup. + Vertical coordinate in pixels of the upper left corner of a popup. + + + + Overridden. Close the popup window if open. + + + + + Adds the items that are not visible to the overflow popup. + + + + + Returns the insertion index for the items removed from overflow popup. Assumes that right-most items are removed first by the layout manager. + + + + + + Removes the items from the overflow and adds them back to the parent item. + + + + + Forces the repaint the item. + + + + + Returns the fixed size of the item. + + + + + Get or sets whether item has been changed in a way that it needs its size recalculated. This is internal + property and it should not be used by your code. + + + + + Gets whether the mouse is over the item. + + + + + Represents panel that is hosted by DockContainerItem as docked control. + + + + + Represents graphical panel control with support for different visual styles and gradients. + + + + + Default constructor. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies color scheme colors to the style objects. + + + + + Sets the internal mouse down flag which controls appearance of the control. You can use this method to simulate the pressed state for the panel with appropriate StyleMouseDown assigned. + + New value for the mouse down flag. + + + + Sets the mouse over internal flag that tracks whether the mouse is over the control. You can use this method to simulate the mouse over appearance when appropriate StyleMouseOver style is set. + + New value for the mouse over flag. + + + + Indicates whether CanvasColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets CanvasColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets the style to it's default value. + + + + + Resets the internal mouse tracking properties that track whether mouse is over the panel and whether is mouse pressed while over the panel. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called when AntiAlias property has changed. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Returns the size of the panel calculated based on the text assigned. + + Calculated size of the panel or Size.Empty if panel size cannot be calculated. + + + + Updates the markup size to reflect current position of the scrollbars. You must call this method if you are scrolling control with markup using the AutoScrollPosition property. + + + + + Applies predefined Panel color scheme to the control. + + + + + Applies predefined Button color scheme to the control. + + + + + Applies predefined Label color scheme to the control. + + + + + Notifies a control that it is the default button so that its appearance and behavior is adjusted accordingly. + + true if the control should behave as a default button; otherwise false. + + + + Generates a Click event for the control. + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Raises ScrollBarValueChanged event. + + Provides event arguments. + + + + Raises NonClientSizeChanged event. + + Provides event arguments. + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets a value indicating whether right-to-left mirror placement is turned on. Default value is false. + + + + + Gets or sets Bar Color Scheme. Note that when ColorSchemeStyle property is set to Office 2007 style the color scheme is always retrived from the GlobalManager.Renderer and any\ + changes made on this property will not have any effect. + + + + + Gets or sets whether paint operations for the control are suspended. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets the text displayed on panel. + + + + + Gets or sets whether focus rectangle is displayed when control has focus. + + + + + Gets or sets the canvas color for the panel. Canvas color will be visible on areas of the control that do not get covered + by the style and it will also be used as a base color for style to be painted on. + + + + + Gets or sets the panel style. + + + + + Gets or sets the panel style when mouse hovers over the panel. + + + + + Gets or sets the panel style when mouse button is pressed on the panel. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Gets or sets color scheme style. + + + + + Gets or sets a value indicating whether the container will allow the user to scroll to any controls placed outside of its visible boundaries. + + + + + Gets or sets whether text rectangle painted on panel is considering docked controls inside the panel. + + + + + Gets or sets the text rectangle. This property is set by internal implementation and it should not be set by outside code. + + + + + Gets or sets whether text markup if it occupies less space than control provides uses the Style Alignment and LineAlignment properties to align the markup inside of the control. Default value is false. + + + + + Returns reference to internal vertical scroll-bar control. + + + + + Returns reference to internal horizontal scroll-bar control. + + + + + Indicates whether panel uses themed DotNetBar scrollbars. Default value is true. + + + + + Gets or sets the scroll-bar visual style. + + + + + Gets or sets the value returned to the parent form when the button is clicked. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Specifies back color when Enabled=false + + + + + Creates new instance of the panel. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Defines single color blend point for the multicolor gradient fills. + + + + + Creates new instance of the class. When defining multicolor gradinet blends and using the percentage positions the positions created + must start with 0f and end with 1f. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Creates new instance of the class and initialize it with default values. + + + + + Gets or sets Color to use in multicolor gradient blend at specified position. + + + + + Gets or sets the color position in multicolor gradient blend. Values less or equal to 1 are used as percentage specifing percentages of distance along the gradient line. + Values greater than 1 are used as absolute pixel values of distance along the gradient line. + + + + + Represents Collection for the BackgroundColorBlend objects. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds array of new objects to the collection. + + Array of object to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the BackgroundColorBlend array. + + Array to copy to. + + + + Creates ColorBlend object based on the members of the collection. ColorBlend object will be valid only if all members of the collection + represents relative/percentage based color blends. + + + + + + Adds the BackgroundColorBlend objects from the collection. + + Collection to copy objects from + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Start color. + End color. + + + + Initializes the collection with the two color blend. + + Collection to initialize. + Solid Color + + + + Returns reference to the object in collection based on it's index. + + + + + Represents BackgroundColorBlend object converter. + + + + + Represents the cancelable event arguments with integer value. + + + + + Gets or sets the new value that will be used if event is not canceled. + + + + + Indicates the source of the event. + + + + + Defines delegate for cancelable events. + + + + + Represents the cancelable event arguments with object value. + + + + + Initializes a new instance of the CancelObjectValueEventArgs class. + + + + + + Gets or sets the data connected to this event. + + + + + Defines delegate for cancelable events. + + + + + Provides data for CheckBoxItem rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to CheckBoxItem being rendered. + + + + + ColorScheme object that is used to provide colors for rendering check box item in legacy styles like Office 2003. Office 2007 style + uses color tables provided by renderers. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Gets or sets the ItemPaintArgs reference. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to CheckBoxItem + Reference to legacy ColorScheme + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Defines the event arguments class for ColorPickerDropDown ColorPreview event. + + + + + Gets the color that is being previewed. + + + + + Gets the ColorItem if available for the color being previewed. This property can be null if there is no ColorItem connected with the color. + + + + + Creates new instance of the object. + + Color being previewed. + ColorItem connected with the color. + + + + Defines delegate for ColorPreview event. + + + + + Delegate for the CancelableEventSource event. + + + + + Represents event arguments that provide information on source of action and allow canceling of action. + + + + + Gets or sets whether event action will be canceled. + + + + + Initializes a new instance of the EventSourceArgs class. + + + + + + Initializes a new instance of the CancelableEventSourceArgs class. + + + + + + Provides data for the Navigation Pane rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the rendering bounds. + + + + + Creates new instance of the objects and initializes it with default values. + + + + + Provides data for the ProgressBarItem rendering events. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to ProgressBarItem being rendered. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to ProgressBarItem + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Provides data for the Quick Access Toolbar Customize dialog events. + + + + + Gets or sets whether to cancel the current operation. When showing the dialog this allows to cancel the showing. When dialog is closed + it allows to cancel the changes made on customize dialog. + + + + + Gets or sets the reference to the form that is acting as dialog. You can set this value to your custom form to display it instead of + built-in dialog. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the dialog being used for customization. + + + + Provides data for the Quick Access Toolbar Customize Item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the customize item being rendered. + Reference to the graphics object. + + + + Provides data for the Quick Access Toolbar Overflow item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the overflow item being rendered. + Reference to the graphics object. + + + + Provides information for ribbon customization events. + + + + + Gets or sets whether the menu popup will be cancelled. Default value is false. + + + + + Gets or sets the reference to the object customize menu will be acting on. This could be an ButtonItem or any + BaseItem derived class as well as RibbonBar object. + + + + + Gets or sets the reference to the popup menu that will be displayed. You can change the members of SubItems collection to add/remove/change + the context menu items that will be displayed. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to context object. + Reference to popup menu item if any. + + + + Provides data for the RenderMdiSystemitem event. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to MdiSystemItem being rendered. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to graphics object. + Reference to MdiSystemItem being rendered. + + + + Represents events arguments for the Ribbon Control rendering events. + + + + + Gets or sets Graphics control is rendered on. + + + + + Gets the reference to RibbonControl instance being rendered. + + + + + Gets whether Windows Vista Glass is enabled. + + + + + Creates new instance and initializes it with the default values. + + Reference to Graphics object + Reference to RibbonControl + + + + Gets or sets whether the closing of the ribbon menu is canceled. + + + + + Gets or sets the source object that was cause of the menu closing. For example this could be reference to an item that was clicked. + Default value is null which indicates that there is no information about the object that caused closing available. + + + Following is the possible list of types that this property could be set to + and causes for closing: + + BaseItem - when an item is clicked the Source will be set to the instance + of the item that was clicked. + RibbonControl - when parent form RibbonControl is on loses the input + focus the Source will be set to the RibbonControl + RibbonTabItem - when tab menu is displayed and user clicks the same tab + to close the menu. The RibbonTabItem with EventSource=Code will be also set as + source when user double-clicks the tab to maximize the ribbon. + Any other type if RibbonControl.PopupRibbon method is called by your + code. + + + + + + Gets or sets the source of the event. + + + + + Creates new instance of the object. + + + + + Gets or sets the reference to graphics object. + + + + + Initializes a new instance of the SideBarPanelItemRendererEventArgs class. + + + + + + + Gets or sets the reference to graphics object. + + + + + Initializes a new instance of the SideBarRendererEventArgs class. + + + + + + + Provides data for the Slider item rendering events. + + + + + Gets or sets the reference to the item being rendered. + + + + + Gets or sets the reference to graphics object. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to the Slider item being rendered. + Reference to the graphics object. + + + + Defines the abstract class for form caption painter. + + + + + Provides data for form caption rendering events. + + + + + Gets or sets the reference to graphics object. + + + + + Gets or sets the caption bounds. + + + + + Gets or sets the form caption is rendered for. + + + + + Creates new instance of the class. + + + + + Defines the Office 2007 style form caption painter. + + + + + Gets or sets color table used by renderer. + + + + + Represents an item that provides system buttons displayed on form caption. + + + + + Summary description for MDISystemItem. + + + + + Returns copy of CustomizeItem item + + + + + Returns the single button size. + + Size of the button. + + + + MDI System Item can render itself as either Simple icon with system drop down menu or set of + system buttons Minimize, Restore and Close. This item is rendered on the Bar that is designated as + Menu bar and when bar is used on MDI form and MDI Child form is maximized. + + + + + Gets the default size of the system buttons. + + + + + + Gets or sets the custom button size to use instead of system determined size. + + + + + Gets or sets whether Minimize button is visible. + + + + + Gets or sets whether Restore/Maximize button is visible. + + + + + Gets or sets whether Close button is visible. + + + + + Gets or sets whether help button is visible. + + + + + Gets or sets whether Icon is queried when item is painted. Default value is false. + + + + + Provides data for the RenderSystemCaptionItem event. + + + + + Gets or sets Graphics control is rendered on. + + + + + Gets reference to SystemCaptionItem being rendered. + + + + + Gets whether Windows Vista Glass is enabled. + + + + + Creates new instance of the class and initializes it with default values. + + Reference to Graphics object. + Reference to item being rendered. + Indicates whether Vista Glass effect is enabled. + + + + Represents the line drawn between start and end point. + + + + + Paints the shape on canvas. If overriden base implementation must be called to paint any child shapes. + + Shape paint information. + + + + Returns absolute location of the shape based on parent bounds. + + Parent absolute bounds. + Absolute location of the shape + + + + Returns absolute size of the shape based on the parent bounds. + + Absolute parent bounds. + Absolute size of the shape. + + + + Gets the absolute bounds of the shape. + + Parent bounds. + Absolute bounds of the shape. + + + + Gets the location of the shape. + + + + + Gets the size of the shape. + + + + + Gets the shape padding. Padding is the inside spacing between shape and it's child shapes. + + + + + Gets the collection of child shapes. + + + + + Gets or sets whether this shape will set the ShapePaintInfo.ChildContentClip property to the region that represents the inside content of the shape. + This is used when there is inside content of the shape which is not part of the shape itself and calling routine needs + access to the region that defines the shape inside bounds. + + + + + Gets the start point of the line. + + + + + Gets the end point of the line. + + + + + Gets the line border. + + + + + Describes the shape location. + + + + + Gets or sets the X location of the shape relative to it's parent. + + + + + Gets or sets the Y location of the shape relative to it's parent. + + + + + Gets or sets the relative X position. + + + + + Gets or sets the relative Y position. + + + + + Describes the relative location. + + + + + Describes the padding for the shape. Padding is the space inside the shape and between it's child shapes. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets the total horizontal padding. + + + + + Gets the total vertical padding. + + + + + Paints the border. + + + + + Paints the border. + + + + + Gets or sets the rounded corner size. + + + + + Gets the shape border. + + + + + Gets the shape fill. + + + + + Defines the shape border. + + + + + Gets or sets the border width in pixels. + + + + + Gets or sets the border color. + + + + + Gets or sets the ending gradient border color. + + + + + Gets or sets the gradient angle. Default value is 90. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Shape array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Gets or sets the starting fill color. + + + + + Gets or sets the end fill color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the background color collection blend. + + + + + Gets or sets the fill gradient type. + + + + + Paints the border. + + + + + Paints the border. + + + + + Gets the shape border. + + + + + Gets the shape fill. + + + + + Describes shape size. + + + + + Gets or sets the width of the shape. When RelativeWidth is specified then number specifed here is added to the actual shape width. + + + + + Gets or sets the height of the shape. When RelativeHeight is specified the number specified here is added to the actual shape height. + + + + + Gets or sets the relative shape width. + + + + + Gets or sets the relative shape height. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Represents the class used to create Color objects. + + + + + Creates new instance of the object. + + + + + Represents the class used to create Color objects blended based on base color. + + + + + Creates new instance of the object. + + + + + Converts integer color representation to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color representation as 32-bit RGB value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color value. + Reference to Color object. + + + + Converts color representation to alpha Color type. + + Color value. + Reference to Color object. + + + + Converts integer color representation to Color type. + + Color value. + Reference to Color object. + + + + Defines the names for the ElementStyle.Class style classes. + + + + + Gets the key for the GalleryContainer background style class. + + + + + Gets the key for the Ribbon File menu outer container background style class. + + + + + Gets the key for the Ribbon File menu two column container background style class. + + + + + Gets the key for the Ribbon File menu first column container background style class. + + + + + Gets the key for the Ribbon File menu second column container background style class. + + + + + Gets the key for the Ribbon File menu bottom container background style class. + + + + + Gets the key for the text box border style class. + + + + + Gets the key for the RichTextBox control border style class. + + + + + Gets the key for the ItemPanel style class. + + + + + Gets the key for the ListBoxAdv style class. + + + + + Gets the key for the date time input background style class. + + + + + Gets the style key for the Ribbon client panel. + + + + + Gets the style key for the ListView control border style. + + + + + Gets the style key for the Office2007 Status Bar alternative background. + + + + + Gets the style key for the AdvTree control border and background. + + + + + Gets the style key for the AdvTree control columns header. + + + + + Gets the style key for the AdvTree control columns header for the child nodes. + + + + + Gets the style key for the AdvTree control column. + + + + + Gets the style key for the CrumbBar background style. + + + + + Gets the key for the DataGridView border style class. + + + + + Gets the key for the DataGridViewNumeric border style class. + + + + + Gets the key for the DataGridViewDateTime border style class. + + + + + Gets the key for the DataGridViewIpAddress border style class. + + + + + Gets the key for SlidePanel slide-out button style. + + + + + Gets the key for the MetroTilePanel style class. + + + + + Gets the key for Metro tile group container title class. + + + + + Gets the style key for the MonthCalendarAdv control. + + + + + Gets the style key for the ProgressSteps control. + + + + + Gets the style key for the SideNavStrip control. + + + + + Represents a static class that maintains the global rendering properties for all controls when eRenderMode is set to global. + + + + + Gets or sets the global renderer used by all controls that have RenderMode set to eRenderMode.Global. + + + + + Represents complex gradient color table. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + Linear gradient angle + + + + Creates new instance of the object and initializes it with default values. + + Start color + End color + Linear gradient angle + + + + Gets or sets the color collection blend that describes the gradient. + + + + + Gets or sets the gradient type. + + + + + Gets or sets the linear gradient angle. + + + + + Creates a copy of table. + + A copy. + + + + Represents the color table of linear gradient. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object. + + Start color. + + + + Creates new instance of the object. + + Start color. + End color. + + + + Creates new instance of the object. + + Start color in hexadecimal representation like FFFFFF. + End color in hexadecimal representation like FFFFFF. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + End color in 32-bit RGB representation. + + + + Creates new instance of the object. + + Start color in 32-bit RGB representation. + End color in 32-bit RGB representation. + Gradient angle. + + + + Creates new instance of the object. + + Start color. + End color. + Gradient angle. + + + + Gets or sets the start color. + + + + + Gets or sets the end color. + + + + + Gets or sets the gradient angle. Default value is 90. + + + + + Gets whether both colors assigned are empty. + + + + + Item container for dockable windows. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + + + + Creates new instance of ControlContainerItem and assigns item name. + + Item name. + + + + Creates new instance of ControlContainerItem and assigns item name and item text. + + Item name. + Item text. + + + + Overriden. Returns the copy of the ControlContainerItem. + + Copy of the ControlContainerItem. + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs after an item has been removed. + + Item being removed. + + + + Occurs after text has changed. + + + + + Occurs after item visual style has changed. + + + + + Occurs when container control needs to be assigned to the item. + + + + + Gets or sets the reference to the contained control. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets item description. This description is displayed in + Customize dialog to describe the item function in an application. + + + + + Gets or sets item alignment inside the container. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets a value indicating whether the item is visible. + + + + + Specifies the Tab image. Image specified here is used only on Tab when there are multiple dock containers on Bar. + + + + + Specifies the index of the Tab image if ImageList is used. Image specified here is used only on Tab when there are multiple dock containers on Bar. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Gets or sets the predefined tab color. Default value is eTabItemColor.Default which means that default color is used. + + + + + Gets or sets whether tab that dock container item is on is selected. + + + + + Gets or sets the width of the item in pixels. + + + + + Gets or sets the height of the item in pixels. + + + + + Gets or sets the minimum size of the item. When used please note that layout logic for dockable windows expects that + all DockContainerItems that are in particular docking side have exact same minimum size. When setting this property it is + best to set the same value for all DockContainerItem instances you create. + + + + + Gets or sets the default floating size of the Bar that is containing this item. + + + + + Gets or sets the minimum size of the form client area that is tried to maintain when dockable window is resized. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets whether item can be customized by end user. + + + + + Returns whether item is in design mode or not. + + + + + Gets or sets whether item is global or not. + This flag is used to propagate property changes to all items with the same name. + Setting for example Visible property on the item that has GlobalItem set to true will + set visible property to the same value on all items with the same name. + + + + + Gets or sets the close button behavior on the host Bar. Default value is eDockContainerClose.Inherit which means that Bar.CanHide will control whether DockContainerItem can be closed. + + + + + Specifies the behavior of the close button on host bar for the DockContainerItem. + + + + + Closing of the bar is inherited from the host bar. Bar.CanHide property will control close button visibility. + + + + + Closing of the DockContainerItem is allowed. + + + + + Closing of DockContainerItem is not allowed. + + + + + Summary description for DockingHint. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Update control region based on hint side + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represent the docking information for an control. + + + + + Control dock side. + + + + + Control dock site. + + + + + Docking offset. + + + + + Docking line. + + + + + Docked control width. + + + + + Docked control height. + + + + + Control position. + + + + + Indicates whether to use outline or not + + + + + Indicates that dock site should change it's Z-Order so it maximizes the space it consumes as related to other dock sites. + + + + + Indicates that dock site should change it's Z-Order so it reduces the amount of space it consumes as related to other dock sites. + + + + + When either FullSizeDock or PartialSizeDock is set it indicates the new dock site Z-Order index. + + + + + Returns the bar that mouse is placed over. + + + + + Returns dock side the mouse is indicating user wants to dock bar at. + + + + + Gets the last relative docked to bar. + + + + + Gets the last relative docked to document id. + + + + + Returns side of last docked-to dock site. + + + + + Dock Sites are created by DotNetBar control on each edge of the + DotNetBar container control and are used for docking purposes. + If Dock Site does not contain any controls it will be invisible. + + + + + Creates new instance of DockSite object with specified dock style. + + Specifies the position and manner in which a site is docked. + + + + Creates new instance of DockSite object. + + + + + Returns reference to the DocumentDockUIManager object used for interaction with document docking engine. + + Reference to the DocumentDockUIManager object. + + + + Saves layout for bars contained by dock site. + + Parent XmlElement. + + + + Loads layout for the bars. + + Parent XmlElement that was passed to SaveLayout method to save layout + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Docks the bar to the dock site. + + Bar to dock. + + + + Dockes the Bar to dock site at specified position. + + Bar to dock. + Bar insert position. + + + + Relayouts all docked controls in the site. + + + + + Returns the docking information for current position. + + Controls docking provider. + Horizontal assumed docking position. + Vertical assumed docking position. + Docking information. + + + + + Undocks the control from the site. + + Control to undock. + + + + Gets or sets whether painting is disabled on dock site while layout of bars is performed. Default value is true. + You might need to set this property to false if you are expirience vide flashing while using DirectX video animation in Bar controls that are part of the + dock site. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the target gradient background color. + + + + + Gets or sets gradient fill angle. + + + + + Specifies the position and manner in which a site is docked. + + + + + Gets the reference to the DotNetBarManager that uses this dock site. + + + + + Represents class that is a bar container for document docking. + + + + + Represents Document container base class. + + + + + Creates new instance of the class. + + + + + Resizes the document within specified bounds. + + Area available for the document. + + + + Sets the display bounds. + + New display bounds. + + + + Sets layout bounds. + + New layout bounds. + + + + Resets the layout bounds for the document base container to the empty bounds. + + + + + Resets the layout bounds for the document base container to the empty bounds. + + + + + Sets the parent document. + + Parent container. + + + + Sets the width of the document. + + Width in pixels + + + + Sets the height of the document. + + Height in pixels. + + + + Occurs when width is being set on child document. + + Reference document being changed + Width in pixels + True if width was applied by parent otherwise false + + + + Occurs when height is being set on child document. + + Reference document being changed + Height in pixels + True if width was applied by parent otherwise false + + + + Updates bounds of the item in response to the scrolling of LayoutControl. + + + + + + + Gets the unique ID for the container. + + + + + Returns actual display bounds of the document. + + + + + Returns layout bounds of the document. Layout bounds are proposed bounds of the layout and might not be the same + as DisplayBounds. + + + + + Gets the parent container. + + + + + Gets whether document is visible or not. + + + + + Gets minimum size of the document. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with the Bar object. + + Bar to contain on document. + + + + Creates new instance of the class and initializes it with the bar and propesed width and height. + + Bar to contain on document. + Proposed width of the document in pixels + Proposed height of the document in pixels + + + + Resizes document object. + + Available bounds for the document. + + + + Gets or sets the bar that is contained by this document. + + + + + Gets whether document is visible. + + + + + Gets the minimum size of the document. + + + + + Represents DocumentBarContainer converter. + + + + + Creates new instance of the class. + + + + + Checks whether conversion can be made to specified type. + + Context Information. + Destination type. + + + + + Converts object to specified type. + + Context information. + Culture information. + Object to convert. + Destination type. + Object converted to destination type. + + + + Collection of DocumentBaseContainer objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of documents to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the DocumentBaseContainer array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Represents Dock container with either horizontal or vertical layout. + + + + + Creates new instance of the object and initializes it with specified values. + + Array of documents to host in this container. + Container orientation + + + + Creates new instance of the object. + + + + + Resizes the object inside of the given bounds. + + Available area. + + + + Occurs when width is being set on child document. + + Reference document being changed + Width in pixels + True if width was applied by parent otherwise false + + + + Occurs when height is being set on child document. + + Reference document being changed + Height in pixels + True if width was applied by parent otherwise false + + + + Returns the DocumentBarContainer object for a given bar. + + Bar to search for. + Reference to container or null if bar could not be found + + + + Gets whether document is visible or not. + + + + + Gets the orientation of the container. Default value is Horizontal. + + + + + Returns collection of the documents hosted by this container. + + + + + Returns minimum size of the object. + + + + + Gets or sets splitter size in pixels between the documents docking inside the container. Default value is 3. + + + + + Gets or sets whether the size of the documents is recorded once the layout is calculated. + + + + + Indicates whether the container is allowed to exceed the parent control client size due to inner child windows minimum size constraints. + + + + + Represents DocumentDockContainer object converter. + + + + + Represents class that manages document docking UI interaction. + + + + + + Returns DocumentBaseContainer that holds the reference bar. + + Bar to return document container for. + Returns null if document container cannot be found or reference to the document container. + + + + Docks specified bar by appending it to the container. Bar will be added according to the container's orientation. + + Bar to dock. + + + + Docks specified bar by appending it to the container. Bar will be added according to the container's orientation. + + Bar to dock. + Side to dock bar at. + + + + Adjusts the size of the dock container if needed after a bar has been docked to it. + + Bar object that has been docked. + Indicates that bar was already docked but its Visible property has changed + + + + Processes OnMouseMove events from DockSite. This routine assumes that mouse messages are received only when mouse is actually over + the dock site and not containing bars. This is significant because it will receive messages only if mouse is over the splitter + space between bars. + + Mouse event arguments. + + + + Returns reference to the DocumentDockContainer that contains specified coordinates. Searches through the Documents collection first. + + X coordinate + Y coordinate + + + + + Sets the width of the bar that is managed by this document layout. Width can be set only if parent container has + Horizontal orientation. Note that bar minimum size is respected by this method and + it will be enforced. If width is less than minimum width bar's width will be set to minimum width. + + Reference to bar object. + Desired width. + + + + Sets the height of the bar that is managed by this document layout. Height can be set only if parent container has + vertical orientation. Note that bar minimum size is respected by this method and + it will be enforced. If height is less than minimum height bar's height will be set to minimum height. + + Reference to bar object. + Desired height. + + + + Gets or sets the root document dock container object. + + + + + Gets or sets the splitter width used for mouse hit-testing. + + + + + Gets or sets the container of the document. + + + + + Gets whether document/bar is being resized. + + + + + Represent the menu, toolbar and popup menu structure for the form. + + + + + Raises BarStateChanged event. + + Provides event arguments. + + + + Creates new instance of DotNetBarManager. + + + + + Creates new instance of DotNetBarManager. + + Container. + + + + Dock bar to the specified side of the form. + + Bar to dock. + Side to dock bar to. + + + + Docks the bar to the specified side of the reference bar. + + Bar to dock. + Reference bar. + Side of the reference bar to dock the bar to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Side to dock item to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Reference bar. + Side to dock item to. + + + + Docks specified DockContainerItem. + + DockContainerItem to dock. + Reference bar. + Side to dock item to. + + + + Tear-off specified DockContainerItem and float it. + + Item to float. + + + + Tear-off specified DockContainerItem and float it. + + Item to float. + + + + Make specified bar floating bar, i.e. undock it and place in floating window. + + Bar to float. + + + + Make specified bar floating bar, i.e. undock it and place in floating window and specified location on the screen. + + Bar to float. + Screen coordinates for the floating bar. + + + + Raises the ActiveDockContainerChanged event. + + Provides event arguments. + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the Bar object that contains the item. + + + + + Clean up any resources being used. + + + + + Returns whether property should be serialized by Windows Forms designer. + + + + + Use to remove bar from DotNetBar control. Bar will be undocked if it is docked and + removed from all internal collections. + + Bar to remove. + + + + Forces the loading of the definition specified in DefinitionName property. + By default definition is loaded after parent form handle has been created and form is loaded. + However, under certain circumstances you might need DotNetBar to load definition right away so + you can access bars and items. We recommend moving the code to Form Load event and leaving the loading process for DotNetBar definition as is. + + + + + Loads DotNetBar definition from file. + + File that contains DotNetBar defintion. + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Saves current DotNetBar definition and state to the file. + + File name. + + + + Loads DotNetBar layout from file. + + File that contains DotNetBar defintion. + + + + Saves current DotNetBar layout to the file. + + File name. + + + + Invokes the DotNetBar Customize dialog. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name. This method search for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searched, then Items collection and then ContextMenus collection. + + Item name to look for. + Specifies that search will be performed through all DotNetBar collections. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. This method will searchs for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Item type to look for. + Specifies that full search (through all collections) will be performed. + + + + + Returns the collection of items with the specified name and type. This method will searchs for items on all Bars, Items collection and ContextMenus collection. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Item type to look for. + Specifies that full search (through all collections) will be performed. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Returns the first item that matches specified name with the option to indicate full search of all collections. + The order of search is as follows. All Bars from Bars collections are searced, then Items collection and then ContextMenus collection. + + Item name to look for. + Specifies that all collection will be searched. + + + + + Called before modal dialog is displayed using ShowModal() method. + + + + + Called after modal dialog is closed. + + + + + You must call this procedure if you are implementing custom customize dialog box after your dialog box is closed. + + + + + Registers popup item with DotNetBar. Use this function carefully. The registration is required only if Popup item is created completely from code and it is not added to any DotNetBarManager collection. + + + + + + Un-registers specified popup. See RegisterPopup for more information. + + + + + + Resets the ColorScheme property to its default value. + + + + + Informs the DotNetBarManager that Mdi Child for has been activated. Calling this method is needed only under special + conditions where MDI child system items do not show. + + + + + Resets all usage data collected by DotNetBar in relation to the Personalized menus. + + + + + Occurs after bar registered with DotNetBarManager state has changed, like selected dock tab has changed, bar has closed, bar has been docked or undocked etc. + + + + + Occurs when focused (active) DockContainerItem has changed. You can use ActiveDockContainerItem property to get reference to currently focused DockContainerItem. + + + + + Occurs just before customize popup menu is shown. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when Bar is docked. + + + + + Occurs when Bar is Undocked. + + + + + Occurs before dock tab is displayed. + + + + + Occurs when Bar auto-hide state has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs when users wants to reset the DotNetBar to default state. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Occurs when Customize Dialog is about to be shown. + + + + + Occurs when Customize Dialog is closed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs when current Dock tab has changed. + + + + + Occurs when Bar is about to be closed as a result of user clicking the Close button on the bar. + + + + + Occurs when Bar in auto-hide state is about to be displayed. + + + + + Occurs when user starts to drag the item when customize dialog is open. + + + + + Occurs when users Tears-off the Tab from the Bar and new Bar is created as result of that action. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel the change. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs on dockable bars when end-user attempts to close the individual DockContainerItem objects using system buttons on dock tab. + Event can be canceled by setting the Cancel property of event arguments to true. This even will occur only after user presses the + X button on tab that is displaying the dockable windows/documents. + + + + + Occurs on dockable bars after DockContainerItem is closed. This action cannot be cancelled. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Occurs when TextBoxItem input text has changed. + + + + + Occurs when color on ColorPickerDropDown is choosen from drop-down color picker or from Custom Colors dialog box. Selected color can be accessed through SelectedColor property. + + + + + Occurs when Checked property of an button has changed. + + + + + Gets or sets docking splitter size. + + + + + Indicates whether Ctrl+Tab keys cycles the currently selected dock tab. + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets the form DotNetBarManager is attached to. + + + + + Gets or sets the user control DotNetBarManager is parented to when on user control and providing popups only. + + + + + Gets currently focused (active) DockContainerItem. Note that only if DockContainer Item has input focus it will be consider active + so there can only be one active DockContainerItem at a time. + + + + + Gets whether component has been disposed. + + + + + Disposed will return true after Dispose method has been executed. + + + + + Gets or sets whether GC.Collect() is called when this component is disposed. + + + + + Gets or sets the minimum client size that docking windows will try to maintain for the client area (not occupied by dock windows). + Note that this value is suggested value and cannot be observed when form is resized below the minimum size required for the given layout. + Default value is 48x48 pixels. + + + + + Indicates whether DotNetBar provides docking hints for easy docking of bars. + + + + + Gets or sets whether user can control how first bar is docked when using docking hints (default value is True). When enabled (default value) placing the mouse over the middle + docking hint will dock the bar at partial size and using the far docking hint will dock bar at full size. Full size indicates that dock site which hosts the bar + consumes all the space of the parent form while partial size indicates that dock site consumes the full size minus the space of the other dock sites. Default value is true. + + + + + Gets or sets whether uniform styling is applied to bars docked as documents. Default value is true which means + that bar that will be docked as document will have it's style changed so it fits in default document styling. + Such bars will have GrabHandleStyle=None, DockTabAlignment=Top and AlwaysDisplayDockTab=true. + Set this property to false to have bars keep these properties once they are docked as documents. + Value of these properties will be returned back to the default values once bar is not docked as document. + + + + + Gets the collection of the Bar objects associated with DotNetBarManager. + + + + + Gets whether definition is loaded. + + + + + Gets the collection of all items that are used for end-user design-time customization. + + + + + Gets the collection of all popup menus managed by DotNetBarManager. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Gets or sets the collection of shortcut keys that are automatically dispatched to the control that has focus even if they are handled and used by one of the items. This gives you fine control over which shortcuts are passed through the system and which ones are marked as handled by DotNetBar. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Suspends the bar layout for all bars. + + + + + Specifes whether drop shadow is displayed for Menus and pop-up Bars. OfficeXP Style only. + + + + + Specifes whether to use Alpha-Blending shadows for pop-up items if supported by target OS. Disabling Alpha-Blended shadows can improve performance. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Gets or sets whether hooks are used for internal DotNetBar system functionality. Using hooks is recommended only if DotNetBar is used in hybrid environments like Visual Studio designers or IE. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Returns whether definition is being currently loaded. + + + + + Gets or sets whether document bars are saved in definition file. Default value is false which means that document + bars are not saved as part of definition file. You can set this value to true to save document bar to definition file and + be able to load them. + + + Note that by default Document bars that you created during design-time get member + variables assigned to them by Windows Forms designer. If you decide to save definition + of such bars and load definition back member variables will not point to correct bar + instances since loading definition recreates all bars from scratch. You should always + use Bars collection to access bars when saving and loading definitions. + + + + + Gets or sets the DotNetBar definition string. + + + + + Gets or sets the DotNetBar layout string. + + + + + Gets whether DotNetBarManager is loading layout. + + + + + Specifies that custom customize dialog will be used. Use EnterCustomize event to show your custom dialog box. + + + + + Gets or sets the toolbar Top dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Bottom dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Left dock site used by DotNetBarManager. + + + + + Gets or sets the toolbar Right dock site used by DotNetBarManager. + + + + + Gets or sets the Top dock site used by DotNetBarManager. + + + + + Gets or sets the Bottom dock site used by DotNetBarManager. + + + + + Gets or sets the Left dock site used by DotNetBarManager. + + + + + Gets or sets the Right dock site used by DotNetBarManager. + + + + + Gets or sets the Fill dock site used by DotNetBarManager. Fill dock site is most commonly used as dock site + for document type docking. + + + + + Specifies whether bars are drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Sets the style of all items in DotNetBar Manager. + + + + + Gets or sets Color scheme for all bars. Note that you need to set UseGlobalColorScheme to true to indicate + that this ColorScheme object will be used on all bars managed by this instance of DotNetBarManager. + + + + + Gets or sets whether ColorScheme object on DotNetBarManager is used as a default ColorScheme for all bars managed by DotNetBarManager. + Default value is false which indicates that ColorScheme on each Bar is used. + When set to true each bar will use the ColorScheme settings from DotNetBarManager and it will ignore any + setting on the Bar.ColorScheme object. + + + + + Indicates whether the Personalized menu setting is ignored and full menus are always shown. + + + + + Gets or sets whether accelerator letters for menu or toolbar commands are underlined regardless of + current Windows settings. Accelerator keys allow easy access to menu commands by using + Alt + choosen key (letter). Default value is false which indicates that system setting is used + to determine whether accelerator letters are underlined. Setting this property to true + will always display accelerator letter underlined. + + + + + Returns whether theme support is enabled on the OS that supports themes like Windows XP. + + + + + Indicates whether the CustomizeItem (allows toolbar customization) is added for new Bars end users are creating. + + + + + Gets or sets whether DotNetBar ignores the F10 key which when pressed sets the focus to menu bar + + + + + Indicates whether the items that are not recenly used are shown after mouse hovers over the expand button. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Specifies the pop-up animation style. + + + + + Specifies whether the MDI system buttons are displayed in menu bar when MDI Child window is maximized. + + + + + Gets or sets whether MDI Child form System Menu is hidden. System menu is displayed in MDI form menu area when form is maximized. Default value is false. + + + + + Gets or sets whether customize context menu is shown on all bars or dock sites. + + + + + Gets or sets whether parent form is activated when dock window layout is loaded. + + + + + Represents delegate for ContextMenu events. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Defines the delegate for DockTabChange event + + + + + Defines the delegate for BarClosing event + + + + + Defines the delegate for BarAutoHideDisplay event + + + + + Represents the method that will handle the LocalizeString event. + + + + + Gets or sets the display rectangle for popup auto-hide bar. + + + + + Event arguments for LocalizeString event. + + + + + Indicates that event has been handled and that LocalizedValue should be used. + + + + + Indicates the string key for the text that needs to be localized. + + + + + Indicates the localized text value. If you are performing custom string localization + you need to set this value to the translated text for current locale and you need to set + Handled property to true. + + + + + Default constructor. + + + + + Event arguments for EndUserCustomize event. + + + + + Indicates the customize action that user executed. + + + + + Default constructor. + + Indicates action user executed. + + + + Initializes a new instance of the EndUserCustomizeEventArgs class. + + + + + + + Gets any action data, might be null/nothing. + + + + + Delegate for EndUserCustomize event. + + + + + Defines delegate for ActiveDockContainerChanged event. + + + + + + + Provides event arguments for ActiveDockContainerChanged event. + + + + + Gets the DockContainerItem that has been activate or deactivated. + + + + + Initializes a new instance of the ActiveDockContainerChangedEventArgs class. + + + + + + Summary description for DotNetBarResourcesAttribute. + + + + + Summary description for DotNetBarStreamer. + + + + + Represents class that can serialize compatible marked properties. + + + + + XML element is expected to be something like Image data Base64 encoded + + Image data + + + + + Represents visual style of an User Interface Element. + + + + Creates new instance of the class. + + + + Initializes a new instance of the ElementStyle class. + + + + + Creates new instance of the class. + + + Creates new instance of the class. + + + Creates new instance of the class. + + + + Indicates whether BackgroundColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BackgroundColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundImage to it's default value null (VB Nothing). Used by windows forms designer design-time support. + + + + + Indicates whether TextColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether TextShadowColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether TextShadowOffset should be serialized. Used by windows forms designer design-time support. + + + + + Resets TextShadowOffset to it's default value. Used by windows forms designer design-time support. + + + + + Sets size of the element style. + + Indicates new size. + + + + Indicates whether BorderColor should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColor3 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColorLight should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColor to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether BorderColor2 should be serialized. Used by windows forms designer design-time support. + + + + + Resets BorderColorLight2 to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Indicates whether property should be serialized. Used by windows forms designer design-time support. + + + + + Resets property to it's default value. Used by windows forms designer design-time support. + + + + + Releases all resources used in this control. After calling Dispose() + object is not in valid state and cannot be recovered to the valid state. + Recreation of the object is required. + + + + + Applies a "child/inherited" style text and box properties but not any background or border properties to this style. + Use this method to create style hierarchies. + + Style to apply to this style + + + + + Applies a "child/inherited" style to this style. Use this method to create style + hierarchies. + + + This method is used to support style hierarchies where a base style is defined + and inherited/child styles are derived and based on it. By using this method on the + base style you can apply only style changes defined by the child style. For example if + you defined a base style for normal user interface element then in most cases you do + not want to redefine the styling for the case when same user interface element is + selected. You will just defined the behavior of the selected state and then apply it to + the base normal style using ApplyStyle method. + + Style to apply to current style. + + + + Makes an exact copy of the style. + + New copy of ElementStyle object. + + + + Reset all style properties to default values. + + + + Returns default style for the Cell object. + + Reference to the default style for the Node. Cell style is based on the given + node style. + + + + Returns default style for disabled cells. + Returns new instance of ElementStyle object. + + + Returns default style for the selected cell object. + New instance of the ElementStyle object. + + + + Sets Alpha value for all colors defined by style to specified value. + + Style to change. + Alpha value for the colors. + + + + Returns reference to ColorScheme object used by this style. + + Instance of ColorScheme object or null if object could not be obtained. + + + + Occurs when appearance property of the style has changed. + + + + + Occurs when component is Disposed. + + + + + Gets the collection that defines the multicolor gradient background. + + + + + Gets or sets the background color for UI element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color. Setting + this property overrides the setting of the corresponding BackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor property. + + + + + Gets or sets the target gradient background color for UI element. + + + + + Gets or sets the color scheme color that is used as target gradient background color. Setting + this property overrides the setting of the corresponding BackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor2 property. + + + + + Gets or sets the background gradient angle. + + + + + Gets or sets the background gradient fill type. Default value is Linear. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the text color displayed in this UI element. + + + + + Gets or sets the color scheme color that is used as text color. Setting + this property overrides the setting of the corresponding TextColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through TextColor property. + + + + + Gets or sets the text shadow color. + + + + + Gets or sets the color scheme color that is used as text shadow color. Setting + this property overrides the setting of the corresponding TextShadowColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through TextColor property. + + + + + Indicates text shadow offset in pixels + + + + + Gets or sets the Font used to draw this the text. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Gets the total horizontal margin (Left + Right) + + + + + Gets the total vertical margin (Top + Bottom) + + + + + Gets or sets the left margin. + + + + + Gets or sets the right margin. + + + + + Gets or sets the top margin. + + + + + Gets or sets the bottom margin. + + + + + Gets or sets whether any style property has changed which could influence the size of the style. + + + + + Gets the calcuated size of the element style. + + + + + Gets or sets the border type for all sides of the element. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets the border type for top side of the element. + + + + + Gets or sets the border type for bottom side of the element. + + + + + Gets or sets the border type for left side of the element. + + + + + Gets or sets the border type for right side of the element. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets border width in pixels. + + + + + Gets or sets the border color for all sides. Specifing the color for the side will override this value. + + + + + Gets or sets the color scheme color that is used as border color. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the target background gradient color for border on all sides. Specifing the color for the side will override this value. Gradient border colors + be employed only when per side border color is not specified. + + + + + Gets or sets the color scheme color that is used as taget gradient border color. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the border gradient angle. Default value is 90. + + + + + Gets or sets the color for light border part when etched border is used. + + + + + Gets or sets the color scheme color that is used as border light color for etched border style. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the target background gradient color for border on all sides. Specifing the color for the side will override this value. Gradient border colors + be employed only when per side border color is not specified. + + + + + Gets or sets the color scheme color that is used as taget gradient border light color for etched border style. Setting + this property overrides the setting of the corresponding BorderColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderColor property. + + + + + Gets or sets the light border gradient angle. Default value is 90. + + + + + Gets or sets the background color for the left side border. + + + + + Gets or sets the color scheme color that is used as left border color. Setting + this property overrides the setting of the corresponding BorderLeftColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderLeftColor property. + + + + + Gets or sets the background color for the right side border. + + + + + Gets or sets the color scheme color that is used as right border color. Setting + this property overrides the setting of the corresponding BorderRightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderRightColor property. + + + + + Gets or sets the background color for the top side border. + + + + + Gets or sets the color scheme color that is used as top border color. Setting + this property overrides the setting of the corresponding BorderTopColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderTopColor property. + + + + + Gets or sets the background color for the bottom side border. + + + + + Gets or sets the color scheme color that is used as bottom border color. Setting + this property overrides the setting of the corresponding BorderBottomColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BorderBottomColor property. + + + + + Gets the total horizontal padding (Left + Right) + + + + + Gets the total vertical padding (Top + Bottom) + + + + + Gets or sets the padding space in pixels for all 4 sides of the box. + + + + + Gets or sets the amount of space to insert between the top border of the element and the content. + + + + + Gets or sets the amount of space to insert between the bottom border of the element and the content. + + + + + Gets or sets the amount of space to insert between the left border of the element and the content. + + + + + Gets or sets the amount of space to insert between the right border of the element and the content. + + + + + Gets or sets the name of the style. + + + + + Gets or sets the class style belongs to. The Class styles are used to apply predefined values to the styles that belong to the same class. + This feature is used to manage color schemes/tables per class style. + + + + + Gets or sets the description of the style. + + + + + Gets or sets the Site associated with this component. Used by Windows forms designer. + + + + + Gets or sets the maximum height of the element. This property should be used in + conjunction with the WordWrap property to limit the size of + text bounding box. + + Default value is 0 which indicates that height of the style is unlimited. + + + + Returns System.Drawing.StringFormat constructed from current style settings. + + + + + Gets or sets a value indicating whether the control interprets an ampersand character (&) in the control's Text property to be an access key prefix character. Default value is false. + + + + + Indicates whether control hides the underlines of the letter prefixed by ampersand character when UseMnemonic=true + + + + + Returns eTextFormat constructed from current style settings. + + + + + Gets or sets the border corner type for all 4 sides. Default corner type is Square. + + + + + Gets or sets the border corner type for top left corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for top right corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for bottom left corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the border corner type for bottom right corner. Default value is Inherit which means that setting from CornerType property is used. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets whether to paint left border for the style. + + + + + Gets whether to paint right border for the style. + + + + + Gets whether to paint top border for the style. + + + + + Gets whether to paint bottom border for the style. + + + + + Gets whether to paint any border for the style. + + + + + Gets whether to paint any border for the style. + + + + + Gets whether custom has any of properties changed. + + + + + Gets or sets whether ElementStyle is in design mode. + + + + + Gets or sets the maximum width of the element. This property should be used in + conjunction with the WordWrap property to limit the size of + text bounding box. + + Default value is 0 which indicates that width of the style is not limited. + + + + Gets or sets the reference to the parent collection. + + + + + Gets or sets the tree control style is assigned to. + + + + + Specifies the type of the gradient fill. + + + + + Represents linear gradient fill. + + + + + Represents radial gradient fill. + + + + + Paints the ElementStyle + + + + Creates new instance of the object. + + + + Paints text for given style. + + Display information. + Text to paint. + Default font if no font by style is specified. + + + + + Returns new Region object for given ElementStyle. + New instance of Region object. + Information to describe ElementStyle. + + + + Returns the clipping for the content of the element style. + + + + + + + Paints the element style on the canvas. + + Holds information necessary to paint style on canvas. + + + + Paint style border. + + Style display information. + + + + Paints style background. + + Style display information. + + + + Paints style background. + + Style display information. + + + + Paints style background image. + + Style display information. + + + + Returns background rectangle for given style by taking in account margins. + + Reference to style object. + Style bounds + Background rectangle. + + + + Returns GraphicsPath for given style. + + Reference to style. + Style bounds. + New instance of GraphicsPath + + + + Returns GraphicsPath for given style. + + Reference to style. + Style bounds. + New instance of GraphicsPath + + + + Initializes a new instance of the BorderDrawInfo structure. + + + + + + + + + + Represents information necessary to paint the style on canvas. + + + + Reference to ElementStyle object. + + + Reference to Graphics object. + + + ElementStyle bounds. + + + Get or sets whether layout is right-to-left. + + + + Gets or sets whether bottom and right border is "twisted" giving beveled look when double border is used. + + + + Creates new instance of the object. + + + Creates new instance of the object and initializes it with default values. + Style to initialize object with. + Graphics object to initialize object with. + Bounds to initialize object with. + + + Creates new instance of the object and initializes it with default values. + Style to initialize object with. + Graphics object to initialize object with. + Bounds to initialize object with. + + + + Specifies part of the background path. + + + + + Indicates complete background path + + + + + Indicates Top half of background path + + + + + Indicates Bottom half of background path + + + + + Represents the layout for the element style. + + + + + Calculates size of an style element. + + Style to calculate size for. + Default font that will be used by style if style does not uses it's own font. + Size of the style element. At this time only Height member will be calculated. + + + + Returns the total white space for a style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for + + + + + Returns the total white space for a style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for left side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for left side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for right side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for right side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns total white space for top side of the style. Whitespace is the space between the edge of the element and inner content of the element. + + Style to return white space for. + + + + + Returns amount of spacing for specified style parts. + + Style to calculate spacing for. + Part of the style spacing is calculated for. Values can be combined. + Side of the style to use for calculation. + + + + + Gets inner rectangle taking in account style padding, margins and border. + + + + + Specifies the appearance of a item. + + + + + Specifies the CrumbBar control style. + + + + + Specifies the Bar state. + + + + + Specifies the Bar grab handle style. + + + + + Specifies the Orientation of the item within container. + + + + + Specifies the design-marker orientation for the item. + + + + + Specifies the supported orientations by the item. + + + + + Specifies the docked Bar border type. + + + + + Specifes vertical alignment. + + + + + Specifies item alignment. + + + + + Specifies the popup type. + + + + + Specifies the dock side. + + + + + Specifies the item shortcut. + + + + + Specifies the item menu visibility. + + + + + Specifies the item behavior personalized menus. + + + + + Specifies the popup animation. + + + + + Specifies ButtonItem style. + + + + + Specifies the image position. + + + + + Specifies the hot tracking style for buttons. + + + + + Specifies the menu drop shadow. + + + + + Specifies the image size for the items on the Bar. + + + + + Specifies button image list selection. + + + + + Indicates that image is stretched to fill the container space. + + + + + Image is centered inside of container space. + + + + + Image is tiled to fill container space. + + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + + Image is drawn on the left side in the middle of the container space. + + + + + Image is drawn on the right side in the middle of the container space. + + + + + Specifies the sides of a rectangle to apply a border to. + + + + + No Border. + + + + + Border on the Left edge. + + + + + Border on the Right edge. + + + + + Border on the Top edge. + + + + + Border on the Bottom edge. + + + + + Border on all 4 sides. + + + + + Specifies appearance type of the Side Bar control. + + + + + Traditional Side Bar appearance with 3D panels. + + + + + Improved Flat Side Bar appearance with extended appearance options. + + + + + Specifies predefined side bar color scheme. + + + + + Specifies the side popup is displayed in relation to it's parent. + + + + + Indicates layout type used for items within side bar panel. + + + + + Default layout all items arranged in one column. + + + + + Items arranged in multiple columns determined by the width of the panel. + + + + + Indicates color scheme assigned to the tab item. + + + + + Indicates the action end user took during toolbar/menubar customization. + + + + + User has changed the visibility of the bar. + + + + + Indicates that item visibility has changed i.e. it's visible property. + + + + + Indicates that an item has been moved to different location. + + + + + Indicates that an item has been removed from the bar. + + + + + Indicates that item's text has been changed. + + + + + Indicates that style of the button i.e. ButtonStyle property has changed. + + + + + Indicates that item's BeginGroup property has changed. + + + + + Indicates that user has created a new bar. + + + + + Indicates that user has renamed the bar i.e. changed it's Text property. + + + + + Indicates that user has deleted the bar. + + + + + Specifies the type of the layout for tabs. + + + + + Tabs are auto-sized to fit the width of the container. + + + + + Tab's width is calculated based on the image and text and navigation box is displayed + when tabs cannot fit the container. + + + + + Tab are wrapping on multiple lines based on the width and navigation box is displayed. + + + + + Tab are wrapping on multiple lines based on the width and NO navigation box is displayed. + + + + + Indicates the corner type. + + + + + Inherits setting if applies. + + + + + Specifies square corner. + + + + + Specifies rounded corner. + + + + + Specifies diagonal corner. + + + + + Specifies the action that raised a event + + + + + The event was caused by a keystroke. + + + + + The event was caused by a mouse operation. + + + + + The event is caused programmatically from user code. + + + + + Specifies the button alignment inside of the BubbleBar. + + + + + Buttons are aligned to the top and arranged horizontally. + + + + + Buttons are aligned to the bottom and arranged horizontally. + + + + Specifies the way background image is displayed on background. + + + Image is stretched to fill the background + + + Image is centered inside the background + + + Image is tiled inside the background + + + + Image is drawn in top left corner of container space. + + + + + Image is drawn in top right corner of container space. + + + + + Image is drawn in bottom left corner of container space. + + + + + Image is drawn in bottom right corner of container space. + + + + + Imaged is centered and fills the control but aspect ratio is unchanged. + + + + + Specifies the border type for style element. + + + + Indicates no border + + + Border is a solid line + + + Border is a solid dash line + + + Border is solid dash-dot line + + + Border is solid dash-dot-dot line + + + Border consists of dots + + + Border consists light and dark part creating an etched effect + + + Border consists dark and light part. Light part is the inside border. + + + + Specifies the alignment of a text string relative to its element's rectangle. + + + + + Specifies the text be aligned near from the origin position of the element's rectangle. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right. + + + + + Specifies that text is aligned in the center of the element's rectangle. + + + + + Specifies that text is aligned far from the origin position of the element's rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left. + + + + + Specifies how to trim characters from a text that does not completely fit into a element's shape. + + + + + Specifies that the text is trimmed to the nearest character. + + + + + Specifies that the text is trimmed to the nearest character, and an ellipsis is inserted at the end of a trimmed line. + + + + + The center is removed from trimmed lines and replaced by an ellipsis. The algorithm keeps as much of the last slash-delimited segment of the line as possible. + + + + + Specifies that text is trimmed to the nearest word, and an ellipsis is inserted at the end of a trimmed line. + + + + + Specifies no trimming. + + + + + Specifies that text is trimmed to the nearest word. + + + + + Specifies the alignment of buttons in title bar. + + + + + Buttons are left aligned. + + + + + Buttons are right aligned. + + + + + Indicates white-space part of the style. + + + + + Represents style padding. + + + + + Represents style border. + + + + + Represents style margin. + + + + + Indicates the style side. + + + + + Specifies left side of the style. + + + + + Specifies right side of the style. + + + + + Specifies top side of the style. + + + + + Specifies bottom side of the style. + + + + + Specifies the button state. + + + + + Button is in it's default state. + + + + + Button is disabled + + + + + Mouse is over the button + + + + + Left mouse button is pressed + + + + + Right mouse button is pressed + + + + + Button is hidden. + + + + + Indicates predefined color scheme assigned to super tooltip. + + + + + Specifies predefined color assigned to ribbon items. + + + + + Specifies predefined color assigned to ribbon tab groups. + + + + + Specifies the state of the Wizard button. + + + + + Specifies the button that caused the wizard page change. + + + + + Page change was started using Wizard Back button. + + + + + Page change was started using Wizard Next button. + + + + + Page change was started from code. + + + + + Specifies wizard button that is clicked when the user presses the ENTER key. + + + + + If finish button is enabled and visible it will be clicked otherwise click next button + + + + + Click finish button + + + + + Click next button + + + + + No button will be clicked + + + + + Specifies wizard button that is clicked when the user presses the Escape key. + + + + + Cancel button will be clicked + + + + + No button will be clicked + + + + + Specifies border around ColorItem. + + + + + No Border. + + + + + Border on the Left edge. + + + + + Border on the Right edge. + + + + + Border on the Top edge. + + + + + Border on the Bottom edge. + + + + + Border on all 4 sides. + + + + + Specifies the line alignment of the items inside of the container. + + + + + Items are aligned to the top. + + + + + Items are aligned to the middle point of the line. + + + + + Items are aligned to the bottom. + + + + + Specifies the alignment of the items inside of the container in horizontal layout. + + + + + Items are left aligned. + + + + + Items are centered. + + + + + Items are right aligned. + + + + + Specifies the alignment of the items inside of the container in vertical layout. + + + + + Items are top aligned. + + + + + Items are in the middle. + + + + + Items are Bottom aligned. + + + + + Specifies the rendering mode used by a user interface element. + + + + + Indicates that rendering on user interface element instance set through Renderer property is used. + + + + + Indicates that global application wide renderer is used as specified by GlobalManager.Renderer property. + + + + + Indicates that custom rendered will be used for an user interface element. Renderer property must be set when using this value to the renderer + that will be used. + + + + + Specifies the predefined color table for button. + + + + + Specifies the color table used to render ProgressBarItem in Office 2007 style. + + + + + Indicates default Normal color table, usually green. + + + + + Indicates Pause state color table, usually yellow. + + + + + Indicates Error state color table, usually red. + + + + + Specifies the position of ribbon title. + + + + + Title is positioned on the top of the ribbon. + + + + + Title is positioned on the bottom of the ribbon. + + + + + Specifies text alignment on the button. + + + + + Specifies the left aligned text. + + + + + Specifies the center aligned text. + + + + + Specifies the right aligned text. + + + + + Specifies the position of the tab close button. + + + + + Close button is on the left side of the tab. + + + + + Close button is on the right side of the tab. + + + + + Describes the bar type. + + + + + Indicates that bar is toolbar. + + + + + Indicates that bar is menu bar. + + + + + Indicates that bar is status bar. + + + + + Indicates that bar is dock window. + + + + + Describes the categorization mode used to categorize items on the Customize Ribbon dialog. + + + + + Items are automatically categorized by the ribbon bar they appear on. + + + + + Items are categorized by the Category property on each item. Category property should be set on each item. + + + + + Describes the check-box item appearance style + + + + + Standard check-box style. + + + + + Radio button style. Only one button can be selected/checked in given container. + + + + + Indicates the position of the check box sign related to the text for CheckBoxItem. + + + + + Check box sign is positioned on the left side of the text. + + + + + Check box sign is positioned on the right side of the text. + + + + + Check box sign is positioned above the text. + + + + + Check box sing is positioned below the text + + + + + Indicates the type of the progress bar. + + + + + Standard step based progress bar. + + + + + The automatically moving progress bar. + + + + + Defines the direction of collapsing/expanding + + + + + Control is collapsed from bottom to top. + + + + + Control is collapsed from top to bottom. + + + + + Control is collapsed from right to left. + + + + + Control is collapsed from left to right. + + + + + Describes the scroll bar skinning applied to the controls. + + + + + No scrollbar skinning is applied to the control. + + + + + Optimized scrollbar skinning algorithm is used. Might provide better appearance in certain scenarios. + + + + + Unoptimized scrollbar skinning algorithm is used. Might provide better appearance in certain scenarios. + + + + + Indicates the position of the slider label text related to the slider part. + + + + + Label is positioned on the left side of the slider. + + + + + Label is positioned on the right side of the slider. + + + + + Label is positioned above the slider. + + + + + Label is positioned below the slider. + + + + + Defines the slider item parts. + + + + + Indicates no part. + + + + + Indicates the increase button of slider control. + + + + + Indicates the decrease button of slider control. + + + + + Indicates the label part of slider control. + + + + + Indicates the track area part of the control. + + + + + Specifies the position of the title image. + + + + + Image is positioned on the left side. + + + + + Image is centered. + + + + + Image is positioned on the right side. + + + + + Specifies the Wizard control Appearance. + + + + + Indicates default Wizard 97 style. + + + + + Indicates the Office 2007 Style Wizard Appearance. + + + + + Specifies wizard title image alignment + + + + + Image is aligned to left + + + + + Image is aligned to right + + + + + Specifies the behaviour used to hide watermark. + + + + + Watermark for control is hidden when control receives the input focus. + + + + + Watermark for control is hidden when control has non-empty input value. + + + + + Specifies the advanced ScrollBar appearance. + + + + + Default scroll bar appearance. + + + + + Office 2007 style Application scroll bar appearance. + + + + + Defines text position in relation to the content of the item.. + + + + + Text is positioned to the left of the content. + + + + + Text is positioned to the right of the content. + + + + + Text is positioned on top of the content. + + + + + Text is positioned on bottom of the content. + + + + + Defines position for the notification mark + + + + + Defines available symbol sets. + + + + + FontAwesome Symbol Set. + + + + + Android Material Symbol Set. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ColorItem object. + + + + Represents event arguments for DockTabClosing event. + + + + + Indicates the DockContainerItem that is about to close. + + + + + Provides ability to cancel closing of the DockContainerItem. Default value is false. + + + + + Set to true to automatically remove DockContainerItem from the Bar.Items collection after it is closed. Default value is false + which means that DockContainerItem will be kept in collection but it will be hidden after this event is complete. + + + + + Returns source of the event: keyboard, mouse or code. + + + + + Creates new instance of the class. + + Reference to DockContainerItem that is about to close + + + + Delegate for DockTabClosing event. + + + + + Represents arguments for SerializeItem event which allows you to add custom serialization data to definitions saved by control. + + + + + Gets reference to item being serialized or de-serialized. + + + + + Gets reference to instance of XmlElement that item is serialized to or is being de-serialized from. You should not change any data directly on this element. + + + + + Gets the reference to XmlElement that you can serialize to or de-serialize any custom data from. You can add child elements or set the attributes on + this XmlElement when handling SerializeItem event. When handling DeserializeItem event you can load same data from this element. + + + + + Defines delegate for SerializeItem event. + + + + + Provides more information about MarkupLinkClick event. + + + + + Gets the value of href attribute from the markup link that was clicked. + + + + + Gets the value of name attribute from the markup link that was clicked. + + + + + Creates new instance of the object. + + Value of name attribute. + Value of href attribute. + + + + Defines delegate for MarkupLinkClick event. + + + + + Panel control with title bar that can be expanded or collapsed. + + + + + Called after either ColorScheme or ColorSchemeStyle has changed. If you override make sure that you call base implementation so default + processing can occur. + + + + + Used for design time support. + + true if property should be serialized. + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Called when AntiAlias property has changed. + + + + + Occurs before Expanded property is changed. You can cancel change of this property by setting Cancel=true on the event arguments. + + + + + Occurs after Expanded property has changed. You can handle ExpandedChanging event and have opportunity to cancel the change. + + + + + Indicates whether panel will hide the controls it contains when its collapsed and show them when its expanded. Default value is false. + + + + + Gets or sets whether the panel is collapsed/expanded when title bar is clicked. Default value is false. + + + + + Gets or sets the collapse/expand direction for the control. Default value causes the control to collapse from bottom to top. + + + + + Gets or sets whether panel is expanded or not. Default value is true. + + + + + Gets or sets animation time in milliseconds. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets the bounds of panel when expanded. This value is managed automatically by control based on the starting designer size and value + of Expanded property. + + + + + Gets or sets whether expand button is visible or not. Default value is true. + + + + + Returns bounds of expand button. Bounds are relative to the TitlePanel coordinates. + + + + + Gets or sets image that is used on title bar button to collapse panel. Default value is null which indicates + that system default image is used. + + + + + Gets or sets image that is used on title bar button to expand panel. Default value is null which indicates + that system default image is used. + + + + + Gets or sets the text for the title of the panel. + + + + + Gets or sets the title style. + + + + + Gets or sets the title style when mouse hovers over the title. + + + + + Gets or sets the title style when mouse button is pressed on the title. + + + + + Gets or sets the height of the title portion of the panel. Height must be greater than 0. Default is 26. + + + + + Gets reference to Panel control used as title bar. + + + + + Gets reference to the title bar expand button. + + + + + Gets or sets alignment of the expand button. + + + + + Gets the reference to the panel used as button when control is collapsed to the left or right. + + + + + Represents multi-functional splitter control. + + + + + Creates new instance of the object. + + + + + This member overrides Control.OnPaint. + + Event arguments. + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Resets BackgroundColor2 to it's default value. Used by windows forms designer design-time support. + + + + + Apply default splitter style colors. + + Style colors to apply. + + + + Gets or sets whether expandable control ExpandableControl assigned to this splitter is expaned or not. Default value is true. + + + + + Gets or sets whether Click event is triggering expand/collapse of the splitter. Default value is true. + + + + + Gets or sets whether DoubleClick event is triggering expand/collapse of the splitter. Default value is false. + + + + + Gets or sets whether splitter will act as expandable splitter. Default value is true. When set to true ExpandableControl property should be set to the control that should be expanded/collapsed. + + + + + Gets or sets the control that will be expanded/collapsed by the splitter. Default value is null. Expandable property should be also set to true (default) to enable expand/collapse functionality. + + + + + Gets or sets visual style of the control. Default value is eSplitterStyle.Office2003. + + + + + Gets or sets animation time in milliseconds. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets the shortcut key to expand/collapse splitter. + + + + + Gets or sets the background color for UI element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color. Setting + this property overrides the setting of the corresponding BackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor property. + + + + + Gets or sets the target gradient background color for UI element. + + + + + Gets or sets the color scheme color that is used as target gradient background color. Setting + this property overrides the setting of the corresponding BackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through BackColor2 property. + + + + + Gets or sets the background gradient angle. + + + + + Gets or sets the expand part fill color. + + + + + Gets or sets the color scheme color that is used expand part fill color. Setting + this property overrides the setting of the corresponding ExpandFillColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandFillColor property. + + + + + Gets or sets the expand part line color. + + + + + Gets or sets the color scheme color that is used expand part line color. Setting + this property overrides the setting of the corresponding ExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through ExpandLineColor property. + + + + + Gets or sets the grip part dark color. + + + + + Gets or sets the color scheme color that is used grip part dark color. Setting + this property overrides the setting of the corresponding GripDarkColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through GripDarkColor property. + + + + + Gets or sets the expand part line color. + + + + + Gets or sets the color scheme color that is used expand part line color. Setting + this property overrides the setting of the corresponding GripLightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through GripLightColor property. + + + + + Gets or sets the background color for UI element when mouse is over the element. If used in combination with + BackgroundColor2 is specifies starting gradient color. + + + + + Gets or sets the color scheme color that is used as background color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotBackColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotBackColor property. + + + + + Gets or sets the target gradient background color for UI element when mouse is over the element. + + + + + Gets or sets the color scheme color that is used as target gradient background color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotBackColor2 property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotBackColor2 property. + + + + + Gets or sets the background gradient angle when mouse is over the element. + + + + + Gets or sets the expand part fill color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used expand part fill color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotExpandFillColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotExpandFillColor property. + + + + + Gets or sets the expand part line color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used expand part line color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotExpandLineColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotExpandLineColor property. + + + + + Gets or sets the grip part dark color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used grip part dark color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotGripDarkColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotGripDarkColor property. + + + + + Gets or sets the grip part light color when mouse is over the element. + + + + + Gets or sets the color scheme color that is used grip part light color when mouse is over the element. Setting + this property overrides the setting of the corresponding HotGripLightColor property. + Color scheme colors are automatically managed and are based on current system colors. + That means if colors on the system change the color scheme will ensure that it's colors + are changed as well to fit in the color scheme of target system. Set this property to + eColorSchemePart.None to + specify explicit color to use through HotGripLightColor property. + + + + + Indicates the style of mutli-functional splitter control. + + + + + Specifies Office 2003 like splitter style and color scheme. + + + + + Specifies Mozilla like splitter style and color scheme. + + + + + Specifies Office 2007 like splitter style and color scheme. + + + + + Represents event arguments for ExpandedChanging and ExpandedChanged events. + + + + + Gets the action that caused the event, event source. + + + + + Gets or sets whether execution Expand event should be canceled. Applies only to ExpandedChanging event. Default is false. + + + + + Indicates new value for the Expanded property. + + + + + Represents the Outlook like Explorer-bar Control. + + + + + Creates new instance of side bar control. + + + + + Clean up any resources being used. + + + + + Returns true if color scheme has changed. + + + + + Resets color scheme to it's default value. + + + + + Creates the Graphics object for the control. + + The Graphics object for the control. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Applies any layout changes and repaint the control. + + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Ensures that item is displayed on the screen. Item needs to have it's Visible property set to true. This method will expand the group if needed or it will scroll control to display an item. + + Item to display. + + + + Returns the item located at specific client coordinates. + + X Coordinate + Y Coordinate + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Loads the Side bar definition from file. + + Definition file name. + + + + Saves the Side bar definition to file. + + Definition file name. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Suspends the layout and painting of the control. When you want to perform multiple operations on the explorer bar and you want to ensure + that layout of the items on it and painting is not performed for performance and appearance reasons set this property to true. Once you + want to enable layout and painting set the property back to false and call RecalcLayout method. Default value is false. + + + + + Gets or sets Bar Color Scheme. + + + + + Specifies whether ExplorerBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Specifies the background style of the Explorer Bar. + + + + + Gets or sets the vertical spacing between the group items. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Gets or sets whether anti-alias smoothing is used while painting. + + + + + Returns the collection of Explorer Bar Groups. + + + + + Gets or sets the form ExplorerBar is attached to. + + + + + Gets or sets the margin in pixels between the explorer bar groups and the edge of the control. + + + + + Gets or sets whether end-user can rearrange the items inside the panels. + + + + + Gets or sets whether animation is enabled. + + + + + Gets or sets maximum animation time in milliseconds. + + + + + Gets or sets whether native .NET Drag and Drop is used by side-bar to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Applies the stock style to the object. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. This image is used when mouse is over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to expand the group. This image is used when user presses left mouse button while cursor is positioned over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. + This Image is used when mouse is over the button. Default value is null + which indicates that default button is used. + + + + + Specifies custom image to be used as button on ExplorerBarGroup item to collapse the group. + This Image is used when left mouse button is pressed while cursor is over the button. Default value is null + which indicates that default button is used. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for images displayed on the Group Item. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Gets or sets the item default accesibility action will be performed on. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Provides layout for Explorer-Bar control. + + + + + Creates new instance of ExplorerBarContainerItem class. + + + + + Returns copy of ExplorerBarContainerItem item + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Sets input focus to next visible item in Explorer Bar. + + True if focus was set to next visible item otherwise false. + + + + Sets input focus to previous visible item in Explorer Bar. + + True if focus was set to previous visible item otherwise false. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Represents the Explorer-Bar Group item. + + + + + Creates new instance of ExplorerBarGroupItem. + + + + + Creates new instance of ExplorerBarGroupItem and assigns the name to it. + + Item name. + + + + Creates new instance of ExplorerBarGroupItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of ExplorerBarGroupItem item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Shows tooltip for this item. + + + + + Forces the repaint the item. + + + + + Applies default appearance to ExplorerBarGroupItem. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether expand button is visible. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether drop shadow is displayed when non-themed display is used. + + + + + Gets the reference to ElementStyle object which describes visual appearance of the explorer group item title. + + + + + Gets the reference to ElementStyle object which describes visual appearance of the explorer group item title while mouse is over the title bar. + + + + + Gets or sets the item background style. + + + + + Gets or sets whether clicking the header of the control expands the item. + + + + + Applies the stock style to the object. + + + + + Applies new visual style to this the item and all of its sub-items. + + + + + Gets or sets expand button border color. + + + + + Gets or sets expand button back color. + + + + + Gets or sets expand button fore color. + + + + + Gets or sets hot expand button border color. + + + + + Gets or sets hot expand button back color. + + + + + Gets or sets hot expand button fore color. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Gets the rectangle of the panel item Button. + + + + + Specifies the image. + + + + + Indicates whether XP themed special group colors are used for drawing. + + + + + Gets or sets the margin in pixels between the edge of the container and the items contained inside of it. Default value is 4. + + + + + Gets or sets whether text on sub items is wrapped on new line if it cannot fit the space available. + + + + + Specifies the index of the image if ImageList is used. + + + + + Summary description for frmCustomize. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Defines the generic container item that is used by toolbar, menu bar and other control for item layout. + + + + + Occurs when new item is added to the container. + + + + + Returns copy of GenericItemContainer item + + + + + Paints this base container + + + + + Recalculate Size of this item + + + + + This must be called by child item to let the parent know that its size + has been changed. + + + + + Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. + + + + + Called when item owner has changed. + + + + + Return Sub Item at specified location + + + + + Set/Get does container wraps item into the new line when they exceed the container size + + + + + Specifies whether to display more items on popup menu or Bar. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether container is system container used internally by DotNetBar. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Gets or sets whether item container fills the container control completely. + + + + + Summary description for Hook. + + + + + Summary description for HTMLHelp. + + + + + Interface for designer-item integration. + + + + + Describes container support for setting the word-wrap behavior of it's sub-items. + + + + + Gets or sets whether sub items text will be word wrapped if it cannot fit the space allocated. + + + + + Summary description for ItemPaintArgs. + + + + + Holds reference to all unique items in the DotNetBar. + + + + + Provides context information for serialization. + + + + + Gets or sets reference to context XmlElement an item is being serialized to. + + + + + Gets or sets whether SerializeItem event handler has been defined and whether event should be fired. + + + + + Gets or sets whether DeserializeItem event handler has been defined and whether event should be fired. + + + + + Provides access to serializer. + + + + + + + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Represent an style for the item. + + + + + Default Constructor + + + + + Makes a copy of the ItemStyle object. + + New Instance of a ItemStyle object + + + + Paints the style. + + Graphics object + Target area + Text + Text area + Text Font + + + + Paints the style + + Graphics object + Target Area + Text + Text area + Text Font + Border Type + + + + Paints the style + + Graphics object + Target Area + + + + Paints the style text only. + + Graphics object + Text + Text area + Font + + + + Gets or sets whether text is drawn vertically by this style. + + + + + Gets or sets a background color or starting color for gradient background. + + + + + Gets or sets a background color or ending color for gradient background. + + + + + Gets or sets a text color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the style Font + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the corner type. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets or sets the border type. + + + + + Gets or sets dash style for single line border type. + + + + + Gets or sets the border sides that are displayed. + + + + + Gets or sets the border color. + + + + + Gets or sets the line tickness of single line border. + + + + + Gets or sets the left text margin. + + + + + Gets or sets the right text margin. + + + + + Gets or sets the top text margin. + + + + + Gets or sets the bottom text margin. + + + + + + ColorEx object that provides the transparency setting ability. + + + + + Constructor with Color Initialization. + + Color object + + + + Constructor with Color and Transparency Initialization. + + Color object + Transparency + + + + Returns the color object with the transparency set. + + Color object + + + + Gets or sets the Color object which does not include transparency. + + + + + Indicates the transparency for the color. + + + + + Specifies that color derived from system colors which is part of DotNetBar Color Scheme object is used. + Colors derived from system colors are automatically refreshed when + system colors are changed. + + + We recommend using this property to specify color rather than setting color directly. + Using colors that are derived from system colors improves uniform look of your application + and visual integration into user environment. + + + + + Returns empty ColorEx object. + + + + + Indicates whether object contain any color. + + + + + Gets or sets a background color or starting color for gradient background. + + + + + Gets or sets a background color or ending color for gradient background. + + + + + Gets or sets a text color. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the style Font + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Specifies alignment of the text. + + + + + Specifies alignment of the text. + + + + + Specifies how to trim characters when text does not fit. + + + + + Specifies background image. + + + + + Specifies background image position when container is larger than image. + + + + + Specifies the transparency of background image. + + + + + Gets or sets the corner type. + + + + + Gets or sets the diameter in pixels of the corner type rounded or diagonal. + + + + + Gets or sets the border type. + + + + + Gets or sets dash style for single line border type. + + + + + Gets or sets the border sides that are displayed. + + + + + Gets or sets the border color. + + + + + Gets or sets the line tickness of single line border. + + + + + Gets or sets the left text margin. + + + + + Gets or sets the right text margin. + + + + + Gets or sets the top text margin. + + + + + Gets or sets the bottom text margin. + + + + + ColorEx object that provides the transparency setting ability. + + + + + Gets or sets the Color object which does not include transparency. + + + + + Indicates the transparency for the color. + + + + + Specifies that color derived from system colors which is part of DotNetBar Color Scheme object is used. + Colors derived from system colors are automatically refreshed when + system colors are changed. + + + We recommend using this property to specify color rather than setting color directly. + Using colors that are derived from system colors improves uniform look of your application + and visual integration into user environment. + + + + + Summary description for LabelItem. + + + + + Called when ImageTextSpacing property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Reset property to its default value. + + + + + Gets whether property should be serialized. + + + + + Gets whether property should be serialized. + + + + + Resets the SingleLineColor property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies spacing between label image and text. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the type of the border drawn around the label. + + + + + Gets or sets the border sides that are displayed. Default value specifies border on all 4 sides. + + + + + Gets or sets the background color of the label. + + + + + Gets or sets the text color. + + + + + Gets or sets the border line color when border is single line. + + + + + Gets or sets the horizontal text alignment. + + + + + Gets or sets the text vertical alignment. + + + + + Gets or sets the label font. + + + + + Gets or sets the left padding in pixels. + + + + + Gets or sets the right padding in pixels. + + + + + Gets or sets the top padding in pixels. + + + + + Gets or sets the bottom padding in pixels. + + + + + Gets or sets the width of the label in pixels. + + + + + Gets or sets the height of the label. + + + + + Gets or sets whether the label is drawn as a divider label. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + + + + + Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font. + + + + + Gets or sets the text associated with this item. + + + + + Specifies the label icon. Icons support alpha blending. + + + + + Specifies label image. + + + + + Specifies the index of the image for the label if ImageList is used. + + + + + Gets/Sets the image position inside the label. + + + + + Gets or sets text-orientation. Default is horizontal. + + + + + Gets or sets how vertical text is rotated when TextOrientation = Vertical. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the color of the symbol. + + + + + Gets or sets whether label hosted in multi-line ItemContainer triggers new line switch after label is processed. + + + + + Contains static keys that are used to discover localized text for internal controls. + + + + + Navigation Pane collapse button tooltip text. + + + + + Navigation Pane expand button tooltip text. + + + + + Bar auto-hide button tooltip text. + + + + + Bar customize button tooltip text. + + + + + Bar close button tooltip text. + + + + + Bar maximize button tooltip text. + + + + + CustomizeItem tooltip text. + + + + + CustomizeItem Add/Remove text. + + + + + CustomizeItem text for button that opens Customize dialog. + + + + + CustomizeItem text for Reset command. + + + + + Tooltip text for system button that displays overflow items. + + + + + Text for Customize Dialog caption. + + + + + Text for Customize Dialog toolbars tab. + + + + + Text for Customize Dialog commands tab. + + + + + Text for Customize Dialog options tab. + + + + + Text for Customize Dialog keyboard button. + + + + + Text for Customize Dialog close button. + + + + + Text for Customize Dialog new toolbar button. + + + + + Text for Customize Dialog rename toolbar button. + + + + + Text for Customize Dialog delete toolbar button. + + + + + Text for Customize Dialog reset toolbar button. + + + + + Text for Customize Dialog label that gives following instructions to user: + To add a command to Bar select the category and drag the command out of this box to a Bar. + + + + + Text for Customize Dialog categories label. + + + + + Text for Customize Dialog toolbars label. + + + + + Text for Customize Dialog options tab Personalized Menus and Toolbars label. + + + + + Text for Customize Dialog options tab Aways show full menus check box. + + + + + Text for Customize Dialog options tab Show full menus after a short delay check box. + + + + + Text for Customize Dialog options tab 'Reset my usage data' command. + + + + + Text for Customize Dialog options tab 'Other' labe. + + + + + + + Text for Customize Dialog options tab 'Menu Animation:' label. + + + + + Text for Customize Dialog options tab Menu Animation combo box None option. + + + + + Text for Customize Dialog options tab Menu Animation combo box System Default option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Random option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Unfold option. + + + + + Text for Customize Dialog options tab Menu Animation combo box Slide option. + + + + + Text for Customize Dialog Confirm delete of bar message box. + + + + + Text for Reset command on customize item context menu. + + + + + Text for Delete item command on customize item context menu. + + + + + Text for Change Name item command on customize item context menu. + + + + + Text for Default Style item command on customize item context menu. + + + + + Text for Text Only item command on customize item context menu. + + + + + Text for Image And Text item command on customize item context menu. + + + + + Text for Begin Group item command on customize item context menu. + + + + + Text MdiSystemItem Minimize button. + + + + + Text MdiSystemItem Restore button. + + + + + Text MdiSystemItem Close button. + + + + + Text MdiSystemItem menu Restore command. + + + + + Text MdiSystemItem menu Move command. + + + + + Text MdiSystemItem menu Size command. + + + + + Text MdiSystemItem menu Minimize command. + + + + + Text MdiSystemItem menu Maximize command. + + + + + Text MdiSystemItem menu Close command. + + + + + Text MdiSystemItem menu Next command. + + + + + Text Navigation Bar Show More Buttons menu item. + + + + + Text Navigation Bar Show Fewer Buttons menu item. + + + + + Text Navigation Bar Options menu item. + + + + + Text for Move Up button on Navigation Bar Options dialog box. + + + + + Text for Move Down button on Navigation Bar Options dialog box. + + + + + Text for Reset button on Navigation Bar Options dialog box. + + + + + Text for OK button on Navigation Bar Options dialog box. + + + + + Text for Cancel button on Navigation Bar Options dialog box. + + + + + Text for Navigation Bar Options dialog box title. + + + + + Text for Navigation Bar Options label which is displayed above the list box which lists all the controls. + + + + + Text for Rename Toolbar dialog caption. + + + + + Text for New Toolbar dialog caption. + + + + + Text for Bar Name label on Bar edit dialog (either rename or new). + + + + + Text for OK Button on Bar edit dialog (either rename or new). + + + + + Text for Cancel Button on Bar edit dialog (either rename or new). + + + + + Text for Invalid Name Message on Bar edit dialog (either rename or new). + + + + + Text displayed on Color Picker drop down Theme Colors label. + + + + + Text displayed on Color Picker drop down Standard Colors label. + + + + + Text displayed on Color Picker drop down more colors menu item. + + + + + Text for the OK Button on Color Picker dialog. + + + + + Text for the Cancel Button on Color Picker dialog. + + + + + Text for the new color label on Color Picker dialog. + + + + + Text for the current color label on Color Picker dialog. + + + + + Text for the colors label on the standard colors tab. + + + + + Text for the colors label on the custom colors tab. + + + + + Text for the green component label on the custom colors tab. + + + + + Text for the blue component label on the custom colors tab. + + + + + Text for the red component label on the custom colors tab. + + + + + Text for the Color Model label on the custom colors tab. + + + + + Text for the RGB combo box item choice on the custom colors tab. + + + + + Text for the Standard tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Text for the Custom tab on color picker dialog. + + + + + Indicates the text for Today button displayed on the MonthCalendarItem control. + + + + + Indicates the text for Clear button displayed on the MonthCalendarItem control. + + + + + Indicates the text for MessageBoxEx Abort button. + + + + + Indicates the text for MessageBoxEx Cancel button. + + + + + Indicates the text for MessageBoxEx Close button. + + + + + Indicates the text for MessageBoxEx Continue button. + + + + + Indicates the text for MessageBoxEx Help button. + + + + + Indicates the text for MessageBoxEx Ignore button. + + + + + Indicates the text for MessageBoxEx No button. + + + + + Indicates the text for MessageBoxEx OK button. + + + + + Indicates the text for MessageBoxEx Retry button. + + + + + Indicates the text for MessageBoxEx Try Again button. + + + + + Indicates the text for MessageBoxEx Yes button. + + + + + Identifies Form system menu Restore item. + + + + + Identifies Form system menu Move item. + + + + + Identifies Form system menu Size item. + + + + + Identifies Form system menu Minimize item. + + + + + Identifies Form system menu Maximize item. + + + + + Identifies Form system menu Close item. + + + + + Identifies Time Selector OK button. + + + + + Identifies Time Selector Clear button. + + + + + Identifies Time Selector Hour Label. + + + + + Identifies Time Selector Minute Label. + + + + + Identifies 'Show all' Filter Expression label. + + + + + Identifies 'Show null' Filter Expression label. + + + + + Identifies 'Show not null' Filter Expression label. + + + + + Identifies 'Custom' Filter Expression label. + + + + + Identifies 'Enter expression' Filter text. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Apply' Filter Expression button label. + + + + + Identifies 'Ok' Filter Expression button label. + + + + + Identifies 'Cancel' Filter Expression button label. + + + + + Identifies 'Close' Filter Expression button label. + + + + + Identifies 'Clear' Filter Expression button label. + + + + + Identifies 'Clear' Filter Expression button label. + + + + + Identifies Filter DateTimePicked dialog 'Filter by relative date' text. + + + + + Identifies Filter DateTimePicker dialog 'Filter by specific date' text. + + + + + Identifies Filter DateTimePicker dialog 'Filter by date range' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Current Month' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Current Year' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 3 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 6 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 9 Month Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last Year' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 5 Year Period' text. + + + + + Identifies Filter DateTimePicker dialog, ByRelativeDate combo entry 'Last 10 Year Period' text. + + + + + Identifies Filter expression evaluation error 'Expression error' text. + + + + + Identifies Filter expression evaluation error 'Missing parenthesis' text. + + + + + Identifies Filter expression evaluation error 'Missing quote' text. + + + + + Identifies Filter expression evaluation error 'Invalid number of arguments' text. + + + + + Identifies Filter expression evaluation error 'Invalid argument' text. + + + + + Identifies Filter expression evaluation error 'Invalid 'Empty' operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid DateTime operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid bool operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid string operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid numeric operation' text. + + + + + Identifies Filter expression evaluation error 'Invalid logical evaluation' text. + + + + + Identifies Filter expression evaluation error 'Undefined User function' text. + + + + + Identifies custom filter dialog title 'Custom Filter' text. + + + + + Identifies custom filter dialog 'New Filter' text. + + + + + Identifies custom filter dialog 'New' button text. + + + + + Identifies custom filter dialog 'Delete' button text. + + + + + Identifies custom filter dialog 'Filter Name' text. + + + + + Identifies custom filter dialog 'Description' text. + + + + + Identifies custom filter dialog 'Show in FilterPopup' text. + + + + + Identifies custom filter dialog title 'Custom Filter' text. + + + + + Identifies the default GroupBy WaterMarkText. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Represents an item that displays log information in list container. + + + + + Initializes a new instance of the LogItem class. + + + + + + Creates new instance of LogItem and assigns the name to it. + + Item name. + + + + Creates new instance of LogItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the color of the control text body. + + + + + Gets or sets the color of the header text. + + + + + Gets or sets the image displayed on the log item. + + + + + Gets or sets the image position in relation to text. + + + + + Gets or sets the background color of the item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Summary description for MdiWindowListItem. + + + + + Initializes the item and connects it to the MDI form so it can process the events. You should not call this method directly since this process is + automatically managed by the item. + + + + + Initializes the item and connects it to the MDI form so it can process the events. You should not call this method directly since this process is + automatically managed by the item. + + + + + Refresh the MDI Child form Icons that are displayed on window list items. + + + + + Gets or sets whether the MDI Child Window Icons are displayed on items. + + + + + Gets or sets maximum form caption length that will be displayed on each item. If caption length exceeds given value ... characters are added. + + + + + Gets whether item has been connected to the MDI form so it can process its events. + + + + + Gets or sets whether flicker associated with switching maximized Mdi child forms is attempted to eliminate. You should set this property to false if you encounter any painting problems with your Mdi child forms. + + + + + Gets or sets whether numbered access keys are created for MDI Child window menu items for first 9 items. Access keys will start with number 1 and go through 9. Default value is false + which indicates that access keys are not created. + + + + + Summary description for PopupWindow. + + + + + Return Sub Item at specified location + + + + + Gets or sets whether Key Tips (accelerator keys) for items are displayed on top of them. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Gets or sets the item default accessibility action will be performed on. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Sets,Gets the side bar image structure. + + + + + Gets or sets the HotSubItem on the menu. This method is used internally by DotNetBar and should not be used in your application. + + + + + Summary description for MessageHandler. + + + + + Summary description for NativeFunctions. + + + + + Represents Outlook 2003 like Navigation Bar. + + + + + Default constructor. + + + + + Applies design-time defaults to control. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Saves current visual layout of navigation bar control to XML based file. + + File name to save layout to. + + + + Saves current visual layout of navigation bar control to XmlElement. + + XmlElement object that will act as a parent for the layout definition. Exact same element should be passed into the LoadLayout method to load the layout. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + File to load layout from. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + Parent XML element that is used to load layout from. Note that this must be the same element that was passed into the SaveLayout method. + + + + Occurs after Options dialog which is used to customize control's content has closed by user using OK button. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Gets or sets whether summary line is visible. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Returns items container. + + + + + Returns reference to currently checked button. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets the navigation bar definition string. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Indicates whether splitter on top of the navigation bar is visible. When activated splitter will let user change the height of the + control to show fewer or more buttons. It is recommended to have navigation bar docked to bottom (Dock=Bottom) to maintain + proper layout. + + + + + Container control for Navigation Bar. + + + + + Creates new instance of NavigationBarContainer. + + + + + Creates new instance of SideBarPanelItem and assigns the name to it. + + Item name. + + + + Creates new instance of SideBarPanelItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of SideBarPanelItem item. + + + + + Recalculates size of this container. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Must be called by any sub item that implements the image when image has changed + + + + + Occurs after an item has been added to the container. This procedure is called on both item being added and the parent of the item. To distinguish between those two states check the item parameter. + + When occurring on the parent this will hold the reference to the item that has been added. When occurring on the item being added this will be null (Nothing). + + + + Occurs after an item has been removed. + + Item being removed. + + + + Returns index of the first item that is displayed in summary line or -1 if there is no item displayed in summary line. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets whether summary line is visible. + + + + + Delegate for OptionGroupChanging event. + + + + + Delegate for PanelPopup events. + + + + + Represents Outlook 2003 style navigation pane control. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Applies any layout changes and repaint the control. + + + + + Returns Panel associated with button on navigation bar or null if panel cannot be found. + + Button on navigation bar. + + + + + Suspends normal layout logic. + + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Increases the size of the navigation bar if possible by showing more buttons on the top. + + + + + Reduces the size of the navigation bar if possible by showing fewer buttons on the top. + + + + + Saves current visual layout of navigation bar control to XML based file. + + File name to save layout to. + + + + Saves current visual layout of navigation bar control to XmlElement. + + XmlElement object that will act as a parent for the layout definition. Exact same element should be passed into the LoadLayout method to load the layout. + + + + Popup selected pane when control is collapsed. When control is collapsed (Expanded=false) currently selected pane is not visible + calling this method will popup selected pane and allow user access to it. Use PopupPaneVisible property + to check whether currently selected pane is displayed as popup. + + + + + Hides popup selected pane when control is collapsed and selected pane is displayed as popup. When control is collapsed (Expanded=false) + currently selected pane can be displayed as popup. Calling this method will hide the popup pane. Use PopupPaneVisible property + to check whether currently selected pane is displayed as popup. + + + + + Raises the PanelPopupClosed event. + + Provides event arguments. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + File to load layout from. + + + + Loads navigation bar layout that was saved using SaveLayout method. Note that this method must be called after all items are created and added to the control. + + Parent XML element that is used to load layout from. Note that this must be the same element that was passed into the SaveLayout method. + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Updates the color scheme on child panels to reflect the style of the NavigationBar control. Calling this method is necessary only if you manually + change the NavigationBar.ColorScheme property. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Occurs when Item is clicked. + + + + + Occurs when currently selected panel is about to change. + + + + + Occurs when control is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs before panel is displayed on popup when control is collapsed. You can use this event to modify default + size of the popup panel or cancel the popup of the panel. + + + + + Occurs after panel is displayed on popup. + + + + + Occurs after panel displayed on popup is closed. + + + + + Occurs before Expanded property is changed. You can cancel change of this property by setting Cancel=true on the event arguments. + + + + + Occurs after Expanded property has changed. You can handle ExpandedChanging event and have opportunity to cancel the change. + + + + + Occurs after Options dialog which is used to customize control's content has closed by user using OK button. + + + + + Returns the width of the expanded control if control is currently collapsed. + + + + + Returns collection containing buttons on navigation bar. + + + + + Gets or sets the height of the navigation bar part of the navigation pane control. + Navigation Bar height is automatically calculated based on the content. + Setting this property suggests desired height of the navigation bar but the actual height will be + calculated to ensure that complete buttons are visible so suggested and actual height might differ. + + + + + Returns reference to internal NavigationBar control. + + + + + Gets or sets size of the image that will be use to resize images to when button button is on the bottom summary line of navigation bar and AutoSizeButtonImage=true. + + + + + Gets or sets whether Configure Buttons button is visible. + + + + + Gets or sets whether Show More Buttons and Show Fewer Buttons menu items are visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Options menu item is visible on Configure buttons menu. + + + + + Gets or sets whether Navigation Pane Add/Remove Buttons menu item is visible on Configure buttons menu. + + + + + Returns reference to currently checked button. + + + + + Returns reference to currently selected panel. Panels are automatically switched when buttons are checked. + + + + + ImageList for images used on Items. + + + + + Returns reference to the PanelEx that is used to display title. + + + + + Gets or sets the padding in pixels at the top portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets the padding in pixels for bottom portion of the item. Height of each item will be increased by padding amount. + + + + + Gets or sets whether images are automatically resized to size specified in ImageSizeSummaryLine when button is on the bottom summary line of navigation bar. + + + + + Gets or sets the navigation bar definition string. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Gets or sets animation time in milliseconds when control is expanded or collapsed. Default value is 100 miliseconds. You can set this to 0 (zero) to disable animation. + + + + + Gets or sets whether navigation pane can be collapsed. Default value is false. When set to true + expand/collapse button will be displayed in title so control can be reduced in size. + + + + + Gets or sets alignment of the expand button inside of title bar. + + + + + Gets or sets whether navigation pane is expanded. Default value is true. + When control is collapsed it is reduced in size so it consumes less space. + + + + + Gets the reference to the inner panel displaying Navigation Pane vertical text created when control is collapsed. + + + + + Gets or sets whether selected pane is displayed as popup when control is collapsed (Expanded=false). Using + navigation pane button that is displayed when control is collapsed user can popup or close currently selected pane without + expanding the control. You can use this property to do same from code as well as check whether selected pane is displayed as + popup. Note that control must be collapsed (Expanded=false) in order for this property to have any effect. + + + + + Gets/Sets the visual style for the control. Default style is Office 2003. + + + + + Represents event arguments for PanelChanging event. + + + + + Set to true to cancel changing of the panel. + + + + + Panel that will be selected if operation is not cancelled. + + + + + Panel that is currently selected and which will be de-selected if operation is not cancelled. + + + + + Default constructor. + + + + + Represents event arguments for BeforePanelPopup event. + + + + + Set to true to cancel popup of the panel. + + + + + Size and position of popup. You can modify this memeber to affect size and position of popup. + + + + + Default constructor. + + + + + Represents Panel on Navigation Pane control. + + + + + Gets or sets button associated with the pane on the panel when hosted on NavigationPane control. + + + + + Summary description for NavPaneOptions. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Updates position of the title bar button to reflect any changes to the button that influence size of the button. + + + + + Occurs when Expanded/Collapse button is clicked. + + + + + Gets or sets whether expand button is visible or not. Default value is true. + + + + + Gets or sets alignment of the button. + + + + + Gets or sets whether text markup if it occupies less space than control provides uses the Style Alignment and LineAlignment properties to align the markup inside of the control. Default value is true. + + + + + Use as a popup container for DotNetBar objects. + + + + + Summary description for PopupContainer. + + + + + Summary description for PopupShadow. + + + + + Represents a progress bar item. + + + + + Creates new instance of ProgressBarItem. + + + + + Creates new instance of ProgressBarItem and assigns the name to it. + + Item name. + + + + Creates new instance of ProgressBarItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Copies the ProgressBarItem specific properties to new instance of the item. + + New ProgressBarItem instance. + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Overriden. Recalculates the size of the item. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Advances the current position of the progress bar by the amount of the Step property. + + + + + Advances the current position of the progress bar by the specified amount. + + The amount by which to increment the progress bar's current position. + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Gets whether ChunkColor property should be serialized. + + + + + Resets the ChunkColor property to its default value. + + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Gets or sets the item background style. + + + + + Specifies the background style of the item. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the progress bar. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the progress bar. + + + + + Gets or sets whether the text inside the progress bar is displayed. + + + + + Gets or sets the width of the item in pixels. 0 value indicates the auto-sizing item based on the text contained in it. + + + + + Gets or sets the height of the label. 0 value indicates the auto-sizing item based on the text height. + + + + + Gets or sets the color of the progress chunk. + + + + + Gets or sets the target gradient color of the progress chunk. + + + + + Gets or sets the gradient angle of the progress chunk. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates whether item was recently used. + + + + + Gets or sets the type of progress bar used to indicate progress. The Standard style displays the progress based on Minimum, Maximum and current Value. + The Marquee type is automatically moving progress bar that is used to indicate an ongoing operation for which the actual duration cannot be estimated. + + + + + Gets or sets the marquee animation speed in milliseconds. + + + + + Gets or sets the predefined color state table for progress bar. Color specified applies to items with Office 2007 style only. It does not have + any effect on other styles. You can use ColorTable to indicate the state of the operation that Progress Bar is tracking. Default value is eProgressBarItemColor.Normal. + + + + + Summary description for RemindForm. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents color table for Bar objects in various states. + + + + + Gets or sets the colors for top part of toolbar background. + + + + + Gets or sets the colors for bottom part of toolbar background. + + + + + Gets or sets the color of the bottom border. + + + + + Gets or sets the popup toolbar background color. + + + + + Gets or sets the color of popup toolbar border. + + + + + Gets or sets the status bar top border color. + + + + + Gets or sets the status bar top border light color. + + + + + Gets or sets the alternative background colors for the status bar. + + + + + Represents color table for ButtonItem object. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the color table applied for button in default state. + + + + + Gets or sets the color table applied when mouse is over the button. + + + + + Gets or sets the color table applied when mouse is over the buttons inactive split part. Applies to split button appearance only. + + + + + Gets or sets the color table applied when mouse is pressed over the button. + + + + + Gets or sets the color table applied when mouse is pressed over the button. + + + + + Gets or sets the color table applied when button is expanded. + + + + + Gets or sets the color table applied when cursor is over button on a menu. + + + + + Represents typed collection of Office2007ButtonItemColorTable type. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007ButtonItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Represents a color table for ButtonItem in certain state like but not limited to mouse over, checked or pressed. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the outer border width. Default is 1. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets top part background colors. + + + + + Gets or sets highlight colors for the top background part. + + + + + Gets or sets bottom part background colors. + + + + + Gets or sets highlight colors for the bottom background part. + + + + + Gets or sets the split border colors that divides button text and image from expand part of the button. + + + + + Gets or sets the split border light colors that divides button text and image from expand part of the button. + + + + + Gets or sets the text color. + + + + + Gets or sets the background color of the expand sign. + + + + + Gets or sets the outline light color of the expand sign. + + + + + Gets or sets the single gradient background for the button. When specified it is used instead of TopBackground and BottomBackground for rendering. + + + + + Represent the color table for the CheckBoxItem. + + + + + Gets or sets the colors for the item in default state. + + + + + Gets or sets the colors for the item when mouse is over the item. + + + + + Gets or sets the colors for the item when mouse is pressed over the item. + + + + + Gets or sets the colors for the item when item is disabled. + + + + + Defines the colors for the single CheckBoxItem state. + + + + + Gets or sets the background colors of the check box. + + + + + Gets or sets the color of the check border. + + + + + Gets or sets the inner color of check box border. + + + + + Gets or sets the inner background color of check box. + + + + + Gets or sets the color of the check sign that is drawn when item is checked. + + + + + Gets or sets the text color. + + + + + Defines color table for ColorItem. + + + + + Gets or sets the border that is drawn around each individual color item or color item group. + + + + + Gets or sets the inner mouse over color. + + + + + Gets or sets the outer mouse over color. + + + + + Represents the painter for ColorItem in Office 2007 style + + + + + Gets or sets color table used by renderer. + + + + + Defines the color scheme type for the Office2007ColorTable. + + + + + Blue color scheme. + + + + + Black color scheme. + + + + + Silver color scheme. + + + + + Windows Vista Glass inspired color scheme. + + + + + Defines the delegate which retrieves the color for specific integer value. + + color represented as integer. + Reference to Color object. + + + + Defines contextual label colors. + + + + + Initializes a new instance of the LabelColors structure. + + + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines the color table for the combo box. + + + + + Gets or sets the color for combo box in default state. + + + + + Gets or sets the color for standalone combo box in default state. Standalone combo box is a control not used by ComboBoxItem. + + + + + Gets or sets the colors when mouse is over the control. + + + + + Gets or sets the colors when control is dropped down. + + + + + Defines the combo box colors for a particular state. + + + + + Gets or sets the border color. + + + + + Gets or sets the background color. + + + + + Gets or sets the outer expand button border. + + + + + Gets or sets the inner expand button border. + + + + + Gets or sets the background color of the expand button. + + + + + Gets or sets the foreground color of the expand button. + + + + + Defines color table for the Office 2007 style DataGridView control. + + + + + Gets or sets grid background color. + + + + + Gets or sets default cell color. + + + + + Gets or sets default cell text color. + + + + + Gets or sets the background color for the column headers in normal state. + + + + + Gets or sets the normal column text color. + + + + + Gets or sets the column header border color. + + + + + Gets or sets the background color for the column headers in mouse over state. + + + + + Gets or sets the column header border color when mouse is over the column. + + + + + Gets or sets the selected column header text color. + + + + + Gets or sets the background color for the column headers in selected state. + + + + + Gets or sets the border color for the column headers in selected state. + + + + + Gets or sets the background color for the column headers in selected mouse over state. + + + + + Gets or sets the border color for the column headers in selected mouse over state. + + + + + Gets or sets the background color for the column headers in pressed state. + + + + + Gets or sets the border color for the column headers in pressed state. + + + + + Gets or sets the column header foreground color. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the background color for row marker background. + + + + + Gets or sets the border color for row marker. + + + + + Gets or sets the color of the grid lines. + + + + + Gets or sets the background color of selector cell usually located in top-left corner. + + + + + Gets or sets the border color of selector cell usually located in top-left corner. + + + + + Gets or sets the light border color of selector cell usually located in top-left corner. + + + + + Gets or sets the dark border color of selector cell usually located in top-left corner. + + + + + Gets or sets the sign color of selector cell usually located in top-left corner. + + + + + Gets or sets the background color of selector cell usually located in top-left corner. + + + + + Gets or sets the border color of selector cell usually located in top-left corner. + + + + + Gets or sets the light border color of selector cell usually located in top-left corner. + + + + + Gets or sets the dark border color of selector cell usually located in top-left corner. + + + + + Gets or sets the sign color of selector cell usually located in top-left corner. + + + + + Defines color table for the Dialog Launcher button. + + + + + Gets or sets the colors for the default state. + + + + + Gets or sets the colors for the mouse over state. + + + + + Gets or sets the colors for the pressed state. + + + + + Defines the color table for dialog launcher state. + + + + + Gets or sets the color of dialog launcher symbol. + + + + + Gets or sets the shade color of dialog launcher symbol. + + + + + Gets or sets the background color for the top part of the element. + + + + + Gets or sets the background color for the bottom part of the element. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Defines the color table for all states of Office 2007 style form caption. + + + + + Gets or sets the color table for caption in active state. + + + + + Gets or sets the color table for caption in inactive state. + + + + + Gets or sets the background color of the form. + + + + + Gets or sets the text color of the form. + + + + + Gets or sets the MDI Client Background image. + + + + + Defines color table for the Office 2007 style Form caption color state. + + + + + Gets or sets the colors for the top part of the background. + + + + + Gets or sets the colors for the bottom part of the background. + + + + + Gets or sets the array of colors used to draw the border that separates the form caption and the form content. Applies only to the Office2007Form rendering. + + + + + Gets or sets the color of caption text. + + + + + Gets or sets the color of caption extra text that is appended to the caption. + + + + + Gets or sets the array of colors that represents the border colors. Outer border is at index 0. + + + + + Represents the color table used by the Gallery container. + + + + + Gets or sets the background color of the Gallery Group label when gallery is displayed on popup. + + + + + Gets or sets the text color of the Gallery Group label when gallery is displayed on popup. + + + + + Gets or sets the border color of the Gallery Group label when gallery is displayed on popup. + + + + + Represents color table for ItemContainer object with BeginGroup set to true. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the dark color of item devider for items inside of the ItemContainer. + + + + + Gets or sets the light color of item devider for items inside of the ItemContainer. + + + + + Represents the color table for key tips. + + + + + Gets or sets KeyTip Text color. + + + + + Gets or sets KeyTip border color. + + + + + Gets or sets KeyTip Background color. + + + + + Represents color table for ListViewEx control. + + + + + Gets or sets the background color of the columns. + + + + + Gets or sets the color of the column separator. + + + + + Gets or sets the color of the column text. + + + + + Gets or sets the color of the control border. + + + + + Gets or sets the background colors for the selected item. + + + + + Gets or sets the color of the selected item border that is draw on top and bottom of the selection. + + + + + Gets or sets the text color for selected item. + + + + + Defines the color table for the menus. + + + + + Gets or sets the menu background colors. + + + + + Gets or sets the menu side background colors. + + + + + Gets or sets the menu side background colors for the items that were not recently used. + + + + + Gets or sets the menu border background colors. + + + + + Gets or sets the menu side border. + + + + + Gets or sets the light menu side border. + + + + + Gets or sets the background color blend for the special file menu background. + + + + + Gets or sets the two column container border color. + + + + + Gets or sets the two column container light border color. + + + + + Gets or sets the background color of first file column. + + + + + Gets or sets the border color of first file column. + + + + + Gets or sets the background color of first file column. + + + + + Gets or sets the background color blend for the bottom container on file menu. + + + + + Defines the color table for the NavigationPane control. + + + + + Gets or sets the background color collection blend for the button background. + + + + + Gets or sets color table used by renderer. + + + + + Defines color table for the Office 2007 style ProgressBarItem. + + + + + Gets or sets the background color collection blend for the item background. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the color collection blend for the current progress part of the item. + + + + + Gets or sets the color collection blend for overlay for the current progress of the item. + + + + + Gets or sets the color collection blend of shadow for the current progress of the item. + + + + + Defines abstract class for the ProgressBarItem painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines painter for the Office 2007 style QAT Customize Item. + + + + + Defines base class for QAT customize item painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines Office 2007 style QAT painter. + + + + + Defines base class for QAT overflow item painter. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the quick access toolbar in all states. + + + + + Gets or sets the colors for the quick access toolbar background when hosted in ribbon control caption and form is active + or the background colors when toolbar is hosted below the ribbon control. + + + + + Gets or sets the colors for the quick access toolbar background when hosted in ribbon control caption and form is inactive + + + + + Gets or sets the colors for the quick access toolbar background when positioned below the ribbon bar. + + + + + Gets or sets the background color of Customize Quick Access Toolbar menu label displayed on customize quick access toolbar menu. + + + + + Gets or sets the text color of Customize Quick Access Toolbar menu label displayed on customize quick access toolbar menu. + + + + + Defines the color table for the Quick Access toolbar. + + + + + Gets or sets the colors of the top background. + + + + + Gets or sets the colors of the bottom background. + + + + + Gets or sets the outer border color. + + + + + Gets or sets the middle border color. + + + + + Gets or sets the inner border color. + + + + + Gets or sets the border when Windows Vista Glass is enabled. + + + + + Represents Office 2007 Control renderer. + + + + + Represents bases class that defines a renderer. + + + + + Raises RenderKeyTips event. + + Provides context information. + + + + Draws KeyTip for an object. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderKeyTips method so events can occur. + + Provides context information. + + + + Raises RenderRibbonTabGroup event. + + Provides context information. + + + + Draws ribbon tab group. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabGroup method so events can occur. + + Provides context information. + + + + Raises RenderItemContainer event. + + Provides context information. + + + + Draws the separator for an item inside of item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainerSeparator method so events can occur. + + Provides context information. + + + + Raises RenderItemContainer event. + + Provides context information. + + + + Draws item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainer method so events can occur. + + Provides context information. + + + + Raises RenderButtonItem event. + + Provides context information. + + + + Draws ButtonItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonTabItem event. + + Provides context information. + + + + Draws RibbonTabItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabItem method so events can occur. + + Provides context information. + + + + Raises RenderToolbarBackground event. + + Provides context information. + + + + Draws docked or floating toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderPopupToolbarBackground event. + + Provides context information. + + + + Draws popup toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderRibbonDialogLauncher event. + + Provides context information. + + + + Draws ribbon bar dialog launcher button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonDialogLauncher method so events can occur. + + Provides context information. + + + + Raises RenderColorItem event event. + + Provides context information. + + + + Draws ColorItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColorItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonControlBackground event event. + + Provides context information. + + + + Draws the background of the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonControlBackground method so events can occur. + + Provides context information. + + + + Raises RenderSystemCaptionItem event event. + + Provides context information. + + + + Draws the SystemCaptionItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSystemCaptionItem method so events can occur. + + Provides context information. + + + + Raises RenderRibbonFormCaptionText event event. + + Provides context information. + + + + Draws the form caption text for the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonFormCaptionText method so events can occur. + + Provides context information. + + + + Raises RenderQuickAccessToolbarBackground event event. + + Provides context information. + + + + Draws the background of Quick Access Toolbar on Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQuickAccessToolbarBackground method so events can occur. + + Provides context information. + + + + Raises RenderMdiSystemItem event. + + Provides context information. + + + + Draws the MdiSystemItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderMdiSystemItem method so events can occur. + + Provides context information. + + + + Raises RenderFormCaptionBackground event. + + Provides context information. + + + + Draws the form caption background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderFormCaptionBackground method so events can occur. + + Provides context information. + + + + Raises RenderQatOverflowItem event. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Raises RenderQatCustomizeItem event. + + Provides context information. + + + + Draws the Quick Access Toolbar Customize Item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatCustomizeItem method so events can occur. + + Provides context information. + + + + Raises RenderCheckBoxItem event. + + Provides context information. + + + + Draws the CheckBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCheckBoxItem method so events can occur. + + Provides context information. + + + + Raises RenderCheckBoxItem event. + + Provides context information. + + + + Draws the ProgressBarItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderProgressBarItem method so events can occur. + + Provides context information. + + + + Raises RenderNavPaneButtonBackground event. + + Provides context information. + + + + Draws the Navigation Pane button background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNavPaneButtonBackground method so events can occur. + + Provides context information. + + + + Raises RenderSliderItem event. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Raises RenderSideBar event. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBar method so events can occur. + + Provides context information. + + + + Raises RenderSideBarPanelItem event. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBarPanelItem method so events can occur. + + Provides context information. + + + + Raises RenderCrumbBarItemView event. + + Provides context information. + + + + Draws CrumbBarItemView. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarItemView method so events can occur. + + Provides context information. + + + + Raises RenderCrumbBarOverflowItem event. + + Provides context information. + + + + Draws CrumbBarOverflowButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarOverflowItem method so events can occur. + + Provides context information. + + + + Raises RenderSwitchButton event. + + Provides context information. + + + + Draws the Switch Button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSwitchButton method so events can occur. + + Provides context information. + + + + Raises RenderRangeSliderItem event. + + Provides context information. + + + + Draws the Range Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRangeSliderItem method so events can occur. + + Provides context information. + + + + Raises RenderStepItem event. + + Provides context information. + + + + Draws the Step item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderStepItem method so events can occur. + + Provides context information. + + + + Raises RenderListBoxItem event. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Raises RenderListBoxItem event. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Occurs when KeyTip is rendered. + + + + + Occurs when ribbon tab group is rendered. + + + + + Occurs when ItemContainer is rendered. + + + + + Occurs when separator is drawn for an item inside of ItemContainer. + + + + + Occurs when ButtonItem is rendered. + + + + + Occurs when RibbonTabItem is rendered. + + + + + Occurs when docked or floating toolbar is rendered. + + + + + Occurs when popup toolbar is rendered. + + + + + Occurs when dialog launcher button on ribbon bar is rendered. + + + + + Occurs when Ribbon Control background is rendered. + + + + + Occurs when form caption text on ribbon control is rendered. + + + + + Occurs when Quick Access Toolbar background is rendered. + + + + + Occurs when ColorItem is rendered. + + + + + Occurs when SystemCaptionItem is rendered. + + + + + Occurs when MdiSystemItem is rendered. + + + + + Occurs when form caption is background is being rendered. + + + + + Occurs when quick access toolbar overflow item is being rendered. + + + + + Occurs when quick access toolbar customize item is being rendered. + + + + + Occurs when CheckBoxItem is being rendered. + + + + + Occurs when ProgressBarItem is being rendered. + + + + + Occurs when Navigation pane button background is being rendered. + + + + + Occurs when Slider item is being rendered. + + + + + Occurs when Range Slider item is being rendered. + + + + + Occurs when SideBar control is being rendered. + + + + + Occurs when SideBarPanelItem control is being rendered. + + + + + Occurs when CrumbBarItemView is rendered. + + + + + Occurs when CrumbBarOverflowButton is rendered. + + + + + Occurs when Slider item is being rendered. + + + + + Occurs when StepItem is being rendered. + + + + + Occurs when ListBoxItem is being rendered. + + + + + Occurs when SideNavItem is being rendered. + + + + + Draws KeyTip for an object. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderKeyTips method so events can occur. + + Provides context information. + + + + Draws ribbon tab group. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabGroup method so events can occur. + + Provides context information. + + + + Draws item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainer method so events can occur. + + Provides context information. + + + + Draws the separator for an item inside of item container. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderItemContainerSeparator method so events can occur. + + Provides context information. + + + + Draws ButtonItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws RibbonTabItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonTabItem method so events can occur. + + Provides context information. + + + + Draws popup toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Draws docked or floating toolbar background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderToolbarBackground method so events can occur. + + Provides context information. + + + + Draws floating toolbar background. + + Provides context information. + + + + Draws ribbon bar dialog launcher button. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderPopupToolbarBackground method so events can occur. + + Provides context information. + + + + Draws ColorItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderColorItem method so events can occur. + + Provides context information. + + + + Draws the background of the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonControlBackground method so events can occur. + + Provides context information. + + + + Draws the form caption text for the Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderRibbonFormCaptionText method so events can occur. + + Provides context information. + + + + Draws the background of Quick Access Toolbar on Ribbon Control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQuickAccessToolbarBackground method so events can occur. + + Provides context information. + + + + Draws the SystemCaptionItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSystemCaptionItem method so events can occur. + + Provides context information. + + + + Draws the MdiSystemItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderMdiSystemItem method so events can occur. + + Provides context information. + + + + Draws the form caption background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderFormCaptionBackground method so events can occur. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Draws the Quick Access Toolbar Overflow item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderQatOverflowItem method so events can occur. + + Provides context information. + + + + Draws the ProgressBarItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderProgressBarItem method so events can occur. + + Provides context information. + + + + Draws the Navigation Pane button background. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderNavPaneButtonBackground method so events can occur. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBar method so events can occur. + + Provides context information. + + + + Draws the SideBar control. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSideBarPanelItem method so events can occur. + + Provides context information. + + + + Draws CrumbBarItemView. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws CrumbBarOverflowButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderCrumbBarOverflowItem method so events can occur. + + Provides context information. + + + + Draws SwitchButton. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderButtonItem method so events can occur. + + Provides context information. + + + + Draws the Slider item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderSliderItem method so events can occur. + + Provides context information. + + + + Draws the Step item. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderStepItem method so events can occur. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Draws the ListBoxItem. If you need to provide custom rendering this is the method that you should override in your custom rendered. If you + do not want default rendering to occur do not call the base implementation. You can call OnRenderListBoxItem method so events can occur. + + Provides context information. + + + + Occurs when color table is changed by setting the ColorTable property on the renderer. + + + + + Gets or sets color table used by renderer. + + + + + Defines color table for RibbonBar in various states. + + + + + Gets or sets the colors for the default RibbonBar state. + + + + + Gets or sets the colors for RibbonBar when mouse is over the control. + + + + + Gets or sets the colors for RibbonBar when ribbon bar is in overflow state and expanded to show all the items. + + + + + Represents the color table of RibbonBar for Office 2007 style. Default values represent blue Luna theme. + + + + + Gets or sets the height in pixels of top background part. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the title background colors. + + + + + Gets or sets the color of title text. + + + + + Defines color table for Ribbon Control. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the colors for the tabs background area. + + + + + Gets or sets the colors for the tabs background area when Windows Glass is enabled. + + + + + Gets or sets the color of border which is drawn above the tab. + + + + + Gets or sets the light color of border which is drawn above the tab. + + + + + Gets or sets the round corner size for the ribbon control parts. + + + + + Gets or sets the height in pixels of top background part. + + + + + Gets or sets the top background colors. + + + + + Gets or sets the bottom background colors. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control. + Note that image assigned to all StartButton properties must be the same size. The size for the button will be determined by image + size set on this property. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control when mouse is over the button. + + + + + Gets or sets the background image used on Office 2007 style start button displayed in top-left corner of ribbon control when button is pressed. + + + + + Represents painter for Office 2007 style ribbon overflow button. + + + + + Defines the color table for the Ribbon Tab Group. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the background color. + + + + + Gets or sets the background highlight colors. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color + + + + + Collection for Office2007RibbonTabGroupColorTable type. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007RibbonTabItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Defines the color table for RibbonTabItem states. + + + + + Gets or sets the name of the color table. + + + + + Gets or sets the default tab colors. + + + + + Gets or sets the selected tab colors. + + + + + Gets or sets the selected tab colors when mouse is over the tab. + + + + + Gets or sets the colors when mouse is over the tab but tab is not selected. + + + + + Gets or sets the round corner size for the top part of the ribbon tab item. + + + + + Defines collection for Office2007RibbonTabItemColorTable items. + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Returns whether collection contains object with specified name. + + Name of the object to look for + true if object with given name is part of the collection otherwise false + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the Office2007ButtonItemColorTable array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's index. + + + + + Defines the colors for the RibbonTabItem state like but not limited to selected, mouse over etc. + + + + + Gets or sets the colors for the outer border. + + + + + Gets or sets the colors for the inner border. + + + + + Gets or sets the background colors. + + + + + Gets or sets the background highlight colors. + + + + + Gets or sets the text color. + + + + + Gets or sets the text color when rendered on Windows Glass. + + + + + Defines the colors for the scroll bar control. + + + + + Gets or sets the colors for the control default state. + + + + + Gets or sets the colors for the control when mouse is pressed over the control. + + + + + Gets or sets the colors for the control when mouse is over the control but not over an active part of the control like scroll buttons. + + + + + Gets or sets the colors for the control when mouse is over the active part of the control like scroll buttons. + + + + + Gets or sets the colors for the control when control is disabled. + + + + + Represents the color table for the Scroll bar in single state. + + + + + Gets or sets the outer border color for the scroll bar thumb. + + + + + Gets or sets the inner border color for the scroll bar thumb. + + + + + Gets or sets the thumb background color blend collection. + + + + + Gets or sets the directional sign background color for the scroll bar thumb. + + + + + Gets or sets the outer border color for the scroll bar track button. + + + + + Gets or sets the inner border color for the scroll bar track button. + + + + + Gets or sets the track background color blend collection. + + + + + Gets or sets the background color for the track signs. + + + + + Gets or sets the background colors for the entire control. + + + + + Gets or sets the border colors for the entire control. + + + + + Represents the color table for Office 2007 Style Side Bar Control. + + + + + Gets or sets the background color of the control. + + + + + Gets or sets the control border color. + + + + + Gets or sets the color of SideBarPanelItem text. + + + + + Gets or sets the color table for SideBarPanelItem in default state. + + + + + Gets or sets the color table for SideBarPanelItem in mouse over state. + + + + + Gets or sets the color table for SideBarPanelItem in expanded state. + + + + + Gets or sets the color table for SideBarPanelItem when mouse button is pressed on the item. + + + + + Gets or sets color table used by renderer. + + + + + Populates Office 2007 Color Table with Silver color scheme + + + + + Initializes ColorScheme object with the black color scheme. + + ColorScheme object to initialize. + + + + Defines the color table for the slider item. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Gets or sets the disabled colors. + + + + + Gets or sets the optional color table for Thumb part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Gets or sets the optional color table for Increase button part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Gets or sets the optional color table for Decrease button part of the slider. When set to null default values from Office2007SliderColorTable are used. + + + + + Defines set of color tables for single slider part. + + + + + Gets or sets the default state colors. + + + + + Gets or sets the mouse over state colors. + + + + + Gets or sets the mouse pressed colors. + + + + + Renders the Slider items. + + + + + Gets or sets color table used by renderer. + + + + + Defines the color table for the Slider Item in single state. + + + + + Gets or sets the part background colors. + + + + + Gets or sets the part border color + + + + + Gets or sets the part border light color + + + + + Gets or sets the part foreground color. + + + + + Gets or sets the part foreground light color. + + + + + Gets or sets the track line color. + + + + + Gets or sets the track line light color. + + + + + Gets or sets the track label color. + + + + + Gets or sets the track label color when on Slider control. + + + + + Defines the color table for the SuperTooltip. + + + + + Gets or sets the background colors. + + + + + Gets or sets the text color. + + + + + Represents color table for Office 2007 style system button displayed in form caption. + + + + + Gets or sets the color table of default button state. + + + + + Gets or sets the color table of button state when mouse is over the button. + + + + + Gets or sets the color table of button state when mouse is pressed over the button. + + + + + Represents color table for single state of Office 2007 style system button displayed in form caption. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets top part background colors. + + + + + Gets or sets bottom part background colors. + + + + + Gets or sets highlight colors for the top background part. + + + + + Gets or sets highlight colors for the bottom background part. + + + + + Gets or sets the foreground color for the button. + + + + + Gets or sets the dark shading color for the foreground. + + + + + Gets or sets the light shading color for the foreground. + + + + + Represents the color table for the tab control. + + + + + Gets or sets the default tab item colors. + + + + + Gets or sets the mouse over tab item colors. + + + + + Gets or sets the selected tab item colors. + + + + + Gets or sets the color of the tab background colors. + + + + + Gets or sets the tab-strip background image. + + + + + Gets or sets the color of the tab panel background colors. + + + + + Gets or sets the color of tab panel border. + + + + + Represents the color table for the tab item. + + + + + Gets or sets top part background colors. + + + + + Gets or sets the bottom part background colors. + + + + + Gets or sets the outer border colors. + + + + + Gets or sets the inner border colors. + + + + + Gets or sets the text colors. + + + + + Paints background of docked bar. + + Context information + + + + Paints background of floating bar. + + Context information + + + + Paints background of popup bar. + + Context information + + + + Summary description for ButtonItemPainterHelper. + + + + + Provides data for ButtonItem rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Defines container for ribbon caption layout and quick access toolbar customization and overflow. + + + + + Summary description for DesignTimeProviderContainer. + + + + + + + + Returns insertion index for an item taking in account any system items that are at the end of the collection. + + Parent item + Returns the index at which an item should be inserted + + + + Defines delegate for RenderKeyTips event. + + + + + Defines delegate for RenderRibbonTabGroup event. + + + + + Defines delegate for RenderItemContainer event. + + + + + Defines delegate for RenderItemContainerSeparator event. + + + + + Defines delegate for ButtonItem rendering events. + + + + + Defines delegate for RibbonTabItem rendering events. + + + + + Defines delegate for toolbar rendering events. + + + + + Defines delegate for Rendering dialog launcher button rendering events. + + + + + Defines delegate for ColorItem rendering events. + + + + + Defines delegate for RibbonControl rendering events. + + + + + Defines delegate for SystemCaptionItem rendering events. + + + + + Defines delegate for MdiSystemItem rendering events. + + + + + Defines delegate for RenderFormCaptionBackground rendering events. + + + + + Defines delegate for CustomizeMenuPopup events. + + + + + Defines delegate for the Quick Access Overflow item rendering events. + + + + + Defines delegate for the Quick Access Customize item rendering events. + + + + + Defines delegate for the Quick Access Customization dialog events. + + + + + Defines delegate for the CheckBoxItem rendering events. + + + + + Defines delegate for the ProgressBarItem rendering events. + + + + + Defines delegate for the Navigation Pane rendering events. + + + + + Defines delegate for the BeforeRibbonPanelPopupClose event. + + + + + Defines delegate for the Slider item rendering events. + + + + + Defines delegate for the SideBar control rendering event. + + + + + Defines delegate for the SideBarPanelItem control rendering event. + + + + + Defines delegate for the SwitchButtonItem control rendering event. + + + + + Defines delegate for the Slider item rendering events. + + + + + Defines delegate for the StepItem rendering events. + + + + + Defines delegate for the ListBoxItem rendering events. + + + + + Defines delegate for the SideNavItem rendering events. + + + + + Represents the class that provides Office 2007 style Gallery container with drop-down ability. + + + + + Creates new instance of the class + + + + + Returns copy of the item. + + + + + Copies the ButtonItem specific properties to new instance of the item. + + New ButtonItem instance. + + + + Returns the client rectangle which is DisplayRectangle excluding scroll-bar bounds + + + + + + Invokes GalleryPopupOpen event. + + + + + + Invokes GalleryPopupShowing event. + + + + + + Invokes GalleryPopupClose event. + + + + + + Invokes GalleryPopupFinalized event. + + + + + + Gets whether DefaultSize property is serialized by Windows Forms designer based on its current value. + + + + + Resets DefaultSize property to its default value. + + + + + Gets whether PopupGallerySize property is serialized by Windows Forms designer based on its current value. + + + + + Resets PopupGallerySize property to its default value. + + + + + Scrolls the gallery if necessary to ensures that item is visible. + + Reference to the items that is part of the gallery. + + + + Scrolls gallery down to show next line of items. + + + + + Scrolls gallery up to show previous line of items. + + + + + + Opens the Gallery popup menu. + + + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + + + + Returns whether Gallery can extend the object. + + Object to test extensibility for. + Returns true if object can be extended otherwise false. + + + + Gets the GalleryGroup item is assigned to. + + Reference to item. + An instance of GalleryGroup object or null if item is not assigned to the group + + + + Assigns the item to the gallery group. + + Item to assign. + Group to assign item to. Can be null to remove item assignment. + + + + Occurs when Gallery popup item is about to open. + + + + + Occurs just before Gallery popup window is shown. + + + + + Occurs before the Gallery popup item is closed. + + + + + Occurs after Gallery popup item has been closed. + + + + + Gets or sets orientation inside the container. GalleryContainer automatically manages the layout orientation and this property should not be changed from its default value. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Gets or sets whether items in horizontal layout are wrapped into the new line when they cannot fit allotted container size. Default value is false. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets whether Gallery when on popup is using standard scrollbars to scroll the content. + Standard scrollbars are displayed on right hand side of the Gallery. Default value for this property is true. + When set to false the scroll buttons are displayed only when needed and two buttons on top and bottom + of the Gallery are used to indicate the scrolling possibility and enable scrolling. Buttons are only + visible when needed. This scrolling button style can be used for example on Application Menu + to enable scrolling of list of most recently used files. + + + + + Gets or sets whether gallery is using incremental sizing when stretched. Default + value is true. Incremental sizing will resize the width of the gallery so it fits + completely the items it can contain in available space. That means that gallery will + occupy enough space to display the whole items within available space. When set to + false, it indicates that gallery will resize to fill all available space. + + + + + Gets or sets whether Gallery width is determined based on the RibbonBar width. This property is in effect when + Gallery is hosted directly the RibbonBar control. Default value is false. + When set to true the Gallery size is changed as the RibbonBar control is resized. The initial size of the Gallery is + determined by DefaultSize property. The MinimumSize property specifies the minimum size of the Gallery. + Note that only single Gallery can be stretched per RibbonBar control. + + + + + Gets the collection of the items that are added to the popup gallery. The items displayed on the gallery are combined with the + items from this collection and they are displayed on the gallery popup. This collection can for example have items that are + customizing the choices of the commands in gallery etc. + + + + + Gets or sets the default size of the gallery. The gallery height will be always enforced so all scroll buttons can be displayed. + Gallery width should allow display of both scroll buttons and the gallery content. + + + + + Gets or sets the default size of the gallery when gallery is displayed on the popup menu. + + + + + Gets or sets whether gallery can be displayed on the popup. Default value is true. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets whether the Gallery popup is open. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets whether scroll animation is enabled. Default value is true. + Scroll animation will be disabled if gallery is running under Remote Windows Terminal session or fade animation effect is disabled on the + container control. + + + + + Gets the collection of GalleryGroup objects associated with this gallery. Groups are assigned optionally to one or more items + that are part of the GalleryContainer. Groups are used to visually group the items when gallery is displayed on the popup. + + + + + Represents the popup gallery group that groups set of items inside of gallery into the group. + + + + + Creates new instance of the object. + + + + + Gets or sets title of the group that will be displayed on the group label when on popup gallery. + + + + + Gets or sets name of the group that can be used to identify item from the code. + + + + + Gets the parent gallery for the group. + + + + + Gets or sets the display order for the group when displayed on the popup. Lower values are displayed closer to the top. Default value is 0. + + + + + Gets the collection of the items assigned to this group. + + + + + Represents the GalleryGroup typed collection. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of groups to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the GalleryGroup array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Summary description for ISimpleElement. + + + + + Represents IBlock layout manager implementation + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Indicates container title location. + + + + + Provides data for rendering ItemContainer. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ItemContainer instance being rendered. + + + + + Creates new instance of the object. + + Reference to graphics object. + Reference to ItemContainer object. + + + + Provides data for the item separator rendering inside of the ItemContainer. + + + + + Gets or sets the reference to the item separator is being rendered for. + + + + + Creates new instance of the object. + + + + + Represents class for Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Gets accessible role. + + + + + Gets parent accessibility object. + + + + + Returns bounds of the control. + + + + + Returns current accessible state. + + + + + Represents class for item display. + + + + + Represents canvas for KeyTips + + + + + Represents data for key tips rendering. + + + + + Gets or sets the graphics object used for rendering. + + + + + Gets or sets key tip bounds. + + + + + Gets or sets the text of key tip to be rendered. + + + + + Gets or sets the font key tip should be rendered with. + + + + + Reference object for which Key Tip is rendered. For example this could be reference to an instance of ButtonItem or BaseItem as well + as reference to System.Windows.Forms.Control object. Always test for type before accessing this reference. + + + + + Creates new instance of the object and initializes it with default values. + + + + + Represents painter for the MdiSystemItem. + + + + + Paints MdiSystemItem. + + Provides arguments for the operation. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets whether Text supports and renders text markup. Default value is true. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets the anti-alias setting for text-pane. + + + + + Enumeration of available common system strings. + + + + + Represents the class that provides MessageBox like functionality with the styled Office 2007 dialog and text markup support. + + + + + Displays a message box with specified text. + + The text to display in the message box. + One of the DialogResult values. + + + + Displays a message box in front of the specified object and with the specified text. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text and caption. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the DialogResult values. + + + + Displays a message box with specified text and caption. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, and buttons. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, and buttons. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, buttons, and icon. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the DialogResult values. + + + + Displays a message box with specified text, caption, buttons, and icon. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + One of the DialogResult values. + + + + Displays a message box with the specified text, caption, buttons, icon, and default button. + + The IWin32Window the message box will display in front of. + The text to display in the message box. + The text to display in the title bar of the message box. + One of the MessageBoxButtons values that specifies which buttons to display in the message box. + One of the MessageBoxIcon values that specifies which icon to display in the message box. + One of the MessageBoxDefaultButton values that specifies the default button for the message box. + Indicates value for Message Box dialog TopMost property. + One of the DialogResult values. + + + + Occurs when text markup link on Message Box is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether MessageBoxEx is using Windows System API function to retrieve the localized strings used by MessageBoxEx. Set this to false + if you experience issues when using MessageBoxEx under certain conditions. + + + + + Gets or sets whether MessageBoxEx form has Windows Vista Glass enabled if running on + Windows Vista with Glass enabled. Default value is true. + + + + + Gets or sets the anti-alias setting for message box text. + + + + + Gets or sets the text color for the message box text. Default value is Color.Empty which indicates that system colors are used. + + + + + Gets or sets whether divider panel that divides message box buttons and text content is visible. Default value is true. + + + + + Gets or sets the message box start position when Owner is not specified. Default value is CenterScreen. + + + + + Gets or sets the message box start position when Owner is specified. Default value is CenterParent. + + + + + Gets or sets whether message box text renders text markup. Default value is true. + + + + + Summary description for Office2003RibbonTabItemPainter. + + + + + Paints state of the button, either hot, pressed or checked + + + + + + + + Paints background of docked bar. + + Context information + + + + Paints background of floating bar. + + Context information + + + + Paints background of popup bar. + + Context information + + + + Gets or sets color table used by renderer. + + + + + Gets or sets color table used by renderer. + + + + + Gets or sets color table used by renderer. + + + + + Represents Office 2007 style MdiSystemItem painter + + + + + Gets or sets color table used by renderer. + + + + + Represents base class for Ribbon Control painting. + + + + + Paints controls background + + + + + Paints form caption background + + + + + Paints form caption text when ribbon control is displaying form caption + + + + + Paints the background of quick access toolbar. + + + + + Paints controls background + + + + + Paints form caption background + + + + + Paints the background of quick access toolbar. + + + + + RibbonTabItem painter for Office 2007 style + + + + + Represents the Office Application Button displayed in the top-left corner of the Ribbon Control. + + + + + Processes the Escape key when Application Button is hosting the backstage tab and uses it to close the tab if open. + This method is called from ProcessDialogKey method of Office2007RibbonForm. + + Key data + true if key was used to close backstage tab + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Gets or sets whether control set on BackstageTab property is used on application menu popup. + + + + + Gets or sets the backstage tab that is displayed instead of popup menu. + + + + + Summary description for PainterFactory. + + + + + Forces the creation of the objects inside of factory. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization into the ribbon control. All Ribbon Bars on the ribbon are enumerated and items + are added if they have CanCustomize=true. + + Ribbon control to enumerate. + + + + Loads the items for the customization from MetroTab control. Registered MetroToolbar controls are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control that holds references to known MetroToolbars. + + + + Gets reference to the internal Quick Access Toolbar Customization panel. + + + + + Represents the item that provides Quick Access Toolbar customization. + + + + + Creates new instance of CustomizeItem object. + + + + + Returns copy of CustomizeItem item + + + + + Overridden. Recalculates the size of the item. + + + + + Gets localized tooltip text for this instance of the item. + + Tooltip text. + + + + Called when mouse hovers over the customize item. + + + + + Gets or sets whether Customize menu item is visible. + + + + + Gets/Sets informational text (tooltip) for the item. + + + + + Represents the Quick Access Toolbar customization panel which can be used on the custom QAT customization dialogs + so customization of Quick Access Toolbar can be reused. + + + + + Gets reference to the internal ItemPanel control that displays the commands for selected category. + + + + + Gets reference to the ItemPanel control that displays the Quick Access Toolbar Items. + + + + + Gets reference to the button that perform addition of commands to the Quick Access Toolbar. + + + + + Gets reference to the button that perform removal of commands from the Quick Access Toolbar. + + + + + Gets reference to the combo box control that holds all categories. + + + + + Gets reference to the combo box categories label control. + + + + + Gets reference to the check box that changes the placement of the Quick Access Toolbar. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Loads the items for the customization into the ribbon control. All Ribbon Bars on the ribbon are enumerated and items + are added if they have CanCustomize=true. + + Ribbon control to enumerate. + + + + Loads the items for the customization from MetroTab registered toolbars. All registered Toolbars are enumerated and items + are added if they have CanCustomize=true. + + MetroTab control to enumerate. + + + + Gets or sets the value of data changed flag. + + + + + Represents the stand-alone Quick Access Toolbar control + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Returns collection of items on a bar. + + + + + Represents a single ribbon container control. + + + + + Creates new accessibility instance. + + Reference to AccessibleObject. + + + + Closes the RibbonBar overflow popup if control is in overflow mode and displays the overflow popup that shows complete content of the control. + + + + + Resets style to default value. Used by windows forms designer. + + + + + Invokes the LaunchDialog event to execute default launch dialog action. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Invokes DialogLauncherMouseEnter event. + + + + + Invokes DialogLauncherMouseLeave event. + + + + + Invokes DialogLauncherMouseHover event. + + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Resets cached content size. Content size is cached to improve performance of the control when control is + switched into overflow mode displaying a single button. If you change content of Rendering, hide/show items or + add new items you will need to call this method to erase cached value and allow the full Rendering size to be calculated. + + + + + Returns size of the control based on current content size. + + Size based on content. + + + + Sets the height of the control to the automatically calculated height based on content. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns automatically calculated width of the control given current content. + + Width in pixels. + + + + Gets the bounds of the title. + + + + + Resets TitleStyle property to its default value. Used by Windows Forms designer for design-time support. + + + + + Resets TitleStyle property to its default value. Used by Windows Forms designer for design-time support. + + + + + Occurs when dialog launcher button in title bar is clicked. Use DialogLauncherVisible property to show the button in title bar. + + + + + Occurs when overflow button for control is created because control size is below the minimum size required to display complete content of the control. + This event allows you to get access to the internal overflow button that is created and change it's properties if required. + + + + + Occurs after overflow button setup is complete and all items contained by this control are moved to it. + + + + + Occurs before overflow button is destroyed. + + + + + Occurs when mouse enters dialog launcher button. + + + + + Occurs when mouse leaves dialog launcher button. + + + + + Occurs when mouse hovers over the dialog launcher button. + + + + + Occurs when mouse is pressed over the dialog launcher button. + + + + + Gets or sets parent button when on QAT. + + + + + Gets or sets whether this RibbonBar is on QAT. + + + + + Gets or sets whether Office 2007 Design Guidelines specification for positioning KeyTips is used. + + + + + Gets or sets the Accessible name for the Dialog Launcher button + + + + + Specifies the background style of the control when mouse is over the control. Style specified here will be applied to the + BackgroundStyle. + + + + + Gets or sets image that is used as dialog luncher button in ribbon title bar. Default value is null which indicates that + default appearance for the button is used. + + + + + Gets or sets image that is used as dialog luncher button when mouse is over the button. + Note that if this property is set you also must set the DialogLauncherButton property. Images set to both + properties must have same size. Default value is null which indicates that + default appearance for the button is used. + + + + + Gets or sets maximum text length for automatic overflow button text. When overflow button is created due to the + reduced size of the control text for the button can be specified using OverflowButtonText property. If + text is not specified RibbonBar.Text property is used as overflow button text. In that case + this property specifies maximum length of the text to display on the button. Default value is 25. You can set + this property to 0 to use complete text regardless of length. + + + + + Gets or sets resize order index of the control. When control is parented to RibbonPanel control (which is the case when control is + used as part of RibbonControl) index specified here indicates the order in which controls that are part of the same panel + are resized. Lower index value indicates that control should be resized later when size needs to be reduced or earlier when size needs + to be increased. Default value is 0. + + + + + Gets or sets whether automatic overflow handling is enabled. When overflow is enabled if control is resized below the + size that is needed to display its complete content overflow button is created and all content is moved to the overflow button + popup. Control will only display overflow button when in this state and user can click overflow button to display the actual + content of the control. + Default value is true. + + + + + Gets or sets the text for overflow button that is created when ribbon bar size is reduced so it cannot display all its content. + When control is resized so it cannot display its content overflow button is created which is displayed on face of the control. + Complete content of the control is then displayed on popup toolbar when user clicks overflow button. + + + + + Gets or sets the Image for overflow button that is created when ribbon bar size is reduced so it cannot display all its content. + When control is resized so it cannot display its content overflow button is created which is displayed on face of the control. + Complete content of the control is then displayed on popup toolbar when user clicks overflow button. This Image is also used when + RibbonBar is added to the Quick Access Toolbar to identify the RibbonBar button. + + + + + Gets or sets whether dialog launcher button is visible in title of the ribbon. Default value is false. + + + + + Gets or sets default layout orientation inside the control. You can have multiple layouts inside of the control by adding + one or more instances of the ItemContainer object and changing it's LayoutOrientation property. + + + + + Gets or sets spacing in pixels between items. Default value is 1. + + + + + Gets or sets whether items contained by container are resized to fit the container bounds. When container is in horizontal + layout mode then all items will have the same height. When container is in vertical layout mode then all items + will have the same width. Default value is true. + + + + + Gets or sets the item alignment when container is in horizontal layout. Default value is Left. + + + + + Gets or sets the item vertical alignment. Default value is Top. + + + + + Returns collection of items on a bar. + + + + + Gets or sets whether ribbon bar can be customized by end user i.e. added to Quick Access Toolbar. + + + + + Returns reference to the overflow button that is used by control. + + + + + Gets whether control is in overflow state or not. + + + + + Gets or sets whether ButtonItem objects hosted on control are resized to reduce the space consumed by ribbon bar when required. + Default value is true. + + + + + Indicates whether auto-sizing for RibbonBar includes ribbon bar title width so in case when ribbon bar title width is wider than ribbon bar width the + width of the ribbon bar will always be at least the title bar width so complete title text can be displayed. + + + + + Gets/Sets the visual style for items and color scheme. + + + + + Gets or sets the KeyTip for the dialog launcher button. + + + + + Gets or sets whether ribbon bar title is visible. Default value is true. + + + + + Specifies the style of the title of the control. + + + + + Specifies the style of the title of the control when mouse is over the control. + + + + + Gets the title bounds. + + + + + Gets or sets whether control changes its background when mouse is over the control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether native .NET Drag and Drop is used by control to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + + Defines event handler for overflow button events. + + Control that is hosting the overflow button. + Event arguments + + + + Represents event arguments for overflow button events. + + + + + Creates new instance of the class and initializes it. + + Reference to overflow button. + + + + Returns reference to the overflow button that is used by control. + + + + + Represents class for RibbonBar Accessibility support. + + + + + Creates new instance of the object and initializes it with owner control. + + Reference to owner control. + + + + Returns number of child objects. + + Total number of child objects. + + + + Returns reference to child object given the index. + + 0 based index of child object. + Reference to child object. + + + + Represents the container for RibbonBar objects that will be merged into the MDI parent ribbon control. + + + + + Represents panel used by RibbonTabItem as a container panel for the control. + + + + + Creates new instance of the panel. + + + + + Scrolls the RibbonBar controls to the right one step if there is more of the controls on the panel that can fit into the available space. + + + + + Scrolls the RibbonBar controls one step to the left. + + + + + Resets the panel scroll position. + + + + + Gets or sets whether default control layout is used instead of Rendering layout for RibbonBar controls positioning. By default + internal layout logic is used so proper resizing of Ribbons can be performed. You can disable internal layout by setting this property + to true. + Default value is false. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Gets or sets whether last RibbonBar is stretched to fill available space inside of the panel. Default value is false. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets the size of the control. + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets a value indicating whether the control is displayed. + + + + + Gets or sets which edges of the control are anchored to the edges of its container. + + + + + Removes any RibbonBar objects that were merged into the Ribbon control. + + Reference to ribbon control to remove RibbonBar objects from. + + + + Merges RibbonBar objects from this container into the Ribbon control. + + Reference to ribbon control to remove RibbonBar objects from. + + + + Raises the BeforeRibbonMerge event. + + + + + Raises the AfterRibbonMerge event. + + + + + Raises the BeforeRibbonUnmerge event. + + + + + Raises the AfterRibbonUnmerge event. + + + + + Occurs before the RibbonBar objects from container are merged into the Ribbon control. + + + + + Occurs after the RibbonBar objects are merged into the Ribbon control. + + + + + Occurs after the RibbonBar objects are removed from the Ribbon control. + + + + + + Gets whether RibbonBar controls are merged into the RibbonControl. + + + + + Gets or sets whether RibbonTab item the RibbonBar controls are added to when merged is automatically activated (selected) after + controls are merged. Default value is true. + + + + + Gets or sets whether merge functionality is enabled for the container. Default value is true. + + + + + Gets or sets the Ribbon Tab text for the tab that will be created when ribbon bar objects from this container are merged into the ribbon. + + + + + Gets or sets the Key Tips access key or keys for the Ribbon Tab. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the predefined color for the ribbon tab that is created when ribbon bar controls are merged into the ribbon. + Default value is eRibbonTabColor.Default + + + + + Gets or sets the name of RibbonTabItem object that already exists on Ribbon control into which the RibbonBar controls are merged. + If name is not specified new RibbonTabItem is created and RibbonBar controls are added to it. + + + + + Gets or sets the name of the RibbonTabItemGroup the new Ribbon Tab Item that is created will be added to. The RibbonTabItemGroup + must be created and added to RibbonControl.TabGroups collection. + + + + + Gets or sets the insertion index for the ribbon tab item that is created when ribbon bars are merged into the ribbon control. + Default value is -1 which means that ribbon tab item is appended to the existing ribbon tab items. + + + + + Gets or sets whether panel automatically provides shadows for child controls. + + + + + Represents Rendering control composed of two parts, RibbonStrip and multiple RibbonBar controls per strip. + + + + + Gets the name of the QAT Customize Item which is used to display the QAT Customize Dialog box. + + + + + Gets the name of the Add to Quick Access Toolbar context menu item. + + + + + Gets the name of the Remove from Quick Access Toolbar context menu item. + + + + + Gets the name of the QAT placement change context menu item. + + + + + Gets the name of the Minimize Ribbon Item which is used to minimize the ribbon. + + + + + Gets the name of the Maximize Ribbon Item which is used to maximize the ribbon. + + + + + Gets the name of the label displayed on Quick Access Toolbar customize popup menu. + + + + + Gets the string that is used as starting name for the frequently used QAT menu items created when QAT Customize menu is displayed. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Sets the height of the control to the automatically calcualted height based on content. + + + + + Performs the setup of the RibbonPanel with the current style of the Ribbon Control. + + Panel to apply style changes to. + + + + Creates new Rendering Tab at specified position, creates new associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + Specifies the position of the new tab inside of Items collection. + New instance of the RibbonTabItem that was created. + + + + Creates new Rendering Tab and associated panel and adds them to the control. + + Specifies the text displayed on the tab. + Specifies the name of the tab + New instance of the RibbonTabItem that was created. + + + + Recalculates layout of the control and applies any changes made to the size or position of the items contained. + + + + + Returns Control region if any when control is hosted by Office2007RibbonForm + + + + + + Occurs when text markup link is clicked. + + + + + Resets DefaultGroupFont property to default value null. + + + + + Raises the BeforeRibbonPanelPopupClose event. + + + + + Raises the AfterRibbonPanelPopupClose event. + + + + + Raises the BeforeRibbonPanelPopup event. + + + + + + Raises the BeforeRibbonPanelPopup event. + + + + + + Sets up timer that watches when active window changes. + + + + + Called after change of active window has been detected. SetupActiveWindowTimer must be called to enable detection. + + + + + Releases and disposes the active window watcher timer. + + + + + Displays the active ribbon panel on the popup if ribbon control is collapsed. + + Reference to the object that was cause of the event. This is provided to the BeforeRibbonPanelPopupClose event if an menu needs to be closed. + Indicates the event source. This is provided to the BeforeRibbonPanelPopupClose event if an menu needs to be closed. + + + + Closes the Ribbon tab menu with source set to null and event source set to Code. + + + + + Closes the Ribbon Menu if one is currently displayed. + + + + + Suspends the form layout. + + + + + Suspends the form layout. + + + + + Suspends the form layout. + + + + + Selects first visible RibbonTab. + + Returns true if selection is performed otherwise false. + + + + Called when right-mouse button is pressed over RibbonBar + + Reference to RibbonBar object. + + + + Called when right-mouse button is pressed over RibbonStrip + + Reference to RibbonStrip object. + + + + Displays popup customize context menu for given customization object. + + Object that should be customized, usually an instance of BaseItem. + Indicates whether customize menu is displayed over ribbon strip + + + + Raises the QatPlacementChanged event. + + Event arguments. + + + + Removes an item from the Quick Access Toolbar. + + Reference to the item that is already part of Quick Access Toolbar. + + + + Adds an instance of base type BaseItem or RibbonBar to the Quick Access Toolbar. Note that this method creates + new instance of the item or an representation of the item being added and adds that to the Quick Access Toolbar. + + Reference to the item to add, must be an BaseItem type or RibbonBar type. + + + + Raises the BeforeCustomizeMenuPopup event. + + Event arguments + + + + Raises the BeforeAddItemToQuickAccessToolbar event. + + Event arguments. + + + + Shows the quick access toolbar customize dialog. + + + + + Applies the Quick Access Toolbar customization changes made on QatCustomizePanel to the Ribbon Control Quick Access Toolbar. Note that QatCustomizePanel.DataChanged property indicates whether user made any changes to the data on the panel. + + Reference to the QatCustomizePanel + + + + Raises the AfterQatDialogChangesApplied event. + + + + + Returns the ribbon Application Button. + + reference to Application Button or null if button is not found. + + + + Occurs when Quick Access Toolbar placement is changed, i.e. below or above the Ribbon. + + + + + Occurs just before the customize popup menu is displayed and provides the ability to cancel the menu display as well + as to add/remove the menu items from the customize popup menu. + + + + + Occurs before an item is added to the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs before an item is removed from the quick access toolbar as result of user action. This event provides ability to + cancel the addition of the item by setting the Cancel=true of event arguments. + + + + + Occurs when DotNetBar is looking for translated text for one of the internal text that are + displayed on menus, toolbars and customize forms. You need to set Handled=true if you want + your custom text to be used instead of the built-in system value. + + + + + Occurs when Item on ribbon tab strip or quick access toolbar is clicked. + + + + + Occurs before Quick Access Toolbar dialog is displayed. This event provides the opportunity to cancel the showing of + built-in dialog and display custom customization dialog. You can also set the Dialog property of the event arguments to + the custom dialog you want used instead of the DotNetBar system customization dialog. + + + + + Occurs after the Quick Access Toolbar dialog is closed. + + + + + Occurs after any changes done on the Quick Access Toolbar dialog are applied to the actual Quick Access Toolbar. + + + + + Occurs after selected Ribbon tab has changed. You can use + RibbonControl.SelectedRibbonTabItem + property to get reference to newly selected tab. + + + + + Occurs before selected RibbonPanel is displayed on popup while ribbon is collapsed. This event gives you the opportunity to cancel the popup of the ribbon panel. + + + + + Occurs after selected RibbonPanel is displayed on popup while ribbon is collapsed. + + + + + Occurs before RibbonPanel popup is closed and provides opportunity to cancel the closing. Note that if you cancel closing of ribbon popup you are + responsible for closing the popup. + + + + + Occurs after RibbonPanel popup is closed. + + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Occurs after Expanded property has changed. + + + + + Gets the collection of the Quick Access Toolbar Frequently used commands. You should add existing buttons to this collection that + you already have on the RibbonBar controls or on the application menu. The list will be used to construct the frequently used + menu that is displayed when Customize Quick Access Toolbar menu is displayed and it allows end-user to remove and add these + frequently used commands to the QAT directly from this menu. + Note that items you add here should not be items that are already on Quick Access Toolbar, i.e. in RibbonControl.QuickToolbarItems collection. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether merge functionality is enabled for the control. Default value is true. + + + + + Gets or sets whether control height is set automatically based on the content. Default value is false. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + + Gets or sets the Context menu bar associated with the this control which is used as part of Global Items feature. The context menu + bar assigned here will be used to search for the items with the same Name or GlobalName property so global properties can be propagated when changed. + You should assign this property to enable the Global Items feature to reach your ContextMenuBar. + + + + + Gets or sets whether custom caption and quick access toolbar provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets the indent of the ribbon strip. The indent setting is useful when control is used with caption visible and the Office 2007 + style start button. The indent specified here will move the ribbon strip so the start button does not overlap the tabs. + Value of this property is used only when CaptionVisible = true. + Default value is 46. + + + + + Gets or sets the font used by the ribbon strip. + + + + + Gets or sets whether mouse over fade effect is enabled. Default value is true. + + + + + Gets or sets the font that is used to display Key Tips (accelerator keys) when they are displayed. Default value is null which means + that control Font is used for Key Tips display. + + + + + Collection of RibbonTabItemGroup items. Groups are assigned optionally to one or more RibbonTabItem object through the RibbonTabItem.Group + property to visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets or sets the height in pixels of tab group line that is displayed above the RibbonTabItem objects that have group assigned. + Default value is 10 pixels. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. + + + + + Gets or sets whether tab group line that is displayed above the RibbonTabItem objects that have group assigned is visible. + Default value is false. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. Use TabGroupHeight + property to control height of the group line. + + + + + Gets or sets default font for tab groups. This font will be used if font is not specified by group style element. + + + + + Specifies the background style of the control. + + + + + Gets or sets the currently selected RibbonTabItem. RibbonTabItems are selected using the Checked property. Only a single + RibbonTabItem can be selected (Checked) at any given time. + + + + + Returns reference to internal ribbon strip control. + + + + + Returns collection of items on a bar. + + + + + Returns collection of quick toolbar access and caption items. + + + + + Gets/Sets the visual style of the control. If you are changing style to Office 2007 or Office 2010 use RibbonPredefinedColorSchemes.ChangeStyle method instead to ensure + all controls are switched properly. + + + + + Indicates whether control automatically updates Padding property for the ribbon and RibbonPanel based on style. Default value is true. + + + + + Gets or sets the Office 2007 Renderer global Color Table. Setting this property will affect all controls on the form that are using Office 2007 global renderer. + + + + + Gets whether collapsed ribbon is displaying the selected ribbon panel as popup. + + + + + Gets or sets whether mouse wheel scrolls through the ribbon tabs. Default value is true. + + + + + Gets or sets whether control is expanded or not. When control is expanded both the tabs and the tab ribbons are visible. When collapsed + only tabs are visible. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + Default value is true. + + + + + Gets or sets whether control is collapsed/expanded when Ctrl+F1 key is clicked. + Default value is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. Default value is false. + + + + + Indicates the position of the BackgroundImage + + + + + Specifies whether the MDI system buttons are displayed in ribbon strip when MDI Child window is maximized. + + + + + Gets or sets whether Ribbon control employs the Windows Vista Glass support when available. This is managed automatically by Ribbon Control and + no setting is necessary on your part. + + + + + Indicates Quick Access Toolbar height when positioned below the Ribbon. Default value of 0 indicates auto-height. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets whether external implementation for ribbon bar and menu item customization will be used for customizing the ribbon control. When set to true + it enables the displaying of RibbonBar and menu item context menus which allow customization. You are responsible for + adding the menu items to context menu to handle all aspects of item customization. See "Ribbon Control Quick Access Toolbar Customization" topic in help file under How To. + Default value is false. + + + + + Gets or sets whether end-user customization of the placement of the Quick Access Toolbar is enabled. User + can change the position of the Quick Access Toolbar using the customize menu. Default value is true. + + + + + Gets or sets whether customize dialog is used to customize the quick access toolbar. You can handle the EnterCustomize event + to display your custom dialog instead of built-in dialog for customization. Default value is true. + + + + + Gets or sets the categorization mode for the items on Quick Access Toolbar customize dialog box. Default value categorizes + items by the ribbon bar they appear on. + + + + + Gets or sets whether Quick Access toolbar is positioned below the ribbon. + + + + + Gets or sets the Quick Access Toolbar layout description. You can use the value obtained from this property to save + the customized Quick Access Toolbar into registry or into any other storage object. You can also set the saved layout description back + to restore user customize layout. + + + + + Gets or sets whether Quick Access Toolbar has been customized by end-user. You can use value of this property to determine + whether Quick Access Toolbar layout that can be accessed using QatLayout property should be saved. + + + + + Gets the reference to the ribbon localization object which holds all system text used by the component. + + + + + Provides data for RibbonBar rendering events. + + + + + Gets or sets the reference to Graphics object. + + + + + Gets or sets the part bounds. + + + + + Gets or sets the reference to RibbonBar. + + + + + Gets or sets whether mouse over state should be painted for the ribbon bar part. + + + + + Gets or sets whether mouse is pressed over the ribbon part. + + + + + Gets or sets the region that defines the content bounds. When background is rendered the renderer should set this property + to define the content clip. + + + + + Creates new instance of the object and initializes it with default values. + + Reference to Graphics object. + Bounds of the part to be rendered. + Reference to ribbon bar. + + + + Represents the class that stores text used by ribbon control only for localization purposes. + + + + + Gets or sets the title text of the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the "Place Quick Access Toolbar below the Ribbon" check-box on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Choose commands from label on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Remove button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Add button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the OK button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text of the Cancel button on the Quick Access Toolbar Customize dialog form. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to customize Quick Access Toolbar. + + + + + Gets or sets the text that is used on Quick Access Toolbar customize menu label. + + + + + Gets or sets the text that is used on context menu used to change placement of the Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu used to change placement of the Quick Access Toolbar. + + + + + Gets or sets the text that is used on context menu item used to minimize the Ribbon. + + + + + Gets or sets the text that is used on context menu item used to maximize the Ribbon. + + + + + Represents ribbon overflow button. + + + + + Gets or sets the ribbon bar control overflow button is displayed on. + + + + + Represents predefined color schemes for ribbon controls. + + + + + Applies default gray color scheme to background and title. + + Reference to object. + + + + Applies orange color scheme to background and title. + + Reference to object + + + + Apply Office 2003 color scheme to background and title. + + Reference to object + + + + Applies Office 2003 color scheme to ribbon control background. + + Reference to object. + + + + Applies Gray color scheme to ribbon control background. + + Reference to object. + + + + Applies Office 2007 color table to ribbon control background. + + Reference to object. + + + + Applies Office 2007 Luna blue color scheme to the Ribbon Bar. + + Reference to object. + + + + Applies specified style to Ribbon control and all other controls that are managed by the ribbon control. + This method is useful for example when switching the color tables for Office 2007 renderer. Once + the GlobalManager.Renderer color table is changed you can call this method to apply color table + changes to the Ribbon Control and other controls managed by it. + + RibbonControl to set the style on. + Visual style to apply. + + + + Applies specified visual style to the RibbonBar control. + + RibbonBar control to set the style on. + Visual style to apply. + + + + Applies current color scheme and layout settings to the container which acts as top-level file menu container. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the two column menu container used by the top-level file menu. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the first column menu container used by the top-level file menu. + This column usually contains menu items. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the first column menu container used by the top-level file menu. + This column usually contains most recently used list of files or documents. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Applies current color scheme and layout properties to the bottom menu container used by the top-level file menu. + This container usually contains Options and Exit buttons. + Applies to Office 2007 style only. + + Container to apply style to. + + + + Changes the Office 2007 color table for all DotNetBar controls on the open forms that are tracked by Application.OpenForms collection. You can use this function for example to + apply Black color scheme to all DotNetBar control on all open forms. The color table will be changed only for controls that + have Office 2007 style. Any other style will be unchanged. + + Color table to select and apply. + + + + Applies current Office 2007 style color table set on GlobalManager.Renderer to all DotNetBar controls with Office 2007 style on all open forms. + + + + + Changes the Office 2007 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Office 2007 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Office 2007 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Office 2007 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Applies current Office 2007 style color table to all DotNetBar controls on the form. + + Reference to the form or parent control that contains DotNetBar controls you would like to apply color table to. + + + + Changes style for all controls on Application.OpenForms to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls on forms. + + + + Changes style for all controls on Application.OpenForms to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls on forms. + Color used to blend with the base color scheme. + + + + Changes style for all controls on a form to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls. + Form or Control to process. + + + + Changes style for all controls on a form to specified style. Use this method to change the style for all controls to Office 2007 or Office 2010 styles only. + + New style to assign to controls. + Form or Control to process. + Color used to blend with the base color scheme. + + + + Changes the Office 2010 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Office 2010 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Office 2010 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Office 2007 and 2010 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Changes the Windows 7 color table for all DotNetBar controls on the form. You can use this function for example to + apply Black color scheme to all DotNetBar control on given form. The color table will be changed only for controls that + have Windows 7, Office 2007, 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Color table to select and apply. + + + + Generates and Changes the Windows 7 color table for all DotNetBar controls on the form. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Windows 7, Office 2007 and 2010 style. Any other style will be unchanged. + + Form to apply color table to. + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Generates and Changes the Windows 7 color table for all DotNetBar controls on all open forms. You can use this function for example to + create custom color scheme based on the base color and apply it to all DotNetBar control on given form. The new color table will be applied only to controls that + have Windows 7, Office 2007 and 2010 style. Any other style will be unchanged. + + Base color table to use for creation of custom color table that will be applied. + Base color used to create custom color table. + + + + Defines the Ribbon Quick Access Overflow system item. Used internally by Ribbon control. + + + + + Returns copy of DisplayMoreItem item + + + + + Overriden. Draws the item. + + Target Graphics object. + + + + Returns the insertion index for the items removed from overflow popup. Assumes that right-most items are removed first by the layout manager. + + + + + + Represents RibbonStrip control internally used by RibbonControl. + + + + + Occurs when text markup link is clicked. + + + + + Resets DefaultGroupFont property to default value null. + + + + + Returns automatically calculated height of the control given current content. + + Height in pixels. + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + Indicates whether GlobalName property is used for searching. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Called when ShowKeyTips on RibbonBar contained by this Ribbon is set to true + + + + + Forces the control to exit Ribbon Key-Tips mode. + + + + + Called when item on popup container is right-clicked. + + Instance of the item that is right-clicked. + + + + Returns true if point is inside the caption area. + + Client point coordinates. + True if point is inside of caption area otherwise false. + + + + Occurs when text markup link from TitleText markup is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets whether RibbonStrip control employs the Windows Vista Glass support when available. This is managed automatically by Ribbon Control and + no setting is necessary on your part. + + + + + + Gets reference to parsed markup body element if text was markup otherwise returns null. + + + + + Gets or sets whether KeyTips functionality is enabled. Default value is true. + + + + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. + Caption of the control must be visible for customization to be enabled. Default value is true. + + + + + Gets or sets the explicit height of the caption provided by control. Caption height when set is composed of the TabGroupHeight and + the value specified here. Default value is 0 which means that system default caption size is used. + + + + + Gets or sets whether custom caption line provided by the control is visible. Default value is false. + This property should be set to true when control is used on Office2007RibbonForm. + + + + + Gets or sets the font for the form caption text when CaptionVisible=true. Default value is NULL which means that system font is used. + + + + + Gets or sets the indent of the ribbon strip. The indent setting is useful when control is used with caption visible and the Office 2007 + style start button. The indent specified here will move the ribbon strip so the start button does not overlap the tabs. + Value of this property is used only when CaptionVisible = true. + Default value is 46. + + + + + Gets or sets the height in pixels of tab group line that is displayed above the RibbonTabItem objects that have group assigned. + Default value is 14 pixels. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. + + + + + Gets or sets whether tab group line that is displayed above the RibbonTabItem objects that have group assigned is visible. + Default value is false. To show tab groups you need to assign the RibbonTabItem.Group property and set TabGroupsVisible=true. Use TabGroupHeight + property to control height of the group line. + + + + + Collection of RibbonTabItemGroup items. Groups are assigned optionally to one or more RibbonTabItem object through the RibbonTabItem.Group + property to visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets/Sets the visual style of the control. + + + + + Returns collection of items on a bar. + + + + + Returns currently selected RibbonTabItem. RibbonTabItems are selected using the Checked property. Only a single + RibbonTabItem can be Checked at any given time. + + + + + Gets or set whether TabGroup painting is suspended. + + + + + Gets or sets default font for tab groups. This font will be used if font is not specified by group style element. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + + + + + Gets or sets whether control is collapsed when RibbonTabItem is double clicked and expanded when RibbonTabItem is clicked. + + + + + Gets or sets whether F10 key is ignored as way to set KeyTips focus to Ribbon. + + + + + Gets whether Ribbon is in key-tips mode including its child controls. + + + + + Returns collection of items on a bar. + + + + + Gets the reference to the internal container item for the items displayed in control caption. + + + + + Gets the reference to the internal container for the ribbon tabs and other items. + + + + + Defines the internal container item for the ribbon strip control. + + + + + Creates new instance of the class and initializes it with the parent RibbonStrip control. + + Reference to parent RibbonStrip control + + + + Paints this base container + + + + + Returns copy of GenericItemContainer item + + + + + Return Sub Item at specified location + + + + + Gets whether Metro Backstage application menu is open. + + + + + Gets reference to internal ribbon strip container that contains tabs and/or other items. + + + + + Gets reference to internal caption container item that contains the quick toolbar, start button and system caption item. + + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + When parent items does recalc size for its sub-items it should query + image size and store biggest image size into this property. + + + + + Provides data for RenderRibbonTabGroup event. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets RibbonTabItemGroup being rendered. + + + + + Gets or sets the bounds of the tab group. Bounds specified here are bounds of the tab group title. GroupBounds contains the bounds + that include all tabs that belong to the tab group. + + + + + Gets or sets the font that should be used to render group text. + + + + + Gets or sets group bounds including the tabs that belong to the group. + + + + + Gets or sets the effective style for the group. + + + + + Gets whether Windows Vista glass is enabled. + + + + + Represents Rendering Tab used on RibbonControl. + + + + + Selects the tab. + + + + + Resets Group property to default value null. + + + + + Called after Checked property has changed. + + + + + Occurs just before Click event is fired. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Called when Visibility of the items has changed. + + New Visible state. + + + + Occurs after item visual style has changed. + + + + + Gets or sets whether tab renders its state. Used internally by DotNetBar. Do not set. + + + + + Gets or sets the additional padding added around the tab item in pixels. Default value is 0. + + + + + Gets or sets whether size of the tab has been reduced below the default calculated size. + + + + + Gets or sets the predefined color of item. Color specified here applies to items with Office 2007 style only. It does not have + any effect on other styles. Default value is eRibbonTabColor.Default + + + + + Gets or sets the group this tab belongs to. Groups are optional classification that is used to + visually group tabs that belong to same functions. These tabs should be positioned next to each other. + + + + + Gets or sets the panel assigned to this ribbon tab item. + + + + + Gets or set the Group item belongs to. The groups allows a user to choose from mutually exclusive options within the group. The choice is reflected by Checked property. + + + + + Returns the collection of sub items. + + + + + Indicates whether the item will auto-collapse (fold) when clicked. + When item is on popup menu and this property is set to false, menu will not + close when item is clicked. + + + + + Indicates whether the item will auto-expand when clicked. + When item is on top level bar and not on menu and contains sub-items, sub-items will be shown only if user + click the expand part of the button. Setting this propert to true will expand the button and show sub-items when user + clicks anywhere inside of the button. Default value is false which indicates that button is expanded only + if its expand part is clicked. + + + + + Gets or sets whether item can be customized by end user. + + + + + Gets or set a value indicating whether the button is in the checked state. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets a value indicating whether the item is enabled. + + + + + Indicates item's visiblity when on pop-up menu. + + + + + Indicates when menu items are displayed when MenuVisiblity is set to VisibleIfRecentlyUsed and RecentlyUsed is true. + + + + + Indicates Animation type for Popups. + + + + + Indicates the font that will be used on the popup window. + + + + + Indicates whether sub-items are shown on popup Bar or popup menu. + + + + + Specifies the inital width for the Bar that hosts pop-up items. Applies to PopupType.Toolbar only. + + + + + Gets or sets whether item will display sub items. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the width of the expand part of the button item. + + + + + Gets or set the alternative shortcut text. + + + + + Gets or sets whether item separator is shown before this item. + + + + + Returns category for this item. If item cannot be customzied using the + customize dialog category is empty string. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Indicates the way item is painting the picture when mouse is over it. Setting the value to Color will render the image in gray-scale when mouse is not over the item. + + + + + Gets or sets the text color of the button. + + + + + Represents a group RibbonTabItem objects are assigned to. + + + + + Selected first tab that is part of this group. + + + + + Gets or sets the predefined color of the group. Color specified here applies to groups with Office 12 style only. It does not have + any effect on other styles. Default value is eRibbonTabGroupColor.Default + + + + + Gets or sets the custom color name. Name specified here must be represented by the coresponding object with the same name that is part + of the Office2007ColorTable.RibbonTabGroupColors collection. See documentation for Office2007ColorTable.RibbonTabGroupColors for more information. + If color table with specified name cannot be found default color will be used. Valid settings for this property override any + setting to the Color property. + + + + + Gets the style for tab group. + + + + + Gets or sets title of the group that will be displayed when group is visually represented. + + + + + Gets or sets parent ribbon strip for this group. + + + + + Gets or sets whether RibbonTabItem objects that belong to this group are visible. Setting this property will + show/hide all RibbonTabItem objects that are assigned to this group through RibbonTabItem.Group property. + + + + + Gets whether any tab from this tab group is selected. + + + + + Gets or sets name of the group that can be used to identify item from the code. + + + + + Gets an array of Rectangle objects that describe the visual position on the ribbon control of the group titles displayed. + If tabs that belong to a tab group are not next to each other then there will be multiple rectangle returned as part of the array + for each tab group that is apart. + + + + + Collection of RibbonTabItemGroup objects. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds new objects to the collection. + + Array of groups to add. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the RibbonTabItemGroup array. + + Array to copy to. + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides data for ButtonItem rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets the reference to ButtonItem instance being rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object. + + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Creates new instance of the object and initializes it with default values + + Reference to Graphics object. + Reference to ButtonItem object. + + + + Summary description for SimpleElement. + + + + + Summary description for SimpleElementLayout. + + + + + Indicates absolute vertical alignment of the content. + + + + + Content is aligned to the top + + + + + Content is aligned in the middle + + + + + Content is aligned at the bottom + + + + + Indicates absolute horizontal alignment + + + + + Content is left aligned + + + + + Content is centered + + + + + Content is right aligned + + + + Indicates alignment of a part of the cell like image or check box in relation to the text. + + + + Part is aligned to the left center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the right center of the text assuming left-to-right + orientation. + + + + + Part is aligned to the top left of the text assuming left-to-right + orientation. + + + + Part is aligned above the text and centered. + + + + Part is aligned to the top right of the text assuming left-to-right + orientation. + + + + + Part is aligned to the bottom left of the text assuming left-to-right + orientation. + + + + Part is aligned below the text and centered. + + + + Part is aligned to the bottom right of the text assuming left-to-right + orientation. + + + + + Summary description for SimpleNodeDisplay. + + + + + Represents information neccessary to paint the cell on canvas. + + + + + Represents the slider item which allows you to select a value from predefined range. + + + + + Creates new instance of SliderItem. + + + + + Creates new instance of SliderItem and assigns the name to it. + + Item name. + + + + Creates new instance of SliderItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Copies the SliderItem specific properties to new instance of the item. + + New SliderItem instance. + + + + Raises the IncreaseButtonClick event. + + Provides event arguments + + + + Raises the DecreaseButtonClick event. + + Provides event arguments + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Advances the current position of the slider by the amount of the Step property. + + + + + Advances the current position of the slider by the specified amount. + + The amount by which to increment the sliders current position. + + + + Advances the current position of the slider by the specified amount. + + The amount by which to increment the sliders current position. + + + + Raises the ValueChanged event. + + + + + Raises the ValueChanged event. + + + + + Raises the ValueChanging event. + + + + + Returns whether property should be serialized. Used by Windows Forms designer. + + + + + Resets the property to default value. Used by Windows Forms designer. + + + + + Occurs after Value property has changed. + + + + + Occurs before Value property has changed. + + + + + Occurs when Increase button is clicked using mouse. + + + + + Occurs when Decrease button is clicked using mouse. + + + + + Gets or sets the slider mouse over part. + + + + + Gets or sets the slider part that mouse is pressed over. This property should not be modified and it is for internal usage only. + + + + + Returns the label bounds inside of the control. + + + + + Gets or sets the text associated with this item. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the maximum value of the range of the control. + + + + + Gets or sets the minimum value of the range of the control. + + + + + Gets or sets the current position of the slider. + + + + + Gets or sets the amount by which a call to the PerformStep method increases the current position of the slider. Value must be greater than 0. + + + + + Gets or sets whether the text label next to the slider is displayed. + + + + + Gets or sets the width of the slider part of the item in pixels. Value must be greater than 0. Default value is 136. + + + + + Gets or sets the width of the label part of the item in pixels. Value must be greater than 0. Default value is 38. + + + + + Gets or sets the text label position in relationship to the slider. Default value is Left. + + + + + Gets or sets whether Click event will be auto repeated when mouse button is kept pressed over the item. + + + + + Gets or sets the auto-repeat interval for the click event when mouse button is kept pressed over the item. + + + + + Gets or sets whether vertical line track marker is displayed on the slide line. Default value is true. + + + + + Gets or sets the color of the label text. + + + + + Gets or sets the Key Tips access key or keys for the item when on Ribbon Control or Ribbon Bar. Use KeyTips property + when you want to assign the one or more letters to be used to access an item. For example assigning the FN to KeyTips property + will require the user to press F then N keys to select an item. Pressing the F letter will show only keytips for the items that start with letter F. + + + + + Gets or sets the collection of shortcut keys associated with the item. + + + + + Gets or sets whether item will display sub items. + + + + + Specifies whether item is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether the item expands automatically to fill out the remaining space inside the container. Applies to Items on stretchable, no-wrap Bars only. + + + + + Gets or sets the tooltip for the Increase button of the slider. + + + + + Gets or sets the tooltip for the Decrease button of the slider. + + + + + Gets or sets the slider orientation. Default value is horizontal. + + + + + Indicates spacing for an user interface element either padding or margins. + + + + + Gets or sets the amount of the space on the left side. + + + + + Gets or sets the amount of the space on the right side. + + + + + Gets or sets the amount of the space on the top. + + + + + Gets or sets the amount of the space on the bottom. + + + + + Gets total horizontal spacing. + + + + + Gets total vertical spacing. + + + + + Gets whether all memebers of class are set to 0. + + + + + Summary description for SubItemsCollection. + + + + + Sorts the items in the collection using the built in IComparable on each item which sorts items by the Text property. + + + + + Sorts the items in the collection using specified comparer. + + Comparer to use for item sorting. + + + + Gets whether MinimumTooltipSize property should be serialized. + + + + + Retrieves SuperTooltipInfo for given component or return null if component does not have tooltip associated with it. + + + + + Associates SuperTooltipInfo with given component. + + Reference to supported component. + Instance of SuperTooltipInfo class. If null is passed the SuperTooltip is detached from the given component. + + + + Raises the MarkupLinkClick event. + + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method at specific location on the screen. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + Specifies the explicit position of the SuperTooltip in screen coordinates. + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + + + + Shows SuperTooltip for given object that has been registered using SetSuperTooltip method. + + Object to show tooltip for. Object must be registered using SetSuperTooltip method before tooltip is shown for it. + + + + Raises the TooltipClosed event. + + Provides event arguments. + + + + Hides tooltip if it is visible. + + + + + Resets Hoover timer. + + + + + Occurs just before tooltip is displayed and gives you opportunity to cancel showing of tooltip. + + + + + Occurs after tooltip has been closed. + + + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Gets or sets the maximum width of the super tooltip. Default value is 0 which indicates that maximum width is not used. The maximum width property + will not be used if custom size is specified. + + + + + Gets or sets whether form active state is ignored when control is deciding whether to show tooltip. By default this property is set to false + which indicates that tooltip will be shown only if parent form is active. When set to true the form active state is ignored when + deciding whether to show tooltip. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is true. + + + + + Gets or sets whether SuperTooltip will be shown for the controls assigned to it. Default value is true. You can set + this property to false to disable SuperTooltip for all controls assigned to it. + + + + + Gets or sets whether tooltip is shown immediately after the mouse enters the control. The default value is false which indicates + that tooltip is shown after system hover timeout has expired which provides slight delay before tooltip is shown. + + + + + Gets or sets the minimum tooltip size. Default value is 150 width and 24 height. + + + + + Gets or sets the duration in seconds that tooltip is kept on screen after it is displayed. Default value is 20 seconds. + You can set this value to 0 to keep tooltip displayed until user moves mouse out of control or application loses focus. + + + + + Gets or sets the delay time for hiding the tooltip in milliseconds after + mouse has left the control. Default value is 0 which means that tooltip will be + hidden as soon as mouse leaves the control tooltip was displayed for. You can use + this property to provide the user with enough time to move the mouse cursor to the + tooltip so user can act on the content of the tooltip, like hyper links. + + + + + Gets or sets whether tooltip position is checked before tooltip is displayed and adjusted to tooltip always + falls into screen bounds. Default value is true. + + + + + Gets or sets whether tooltip position is checked before tooltip is displayed and adjusted so tooltip does not overlaps the + control it is displayed for. Default value is true. + + + + + Gets or sets the tooltip position in relationship to the control tooltip is providing information for. + Set this property to false if you want tooltip to be displayed below the mouse cursor. Default value is + true which indicates that tooltip is displayed below mouse cursor but it is positioned below the control + that it provides the information for so it is not covering its content. + + + + + Gets or sets default setting for new Tooltips you create in design time. If all your tooltips have common elements + you can change this property to reflect these default setting before you start writing tooltips for all controls on the form. + As you start creating new tooltips for controls on the form default values specified here will be used as starting values + for new tooltip you are creating. + + + + + Returns instance of default tooltip information used in design-time. + + + + + Gets the reference to internal Hashtable that contains reference to all controls and assigned SuperTooltips. This + collection must not be modified directly and it is automatically managed by the SuperTooltip component. You can use it + for example to change the color for all SuperTooltips managed by the component but you should not add or remove items to it. + Instead use SetSuperTooltip methods to add or remove the tooltip for a component. + + + + + Gets or sets the hover delay multiplier which controls how fast tooltip appears. The value set here indicates + how many hover events are needed to occur before the tooltip is displayed. + + + + + Returns whether tooltip is visible. + + + + + Gets reference to instance of tooltip control if any has been created at the time call is made. + + + + + Gets or sets default tooltip font. Default value is null which means that default system font is used. + + + + + Gets or sets whether complete tooltip is shown including header, body and footer. Default value is true. When set to false only tooltip header will be shown. + Providing this option to your end users as part of your application setting allows them to customize the level of information displayed and reduce it after they are familiar with your product. + + + + + Gets or sets whether tooltip is shown when control that tooltip is assigned to is focused. You can set this value to false to disable Tooltip display when control receives input focus. Default value is true. + + This property is effective only when Super Tooltip is assigned to the controls that inherit from System.Windows.Forms.Control class and it relies on Focused property of respective control for proper function. + + + + Provides information about SuperTooltip attached to a component. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class with specified parameters. + + + + + Creates new instance of the class with specified parameters. + + + + + Returns whether property should be serialized. + + + + + Gets or sets whether tooltip header text is visible or not. Default value is true. + + + + + Gets or sets whether tooltip footer text is visible or not. Default value is true. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets body text. + + + + + Gets or sets body image displayed to the left of body text. + + + + + Gets or sets footer image displayed to the left of footer text. + + + + + Gets or sets the custom size for tooltip. Default value is 0,0 which indicates that tooltip is automatically + resized based on the content. + + + + + Gets or sets predefined tooltip color. + + + + + Extensibility interface that custom components may implement + so SuperTooltip can be provided for them. + + + + + This event should be triggered by the component when it wants to display SuperTooltip. Normally + this event would be equivalent of MouseHover event but you can trigger it in response to anything else. + Sender for this event must be object that implements ISuperTooltipInfoProvider interface. + + + + + This event should be triggered by component when it wants to hide SuperTooltip. For example this event + might be triggered when mouse leaves your component. Sender of this event must be object that implements ISuperTooltipInfoProvider interface. + + + + + Returns rectangle of the visible area of the component in screen coordinates. This rectangle is used + to position SuperTooltip on the screen. + + + + + Delegate for SuperTooltip events. + + + + + Represents event arguments for PanelChanging event. + + + + + Set to true to cancel display of tooltip. + + + + + Object that has triggered displaying of tooltip + + + + + Information that will be used to populate tooltip. + + + + + Location where tooltip will be displayed. You can change the location here to display tooltip at different position. + + + + + Indicates the tooltip size, read-only and valid only if tooltip position is checked on screen. + + + + + Default constructor. + + + + + Represents SuperTooltipControl. + + + + + Default constructor. + + + + + Paints insides of the control. + + Paint event arguments. + + + + Recalculates and set size of the control based on the content that is made available to it. + + + + + Calculates the tooltip height based on the specified width. + + Tooltip width + Size of the tooltip based on specified width. + + + + Shows tooltip at specified screen coordinates. + + X coordinate + Y coordinate + Indicates whether to enforce the screen position of tooltip if tooltip falls out of screen bounds. + + + + Updates the popup shadow size and position if shadow is visible. + + + + + Gets or sets whether complete tooltip is shown including header, body and footer. Default value is true. When set to false only tooltip header will be shown. + Providing this option to your end users as part of your application setting allows them to customize the level of information displayed and reduce it after they are familiar with your product. + + + + + Gets or sets the maximum width of the super tooltip. Default value is 0 which indicates that maximum width is not used. The maximum width property + will not be used if custom size is specified. + + + + + Gets or sets the minimum tooltip size. Default value is 150, 50 + + + + + Gets or sets image used next to body text. + + + + + Gets or sets image used next to footer text. + + + + + Gets or sets text displayed in header of tooltip + + + + + Gets or sets whether header in tooltip is visible. Default value is true. + + + + + Gets or sets text displayed in footer of the tooltip + + + + + Gets or sets whether footer in tooltip is visible. Default value is true. + + + + + Gets or sets whether line above footer text is drawn to separate footer from body text. Default value is true. + + + + + Gets or sets whether mouse click on super tooltip will activate it, make it active window. Default value is true. + + + + + Gets or sets whether tooltip control is popup tooltip or standard control. Default is false which means tooltip is popup style. + + + + + Represents class that holds padding information for user interface elements. + + + + + Gets or sets padding on left side. Default value is 0 + + + + + Gets or sets padding on right side. Default value is 0 + + + + + Gets or sets padding on top side. Default value is 0 + + + + + Gets or sets padding on bottom side. Default value is 0 + + + + + Creates new instance of the class and initializes it. + + Padding for all sides + + + + Creates new instance of the class and initializes it. + + Left padding + Right padding + Top padding + Bottom padding + + + + Raises the PropertyChanged event. + + Event arguments + + + + Gets amount of Top padding + + + + + Gets amount of Left padding + + + + + Gets amount of Bottom padding + + + + + Gets amount of Right padding + + + + + Gets amount of horizontal padding (Left+Right) + + + + + Gets amount of vertical padding (Top+Bottom) + + + + + Gets whether Padding is empty. + + + + + Gets or sets the padding for all sides. + + + + + Occurs when property value has changed. + + + + + Summary description for ThemedButtonItemPainter. + + + + + Provides data for toolbar rendering. + + + + + Gets or sets the reference to Bar object being rendered + + + + + Gets or sets Graphics object bar is rendered on. + + + + + Gets the bounds of the region that should be rendered. + + + + + Reference to internal data. + + + + + Creates new instance of the object and initializes it with default data. + + Reference to bar object. + Reference to Graphics object. + + + + Describes the round rectangle shape. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + Initializes a new instance of the RoundCornerDescriptor class. + + + + + + + + + Gets or sets the top-left round corner size. + + + + + Gets or sets the top-right round corner size. + + + + + Gets or sets the bottom-left round corner size. + + + + + Gets or sets the bottom-right round corner size. + + + + + Gets whether all corner size values are set to zero which results in no rounded corners. + + + + + Gets whether all corner size values are set to same value. + + + + + Represents DocumentDockContainer object converter. + + + + + Initializes a new instance of the ScrollBarAdv class. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Gets whether scrollbar is vertical. + + true if scrollbar is vertical otherwise false for horizontal scrollbar + + + + Raises the Scroll event. + + Provides Event arguments. + + + + Raises the ValueChanged event. + + Provides Event arguments. + + + + Called when Command property value changes. + + + + + Occurs when the Value property is changed, either by a Scroll event or programmatically. + + + + + Occurs when the scroll box has been moved by either a mouse or keyboard action. + + + + + Gets or sets a value to be added to or subtracted from the Value property when the scroll box is moved a large distance. + A numeric value. The default value is 10. + ArgumentOutOfRangeException is raised if assigned value is less than 0. + + + + + Gets or sets the upper limit of values of the scrollable range. + A numeric value. The default value is 100. + + + + + Gets or sets the lower limit of values of the scrollable range. + A numeric value. The default value is 0. + + + + + Gets or sets the value to be added to or subtracted from the Value property when the scroll box is moved a small distance. + A numeric value. The default value is 1. + ArgumentOutOfRangeException is raised if assigned value is less than 0. + + + + + Gets or sets a numeric value that represents the current position of the scroll box on the scroll bar control. + A numeric value that is within the Minimum and Maximum range. The default value is 0. + ArgumentOutOfRangeException is raised if assigned value is less than the Minimum property value or assigned value is greater than the Maximum property value. + + + + + Gets or sets the scroll bar appearance style. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Summary description for ScrollButton. + + + + + Clean up any resources being used. + + + + + Represents class that provides shadows to elements. + + + + + Creates new instance of shadow painter. + + + + + Represents class that provides display context for shadow painter. + + + + + Summary description for ShortcutList. + + + + + Represents the Outlook like Side-bar Control. + + + + + Creates new instance of side bar control. + + + + + Clean up any resources being used. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Returns the renderer control will be rendered with. + + The current renderer. + + + + Raises ItemLayoutUpdated event. + + Provides event arguments. + + + + Invokes ItemDoubleClick event. + + Reference to item double-clicked + Event arguments + + + + Returns the collection of items with the specified name. + + Item name to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the collection of items with the specified name and type. + + Item name to look for. + Item type to look for. + + + + + Returns the first item that matches specified name. + + Item name to look for. + + + + + Invokes the DotNetBar Customize dialog. + + + + + Invokes SerializeItem event. + + Provides data for the event. + + + + Invokes DeserializeItem event. + + Provides data for the event. + + + + Loads the Side bar definition from file. + + Definition file name. + + + + Saves the Side bar definition to file. + + Definition file name. + + + + Occurs when Checked property of an button has changed. + + + + + Occurs when Item is clicked. + + + + + Occurs when Item is clicked. + + + + + Occurs when popup of type container is loading. + + + + + Occurs when popup of type container is unloading. + + + + + Occurs when popup item is about to open. + + + + + Occurs when popup item is closing. + + + + + Occurs just before popup window is shown. + + + + + Occurs when Item Expanded property has changed. + + + + + Occurs when mouse button is pressed. + + + + + Occurs when mouse button is released. + + + + + Occurs when mouse enters the item. + + + + + Occurs when mouse leaves the item. + + + + + Occurs when mouse moves over the item. + + + + + Occurs when mouse remains still inside an item for an amount of time. + + + + + Occurs when item loses input focus. + + + + + Occurs when item receives input focus. + + + + + Occurs when user changes the item position, removes the item, adds new item or creates new bar. + + + + + Occurs after an Item is removed from SubItemsCollection. + + + + + Occurs after an Item has been added to the SubItemsCollection. + + + + + Occurs when ControlContainerControl is created and contained control is needed. + + + + + Occurs when Text property of an Item has changed. + + + + + Use this event if you want to serialize the hosted control state directly into the DotNetBar definition file. + + + + + Use this event if you want to deserialize the hosted control state directly from the DotNetBar definition file. + + + + + Occurs after DotNetBar definition is loaded. + + + + + Occurs before an item in option group is checked and provides opportunity to cancel that. + + + + + Occurs before tooltip for an item is shown. Sender could be the BaseItem or derived class for which tooltip is being displayed or it could be a ToolTip object itself it tooltip is not displayed for any item in particular. + + + + + Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data + to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. + + + To serialize custom data to XML definition control creates handle this event and use CustomXmlElement + property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. + + + + + Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data + you have serialized during SerializeItem event. + + + To de-serialize custom data from XML definition handle this event and use CustomXmlElement + property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. + + + + + Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must + also be set to the custom renderer that will be used. + + + + + Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer + specified here to be used. + + + + + Gets or sets visual appearance for the control. + + + + + Gets or sets whether flat side bar is using system colors. + + + This property is used internally by side bar to determine whether to reset color scheme based on system colors. + If you want side bar to use system colors you need to set PredefinedColorScheme property. + + + + + Gets or sets Bar Color Scheme. + + + + + Gets/Sets the visual style of the SideBar. + + + + + Specifies whether SideBar is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Occurs after internal item layout has been updated and items have valid bounds assigned. + + + + + Returns the collection of side-bar Panels. + + + + + Gets or sets the expanded panel. Only one panel can be expanded at a time. + + + + + Gets or sets the form SideBar is attached to. + + + + + Gets or sets whether end-user can rearrange the items inside the panels. + + + + + Gets or sets whether native .NET Drag and Drop is used by side-bar to perform drag and drop operations. AllowDrop must be set to true to allow drop of the items on control. + + + + + Gets or sets whether external ButtonItem object is accepted in drag and drop operation. UseNativeDragDrop must be set to true in order for this property to be effective. + + + + + Gets or sets whether gray-scale algorithm is used to create automatic gray-scale images. Default is true. + + + + + ImageList for images used on Items. Images specified here will always be used on menu-items and are by default used on all Bars. + + + + + ImageList for medium-sized images used on Items. + + + + + ImageList for large-sized images used on Items. + + + + + Indicates whether Tooltips are shown on Bars and menus. + + + + + Indicates whether item shortcut is displayed in Tooltips. + + + + + Indicates whether Reset buttons is shown that allows end-user to reset the toolbar state. + + + + + Returns the reference to the container that containing the sub-items. + + + + + Gets/Sets control border style. + + + + + Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. + + + + + Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. + + + + + Gets/Sets Bar definition as XML string. + + + + + Indicates whether shortucts handled by items are dispatched to the next handler or control. + + + + + Represents the method that will handle the ItemRemoved event. + + + + + Provides layout for Side-Bar control. + + + + + Creates new instance of SideBarContainerItem class. + + + + + Returns copy of SideBarContainerItem item + + + + + Recalculates the size of the item + + + + + Paints this base container + + + + + Occurs when sub item expanded state has changed. + + Sub item affected. + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Sets input focus to next visible item in Explorer Bar. + + True if focus was set to next visible item otherwise false. + + + + Sets input focus to previous visible item in Explorer Bar. + + True if focus was set to previous visible item otherwise false. + + + + Gets or sets a value indicating whether the item is expanded or not. For Popup items this would indicate whether the item is popped up or not. + + + + + Summary description for SideBarPanelControl. + + + + + Represents the Side-Bar Panel item. + + + + + Creates new instance of SideBarPanelItem. + + + + + Creates new instance of SideBarPanelItem and assigns the name to it. + + Item name. + + + + Creates new instance of SideBarPanelItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of SideBarPanelItem item. + + + + + Returns the Font object to be used for drawing the item text. + + Font object. + + + + Occurs when the mouse pointer is moved over the item. This is used by internal implementation only. + + + + + Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. + + + + + Occurs when the item is clicked. This is used by internal implementation only. + + + + + Overloaded. Serializes the item and all sub-items into the XmlElement. + + XmlElement to serialize the item to. + + + + Overloaded. Deserializes the Item from the XmlElement. + + Source XmlElement. + + + + Shows tooltip for this item. + + + + + Forces the repaint the item. + + + + + Must be called by any sub item that implements the image when image has changed + + + + + Gets whether mouse is over the panel header. + + + + + Gets whether mouse is pressed over the panel header. + + + + + Specifies panel title text alignment. Default value is Center. + + + + + Gets or sets the layout type for the items. Default layout orders items in a single column. Multi-column layout will order + items in multiple colums based on the width of the control. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the item background style. + + + + + Gets or sets the item header style. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header style when mouse is over the header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header style when left mouse button is pressed on header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style when mouse is over the header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets the item header side style when left mouse button is pressed on header. Applies only when SideBar.Appearance is set to Flat. + + + + + Gets or sets whether the font used to draw the item text is bold. + + + + + Gets or sets whether the font used to draw the item text is bold when mouse is over the item. + + + + + Gets or sets whether the font used to draw the item text is underlined when mouse is over the item. + + + + + Gets or sets the text color of the button when mouse is over the item. + + + + + Gets or sets the text color of the button. + + + + + Gets/Sets the Image size for all sub-items on the Bar. + + + + + Gets the rectangle of the panel item Button. + + + + + Gets or sets the index of the first visible item on the panel. + + + + + Gets or sets a value that determines whether text is displayed in multiple lines or one long line. + This setting applies to the buttons inside Panel as well. + + + + + Gets or sets whether scroll buttons are displayed when content of the panel exceeds it's height. + + + + + Specifies the Button icon. Icons support multiple image sizes and alpha blending. + + + + + Specifies the Button image. + + + + + Specifies the index of the image for the button if ImageList is used. + + + + + Specifies the image for the button when mouse is over the item. + + + + + Specifies the index of the image for the button when mouse is over the item when ImageList is used. + + + + + Specifies the image for the button when mouse left button is pressed. + + + + + Specifies the index of the image for the button when mouse left button is pressed and ImageList is used. + + + + + Represents class that provide display support for simple tabs. + + + + + Default constructor. + + + + + Provides layout management for ISimpleTab tab implementations. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Represents painter for Mozilla style splitter. + + + + + Base class for painting expandable splitter control. + + + + + Default constructor. + + + + + Paints splitter. + + Paint information. + + + + Creates new instance of splitter painter. + + + + + Paints splitter. + + Paint information. + + + + Represents painter for Office 2003 style splitter. + + + + + Creates new instance of splitter painter. + + + + + Paints splitter. + + Paint information. + + + + Represents class that holds information neccessary to paint the expandable splitter. + + + + + Specifies reference to graphics canvas. + + + + + Specifies splitter display rectangle. + + + + + Holds color settings for painting. + + + + + Specifies whether splitter is expandable or not. + + + + + Specifies whether splitter is expanded or not. + + + + + Specifies the splitter dock. + + + + + Represents class that holds colors for the splitter display. + + + + + Specifies back color. + + + + + Specifies target gradient background color. + + + + + Specifies background gradient angle. + + + + + Specifies grip part dark color. + + + + + Specifies grip part light color. + + + + + Specifies expand part line color. + + + + + Specifies expand part fill color. + + + + + Initializes a new instance of the StyleManager class. + + + + + Initializes a new instance of the StyleManager class with the specified container. + + An IContainer that represents the container for the command. + + + + Updates Ambient colors for control and its child controls. + + + + + + Updates ambient colors for the control and its children. + + + + + + Gets whether property should be serialized by WinForms designer. + + + + + Resets property to its default value. + + + + + Changes the StyleManager style and color tint in one step. Use this method if you need to change style and color tint simultaneously in single step for better performance. + + New style. + Color tint for the style. + + + + Registers control with the StyleManager so control can be notified of global style changes. + + Control to register with the StyleManager. + + + + Unregister the control from StyleManager notifications. + + Control that was registered through Register method. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Returns whether style is a Metro type style. + + style to test. + true if Metro type style otherwise false. + + + + Gets or sets the global style for the controls that have Style=ManagerControlled. + + + + + Gets or sets the color current style is tinted with. + + + + + Gets previous effective style. + + + + + Gets or sets color generation parameters for Metro color generator. + + + + + Gets or sets color generation parameters for Metro color generator. + + + + + Gets or sets the current visual style. + + + + + Gets or sets the color tint that is applied to current Office 2007, Office 2010 or Windows 7 color table. + Default value is Color.Empty which indicates that no color blending is performed. + + + + + Defines the StyleManager styles. + + + + + Manages whether ambient property settings (BackColor, ForeColor etc.) are applied to child controls of the form when StyleManager component changes style. + + + + + Initializes a new instance of the StyleManagerAmbient class. + + + + + Initializes a new instance of the StyleManagerAmbient class with the specified container. + + An IContainer that represents the container for the command. + + + + Gets ambient settings StyleManager is allowed to change on the control. + + + + + Sets the ambient settings StyleManager is allowed to change on component. + + Reference to supported component. + Ambient settings that StyleManager may change. + + + + Specifies ambient settings enabled on the control for StyleManager. + + + + + All ambient settings are allowed to change. + + + + + StyleManager cannot change ambient settings. + + + + + StyleManager should process child controls. + + + + + StyleManager should change BackColor. + + + + + StyleManager should change ForeColor. + + + + + Constructor + + Associated SuperTabItem + + + + Paint processing + + + + + + Gets the default tab ContentRectangle + + Rectangle + + + + Gets the tab ContentRectangle + + Rectangle + + + + Gets the tab path + + GraphicsPath + + + + Sets the default color tables + + + + + Gets the tab ColorTable + + ColorTable + + + + Gets the tab state + + eTabState + + + + Gets the tab panel Color Table + + Color Table + + + + Draws the tab background + + Graphics + Tab path + StateColorTable + + + + Draws the tab border + + Graphics + Tab path + Color table + + + + Draws the tab contents + + Graphics + State color table + + + + Draws the tab image + + Graphics + + + + Draws the tab text + + + + + + + Draws the tab close button + + Graphics + State color table + + + + Sets the GraphicsTransform for the given alignment + and Horizontal text setting + + Graphics + Rectangle to transform + Transformed rectangle + + + + Resets out transform + + Graphics + + + + Gets the focus rectangle + + + + + + + Gets the tab close button bitmap + + Graphics + State color table + Button bitmap + + + + Creates the close button bitmap + + Graphics + State color table + Close bitmap + + + + Gets the hot close button bitmap + + Graphics + Close bitmap + + + + Creates the hot button bitmap + + Graphics + Close bitmap + + + + Gets the pressed close button bitmap + + Graphics + Close bitmap + + + + Creates the pressed button bitmap + + Graphics + Close bitmap + + + + Gets the close button path + + Close rectangle + Corner radius + + + + + Gets or sets the default item ColorTable + + + + + Constructor for Office2007 style SuperTabItem base display + + Associated SuperTabItem + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Handles ContentManager NextPosition events + + + + + + + Handles RecalcSize requests + + + + + + Handles RecLayoutContent requests + + + + + Initializes the layout engine + + + + + + Performs the Recalc Layout + + + + + + Recalculates the bounds for the TabControlBox + + + + + + + Gets the tab client area + + + + + + Gets the tab client area + + + + + + Gets the tab height + + + + + + Layout manager NextBlockPosition + + + + + + PromoteTab NextBlockPosition + + + + + + + + Determines if all tabs are visible + + + + + + Paint processing + + + + + + Draws the background + + + + + + + Draws the tabs + + + + + + Draws the Drag and Drop insert marker + + ItemPaintArgs + Color table + + + + Draws the top insert marker + + + + + + Draws the left insert marker + + + + + + Determines if the given items are on the same line + + + + + + + + Draws the TabStrip border + + + + + + + Gets the inner and outer border lines + + + + + + + Sets the default color table + + + + + Gets the tab color table + + Tab color table + + + + Gets the tab close button bitmap + + + + + + + + Creates the tab close button bitmap + + + + + + + Gets the Menu button bitmap + + + + + + + + Create the Menu button bitmap + + + + + + + Gets the Menu button path + + + + + + Gets the Menu button bitmap + + + + + + + + Create the Menu button bitmap + + + + + + + Gets the Menu button path + + + + + + Gets the TabAlignment + + + + + gets or sets the default color table + + + + + Gets if display is RightToLeft + + + + + Gets tab vertical orientation + + + + + Gets the minimum TabStrip height + + + + + Gets whether we are to show the Focus rectangle + + + + + Gets CloseButtonOnTabsVisible + + + + + Gets FixedTabSize + + + + + Gets the minimum tab size + + + + + Gets the selected tab + + + + + Gets the selected font + + + + + Gets the tab ControlBox + + + + + Gets the tab height + + + + + Gets the tab bounds + + + + + Gets the Tabs collection + + + + + Gets the TabStrip + + + + + Gets the TabStripItem + + + + + Gets the PreDrawStripBorder state + + + + + Gets the SelectedPaddingWidth + + + + + Gets the TabOverlap + + + + + Gets the TabSpacing + + + + + Gets the TabOverlapLeft + + + + + Gets the TabLayoutOffset + + + + + Office2007 TabStrip base display constructor + + Associated TabStrip + + + + Tab layout offsets + + + + + Office 2010 Backstage SuperTabItem display constructor + + Associated SuperTabItem + + + + Draws the tab border + + + + + + + + Draws the Backstage SelectedItem marker + + + + + + + DrawTabItemBackground + + + + + + + + DrawTabItemHighLight + + + + + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Gets the Layout manager NextBlockPosition + + + + + + Gets the "PromoteSelTab" NextBlockPosition + + + + + + + + Draws the background + + + + + + + PreDrawStripBorder + + + + + SelectedPaddingWidth + + + + + Constructor for OfficeMobile2014 style SuperTabItem base display + + Associated SuperTabItem + + + + Calculates the Content Rectangle for the tab + + Content Rectangle + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + OfficeMobile2014 SuperTabStripBaseDisplay + + Associated TabStripItem + + + + Gets the next layout block position + + LayoutManagerPositionEventArgs + + + + Gets the next block position when attempting + to make a specific tab visible + + Potential item to replace + View item being placed + Block Rectangle + + + + Returns the Minimum tab size for this style + + + + + Tab layout offsets + + + + + Tab Overlap + + + + + Tab Spacing + + + + + Constructor for OneNote2007 style SuperTabItem base display + + Associated SuperTabItem + + + + Calculates the Content Rectangle for the tab + + Content Rectangle + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + OneNote2007 SuperTabStripBaseDisplay + + Associated TabStripItem + + + + Gets the next layout block position + + LayoutManagerPositionEventArgs + + + + Gets the next block position when attempting + to make a specific tab visible + + Potential item to replace + View item being placed + Block Rectangle + + + + Returns the Minimum tab size for this style + + + + + Tab Overlap + + + + + Tab Spacing + + + + + Constructor + + Associated SuperTabControlBox + + + + Performs RecalcSize processing + + + + + Refreshes the CloseBox + + + + + Performs control Paint processing + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + Returns copy of the item + + + + + Gets or sets the CloseBox Visible state + + + + + Gets whether the mouse is down + + + + + Gets whether the mouse is over the CloseBox + + + + + Constructor + + Associated SuperTabStripItem + + + + Performs RecalcSize processing + + + + + Performs RecalcLayout processing + + + + + Performs individual running layout processing for the given BaseItem + + Item to Layout + Running Layout Size + Whether a recalcSize is needed + New running Size + + + + Refresh code + + + + + Paint processing + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseMove + + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + Gets the ControlBoxItem from the given Point + + + + + + + OnItemAdded + + + + + + OnAfterItemRemoved + + + + + + Removes all user added items from the ControlBox + + + + + Returns copy of the item. + + + + + Gets or sets the ControlBox Bounds + + + + + Gets the CloseBox + + + + + Gets the MenuBox + + + + + Gets or sets the ControlBox Visible state + + + + + Gets the MouseDown state + + + + + Gets the MouseOver state + + + + + Gets the TabStrip TabDisplay + + + + + Constructor + + Associated SuperTabControlBox + + + + RecalcSize + + + + + Refreshes the display + + + + + Paint processing + + + + + + Determines if all the items are visible + + true if all visible + + + + Gets MenuButton1 + + + + + + + + Gets MenuButton2 + + + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + Gets the popup menu position + + + + + + Loads the TabMenu + + + + + Loads Tabs only into the TabMenu + + + + + + Loads all items into the TabMenu + + + + + + Sets the TabMenu entry image + + + + + + + Handles SuperTabMenuBox_Click event + + + + + + + InternalMouseUp + + + + + + Returns copy of the item. + + + + + Gets or sets whether the MenuBox is automatically hidden when the tab items size does not exceed the size of the control + + + + + Gets or sets whether the MenuBox raises a ClickEvent when selected + + + + + Gets or sets whether MenuBox shows only Tabs entries + + + + + Gets or sets whether the MenuBox displays each menu entry with its associated Image/Icon + + + + + Gets or sets MenuBox Visible state + + + + + Gets the MouseDown state + + + + + Gets the MouseOver state + + + + + Constructor + + + + + Sets the tab docking based upon the given alignment + + + + + + Hooks (or unhooks) underlying TabStrip events + + true to hook, false to unhook + + + + Handles TabItemOpen events + + + + + + + Handles TabItemClose events + + + + + + + Handles TabMoving events + + + + + + + Handles TabMoved events + + + + + + + Handles TabRemoved events + + + + + + + Handles SelectedTabChanging events + + + + + + + Handles SelectedTabChanged events + + + + + + + Handles GetTabItemPath events + + + + + + + Handles GetTabItemContentRectangle events + + + + + + + Handles BeforeTabDisplay events + + + + + + + Handles MeasureTabItem events + + + + + + + Handles PreRenderTabItem events + + + + + + + Handles PostRenderTabItem events + + + + + + + Handles GetTabCloseBounds events + + + + + + + Handles GetTabImageBounds events + + + + + + + Handles GetTabTextBounds events + + + + + + + Handles TabStripPaintBackground events + + + + + + + Handles StyleManagerStyleChanged events + + + + + + Handles TabStripTabColorChanged events + + + + + + + Handles TabStrip_MouseUp events + + + + + + + Handles TabStrip_MouseDown events + + + + + + + Handles TabStrip_MouseMove events + + + + + + + Handles TabStrip_MouseClick events + + + + + + + Handles TabStrip_MouseDoubleClick events + + + + + + + Handles TabStrip_MouseEnter events + + + + + + + Handles TabStrip_MouseHover events + + + + + + + Handles TabStrip_MouseLeave events + + + + + + + Creates a TabControl tab + + + + + + + Creates a TabControl tab + + + + + + + + Creates a TabControl tab + + + + + + + + + Selects the previous tab + + true if tab selected + + + + Selects the next tab + + true if tab selected + + + + Gets the SuperTabItem tab containing the given Point + + Point to test + Associated tab, or null + + + + Gets the item (SuperTabItem or BaseView) associated + with the given Point + + Point to test + BaseItem or null + + + + Closes the given tab + + + + + + Causes a Layout Recalculation of the SuperTabControl + + + + + Refreshes all panel styles + + + + + Applies color and border settings to the given panel + + + + + + Applies color settings to the given panel + + + + + + + Applies border settings for the given panel + + + + + + Performs OnSystemColorsChanged processing + + + + + + Performs OnResize processing + + + NOT NEEDED. Let WinForms layout do the work! + + + + OnControlAdded + + + + + + OnControlRemoved + + + + + + BeginInit + + + + + EndInit + + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when a TabStrip MouseUp event is raised + + + + + Occurs when a TabStrip MouseDown event is raised + + + + + Occurs when a TabStrip MouseMove event is raised + + + + + Occurs when a TabStrip MouseClick event is raised + + + + + Occurs when a TabStrip MouseDoubleClick event is raised + + + + + Occurs when a TabStrip MouseEnter event is raised + + + + + Occurs when a TabStrip MouseHover event is raised + + + + + Occurs when a TabStrip MouseLeave event is raised + + + + + Gets or sets whether TabStrip will get focus when Tab key is used. Default value is false. + + + + + Gets or sets whether tabs are automatically closed when a close button is clicked + + + + + Gets or sets whether the tab's visible close button is displayed for every tab state + + + + + Gets or sets whether close button is visible on each tab + + + + + Gets or sets the position of the tab close button + + + + + Gets or sets the custom tab Close button image + + + + + Gets or sets the custom Close button image that is used on tabs when the mouse is over the close button + + + + + Gets or sets the custom Close button image that is used on tabs when the button has been pressed + + + + + Gets the TabStrip ControlBox + + + + + Gets or sets whether the only Text displayed is for the SelectedTab + + + + + Gets or sets whether text is drawn horizontally regardless of tab orientation + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets the ImageList used by the TabStrip and its tab items + + + + + Gets or sets BaseItem tab padding in pixels. + + + + + Gets or sets whether vertical tab text is rotated 180 degrees + + + + + Gets or sets the SelectedTab based upon the given panel + + + + + Gets or sets whether a focus rectangle is displayed when tab has input focus + + + + + Gets or sets the fixed tab size in pixels. Either Height, Width, or both can be set + + + + + Gets or sets whether a tab is currently in a drag operation + + + + + Gets or sets whether tabs can be reordered through the user interface + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the index of the selected tab + + + + + Gets or sets the tab alignment within the Tab-Strip control + + + + + Gets or sets the tab Font + + + + + Gets or sets the Horizontal spacing around tab elements + + + + + Gets or sets the type of the tab layout + + + + + Gets the collection of Tabs + + + + + Gets the control TabStrip + + + + + Gets or sets the Color of the TabStrip + + + + + Gets or sets the tab style + + + + + Gets or sets the Vertical spacing around tab elements + + + + + Gets or sets whether tabs are visible + + + + + Gets or sets tab text alignment + + + + + Gets the DefaultSize + + + + + Indicates whether Form.Validate is called and checked before selected tab is changed. Default value is true. + + + + + Represents Panel for the SuperTabControl + + + + + + _PanelColor_ColorTableChanged + + + + + + + Processes ColorTable changes + + + + + GetStyle + + + + + + Provides OnPaint support + + + + + + Occurs when the tab colors have changed + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Gets or sets user specified tab panel display colors + + + + + Gets or sets the Panel ElementStyle + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Specifies background image position when container is larger than image. + + + + + Constructor + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when SymbolSize property has changed. + + Old property value + New property value + + + + Hooks or unhooks control events + + true to hook + + + + SuperTabItem_TextChanged processing + + + + + + + TextMarkupLinkClick + + + + + + + OnMarkupLinkClick + + + + + + ColorTable_ColorTableChanged + + + + + + + Processes ColorTable changes + + + + + Closes the tab + + + + + Gets the operational tab font + + + + + + Gets the tab ColorTable + + SuperTabItemStateColorTable + + + + Gets the tab ColorStateTable for the given state + + eTabState + SuperTabItemStateColorTable + + + + Gets the tab Panel ColorTable + + + + + + Gets the area of the tab that contains the given Point + + + + + + + Determines if the given Point is in the tab + + Point to test + true if Point is in tab + + + + Gets the tab bordering GraphicsPath + + GraphicsPath + + + + Gets the Close Button bounding Rectangle + + Bounding Rectangle + + + + Gets the Image bounding Rectangle + + Bounding Rectangle + + + + Gets the Text bounding Rectangle + + Bounding Rectangle + + + + Calculates Close button bounds + + Running rectangle + Running rectangle + + + + Calculates Image bounds + + Running rectangle + Running rectangle + + + + Refreshes the tab owner + + + + + Refreshes the tab display + + + + + Paint processing + + + + + + InternalMouseMove + + + + + + InternalMouseEnter + + + + + InternalMouseLeave + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + ToString + + + + + + Dispose + + + + + Returns copy of the item. + + + + + Copies specific properties to new instance of the item. + + New SuperTabItem instance + + + + Occurs when text markup link is clicked + + + + + Occurs when the tab colors have changed + + + + + IsMarkupSupported + + + + + Gets or sets the default SelectedTabFont + + + + + Gets the tab CloseButton Bounds + + + + + Gets or sets the CloseButtonMouseOver state + + + + + Gets or sets the CloseButtonPressed state + + + + + Gets the effective image alignment + + + + + Gets the tab Image Bounds + + + + + Gets the tabs vertical orientation + + + + + Gets the TabItemDisplay + + + + + Gets the tabs TabStrip + + + + + Gets the tabs Text Bounds + + + + + Gets or sets whether image animation is enabled + + + + + Gets or sets user specified tab display colors + + + + + Gets or sets whether Close button on the tab is visible when SuperTabStrip.CloseButtonOnTabsVisible property is set to true + + + + + Enabled + + + + + Gets or sets whether text-markup support is enabled for the control's Text property + + + + + Gets or sets the FixedTabSize + + + + + Gets or sets the tab icon. Icon has same functionality as Image except that it supports Alpha blending + + + + + Gets or sets the tab image + + + + + Gets or sets the tab image index + + + + + Gets or sets the alignment of the Image within the tab + + + + + Gets or sets the spacing between content and edges of the Image + + + + + Gets or sets the predefined color for the tab + + + + + Gets or sets the selected tab Font + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of + the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Gets or sets the color of the Symbol. + + + + + Indicates the size of the symbol in points. + + + + + Gets or sets the text alignment + + + + + Gets or sets the tab Font + + + + + Gets or sets the tab text + + + + + Gets or sets the control that is attached to this tab + + + + + Gets or sets the tab Bounds + + + + + Gets the MouseOver state + + + + + Gets the tab selected state + + + + + Gets the tab alignment + + + + + Gets the tab Content Rectangle + + + + + Gets or sets the tab TabStripItem + + + + + Gets or sets the tabs TabStyle + + + + + Visible + + + + + Alignment + + + + + + + + + TopLeft + + + + + TopCenter + + + + + TopRight + + + + + MiddleLeft + + + + + MiddleCenter + + + + + MiddleRight + + + + + BottomLeft + + + + + BottomCenter + + + + + BottomRight + + + + + Tab area parts + + + + + Tab states + + + + + Constructor + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + ShowWithoutActivation + + + + + Constructor + + + + + Hooks or unhooks TabStripItem events + + true to hook + + + + TabStripItem_TabItemOpen + + + + + + + TabStripItem_TabItemClose + + + + + + + TabStripItem_TabRemoved + + + + + + + TabStripItem_TabMoving + + + + + + + TabStripItem_TabMoved + + + + + + + TabStripItem_GetTabItemPath + + + + + + + TabStripItem_GetTabItemContentRectangle + + + + + + + TabStripItem_BeforeTabDisplay + + + + + + + TabStripItem_MeasureTabItem + + + + + + + TabStripItem_PreRenderTabItem + + + + + + + TabStripItem_PostRenderTabItem + + + + + + + TabStripItem_GetTabCloseBounds + + + + + + + TabStripItem_GetTabImageBounds + + + + + + + TabStripItem_GetTabTextBounds + + + + + + + TabStripItem_TabStripPaintBackground + + + + + + + TabStripItem_SelectedTabChanging + + + + + + + TabStripItem_SelectedTabChanged + + + + + + + TabStripItem_TabStripTabColorChanged + + + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Performs layout recalculation + + + + + Ensures that the given tab is visible on the TabStrip + + + + + + Gets the SuperTabItem from the given Point + + + SuperTabItem or null + + + + Gets the BaseItem from the given Point + + + BaseItem or null + + + + Closes the given tab + + + + + + Selects the previous tab + + true if successful + + + + Selects the next tab + + true if successful + + + + OnResize processing + + + + + + BeginInit + + + + + EndInit + + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when the TabStrip TabColor has changed + + + + + Gets or sets whether the control attached to the TabItem.AttachedControl property + is automatically selected when TabItem becomes the selected tab. Default value is true. + + + + + Gets or sets whether tabs are automatically closed when a close button is clicked + + + + + Gets or sets whether the tab's visible close button is displayed for every tab state + + + + + Gets or sets whether close button is visible on each tab + + + + + Gets or sets the position of the tab close button + + + + + Gets or sets the custom tab Close button image + + + + + Gets or sets the custom Close button image that is used on tabs when the mouse is over the close button + + + + + Gets or sets the custom Close button image that is used on tabs when the button has been pressed + + + + + Gets the TabStrip ControlBox + + + + + Gets or sets whether the only Text displayed is for the SelectedTab + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets BaseItem tab padding in pixels. + + + + + Gets or sets whether vertical tab text is rotated 180 degrees + + + + + Gets or sets the fixed tab size in pixels. Either Height, Width, or both can be set + + + + + Gets or sets whether a tab is currently in a drag operation + + + + + Gets or sets whether tabs can be reordered through the user interface + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the index of the selected tab + + + + + Gets or sets the tab alignment within the Tab-Strip control + + + + + Gets or sets the tab Font + + + + + Gets or sets the Horizontal spacing around tab elements + + + + + Gets or sets the type of the tab layout + + + + + Gets the collection of Tabs + + + + + Gets or sets the Color of the TabStrip + + + + + Gets or sets the tab style + + + + + Gets or sets the Vertical spacing around tab elements + + + + + Gets the TabStrip associated TabStripItem + + + + + Gets or sets tab text alignment + + + + + Gets whether the tabStrip is visually available + + + + + Gets the Design state for the control + + + + + Gets the ISupportInitialize state + + + + + Gets the TabDisplay + + + + + Gets or sets the reference to ribbon application button when tab control is used as backstage ribbon control. + + + + + Gets the DefaultSize + + + + + Constructor + + Associated SuperTabStrip + + + + Syncs the Orientation of each SubItem to + the current TabAlignment Orientation + + + + + Gets the Orientation based upon the current + TabAlignment + + + + + + Makes sure all newly added items + are set to the design orientation and style + + + + + + Applies the current TabStyle to each tab and + sets the item style to the DotNetBarStyle from the TabStyle + + + + + Gets the DotNetBarStyle from the SuperTabStyle + + eDotNetBarStyle + + + + Hooks or unhooks our events + + + + + + Handles SubItemsChanged events + + + + + + + Handles newly added items + + + + + + Handles newly removed items + + + + + + Handles tab color changes + + + + + + + Handles color table changes + + + + + + + Performs NeedRecalcSize and refresh + + + + + Recalculates the size of the tabs. + + + + + Ensures that the given item is visible on the TabStrip + + + + + + Selects the given tab + + + + + + + Selects the previous tab + + + + + + Selects the previous tab + + + + + + Selects the next tab + + + + + + Selects the next tab + + + + + + UpdateSelectedTab + + + + + OnTabStyleChanged + + + + + OnMeasureTabItem + + + + + + + + + OnPreRenderTabItem + + + + + + + + OnPostRenderTabItem + + + + + + + OnGetTabItemContentRectangle + + + + + + + OnGetTabItemPath + + + + + + + OnSelectedTabRemoved + + + + + + + OnSelectedTabChanging + + + + + + + + OnSelectedTabChanged + + + + + + + + OnBeforeTabDisplay + + + + + + OnTabItemClose + + + + + + + OnTabStripColorChanged + + + + + OnPaintBackground + + + + + + + OnGetTextBounds + + + + + + + + OnGetImageBounds + + + + + + + + OnGetCloseBounds + + + + + + + + OnTabMoving + + + + + + + + + OnTabMoved + + Tab that was moved + Old tab order + New tab order + + + + + ItemAtLocation + + + + + + + + InternalClick + + + + + + + InternalMouseDown + + + + + + InternalMouseUp + + + + + + InternalMouseMove + + + + + + InternalOnMouseMove + + + + + + ProcessMouseMove + + + + + + HotTabMouseMove + + + + + + + ControlBoxMouseMove + + + + + + ProcessTabMove + + + + + + StartTabMove + + + + + + + SetDragWindowRegion + + + + + TabDragWindow_Paint + + + + + + + InternalMouseLeave + + + + + InternalOnMouseLeave + + + + + Get the tab at the given Point + + + SuperTabItem or null + + + + Gets the item at the given point + + + BaseItem or null + + + + Gets the next visible Tab + + + SuperTabItem + + + + Closes the given tab + + + + + + Paint processing + + + + + + SubItemSizeChanged + + + + + + Returns copy of the item. + + + + + Copies specific properties to new instance of the item. + + New SuperTabStripItem instance + + + + Occurs when a tab is added to the Tabs collection + + + + + Occurs when a tab is about to Close + + + + + Occurs when a tab is removed from the Tabs collection + + + + + Occurs when a tab is about to be displayed + + + + + Occurs when a tab is being moved or dragged by the user + + + + + Occurs when a tab has been moved or dragged by the user + + + + + Occurs when the Selected tab is changing + + + + + Occurs when the Selected tab has changed + + + + + Occurs when the control needs a tab's bordering path + + + + + Occurs when the control needs a tab's Content Rectangle + + + + + Occurs when the control needs to measure a tab + + + + + Occurs before any tab rendering is done + + + + + Occurs After all tab rendering is complete + + + + + Occurs when the control needs to get the tab's Text Bounds + + + + + Occurs when the control needs to get the tab's Image Bounds + + + + + Occurs when the control needs to get the tab's Close Button Bounds + + + + + Occurs when the TabStrip background needs painted + + + + + Occurs when the TabStrip TabColor has changed + + + + + Occurs when the TabStrip Color has changed + + + + + Gets or sets AutoCloseTabs + + + + + Gets or sets whether the control attached to the TabItem.AttachedControl property + is automatically selected when TabItem becomes the selected tab. Default value is true. + + + + + Gets or sets TabCloseButtonNormal + + + + + Gets or sets TabCloseButtonHot + + + + + Gets or sets TabCloseButtonPressed + + + + + Gets or sets TabHorizontalSpacing + + + + + Gets or sets TabVerticalSpacing + + + + + Gets or sets CloseButtonOnTabsVisible + + + + + Gets or sets CloseButtonOnTabsAlwaysDisplayed + + + + + Gets or sets CloseButtonPosition + + + + + Gets the ControlBox + + + + + Gets or sets DisplaySelectedTextOnly + + + + + Gets or set the Expanded state + + + + + Gets or sets the tab font + + + + + Gets or sets the selected tab font + + + + + Gets or sets the HorizontalText + + + + + Gets or sets the default alignment of the Image within the tab + + + + + Gets or sets the BaseItem tab padding. + + + + + Gets or sets RotateVerticalText + + + + + Gets or sets ShowFocusRectangle + + + + + Gets or sets the FixedTabSize + + + + + Gets or sets + + + + + Gets the MinTabStripHeight + + + + + Gets or sets ReorderTabsEnabled + + + + + Gets or sets the selected tab + + + + + Gets or sets the selected tab index + + + + + Gets or sets the tab alignment + + + + + Gets or sets the TabLayoutType + + + + + Gets or sets the TabStripColor + + + + + Gets or sets the TabStyle + + + + + Gets or sets the TextAlignment + + + + + Gets the First Visible Tab + + + + + Gets the HotTab + + + + + Gets the InsertTab + + + + + Gets whether to insert before or after + + + + + Gets the MouseOver tab + + + + + Gets TabStrip vertical orientation + + + + + Gets the Last Visible Tab + + + + + Gets the tab close button size + + + + + Gets the TabDisplay + + + + + Gets or sets the TabItemsBounds + + + + + Gets or sets the number of TabLines + + + + + Gets the TabStrip + + + + + Gets the visible tab count + + + + + Gets or sets the promoted visible tab + + + + + Generic ValueChangingEventArgs + + oldValue type + newValue type + + + + Gets the old value + + + + + Gets the new value + + + + + Generic ValueChangingSourceEventArgs + + oldValue type + newValue type + EventSource + + + + Gets the old value + + + + + Gets the new value + + + + + Gets the eventSource + + + + + Generic ValueChangedEventArgs + + oldValue type + newValue type + + + + Gets the old value + + + + + Gets the new value + + + + + Generic ValueChangedSourceEventArgs + + oldValue type + newValue type + EventSource + + + + Gets the old value + + + + + Gets the new value + + + + + Gets the eventSource + + + + + Gets the tab + + + + + Gets the tab + + + + + Gets the old order of the tabs + + + + + Gets or sets the new order of the tabs + + + + + TabStripTabColorChangedEventArgs + + + + + Constructor + + + + + Constructor + + Associated SuperTabStripItem + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + + Measures the given tab + + + + + + + Measures the markup text + + + + + + + + + Measures the given text + + + + + + + + + Finalizes the layout + + + + + + + + + Reorders the lines to keep the selected tab as line 0. + + + + + + + Adjusts the line layout + + + + + + + Gets the array od line sizes + + + + + + + Adjusts the individual blocks within a given line + + + + + + + Sets the Displayed status for the line blocks + + + + + + + Gets the count of BeginBreak groups + + + + + + + + Process item BeginBreaks + + + + + + + + + Makes sure the "VisibleTab" is in fact visible. + + + + + + + Determines what line th selected tab lies within + + + + + + + Finds the SelectedTab block + + + + + + + Resizes single line layouts + + + + + + Resizes multiline layouts + + + + + + gets or sets the FixedTabSize + + + + + Gets or sets the TabLayoutOffset + + + + + Gets the TabDisplay + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Applies the predefined tab color to the color table + + + + + + + Applies the predefined color to the panel color table + + + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the TabLayoutOffset + + + + + Constructor + + Associated SuperTabItem + + + + Returns the tab ContentRectangle + + + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the LayoutManager NextBlockPosition + + + + + + Gets the PromoteSelectedTab NextBlockPosition + + + + + + + + Gets the TabOverlap + + + + + Gets the TabSpacing + + + + + Gets the TabOverlapLeft + + + + + Gets the TabLayoutOffset + + + + + Gets the MinTabSize + + + + + Constructor + + Associated SuperTabItem + + + + Creates the tab item GraphicsPath + + Tab path + + + + Create the Top tab path + + GraphicsPath + + + + Creates the Bottom tab path + + GraphicsPath + + + + Creates the Left tab path + + GraphicsPath + + + + Create the Right tab path + + GraphicsPath + + + + Constructor + + Associated SuperTabStripItem + + + + Gets the Layout manager NextBlockPosition + + + + + + Gets the "PromoteSelTab" NextBlockPosition + + + + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Forces the button to perform internal layout. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Cancels animation if in progress. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Sets the value of the control with state transition animation (if enabled) and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Sets the value of the control and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Raises ValueObjectChanged event. + + Provides event arguments. + + + + Called when Command property value changes. + + + + + Occurs before Value property has changed and it allows you to cancel the change. + + + + + Occurs after Value property has changed. + + + + + Gets or sets the switch value. + + + + + Gets or sets the item border color. + + + + + Gets or sets whether state transition animation is enabled. + + + + + Gets or sets the color of the OFF state background. + + + + + Gets or sets the color of the ON state background. + + + + + Gets or sets the color of the ON state text. + + + + + Gets or sets the color of the OFF state text. + + + + + Gets or sets the border color of the button switch. + + + + + Gets or sets the background color of the switch button. + + + + + Gets or sets the text color. + + + + + Gets or sets the font that is used to draw ON/OFF text on the switch button. + + + + + Gets or sets the text that is displayed on switch when Value property is set to true. + + + + + Gets or sets the text that is displayed on switch when Value property is set to false. + + + + + Gets or sets the width in pixels of the switch part of the button. Minimum value is 6. + + + + + Gets the switch bounds. + + + + + Gets the On part of the switch button bounds excluding the SwitchBounds. + + + + + Gets the Off part of the switch button bounds excluding the SwitchBounds. + + + + + Gets or sets whether button is in read-only state meaning that it appears as enabled but user cannot change its state. + + + + + Gets or sets whether lock marker is visible on face of the control when IsReadOnly is set to true. + Default value is true. + + + + + Gets or sets the color of the read-only marker. + + + + + Indicates whether clicking left mouse button on the switch part of the item will toggle the switch Value. + + + + + Occurs after ValueObject property changes. + + + + + Gets or sets the object that represents the Value state of control. + + + + + Gets or sets the value that represents the True state of control when ValueObject property is set to that value. + + + + + Gets or sets the value that represents the False state of control when ValueObject property is set to that value. + + + + + Gets or sets the command assigned to the item. Default value is null. + Note that if this property is set to null Enabled property will be set to false automatically to disable the item. + + + + + Gets or sets user defined data value that can be passed to the command when it is executed. + + + + + Represents the switch button UI element. + + + + + Raises ValueChanging event. + + Provides event arguments. + + + + Raises ValueChanged event. + + Provides event arguments. + + + + Creates new instance of SwitchButtonItem. + + + + + Creates new instance of SwitchButtonItem and assigns the name to it. + + Item name. + + + + Creates new instance of SwitchButtonItem and assigns the name and text to it. + + Item name. + item text. + + + + Returns copy of the item. + + + + + Copies the SwitchButtonItem specific properties to new instance of the item. + + New SwitchButtonItem instance. + + + + Copies the SwitchButtonItem specific properties to new instance of the item. + + New SwitchButtonItem instance. + + + + Sets the value of the control and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Sets the value of the control with state transition animation (if enabled) and specifies the source of the action. + + New value for Value property. + Source of the action. + + + + Cancels any current inprogress animation. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Occurs before Value property has changed and it allows you to cancel the change. + + + + + Occurs after Value property has changed. + + + + + Gets whether item supports text markup. Default is false. + + + + + Gets or sets whether text-markup support is enabled for items Text property. Default value is true. + Set this property to false to display HTML or other markup in the item instead of it being parsed as text-markup. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the switch value. + + + + + Indicates whether clicking left mouse button on the switch part of the item will toggle the switch Value. + + + + + Gets the switch bounds. + + + + + Gets the button bounds. + + + + + Gets the On part of the switch button bounds excluding the SwitchBounds. + + + + + Gets the Off part of the switch button bounds excluding the SwitchBounds. + + + + + Gets or sets the switch offset from its initial position. Used for animation and dragging of the switch. + + + + + Gets whether switch part of the button is pressed using mouse left button. + + + + + Gets or sets the width in pixels of the switch part of the button. Minimum value is 6. + + + + + Gets or sets the text that is displayed on switch when Value property is set to true. + + + + + Gets or sets the text that is displayed on switch when Value property is set to false. + + + + + Gets whether fade effect is enabled. + + + + + Gets or sets whether state transition animation is enabled. + + + + + Gets or sets the width of the switch button. Must be greater than SwitchWidth. + + + + + Gets or sets the height of the switch button. Must be greater than 5. + + + + + Gets or sets text padding. + + + + + Gets or sets switch margin. + + + + + Gets or sets the color of the OFF state background. + + + + + Gets or sets the color of the ON state background. + + + + + Gets or sets the color of the ON state text. + + + + + Gets or sets the color of the OFF state text. + + + + + Gets or sets the item border color. + + + + + Gets or sets the border color of the button switch. + + + + + Gets or sets the background color of the switch button. + + + + + Gets or sets whether caption/label set using Text property is visible. + + + + + Gets or sets the text color. + + + + + Gets or sets the font that is used to draw ON/OFF text on the switch button. + + + + + Gets or sets whether button is in read-only state meaning that it appears as enabled but user cannot change its state. + + + + + Gets or sets whether lock marker is visible on face of the control when IsReadOnly is set to true. + Default value is true. + + + + + Gets or sets the color of the read-only marker. + + + + + Provides data for SwitchButton rendering. + + + + + Gets or sets Graphics object group is rendered on. + + + + + Gets or sets the reference to SwitchButtonItem being rendered. + + + + + ColorScheme object that is used to provide colors for rendering check box item in legacy styles like Office 2003. Office 2007 style + uses color tables provided by renderer. + + + + + Indicates whether item is in Right-To-Left environment. + + + + + Gets or sets the text font. + + + + + Gets or sets the ItemPaintArgs reference. + + + + + Creates new instance of the object and provides default values. + + Reference to Graphics object + Reference to SwitchButtonItem + Reference to legacy ColorScheme + Indicates the font for the text. + Indicates whether item is in Right-To-Left environment. + + + + Returns specific font set at specified size/ + + Font size + Symbol set to return + Font + + + + Returns FontAwesome at specific size. + + Font size in points + Font in desired size. + + + + Returns FontAwesome at specific size. + + Font size in points + Font in desired size. + + + + Gets FontAwesome at default size. + + + + + Returns FontAwesome Family. + + + + + Gets Material Font at default size. + + + + + Returns Material Font Family. + + + + + Gets the default size for the Material font size in points. + + + + + Gets the default size for the FontAwesome font size in points. + + + + + Represents colors for the active tab. + + + + + Creates new instance of the object. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Returns whether property should be serialized. + + true if property should be serialized otherwise false. + + + + Resets property to the default value. + + + + + Occurs after color property has changed. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Represents the class that defines colors for a tab control. + + + + + Default constructor. + + + + + Default contructor that accepts style. + + + + + Refreshes colors stored in the color scheme. This method is used for example to refresh the color after system display colors have changed. + + + + + Generates color scheme for flat style. + + + + + Generates color scheme for Office 2003 style. + + + + + Generates the VS2005 document tab like color scheme. + + + + + Generates Windows XP Themed color scheme. + + + + + Generates OneNote style color scheme. + + + + + Generates VS2005 style color scheme. + + + + + Generates OneNote style color scheme. + + + + + Generates OneNote style color scheme. + + + + + Resets changed flag for all color properties. When changed flag is set for a color property color is not automatically generated for that property. + Reseting the flag will ensure that all colors are automatically generated. + + + + + Applies predefinied tab item color scheme to the tab. + + Tab item to apply color to. + Predefined color to apply + + + + Applies predefinied tab item color scheme to the tab. + + Tab item to apply color to. + Predefined color to apply + + + + Gets or sets the style that color scheme represents. + + + + + Gets or sets whether themed color scheme is generated. + + + + + Indicates whether any of the colors has changed. + + + + + Gets or sets the tab-strip background image. + + + + + Specifies the background color of the tab control. + + + + + Specifies the target gradient background color of the tab control. + + + + + Specifies the gradient angle. + + + + + Specifies the border color of the tab control. + + + + + Specifies the background color of the tab panel. + + + + + Specifies the target gradient background color of the tab panel. + + + + + Specifies the gradient angle. + + + + + Specifies the border color of the tab panel. + + + + + Specifies the border color of the tab item. + + + + + Specifies the light border color of the tab item. + + + + + Specifies the dark border color of the tab item. + + + + + Specifies the background color of the tab item. + + + + + Specifies the target gradient background color of the tab item. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text of the tab item. + + + + + Specifies the border color of the tab item when mouse is over it. + + + + + Specifies the light border color of the tab item when mouse is over it. + + + + + Specifies the dark border color of the tab item when mouse is over it. + + + + + Specifies the background color of the tab item when mouse is over it. + + + + + Specifies the target gradient background color of the tab item when mouse is over it. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text color of the tab item when mouse is over it. + + + + + Specifies the border color of the tab item when selected. + + + + + Specifies the light border color of the tab item when selected. + + + + + Specifies the dark border color of the tab item when selected. + + + + + Specifies the background color of the tab item when selected. + + + + + Specifies the target gradient background color of the tab item when selected. + + + + + Specifies the gradient angle. + + + + + Gets the collection that defines the multi-color gradient background for tab item.. + + + + + Specifies the text color of the tab item when selected. + + + + + Specifies the tab item separator color. + + + + + Specifies the tab item separator shadow color. + + + + + Specifies the text of the tab item. + + + + + Summary description for TabControl. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets whether property should be serialized. Used by Windows Forms designer. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Applies default tab colors to the panel + + Panel to apply colors to. + + + + Resumes normal layout logic. Optionally forces an immediate layout of pending layout requests. + + + + + Resizes the portion of the control that holds the tabs. + + + + + Creates new tab and tab panel and adds it to the Tabs collection. + + Tab text. + Reference to newly created TabItem. + + + + Creates new tab and tab panel and inserts it at specified position inside of Tabs collection. + + Tab text. + Index to insert newly created tab at. -1 will append tab to the end of Tabs collection. + Reference to newly created TabItem. + + + + Selects previous visible tab. Returns true if previous tab was found for selection. + + + + + Selects next visible tab. Returns true if next tab was found for selection. + + + + + Resets color scheme to default value. + + + + + Memeber used by Windows Forms designer. + + true if property should be serialized. + + + + Memeber used by Windows Forms designer to reset property to default value. + + + + + Occurs when selected tab changes. + + + + + Occurs before selected tab changes and gives you opportunity to cancel the change. + + + + + Occurs when tab is dragged by user. + + + + + Occurs when the user navigates back using the back arrow. + + + + + Occurs when the user navigates forward using the forward arrow. + + + + + Occurs when tab item is closing. + + + + + Occurs when tab item is added to the tabs collection. + + + + + Occurs before control or item attached to the tab is displayed. + + + + + Occurs after tab item has been removed from tabs collection. + + + + + Gets or sets the background color. + + + + + Gets the collection of all tabs. + + + + + Gets or sets whether tabs are visible. Default value is true. + + + + + Returns reference to internal tab strip control. + + + + + Gets or sets whether TabStrip will get focus when Tab key is used. Default value is false. + + + + + Use TabControlPanel.Style property to set the background image for each tab panel. + + + + + Gets or sets whether pressing Ctrl+Tab keys will cycle through the selected tabs. Default value is true. + + + + + Gets or sets whether tabs use anti-alias smoothing when painted. Default value is false. + + + + + Gets or sets whether the tab scrolling is animated. + + + + + Gets or sets whether system box that enables scrolling and closing of the tabs is automatically hidden when tab items size does not exceed the size of the control. + + + + + Specifes whether end-user can reorder the tabs. + + + + + Gets or sets whether tab is automatically closed when close button is clicked. Closing the tab will remove tab being closed from Tabs collection + and it will remove the panel as well. Default value is false which means that tab will not be closed and you should handle TabClose event to + perform desired action as result of user closing the tab. + + + + + Gets or sets whether the Close button that closes the active tab is visible on system box. + + + + + Gets or sets whether close button is visible on each tab instead of in system box. + + + + + Gets or sets whether close button on tabs when visible is displayed for every tab state. Default value is true. When set to false + the close button will be displayed only for selected and tab that mouse is currently over. + + + + + Gets or sets the position of the close button displayed on each tab. Default value is Left. + + + + + Gets or sets custom image that is used on tabs as Close button that allows user to close the tab. + Use TabCloseButtonHot property to specify image that is used when mouse is over the close button. Note that image size must + be same for both images. + Default value is null + which means that internal representation of close button is used. + + + + + Gets or sets custom image that is used on tabs as Close button whem mouse is over the close button. + To use this property you must set TabCloseButtonNormal as well. Note that image size for both images must be same. + Default value is null which means that internal representation of close button is used. + + + + + Gets or sets whether only selected tab is displaying it's text. + + + + + Gets or sets the image list used by tab items. + + + + + Gets or sets scrolling offset of the first tab. You can use this property to programmatically scroll the tab strip. + + + + + Gets or sets Tab Control style. Theme style is supported only on themed OS and only for bottom or top aligned tabs. + + + + + Specifies whether tab is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets or sets whether tabs are scrolled continuously while mouse is pressed over the scroll tab button. + + + + + Gets or sets the auto-repeat interval for the tab scrolling while mouse button is kept pressed over the scroll tab button. + + + + + Gets or sets Tab Color Scheme. + + + + + Gets or sets the tab alignment within the Tab-Strip control. + + + + + Gets or sets the selected tab. + + + + + Gets or sets the selected tab Font + + + + + Gets or sets whether focus rectangle is displayed on the tab when tab has input focus. + + + + + Gets or sets whether keyboard navigation using Left and Right arrow keys to select tabs is enabled. Default value is true. + + + + + Gets or sets the index of the selected tab. + + + + + Gets or sets selected tab panel. + + + + + Gets or sets the type of the tab layout. + + + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + + + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. + Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Represents Panel for the Tab Control. + + + + + Default constructor. + + + + + Gets or sets TabItem that this panel is attached to. + + + + + Indicates whether style of the panel is managed by tab control automatically. + Set this to true if you would like to control style of the panel. + + + + + Gets or sets which edge of the parent container a control is docked to. + + + + + Represents the Tab on the Tab-Strip control. + + + + + Default constructor. + + Container object. + + + + Default constructor. + + + + + Returns the font for the tab text. + + Reference to the font object. + + + + Raises the Click event. + + + + + Occurs when mouse is pressed over the tab item. + + + + + Occurs when mouse button is released over the tab item. + + + + + Occurs when mouse hovers over the tab item. + + + + + Occurs when mouse enters the tab item. + + + + + Occurs when mouse leaves the tab item. + + + + + Occurs when mouse moves over the tab item. + + + + + Occurs when mouse click is performed on the tab item. + + + + + Gets the AccessibleObject assigned to the item. + + + + + Gets or sets the tab Image index. + + + + + Gets or sets the tab image. + + + + + Gets or sets the tab icon. Icon has same functionality as Image except that it support Alpha blending. + + + + + Gets or sets the text displayed on the tab. + + + + + Gets or sets whether tab is visible. + + + + + Gets the display bounds of the tab. + + + + + Gets or sets the bounds of the close button rectangle if displayed on the tab. You should not set value of this property. + + + + + Gets or sets the control that is attached to this tab. When tab is selected the control Visible property is set to true and when tab is unselected the control Visible property is set to false. + + + + + Gets or sets the background color of the tab when inactive. + + + + + Gets or sets the target gradient background color of the tab when inactive. + + + + + Gets or sets the gradient angle. + + + + + Gets or sets the light border color when tab is inactive. + + + + + Gets or sets the dark border color when tab is inactive. + + + + + Gets or sets the border color when tab is inactive. + + + + + Gets or sets the text color when tab is inactive. + + + + + Gets or sets name of the tab item that can be used to identify item from the code. + + + + + Gets or sets the predefined tab color. + + + + + Gets or sets an object that contains data to associate with the item. + + + + + Gets/Sets informational text (tooltip) for the tab. + + + + + Returns true if tab is selected tab. + + + + + Gets the tab alignment. + + + + + Returns true if mouse is over the tab. + + + + + Gets or sets whether Close button on the tab is visible when TabStrip.CloseButtonOnTabsVisible property is set to true. Default value is true. You can use this property + to selectively hide Close button on tabs. + + + + + Gets or sets the bounds of the content block. + + + + + Gets or sets item margin only used by certain items in certain containers. Provided only for internal DotNetBar use. + + + + + Summary description for TabItemLayoutManager. + + + + + Resizes the content block and sets it's Bounds property to reflect new size. + + Content block to resize. + + + + Gets or sets the padding in pixels for the measured text. Default is 4. + + + + + Gets or sets the padding in pixels for the measured image size. Default is 4. + + + + + Gets or sets the padding in pixels that is added to the measured height of the tab. Default is 4. + + + + + Gets or sets the padding in pixels that is added to the measured width of the tab. Default is 0. + + + + + Gets or sets whether text is always layed out horizontaly even if tabs are vertically aligned. + + + + + Gets or sets the additional padding for the selected item. + + + + + Gets or sets the fixed tab size in pixels. Either member can be set. Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Summary description for TabsCollection. + + + + + Get the TabItem with given name. Name comparison is case insensitive. + + + + + + + Represents Tab-Strip control. + + + + + Raises TabMouseEnter event. + + Provides event arguments. + + + + Raises TabMouseLeave event. + + Provides event arguments. + + + + Raises TabMouseMove event. + + Provides event arguments. + + + + Raises TabMouseClick event. + + Provides event arguments. + + + + Raises TabMouseHover event. + + Provides event arguments. + + + + Default constructor. + + + + + Returns the bounds of the tab system box if one is available in current tab style. + + Rectangle describing the system box bounds. + + + + Recalculates the size of the tabs. + + + + + Selectes previous visible tab. Returns true if previous tab was found for selection. + + + + + Selectes next visible tab. Returns true if next tab was found for selection. + + + + + Invokes the TabCleared event. + + Provides events arguments + + + + Ensures that the tab is visible, scrolling the tab-strip view as necessary. + + Tab to make visible. + + + + Clean up any resources being used. + + + + + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if + its style is controlled by StyleManager. + + New active style. + + + + Refreshes the color scheme with the colors from system color table. + + + + + Resets color scheme to default value. + + + + + Memeber used by Windows Forms designer. + + true if property should be serialized. + + + + Memeber used by Windows Forms designer to reset property to default value. + + + + + Returns tab item that contains specified coordinates. + + X - coordinate to hit test + Y - coordinate to hit test + + + + + Hides tooltip for a tab is one is displayed. + + + + + Shows tooltip for given tab. + + + + + Resets Hoover timer. + + + + + Occurs after selected tab has changed. + + + + + Occurs before selected tab changes and gives you opportunity to cancel the change. + + + + + Occurs when tab is dragged by user. + + + + + Occurs when the user navigates back using the back arrow. + + + + + Occurs when the user navigates forward using the forward arrow. + + + + + Occurs when tab item is closing. + + + + + Occurs when tab item is added to the tabs collection. + + + + + Occurs before control or item attached to the tab is displayed. + + + + + Occurs after tab item has been removed from tabs collection. + + + + + Occurs after Tabs collection has been cleared. + + + + + Occurs after the tab item size has been determined and allows you to apply your custom size to the TabItem. + + + + + Occurs before tab is rendered and allows you to cancel default tab rendering performed by the control. + + + + + Occurs after tab is rendered and allows you to render on top of the default rendering performed by the control. + + + + + Occurs when mouse enters a tab. + + + + + Occurs when mouse leaves a tab. + + + + + Occurs when mouse moves over the tab. + + + + + Occurs when mouse clicks the tab. + + + + + Occurs when mouse hovers over the tab. + + + + + Gets or sets whether anti-alias smoothing is used while painting. Default value is false. + + + + + Returns minimum tab strip height given the style and the tabs it contains. + + + + + Returns the rectangle that contains all the tabs. + + + + + Gets or sets the index of currently selected tab. + + + + + Gets or sets the selected tab. + + + + + Gets or sets whether tabs are scrolled continuously while mouse is pressed over the scroll tab button. + + + + + Gets or sets the auto-repeat interval for the tab scrolling while mouse button is kept pressed over the scroll tab button. + + + + + Gets or sets whether the Close button that closes the active tab is visible. + + + + + Gets or sets whether close button is visible on each tab instead of in system box. + + + + + Gets or sets whether close button on tabs when visible is displayed for every tab state. Default value is true. When set to false + the close button will be displayed only for selected and tab that mouse is currently over. + + + + + Gets or sets the position of the close button displayed on each tab. Default value is Left. + + + + + Gets or sets custom image that is used on tabs as Close button that allows user to close the tab. + Use TabCloseButtonHot property to specify image that is used when mouse is over the close button. Note that image size must + be same for both images. + Default value is null + which means that internal representation of close button is used. + + + + + Gets or sets custom image that is used on tabs as Close button whem mouse is over the close button. + To use this property you must set TabCloseButtonNormal as well. Note that image size for both images must be same. + Default value is null which means that internal representation of close button is used. + + + + + Gets the collection of all tabs. + + + + + Gets or sets whether control attached to the TabItem.AttachedControl property is automatically selected when TabItem becomes selected tab. Default value is true. + + + + + Gets or sets the image list used by tab items. + + + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + + + + Gets or sets the type of the tab layout. + + + + + Gets or sets whether tab size is adjusted to fit the available control size. + + + + + Gets or sets scrolling offset of the first tab. You can use this property to programmatically scroll the tab strip. + + + + + Gets or sets whether keyboard navigation using Left and Right arrow keys to select tabs is enabled. Default value is true. + + + + + Gets or sets the mouse cursor that is displayed when tab is dragged. + + + + + Returns tab mouse is over or null if mouse is not over the tab. + + + + + Gets or sets the selected tab Font + + + + + Gets or sets the tab alignment within the Tab-Strip control. + + + + + Specifes whether end-user can reorder the tabs. + + + + + Gets or sets whether system box that enables scrolling and closing of the tabs is automatically hidden when tab items size does not exceed the size of the control. + + + + + Gets or sets the background color. + + + + + Gets or sets whether only selected tab is displaying it's text. + + + + + Gets or sets TabStrip style. Theme style is supported only on themed OS and only for bottom or top aligned tabs. + + + + + Specifies whether tab is drawn using Themes when running on OS that supports themes like Windows XP. + + + + + Gets whether control should be represented in themed style. + + + + + Gets or sets Tab Color Scheme. + + + + + Gets or sets whether the tab scrolling is animanted. + + + + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. + Value of 0 indicates that size is automatically calculated which is + default behavior. + + + + + Gets or sets whether focus rectangle is displayed when tab has input focus. + + + + + Gets or sets whether Tab-Strip control provides Tabbed MDI Child form support. Default value is false. + + + + + Gets or sets the maximum number of characters that will be used as Tab text from Mdi Child caption. + + + + + Gets or sets whether the Mdi Child Icon is displayed on Tab. + + + + + Gets or sets whether the Tab-strip is automatically hidden when there are not Mdi Child forms open. + + + + + Gets or sets whether flicker associated with switching maximized Mdi child forms is attempted to eliminate. You should set this property to false if you encounter any painting problems with your Mdi child forms. + + + + + Gets or sets Mdi Container form for which Tab-Strip is providing Tabbed MDI Child support. + + + + + Event delegate for SelectedTabChanged event. + + + + + Event delegate for SelectedTabChanging event. + + + + + Event delegate for TabMoved event + + + + + Event delegate for NavigateBack, NavigateForward and TabItemClose events. + + + + + Represents the event arguments for tab selection events. + + + + + Currently selected tab. + + + + + Tab being selected. + + + + + Specifies the action that caused the event. + + + + + Default constructor. + + Currently selected tab. + New selection. + + + + Represents the event arguments for tab selection events. + + + + + Currently selected tab. + + + + + Tab being selected. + + + + + Cancels the selection operation. + + + + + Specifies the action that caused the event. + + + + + Default constructor. + + Currently selected tab. + New selection. + + + + Represents the event arguments for tab moving events. + + + + + Tab being moved. + + + + + Moved from index. + + + + + Moving to index. + + + + + Cancels the operation. + + + + + Default Constructor + + Tab + Old Index + New Index + + + + Represents the event arguments for action events. + + + + + Cancels the operation. + + + + + Reference to relevant TabItem, if any, otherwise null/nothing. + + + + + Default Constructor. + + + + + Destroys tooltip window. + + + + + Specifies the tab alignment inside the Tab-Strip control. + + + + + Tabs are left aligned. + + + + + Tabs are right aligned. + + + + + Tabs are top aligned. + + + + + Tabs are bottom aligned. + + + + + Indicates tab strip style. + + + + + Default VS.NET like flat style. + + + + + Office 2003 like style. + + + + + OneNote like style. + + + + + VS.NET 2005 style tabs. + + + + + Tab style where tabs are centered and first and last tab have the corners rounded. This style does not support multi-line tabs or tab scrolling. + + + + + VS.NET 2005 dock style tabs. + + + + + VS.NET 2005 document style tabs. + + + + + Simulated theme style with the horizontal text alignment at all times. + + + + + Office 2007 document style. + + + + + Office 2007 dock style. + + + + + Metro UI style. + + + + + Defines delegate for the MeasureTabItem event. + + + + + Represents event arguments for MeasureTabItem event. + + + + + Gets the TabItem that is being measured. + + + + + Gets or sets the size of the TabItem. The default size calculated by the control will be set by default. You can inspect it and change it to the + custom size by setting this property. + + + + + Creates new instance of the class and initializes it with default values. + + TabItem being measured. + Default size. + + + + Defines delegate for the PreRenderTabItem and PostRenderTabItem events. + + + + + Represents event arguments for PreRenderTabItem and PostRenderTabItem event. + + + + + Gets the reference to the TabItem being rendered. You can use properties like DisplayRectangle to determine the rendering bounds for the tab. + + + + + When used in PreRenderTabItem event allows you to cancel the default rendering by setting this property to true. + + + + + Gets the reference to the Graphics object to render the tab on. + + + + + Creates new instance of the class and initializes it with default values. + + Default value for TabItem property. + Default value for Graphics property. + + + + Represents base class for tab display. + + + + + Main method for painting. + + Reference to graphics object + TabStrip to paint + + + + Gets or sets whether anti-alias is used for painting the tabs. Default value is true. + + + + + Gets or sets whether text is drawn horizontaly regardless of tab orientation. + + + + + Gets or sets whether close button is painted on each tab. + + + + + Provides display capabilities for TabStrip with Office 2007 Dock style. + + + + + Provides display capabilities for TabStrip with Office 2007 Document style. + + + + + Creates new instance of the class. + + + + + Represents class performing the display of tabs with RoundHeader style. + + + + + Provides display support for SimualtedTheme tab style. + + + + + Provides display capabilites for TabStrip with VS2005Dock style. + + + + + Creates new instance of the class. + + + + + Represent a task-dialog message box window. + + + + + Displays TaskDialog message. + + Title of the window. + Task dialog header. + Task dialog text. + Displayed buttons. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Task dialog header. + Task dialog text. + Displayed buttons. + Specifies the predefined color for the dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Icon displayed on dialog. + Task dialog header. + Task dialog text. + Displayed buttons. + Result from task-dialog. + + + + Displays TaskDialog message. + + Title of the window. + Icon displayed on dialog. + Task dialog header. + Task dialog text. + Displayed buttons. + Specifies the predefined color for the dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Specifies the content of the task dialog. + Result from task-dialog. + + + + Displays TaskDialog message. + + Window owner of the task dialog. + Specifies the content of the task dialog. + Result from task-dialog. + + + + Closes the task dialog if it is open with eTaskDialogResult.None result. + + + + + Closes the task dialog if it is open with specified result value. + + Value that will be used as return value from Show method. + + + + Gets or sets whether TaskDialog form has Windows Vista Glass enabled if running on + Windows Vista with Glass enabled. Default value is true. + + + + + Gets or sets the anti-alias text-rendering setting for the controls on task-dialog. Default value is true. + + + + + Occurs when any text markup link on Task-Dialog Box is clicked. Markup links can be created using "a" tag, for example: + Markup link + + + + + Specifies the information displayed on task-dialog. + + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + Radio Button Commands + Button commands. + Check-box command. + Footer text + Footer image. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + Radio Button Commands + Button commands. + Check-box command. + Footer text + Footer image. + Indicates whether TaskDialog is top most. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + Dialog background color. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + + + + Initializes a new instance of the TaskDialogInfo structure. + + Title of dialog. + Task-dialog icon + Header text. + Dialog main/content text. + Dialog buttons displayed. + + + + Gets or sets the task-dialog window title. + + + + + Gets or sets the task-dialog header. + + + + + Gets or sets the task-dialog text. + + + + + Gets or sets the task-dialog buttons displayed. + + + + + Gets or sets the task-dialog background color. + + + + + Gets or sets the array of commands that will be used to create the radio-buttons displayed on task-dialog. Each command will be executed as radio-buttons are checked by user. + + + + + Gets or sets the array of commands that will be used to create the buttons displayed on task-dialog. Each command will be executed as buttons are clicked by user. + + + + + Gets or sets the footer text displayed on task-dialog. + + + + + Gets or sets the command that is used to initialize the footer check-box. Command will be executed when check-box state changes by end user. + + + + + Gets or sets the icon that is displayed on task dialog. + + + + + Gets or sets the image that is displayed in the task-dialog footer. Expected image size is 16x16 pixels. + + + + + Gets or sets whether TaskDialog form is top-most. Default value is false. + + + + + Gets or sets the TaskDialog default button. + + + + + Indicates whether task dialog form close button is enabled, default value is true. + + + + + Specifies the task dialog buttons. + + + + + OK button will be displayed. + + + + + Yes button will be displayed. + + + + + No button will be displayed. + + + + + Cancel button will be displayed. + + + + + Retry button will be displayed. + + + + + Close button will be displayed. + + + + + Specifies the task dialog return values. + + + + + No button was clicked because dialog was closed using TaskDialog.Close method. + + + + + OK button was clicked. + + + + + Yes button was clicked. + + + + + No button was clicked. + + + + + Cancel button was clicked. + + + + + Retry button was clicked. + + + + + Close button was clicked. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Specifies the custom result. Custom result can be specified if TaskDialog.Close method is called to close dialog. + + + + + Define icons available on TaskDialog. + + + + + No icon. + + + + + Blue flag icon. + + + + + Blue stop icon. + + + + + Light bulb, idea icon. + + + + + Check-mark icon. + + + + + Check-mark icon. + + + + + Trash-can delete icon. + + + + + Exclamation icon. + + + + + Flag icon. + + + + + Hand-stop icon. + + + + + Help icon. + + + + + Informational icon. + + + + + Informational icon. + + + + + No entry icon. + + + + + Shield icon. + + + + + Shield help icon. + + + + + Shield OK icon. + + + + + Shield stop icon. + + + + + Stop icon. + + + + + Stop icon. + + + + + Users icons. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the task-background color. + + + + + Gets the task-dialog result + + + + + Gets or sets the anti-alias text-rendering setting for the controls. + + + + + Defines TaskDialog colors. + + + + + Task dialog will use default background as specified by current theme. + + + + + Task dialog will use silver background color. + + + + + Task dialog will use tan background color. + + + + + Task dialog will use dark-blue background color. + + + + + Task dialog will use blue background color. + + + + + Task dialog will use red background color. + + + + + Task dialog will use olive-green background color. + + + + + Task dialog will use purple background color. + + + + + Task dialog will use aqua background color. + + + + + Task dialog will use orange background color. + + + + + Summary description for TextBoxItem. + + + + + Indicates whether property should be serialized by Windows Forms designer. + + + + + Resets the property to default value. + + + + + Occurs when ButtonCustom control is clicked. + + + + + Occurs when ButtonCustom2 control is clicked. + + + + + IBlock member implementation + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line TextBox control. + + + + + Gets or sets the text associated with the editable part of the item. + + + + + Gets or sets the item caption text displayed next to the text input. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets whether watermark text is displayed when control is empty. Default value is true. + + + + + Gets or sets the watermark image displayed inside of the control when Text is not set and control does not have input focus. + + + + + Gets or sets the watermark image alignment. + + + + + + Gets or sets the watermark font. + + + + + Gets or sets the watermark text color. + + + + + Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus. + + + + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. + + + + + Gets or sets the color used as background color to highlight text box when it has input focus and focus highlight is enabled. + + + + + Gets or sets the text-alignment inside of the text box. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Gets the object that describes the settings for the custom button that can execute an custom action of your choosing when clicked. + + + + + Measures the element given available size. + + Size available to element + Reference to graphics object + + + + Measures the end tag of an element. Most implementations do not need to do anything but implementations like the ones + that change color should return state back at this time. + + + + + + + Renders element. + + Provides markup drawing context information. + + + + Renders element tag end. Most implementations do not need to do anything but mplementations like the ones + that change color should return state back at this time. + + Provides markup drawing context information. + + + + Provides final rectangle to element and lets it arrange it's content given new constraint. + + Final rectangle. + + + + + Arranges the element given the final size. Layout is two step process with Measure followed by Arrange. + + + + + + + Returns whether markup element is an container so it receives full available size of parent control for layout. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Returns whether layout manager switches to new line after processing this element. + + + + + Returns whether layout manager can start new line with this element. + + + + + Gets the collection of child elements if any for this markup element. + + + + + Gets or sets whether element size is valid. When size is not valid element Measure method will be called to validate size. + + + + + Gets element parent or null if parent is not set. + + + + + Gets or sets actual rendering bounds. + + + + + Gets or sets whether markup element is visible. + + + + + Gets or sets the element margin. + + + + + Gets or sets actual rendered bounds for a give markup element if applicable. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Indicates paragraph content alignment + + + + + Indicates paragraph content alignment + + + + + Gets reference to markup start element. + + + + + Returns whether layout manager can start new line with this element. + + + + + Gets or sets heading level. Values from 1 to 6 are valid. Default is 1. + + + + + Returns whether hyper-link contains specified coordinates. + + + + + + + Creates new instance of the class. + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the MarkupElement array. + + Array to copy to. + + + + Gets or sets the collection parent element. + + + + + Returns reference to the object in collection based on it's index. + + + + + Tests whether input text could be markup text. + + Text to test. + true if text could be markup, otherwise false + + + + Gets the style of the hyperlink in its default state. + + + + + Gets the style of the hyperlink when mouse is over the link. + + + + + Gets the style of the visited hyperlink. + + + + + + Represents the method that will handle the ResolveImage event. + + + + + Defines the text-markup hyperlink appearance style. + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + + + Initializes a new instance of the HyperlinkStyle class. + + + + + + + + Gets or sets hyperlink text color. + + + + + Gets or sets hyperlink back color. + + + + + Gets or sets the underline style for the hyperlink. + + + + + Gets whether style has been changed from its default state. + + + + + + Indicates that event has been handled and that ResolvedImage should be used. + + + + + Indicates the string key parameters in url-style for the image that needs to be resolved. + + + + + Indicates the resolved image value. + you need to set this value to the resolved image and you need to set Handled property to true. + + + + + Default constructor. + + + + + Gets or sets whether element size is valid. When size is not valid element Measure method will be called to validate size. + + + + + Returns whether layout manager switches to new line after processing this element. + + + + + Returns whether markup element is an block element that always consumes a whole line in layout. + + + + + Returns whether layout manager can start new line with this element. + + + + + Summary description for Themes. + + + + + Represents toast display control. This class is not for public use. + + + + + Initializes a new instance of the ToastDisplay class. + + + + + Specifies the alpha-blending, opacity for the content rendered by the control. Setting this property allows fading in and out of the control content. + + + + + Gets or sets the toast background color. + + + + + Gets or sets the toast glow color. + + + + + Gets or sets the image displayed on the toast. + + + + + Represents class used to display toast notifications. A toast notification is a message that appears on the surface of the screen for a moment, + but it does not take focus (or pause the current activity), so it cannot accept any user input. + Notification pops up on the surface of the specified Form or Control. + It only fills the amount of space required for the message and the user's current activity remains visible and interactive. + The notification automatically fades in and out after specified time interval. + Notification text supports text-markup. + + + + + Closes all toast notifications open on specified parent control. + + Parent control. + + + + Closes specified toast notification on parent control. + + Parent control. + Toast ID as returned by the Show method. + + + + Updates the already displayed toast text. Note that toast notification will not be resized. + + Parent control which was used to show toast. + Toast ID returned by the Show toast method. + New toast notification text. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + Specifies toast-glow color used. + Specifies the position of the toast notification. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + Specifies toast-glow color used. + Specifies the X position of the toast notification with its parent window. + Specifies the Y position of the toast notification with its parent window. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + /// Specifies toast-glow color used. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + Specifies the position of the toast notification. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form, with default timeout interval. + + Parent control to display toast notification on top of + Message to display. + Image to display next to toast text. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Image to display next to toast text. + Interval in milliseconds after which the notification is hidden. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Interval in milliseconds after which the notification is hidden. + + + + Displays the toast notification on top of the specified parent control, we recommend always using a parent form. + + Parent form to display toast notification on top of + Message to display. + Interval in milliseconds after which the notification is hidden. + Specifies the position of the toast notification. + + + + Specifies the toast margin from the edges of the parent control. Default value is 16 pixels on all sides. + + + + + Specifies the default toast position within the parent control. Default value is BottomCenter. + + + + + Specifies default glow color around toast notification. Default value is Blue. + + + + + Specifies the default timeout interval for the toast notification. + + + + + Specifies the toast background color. + + + + + Specifies the toast text color. + + + + + Specifies the font used for the toast. + + + + + Specifies the custom glow color used when eToastGlowColor.Custom is used. + + + + + Specifies toast position within parent control. + + + + + Specifies the glow color around toast notification. + + + + + Summary description for NewToolbar. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Summary description for Tooltip. + + + + + Gets or sets the rectangle of the control or item tooltip is displayed for. + + + + + Gets or sets whether text-markup is enabled for the tooltips. + + + + + Specifies fixed location for tooltip window. + + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises PanBegin event. + + Provides event arguments. + + + + Raises Begin event. + + Provides event arguments. + + + + Raises End event. + + Provides event arguments. + + + + Raises PressAndTap event. + + Provides event arguments. + + + + Raises RotateBegin event. + + Provides event arguments. + + + + Raises Rotate event. + + Provides event arguments. + + + + Raises RotateEnd event. + + Provides event arguments. + + + + Raises TwoFingerTap event. + + Provides event arguments. + + + + Raises ZoomBegin event. + + Provides event arguments. + + + + Raises Zoom event. + + Provides event arguments. + + + + Raises ZoomEnd event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Raises TouchDown event. + + Provides event arguments. + + + + Initializes a new instance of the TouchHandler class. + + + + + + Initializes a new instance of the TouchHandler class. + + + + + + Initializes handler + + + + + The Windows message handler. + + + + + Decode the message and create a collection of event arguments + + + + + The last event in the current gesture event sequence + + + + + Register for touch event + + true if succeeded + + + + The event arguments that started the current gesture + + + + + Gets or sets whether palm rejection is enabled. + + + + + Check if Multi-touch support device is ready + + + + + Create new gesture event instance and decode the gesture info structure + + The gesture handler + The gesture information + + + + Gesture relative rotation angle for Rotate event. + + + + + Indicates calculated gesture center. + + + + + Gesture zoom factor for Zoom event. + + + + + Gesture relative panning translation for Pan event. + + + + + Gesture velocity vector of the pan gesture for custom inertia implementations. + + + + + The last touch arguments in this gesture event sequence. + + + + + The client location of gesture. + + + + + Is this the first event of a gesture. + + + + + It this last event of a gesture. + + + + + Has gesture triggered inertia. + + + + + The first touch arguments in this gesture event sequence. + + + + + Gets or sets whether event is handled. + + + + + EventArgs passed to Touch handlers + + + + + Create new touch event argument instance + + The target control + one of the inner touch input in the message + + + + Touch client coordinate in pixels + + + + + A touch point identifier that distinguishes a particular touch input + + + + + A set of bit flags that specify various aspects of touch point + press, release, and motion. + + + + + mask which fields in the structure are valid + + + + + touch event time + + + + + touch event time from system up + + + + + the size of the contact area in pixels + + + + + Is Primary Contact (The first touch sequence) + + + + + Specifies that movement occurred + + + + + Specifies that the corresponding touch point was established through a new contact + + + + + Specifies that a touch point was removed + + + + + Specifies that a touch point is in range + + + + + specifies that this input was not coalesced. + + + + + Specifies that the touch point is associated with a pen contact + + + + + The touch event came from the user's palm + + Set to true + + + + Gets or sets whether event is handled. + + + + + Get the current Digitizer Status + + + + + Initializes a new instance of the GESTURECONFIG structure. + + + + + + + + Specifies available digitizer capabilities + + + + + Gesture Info Interop Structure + + + + + A Simple POINTS Interop structure + + + + + A Simple POINT Interop structure + + + + + Touch API defined structures [winuser.h] + + + + + Represents class that holds User Interface static methods. + + + + + Gets the graphics path that represents triangle. + + Top left position of the triangle. + Size of the triangle. + Pointing direction of the triangle. + Returns graphics path for the triangle of given size and pointing in given direction. + + + + Creates the double arrow >> collapse expand image for the collapsable controls. + + Indicates the direction of the arrow + Color for the arrows + Indicates whether image is for vertical collapse/expand + + + + + Specifies the pointing direction of triangle. + + + + + Triangle point to the left. + + + + + Triangle point to the right. + + + + + Triangle point to the top. + + + + + Triangle point to the bottom. + + + + + Represents compare validator for SuperValidator control used to compare two input fields or input fields to specified value. + + + + + Represents base validator used by SuperValidator component. + + + + + Validates the input control. + + Input control to validate. + true if validation is successful otherwise false + + + + Gets the input control value. + + Control to return value for. + Controls value + + + + Gets the input control value. + + Control to return value for. + Controls value + + + + Raises the GetValue event. + + Event arguments. + + + + Occurs when validator retrieves the value for the control. It allows you to return value for the controls validator does not recognize. + + + + + Gets or sets the error message that is displayed by error provider when validation fails. + + + + + Gets the last validation result returned from Validate call. True if validation was successful or false if validation failed. + + + + + Returns SuperValidator control validator is assigned to. + + + + + Gets or sets whether error is displayed using the error provider on SuperValidator when validation fails. Default value is true. + + + + + Gets or sets whether validator is enabled. Default value is true. + + + + + Gets or sets the group name validation belongs to. When control belongs to optional validation group the validation is considered successful when any of the controls in the group validates. + + + + + Gets or sets the highlight color for control when validation fails if Highlighter component is used on SuperValidator. Default Value is None. + + + + + Gets or sets the value property name for the control to validate. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Gets or sets the control to compare validated control to. + + + + + Gets or sets the Value property name for the ControlToCompare control. + + + + + Gets or sets the value to compare to the validation control. + + + + + Gets or sets the operator used for comparison. + + + + + Specifies the validation comparison operators used by the CompareValidator. + + + + + A comparison for equality. + + + + + A comparison for inequality. + + + + + A comparison for greater than. + + + + + A comparison for greater than or equal to. + + + + + A comparison for less than. + + + + + A comparison for less than or equal to. + + + + + A comparison for data type only. + + + + + Initializes a new instance of the CustomValidator class. + + + + + Gets or sets custom data associated with the validator + + + + + Defines delegate for CustomValidator ValidateValue event. + + Sender + Event arguments + + + + Gets the reference to the control to validate. + + + + + Gets or sets whether control's value is valid. + + + + + Initializes a new instance of the ValidateValueEventArgs class. + + Control to validate. + + + + Defines an interface that can be implemented by custom error providers to be used with SuperValidator. + + + + + Sets the error state on the control. + + Control for which error state is being set. + The error message from validator. + + + + Clears the error state for the control. + + Control to clear error state for. + + + + Retrieves whether control is highlighted when it receives input focus. + + + + + Sets whether control is highlighted when it receives input focus. + + Reference to supported control. + Indicates whether to highlight control on focus. + + + + Retrieves the highlight color that is applied to the control. + + + + + Sets the highlight color for the control. + + Reference to supported control. + Highlight color. + + + + Updates the highlighted controls border. Usually call to this method is not needed but under + certain scenarios where highlighter does not automatically detects the change in visibility of + the highlighted control call to this method is necessary. + + + + + Indicates the highlight focus color. + + + + + Gets or sets the container control highlighter is bound to. The container control must be set in order for highlighter to work. + Container control should always be a form. + + + + + Gets or sets the array of colors used to render custom highlight color. Control expects 3 colors in array to be specified which define the highlight border. + + + + + Defines highlight colors provided by Highlighter control. + + + + + Initializes a new instance of the ErrorProviderWrapper class. + + + + + + Initializes a new instance of the ErrorProviderWrapper class. + + + + + + + Initializes a new instance of the HighlightPanel class. + + + + + + Gets or sets the array of colors used to render custom highlight color. Control expects 3 colors in array to be specified which define the highlight border. + + + + + Initializes a new instance of the HighlightRegion structure. + + + + + + + + Initializes a new instance of the RangeValidator class. + + + + + Initializes a new instance of the RangeValidator class. + + + + + Initializes a new instance of the RangeValidator class. + + + + + Gets or sets the maximum value control may have. + + + + + Gets or sets the minimum value control may have. + + + + + Indicates whether empty string of zero length is considered valid input. + + + + + Represents the regular expression validator used with SuperValidator control. + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Initializes a new instance of the RegularExpressionValidator class. + + + + + + Gets or sets regular expression used to validate controls value. + + + + + Gets or sets whether empty value is considered valid value by the validator. Default value is false. + + + + + Describes required field validator used with SuperValidator control. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Initializes a new instance of the RequiredFieldValidator class. + + + + + Raises EvaluateIsEmpty event. + + Event Arguments + + + + Occurs when controls value needs to be evaluated to check whether it is empty. You can use this event to perform custom evaluation. + + + + + Indicates whether empty string of zero length is considered valid input. + + + + + Initializes a new instance of the ValidatorGetValueEventArgs class. + + + + + + + Gets Control to retrieve value for. + + + + + Gets the Value to evaluate. + + + + + Gets validator that is requesting value. + + + + + Resets the Value set and indicates that validator will internally retrieve value for the control. + + + + + Gets or sets the value that will be used by validator. + + + + + Raises the CustomValidatorValidateValue event. + + Validator that needs validation. + Control to validate. + + + + Retrieves first level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates first level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Retrieves second level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates second level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Retrieves third level Validator for given control or return null if control does not have validator associated with it. + + + + + Associates third level Validator with given control. + + Reference to supported control. + Instance of validator class. If null is passed existing Validator is detached from the given control. + + + + Raises the GetValue event. + + Event arguments. + + + + Performs validation on all validators. It also uses error provider to display failed validations if validator has that enabled. + + Returns true if all validations succeeded or false if at least one validation has failed. + + + + Validate single control. Note that control must have validator assigned to it. This method will change LastFailedValidationResults collection. + + Control to validate. + returns true if validation succeeds or false if it fails + + + + Validate single control. Note that control must have validator assigned to it. This method will change LastFailedValidationResults collection. + + Control to validate. + Indicates whether to clear the last set of failed validations by calling ClearFailedValidations() method. + returns true if validation succeeds or false if it fails + + + + Removes all visual markers from failed validations that were placed on the controls. + + + + + Occurs when validator retrieves the value for the control. It allows you to return value for the controls validator does not recognize. + + + + + Occurs when CustomValidator needs to validate the control value. + + + + + Gets or sets whether validation is performed in steps meaning that if first level validation fails, second level is not validated + until first level validation succeeds. Default value is false which means that all validation levels are validated even if first level fails. + + + + + Gets the readonly collection that returns failed validations that were result of last Validate method call. + + + + + Indicates default ErrorProvider IconPadding when Highlighter is used with SuperValidator. Setting this property to 0 will allow you to set IconPadding for each control manually. + + + + + Gets or sets the error provider that is used by the validator to report validation errors. + + + + + Gets or sets the custom error provider that is used by validator to report errors. You can provide your own error validators by implementing IErrorProvider interface. + + + + + Gets or sets the Highlighter component that is used to highlight validation errors. + + + + + Gets or sets the validation type performed by the control. Default value is Manual. + + + + + Gets or sets the container control validator is bound to. The container control must be set for the ValidationType ValidatingEventOnContainer. + When ContainerControl is Form the validator handles the Closing event of the form to perform the validation and cancel the form closing. + You can disable that by setting either Enabled=false or Form.CausesValidation=false. + + + + + Gets or sets whether validation is performed. Default value is true. + + + + + Gets or sets whether Cancel argument in Validating event for validation type ValidatingEventPerControl is set to true when validation fails. + + + + + Specifies the validation type for SuperValidator control. + + + + + SuperValidator uses manual validation, i.e. you will call Validate method to perform validation. + + + + + Validation is performed per control from each controls Validating event. The Cancel is set to true on event arguments if validation fails. + + + + + Validation is performed for all controls from Validating event on container control. By default container control is Form that SuperValidator is on. + + + + + Defines validator control pair used by SuperValidator control. + + + + + Gets the validator associated with the control. + + + + + Gets control reference. + + + + + Initializes a new instance of the ValidatorControlPair structure. + + Validator associated with the control + Control reference + + + + Initializes a new instance of the ValidatorGetValueEventArgs class. + + + + + + + Gets Control to retrieve value for. + + + + + Gets validator that is requesting value. + + + + + Resets the Value set and indicates that validator will internally retrieve value for the control. + + + + + Gets or sets the value that will be used by validator. + + + + + Retrieves the show state and the restored, minimized, and maximized positions of the specified window. + + + A handle to the window. + + + A pointer to the WINDOWPLACEMENT structure that receives the show state and position information. + + Before calling GetWindowPlacement, set the length member to sizeof(WINDOWPLACEMENT). GetWindowPlacement fails if lpwndpl-> length is not set correctly. + + + + If the function succeeds, the return value is nonzero. + + If the function fails, the return value is zero. To get extended error information, call GetLastError. + + + + + Options available when a form is tested for mose positions. + + + HTERROR: On the screen background or on a dividing line between windows + (same as HTNOWHERE, except that the DefWindowProc function produces a system + beep to indicate an error). + + + HTTRANSPARENT: In a window currently covered by another window in the + same thread (the message will be sent to underlying windows in the same thread + until one of them returns a code that is not HTTRANSPARENT). + + + HTNOWHERE: On the screen background or on a dividing line between + windows. + + + HTCLIENT: In a client area. + + + HTCAPTION: In a title bar. + + + HTSYSMENU: In a window menu or in a Close button in a child window. + + + HTGROWBOX: In a size box (same as HTSIZE). + + + HTMENU: In a menu. + + + HTHSCROLL: In a horizontal scroll bar. + + + HTVSCROLL: In the vertical scroll bar. + + + HTMINBUTTON: In a Minimize button. + + + HTMAXBUTTON: In a Maximize button. + + + HTLEFT: In the left border of a resizable window (the user can click + the mouse to resize the window horizontally). + + + HTRIGHT: In the right border of a resizable window (the user can click + the mouse to resize the window horizontally). + + + HTTOP: In the upper-horizontal border of a window. + + + HTTOPLEFT: In the upper-left corner of a window border. + + + HTTOPRIGHT: In the upper-right corner of a window border. + + + HTBOTTOM: In the lower-horizontal border of a resizable window (the + user can click the mouse to resize the window vertically). + + + HTBOTTOMLEFT: In the lower-left corner of a border of a resizable + window (the user can click the mouse to resize the window diagonally). + + + HTBOTTOMRIGHT: In the lower-right corner of a border of a resizable + window (the user can click the mouse to resize the window diagonally). + + + HTBORDER: In the border of a window that does not have a sizing + border. + + + HTOBJECT: Unknown...No Documentation Found + + + HTCLOSE: In a Close button. + + + HTHELP: In a Help button. + + + HTSIZE: In a size box (same as HTGROWBOX). (Same as GrowBox). + + + HTREDUCE: In a Minimize button. (Same as MinimizeButton). + + + HTZOOM: In a Maximize button. (Same as MaximizeButton). + + + + Hides the window and activates another window. + + + + + Activates and displays a window. If the window is minimized or + maximized, the system restores it to its original size and position. + An application should specify this flag when displaying the window + for the first time. + + + + + Activates the window and displays it as a minimized window. + + + + + Maximizes the specified window. + + + + + Activates the window and displays it as a maximized window. + + + + + Displays a window in its most recent size and position. This value + is similar to , except + the window is not actived. + + + + + Activates the window and displays it in its current size and position. + + + + + Minimizes the specified window and activates the next top-level + window in the Z order. + + + + + Displays the window as a minimized window. This value is similar to + , except the + window is not activated. + + + + + Displays the window in its current size and position. This value is + similar to , except the + window is not activated. + + + + + Activates and displays the window. If the window is minimized or + maximized, the system restores it to its original size and position. + An application should specify this flag when restoring a minimized window. + + + + + Sets the show state based on the SW_* value specified in the + STARTUPINFO structure passed to the CreateProcess function by the + program that started the application. + + + + + Windows 2000/XP: Minimizes a window, even if the thread + that owns the window is not responding. This flag should only be + used when minimizing windows from a different thread. + + + + + Represents Wizard control. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Resets the style to it's default value. + + + + + Resets the style to it's default value. + + + + + Simulates Back button click on Wizard control. Note that this method will raise the same events as + standard Wizard Back button click. + + + + + Simulates Next button click on Wizard control. Note that this method will raise the same events as + standard Wizard Next button click. + + + + + Simulates Cancel button click on Wizard control. Note that this method will raise the same events as + standard Wizard Cancel button click. + + + + + Simulates Finish button click on Wizard control. Note that this method will raise the same events as + standard Wizard Finish button click. + + + + + Raises BackButtonClick event. + + Event arguments + + + + Raises NextButtonClick event. + + Event arguments + + + + Raises FinishButtonClick event. + + Event arguments + + + + Raises CancelButtonClick event. + + Event arguments + + + + Raises HelpButtonClick event. + + Event arguments + + + + Raises WizardPageChanging event. + + Provides event arguments + + + + Raises WizardPageChanged event. + + Provides event arguments + + + + Occurs when Back button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Next button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Finish button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Cancel button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Help button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs before wizard page has changed and gives you opportunity to cancel the change. + + + + + Occurs after wizard page has changed. This event cannot be cancelled. To cancel the page change please use WizardPageChanging event. + + + + + Occurs when wizard buttons (Back, Next, Finish etc) are positioned and resized. + + + + + Gets or sets the header image. Default value is null which means that internal header image is used. You can hide header image + by setting HeaderImageVisible property. + + + + + Gets or sets whether header image is visible. Default value is true. + + + + + Gets or sets wizard button that is clicked when ENTER key is pressed. Default value is eWizardFormAcceptButton.FinishAndNext which + indicates that finish button will be clicked if available otherwise next button will be clicked. + + + + + Gets or sets wizard button that is clicked when ESCAPE key is pressed. Default value is eWizardFormCancelButton.Cancel which + indicates that Cancel button will be clicked. + + + + + Gets or sets whether all buttons are disabled while wizard page is changed which prevents users from clicking the buttons + if page change is taking longer. Default value is true. + + + + + Gets or sets whether wait cursor is displayed while page is changed. Default value is true. + + + + + Gets or sets the selected page index. You can set this property to change the currently selected wizard page. + + + + + Gets or sets selected wizard page. You can set this property to change the currently selected wizard page. + + + + + Gets the collection of Wizard pages. The order of WizardPage objects inside of this collection determines the flow of the wizard. + + + + + Returns a Stack of page history. Each time next page is displayed by wizard, previously visited page is added to the history. + When user commands Wizard back, the last page from the history is shown and removed from the stack. You should not modify this collection + directly since it is maintained by Wizard control. + + + + + Gets or sets the FlatStyle setting for the wizard buttons. Default value is FlatStyle.System + + + + + Gets or sets height of wizard command buttons. Default value is 22 pixels. + + + + + Gets or sets whether back button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets tab index of back button. Default value is 1. + + + + + Gets or sets a value indicating whether the user can give the focus to this back button using the TAB key. Default value is true. + + + + + Gets or sets caption of the back button. + + + + + Gets or sets width of the back button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether next button causes validation to be performed on any controls that require validation when it receives focus. Default value is true. + + + + + Gets or sets tab index of next button. Default value is 2. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the next button. + + + + + Gets or sets width of the next button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets tab index of the button. Default value is 4. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is true. + + + + + Gets or sets tab index of the button. Default value is 4. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets whether finish button is always visible next to the Next button. Default value is false which means that Finish + button will be visible only on last Wizard page and it will replace the Next button. When set to true Finish button is always visible next + to the Next button except on first Welcome wizard page. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets whether button causes validation to be performed on any controls that require validation when it receives focus. Default value is false. + + + + + Gets or sets whether button is visible. Default value is true. + + + + + Gets or sets tab index of the button. Default value is 5. + + + + + Gets or sets a value indicating whether the user can give the focus to button using the TAB key. Default value is true. + + + + + Gets or sets caption of the button. + + + + + Gets or sets width of the button. Default value is 74. + + + + + Gets or sets auto size of the button. Default value is false. + + + + + Gets or sets auto size mode of the button. Default value is AutoSizeMode.GrowOnly. + + + + + Gets or sets the height of the wizard footer. Default value is 46 + + + + + Gets or sets the height of the wizard header. Default value is 60 + + + + + Gets or sets the header image alignment. Default value is right. + + + + + Gets or sets the header image size for interior wizard pages. Default value is 48x48 + + + + + Gets or sets indentation of header title label. Default value is 16. + + + + + Gets or sets indentation of header description label. Default value is 44. + + + + + + Indicates the font used to render caption header text. + + + + + Gets or sets whether description text displayed in wizard header is visible. + + + + + Gets or sets the header background style. + + + + + Gets or sets the footer background style. + + + + + Returns reference to internal Next button control. + + + + + Returns reference to internal Cancel button control. + + + + + Returns reference to internal Finish button control. + + + + + Returns reference to internal Help button control. + + + + + Returns reference to internal Back button control. + + + + + Gets or sets whether Focus cues on wizard navigation buttons are enabled. Default value is true. + + + + + Gets or sets the visual style used for wizard buttons. + + + + + Provides data for LayoutWizardButtons event. + + + + + Gets or sets bounds of Back button. + + + + + Gets or sets bounds of Next button. + + + + + Gets or sets bounds of Finish button. + + + + + Gets or sets bounds of Cancel button. + + + + + Gets or sets bounds of Help button. + + + + + Creates new instance of the class. + + + + + Creates new instance of the class and initializes it with default values. + + + + + Defines delegate for WizardPageChange events. + + + + + Updates page state when one of the page appearance properties has changed. + + + + + Fires BeforePageDisplayed event. + + Event arguments + + + + Invokes the BeforePageDisplayed event. + + Event arguments + + + + Fires AfterPageDisplayed event. + + Event arguments. + + + + Invokes AfterPageDisplayed event. + + Event arguments + + + + Fires BeforePageDisplayed event. + + Event arguments + + + + Invokes the BeforePageDisplayed event. + + Event arguments + + + + Raises BackButtonClick event. + + Event arguments + + + + Invokes BackButtonClick event. + + + + + Raises NextButtonClick event. + + Event arguments + + + + Invokes NextButtonClick event. + + + + + Raises FinishButtonClick event. + + Event arguments + + + + Invokes FinishButtonClick event. + + + + + Raises CancelButtonClick event. + + Event arguments + + + + Invokes CancelButtonClick event. + + + + + Raises HelpButtonClick event. + + Event arguments + + + + Invokes HelpButtonClick event. + + + + + Occurs before page is displayed. This event can cancel the page change. You can perform any additional setup of the Wizard page in this event. + + + + + Occurs after page has been displayed.This event can cancel the page change. You can perform any additional setup of the Wizard page in this event. + + + + + Occurs after page is hidden. You can perform any additional steps that are needed to complete wizard step in this event. + + + + + Occurs when Back button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Next button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Finish button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Cancel button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Occurs when Help button is clicked. You can cancel any default processing performed by Wizard control by setting Cancel=true on event arguments. + + + + + Gets whether page is currently selected page in Wizard. + + + + + Gets or sets whether back button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether back button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether next button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether next button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether finish button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether cancel button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether cancel button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets whether help button is enabled when page is active. Default value is eWizardButtonState.Auto which indicates that state is + automatically managed by control. + + + + + Gets or sets whether help button is visible when page is active. Default value is eWizardButtonState.Auto. + + + + + Gets or sets the page header image when page is an interior page, InteriorPage=true. Default value is null. + + + + + Gets or sets the text that is displayed as title in wizard header when page is active. + + + + + Gets or sets the text that is displayed as description in wizard header when page is active. + + + + + Gets or sets the text that is displayed on form caption when page is active. Default value is empty string which indicates that form caption + is not changed when page becomes active. + + + + + Gets or sets whether page is interior page. Interior pages use wizard header area to display page title, description and optional image. They are also padded and do not + fill the client area of the Wizard. Default value is true. + You can set this value to false to hide header area and make page fill the client area of the wizard. + + + + + Gets or sets whether page is visible. Page visibility is managed by Wizard control and it should not be set directly. + + + + + Represents the collection of WizardPage objects which determines the flow of the wizard. + + + + + Adds new object to the collection. + + Object to add. + Index of newly added object. + + + + Adds an array of objects to the collection. + + Array of WizardPage objects. + + + + Inserts new object into the collection. + + Position of the object. + Object to insert. + + + + Returns index of the object inside of the collection. + + Reference to the object. + Index of the object. + + + + Returns whether collection contains specified object. + + Object to look for. + true if object is part of the collection, otherwise false. + + + + Removes specified object from the collection. + + + + + + Copies collection into the specified array. + + Array to copy collection to. + Starting index. + + + + Copies contained items to the WizardPage array. + + Array to copy to. + + + + Copies contained items to the WizardPage array. + + Array to copy to. + + + + Gets the parent this collection is associated with. + + + + + Returns reference to the object in collection based on it's index. + + + + + Returns reference to the object in collection based on it's name. + + + + + Provides data for Wizard Page Change events. + + + + + Specifies the new active wizard page. You can change this argument when handling WizardPageChanging event and provide newly selected page of your own. + + + + + Specifies page that was or currently is active. + + + + + Indicates the wizard button that was source of page change. + + + + + Creates new instance of the class with default values. + + New wizard page + Old or current wizard page + Page change source + + + + Provides data for Wizard Page Change events. + + + + + Allows you to cancel the page change. + + + + + Creates new instance of the class with default values. + + New wizard page + Old or current wizard page + Page change source + + + + Defines delegate for WizardPageChange events. + + + + + Defines delegate for WizardPageChange events. + + +
+
diff --git a/SW/Dokumente_sik/bin/Debug/Layout01.xml b/SW/20211125/Dokumente/bin/Debug/Layout01.xml similarity index 100% rename from SW/Dokumente_sik/bin/Debug/Layout01.xml rename to SW/20211125/Dokumente/bin/Debug/Layout01.xml diff --git a/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.dll b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.dll new file mode 100644 index 0000000..49c2d9c Binary files /dev/null and b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.dll differ diff --git a/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.pdb b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.pdb new file mode 100644 index 0000000..17db9fe Binary files /dev/null and b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.pdb differ diff --git a/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.xml b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.xml new file mode 100644 index 0000000..dae245f --- /dev/null +++ b/SW/20211125/Dokumente/bin/Debug/ThemenDokumente.xml @@ -0,0 +1,1227 @@ + + + + +ThemenDokumente + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'DokumentAblageort'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr
  • +
  • iDokumentNr
  • +
  • sAblageort
  • +
  • sBeschreibung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'DokumentAblageTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokumenttyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumenttypnr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SpeicherTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSpeicherTypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokument'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentNr
  • +
  • iKeyValue
  • +
  • iDokType
  • +
  • iDokumenttypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • sFilename
  • +
  • sOriginalFilename_incl_Path
  • +
  • sVersion
  • +
  • sVersionsNr
  • +
  • daVersionsdatum
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • blobDocImage
  • +
  • iSpeichertypNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'spalten'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iEintragnr
  • +
  • sTabelle
  • +
  • sTabellenspalte
  • +
  • sSpalte
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite
  • +
  • iReihenfolge
  • +
  • sTiptext
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
  • sNumberFormat
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Dokument laden + + PersonNr + + + + + + Person sichern + + + + + + + Kopie eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz inaktivieren + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz physisch löschen + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Dokumenttypen laden und in der Datatable Dokumenttypdaten bereit stellen + + + + + + + Datei im Dokument speichern + + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + + + + + + + + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Doktype + 1: Vertragselement + 2: Test-Drehbuch + 3: Applikationsdokument + 4: Applikationlogbuch + ö + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. Beim Speichern werden ebenfalls allfällige Änderungen von C1DokumentAblagoeOrt durchgeführt. + Wurden lediglich Änderungen bei C1Dokumentablageort vorgenommen, wird separat gefrat, ob die Änderungen gespeichert werden sollen. + + + + + + + + Optionaler Parameter Dokumentnummer des aktuellen Dokuments + + + + + Formular-Load + + + + + + + + Formular schliessen + + + + + + + + Sicherungs-Button betätigt + + + + + + + + + Datensatz kopieren + + + + + + + + Neuer Datensatz erstellen + + + + + + + + Aktueller Datensatz inaktivieren + + + + + + + + Menu Beenden + + + + + + + + Vertragspartner suchen + + + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld + + + + + + + + Daten ab DB laden uns ins Form befüllen + + + + + + + Daten ab Form speichern + + + + + + Auswahl des zu speichernden Dokumentes + + + + + + + + Dokument anzeigen + + + + + + + + Text-Change von Txt-Dateiname + + + + + + + + Tabellenname übernehmen und Daten ab DB laden + + + + + + + Daten ab Datenbank laden + + + + + + Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt + + + + + + Update-Statement dynamisch für das UpdateCommand generieren + + + + + + Insert-Statement dynamisch für das InsertCommand generieren + + + + + + Prefixt für den SP-Übergabeparameter generieren + + Aktuelle Columnt + Prefis für SP-Übergabeparameter + + + + + SQL-DB-Type für den SP-Übergabeparameter festlegen + + Aktuelle Column + SQLDBType + + + + + Feldlänge für den SP-Übergabeparemter festlegen + + Aktulle Column + Feldlänge + + + + + Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + + + + + + Dispose von Tabledata + + + + + + Load der Verbindungstabelle + + + + + + + + + Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. + + + + + + + + + + Dokumente lesen und dem Grid übergeben + + C1TrueDBGrid mit Dokumente + + + + + + Kontakte auslesen und dem Truedbgrid übergeben + + TruedbGrid + Vertragselement, für welches die Dokumente ausgelesen werden + + + +
+
diff --git a/SW/Dokumente_sik/frmDokument.designer.vb b/SW/20211125/Dokumente/frmDokument.designer.vb similarity index 87% rename from SW/Dokumente_sik/frmDokument.designer.vb rename to SW/20211125/Dokumente/frmDokument.designer.vb index b3a209d..343d8c7 100644 --- a/SW/Dokumente_sik/frmDokument.designer.vb +++ b/SW/20211125/Dokumente/frmDokument.designer.vb @@ -50,6 +50,7 @@ Partial Class frmDokument Me.lblVersion = New System.Windows.Forms.Label() Me.lblBezeichnung = New System.Windows.Forms.Label() Me.lblDokumenttyp = New System.Windows.Forms.Label() + Me.cboxDokumenttyp = New System.Windows.Forms.ComboBox() Me.txtFilename = New System.Windows.Forms.TextBox() Me.lbldatei = New System.Windows.Forms.Label() Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() @@ -59,20 +60,26 @@ Partial Class frmDokument Me.btnDokumentAnzeigen = New System.Windows.Forms.Button() Me.lblEx = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() + Me.ComboBoxEx1 = New DevComponents.DotNetBar.Controls.ComboBoxEx() + Me.Label1 = New System.Windows.Forms.Label() + Me.cbboxSpeicherung = New System.Windows.Forms.ComboBox() Me.txtHyperlink = New System.Windows.Forms.TextBox() Me.lblHyperlink = New System.Windows.Forms.Label() Me.pnlDokument = New System.Windows.Forms.Panel() Me.pnlHyperlink = New System.Windows.Forms.Panel() - Me.cboxDokumenttyp = New System.Windows.Forms.ComboBox() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.ToolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel() Me.MenuStrip1.SuspendLayout() Me.ToolStrip1.SuspendLayout() Me.Panel1.SuspendLayout() Me.pnlDokument.SuspendLayout() Me.pnlHyperlink.SuspendLayout() + Me.StatusStrip1.SuspendLayout() Me.SuspendLayout() ' 'MenuStrip1 ' + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" @@ -98,7 +105,7 @@ Partial Class frmDokument ' 'ToolStrip1 ' - Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave, Me.TSBtnCopy, Me.TSBtnNew, Me.TSBtnDelete, Me.TSBtnSuche}) + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave, Me.TSBtnCopy, Me.TSBtnDelete, Me.TSBtnNew, Me.TSBtnSuche}) Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) Me.ToolStrip1.Name = "ToolStrip1" Me.ToolStrip1.Size = New System.Drawing.Size(583, 25) @@ -319,6 +326,14 @@ Partial Class frmDokument Me.lblDokumenttyp.TabIndex = 166 Me.lblDokumenttyp.Text = "Dokumenttyp" ' + 'cboxDokumenttyp + ' + Me.cboxDokumenttyp.FormattingEnabled = True + Me.cboxDokumenttyp.Location = New System.Drawing.Point(96, 111) + Me.cboxDokumenttyp.Name = "cboxDokumenttyp" + Me.cboxDokumenttyp.Size = New System.Drawing.Size(268, 21) + Me.cboxDokumenttyp.TabIndex = 1 + ' 'txtFilename ' Me.txtFilename.Location = New System.Drawing.Point(98, 56) @@ -383,7 +398,7 @@ Partial Class frmDokument ' 'Panel1 ' - Me.Panel1.Controls.Add(Me.cboxDokumenttyp) + Me.Panel1.Controls.Add(Me.ComboBoxEx1) Me.Panel1.Controls.Add(Me.cbaktiv) Me.Panel1.Controls.Add(Me.lblErstelltam) Me.Panel1.Controls.Add(Me.lblMutiert_am) @@ -392,6 +407,7 @@ Partial Class frmDokument Me.Panel1.Controls.Add(Me.txtMutiert_am) Me.Panel1.Controls.Add(Me.lblDokumenttyp) Me.Panel1.Controls.Add(Me.txtMutierer) + Me.Panel1.Controls.Add(Me.cboxDokumenttyp) Me.Panel1.Controls.Add(Me.txtBeschreibung) Me.Panel1.Controls.Add(Me.lblBeschreibung) Me.Panel1.Controls.Add(Me.lblBezeichnung) @@ -402,6 +418,38 @@ Partial Class frmDokument Me.Panel1.Size = New System.Drawing.Size(583, 140) Me.Panel1.TabIndex = 175 ' + 'ComboBoxEx1 + ' + Me.ComboBoxEx1.DisplayMember = "Text" + Me.ComboBoxEx1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed + Me.ComboBoxEx1.FormattingEnabled = True + Me.ComboBoxEx1.ItemHeight = 14 + Me.ComboBoxEx1.Location = New System.Drawing.Point(390, 112) + Me.ComboBoxEx1.Name = "ComboBoxEx1" + Me.ComboBoxEx1.Size = New System.Drawing.Size(121, 20) + Me.ComboBoxEx1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled + Me.ComboBoxEx1.TabIndex = 167 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(7, 85) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(67, 13) + Me.Label1.TabIndex = 175 + Me.Label1.Text = "Speicherung" + Me.Label1.Visible = False + ' + 'cbboxSpeicherung + ' + Me.cbboxSpeicherung.FormattingEnabled = True + Me.cbboxSpeicherung.Items.AddRange(New Object() {"Datenbank", "Dateisystem", "Hyperlink"}) + Me.cbboxSpeicherung.Location = New System.Drawing.Point(96, 82) + Me.cbboxSpeicherung.Name = "cbboxSpeicherung" + Me.cbboxSpeicherung.Size = New System.Drawing.Size(268, 21) + Me.cbboxSpeicherung.TabIndex = 174 + Me.cbboxSpeicherung.Visible = False + ' 'txtHyperlink ' Me.txtHyperlink.Location = New System.Drawing.Point(96, 0) @@ -420,8 +468,10 @@ Partial Class frmDokument ' 'pnlDokument ' + Me.pnlDokument.Controls.Add(Me.Label1) Me.pnlDokument.Controls.Add(Me.txtOriginalFilename_incl_path) Me.pnlDokument.Controls.Add(Me.txtVersion) + Me.pnlDokument.Controls.Add(Me.cbboxSpeicherung) Me.pnlDokument.Controls.Add(Me.lblVersion) Me.pnlDokument.Controls.Add(Me.lblVersionsdatum) Me.pnlDokument.Controls.Add(Me.lblEx) @@ -435,7 +485,7 @@ Partial Class frmDokument Me.pnlDokument.Dock = System.Windows.Forms.DockStyle.Top Me.pnlDokument.Location = New System.Drawing.Point(0, 189) Me.pnlDokument.Name = "pnlDokument" - Me.pnlDokument.Size = New System.Drawing.Size(583, 95) + Me.pnlDokument.Size = New System.Drawing.Size(583, 139) Me.pnlDokument.TabIndex = 178 ' 'pnlHyperlink @@ -443,24 +493,32 @@ Partial Class frmDokument Me.pnlHyperlink.Controls.Add(Me.lblHyperlink) Me.pnlHyperlink.Controls.Add(Me.txtHyperlink) Me.pnlHyperlink.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlHyperlink.Location = New System.Drawing.Point(0, 284) + Me.pnlHyperlink.Location = New System.Drawing.Point(0, 328) Me.pnlHyperlink.Name = "pnlHyperlink" Me.pnlHyperlink.Size = New System.Drawing.Size(583, 46) Me.pnlHyperlink.TabIndex = 179 ' - 'cboxDokumenttyp + 'StatusStrip1 ' - Me.cboxDokumenttyp.FormattingEnabled = True - Me.cboxDokumenttyp.Location = New System.Drawing.Point(98, 111) - Me.cboxDokumenttyp.Name = "cboxDokumenttyp" - Me.cboxDokumenttyp.Size = New System.Drawing.Size(268, 21) - Me.cboxDokumenttyp.TabIndex = 167 + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabel1}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 372) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(583, 22) + Me.StatusStrip1.TabIndex = 180 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'ToolStripStatusLabel1 + ' + Me.ToolStripStatusLabel1.ForeColor = System.Drawing.Color.Black + Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" + Me.ToolStripStatusLabel1.Size = New System.Drawing.Size(0, 17) ' 'frmDokument ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(583, 341) + Me.ClientSize = New System.Drawing.Size(583, 394) + Me.Controls.Add(Me.StatusStrip1) Me.Controls.Add(Me.pnlHyperlink) Me.Controls.Add(Me.pnlDokument) Me.Controls.Add(Me.Panel1) @@ -479,6 +537,8 @@ Partial Class frmDokument Me.pnlDokument.PerformLayout() Me.pnlHyperlink.ResumeLayout(False) Me.pnlHyperlink.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -510,6 +570,7 @@ Partial Class frmDokument Friend WithEvents lblVersion As System.Windows.Forms.Label Friend WithEvents lblBezeichnung As System.Windows.Forms.Label Friend WithEvents lblDokumenttyp As System.Windows.Forms.Label + Friend WithEvents cboxDokumenttyp As System.Windows.Forms.ComboBox Friend WithEvents txtFilename As System.Windows.Forms.TextBox Friend WithEvents lbldatei As System.Windows.Forms.Label Friend WithEvents brnFileOpen As System.Windows.Forms.Button @@ -519,9 +580,13 @@ Partial Class frmDokument Friend WithEvents btnDokumentAnzeigen As System.Windows.Forms.Button Friend WithEvents lblEx As System.Windows.Forms.Label Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents cbboxSpeicherung As System.Windows.Forms.ComboBox Friend WithEvents txtHyperlink As System.Windows.Forms.TextBox Friend WithEvents lblHyperlink As System.Windows.Forms.Label Friend WithEvents pnlDokument As System.Windows.Forms.Panel Friend WithEvents pnlHyperlink As System.Windows.Forms.Panel - Friend WithEvents cboxDokumenttyp As System.Windows.Forms.ComboBox + Friend WithEvents ComboBoxEx1 As DevComponents.DotNetBar.Controls.ComboBoxEx + Friend WithEvents StatusStrip1 As StatusStrip + Friend WithEvents ToolStripStatusLabel1 As ToolStripStatusLabel End Class diff --git a/SW/Dokumente_sik/frmDokument.resx b/SW/20211125/Dokumente/frmDokument.resx similarity index 81% rename from SW/Dokumente_sik/frmDokument.resx rename to SW/20211125/Dokumente/frmDokument.resx index 2859665..c71ea73 100644 --- a/SW/Dokumente_sik/frmDokument.resx +++ b/SW/20211125/Dokumente/frmDokument.resx @@ -112,51 +112,51 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 - + 513, 17 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK2SURBVDhPnZLdS1NhHMcfCPoDuummi+i6qwYWvSBuc5vH - szM3Z1vnnG0nXTkzKnqDrKysNC1rhVa0YSoVRaVWRlr2omhoTMpErBXVRXhR9EIQXRR8Omosdlk/+MDz - e+D58Hx/zyP+pz69HAh+fjv6s21HLn+2ZutydWFXx4FCug5OI2XorJG4stfOw+QWPk708mHsFt9e9XNx - lzVb0Fkts2SZnaUrbCxb9ZecFVYWW1byPd1LumsfqWY/X9KPuLzHkS3oqJLJtTqx2SXsDlcGa76TnJU2 - XrRFSJ3TGTkd5ON4D9f2F2QLHHGBVDeHArsPyaUgFbiRJBmXS2aVVWKi1WDkbIjHTUGmUp0zUf8cFcJ2 - RJCeasdpSgrzNNzOAIrkR5G9yG4PeQ43z5Nhhpp1+uNreDt4idu1yqzAVicYe5egtV+QWyuwNwqcpwRy - 1Xy8ShBPkZ/8Qh+j5zT6T+p8v7OQyb4Weuq9CFeDYPhNLckhQWLQXL8u48mbCE/fh2ckJZ4wxcVBJE+A - J6dVHpzQ+NG7iPHbzfQ1+mcF99PbSY4KkilBy3NB64Tg2dcIjpOCYHEZqwMh3MUaQ00B+o4HSWx38rTz - CI/igZkIFrsZoXtyHe1pQd50hKMCxwlB0d4F6GoUVTfwBQ0G4n7uHivh+gGF4UvVDDapmSFa8usFXa99 - OI8LjMBWDK0SI1yOYUSJGKUEQlEeNHq50+Cju87LwPltjJwJZT2jxWleWWmYS9TYRLSsgrJo+QylJtra - GPcaPHTXFnHjkIfe5hijiUiWQLRVLmd9RSUVsc1UbNiYIWZSWr6Ju/UyNw8rdBx0c/NYiLGWUoSu6+ha - CE0Lo6rTmGtVM3s1g2r2q9fo7IwFuFCtmD9Q5mpNERPt62aH+K9U6Tm7Erutv15eiGVH+IeaZ7JECGH5 - DX4YwpWqC/6hAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAK0SURBVDhPnZLfS1NhGMdfCPoDuummi+i6qwYmlYjb3Obx + 7MzN1dY5Z9tJV86Min5BlvZb07Is1CKHqVQYlVoZaZmlaGQopSLmkuwigoooguii4NNRY7HLeuAD7/PC + ++H9Pu8r/qc+Tw8EP8yO/mzZm8mfrYVqK8/tbD+SS+exOaQkHUclrpfZeRzfyafJHj6O3eXb636u7rem + CjrKZVal21m91kZ6xl/S1lpZaVnH90QPic5DjNT7+ZJ4QttBR6qgvVQm0+rEZpewO1xJrNlO0tbZeNUS + YeSSznBDkE8T3dw8nJMqcNQKpMpF5Nh9SC4FKceNJMm4XDIZVonJZoPhiyGe1gV5P9IxH/XPUSFsJwWJ + 9604TUlulobbGUCR/CiyF9ntIcvhZjweZqhep792I7OD17hXoSwIbJWCsbeNNPcLMisE9hqB87xALl2K + VwniyfOTnetj9JJG/zmd7/eXM9XbRHeVF+GqFjx7U0F8SNA4aK5nCnn+JsKLd+F5yXpPmPz8IJInwPMG + lb6zGj96VjBxr57eGv+C4FFiD/FRQXxE0DQuaJ4UvPwawXFOEMwvZEMghDtfY6guQO+ZII17nLzoOMmT + 2sB8BIvdjNA1tZnWhCBrLsIpgeOsIK9sGboaRdUNfEGDgVo/D06v59YRhWfXyhmsU5NDtGRXCTpnfDjP + CIzALgytBCNchGFEiRgFBEJR+mq83K/20VXpZeDyboYvhFKe0eI0r6xULyZqbCdaWExhtGieAhNtU4yH + 1R66KvK4fdxDT32M0cZIikC0lKxhS3EJxbEdFG/dliRmUlC0nQdVMndOKLQfc3PndIixpgKEruvoWghN + C6Oqc5hrVTN7NYlq9hs26uyLBbhSrpg/UObG0TwmWzcvDPFfKdXT9jccyPg1fSWWGuEfaonJKiGE5Tdo + FcKGVVlc7gAAAABJRU5ErkJggg== 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 @@ -165,21 +165,6 @@ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABnSURBVDhPtZIBCsAgDAP79D6tP+tWpWNqdEFZIAalHhEU M/MTDwARpX0MUL1zBIgzirklgMkCQNVmfmsbABrUg1S/T6G5BrCT/zVgDRvMlBd6PwAm4wL4N3XgS0sA awiIJd/DuAWYX6K9icTfTBdeAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO - Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP - AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn - Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 - ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee - T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB - cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaYfFf3Y+sP3f/sDqf9gm8Q8gMRgG - qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP - B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM - 7GDMwMAMEUIHDAwAuG3zVaDyZEUAAAAASUVORK5CYII= @@ -196,6 +181,21 @@ tLUhT0V4dt3rlRs4uO27cBj34+N4oCP9RrfxOx13SVU1pbCwkDpvbYXe0oIsFeGfd97d3TCn7JLa/krH yuBPunC/VlZQiUYfH9WZw5G2Czx7AtviNZMu2w96SL/X1nAXiz0+JltnTmfqucejNYNtca48NqZd286K ovwBHtVvxMSvxBEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAINSURBVDhPY6AVYAyc67K/+XD1/SYg9p3quAQqTiQIZWAO + Wu75Zu6Nuf9nX5/9322S/TmoDJEAaIDnctc3k69M/D/hSt9/p0nm56EyRAKwATZveq+0/O++0gg0wAiP + AfUMTOYLtWx81tnYB0CxZZ+ak88myw9dV8v/d1wp+e88T++2/XxtB591FvYeQOyyzsTeYJGyFVi/cAGn + Se6J5P99V5v+T7ze8H/Szbr/U27V/O++kfe/43rm/9Zr6f87r+f+775e9L/tSsH/hot5/yvPZf8P2Ov6 + ny+OXZlBLJfTogoo0H+9Fqi56v+U2xX/p94p/d9+M+5/283o/y03I/533Ur+33Mz63/79fT/DZdT/1ee + T/4fdtD5P28ImzqDUAaLRcQOwf9ph4T/554U+l94Ruh/wRnB/zXXzP633/H533rH83/5ZZ3/+af5/+cB + cdZx/v9JB/j++27lAhrAoM7A6cQgLRnPsFk2mWGbYhrDNuV0IA3EaftFf3Y+sP3f/sDqf9gm8Q8gMRgG + qRWPZ9jAZ8EgBA4HIGBEwfYMLOGHmN7UPeb4X/eY67/7ciZQLKCqgWAcABiNiecY3nS8YvgPwj5rGEhP + B7kXBN4s+CT/f/5H+f9hG3lJNyBpr+6bOQ89/oNwwCJ1Eg1gYGCSymXYYdjGcAOExeIZ5kHFSQIsDCoM + 7GDMwMAMEUIHDAwArmHzT5KTHe0AAAAASUVORK5CYII= @@ -207,7 +207,7 @@ GPyENzyK4fWOSpIkcShlA/2ShGAugX0dAAAAAElFTkSuQmCC - + 615, 17 @@ -231,6 +231,9 @@ AElFTkSuQmCC + + 757, 17 + AAABAAEAICAEAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA diff --git a/SW/Dokumente_sik/frmDokument.vb b/SW/20211125/Dokumente/frmDokument.vb similarity index 85% rename from SW/Dokumente_sik/frmDokument.vb rename to SW/20211125/Dokumente/frmDokument.vb index 2a682e5..fdf2adc 100644 --- a/SW/Dokumente_sik/frmDokument.vb +++ b/SW/20211125/Dokumente/frmDokument.vb @@ -2,6 +2,7 @@ Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient +Imports System.IO Public Class frmDokument #Region "Deklarationen" @@ -59,7 +60,7 @@ Public Class frmDokument If Me.FormReadonly Then Exit Function Dim msgres As MsgBoxResult If Me.FormDataChanged Then - msgres = MsgBox("Mchten Sie die nderungen speichern?", vbYesNoCancel + MsgBoxStyle.Question) + msgres = MsgBox("Mchten Sie die nderungen speichern?", vbYesNoCancel + MsgBoxStyle.Question, Title:="Assessment-Managmenet") Select Case msgres Case MsgBoxResult.Yes Save_data() @@ -141,11 +142,20 @@ Public Class frmDokument Me.cboxDokumenttyp.DisplayMember = "Bezeichnung" Me.cboxDokumenttyp.ValueMember = "Dokumenttypnr" - Me.cboxDokumenttyp.Text = "Dokument" + Me.Dokument.get_Speichertypen() + Me.cbboxSpeicherung.DataSource = Me.Dokument.Speichertypdaten + Me.cbboxSpeicherung.DisplayMember = "Bezeichnung" + Me.cbboxSpeicherung.ValueMember = "Speichertypnr" + + Me.ComboBoxEx1.DataSource = Me.Dokument.Dokumenttypdaten + Me.ComboBoxEx1.DisplayMember = "Bezeichnung" + Me.ComboBoxEx1.ValueMember = "Dokumenttypnr" + Me.ComboBoxEx1.SelectedValue = 2 + Me.cboxDokumenttyp.SelectedValue = 2 AddChanges(Me) Get_Data(Me.Aktuelles_Dokument) - If Me.cboxDokumenttyp.Text = "Hyperlink" Then Me.txtHyperlink.Text = Me.txtOriginalFilename_incl_path.Text + If Me.cbboxSpeicherung.Text = "Hyperlink" Then Me.txtHyperlink.Text = Me.txtOriginalFilename_incl_path.Text If Me.Neuer_Datensatz = True Then Me.Dokument.Neuer_Datensatz = True Me.Neuer_Datensatz = False @@ -173,10 +183,16 @@ Public Class frmDokument ''' ''' ''' + ''' + Dim WithEvents speichertimer As New Timer + Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click + speichertimer.Interval = 5000 + speichertimer.Enabled = True Me.Save_data() Me.txtMutiert_am.Text = Me.Dokument.daMutiert_am.ToString Me.FormDataChanged = False + Me.ToolStripStatusLabel1.Text = "Daten wurden gespeichert" End Sub ''' @@ -211,7 +227,7 @@ Public Class frmDokument ''' ''' Private Sub TSBtnDelete_Click(ByVal senderBeendenToolStripMenuItem As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click - If MsgBox("Das Dokument wirklich lschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then + If MsgBox("Das Dokument wirklich lschen?", vbYesNo + vbQuestion, Title:="Assessment-Managmenet") = MsgBoxResult.Yes Then Me.Dokument.Delete_Dokument(Me.Dokument.iDokumentNr.Value) Me.Close() End If @@ -374,7 +390,7 @@ Public Class frmDokument Dokument.Get_Dokumenttypen() Dokument.Get_Dokument(Dokumentnr) Me.txtBezeichnung.Text = Dokument.sBezeichnung.Value - Me.cboxDokumenttyp.SelectedIndex = Dokument.iDokumenttypNr.Value - 1 + Me.cboxDokumenttyp.SelectedValue = Dokument.iDokumenttypNr.Value Me.txtBeschreibung.Text = Dokument.sBeschreibung.Value Me.txtVersion.Text = Dokument.sVersion.ToString Me.txtVersionsdatum.Text = Dokument.daVersionsdatum.ToString @@ -387,7 +403,7 @@ Public Class frmDokument Me.txtErstellt_am.Text = Dokument.daErstellt_am.ToString Me.txtMutiert_am.Text = Dokument.daMutiert_am.ToString Me.txtMutierer.Text = Dokument.iMutierer.Value - + Me.cbboxSpeicherung.SelectedValue = Dokument.iSpeichertypNr.Value Try Me.cbaktiv.Checked = Dokument.bAktiv.Value = True @@ -412,19 +428,25 @@ Public Class frmDokument Me.FormDataChanged = False End Sub - + ''' ''' Daten ab Form speichern ''' ''' - Private Sub Save_data() + Private Function Save_data() As Boolean 'Prfung, ob das Ausgewhlte File zur Speicherung vorhanden ist - If Me.cboxDokumenttyp.Text <> "Hyperlink" Then + If Me.txtFilename.Text <> "" And Me.cbboxSpeicherung.SelectedValue <> 3 Then If Not IO.File.Exists(Me.txtFilename.Text) Then - MsgBox("Die gewhlte Datei ist nicth vorhanden." + vbExclamation) - Exit Sub + MsgBox("Die gewhlte Datei ist nicth vorhanden." + vbExclamation, Title:="Assessment-Managmenet") + Return False + Exit Function End If End If + If FileInUse(Me.txtFilename.Text) Then + MsgBox("Die Datei ist in einem anderen Programm geffnet und kann nicht gespeichert werden. Bitte schliessen Sie das Programm und versuchen Sie es erneut.", Title:="Assessment-Managmenet") + Return False + Exit Function + End If If Me.txtFilename.Text <> "" And Me.txtDateiname.Text <> "" And Me.txtDateiname.Text <> Me.SaveFileName And Me.SaveFileName <> "" Then 'If msg.Show_MessageYesNo(272) = MsgBoxResult.No Then ' msg.show_standardmessage(273, MsgBoxStyle.Information) @@ -432,7 +454,7 @@ Public Class frmDokument 'End If End If Dokument.iKeyValue = New SqlInt32(CType(Me.Aktuelles_Element, Int32)) - Dokument.iDokumenttypNr = New SqlInt32(CType(Me.cboxDokumenttyp.SelectedIndex, Int32)) + Dokument.iDokumenttypNr = New SqlInt32(CType(Me.cboxDokumenttyp.SelectedValue, Int32)) Dokument.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String)) Dokument.sBeschreibung = New SqlString(CType(Me.txtBeschreibung.Text, String)) Dokument.sVersion = New SqlString(CType(Me.txtVersion.Text, String)) @@ -444,13 +466,32 @@ Public Class frmDokument Dokument.sFilename = New SqlString(CType(Me.txtDateiname.Text, String)) Dokument.sOriginalFilename_incl_Path = New SqlString(CType(Me.txtOriginalFilename_incl_path.Text, String)) Dokument.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked = True, Boolean)) + Dokument.iSpeichertypNr = New SqlInt32(CType(Me.cbboxSpeicherung.SelectedValue, Int32)) Dokument.Save_Data() - If Dokument.Save_File(Dokument.iDokumentNr.Value, Me.txtFilename.Text) = False Then - MsgBox("Die Datei konnte nicht gespeichert werden." + vbExclamation) + If cbboxSpeicherung.SelectedValue = 1 Then + + If Dokument.Save_File(Dokument.iDokumentNr.Value, Me.txtFilename.Text) = False Then + MsgBox("Die Datei konnte nicht gespeichert werden." + vbExclamation, Title:="Assessment-Managmenet") + End If End If 'Me.Dokument.Dokumentablageort.Save_Data() Me.SaveFileName = Me.txtDateiname.Text - End Sub + Return True + End Function + + Public Function FileInUse(ByVal sFile As String) As Boolean + Dim thisFileInUse As Boolean = False + If System.IO.File.Exists(sFile) Then + Try + Using f As New IO.FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None) + ' thisFileInUse = False + End Using + Catch + thisFileInUse = True + End Try + End If + Return thisFileInUse + End Function #End Region @@ -477,10 +518,15 @@ Public Class frmDokument Private Sub btnDokumentAnzeigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDokumentAnzeigen.Click If Trim(Me.Aktuelles_Dokument) = "" Then Exit Sub Try - Me.Dokument.Show_Doc(Me.Aktuelles_Dokument) + If Me.Dokument.Show_Doc(Me.Aktuelles_Dokument) = False Then + If MsgBox("Daten wurden noch nicht gespeichert. Sollen sie gespeichert werden?", vbYesNo + vbQuestion, Title:="Assessment-Managmenet") = vbYes Then + Me.TSBtnSave_Click(sender, e) + Me.Dokument.Show_Doc(Me.Aktuelles_Dokument) + End If + End If Catch ex As Exception - MsgBox("Die Datei konnte nicht geffnet werden.", MsgBoxStyle.Exclamation) + MsgBox("Die Datei konnte nicht geffnet werden.", MsgBoxStyle.Exclamation, Title:="Assessment-Managmenet") End Try End Sub ''' @@ -500,6 +546,7 @@ Public Class frmDokument If Me.cboxDokumenttyp.Text = "Hyperlink" Then Me.pnlDokument.Visible = False Me.pnlHyperlink.Visible = True + Me.cbboxSpeicherung.SelectedValue = 3 Me.Height = Me.ToolStrip1.Height + Me.Panel1.Height + Me.pnlHyperlink.Height + Me.MenuStrip1.Height + 20 Else Me.pnlDokument.Visible = True @@ -517,7 +564,8 @@ Public Class frmDokument End Sub - Private Sub cbboxDokumenttyp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboxDokumenttyp.SelectedIndexChanged - + Private Sub speichertimer_Tick(sender As Object, e As EventArgs) Handles speichertimer.Tick + speichertimer.Enabled = False + Me.ToolStripStatusLabel1.Text = "" End Sub End Class \ No newline at end of file diff --git a/SW/20211125/Dokumente/obj/Debug/CoreCompileInputs.cache b/SW/20211125/Dokumente/obj/Debug/CoreCompileInputs.cache new file mode 100644 index 0000000..17a55f4 --- /dev/null +++ b/SW/20211125/Dokumente/obj/Debug/CoreCompileInputs.cache @@ -0,0 +1 @@ +a5d29d63a6164e3e552c1030e48b27c9c35df05e diff --git a/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..7e1b932 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..0c75242 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/Dokumente_sik/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/SW/20211125/Dokumente/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll similarity index 70% rename from SW/Dokumente_sik/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll rename to SW/20211125/Dokumente/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll index 9cde73e..d28a435 100644 Binary files a/SW/Dokumente_sik/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll and b/SW/20211125/Dokumente/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.Dokumente.resources b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Dokumente.resources similarity index 56% rename from SW/Dokumente_sik/obj/Debug/ThemenDokumente.Dokumente.resources rename to SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Dokumente.resources index 6d1b3d7..cdc9e68 100644 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.Dokumente.resources and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Dokumente.resources differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Form1.resources b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Form1.resources new file mode 100644 index 0000000..80ff225 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Form1.resources differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Resources.resources b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Resources.resources new file mode 100644 index 0000000..06c24d0 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.Resources.resources differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.dll b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.dll new file mode 100644 index 0000000..49c2d9c Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.dll differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.frmDokument.resources b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.frmDokument.resources similarity index 62% rename from SW/Dokumente_sik/obj/Debug/ThemenDokumente.frmDokument.resources rename to SW/20211125/Dokumente/obj/Debug/ThemenDokumente.frmDokument.resources index 626ad9a..168d869 100644 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.frmDokument.resources and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.frmDokument.resources differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.pdb b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.pdb new file mode 100644 index 0000000..17db9fe Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.pdb differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..548ccf6 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.CopyComplete b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache new file mode 100644 index 0000000..ba7b766 --- /dev/null +++ b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +2406df3b31ac08f8bbcdbdca08fc2ab47e571c9f diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt similarity index 76% rename from SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt rename to SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt index 8893473..9fac23d 100644 --- a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt +++ b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt @@ -10,17 +10,24 @@ E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\Theme E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\ThemenDokumente.xml E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\ThemenDokumente.pdb E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\ThemenDokumente.vbprojResolveAssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.frmDokument.resources E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.Resources.resources E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.Dokumente.resources E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.GenerateResource.Cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.dll.licenses -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.pdb -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.pdb -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbprojResolveAssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.CoreCompileInputs.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1Command.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.AssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.Form1.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1Command.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.xml diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache new file mode 100644 index 0000000..31c2724 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbprojAssemblyReference.cache b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbprojAssemblyReference.cache new file mode 100644 index 0000000..18edfbd Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.vbprojAssemblyReference.cache differ diff --git a/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.xml b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.xml new file mode 100644 index 0000000..dae245f --- /dev/null +++ b/SW/20211125/Dokumente/obj/Debug/ThemenDokumente.xml @@ -0,0 +1,1227 @@ + + + + +ThemenDokumente + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'DokumentAblageort'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr. May be SqlInt32.Null
  • +
  • iDokumentNr. May be SqlInt32.Null
  • +
  • sAblageort. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentablageortNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentablageortNr
  • +
  • iDokumentablagetypNr
  • +
  • iDokumentNr
  • +
  • sAblageort
  • +
  • sBeschreibung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'DokumentAblageTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • iMandantNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentAblageTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentAblageTypNr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • iMandantNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokumenttyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumenttypnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumenttypnr
  • +
  • sBezeichnung
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SpeicherTyp'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSpeicherTypNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSpeicherTypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Dokument'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
  • iKeyValue. May be SqlInt32.Null
  • +
  • iDokType. May be SqlInt32.Null
  • +
  • iDokumenttypNr. May be SqlInt32.Null
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • +
  • sVersion. May be SqlString.Null
  • +
  • sVersionsNr. May be SqlString.Null
  • +
  • daVersionsdatum. May be SqlDateTime.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • blobDocImage. May be SqlBinary.Null
  • +
  • iSpeichertypNr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iDokumentNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iDokumentNr
  • +
  • iKeyValue
  • +
  • iDokType
  • +
  • iDokumenttypNr
  • +
  • sBezeichnung
  • +
  • sBeschreibung
  • +
  • sFilename
  • +
  • sOriginalFilename_incl_Path
  • +
  • sVersion
  • +
  • sVersionsNr
  • +
  • daVersionsdatum
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bAktiv
  • +
  • blobDocImage
  • +
  • iSpeichertypNr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'spalten'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
  • sTabelle. May be SqlString.Null
  • +
  • sTabellenspalte. May be SqlString.Null
  • +
  • sSpalte. May be SqlString.Null
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite. May be SqlInt32.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • sTiptext. May be SqlString.Null
  • +
  • bAktiv
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • sNumberFormat. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iEintragnr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iEintragnr
  • +
  • sTabelle
  • +
  • sTabellenspalte
  • +
  • sSpalte
  • +
  • bReadonly
  • +
  • bAlsHacken
  • +
  • iBreite
  • +
  • iReihenfolge
  • +
  • sTiptext
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
  • sNumberFormat
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Dokument laden + + PersonNr + + + + + + Person sichern + + + + + + + Kopie eines Datensatzes erstellen. + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz inaktivieren + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Datensatz physisch löschen + + Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen + + + + + + Neue Person einfügen + + + + + + + Dokumenttypen laden und in der Datatable Dokumenttypdaten bereit stellen + + + + + + + Datei im Dokument speichern + + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge + + + + + + + + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Doktype + 1: Vertragselement + 2: Test-Drehbuch + 3: Applikationsdokument + 4: Applikationlogbuch + ö + + + + + Schliessen des Formulars + + + + + + + + Prüfung, ob Datenänderungen vorgenommen wurden. Beim Speichern werden ebenfalls allfällige Änderungen von C1DokumentAblagoeOrt durchgeführt. + Wurden lediglich Änderungen bei C1Dokumentablageort vorgenommen, wird separat gefrat, ob die Änderungen gespeichert werden sollen. + + + + + + + + Optionaler Parameter Dokumentnummer des aktuellen Dokuments + + + + + Formular-Load + + + + + + + + Formular schliessen + + + + + + + + Sicherungs-Button betätigt + + + + + + + + + Datensatz kopieren + + + + + + + + Neuer Datensatz erstellen + + + + + + + + Aktueller Datensatz inaktivieren + + + + + + + + Menu Beenden + + + + + + + + Vertragspartner suchen + + + + + + + + Allg Eventhandler für Chanage-Ereignise festlegen + + + + + + + Envent-Handler für Change-Ereignisse + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld + + + + + + + + Daten ab DB laden uns ins Form befüllen + + + + + + + Daten ab Form speichern + + + + + + Auswahl des zu speichernden Dokumentes + + + + + + + + Dokument anzeigen + + + + + + + + Text-Change von Txt-Dateiname + + + + + + + + Tabellenname übernehmen und Daten ab DB laden + + + + + + + Daten ab Datenbank laden + + + + + + Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt + + + + + + Update-Statement dynamisch für das UpdateCommand generieren + + + + + + Insert-Statement dynamisch für das InsertCommand generieren + + + + + + Prefixt für den SP-Übergabeparameter generieren + + Aktuelle Columnt + Prefis für SP-Übergabeparameter + + + + + SQL-DB-Type für den SP-Übergabeparameter festlegen + + Aktuelle Column + SQLDBType + + + + + Feldlänge für den SP-Übergabeparemter festlegen + + Aktulle Column + Feldlänge + + + + + Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert + + + + + + Dispose von Tabledata + + + + + + Load der Verbindungstabelle + + + + + + + + + Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. + + + + + + + + + + Dokumente lesen und dem Grid übergeben + + C1TrueDBGrid mit Dokumente + + + + + + Kontakte auslesen und dem Truedbgrid übergeben + + TruedbGrid + Vertragselement, für welches die Dokumente ausgelesen werden + + + +
+
diff --git a/SW/20211125/Dokumente/obj/Debug/themendokumente.dll.licenses b/SW/20211125/Dokumente/obj/Debug/themendokumente.dll.licenses new file mode 100644 index 0000000..5b674e8 Binary files /dev/null and b/SW/20211125/Dokumente/obj/Debug/themendokumente.dll.licenses differ diff --git a/SW/20211125/Dokumente/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt b/SW/20211125/Dokumente/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..a3a1070 --- /dev/null +++ b/SW/20211125/Dokumente/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt @@ -0,0 +1,44 @@ +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDatenbankauswahl.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmAbout.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmLogin.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMsgBox.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSplash.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmKategorie.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPPlan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPruefplan.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmPruefplanDetail.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmFinmaStammdaten.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmFinmaStammdaten_Detail.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmDomainEditorExtTables.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmFormSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSysadminMenu.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmSysadminTableSelector.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmToolTipEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmVerbindungEditor.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmMain.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Resources.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.FrmUebersicht.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmNeuerVorgabeEintrag.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.frmVorgabe.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.exe.licenses +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssetMgmt.exe.config +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssetMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssetMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssetMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1Command.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1SplitContainer.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1Command.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1SplitContainer.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.exe +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbprojResolveAssemblyReference.cache diff --git a/SW/Dokumente_sik/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt b/SW/20211125/Dokumente/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt similarity index 100% rename from SW/Dokumente_sik/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt rename to SW/20211125/Dokumente/obj/x86/Debug/Themenmanagement.vbproj.FileListAbsolute.txt diff --git a/SW/20211125/_FRReporting/DB/clsAuswertung.vb b/SW/20211125/_FRReporting/DB/clsAuswertung.vb new file mode 100644 index 0000000..3ed23a3 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertung.vb @@ -0,0 +1,590 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'Auswertung' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 18:27:01 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'Auswertung'. + ''' + Public Class clsAuswertung + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv, m_bExcel_Report, m_bReport As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iAuswertungNr, m_iMutierer As SqlInt32 + Private m_sSQLType, m_sBeschreibung, m_sConnectionstring_Subreport, m_sFilename, m_sBezeichnung, m_sSQL As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungNr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • bReport. May be SqlBoolean.Null
  • + '''
  • sFilename. May be SqlString.Null
  • + '''
  • bExcel_Report. May be SqlBoolean.Null
  • + '''
  • sSQL. May be SqlString.Null
  • + '''
  • sSQLType. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sConnectionstring_Subreport. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertung_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@bReport", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bReport)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFilename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFilename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bExcel_Report", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bExcel_Report)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQL", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQL)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQLType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQLType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sConnectionstring_Subreport", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sConnectionstring_Subreport)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertung_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertung::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungNr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • bReport. May be SqlBoolean.Null
  • + '''
  • sFilename. May be SqlString.Null
  • + '''
  • bExcel_Report. May be SqlBoolean.Null
  • + '''
  • sSQL. May be SqlString.Null
  • + '''
  • sSQLType. May be SqlString.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sConnectionstring_Subreport. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertung_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@bReport", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bReport)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFilename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFilename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bExcel_Report", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bExcel_Report)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQL", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQL)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQLType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQLType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sConnectionstring_Subreport", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sConnectionstring_Subreport)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertung_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertung::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertung_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertung_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertung::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungNr
  • + '''
  • sBezeichnung
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • bReport
  • + '''
  • sFilename
  • + '''
  • bExcel_Report
  • + '''
  • sSQL
  • + '''
  • sSQLType
  • + '''
  • sBeschreibung
  • + '''
  • sConnectionstring_Subreport
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertung_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Auswertung") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertung_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Report") Is System.DBNull.Value Then + m_bReport = SqlBoolean.Null + Else + m_bReport = New SqlBoolean(CType(dtToReturn.Rows(0)("Report"), Boolean)) + End If + If dtToReturn.Rows(0)("Filename") Is System.DBNull.Value Then + m_sFilename = SqlString.Null + Else + m_sFilename = New SqlString(CType(dtToReturn.Rows(0)("Filename"), String)) + End If + If dtToReturn.Rows(0)("Excel_Report") Is System.DBNull.Value Then + m_bExcel_Report = SqlBoolean.Null + Else + m_bExcel_Report = New SqlBoolean(CType(dtToReturn.Rows(0)("Excel_Report"), Boolean)) + End If + If dtToReturn.Rows(0)("SQL") Is System.DBNull.Value Then + m_sSQL = SqlString.Null + Else + m_sSQL = New SqlString(CType(dtToReturn.Rows(0)("SQL"), String)) + End If + If dtToReturn.Rows(0)("SQLType") Is System.DBNull.Value Then + m_sSQLType = SqlString.Null + Else + m_sSQLType = New SqlString(CType(dtToReturn.Rows(0)("SQLType"), String)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Connectionstring_Subreport") Is System.DBNull.Value Then + m_sConnectionstring_Subreport = SqlString.Null + Else + m_sConnectionstring_Subreport = New SqlString(CType(dtToReturn.Rows(0)("Connectionstring_Subreport"), String)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertung::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertung_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Auswertung") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertung_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertung::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungNr]() As SqlInt32 + Get + Return m_iAuswertungNr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungNrTmp As SqlInt32 = Value + If iAuswertungNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungNr", "iAuswertungNr can't be NULL") + End If + m_iAuswertungNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [bReport]() As SqlBoolean + Get + Return m_bReport + End Get + Set(ByVal Value As SqlBoolean) + m_bReport = Value + End Set + End Property + + + Public Property [sFilename]() As SqlString + Get + Return m_sFilename + End Get + Set(ByVal Value As SqlString) + m_sFilename = Value + End Set + End Property + + + Public Property [bExcel_Report]() As SqlBoolean + Get + Return m_bExcel_Report + End Get + Set(ByVal Value As SqlBoolean) + m_bExcel_Report = Value + End Set + End Property + + + Public Property [sSQL]() As SqlString + Get + Return m_sSQL + End Get + Set(ByVal Value As SqlString) + m_sSQL = Value + End Set + End Property + + + Public Property [sSQLType]() As SqlString + Get + Return m_sSQLType + End Get + Set(ByVal Value As SqlString) + m_sSQLType = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sConnectionstring_Subreport]() As SqlString + Get + Return m_sConnectionstring_Subreport + End Get + Set(ByVal Value As SqlString) + m_sConnectionstring_Subreport = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsAuswertungAuswertungParameter.vb b/SW/20211125/_FRReporting/DB/clsAuswertungAuswertungParameter.vb new file mode 100644 index 0000000..f18e0d4 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertungAuswertungParameter.vb @@ -0,0 +1,510 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'AuswertungAuswertungParameter' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'AuswertungAuswertungParameter'. + ''' + Public Class clsAuswertungAuswertungParameter + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iReihenfolge, m_iAuswertungnr, m_iAuswertungAuswertungparameternr, m_iAuswertungparameternr As SqlInt32 + Private m_sDBfeldname As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungAuswertungparameternr
  • + '''
  • iAuswertungnr. May be SqlInt32.Null
  • + '''
  • iAuswertungparameternr. May be SqlInt32.Null
  • + '''
  • sDBfeldname. May be SqlString.Null
  • + '''
  • iReihenfolge. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungAuswertungParameter_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDBfeldname", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDBfeldname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iReihenfolge", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iReihenfolge)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungAuswertungParameter_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungAuswertungParameter::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungAuswertungparameternr
  • + '''
  • iAuswertungnr. May be SqlInt32.Null
  • + '''
  • iAuswertungparameternr. May be SqlInt32.Null
  • + '''
  • sDBfeldname. May be SqlString.Null
  • + '''
  • iReihenfolge. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungAuswertungParameter_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sDBfeldname", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sDBfeldname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iReihenfolge", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iReihenfolge)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungAuswertungParameter_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungAuswertungParameter::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungAuswertungparameternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungAuswertungParameter_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungAuswertungParameter_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungAuswertungParameter::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungAuswertungparameternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungAuswertungparameternr
  • + '''
  • iAuswertungnr
  • + '''
  • iAuswertungparameternr
  • + '''
  • sDBfeldname
  • + '''
  • iReihenfolge
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungAuswertungParameter_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungAuswertungParameter") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungAuswertungParameter_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungAuswertungparameternr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungAuswertungparameternr"), Integer)) + If dtToReturn.Rows(0)("Auswertungnr") Is System.DBNull.Value Then + m_iAuswertungnr = SqlInt32.Null + Else + m_iAuswertungnr = New SqlInt32(CType(dtToReturn.Rows(0)("Auswertungnr"), Integer)) + End If + If dtToReturn.Rows(0)("Auswertungparameternr") Is System.DBNull.Value Then + m_iAuswertungparameternr = SqlInt32.Null + Else + m_iAuswertungparameternr = New SqlInt32(CType(dtToReturn.Rows(0)("Auswertungparameternr"), Integer)) + End If + If dtToReturn.Rows(0)("DBfeldname") Is System.DBNull.Value Then + m_sDBfeldname = SqlString.Null + Else + m_sDBfeldname = New SqlString(CType(dtToReturn.Rows(0)("DBfeldname"), String)) + End If + If dtToReturn.Rows(0)("Reihenfolge") Is System.DBNull.Value Then + m_iReihenfolge = SqlInt32.Null + Else + m_iReihenfolge = New SqlInt32(CType(dtToReturn.Rows(0)("Reihenfolge"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungAuswertungParameter::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungAuswertungParameter_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungAuswertungParameter") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungAuswertungParameter_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungAuswertungParameter::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungAuswertungparameternr]() As SqlInt32 + Get + Return m_iAuswertungAuswertungparameternr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungAuswertungparameternrTmp As SqlInt32 = Value + If iAuswertungAuswertungparameternrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungAuswertungparameternr", "iAuswertungAuswertungparameternr can't be NULL") + End If + m_iAuswertungAuswertungparameternr = Value + End Set + End Property + + + Public Property [iAuswertungnr]() As SqlInt32 + Get + Return m_iAuswertungnr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswertungnr = Value + End Set + End Property + + + Public Property [iAuswertungparameternr]() As SqlInt32 + Get + Return m_iAuswertungparameternr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswertungparameternr = Value + End Set + End Property + + + Public Property [sDBfeldname]() As SqlString + Get + Return m_sDBfeldname + End Get + Set(ByVal Value As SqlString) + m_sDBfeldname = Value + End Set + End Property + + + Public Property [iReihenfolge]() As SqlInt32 + Get + Return m_iReihenfolge + End Get + Set(ByVal Value As SqlInt32) + m_iReihenfolge = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsAuswertungGruppe.vb b/SW/20211125/_FRReporting/DB/clsAuswertungGruppe.vb new file mode 100644 index 0000000..1448127 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertungGruppe.vb @@ -0,0 +1,470 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'AuswertungGruppe' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'AuswertungGruppe'. + ''' + Public Class clsAuswertungGruppe + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_iParentid, m_iMutierer, m_iAuswertungGruppeNr As SqlInt32 + Private m_sBezeichnung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeNr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iParentid. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppe_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iParentid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentid)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppe_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppe::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeNr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iParentid. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppe_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iParentid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iParentid)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppe_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppe::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppe_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppe_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppe::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungGruppeNr
  • + '''
  • sBezeichnung
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iParentid
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppe_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungGruppe") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppe_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungGruppeNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungGruppeNr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Parentid") Is System.DBNull.Value Then + m_iParentid = SqlInt32.Null + Else + m_iParentid = New SqlInt32(CType(dtToReturn.Rows(0)("Parentid"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppe::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppe_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungGruppe") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppe_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppe::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungGruppeNr]() As SqlInt32 + Get + Return m_iAuswertungGruppeNr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungGruppeNrTmp As SqlInt32 = Value + If iAuswertungGruppeNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungGruppeNr", "iAuswertungGruppeNr can't be NULL") + End If + m_iAuswertungGruppeNr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iParentid]() As SqlInt32 + Get + Return m_iParentid + End Get + Set(ByVal Value As SqlInt32) + m_iParentid = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsAuswertungGruppeAuswertung.vb b/SW/20211125/_FRReporting/DB/clsAuswertungGruppeAuswertung.vb new file mode 100644 index 0000000..46a0871 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertungGruppeAuswertung.vb @@ -0,0 +1,469 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'AuswertungGruppeAuswertung' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'AuswertungGruppeAuswertung'. + ''' + Public Class clsAuswertungGruppeAuswertung + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daMutiert_am, m_daErstllt_am As SqlDateTime + Private m_iMutierer, m_iAuswertungGruppeNr, m_iAuswertungNr, m_iAuswertungGruppeAuswertungNr As SqlInt32 + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeAuswertungNr
  • + '''
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • + '''
  • iAuswertungNr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstllt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppeAuswertung_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstllt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstllt_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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppeAuswertung_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppeAuswertung::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeAuswertungNr
  • + '''
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • + '''
  • iAuswertungNr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstllt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppeAuswertung_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@daErstllt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_daErstllt_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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppeAuswertung_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppeAuswertung::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeAuswertungNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppeAuswertung_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungGruppeAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeAuswertungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppeAuswertung_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppeAuswertung::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungGruppeAuswertungNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungGruppeAuswertungNr
  • + '''
  • iAuswertungGruppeNr
  • + '''
  • iAuswertungNr
  • + '''
  • bAktiv
  • + '''
  • daErstllt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppeAuswertung_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungGruppeAuswertung") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungGruppeAuswertungNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungGruppeAuswertungNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppeAuswertung_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungGruppeAuswertungNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungGruppeAuswertungNr"), Integer)) + If dtToReturn.Rows(0)("AuswertungGruppeNr") Is System.DBNull.Value Then + m_iAuswertungGruppeNr = SqlInt32.Null + Else + m_iAuswertungGruppeNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungGruppeNr"), Integer)) + End If + If dtToReturn.Rows(0)("AuswertungNr") Is System.DBNull.Value Then + m_iAuswertungNr = SqlInt32.Null + Else + m_iAuswertungNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungNr"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstllt_am") Is System.DBNull.Value Then + m_daErstllt_am = SqlDateTime.Null + Else + m_daErstllt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstllt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppeAuswertung::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungGruppeAuswertung_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungGruppeAuswertung") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungGruppeAuswertung_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungGruppeAuswertung::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungGruppeAuswertungNr]() As SqlInt32 + Get + Return m_iAuswertungGruppeAuswertungNr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungGruppeAuswertungNrTmp As SqlInt32 = Value + If iAuswertungGruppeAuswertungNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungGruppeAuswertungNr", "iAuswertungGruppeAuswertungNr can't be NULL") + End If + m_iAuswertungGruppeAuswertungNr = Value + End Set + End Property + + + Public Property [iAuswertungGruppeNr]() As SqlInt32 + Get + Return m_iAuswertungGruppeNr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswertungGruppeNr = Value + End Set + End Property + + + Public Property [iAuswertungNr]() As SqlInt32 + Get + Return m_iAuswertungNr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswertungNr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstllt_am]() As SqlDateTime + Get + Return m_daErstllt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstllt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsAuswertungRptDatei.vb b/SW/20211125/_FRReporting/DB/clsAuswertungRptDatei.vb new file mode 100644 index 0000000..3c4e754 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertungRptDatei.vb @@ -0,0 +1,478 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'AuswertungRptDatei' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'AuswertungRptDatei'. + ''' + Public Class clsAuswertungRptDatei + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_daMutiert_am, m_daErstellt_am As SqlDateTime + Private m_blobReportfile As SqlBinary + Private m_iMutierer, m_iAuswertungDateiNr As SqlInt32 + Private m_sFilename, m_sReportname As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungDateiNr
  • + '''
  • sFilename. May be SqlString.Null
  • + '''
  • sReportname. May be SqlString.Null
  • + '''
  • blobReportfile. May be SqlBinary.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungRptDatei_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungDateiNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungDateiNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFilename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFilename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sReportname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sReportname)) + Dim iLength As Integer = 0 + If Not m_blobReportfile.IsNull Then + iLength = m_blobReportfile.Length + End If + scmCmdToExecute.Parameters.Add(New SqlParameter("@blobReportfile", SqlDbType.Image, iLength, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_blobReportfile)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungRptDatei_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungRptDatei::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungDateiNr
  • + '''
  • sFilename. May be SqlString.Null
  • + '''
  • sReportname. May be SqlString.Null
  • + '''
  • blobReportfile. May be SqlBinary.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungRptDatei_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungDateiNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungDateiNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFilename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFilename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sReportname", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sReportname)) + Dim iLength As Integer = 0 + If Not m_blobReportfile.IsNull Then + iLength = m_blobReportfile.Length + End If + scmCmdToExecute.Parameters.Add(New SqlParameter("@blobReportfile", SqlDbType.Image, iLength, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_blobReportfile)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungRptDatei_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungRptDatei::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungDateiNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungRptDatei_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungDateiNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungDateiNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungRptDatei_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungRptDatei::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungDateiNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungDateiNr
  • + '''
  • sFilename
  • + '''
  • sReportname
  • + '''
  • blobReportfile
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungRptDatei_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungRptDatei") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungDateiNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungDateiNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungRptDatei_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungDateiNr = New SqlInt32(CType(dtToReturn.Rows(0)("AuswertungDateiNr"), Integer)) + If dtToReturn.Rows(0)("Filename") Is System.DBNull.Value Then + m_sFilename = SqlString.Null + Else + m_sFilename = New SqlString(CType(dtToReturn.Rows(0)("Filename"), String)) + End If + If dtToReturn.Rows(0)("Reportname") Is System.DBNull.Value Then + m_sReportname = SqlString.Null + Else + m_sReportname = New SqlString(CType(dtToReturn.Rows(0)("Reportname"), String)) + End If + If dtToReturn.Rows(0)("Reportfile") Is System.DBNull.Value Then + m_blobReportfile = SqlBinary.Null + Else + m_blobReportfile = New SqlBinary(CType(dtToReturn.Rows(0)("Reportfile"), Byte())) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungRptDatei::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_AuswertungRptDatei_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("AuswertungRptDatei") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_AuswertungRptDatei_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungRptDatei::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungDateiNr]() As SqlInt32 + Get + Return m_iAuswertungDateiNr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungDateiNrTmp As SqlInt32 = Value + If iAuswertungDateiNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungDateiNr", "iAuswertungDateiNr can't be NULL") + End If + m_iAuswertungDateiNr = Value + End Set + End Property + + + Public Property [sFilename]() As SqlString + Get + Return m_sFilename + End Get + Set(ByVal Value As SqlString) + m_sFilename = Value + End Set + End Property + + + Public Property [sReportname]() As SqlString + Get + Return m_sReportname + End Get + Set(ByVal Value As SqlString) + m_sReportname = Value + End Set + End Property + + + Public Property [blobReportfile]() As SqlBinary + Get + Return m_blobReportfile + End Get + Set(ByVal Value As SqlBinary) + m_blobReportfile = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsAuswertungsparameter.vb b/SW/20211125/_FRReporting/DB/clsAuswertungsparameter.vb new file mode 100644 index 0000000..28dbf84 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsAuswertungsparameter.vb @@ -0,0 +1,550 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'Auswertungsparameter' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'Auswertungsparameter'. + ''' + Public Class clsAuswertungsparameter + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iAuswertungparameternr As SqlInt32 + Private m_sBezeichnung, m_sParamName, m_sOperator, m_sWert, m_sFeldbezug, m_sParamType As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungparameternr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sOperator. May be SqlString.Null
  • + '''
  • sFeldbezug. May be SqlString.Null
  • + '''
  • sWert. May be SqlString.Null
  • + '''
  • sParamName. May be SqlString.Null
  • + '''
  • sParamType. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertungsparameter_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sOperator", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sOperator)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFeldbezug", SqlDbType.VarChar, 200, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFeldbezug)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sWert", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sWert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParamName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParamName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParamType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParamType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertungsparameter_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungsparameter::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungparameternr
  • + '''
  • sBezeichnung. May be SqlString.Null
  • + '''
  • sOperator. May be SqlString.Null
  • + '''
  • sFeldbezug. May be SqlString.Null
  • + '''
  • sWert. May be SqlString.Null
  • + '''
  • sParamName. May be SqlString.Null
  • + '''
  • sParamType. May be SqlString.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertungsparameter_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBezeichnung", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sOperator", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sOperator)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sFeldbezug", SqlDbType.VarChar, 200, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sFeldbezug)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sWert", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sWert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParamName", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParamName)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParamType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParamType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertungsparameter_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungsparameter::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungparameternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertungsparameter_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertungsparameter_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungsparameter::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iAuswertungparameternr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iAuswertungparameternr
  • + '''
  • sBezeichnung
  • + '''
  • sOperator
  • + '''
  • sFeldbezug
  • + '''
  • sWert
  • + '''
  • sParamName
  • + '''
  • sParamType
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertungsparameter_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Auswertungsparameter") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iAuswertungparameternr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungparameternr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertungsparameter_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iAuswertungparameternr = New SqlInt32(CType(dtToReturn.Rows(0)("Auswertungparameternr"), Integer)) + If dtToReturn.Rows(0)("Bezeichnung") Is System.DBNull.Value Then + m_sBezeichnung = SqlString.Null + Else + m_sBezeichnung = New SqlString(CType(dtToReturn.Rows(0)("Bezeichnung"), String)) + End If + If dtToReturn.Rows(0)("Operator") Is System.DBNull.Value Then + m_sOperator = SqlString.Null + Else + m_sOperator = New SqlString(CType(dtToReturn.Rows(0)("Operator"), String)) + End If + If dtToReturn.Rows(0)("Feldbezug") Is System.DBNull.Value Then + m_sFeldbezug = SqlString.Null + Else + m_sFeldbezug = New SqlString(CType(dtToReturn.Rows(0)("Feldbezug"), String)) + End If + If dtToReturn.Rows(0)("Wert") Is System.DBNull.Value Then + m_sWert = SqlString.Null + Else + m_sWert = New SqlString(CType(dtToReturn.Rows(0)("Wert"), String)) + End If + If dtToReturn.Rows(0)("ParamName") Is System.DBNull.Value Then + m_sParamName = SqlString.Null + Else + m_sParamName = New SqlString(CType(dtToReturn.Rows(0)("ParamName"), String)) + End If + If dtToReturn.Rows(0)("ParamType") Is System.DBNull.Value Then + m_sParamType = SqlString.Null + Else + m_sParamType = New SqlString(CType(dtToReturn.Rows(0)("ParamType"), String)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungsparameter::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Auswertungsparameter_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Auswertungsparameter") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Auswertungsparameter_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsAuswertungsparameter::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iAuswertungparameternr]() As SqlInt32 + Get + Return m_iAuswertungparameternr + End Get + Set(ByVal Value As SqlInt32) + Dim iAuswertungparameternrTmp As SqlInt32 = Value + If iAuswertungparameternrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iAuswertungparameternr", "iAuswertungparameternr can't be NULL") + End If + m_iAuswertungparameternr = Value + End Set + End Property + + + Public Property [sBezeichnung]() As SqlString + Get + Return m_sBezeichnung + End Get + Set(ByVal Value As SqlString) + m_sBezeichnung = Value + End Set + End Property + + + Public Property [sOperator]() As SqlString + Get + Return m_sOperator + End Get + Set(ByVal Value As SqlString) + m_sOperator = Value + End Set + End Property + + + Public Property [sFeldbezug]() As SqlString + Get + Return m_sFeldbezug + End Get + Set(ByVal Value As SqlString) + m_sFeldbezug = Value + End Set + End Property + + + Public Property [sWert]() As SqlString + Get + Return m_sWert + End Get + Set(ByVal Value As SqlString) + m_sWert = Value + End Set + End Property + + + Public Property [sParamName]() As SqlString + Get + Return m_sParamName + End Get + Set(ByVal Value As SqlString) + m_sParamName = Value + End Set + End Property + + + Public Property [sParamType]() As SqlString + Get + Return m_sParamType + End Get + Set(ByVal Value As SqlString) + m_sParamType = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsConnectionProvider.vb b/SW/20211125/_FRReporting/DB/clsConnectionProvider.vb new file mode 100644 index 0000000..42e9750 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsConnectionProvider.vb @@ -0,0 +1,289 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Connection Provider class for Database connection sharing +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // This class implements IDisposable. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Configuration +Imports System.Data +Imports System.Data.SqlClient +Imports System.Collections + +Namespace DB + ' /// + ' /// Purpose: provides a SqlConnection object which can be shared among data-access tier objects + ' /// to provide a way to do ADO.NET transaction coding without the hassling with SqlConnection objects + ' /// on a high level. + ' /// + Public Class clsConnectionProvider + Implements IDisposable + +#Region " Class Member Declarations " + + Private m_scoDBConnection As SqlConnection + Private m_bIsTransactionPending, m_bIsDisposed As Boolean + Private m_stCurrentTransaction As SqlTransaction + Private m_alSavePoints As ArrayList + +#End Region + + + Public Sub New() + ' // Init the class + InitClass() + End Sub + + + ' /// + ' /// Purpose: Implements the IDispose' method Dispose. + ' /// + Overloads Public Sub Dispose() Implements IDisposable.Dispose + Dispose(True) + GC.SuppressFinalize(Me) + End Sub + + + ' /// + ' /// Purpose: Implements the Dispose functionality. + ' /// + Overridable Overloads Protected Sub Dispose(ByVal bIsDisposing As Boolean) + ' // Check to see if Dispose has already been called. + If Not m_bIsDisposed Then + If bIsDisposing Then + ' // Dispose managed resources. + If Not (m_stCurrentTransaction Is Nothing) Then + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + End If + If Not (m_scoDBConnection Is Nothing) Then + ' // closing the connection will abort (rollback) any pending transactions + m_scoDBConnection.Close() + m_scoDBConnection.Dispose() + m_scoDBConnection = Nothing + End If + End If + End If + m_bIsDisposed = True + End Sub + + + ' /// + ' /// Purpose: Initializes class members. + ' /// + Private Sub InitClass() + ' // Create all the objects and initialize other members. + m_scoDBConnection = new SqlConnection() + m_bIsDisposed = False + m_stCurrentTransaction = Nothing + m_bIsTransactionPending = False + m_alSavePoints = new ArrayList() + End Sub + + + ' /// + ' /// Purpose: Opens the connection object. + ' /// + ' /// True, if succeeded, otherwise an Exception exception is thrown. + Public Function OpenConnection() As Boolean + Try + If (m_scoDBConnection.State And ConnectionState.Open) > 0 Then + ' // It's already open. + Throw New Exception("OpenConnection::Connection is already open.") + End If + m_scoDBConnection.Open() + m_bIsTransactionPending = False + m_alSavePoints.Clear() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Starts a new ADO.NET transaction using the open connection object of this class. + ' /// + ' /// Name of the transaction to start + ' /// True, if transaction is started correctly, otherwise an Exception exception is thrown + Public Function BeginTransaction(sTransactionName As String) As Boolean + Try + If m_bIsTransactionPending Then + ' // no nested transactions allowed. + Throw New Exception("BeginTransaction::Already transaction pending. Nesting not allowed") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("BeginTransaction::Connection is not open.") + End If + ' // begin the transaction and store the transaction object. + m_stCurrentTransaction = m_scoDBConnection.BeginTransaction(IsolationLevel.ReadCommitted, sTransactionName) + m_bIsTransactionPending = True + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Commits a pending transaction on the open connection object of this class. + ' /// + ' /// True, if commit was succesful, or an Exception exception is thrown + Public Function CommitTransaction() As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("CommitTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("CommitTransaction::Connection is not open.") + End if + ' // commit the transaction + m_stCurrentTransaction.Commit() + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Rolls back a pending transaction on the open connection object of this class, + ' /// or rolls back to the savepoint with the given name. Savepoints are created with SaveTransaction(). + ' /// + ' /// Name of transaction to roll back. Can be name of savepoint + ' /// True, if rollback was succesful, or an Exception exception is thrown + Public Function RollbackTransaction(sTransactionToRollback As String) As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("RollbackTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("RollbackTransaction::Connection is not open.") + End If + ' // rollback the transaction + m_stCurrentTransaction.Rollback(sTransactionToRollback) + ' // if this wasn't a savepoint, we've rolled back the complete transaction, so we + ' // can clean it up. + If Not m_alSavePoints.Contains(sTransactionToRollback) Then + ' // it's not a savepoint + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + End If + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Saves a pending transaction on the open connection object of this class to a 'savepoint' + ' /// with the given name. + ' /// When a rollback is issued, the caller can rollback to this savepoint or roll back the complete transaction. + ' /// + ' /// Name of the savepoint to store the current transaction under. + ' /// True, if save was succesful, or an Exception exception is thrown + Public Function SaveTransaction(sSavePointName As String) As Boolean + Try + If Not m_bIsTransactionPending Then + ' // no transaction pending + Throw New Exception("SaveTransaction::No transaction pending.") + End If + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // no open connection + Throw New Exception("SaveTransaction::Connection is not open.") + End If + ' // save the transaction + m_stCurrentTransaction.Save(sSavePointName) + ' // Store the savepoint in the list. + m_alSavePoints.Add(sSavePointName) + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + + ' /// + ' /// Purpose: Closes the open connection. Depending on bCommitPendingTransactions, a pending + ' /// transaction is commited, or aborted. + ' /// + ' /// Flag for what to do when a transaction is still pending. True + ' /// will commit the current transaction, False will abort (rollback) the complete current transaction. + ' /// True, if close was succesful, False if connection was already closed, or an Exception exception is thrown when + ' /// an error occurs + Public Function CloseConnection(bCommitPendingTransaction As Boolean) As Boolean + Try + If (m_scoDBConnection.State And ConnectionState.Open) = 0 Then + ' // No open connection + Return False + End If + If m_bIsTransactionPending Then + If bCommitPendingTransaction Then + ' // Commit the pending transaction + m_stCurrentTransaction.Commit() + Else + ' // Rollback the pending transaction + m_stCurrentTransaction.Rollback() + End If + m_bIsTransactionPending = False + m_stCurrentTransaction.Dispose() + m_stCurrentTransaction = Nothing + m_alSavePoints.Clear() + End If + ' // close the connection + m_scoDBConnection.Close() + Return True + Catch ex As Exception + ' // bubble exception + Throw ex + End Try + End Function + + +#Region " Class Property Declarations " + + Public ReadOnly Property stCurrentTransaction() As SqlTransaction + Get + Return m_stCurrentTransaction + End Get + End Property + + + Public ReadOnly Property bIsTransactionPending() As Boolean + Get + Return m_bIsTransactionPending + End Get + End Property + + + Public ReadOnly Property scoDBConnection() As SqlConnection + Get + Return m_scoDBConnection + End Get + End Property + Public WriteOnly Property sConnectionString() As String + Set (ByVal Value As String) + m_scoDBConnection.ConnectionString = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsDBInteractionBase.vb b/SW/20211125/_FRReporting/DB/clsDBInteractionBase.vb new file mode 100644 index 0000000..f5a00c6 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsDBInteractionBase.vb @@ -0,0 +1,208 @@ +' ////////////////////////////////////////////////////////////////////////////////////////// +' // Description: Base class for Database Interaction. +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:15:46 +' // Because this class implements IDisposable, derived classes shouldn't do so. +' ////////////////////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Configuration +Imports System.Data +Imports System.Data.SqlClient +Imports System.Data.SqlTypes + +Namespace DB + ' /// + ' /// Purpose: Error Enums used by this LLBL library. + ' /// + Public Enum LLBLError + AllOk + ' // Add more here (check the comma's!) + End Enum + + + ' /// + ' /// Purpose: General interface of the API generated. Contains only common methods of all classes. + ' /// + Public Interface ICommonDBAccess + Function Insert() As Boolean + Function Update() As Boolean + Function Delete() As Boolean + Function SelectOne() As DataTable + Function SelectAll() As DataTable + End Interface + + + ' /// + ' /// Purpose: Abstract base class for Database Interaction classes. + ' /// + Public MustInherit Class clsDBInteractionBase + Implements IDisposable + Implements ICommonDBAccess + +#Region " Class Member Declarations " + + Protected m_scoMainConnection As SqlConnection + Protected m_iRowsAffected As Integer + Protected m_iErrorCode As SqlInt32 + Protected m_bMainConnectionIsCreatedLocal As Boolean + Protected m_cpMainConnectionProvider As clsConnectionProvider + Private m_sConnectionString As String + Private m_bIsDisposed As Boolean + +#End Region + + + ' /// + ' /// Purpose: Class constructor. + ' /// + Public Sub New() + ' // Initialize the class' members. + InitClass() + End Sub + + + ' /// + ' /// Purpose: Initializes class members. + ' /// + Private Sub InitClass() + ' // create all the objects and initialize other members. + m_scoMainConnection = new SqlConnection() + m_bMainConnectionIsCreatedLocal = True + m_cpMainConnectionProvider = Nothing + m_iErrorCode = New SqlInt32(LLBLError.AllOk) + m_bIsDisposed = False + End Sub + + + ' /// + ' /// Purpose: Implements the IDispose' method Dispose. + ' /// + Overloads Public Sub Dispose() Implements IDisposable.Dispose + Dispose(True) + GC.SuppressFinalize(Me) + End Sub + + + ' /// + ' /// Purpose: Implements the Dispose functionality. + ' /// + Overridable Overloads Protected Sub Dispose(ByVal bIsDisposing As Boolean) + ' // Check to see if Dispose has already been called. + If Not m_bIsDisposed Then + If bIsDisposing Then + ' // Dispose managed resources. + If m_bMainConnectionIsCreatedLocal Then + ' // Object is created in this class, so destroy it here. + m_scoMainConnection.Close() + m_scoMainConnection.Dispose() + m_bMainConnectionIsCreatedLocal = True + End If + m_cpMainConnectionProvider = Nothing + m_scoMainConnection = Nothing + End If + End If + m_bIsDisposed = True + End Sub + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Insert() method. + ' /// + Public Overridable Function Insert() As Boolean Implements ICommonDBAccess.Insert + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Delete() method. + ' /// + Public Overridable Function Delete() As Boolean Implements ICommonDBAccess.Delete + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.Update() method. + ' /// + Public Overridable Function Update() As Boolean Implements ICommonDBAccess.Update + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.SelectOne() method. + ' /// + Public Overridable Function SelectOne() As DataTable Implements ICommonDBAccess.SelectOne + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + + ' /// + ' /// Purpose: Implements the ICommonDBAccess.SelectAll() method. + ' /// + Public Overridable Function SelectAll() As DataTable Implements ICommonDBAccess.SelectAll + ' // No implementation, throw exception + Throw New NotImplementedException() + End Function + + +#Region " Class Property Declarations " + + Public WriteOnly Property cpMainConnectionProvider() As clsConnectionProvider + Set(ByVal Value As clsConnectionProvider) + If Value Is Nothing Then + ' // Invalid value + Throw New ArgumentNullException("cpMainConnectionProvider", "Nothing passed as value to this property which is not allowed.") + End If + + ' // A connection provider object is passed to this class. + ' // Retrieve the SqlConnection object, if present and create a + ' // reference to it. If there is already a MainConnection object + ' // referenced by the membervar, destroy that one or simply + ' // remove the reference, based on the flag. + If Not (m_scoMainConnection Is Nothing) Then + ' // First get rid of current connection object. Caller is responsible + If m_bMainConnectionIsCreatedLocal Then + ' // Is local created object, close it and dispose it. + m_scoMainConnection.Close() + m_scoMainConnection.Dispose() + End If + ' // Remove reference. + m_scoMainConnection = Nothing + End If + m_cpMainConnectionProvider = CType(Value, clsConnectionProvider) + m_scoMainConnection = m_cpMainConnectionProvider.scoDBConnection + m_bMainConnectionIsCreatedLocal = False + End Set + End Property + + + Public ReadOnly Property iErrorCode() As SqlInt32 + Get + Return m_iErrorCode + End Get + End Property + + + Public Property sConnectionString() As String + Get + Return m_sConnectionString + End Get + Set (ByVal Value As String) + m_sConnectionString = Value + m_scoMainConnection.ConnectionString = m_sConnectionString + End Set + End Property + Public Readonly Property iRowsAffected() As Integer + Get + Return m_iRowsAffected + End Get + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsKey_tabelle.vb b/SW/20211125/_FRReporting/DB/clsKey_tabelle.vb new file mode 100644 index 0000000..4105a0a --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsKey_tabelle.vb @@ -0,0 +1,491 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'key_tabelle' +' // Generated by LLBLGen v1.21.2003.712 Final on: Freitag, 4. Januar 2013, 17:02:51 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'key_tabelle'. + ''' + Public Class clsKey_tabelle + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iMutierer, m_iKeynr, m_iKey_wert, m_iMandantnr As SqlInt32 + Private m_sBeschreibung As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iKeynr
  • + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iKeynr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@ikeynr").Value, Integer)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sbeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, False, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikey_wert", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKey_wert)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@imandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iKeynr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iKeynr
  • + '''
  • sBeschreibung
  • + '''
  • iKey_wert
  • + '''
  • iMandantnr
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("key_tabelle") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@ikeynr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iKeynr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iKeynr = New SqlInt32(CType(dtToReturn.Rows(0)("keynr"), Integer)) + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("beschreibung"), String)) + m_iKey_wert = New SqlInt32(CType(dtToReturn.Rows(0)("key_wert"), Integer)) + If dtToReturn.Rows(0)("mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("mandantnr"), Integer)) + End If + If dtToReturn.Rows(0)("aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("mutierer"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_key_tabelle_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("key_tabelle") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_key_tabelle_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iKeynr]() As SqlInt32 + Get + Return m_iKeynr + End Get + Set(ByVal Value As SqlInt32) + Dim iKeynrTmp As SqlInt32 = Value + If iKeynrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iKeynr", "iKeynr can't be NULL") + End If + m_iKeynr = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + Dim sBeschreibungTmp As SqlString = Value + If sBeschreibungTmp.IsNull Then + Throw New ArgumentOutOfRangeException("sBeschreibung", "sBeschreibung can't be NULL") + End If + m_sBeschreibung = Value + End Set + End Property + + + Public Property [iKey_wert]() As SqlInt32 + Get + Return m_iKey_wert + End Get + Set(ByVal Value As SqlInt32) + Dim iKey_wertTmp As SqlInt32 = Value + If iKey_wertTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iKey_wert", "iKey_wert can't be NULL") + End If + m_iKey_wert = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsMitarbeiter_Auswertungsparameter.vb b/SW/20211125/_FRReporting/DB/clsMitarbeiter_Auswertungsparameter.vb new file mode 100644 index 0000000..c0cce6c --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsMitarbeiter_Auswertungsparameter.vb @@ -0,0 +1,510 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'Mitarbeiter_Auswertungsparameter' +' // Generated by LLBLGen v1.21.2003.712 Final on: Samstag, 2. März 2013, 14:18:33 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'Mitarbeiter_Auswertungsparameter'. + ''' + Public Class clsMitarbeiter_Auswertungsparameter + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bParamPrint As SqlBoolean + Private m_iAuswertungnr, m_iMitarbeiter_AuswertungsparameterNr, m_iMitarbeiternr As SqlInt32 + Private m_sTitelzeile2, m_sSQLWhere, m_sBeschreibung, m_sParameterdaten, m_sTitelzeile1 As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiternr. May be SqlInt32.Null
  • + '''
  • iAuswertungnr. May be SqlInt32.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sParameterdaten. May be SqlString.Null
  • + '''
  • sTitelzeile1. May be SqlString.Null
  • + '''
  • sTitelzeile2. May be SqlString.Null
  • + '''
  • bParamPrint. May be SqlBoolean.Null
  • + '''
  • sSQLWhere. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iMitarbeiter_AuswertungsparameterNr
  • + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Mitarbeiter_Auswertungsparameter_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParameterdaten", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParameterdaten)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sTitelzeile1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTitelzeile1)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sTitelzeile2", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTitelzeile2)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bParamPrint", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bParamPrint)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQLWhere", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQLWhere)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iMitarbeiter_AuswertungsparameterNr", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_AuswertungsparameterNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iMitarbeiter_AuswertungsparameterNr = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iMitarbeiter_AuswertungsparameterNr").Value, SqlInt32)) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Mitarbeiter_Auswertungsparameter_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_Auswertungsparameter::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_AuswertungsparameterNr
  • + '''
  • iMitarbeiternr. May be SqlInt32.Null
  • + '''
  • iAuswertungnr. May be SqlInt32.Null
  • + '''
  • sBeschreibung. May be SqlString.Null
  • + '''
  • sParameterdaten. May be SqlString.Null
  • + '''
  • sTitelzeile1. May be SqlString.Null
  • + '''
  • sTitelzeile2. May be SqlString.Null
  • + '''
  • bParamPrint. May be SqlBoolean.Null
  • + '''
  • sSQLWhere. May be SqlString.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Mitarbeiter_Auswertungsparameter_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMitarbeiter_AuswertungsparameterNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_AuswertungsparameterNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iAuswertungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iAuswertungnr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sBeschreibung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sBeschreibung)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sParameterdaten", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sParameterdaten)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sTitelzeile1", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTitelzeile1)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sTitelzeile2", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sTitelzeile2)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bParamPrint", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bParamPrint)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSQLWhere", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSQLWhere)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Mitarbeiter_Auswertungsparameter_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_Auswertungsparameter::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_AuswertungsparameterNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Mitarbeiter_Auswertungsparameter_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iMitarbeiter_AuswertungsparameterNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_AuswertungsparameterNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Mitarbeiter_Auswertungsparameter_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_Auswertungsparameter::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iMitarbeiter_AuswertungsparameterNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iMitarbeiter_AuswertungsparameterNr
  • + '''
  • iMitarbeiternr
  • + '''
  • iAuswertungnr
  • + '''
  • sBeschreibung
  • + '''
  • sParameterdaten
  • + '''
  • sTitelzeile1
  • + '''
  • sTitelzeile2
  • + '''
  • bParamPrint
  • + '''
  • sSQLWhere
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Mitarbeiter_Auswertungsparameter_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Mitarbeiter_Auswertungsparameter") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iMitarbeiter_AuswertungsparameterNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iMitarbeiter_AuswertungsparameterNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Mitarbeiter_Auswertungsparameter_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iMitarbeiter_AuswertungsparameterNr = New SqlInt32(CType(dtToReturn.Rows(0)("Mitarbeiter_AuswertungsparameterNr"), Integer)) + If dtToReturn.Rows(0)("Mitarbeiternr") Is System.DBNull.Value Then + m_iMitarbeiternr = SqlInt32.Null + Else + m_iMitarbeiternr = New SqlInt32(CType(dtToReturn.Rows(0)("Mitarbeiternr"), Integer)) + End If + If dtToReturn.Rows(0)("Auswertungnr") Is System.DBNull.Value Then + m_iAuswertungnr = SqlInt32.Null + Else + m_iAuswertungnr = New SqlInt32(CType(dtToReturn.Rows(0)("Auswertungnr"), Integer)) + End If + If dtToReturn.Rows(0)("Beschreibung") Is System.DBNull.Value Then + m_sBeschreibung = SqlString.Null + Else + m_sBeschreibung = New SqlString(CType(dtToReturn.Rows(0)("Beschreibung"), String)) + End If + If dtToReturn.Rows(0)("Parameterdaten") Is System.DBNull.Value Then + m_sParameterdaten = SqlString.Null + Else + m_sParameterdaten = New SqlString(CType(dtToReturn.Rows(0)("Parameterdaten"), String)) + End If + If dtToReturn.Rows(0)("Titelzeile1") Is System.DBNull.Value Then + m_sTitelzeile1 = SqlString.Null + Else + m_sTitelzeile1 = New SqlString(CType(dtToReturn.Rows(0)("Titelzeile1"), String)) + End If + If dtToReturn.Rows(0)("Titelzeile2") Is System.DBNull.Value Then + m_sTitelzeile2 = SqlString.Null + Else + m_sTitelzeile2 = New SqlString(CType(dtToReturn.Rows(0)("Titelzeile2"), String)) + End If + If dtToReturn.Rows(0)("ParamPrint") Is System.DBNull.Value Then + m_bParamPrint = SqlBoolean.Null + Else + m_bParamPrint = New SqlBoolean(CType(dtToReturn.Rows(0)("ParamPrint"), Boolean)) + End If + If dtToReturn.Rows(0)("SQLWhere") Is System.DBNull.Value Then + m_sSQLWhere = SqlString.Null + Else + m_sSQLWhere = New SqlString(CType(dtToReturn.Rows(0)("SQLWhere"), String)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_Auswertungsparameter::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_Mitarbeiter_Auswertungsparameter_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("Mitarbeiter_Auswertungsparameter") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_Mitarbeiter_Auswertungsparameter_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsMitarbeiter_Auswertungsparameter::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iMitarbeiter_AuswertungsparameterNr]() As SqlInt32 + Get + Return m_iMitarbeiter_AuswertungsparameterNr + End Get + Set(ByVal Value As SqlInt32) + Dim iMitarbeiter_AuswertungsparameterNrTmp As SqlInt32 = Value + If iMitarbeiter_AuswertungsparameterNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iMitarbeiter_AuswertungsparameterNr", "iMitarbeiter_AuswertungsparameterNr can't be NULL") + End If + m_iMitarbeiter_AuswertungsparameterNr = Value + End Set + End Property + + + Public Property [iMitarbeiternr]() As SqlInt32 + Get + Return m_iMitarbeiternr + End Get + Set(ByVal Value As SqlInt32) + m_iMitarbeiternr = Value + End Set + End Property + + + Public Property [iAuswertungnr]() As SqlInt32 + Get + Return m_iAuswertungnr + End Get + Set(ByVal Value As SqlInt32) + m_iAuswertungnr = Value + End Set + End Property + + + Public Property [sBeschreibung]() As SqlString + Get + Return m_sBeschreibung + End Get + Set(ByVal Value As SqlString) + m_sBeschreibung = Value + End Set + End Property + + + Public Property [sParameterdaten]() As SqlString + Get + Return m_sParameterdaten + End Get + Set(ByVal Value As SqlString) + m_sParameterdaten = Value + End Set + End Property + + + Public Property [sTitelzeile1]() As SqlString + Get + Return m_sTitelzeile1 + End Get + Set(ByVal Value As SqlString) + m_sTitelzeile1 = Value + End Set + End Property + + + Public Property [sTitelzeile2]() As SqlString + Get + Return m_sTitelzeile2 + End Get + Set(ByVal Value As SqlString) + m_sTitelzeile2 = Value + End Set + End Property + + + Public Property [bParamPrint]() As SqlBoolean + Get + Return m_bParamPrint + End Get + Set(ByVal Value As SqlBoolean) + m_bParamPrint = Value + End Set + End Property + + + Public Property [sSQLWhere]() As SqlString + Get + Return m_sSQLWhere + End Get + Set(ByVal Value As SqlString) + m_sSQLWhere = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/DB/clsSecurityObject.vb b/SW/20211125/_FRReporting/DB/clsSecurityObject.vb new file mode 100644 index 0000000..5d07551 --- /dev/null +++ b/SW/20211125/_FRReporting/DB/clsSecurityObject.vb @@ -0,0 +1,570 @@ +' /////////////////////////////////////////////////////////////////////////// +' // Description: Data Access class for the table 'SecurityObject' +' // Generated by LLBLGen v1.21.2003.712 Final on: Dienstag, 1. Januar 2013, 19:36:38 +' // Because the Base Class already implements IDispose, this class doesn't. +' /////////////////////////////////////////////////////////////////////////// +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient + +Namespace DB + ''' + ''' Purpose: Data Access class for the table 'SecurityObject'. + ''' + Public Class clsSecurityObject + Inherits clsDBInteractionBase + +#Region " Class Member Declarations " + + Private m_bAktiv As SqlBoolean + Private m_daErstellt_am, m_daMutiert_am As SqlDateTime + Private m_iLevel, m_iMutierer, m_iMandantnr, m_iSecurityObjectNr As SqlInt32 + Private m_sSecurityForm, m_sSecurityObjectDescriotion, m_sSecurityObjectItem, m_sSecurityObject, m_sSecurityObjectType As SqlString + +#End Region + + + ''' + ''' Purpose: Class constructor. + ''' + Public Sub New() + ' // Nothing for now. + End Sub + + + ''' + ''' Purpose: Insert method. This method will insert one new row into the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm. May be SqlString.Null
  • + '''
  • sSecurityObjectType. May be SqlString.Null
  • + '''
  • sSecurityObject. May be SqlString.Null
  • + '''
  • sSecurityObjectItem. May be SqlString.Null
  • + '''
  • sSecurityObjectDescriotion. May be SqlString.Null
  • + '''
  • iLevel. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Insert() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Insert]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityForm", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityForm)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObject", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectItem", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectDescriotion", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectDescriotion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iLevel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iLevel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iMandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Insert' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Insert::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Update method. This method will Update one existing row in the database. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm. May be SqlString.Null
  • + '''
  • sSecurityObjectType. May be SqlString.Null
  • + '''
  • sSecurityObject. May be SqlString.Null
  • + '''
  • sSecurityObjectItem. May be SqlString.Null
  • + '''
  • sSecurityObjectDescriotion. May be SqlString.Null
  • + '''
  • iLevel. May be SqlInt32.Null
  • + '''
  • bAktiv. May be SqlBoolean.Null
  • + '''
  • daErstellt_am. May be SqlDateTime.Null
  • + '''
  • daMutiert_am. May be SqlDateTime.Null
  • + '''
  • iMutierer. May be SqlInt32.Null
  • + '''
  • iMandantnr. May be SqlInt32.Null
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Update() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Update]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityForm", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityForm)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectType", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectType)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObject", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectItem", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@sSecurityObjectDescriotion", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_sSecurityObjectDescriotion)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iLevel", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iLevel)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@bAktiv", SqlDbType.Bit, 1, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, m_bAktiv)) + 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("@iMandantnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, m_iMandantnr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Update' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Update::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + ''' + ''' True if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function Delete() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_Delete]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery() + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_Delete' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return True + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::Delete::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + + ''' + ''' Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties needed for this method: + '''
    + '''
  • iSecurityObjectNr
  • + '''
+ ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
  • iSecurityObjectNr
  • + '''
  • sSecurityForm
  • + '''
  • sSecurityObjectType
  • + '''
  • sSecurityObject
  • + '''
  • sSecurityObjectItem
  • + '''
  • sSecurityObjectDescriotion
  • + '''
  • iLevel
  • + '''
  • bAktiv
  • + '''
  • daErstellt_am
  • + '''
  • daMutiert_am
  • + '''
  • iMutierer
  • + '''
  • iMandantnr
  • + '''
+ ''' Will fill all properties corresponding with a field in the table with the value of the row selected. + '''
+ Overrides Public Function SelectOne() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_SelectOne]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("SecurityObject") + Dim sdaAdapter As SqlDataAdapter = new SqlDataAdapter(scmCmdToExecute) + + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + + Try + scmCmdToExecute.Parameters.Add(new SqlParameter("@iSecurityObjectNr", SqlDbType.Int, 4, ParameterDirection.Input, False, 10, 0, "", DataRowVersion.Proposed, m_iSecurityObjectNr)) + scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_SelectOne' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + If dtToReturn.Rows.Count > 0 Then + m_iSecurityObjectNr = New SqlInt32(CType(dtToReturn.Rows(0)("SecurityObjectNr"), Integer)) + If dtToReturn.Rows(0)("SecurityForm") Is System.DBNull.Value Then + m_sSecurityForm = SqlString.Null + Else + m_sSecurityForm = New SqlString(CType(dtToReturn.Rows(0)("SecurityForm"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectType") Is System.DBNull.Value Then + m_sSecurityObjectType = SqlString.Null + Else + m_sSecurityObjectType = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectType"), String)) + End If + If dtToReturn.Rows(0)("SecurityObject") Is System.DBNull.Value Then + m_sSecurityObject = SqlString.Null + Else + m_sSecurityObject = New SqlString(CType(dtToReturn.Rows(0)("SecurityObject"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectItem") Is System.DBNull.Value Then + m_sSecurityObjectItem = SqlString.Null + Else + m_sSecurityObjectItem = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectItem"), String)) + End If + If dtToReturn.Rows(0)("SecurityObjectDescriotion") Is System.DBNull.Value Then + m_sSecurityObjectDescriotion = SqlString.Null + Else + m_sSecurityObjectDescriotion = New SqlString(CType(dtToReturn.Rows(0)("SecurityObjectDescriotion"), String)) + End If + If dtToReturn.Rows(0)("Level") Is System.DBNull.Value Then + m_iLevel = SqlInt32.Null + Else + m_iLevel = New SqlInt32(CType(dtToReturn.Rows(0)("Level"), Integer)) + End If + If dtToReturn.Rows(0)("Aktiv") Is System.DBNull.Value Then + m_bAktiv = SqlBoolean.Null + Else + m_bAktiv = New SqlBoolean(CType(dtToReturn.Rows(0)("Aktiv"), Boolean)) + End If + If dtToReturn.Rows(0)("Erstellt_am") Is System.DBNull.Value Then + m_daErstellt_am = SqlDateTime.Null + Else + m_daErstellt_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Erstellt_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutiert_am") Is System.DBNull.Value Then + m_daMutiert_am = SqlDateTime.Null + Else + m_daMutiert_am = New SqlDateTime(CType(dtToReturn.Rows(0)("Mutiert_am"), Date)) + End If + If dtToReturn.Rows(0)("Mutierer") Is System.DBNull.Value Then + m_iMutierer = SqlInt32.Null + Else + m_iMutierer = New SqlInt32(CType(dtToReturn.Rows(0)("Mutierer"), Integer)) + End If + If dtToReturn.Rows(0)("Mandantnr") Is System.DBNull.Value Then + m_iMandantnr = SqlInt32.Null + Else + m_iMandantnr = New SqlInt32(CType(dtToReturn.Rows(0)("Mandantnr"), Integer)) + End If + End If + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::SelectOne::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + + ''' + ''' Purpose: SelectAll method. This method will Select all rows from the table. + ''' + ''' DataTable object if succeeded, otherwise an Exception is thrown. + ''' + ''' Properties set after a succesful call of this method: + '''
    + '''
  • iErrorCode
  • + '''
+ '''
+ Overrides Public Function SelectAll() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[pr_SecurityObject_SelectAll]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + Dim dtToReturn As DataTable = new DataTable("SecurityObject") + Dim sdaAdapter As SqlDataAdapter = 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 Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + sdaAdapter.Fill(dtToReturn) + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'pr_SecurityObject_SelectAll' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsSecurityObject::SelectAll::Error occured.", ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + +#Region " Class Property Declarations " + + Public Property [iSecurityObjectNr]() As SqlInt32 + Get + Return m_iSecurityObjectNr + End Get + Set(ByVal Value As SqlInt32) + Dim iSecurityObjectNrTmp As SqlInt32 = Value + If iSecurityObjectNrTmp.IsNull Then + Throw New ArgumentOutOfRangeException("iSecurityObjectNr", "iSecurityObjectNr can't be NULL") + End If + m_iSecurityObjectNr = Value + End Set + End Property + + + Public Property [sSecurityForm]() As SqlString + Get + Return m_sSecurityForm + End Get + Set(ByVal Value As SqlString) + m_sSecurityForm = Value + End Set + End Property + + + Public Property [sSecurityObjectType]() As SqlString + Get + Return m_sSecurityObjectType + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectType = Value + End Set + End Property + + + Public Property [sSecurityObject]() As SqlString + Get + Return m_sSecurityObject + End Get + Set(ByVal Value As SqlString) + m_sSecurityObject = Value + End Set + End Property + + + Public Property [sSecurityObjectItem]() As SqlString + Get + Return m_sSecurityObjectItem + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectItem = Value + End Set + End Property + + + Public Property [sSecurityObjectDescriotion]() As SqlString + Get + Return m_sSecurityObjectDescriotion + End Get + Set(ByVal Value As SqlString) + m_sSecurityObjectDescriotion = Value + End Set + End Property + + + Public Property [iLevel]() As SqlInt32 + Get + Return m_iLevel + End Get + Set(ByVal Value As SqlInt32) + m_iLevel = Value + End Set + End Property + + + Public Property [bAktiv]() As SqlBoolean + Get + Return m_bAktiv + End Get + Set(ByVal Value As SqlBoolean) + m_bAktiv = Value + End Set + End Property + + + Public Property [daErstellt_am]() As SqlDateTime + Get + Return m_daErstellt_am + End Get + Set(ByVal Value As SqlDateTime) + m_daErstellt_am = Value + End Set + End Property + + + Public Property [daMutiert_am]() As SqlDateTime + Get + Return m_daMutiert_am + End Get + Set(ByVal Value As SqlDateTime) + m_daMutiert_am = Value + End Set + End Property + + + Public Property [iMutierer]() As SqlInt32 + Get + Return m_iMutierer + End Get + Set(ByVal Value As SqlInt32) + m_iMutierer = Value + End Set + End Property + + + Public Property [iMandantnr]() As SqlInt32 + Get + Return m_iMandantnr + End Get + Set(ByVal Value As SqlInt32) + m_iMandantnr = Value + End Set + End Property + +#End Region + + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/Formulare/FrmReportSelect.designer.vb b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.designer.vb new file mode 100644 index 0000000..8aa4451 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.designer.vb @@ -0,0 +1,880 @@ + _ +Partial Class FrmReportSelect + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmReportSelect)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.tsbtnReportDesign = New System.Windows.Forms.ToolStripButton() + Me.TSBtnSetSecurityObject = New System.Windows.Forms.ToolStripButton() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.TreeAuswertungen = New System.Windows.Forms.TreeView() + Me.TreeContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.AlleKnotenSchliessenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AlleKnotenÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GrpAuswertung = New System.Windows.Forms.GroupBox() + Me.GrpParameter = New System.Windows.Forms.GroupBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.btnEditSQL = New System.Windows.Forms.Button() + Me.btnDeleteSavedParam = New System.Windows.Forms.Button() + Me.ComboboxMAParameter = New System.Windows.Forms.ComboBox() + Me.btnSave = New System.Windows.Forms.Button() + Me.BtnParamDel6 = New System.Windows.Forms.Button() + Me.BtnParamDel5 = New System.Windows.Forms.Button() + Me.BtnParamDel4 = New System.Windows.Forms.Button() + Me.BtnParamDel3 = New System.Windows.Forms.Button() + Me.BtnParamDel2 = New System.Windows.Forms.Button() + Me.BtnParamDel1 = New System.Windows.Forms.Button() + Me.BtnInitParam = New System.Windows.Forms.Button() + Me.cbandor6 = New System.Windows.Forms.ComboBox() + Me.cbparam7 = New System.Windows.Forms.ComboBox() + Me.cbvalue7 = New System.Windows.Forms.ComboBox() + Me.cbop7 = New System.Windows.Forms.ComboBox() + Me.cbandor5 = New System.Windows.Forms.ComboBox() + Me.cbparam6 = New System.Windows.Forms.ComboBox() + Me.cbvalue6 = New System.Windows.Forms.ComboBox() + Me.cbop6 = New System.Windows.Forms.ComboBox() + Me.cbandor4 = New System.Windows.Forms.ComboBox() + Me.cbandor3 = New System.Windows.Forms.ComboBox() + Me.cbandor2 = New System.Windows.Forms.ComboBox() + Me.cbandor1 = New System.Windows.Forms.ComboBox() + Me.cbparam5 = New System.Windows.Forms.ComboBox() + Me.cbparam4 = New System.Windows.Forms.ComboBox() + Me.cbparam3 = New System.Windows.Forms.ComboBox() + Me.cbparam2 = New System.Windows.Forms.ComboBox() + Me.cbparam1 = New System.Windows.Forms.ComboBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.cbvalue5 = New System.Windows.Forms.ComboBox() + Me.cbop5 = New System.Windows.Forms.ComboBox() + Me.cbvalue4 = New System.Windows.Forms.ComboBox() + Me.cbop4 = New System.Windows.Forms.ComboBox() + Me.cbvalue3 = New System.Windows.Forms.ComboBox() + Me.cbop3 = New System.Windows.Forms.ComboBox() + Me.cbvalue2 = New System.Windows.Forms.ComboBox() + Me.cbop2 = New System.Windows.Forms.ComboBox() + Me.lblTitelWert = New System.Windows.Forms.Label() + Me.lblTitelOperator = New System.Windows.Forms.Label() + Me.lblParamTitel = New System.Windows.Forms.Label() + Me.cbvalue1 = New System.Windows.Forms.ComboBox() + Me.cbop1 = New System.Windows.Forms.ComboBox() + Me.ImageList2 = New System.Windows.Forms.ImageList(Me.components) + Me.grpBeschreibung = New System.Windows.Forms.GroupBox() + Me.txtbeschreibung = New System.Windows.Forms.TextBox() + Me.grpdb = New System.Windows.Forms.GroupBox() + Me.btnAufbereitenCSV = New System.Windows.Forms.Button() + Me.grpcr = New System.Windows.Forms.GroupBox() + Me.checkboxprintparam = New System.Windows.Forms.CheckBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.txtTitel2 = New System.Windows.Forms.TextBox() + Me.txtTitel1 = New System.Windows.Forms.TextBox() + Me.BtnAufbereitenCR = New System.Windows.Forms.Button() + Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.TreeContextMenuStrip1.SuspendLayout() + Me.GrpAuswertung.SuspendLayout() + Me.GrpParameter.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.grpBeschreibung.SuspendLayout() + Me.grpdb.SuspendLayout() + Me.grpcr.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.AllowMerge = False + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(732, 24) + Me.MenuStrip1.TabIndex = 4 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(120, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.ToolStripSeparator1, Me.tsbtnReportDesign, Me.TSBtnSetSecurityObject}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(732, 25) + Me.ToolStrip1.TabIndex = 3 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.AutoSize = False + Me.ToolStripSeparator1.ForeColor = System.Drawing.SystemColors.Control + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'tsbtnReportDesign + ' + Me.tsbtnReportDesign.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.tsbtnReportDesign.Image = CType(resources.GetObject("tsbtnReportDesign.Image"), System.Drawing.Image) + Me.tsbtnReportDesign.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbtnReportDesign.Name = "tsbtnReportDesign" + Me.tsbtnReportDesign.Size = New System.Drawing.Size(23, 22) + Me.tsbtnReportDesign.Text = "ToolStripButton1" + ' + 'TSBtnSetSecurityObject + ' + Me.TSBtnSetSecurityObject.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnSetSecurityObject.Image = CType(resources.GetObject("TSBtnSetSecurityObject.Image"), System.Drawing.Image) + Me.TSBtnSetSecurityObject.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnSetSecurityObject.Name = "TSBtnSetSecurityObject" + Me.TSBtnSetSecurityObject.Size = New System.Drawing.Size(23, 22) + Me.TSBtnSetSecurityObject.Text = "SecurityObjekte generieren" + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "ReportFolder.png") + Me.ImageList1.Images.SetKeyName(1, "Report.png") + Me.ImageList1.Images.SetKeyName(2, "BOOK02.GIF") + Me.ImageList1.Images.SetKeyName(3, "rpt.png") + Me.ImageList1.Images.SetKeyName(4, "CR.png") + Me.ImageList1.Images.SetKeyName(5, "Text.ico") + Me.ImageList1.Images.SetKeyName(6, "README.GIF") + ' + 'TreeAuswertungen + ' + Me.TreeAuswertungen.ContextMenuStrip = Me.TreeContextMenuStrip1 + Me.TreeAuswertungen.Dock = System.Windows.Forms.DockStyle.Fill + Me.TreeAuswertungen.HideSelection = False + Me.TreeAuswertungen.HotTracking = True + Me.TreeAuswertungen.ImageIndex = 0 + Me.TreeAuswertungen.ImageList = Me.ImageList1 + Me.TreeAuswertungen.Location = New System.Drawing.Point(3, 16) + Me.TreeAuswertungen.Name = "TreeAuswertungen" + Me.TreeAuswertungen.SelectedImageIndex = 0 + Me.TreeAuswertungen.Size = New System.Drawing.Size(286, 533) + Me.TreeAuswertungen.TabIndex = 0 + ' + 'TreeContextMenuStrip1 + ' + Me.TreeContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AlleKnotenSchliessenToolStripMenuItem, Me.AlleKnotenÖffnenToolStripMenuItem}) + Me.TreeContextMenuStrip1.Name = "TreeContextMenuStrip1" + Me.TreeContextMenuStrip1.Size = New System.Drawing.Size(192, 48) + ' + 'AlleKnotenSchliessenToolStripMenuItem + ' + Me.AlleKnotenSchliessenToolStripMenuItem.Name = "AlleKnotenSchliessenToolStripMenuItem" + Me.AlleKnotenSchliessenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.AlleKnotenSchliessenToolStripMenuItem.Text = "Alle Knoten schliessen" + ' + 'AlleKnotenÖffnenToolStripMenuItem + ' + Me.AlleKnotenÖffnenToolStripMenuItem.Name = "AlleKnotenÖffnenToolStripMenuItem" + Me.AlleKnotenÖffnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.AlleKnotenÖffnenToolStripMenuItem.Text = "Alle Knoten öffnen" + ' + 'GrpAuswertung + ' + Me.GrpAuswertung.Controls.Add(Me.TreeAuswertungen) + Me.GrpAuswertung.Dock = System.Windows.Forms.DockStyle.Left + Me.GrpAuswertung.Location = New System.Drawing.Point(0, 49) + Me.GrpAuswertung.Name = "GrpAuswertung" + Me.GrpAuswertung.Size = New System.Drawing.Size(292, 552) + Me.GrpAuswertung.TabIndex = 0 + Me.GrpAuswertung.TabStop = False + Me.GrpAuswertung.Text = "Auswertungen" + ' + 'GrpParameter + ' + Me.GrpParameter.Controls.Add(Me.PictureBox1) + Me.GrpParameter.Controls.Add(Me.btnEditSQL) + Me.GrpParameter.Controls.Add(Me.btnDeleteSavedParam) + Me.GrpParameter.Controls.Add(Me.ComboboxMAParameter) + Me.GrpParameter.Controls.Add(Me.btnSave) + Me.GrpParameter.Controls.Add(Me.BtnParamDel6) + Me.GrpParameter.Controls.Add(Me.BtnParamDel5) + Me.GrpParameter.Controls.Add(Me.BtnParamDel4) + Me.GrpParameter.Controls.Add(Me.BtnParamDel3) + Me.GrpParameter.Controls.Add(Me.BtnParamDel2) + Me.GrpParameter.Controls.Add(Me.BtnParamDel1) + Me.GrpParameter.Controls.Add(Me.BtnInitParam) + Me.GrpParameter.Controls.Add(Me.cbandor6) + Me.GrpParameter.Controls.Add(Me.cbparam7) + Me.GrpParameter.Controls.Add(Me.cbvalue7) + Me.GrpParameter.Controls.Add(Me.cbop7) + Me.GrpParameter.Controls.Add(Me.cbandor5) + Me.GrpParameter.Controls.Add(Me.cbparam6) + Me.GrpParameter.Controls.Add(Me.cbvalue6) + Me.GrpParameter.Controls.Add(Me.cbop6) + Me.GrpParameter.Controls.Add(Me.cbandor4) + Me.GrpParameter.Controls.Add(Me.cbandor3) + Me.GrpParameter.Controls.Add(Me.cbandor2) + Me.GrpParameter.Controls.Add(Me.cbandor1) + Me.GrpParameter.Controls.Add(Me.cbparam5) + Me.GrpParameter.Controls.Add(Me.cbparam4) + Me.GrpParameter.Controls.Add(Me.cbparam3) + Me.GrpParameter.Controls.Add(Me.cbparam2) + Me.GrpParameter.Controls.Add(Me.cbparam1) + Me.GrpParameter.Controls.Add(Me.Label6) + Me.GrpParameter.Controls.Add(Me.cbvalue5) + Me.GrpParameter.Controls.Add(Me.cbop5) + Me.GrpParameter.Controls.Add(Me.cbvalue4) + Me.GrpParameter.Controls.Add(Me.cbop4) + Me.GrpParameter.Controls.Add(Me.cbvalue3) + Me.GrpParameter.Controls.Add(Me.cbop3) + Me.GrpParameter.Controls.Add(Me.cbvalue2) + Me.GrpParameter.Controls.Add(Me.cbop2) + Me.GrpParameter.Controls.Add(Me.lblTitelWert) + Me.GrpParameter.Controls.Add(Me.lblTitelOperator) + Me.GrpParameter.Controls.Add(Me.lblParamTitel) + Me.GrpParameter.Controls.Add(Me.cbvalue1) + Me.GrpParameter.Controls.Add(Me.cbop1) + Me.GrpParameter.Location = New System.Drawing.Point(295, 129) + Me.GrpParameter.Name = "GrpParameter" + Me.GrpParameter.Size = New System.Drawing.Size(425, 301) + Me.GrpParameter.TabIndex = 1 + Me.GrpParameter.TabStop = False + Me.GrpParameter.Text = "Parameter" + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(360, 65) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(39, 36) + Me.PictureBox1.TabIndex = 48 + Me.PictureBox1.TabStop = False + ' + 'btnEditSQL + ' + Me.btnEditSQL.Image = CType(resources.GetObject("btnEditSQL.Image"), System.Drawing.Image) + Me.btnEditSQL.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditSQL.Location = New System.Drawing.Point(398, 72) + Me.btnEditSQL.Name = "btnEditSQL" + Me.btnEditSQL.Size = New System.Drawing.Size(24, 29) + Me.btnEditSQL.TabIndex = 28 + Me.btnEditSQL.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditSQL.UseVisualStyleBackColor = True + ' + 'btnDeleteSavedParam + ' + Me.btnDeleteSavedParam.Image = CType(resources.GetObject("btnDeleteSavedParam.Image"), System.Drawing.Image) + Me.btnDeleteSavedParam.Location = New System.Drawing.Point(399, 21) + Me.btnDeleteSavedParam.Name = "btnDeleteSavedParam" + Me.btnDeleteSavedParam.Size = New System.Drawing.Size(19, 21) + Me.btnDeleteSavedParam.TabIndex = 47 + Me.btnDeleteSavedParam.UseVisualStyleBackColor = True + ' + 'ComboboxMAParameter + ' + Me.ComboboxMAParameter.FormattingEnabled = True + Me.ComboboxMAParameter.Location = New System.Drawing.Point(96, 21) + Me.ComboboxMAParameter.Name = "ComboboxMAParameter" + Me.ComboboxMAParameter.Size = New System.Drawing.Size(303, 21) + Me.ComboboxMAParameter.TabIndex = 46 + Me.ComboboxMAParameter.Visible = False + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(15, 19) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(75, 23) + Me.btnSave.TabIndex = 45 + Me.btnSave.Text = "Speichern" + Me.btnSave.UseVisualStyleBackColor = True + ' + 'BtnParamDel6 + ' + Me.BtnParamDel6.Image = CType(resources.GetObject("BtnParamDel6.Image"), System.Drawing.Image) + Me.BtnParamDel6.Location = New System.Drawing.Point(399, 270) + Me.BtnParamDel6.Name = "BtnParamDel6" + Me.BtnParamDel6.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel6.TabIndex = 44 + Me.BtnParamDel6.UseVisualStyleBackColor = True + ' + 'BtnParamDel5 + ' + Me.BtnParamDel5.Image = CType(resources.GetObject("BtnParamDel5.Image"), System.Drawing.Image) + Me.BtnParamDel5.Location = New System.Drawing.Point(399, 244) + Me.BtnParamDel5.Name = "BtnParamDel5" + Me.BtnParamDel5.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel5.TabIndex = 43 + Me.BtnParamDel5.UseVisualStyleBackColor = True + ' + 'BtnParamDel4 + ' + Me.BtnParamDel4.Image = CType(resources.GetObject("BtnParamDel4.Image"), System.Drawing.Image) + Me.BtnParamDel4.Location = New System.Drawing.Point(399, 216) + Me.BtnParamDel4.Name = "BtnParamDel4" + Me.BtnParamDel4.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel4.TabIndex = 42 + Me.BtnParamDel4.UseVisualStyleBackColor = True + ' + 'BtnParamDel3 + ' + Me.BtnParamDel3.Image = CType(resources.GetObject("BtnParamDel3.Image"), System.Drawing.Image) + Me.BtnParamDel3.Location = New System.Drawing.Point(399, 189) + Me.BtnParamDel3.Name = "BtnParamDel3" + Me.BtnParamDel3.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel3.TabIndex = 41 + Me.BtnParamDel3.UseVisualStyleBackColor = True + ' + 'BtnParamDel2 + ' + Me.BtnParamDel2.Image = CType(resources.GetObject("BtnParamDel2.Image"), System.Drawing.Image) + Me.BtnParamDel2.Location = New System.Drawing.Point(399, 163) + Me.BtnParamDel2.Name = "BtnParamDel2" + Me.BtnParamDel2.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel2.TabIndex = 40 + Me.BtnParamDel2.UseVisualStyleBackColor = True + ' + 'BtnParamDel1 + ' + Me.BtnParamDel1.Image = CType(resources.GetObject("BtnParamDel1.Image"), System.Drawing.Image) + Me.BtnParamDel1.Location = New System.Drawing.Point(399, 136) + Me.BtnParamDel1.Name = "BtnParamDel1" + Me.BtnParamDel1.Size = New System.Drawing.Size(19, 21) + Me.BtnParamDel1.TabIndex = 39 + Me.BtnParamDel1.UseVisualStyleBackColor = True + ' + 'BtnInitParam + ' + Me.BtnInitParam.Location = New System.Drawing.Point(15, 48) + Me.BtnInitParam.Name = "BtnInitParam" + Me.BtnInitParam.Size = New System.Drawing.Size(75, 23) + Me.BtnInitParam.TabIndex = 29 + Me.BtnInitParam.Text = "Initialisieren" + Me.BtnInitParam.UseVisualStyleBackColor = True + ' + 'cbandor6 + ' + Me.cbandor6.FormattingEnabled = True + Me.cbandor6.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor6.Location = New System.Drawing.Point(15, 271) + Me.cbandor6.Name = "cbandor6" + Me.cbandor6.Size = New System.Drawing.Size(52, 21) + Me.cbandor6.TabIndex = 23 + ' + 'cbparam7 + ' + Me.cbparam7.FormattingEnabled = True + Me.cbparam7.Location = New System.Drawing.Point(79, 271) + Me.cbparam7.Name = "cbparam7" + Me.cbparam7.Size = New System.Drawing.Size(128, 21) + Me.cbparam7.TabIndex = 24 + ' + 'cbvalue7 + ' + Me.cbvalue7.FormattingEnabled = True + Me.cbvalue7.Location = New System.Drawing.Point(271, 271) + Me.cbvalue7.Name = "cbvalue7" + Me.cbvalue7.Size = New System.Drawing.Size(128, 21) + Me.cbvalue7.TabIndex = 26 + ' + 'cbop7 + ' + Me.cbop7.FormattingEnabled = True + Me.cbop7.Location = New System.Drawing.Point(214, 271) + Me.cbop7.Name = "cbop7" + Me.cbop7.Size = New System.Drawing.Size(52, 21) + Me.cbop7.TabIndex = 25 + ' + 'cbandor5 + ' + Me.cbandor5.FormattingEnabled = True + Me.cbandor5.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor5.Location = New System.Drawing.Point(15, 244) + Me.cbandor5.Name = "cbandor5" + Me.cbandor5.Size = New System.Drawing.Size(52, 21) + Me.cbandor5.TabIndex = 19 + ' + 'cbparam6 + ' + Me.cbparam6.FormattingEnabled = True + Me.cbparam6.Location = New System.Drawing.Point(79, 244) + Me.cbparam6.Name = "cbparam6" + Me.cbparam6.Size = New System.Drawing.Size(128, 21) + Me.cbparam6.TabIndex = 20 + ' + 'cbvalue6 + ' + Me.cbvalue6.FormattingEnabled = True + Me.cbvalue6.Location = New System.Drawing.Point(271, 244) + Me.cbvalue6.Name = "cbvalue6" + Me.cbvalue6.Size = New System.Drawing.Size(128, 21) + Me.cbvalue6.TabIndex = 22 + ' + 'cbop6 + ' + Me.cbop6.FormattingEnabled = True + Me.cbop6.Location = New System.Drawing.Point(214, 244) + Me.cbop6.Name = "cbop6" + Me.cbop6.Size = New System.Drawing.Size(52, 21) + Me.cbop6.TabIndex = 21 + ' + 'cbandor4 + ' + Me.cbandor4.FormattingEnabled = True + Me.cbandor4.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor4.Location = New System.Drawing.Point(15, 217) + Me.cbandor4.Name = "cbandor4" + Me.cbandor4.Size = New System.Drawing.Size(52, 21) + Me.cbandor4.TabIndex = 15 + ' + 'cbandor3 + ' + Me.cbandor3.FormattingEnabled = True + Me.cbandor3.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor3.Location = New System.Drawing.Point(15, 190) + Me.cbandor3.Name = "cbandor3" + Me.cbandor3.Size = New System.Drawing.Size(52, 21) + Me.cbandor3.TabIndex = 11 + ' + 'cbandor2 + ' + Me.cbandor2.FormattingEnabled = True + Me.cbandor2.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor2.Location = New System.Drawing.Point(15, 163) + Me.cbandor2.Name = "cbandor2" + Me.cbandor2.Size = New System.Drawing.Size(52, 21) + Me.cbandor2.TabIndex = 7 + ' + 'cbandor1 + ' + Me.cbandor1.FormattingEnabled = True + Me.cbandor1.Items.AddRange(New Object() {"und", "oder"}) + Me.cbandor1.Location = New System.Drawing.Point(15, 136) + Me.cbandor1.Name = "cbandor1" + Me.cbandor1.Size = New System.Drawing.Size(52, 21) + Me.cbandor1.TabIndex = 3 + ' + 'cbparam5 + ' + Me.cbparam5.FormattingEnabled = True + Me.cbparam5.Location = New System.Drawing.Point(79, 217) + Me.cbparam5.Name = "cbparam5" + Me.cbparam5.Size = New System.Drawing.Size(128, 21) + Me.cbparam5.TabIndex = 16 + ' + 'cbparam4 + ' + Me.cbparam4.FormattingEnabled = True + Me.cbparam4.Location = New System.Drawing.Point(79, 190) + Me.cbparam4.Name = "cbparam4" + Me.cbparam4.Size = New System.Drawing.Size(128, 21) + Me.cbparam4.TabIndex = 12 + ' + 'cbparam3 + ' + Me.cbparam3.FormattingEnabled = True + Me.cbparam3.Location = New System.Drawing.Point(79, 163) + Me.cbparam3.Name = "cbparam3" + Me.cbparam3.Size = New System.Drawing.Size(128, 21) + Me.cbparam3.TabIndex = 8 + ' + 'cbparam2 + ' + Me.cbparam2.FormattingEnabled = True + Me.cbparam2.Location = New System.Drawing.Point(79, 136) + Me.cbparam2.Name = "cbparam2" + Me.cbparam2.Size = New System.Drawing.Size(128, 21) + Me.cbparam2.TabIndex = 4 + ' + 'cbparam1 + ' + Me.cbparam1.FormattingEnabled = True + Me.cbparam1.Location = New System.Drawing.Point(79, 106) + Me.cbparam1.Name = "cbparam1" + Me.cbparam1.Size = New System.Drawing.Size(128, 21) + Me.cbparam1.TabIndex = 0 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label6.Location = New System.Drawing.Point(12, 88) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(59, 13) + Me.Label6.TabIndex = 38 + Me.Label6.Text = "und/oder" + ' + 'cbvalue5 + ' + Me.cbvalue5.FormattingEnabled = True + Me.cbvalue5.Location = New System.Drawing.Point(271, 217) + Me.cbvalue5.Name = "cbvalue5" + Me.cbvalue5.Size = New System.Drawing.Size(128, 21) + Me.cbvalue5.TabIndex = 18 + ' + 'cbop5 + ' + Me.cbop5.FormattingEnabled = True + Me.cbop5.Location = New System.Drawing.Point(214, 217) + Me.cbop5.Name = "cbop5" + Me.cbop5.Size = New System.Drawing.Size(52, 21) + Me.cbop5.TabIndex = 17 + ' + 'cbvalue4 + ' + Me.cbvalue4.FormattingEnabled = True + Me.cbvalue4.Location = New System.Drawing.Point(271, 190) + Me.cbvalue4.Name = "cbvalue4" + Me.cbvalue4.Size = New System.Drawing.Size(128, 21) + Me.cbvalue4.TabIndex = 14 + ' + 'cbop4 + ' + Me.cbop4.FormattingEnabled = True + Me.cbop4.Location = New System.Drawing.Point(213, 190) + Me.cbop4.Name = "cbop4" + Me.cbop4.Size = New System.Drawing.Size(52, 21) + Me.cbop4.TabIndex = 13 + ' + 'cbvalue3 + ' + Me.cbvalue3.FormattingEnabled = True + Me.cbvalue3.Location = New System.Drawing.Point(271, 163) + Me.cbvalue3.Name = "cbvalue3" + Me.cbvalue3.Size = New System.Drawing.Size(128, 21) + Me.cbvalue3.TabIndex = 10 + ' + 'cbop3 + ' + Me.cbop3.FormattingEnabled = True + Me.cbop3.Location = New System.Drawing.Point(213, 163) + Me.cbop3.Name = "cbop3" + Me.cbop3.Size = New System.Drawing.Size(52, 21) + Me.cbop3.TabIndex = 9 + ' + 'cbvalue2 + ' + Me.cbvalue2.FormattingEnabled = True + Me.cbvalue2.Location = New System.Drawing.Point(271, 136) + Me.cbvalue2.Name = "cbvalue2" + Me.cbvalue2.Size = New System.Drawing.Size(128, 21) + Me.cbvalue2.TabIndex = 6 + ' + 'cbop2 + ' + Me.cbop2.FormattingEnabled = True + Me.cbop2.Location = New System.Drawing.Point(213, 136) + Me.cbop2.Name = "cbop2" + Me.cbop2.Size = New System.Drawing.Size(52, 21) + Me.cbop2.TabIndex = 5 + ' + 'lblTitelWert + ' + Me.lblTitelWert.AutoSize = True + Me.lblTitelWert.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTitelWert.Location = New System.Drawing.Point(272, 88) + Me.lblTitelWert.Name = "lblTitelWert" + Me.lblTitelWert.Size = New System.Drawing.Size(34, 13) + Me.lblTitelWert.TabIndex = 28 + Me.lblTitelWert.Text = "Wert" + ' + 'lblTitelOperator + ' + Me.lblTitelOperator.AutoSize = True + Me.lblTitelOperator.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTitelOperator.Location = New System.Drawing.Point(210, 88) + Me.lblTitelOperator.Name = "lblTitelOperator" + Me.lblTitelOperator.Size = New System.Drawing.Size(56, 13) + Me.lblTitelOperator.TabIndex = 27 + Me.lblTitelOperator.Text = "Operator" + ' + 'lblParamTitel + ' + Me.lblParamTitel.AutoSize = True + Me.lblParamTitel.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblParamTitel.Location = New System.Drawing.Point(77, 88) + Me.lblParamTitel.Name = "lblParamTitel" + Me.lblParamTitel.Size = New System.Drawing.Size(64, 13) + Me.lblParamTitel.TabIndex = 26 + Me.lblParamTitel.Text = "Parameter" + ' + 'cbvalue1 + ' + Me.cbvalue1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.cbvalue1.FormatString = "N2" + Me.cbvalue1.FormattingEnabled = True + Me.cbvalue1.Location = New System.Drawing.Point(271, 106) + Me.cbvalue1.Name = "cbvalue1" + Me.cbvalue1.Size = New System.Drawing.Size(128, 21) + Me.cbvalue1.TabIndex = 2 + ' + 'cbop1 + ' + Me.cbop1.FormattingEnabled = True + Me.cbop1.Location = New System.Drawing.Point(213, 106) + Me.cbop1.Name = "cbop1" + Me.cbop1.Size = New System.Drawing.Size(52, 21) + Me.cbop1.TabIndex = 1 + ' + 'ImageList2 + ' + Me.ImageList2.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit + Me.ImageList2.ImageSize = New System.Drawing.Size(16, 16) + Me.ImageList2.TransparentColor = System.Drawing.Color.Transparent + ' + 'grpBeschreibung + ' + Me.grpBeschreibung.Controls.Add(Me.txtbeschreibung) + Me.grpBeschreibung.Location = New System.Drawing.Point(295, 49) + Me.grpBeschreibung.Name = "grpBeschreibung" + Me.grpBeschreibung.Size = New System.Drawing.Size(425, 74) + Me.grpBeschreibung.TabIndex = 29 + Me.grpBeschreibung.TabStop = False + Me.grpBeschreibung.Text = "Beschreibung" + ' + 'txtbeschreibung + ' + Me.txtbeschreibung.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtbeschreibung.Dock = System.Windows.Forms.DockStyle.Left + Me.txtbeschreibung.Location = New System.Drawing.Point(3, 16) + Me.txtbeschreibung.Multiline = True + Me.txtbeschreibung.Name = "txtbeschreibung" + Me.txtbeschreibung.ReadOnly = True + Me.txtbeschreibung.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtbeschreibung.Size = New System.Drawing.Size(415, 55) + Me.txtbeschreibung.TabIndex = 0 + ' + 'grpdb + ' + Me.grpdb.Controls.Add(Me.btnAufbereitenCSV) + Me.grpdb.Location = New System.Drawing.Point(295, 436) + Me.grpdb.Name = "grpdb" + Me.grpdb.Size = New System.Drawing.Size(422, 54) + Me.grpdb.TabIndex = 30 + Me.grpdb.TabStop = False + Me.grpdb.Text = "Resultat als Datentabelle" + ' + 'btnAufbereitenCSV + ' + Me.btnAufbereitenCSV.Image = CType(resources.GetObject("btnAufbereitenCSV.Image"), System.Drawing.Image) + Me.btnAufbereitenCSV.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnAufbereitenCSV.Location = New System.Drawing.Point(6, 19) + Me.btnAufbereitenCSV.Name = "btnAufbereitenCSV" + Me.btnAufbereitenCSV.Size = New System.Drawing.Size(87, 23) + Me.btnAufbereitenCSV.TabIndex = 27 + Me.btnAufbereitenCSV.Text = "Tabelle" + Me.btnAufbereitenCSV.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnAufbereitenCSV.UseVisualStyleBackColor = True + ' + 'grpcr + ' + Me.grpcr.Controls.Add(Me.checkboxprintparam) + Me.grpcr.Controls.Add(Me.Label2) + Me.grpcr.Controls.Add(Me.Label1) + Me.grpcr.Controls.Add(Me.txtTitel2) + Me.grpcr.Controls.Add(Me.txtTitel1) + Me.grpcr.Controls.Add(Me.BtnAufbereitenCR) + Me.grpcr.Location = New System.Drawing.Point(295, 496) + Me.grpcr.Name = "grpcr" + Me.grpcr.Size = New System.Drawing.Size(422, 102) + Me.grpcr.TabIndex = 31 + Me.grpcr.TabStop = False + Me.grpcr.Text = "Resultat als Crystal-Report" + ' + 'checkboxprintparam + ' + Me.checkboxprintparam.AutoSize = True + Me.checkboxprintparam.Location = New System.Drawing.Point(297, 76) + Me.checkboxprintparam.Name = "checkboxprintparam" + Me.checkboxprintparam.Size = New System.Drawing.Size(116, 17) + Me.checkboxprintparam.TabIndex = 33 + Me.checkboxprintparam.Text = "Parameter drucken" + Me.checkboxprintparam.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(8, 48) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(46, 13) + Me.Label2.TabIndex = 32 + Me.Label2.Text = "Titel Z2:" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(8, 22) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(46, 13) + Me.Label1.TabIndex = 31 + Me.Label1.Text = "Titel Z1:" + ' + 'txtTitel2 + ' + Me.txtTitel2.Location = New System.Drawing.Point(60, 45) + Me.txtTitel2.Name = "txtTitel2" + Me.txtTitel2.Size = New System.Drawing.Size(353, 20) + Me.txtTitel2.TabIndex = 30 + ' + 'txtTitel1 + ' + Me.txtTitel1.Location = New System.Drawing.Point(60, 19) + Me.txtTitel1.Name = "txtTitel1" + Me.txtTitel1.Size = New System.Drawing.Size(353, 20) + Me.txtTitel1.TabIndex = 29 + ' + 'BtnAufbereitenCR + ' + Me.BtnAufbereitenCR.Image = CType(resources.GetObject("BtnAufbereitenCR.Image"), System.Drawing.Image) + Me.BtnAufbereitenCR.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.BtnAufbereitenCR.Location = New System.Drawing.Point(6, 73) + Me.BtnAufbereitenCR.Name = "BtnAufbereitenCR" + Me.BtnAufbereitenCR.Size = New System.Drawing.Size(87, 23) + Me.BtnAufbereitenCR.TabIndex = 28 + Me.BtnAufbereitenCR.Text = "Bericht" + Me.BtnAufbereitenCR.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.BtnAufbereitenCR.UseVisualStyleBackColor = True + ' + 'FrmReportSelect + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(732, 601) + Me.Controls.Add(Me.grpBeschreibung) + Me.Controls.Add(Me.grpcr) + Me.Controls.Add(Me.grpdb) + Me.Controls.Add(Me.GrpAuswertung) + Me.Controls.Add(Me.GrpParameter) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "FrmReportSelect" + Me.Text = "Report-Auswahl" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.TreeContextMenuStrip1.ResumeLayout(False) + Me.GrpAuswertung.ResumeLayout(False) + Me.GrpParameter.ResumeLayout(False) + Me.GrpParameter.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.grpBeschreibung.ResumeLayout(False) + Me.grpBeschreibung.PerformLayout() + Me.grpdb.ResumeLayout(False) + Me.grpcr.ResumeLayout(False) + Me.grpcr.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents btnAufbereitenCSV As System.Windows.Forms.Button + Friend WithEvents TreeAuswertungen As System.Windows.Forms.TreeView + Friend WithEvents ImageList1 As System.Windows.Forms.ImageList + Friend WithEvents GrpAuswertung As System.Windows.Forms.GroupBox + Friend WithEvents GrpParameter As System.Windows.Forms.GroupBox + Friend WithEvents cbandor6 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam7 As System.Windows.Forms.ComboBox + Friend WithEvents cbvalue7 As System.Windows.Forms.ComboBox + Friend WithEvents cbop7 As System.Windows.Forms.ComboBox + Friend WithEvents cbandor5 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam6 As System.Windows.Forms.ComboBox + Friend WithEvents cbvalue6 As System.Windows.Forms.ComboBox + Friend WithEvents cbop6 As System.Windows.Forms.ComboBox + Friend WithEvents cbandor4 As System.Windows.Forms.ComboBox + Friend WithEvents cbandor3 As System.Windows.Forms.ComboBox + Friend WithEvents cbandor2 As System.Windows.Forms.ComboBox + Friend WithEvents cbandor1 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam5 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam4 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam3 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam2 As System.Windows.Forms.ComboBox + Friend WithEvents cbparam1 As System.Windows.Forms.ComboBox + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents cbvalue5 As System.Windows.Forms.ComboBox + Friend WithEvents cbop5 As System.Windows.Forms.ComboBox + Friend WithEvents cbvalue4 As System.Windows.Forms.ComboBox + Friend WithEvents cbop4 As System.Windows.Forms.ComboBox + Friend WithEvents cbvalue3 As System.Windows.Forms.ComboBox + Friend WithEvents cbop3 As System.Windows.Forms.ComboBox + Friend WithEvents cbvalue2 As System.Windows.Forms.ComboBox + Friend WithEvents cbop2 As System.Windows.Forms.ComboBox + Friend WithEvents lblTitelWert As System.Windows.Forms.Label + Friend WithEvents lblTitelOperator As System.Windows.Forms.Label + Friend WithEvents lblParamTitel As System.Windows.Forms.Label + Friend WithEvents cbvalue1 As System.Windows.Forms.ComboBox + Friend WithEvents cbop1 As System.Windows.Forms.ComboBox + Friend WithEvents BtnAufbereitenCR As System.Windows.Forms.Button + Friend WithEvents BtnInitParam As System.Windows.Forms.Button + Friend WithEvents BtnParamDel6 As System.Windows.Forms.Button + Friend WithEvents BtnParamDel5 As System.Windows.Forms.Button + Friend WithEvents BtnParamDel4 As System.Windows.Forms.Button + Friend WithEvents BtnParamDel3 As System.Windows.Forms.Button + Friend WithEvents BtnParamDel2 As System.Windows.Forms.Button + Friend WithEvents BtnParamDel1 As System.Windows.Forms.Button + Friend WithEvents ImageList2 As System.Windows.Forms.ImageList + Friend WithEvents btnSave As System.Windows.Forms.Button + Friend WithEvents ComboboxMAParameter As System.Windows.Forms.ComboBox + Friend WithEvents btnDeleteSavedParam As System.Windows.Forms.Button + Friend WithEvents grpBeschreibung As System.Windows.Forms.GroupBox + Friend WithEvents txtbeschreibung As System.Windows.Forms.TextBox + Friend WithEvents TreeContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip + Friend WithEvents AlleKnotenSchliessenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AlleKnotenÖffnenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents grpdb As System.Windows.Forms.GroupBox + Friend WithEvents grpcr As System.Windows.Forms.GroupBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents txtTitel2 As System.Windows.Forms.TextBox + Friend WithEvents txtTitel1 As System.Windows.Forms.TextBox + Friend WithEvents checkboxprintparam As System.Windows.Forms.CheckBox + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip + Friend WithEvents btnEditSQL As System.Windows.Forms.Button + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents tsbtnReportDesign As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnSetSecurityObject As System.Windows.Forms.ToolStripButton +End Class diff --git a/SW/20211125/_FRReporting/Formulare/FrmReportSelect.resx b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.resx new file mode 100644 index 0000000..7f7a2d3 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.resx @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + + + 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 + 2Nd7AAAAAElFTkSuQmCC + + + + 229, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ + DwAAAk1TRnQBSQFMAgEBBwEAAYQBAAGEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEABP8B9AHzCv8LAALP + BAAB8wwAAfAB7BAAA/8B8QFVAU8B9wnvCQABzwHdAs8DAAHsDf8B7QHxEAAC/wEIAVUBlwFVAU8BkQG1 + AQcBCQQZAesHAAHPA90CzwMAAewN/wHtAfEQAAH/AZgBVQGXAZgCVQFPAXIB8AH0A/8B4gHrBQABzwTd + A88DAAHsDf8B7QHxEAABmAF3AZcCmASXAQgE/wHiAesDAAHPBN0BzwEAAd0CzwMAAewB/woAARQB/wHt + AfEQAAH/AZ4BCAHzAfQBlwGdAYsBpgGGAc8D/wHiAesBAAHPBN0BzwEAAd0BAAHdAs8DAAHsAf8KAAEU + Af8B7QHxEAAC/wIIAfQClwGYAbQCpgHPAv8B4gHrAQAD3QMAAt0BAAHdAs8DAAHsAf8KAAEUAf8B7QHx + EAAD/wEIAcIBVQGXAvQDpgL/AeIB6wEAAd0BAAPdAQABzwHdAQADzwMAAewB/woAARQB/wHtAfEQAAT/ + AQgBnQHzAfQB3QKmAYsC/wHiAesBAAHdAQAC3QEAAt0BzwLdAs8DAAHsDf8B7QHxEAAE/wEZA/MCpgGL + A/QB4gHrAQAB3QEAAc8C3QHPA90B/wEAAdYDAAHsDf8B7QHxEAAE/wEZAfMBCQGmAYsBtQL0AvMBGQFt + AQAB3QEAAd0BzwLdAdYCFALWBAAB7A3/Ae0B8RAABP8BtAHPAbQBCQPzAfEDkgESAQAB3QHPA90B/wTW + Ac8EAAHsDf8B7QHxEAAD/wIJBvMB8AL/AfQBBwEAA90B/wEUAdYB3QPWARQEAAHsDf8B7QHxEAAE/wEZ + BvMB8AH/AfMB8AH/AQAB3QH/ARQB1gHdARQJAAHsDf8B7QHxEAAE/wEZBv8D8wL/AgAB1gHdARQLAAHs + ARIB/wEOAf8B6wHxAbwB7AH/ARAB/wEUAf8BQwHxEAAQ/xEAAewB7QEAAfIBAAH0AQAB7wESAUMBBwEA + Af8B8BMAAXkBMQFLDQAB8wvsAfMKAAHwAW0B8gQAAf8BtQS7CbUBkgIAAVkEegExAUsJAAGuBRkFCQHd + AfEKAAEBAfAC7wMAAf8BtQEZAfMCTQEZAq0BGQGXAU8BuwHdAbUBkgIAAXoBwwd6AVgGAAGuBhkB3QMJ + Ad0B8QcAA20BCwEQAe8B8gFtAgAB/wG1AfQBGQJNARkBsgGsARkBlwEuAbsB3QG1AZICAAGaARsIoAFY + BQABrgcZAd0CCQHdAfEGAAHtARABAAHsAesCAAHsAwAB/wG1AvQCGgHzAtMBGQGXAVUBuwHdAbUBkgIA + AZoBMQWgAnoCoAFLBAABrgkZAQkB3QHxBQAB9AETAbwB/wFtAQ4B9AH/ARQBbQHzAeoB/wG7BPQBGQLz + ARkBeAFWAQgBGQG7AZICAAGaAXoBwwSgAtwBoAHDATEEAAGuChkB3QHxBQAB7AFtAv8BAAEHAfMB8QH/ + AewBFAH0Af8BBwX0A/MEGQEJAZICAAGaAXoBGwHDAqAB3AIJAbwCwwFLAwABtAoZAQkB8QQAAfIBFAHy + Af8B9AFtAvQBBwHwAf8BBwH0Af8BBwHzAW0CFAFtAfMB6wIUARIB8AEZAQkBkgIAAZoEegFSAf8B3AIZ + AvYBMQMAAbQB9AkZAQkB8QQAAUMB7AL/AgAB8wH3Af8BBwG8ARQBAAH/AQcC/wb0ARkC8wEZAQkBkgIA + BKAB7wEZAbsBWAEaAf8B9AH/AfYDAAG0AvQIGQHWAfEDAAEHARID/wHsAf8C8gEHAfMB8AHzAQAB/wG8 + AfQB6wISAesB8wHsAhIBbQHxAfMBCQGSAgADoAGZAQkE3AEJARkBCQQAAbUD9AcZAdYB8QIAAf8BFAHv + Af8B9AHwAfMB/wEHAfAC8gGSAgAB/wG8BP8H9AEZAQkBkgIAAfYCoAHcARkC3AEJBBkBtQMAAbUE9AYZ + AdYB8QIAAeoBEwP/AfAB/wH3Af8BvAEHAfcB/wIAAf8BvAH0AewCbQHsAfQB7QJtAesB8gH0AQkBkgMA + ATEBuwP0BBkB9AG1BAABtQH/BfQEGQHWAfEDAAHyAW0B9AHtAW0B8QH/Ae0C/wHvAwAB/wHwB/8D9AHz + AfEBuwGSBQABCQL/AfQCGQH/AbUFAAEJAv8F9AEZAd0C1gHyBAAB8gFtAfIBAAHsAQcB9AEHAe0EAAH/ + AfAB/wHtBesB7AHyAfEBrgHqAWYB7wYAAfQC/wEZAf8BtQYAAQkD/wX0AdwB1AHsAf8JAAHvAewC8QQA + Af8B8Qn/AfIBvAH3AfQB/wcAAf8B1AH/AbUHAAHcBf8D9AEZAe0B/wsAAfIB6wUAAf8B8QT/AvQD8wHw + AewD/xIAAdwECQG7A7UBvBQAEP8BQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wMA + Af8BxwG/AfwEAAH/AQcGAAH8AQcGAAHwAQcGAAHAAQcGAAGAAQcGAAGAAQcGAAGAAQcGAAGAAQcGAAGA + AQcGAAGAAQcGAAGAAQ8GAAGAAQ8GAAGBAT8GAAGHAf8GAAHfAf8BgAEBAgABxwH/AcABAQH/AY8CAAHA + AX8BwAEBAf8BhwIAAcABDwHAAQEB/AEDAgABwAEHAcABAQH4ASUCAAHAAQMBwAEBAfADAAHAAQMBwAEB + AfABgAIAAcABAQHAAQEB4AMAAcABAQHAAQEB4QGBAgABwAEBAcABAQHAAQECAAHAAQMBwAEBAYABAwIA + AcABAQHAAQEBgAEDAgAB4AEDAcABAQHAAQcCAAH4AQcBwAEBAeIBDwIAAfwBDwHAAQEB/wEPAgAB/gEf + AcABAwH/AZ8CAAL/AcABDwL/AgAL + + + + 442, 17 + + + + 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 + 309CAAAAAElFTkSuQmCC + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + + R0lGODlhEwAXAIEAAP8AAHCAkL+/vwAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEwAX + AAAIagAFCBxIsKBBAAgRGhSQsGBCAAEcIgwQkeDDigwnUpQ4caBGjBYTRhQJMuREkiVNolzo8eJGli01 + wlSZcuHDjjNv4oQp8iJPjT5tfsy4MybFikFDHqVp8mVMiEqdPsV4tGZVkFILXp05MyAAOw== + + + + 336, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAArtJREFUOE+F + k2tIU2Ecxk+5NedlurnNKctNw6GNLDFRS8xiSmpIVh+szAtrGKYoaQmBfVEMo5QunyQspC8S2U2yLENS + 0EpnkZcKU0sLL7ntaG5ruvN0znFw7IYPPPDy/n/P874f3pf4Q2La0jXMMH8pnKfxGpAdU1Ahehm25IsR + d1IEXbEHkmgz6wh6j5nJaYZhmcxKlBZfLeyq+STBMzsPrYt83JsXoMksRON3T9RPiXDlqy8ufJagclSK + sx/lyOxWg8m44gShy+VZOhzr8epnIt7ai9BrLUb3QglekKfQbi7F47kyPJw5g+apctSNZiDbqMKmDC+L + K04Q6YZ1ZKuVDzs1g7Vkd87gcK8aqgxv0hUniNTj68lm0p0emjBtM+HiYAOufriOycVJTCxO4Bq9vjTU + gFmbmWUOdIdAuV/EFSTr3chbc56wOc2gKArl/ecQ9USLE30HoX+dgpinm1EzVMvegGH2doYiIN2HK9iT + xyPrp0WwLptXoGUrCvpTkWMMwtFeFaqGDXBSy+yMYRKeh0G2T8wV7Mrlk5cnffFjaaWAuUXzdClOv1eg + eDAQfeRtdp8Rw0S3aSFO8+MK4rMF5PlxPywsWVjIOH8TVWNSVI+pUTEiR814CEyOUXbGMNpHEfBOkXIF + sVkCsmJEhnmHBRP2HtR9CUYt7QlbD1pmS1BNl9/4thtLlJ1lgu9HQpgs4wqijriTZcMKWBwke8pqOZxW + dJgr0W6qwKT9Jcso7myHIEnOFWzNdLcUDQTinXnIFfu/3piG4dMUAzedP/eQpGH8LoNRiUM9GqR1RkHX + EY2E9hjEtsUhsnUntC3xCH2QANXdRIibdmBDYywIlQf3lGmFy7YJBiIKxZS20A+aAhmC8+VQGhTw1wdA + khcI7xwlhFkbwcsMogiN9++faZUktP/1hVebYVwiiF+DdQhv93f/NQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAbZJREFUOE99 + z8FqGkEYB3DfILc8Qa55j76C4KGXXortIWmTg7f0klJIIL1sJLQXhVJMmu4GN3VN1Fl3A0Wd3QRsum0W + FAUV10fIv9+3bBPCqAM/GPb7z39mU/9XFEUHs9lMLjKdTmUmk3mZxNVFBZJgmWw2e59Op+eX8A1T/yui + 6sZCe+82sfV28z6Xy6klk8lEDsrbuHu/uhRnxuPxn+TY4xqNRnL4y0avebQUZyirFgyHQ0nAtEob7dsQ + wd87tP2b2GAwiGcJtaDf70sC9kIr49Txcfs7QMu7jvV6vXiWUAvCMJQEptPB648n2DrU8bPj4cyqP7Aa + DjhD1IIgCCRBpd4k9lwXwgVniFrQ7XYlgXd9A9PtxM/2/Kd8mnGGqAW+70sC9mz3GJ9NBw3nCt9MK+Z5 + XjxLqAWtVksSlM4Fnn/4glcHJVyKJk7K1gOjcgHOELXAdV1JUGvQ/9YEqnVB+6fqQoAzRC0QQkjbtqGf + W/hOT57H+FEFZyj7WKBp2kqhUFjXdb1ommZI+mSyAM9CwzBKxWJxPZ/Pr6To8BrJkDdkh+yRfXJEPiV4 + z994xhnO0pnC2j+Ia2ryPbNY9wAAAABJRU5ErkJggg== + + + + 623, 17 + + + + AAABAAgAMDAQAAEABABoBgAAhgAAACAgEAABAAQA6AIAAO4GAAAYGBAAAQAEAOgBAADWCQAAEBAQAAEA + BAAoAQAAvgsAADAwAAABAAgAqA4AAOYMAAAgIAAAAQAIAKgIAACOGwAAGBgAAAEACADIBgAANiQAABAQ + AAABAAgAaAUAAP4qAAAoAAAAMAAAAGAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAAAAAAA//8A/wAAAP8A/wD//wAA////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMwAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADPzMzAAAAAAAAAAAAAAAAAAAAAAAAAAAzP7i4MzMAAAAAAAAAAAAAAAAAAAAAAA + A4P4uLi4uDMzAAAAAAAAAAAAAAAAAAAAA7P7i4uLi4uLMzMAAAAAAAAAAAAAAAAAA4P4uLi4uLi4uLgz + MwAAAAAAAAAAAAAAP7g/i4uLi4uLi4uLi4MzMAAAAAAAAAAAP4s/uLi4uLi4uLi4uLi4szAAAAAAAAAA + P7g/i4uLi4uLi4uLi4uLh4AAAAAAAAAAP4s/uLi4uLi4uLi4uLi4t7cAAAAAAAAAP7iz+4uLi4uLi4uL + i4uLh/gAAAAAAAAAP4uD+Li4uLi4uLi4uLi4t79wAAAAAAAAP7iz+4uLi4uLi4uLi4uLh/uAAAAAAAAA + P4uLP7i4uLi4uLi4uLi4t7+3AAAAAAAAP7i4P4uLi4uLi4uLi4uLh/v4AAAAAAAAP4uLP7i4uLi4uLi4 + d7i4t7+/AAAAAAAAP7i4P4uLi4uLi4uHiHuLh/v7cAAAAAAAP4uLP7i4uLi4uLh4iIe4t7+/gAAAAAAA + P7i4s/uLi4uLi4eIiIh7h/v79wAAAAAAP4uLiz///7i4uHiIiIiHt7+/uAAAAAAAP7i4uLMzM///94iI + iIiId/v7+3AAAAAAP4uLi4uLizMzP4iIiIiIh7+/v4AAAAAAP7i4uLi4uLi3g/+IiIiIiHv7+4cAAAAA + P4uLi4uLi4t4/z///4iIiIe/v7gAAAAAP7i4uLi4uLeP+IMzM///iIh7+/gAAAAAP4uLi4uLi3j/j4j4 + jzMz///4//8AAAAAP7i4uLi4t4//iPiPiPiPMzMzMzMAAAAAP4uLi4uLeP+I+I+I+I+I////gAAAAAAA + P7i4uLi3j/j4j4j4j4j4j///+AAAAAAAP/uLi4t4//iPiPiPiPiP/////4AAAAAAA/i4uLeP//+I+I+I + +I+I/////4AAAAAAA/+Li3j////4j4j4j4j4j///+AAAAAAAAD+4t4//////iPiPiPiP////8AAAAAAA + ADP/9///////+I+I+I+Ij//4AAAAAAAAAAAzN4///////4j4j4j///+AAAAAAAAAAAAAAHj///////iP + iPiP//gAAAAAAAAAAAAAAAeP//////+I+I///4AAAAAAAAAAAAAAAAB4///////4j///+AAAAAAAAAAA + AAAAAAAHj///////iP//gAAAAAAAAAAAAAAAAAAAeP////j////4AAAAAAAAAAAAAAAAAAAAB4///4CP + //+AAAAAAAAAAAAAAAAAAAAAAHj/+AgI//gAAAAAAAAAAAAAAAAAAAAAAAePh/+Aj4AAAAAAAAAAAAAA + AAAAAAAAAAB4f//4CAAAAAAAAAAAAAAAAAAAAAAAAAAHd3d3cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA/n//////AAD8B/////8AAPwAf////wAA+AAD////AAD4AAA///8AAPgA + AAP//wAA+AAAAB//AADwAAAAB/8AAPAAAAAD/wAA8AAAAAP/AADwAAAAAf8AAPAAAAAB/wAA8AAAAAD/ + AADwAAAAAP8AAPAAAAAAfwAA8AAAAAB/AADwAAAAAH8AAPAAAAAAPwAA8AAAAAA/AADwAAAAAB8AAPAA + AAAAHwAA8AAAAAAPAADwAAAAAA8AAPAAAAAABwAA8AAAAAAHAADwAAAAAAcAAPAAAAAABwAA8AAAAAAH + AADwAAAAAD8AAPAAAAAAHwAA8AAAAAAPAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP8A + AAAA/wAA//AAAAH/AAD/+AAAA/8AAP/8AAAH/wAA//4AAA//AAD//wAAH/8AAP//gAA//wAA///AAH// + AAD//+AA//8AAP//8AH//wAA///4A///AAD///////8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAAAAAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMAAAAAAA + AAAAAAAAAAM/uLMzMAAAAAAAAAAAAAADP4uLi4szMwAAAAAAAAAAAz+4uLi4uLizMwAAAAAAAAM/+4uL + i4uLi4uDAAAAAAAD8/i4uLi4uLi4t3AAAAAAA/P7i4uLi4uLi4fwAAAAAAPz+Li4uLi4uLi3twAAAAAD + 8/uLi4uLi4uLh/sAAAAAA/P4uLi4uLh4uLe/cAAAAAP7P4uLi4uHh4uH+/AAAAAD+LP4uLi4eIh4t7+3 + AAAAA/uD+4uLh4iIh4f7+wAAAAP4s///uHiIiIh3v79wAAAD+4szM///+IiIh/v78AAAA/i4uLgzMz// + //d/v7cAAAP4uLiwj/jzMzM/h//3AAAD+4uLCP+I+I+I8zMzMwAAA/i4sI/4+I+I+I//gAAAAAP7iwj/ + +I+I+I+I//gAAAAAOLCP//+I+I+I//+AAAAAAD+Hj///+I+I+I/4AAAAAAAD/3j///+I+I//gAAAAAAA + ADM3j///+I//+AAAAAAAAAAAAHj//////4AAAAAAAAAAAAAHj/+I//gAAAAAAAAAAAAAAHj4AI+AAAAA + AAAAAAAAAAAHgPgIAAAAAAAAAAAAAAAAAH//gAAAAAAAAAAAAAAAAAAHd3AAAAAAAAD/////+H///+AH + ///gAD//4AAD/+AAAP/gAAB/4AAAP+AAAD/gAAAf4AAAH+AAAA/gAAAP4AAAB+AAAAfgAAAD4AAAA+AA + AAHgAAAB4AAAA+AAAA/gAAAH8AAAD/AAAB/4AAA//AAAf//AAP//4AH///AD///4B////A////4f/ygA + AAAYAAAAMAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgIAAgAAAAIAA + gACAgAAAgICAAMDAwAAAAP8AAAAAAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAADMzAAAA + AAAAAAAAA/+4szMAAAAAAAAAAz+Li4uDMzAAAAAAAz+4uLi4uLMzAAAAAz+Li4uLi4uHAAAAA/P4uLi4 + uLi3cAAAA/P7i4uLh4uH8AAAA/P4uLi4eHi3twAAA/s/i4uHiIeH+wAAA/g/+Lh4iIh3vzAAA/uDP/// + iIiH+7AAA/i4szMz////f7MAA/uLgP/4MzMz//8AA/i4D/+I+I+IczMAA/uA//j4j4j/+HAAA/8P/4iP + iPj/+AAAADD///+I+I//gAAAAAB////4j//4AAAAAAAH////iP/wAAAAAAAAf//wj/8AAAAAAAAAB49/ + CPAAAAAAAAAAAHf/8AAAAAAAAAAAAAd3dwAAAAAAw////8A///+AAf//gAA//4AAH/+AAB//gAAP/4AA + D/+AAAf/gAAH/4AAA/+AAAP/gAAB/4AAAf+AAAP/gAAD/4AAB//AAA//8AAf//gAP//8AH///gD///8B + ////g///KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAAAAAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA + AAAAAAAAAzMzMzMzMzA/P7i4uLi4MD8/i4uLi4swPz+4uLi4uDA/P4uLi4uLMD8/uLi4uLgwPz////// + /zA/MzMzMzMzAD+4f/////cAP4t/iIj/9wAD/3////AAAAAzf4iI9/gAAAB////3gAAAAHd3d3dwAP// + ///AAf//gAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAB//8AAf//AAH//4AB///AAf//8AP///AH + //8oAAAAMAAAAGAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAA//v/AHNx + cwDWmpwAvY6MAP/z7wCUjowA/+/nAM6ehADvupwA1qaMAJyCcwDWspwA99O9AP/r3gD3vpQA57KMAPfb + xgD/484A/+fWAPfPrQD/17UA/9u9AO/PtQD/x5QA//PnAP/37wD/+/cA/8uUAP/PnAD/06UA/9etAO/L + pQD/27UA/9+9AM62nAD/48YA/+fOAPfjzgD/69YA/+/eAP/DewD/x4QA/7ZaAP/TnAD3z5wA/9elAPfT + pQD/pikA/9ulAO/XtQD/58YA/9+tAP/jrQD/9+cA/+e1AP/vzgD/670A/++9AP/31gD/98YA1tO9AP// + 9wDO18YAvcu1AMbjzgDv+/cApa6tAK3r5wCc+/cAtd/eAJT//wCc//8Apf//AK3//wC9//8Axv//AM7/ + /wDW//8A3v//AOf//wDv//8A9///AJT7/wCc+/8Atfv/AK3b3gCM9/8AlPf/AIzz/wCl9/8AnOfvAHPn + 9wCE7/8AnPP/AIS+xgCUx84Aa9vvAITr/wCM6/8AtfP/AOf7/wBCpr0AhOf/AM7v9wAYrtYAOYacAFrP + 7wBj1/cAWq7GAHvj/wB7z+cAUnmEALXv/wAAns4AAJbGAAiezgAIirUAEKbWABCSvQAhst4AIZ7GACmy + 3gAprtYAMbbeADGu1gA5vucAMaLGAEq63gBSy+8Aa9v/AHPf/wB73/8AjNfvAJTT5wCc2+8AzvP/AACa + zgAAksYACKLWAAiWxgAIjr0AEKLWABCezgAQfaUAGKreABim1gAhptYAGHmcACGizgAhlr0AIYqtADG2 + 5wBCw+8AKXmUAEK23gBKw+8AQqrOAFrP9wBSut4Aa9f/AGvT9wBjvt4Ac9v/AKXn/wCl2+8A7/v/ABii + 1gAhqt4AKbLnADGy5wBCvu8AUsf3AGPT/wBavucAQn2UAHPX/wBzx+cAhNv/AIzT7wCc4/8Avef3ANbz + /wBCuu8ASr7vAFLD9wBax/cAY8//AGvT/wBz0/8Ac8/3AHvX/wCc2/cAY8v/AGvP/wCE1/8AlNv/AJTX + 9wCc3/8Ard/3AOf3/wBry/8A3vP/AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycnJycAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi6GnlIt3nJycnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + lAD/8+cA//fvAP/79wD/y5QA/8+cAP/TpQD/160A78ulAP/btQD/370AzracAP/jxgD/584A9+POAP/r + 1gD/794A/8N7AP/HhAD/tloA/9OcAPfPnAD/16UA99OlAP+mKQD/26UA79e1AP/nxgD/360A/+OtAP/3 + 5wD/57UA/+/OAP/rvQD/770A//fWAP/3xgDW070A///3AM7XxgC9y7UAxuPOAO/79wClrq0ArevnAJz7 + 9wC1394AlP//AJz//wCl//8Arf//AL3//wDG//8Azv//ANb//wDe//8A5///AO///wD3//8AlPv/AJz7 + /wC1+/8ArdveAIz3/wCU9/8AjPP/AKX3/wCc5+8Ac+f3AITv/wCc8/8AhL7GAJTHzgBr2+8AhOv/AIzr + /wC18/8A5/v/AEKmvQCE5/8Azu/3ABiu1gA5hpwAWs/vAGPX9wBarsYAe+P/AHvP5wBSeYQAte//AACe + zgAAlsYACJ7OAAiKtQAQptYAEJK9ACGy3gAhnsYAKbLeACmu1gAxtt4AMa7WADm+5wAxosYASrreAFLL + 7wBr2/8Ac9//AHvf/wCM1+8AlNPnAJzb7wDO8/8AAJrOAACSxgAIotYACJbGAAiOvQAQotYAEJ7OABB9 + pQAYqt4AGKbWACGm1gAYeZwAIaLOACGWvQAhiq0AMbbnAELD7wApeZQAQrbeAErD7wBCqs4AWs/3AFK6 + 3gBr1/8Aa9P3AGO+3gBz2/8Apef/AKXb7wDv+/8AGKLWACGq3gApsucAMbLnAEK+7wBSx/cAY9P/AFq+ + 5wBCfZQAc9f/AHPH5wCE2/8AjNPvAJzj/wC95/cA1vP/AEK67wBKvu8AUsP3AFrH9wBjz/8Aa9P/AHPT + /wBzz/cAe9f/AJzb9wBjy/8Aa8//AITX/wCU2/8AlNf3AJzf/wCt3/cA5/f/AGvL/wDe8/8A////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/FrmReportSelect.vb b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.vb new file mode 100644 index 0000000..92a58be --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/FrmReportSelect.vb @@ -0,0 +1,1161 @@ +Imports System.Windows.Forms +Imports System.Drawing +Public Class FrmReportSelect + +#Region "Deklarationen" + Dim auswertungen As New TKB.Auswertung.clsAuswertung + Dim CtrlList As New List(Of Control) + Dim splits() As String + Dim dr As DataRow + Dim s As String = "" + Dim SQLWhere As String = "" + Friend selectPoint As New System.Drawing.Point() + Dim Auswertungsdaten As New DataSet + Dim On_Load As Boolean = False + Dim DescriptionToolTip As New ToolTip + Dim WhereModified As Boolean = False + Dim sec As New Utils.MySecurity + Dim cblist As New Collection +#End Region + +#Region "Formular" + ''' + ''' Formular schliessen + ''' + ''' + ''' + ''' + Private Sub btnAbbruch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + Me.Close() + End Sub + ''' + ''' Formualr schliessen + ''' + ''' + ''' + ''' + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + btnAbbruch_Click(sender, e) + End Sub + + ''' + ''' Formular schliessen + ''' + ''' + ''' + ''' + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + btnAbbruch_Click(sender, e) + End Sub +#End Region + + Private Sub FrmReportSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Try + auswertungen.Get_Auswertungen(Me.TreeAuswertungen) + Me.TreeAuswertungen.ExpandAll() + Me.TreeAuswertungen.SelectedNode = Me.TreeAuswertungen.Nodes(0) + Me.TreeAuswertungen.SelectedNode.ExpandAll() + Catch + End Try + sec.Set_Form_Security(Me) + End Sub + + Private Sub btnAufbereiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAufbereitenCSV.Click + Me.Cursor = Cursors.WaitCursor + + If Me.WhereModified = False Then Get_SQLWhere() + Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value) + Dim f As New frmAuswertung(Me.TreeAuswertungen.SelectedNode.Text, Me.Auswertungsdaten) + f.MdiParent = Me.MdiParent + Me.Cursor = Cursors.Default + f.Show() + End Sub + + Private Sub BtnAufbereitenCR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAufbereitenCR.Click + showreport() + End Sub + Public Sub showreport() + Me.Cursor = Cursors.WaitCursor + Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text + Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text + + If Me.WhereModified = False Then Get_SQLWhere() + Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value) + Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, False) + f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text + f.MdiParent = Me.MdiParent + Me.Cursor = Cursors.Default + f.Show() + f.DisplayReport() + End Sub + + Private Sub TreeAuswertungen_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeAuswertungen.DoubleClick + 'If Me.TreeAuswertungen.SelectedNode.Tag > -1 Then btnAufbereiten_Click(sender, e) + End Sub + + ''' + ''' Mousedown-Ereignis auf dem Tree + ''' + ''' + ''' + ''' + Private Sub TreeStruktur_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeAuswertungen.MouseDown + Try + Dim mouseEvents As MouseEventArgs + mouseEvents = e + selectPoint.Y = mouseEvents.Y + selectPoint.X = mouseEvents.X + Me.TreeAuswertungen.SelectedNode = Me.TreeAuswertungen.GetNodeAt(selectPoint) + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub + ''' + ''' Nach Selektion eines Nodes Parameter neu aufbereiten und Auswerungsmglichkeit (CR/CSV) anzeigen + ''' + ''' + ''' + ''' + Private Sub TreeAuswertungen_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeAuswertungen.AfterSelect + Me.On_Load = True + Me.WhereModified = False + Me.PictureBox1.Visible = False + Try + Me.txtTitel1.Text = Me.TreeAuswertungen.SelectedNode.Text + Me.txtTitel2.Text = "" + Me.checkboxprintparam.Checked = True + Me.txtbeschreibung.Text = Me.TreeAuswertungen.SelectedNode.ToolTipText + DescriptionToolTip.SetToolTip(Me.txtbeschreibung, Me.txtbeschreibung.Text) + If Me.TreeAuswertungen.SelectedNode.Tag < 1 Then + Me.GrpParameter.Enabled = False + Me.BtnAufbereitenCR.Enabled = False + Me.btnAufbereitenCSV.Enabled = False + Me.grpcr.Enabled = False + Me.grpdb.Enabled = False + Exit Sub + End If + + Me.auswertungen.Get_Auswertung(Me.TreeAuswertungen.SelectedNode.Tag) + If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then + Me.ComboboxMAParameter.Visible = True + Try + Me.ComboboxMAParameter.DataSource = Nothing + Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter + Me.ComboboxMAParameter.DisplayMember = "Beschreibung" + Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr" + Me.ComboboxMAParameter.SelectedIndex = -1 + Catch ex As Exception + End Try + Else + Me.ComboboxMAParameter.Visible = False + End If + If Me.auswertungen.AuswertungParameter.Rows.Count = 0 Then + Me.GrpParameter.Enabled = False + Else + Me.GrpParameter.Enabled = True + End If + If Me.auswertungen.Auswertung.bReport.Value = True Then + Me.BtnAufbereitenCR.Enabled = True + Me.grpcr.Enabled = True + Else + Me.BtnAufbereitenCR.Enabled = False + Me.grpcr.Enabled = False + End If + If Me.auswertungen.Auswertung.bExcel_Report.Value = True Then + Me.btnAufbereitenCSV.Enabled = True + Me.grpdb.Enabled = True + Else + Me.btnAufbereitenCSV.Enabled = False + Me.grpdb.Enabled = False + End If + + Init_Params() + + Catch ex As Exception + End Try + Me.On_Load = False + End Sub + +#Region "Parameters" + +#Region "Utils" + ''' + ''' Sucht in den Base-Controls smtliche Controls mit dem Namen in "Key" (Wildcards * mglich) und listet + ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung + ''' + ''' Base-Contrlo (z.B. aktuelles Formular + ''' Schlssel welcher gesucht werden soll + ''' Liste der gefundenen Objekte + ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + ''' + ''' + Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean + If L Is Nothing Then L = New List(Of Control) + Dim Gut As Boolean + Dim ReturnFlag As Boolean = False + If Key IsNot Nothing Then Key = Key.ToLower + + If BaseControl.HasChildren = True Then + For Each ctl As Control In BaseControl.Controls + Gut = False + If Key Is Nothing Then + Gut = True + Else + If ctl.Name.Length >= Key.Length Then + Key = Key.ToLower + If Key.StartsWith("*") Then + If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True + ElseIf Key.EndsWith("*") Then + If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True + Else + If Key = ctl.Name.ToLower Then Gut = True + End If + End If + End If + + If Gut = True Then + L.Add(ctl) + If ReturnAtFirstElement = True Then ReturnFlag = True + End If + If ReturnFlag = False Then + Call GetControl(ctl, Key, L) + End If + Next + End If + + If L.Count - 1 > -1 Then + Return True + Else + Return False + End If + End Function +#End Region + + ''' + ''' Parameter initialisieren + ''' + ''' + Private Sub Init_Params(Optional ByVal Initialize_ComboBox As Boolean = True) + If Initialize_ComboBox = True Then Me.ComboboxMAParameter.SelectedIndex = -1 + Me.CtrlList.Clear() + Me.GetControl(Me, "cb*", CtrlList) + For Each x As ComboBox In CtrlList + Try + x.DataSource = Nothing + x.Items.Clear() + x.Enabled = False + x.Text = "" + Catch ex As Exception + End Try + Next + + CtrlList.Clear() + Me.GetControl(Me, "cbandor*", CtrlList) + For Each x As ComboBox In CtrlList + x.Items.Clear() + x.Items.Add("und") + x.Items.Add("oder") + Next + + Me.cbparam1.Enabled = True + Me.cbop1.Enabled = True + Me.cbvalue1.Enabled = True + Me.cbandor1.Enabled = True + + Me.CtrlList.Clear() + Me.GetControl(Me, "cbparam*", CtrlList) + For Each x As ComboBox In CtrlList + For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows + x.Items.Add(dr.Item("Bezeichnung")) + Next + Next + End Sub + + + + + + + + + + + ''' + ''' Selektion Parameter + ''' + ''' + ''' + ''' + Private Sub cbparam1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbparam1.SelectedIndexChanged, cbparam2.SelectedIndexChanged, _ + cbparam3.SelectedIndexChanged, cbparam4.SelectedIndexChanged, cbparam5.SelectedIndexChanged, cbparam6.SelectedIndexChanged, cbparam7.SelectedIndexChanged + If Me.On_Load Then Exit Sub + Me.WhereModified = False + Me.PictureBox1.Visible = False + Me.cblist.Clear() + Dim s As String = ParamNr(sender.name) + Dim cbop As String = "cbop" + s + dr = Findrow(sender.text) + + 'Operatoren festlegen + CtrlList.Clear() + Me.GetControl(Me, "cbop" + s, CtrlList) + For Each ob As ComboBox In CtrlList + ob.Items.Clear() + splits = dr.Item("Operator").ToString.Split(";") + For Each x As String In splits + ob.Items.Add(x) + Next + ob.SelectedIndex = 0 + Next + + ' Wenn ein Datenbezug ab DB oder eingegeben, dann aufbereiten + If dr.Item("Feldbezug").ToString <> "" Then + 'Feldbezug ab DB + If UCase(dr.Item("feldbezug").ToString.Substring(0, 3)) = "SP_" Then + Dim fb As New DataTable + fb = Me.auswertungen.get_rptparam_values(dr.Item("Feldbezug")) + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.DataSource = Nothing + x.AutoCompleteCustomSource.Clear() + x.Items.Clear() + x.DataSource = fb + x.DisplayMember = "Bezeichnung" + x.ValueMember = "KeyValue" + x.AutoCompleteSource = AutoCompleteSource.CustomSource + x.AutoCompleteMode = AutoCompleteMode.SuggestAppend + For Each r As DataRow In fb.Rows + x.AutoCompleteCustomSource.Add(r("Keyvalue").ToString + " " + r("Bezeichnung").ToString) + cblist.Add(New cbe(x.Name, r("Keyvalue").ToString, r("Keyvalue").ToString + " " + r("Bezeichnung").ToString)) + + x.AutoCompleteCustomSource.Add(r("keyvalue").ToString) + cblist.Add(New cbe(x.Name, r("Keyvalue").ToString, r("Keyvalue").ToString)) + + x.AutoCompleteCustomSource.Add(r("Searchvalue1").ToString) + cblist.Add(New cbe(x.Name, r("Keyvalue").ToString, r("Searchvalue1").ToString)) + + x.AutoCompleteCustomSource.Add(r("Keyvalue").ToString + " " + r("Searchvalue1").ToString) + cblist.Add(New cbe(x.Name, r("Keyvalue").ToString, r("Keyvalue").ToString + " " + r("Searchvalue1").ToString)) + Next + Next + + Else + 'Fixer Feldbezug + If dr.Item("Feldbezug").ToString <> "" Then + Dim selval() As String = dr.Item("Feldbezug").ToString.Split(";") + Dim cbvalue As String = "cbvalue" + s + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.DataSource = Nothing + x.Items.Clear() + For Each ss As String In selval + x.Items.Add(ss) + Next + Next + End If + End If + + End If + End Sub + + + + + + + ''' + ''' Datenrow in den zur Auswertung gehrenden Parameterliste suchen + ''' + ''' + ''' + ''' + Private Function Findrow(ByVal key As String) As DataRow + For Each dr As DataRow In Me.auswertungen.AuswertungParameter.Rows + If dr.Item("Bezeichnung") = key Then + Return dr + End If + Next + End Function + + 'Param-Nr auslesen + Private Function ParamNr(ByVal s As String) As String + Return s.Substring(Len(s) - 1, 1) + End Function + ''' + ''' Where Bedingung fr die Abfrage zusammenstellen + ''' + ''' + Private Sub Get_SQLWhere() + Me.auswertungen.ParamCollection.Clear() + Dim s As String + Dim i As Integer + Me.SQLWhere = "" + + If Me.cbparam1.Text <> "" And Me.cbop1.Text <> "" And Me.cbvalue1.Text <> "" Then + Me.auswertungen.ParamCollection.Add(cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text) + s = cbparam1.Text & " " & cbop1.Text & " " & cbvalue1.Text + SQLWhere = SQLWhere + get_where(1) + End If + If Me.cbandor1.Text <> "" And Me.cbparam2.Text <> "" And Me.cbop2.Text <> "" And Me.cbvalue2.Text <> "" Then + If Me.cbandor1.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(2) + If Me.cbandor1.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(2) + Me.auswertungen.ParamCollection.Add(cbandor1.Text + " " + cbparam2.Text & " " & cbop2.Text & " " & cbvalue2.Text) + s = s & "' & Chr(10) & Chr(13) & '" & cbandor1.Text & " " & cbparam2.Text & " " & cbop2.Text & " " & cbvalue2.Text + End If + If Me.cbandor2.Text <> "" And Me.cbparam3.Text <> "" And Me.cbop3.Text <> "" And Me.cbvalue3.Text <> "" Then + If Me.cbandor2.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(3) + If Me.cbandor2.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(3) + Me.auswertungen.ParamCollection.Add(cbandor2.Text + " " + cbparam3.Text & " " & cbop3.Text & " " & cbvalue3.Text) + s = s + " " + cbandor2.Text + " " + cbparam3.Text & " " & cbop3.Text & " " & cbvalue3.Text + End If + If Me.cbandor3.Text <> "" And Me.cbparam4.Text <> "" And Me.cbop4.Text <> "" And Me.cbvalue4.Text <> "" Then + If Me.cbandor3.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(4) + If Me.cbandor3.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(4) + Me.auswertungen.ParamCollection.Add(cbandor3.Text + " " + cbparam4.Text & " " & cbop4.Text & " " & cbvalue4.Text) + s = s + " " + cbandor3.Text + " " + cbparam4.Text & " " & cbop4.Text & " " & cbvalue4.Text + End If + + If Me.cbandor4.Text <> "" And Me.cbparam5.Text <> "" And Me.cbop5.Text <> "" And Me.cbvalue5.Text <> "" Then + If Me.cbandor4.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(5) + If Me.cbandor4.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(5) + Me.auswertungen.ParamCollection.Add(cbandor4.Text + " " + cbparam5.Text & " " & cbop5.Text & " " & cbvalue5.Text) + s = s + " " + cbandor4.Text + " " + cbparam5.Text & " " & cbop5.Text & " " & cbvalue5.Text + End If + If Me.cbandor5.Text <> "" And Me.cbparam6.Text <> "" And Me.cbop6.Text <> "" And Me.cbvalue6.Text <> "" Then + If Me.cbandor5.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(6) + If Me.cbandor5.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(6) + Me.auswertungen.ParamCollection.Add(cbandor5.Text + " " + cbparam6.Text & " " & cbop6.Text & " " & cbvalue6.Text) + s = s + " " + cbandor5.Text + " " + cbparam6.Text & " " & cbop6.Text & " " & cbvalue6.Text + End If + If Me.cbandor6.Text <> "" And Me.cbparam7.Text <> "" And Me.cbop7.Text <> "" And Me.cbvalue7.Text <> "" Then + If Me.cbandor6.Text = "und" Then SQLWhere = SQLWhere + " and " + get_where(7) + If Me.cbandor6.Text = "oder" Then SQLWhere = SQLWhere + " or " + get_where(7) + Me.auswertungen.ParamCollection.Add(cbandor6.Text + " " + cbparam7.Text & " " & cbop7.Text & " " & cbvalue7.Text) + s = s + " " + cbandor6.Text + " " + cbparam7.Text & " " & cbop7.Text & " " & cbvalue7.Text + End If + Me.auswertungen.FullParam = s + End Sub + + ''' + ''' Where zusammenstellen + ''' + ''' + ''' + ''' + Private Function get_where(ByVal nr As Integer) As String + Dim param As New ComboBox + Dim op As New ComboBox + Dim val As New ComboBox + Dim wertvalue As String = "" + Dim wertdbfeld As String = "" + Dim wertop As String = op.Text + + CtrlList.Clear() + Me.GetControl(Me, "cbparam" + Trim(Str(nr)), CtrlList) + param = CtrlList.Item(0) + + CtrlList.Clear() + Me.GetControl(Me, "cbop" + Trim(Str(nr)), CtrlList) + op = CtrlList.Item(0) + + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList) + val = CtrlList.Item(0) + + dr = Me.Findrow(param.Text) + + wertop = op.Text + + Dim paramtyp As String = "" + Dim paramsplit() As String = dr.Item("Paramtype").ToString.Split(";") + + Dim dbfeldsplit() As String = dr.Item("dbfeldname").ToString.Split(";") + If dbfeldsplit.Length > 1 And val.SelectedIndex > -1 Then + wertvalue = val.SelectedValue + wertdbfeld = dbfeldsplit(0) + paramtyp = paramsplit(0) + Else + wertvalue = val.Text + If dbfeldsplit.Length > 1 Then + wertdbfeld = dbfeldsplit(1) + paramtyp = paramsplit(1) + Else + wertdbfeld = dbfeldsplit(0) + paramtyp = paramsplit(0) + End If + End If + + Select Case UCase(paramtyp) + Case "VARCHAR", "STRING", "CHAR" + Return wertdbfeld + " " + wertop + " '" + wertvalue + "'" + Case "INTEGER", "INT" + Return wertdbfeld + " " + wertop + " " + wertvalue + "" + Case "DATEPART" + Select Case wertvalue + Case "letzte Woche" + Return wertdbfeld & " between dbo.get_dateperiode('LastWeek',1) and dbo.get_dateperiode('LastWeek',0)" + Case "letzter Monat" + Return wertdbfeld & " between dbo.get_dateperiode('LastMonth',1) and dbo.get_dateperiode('LastMonth',0)" + Case "letztes Quartal" + Return wertdbfeld & " between dbo.get_dateperiode('LastQuarter',1) and dbo.get_dateperiode('LastQuarter',0)" + Case "letztes Halbjahr" + Return wertdbfeld & " between dbo.get_dateperiode('LastHalfYear',1) and dbo.get_dateperiode('LastHalfYear',0)" + Case "letztes Jahr" + Return wertdbfeld & " between dbo.get_dateperiode('LastYear',1) and dbo.get_dateperiode('LastYear',0)" + Case "aktuelle Woche" + Return wertdbfeld & " between dbo.get_dateperiode('ActWeek',1) and dbo.get_dateperiode('ActWeek',0)" + Case "aktueller Monat" + Return wertdbfeld & " between dbo.get_dateperiode('ActMonth',1) and dbo.get_dateperiode('ActMonth',0)" + Case "aktuelles Quartal" + Return wertdbfeld & " between dbo.get_dateperiode('ActQuarter',1) and dbo.get_dateperiode('ActQuarter',0)" + Case "aktuelles Halbjahr" + Return wertdbfeld & " between dbo.get_dateperiode('ActHalfYear',1) and dbo.get_dateperiode('ActHalfYear',0)" + Case "aktuelles Jahr" + Return wertdbfeld & " between dbo.get_dateperiode('ActYear',1) and dbo.get_dateperiode('ActYear',0)" + End Select + 'Dim dtfrom As DateTime + 'Dim dtto As DateTime + 'dtfrom = Today + 'CalcDate(wertvalue, dtfrom, dtto) + 'Return wertdbfeld & " between '" & Formateddate(dtfrom, True) & "' and '" & Formateddate(dtto, False) + "'" + 'Dim dp As String + 'Select Case wertvalue + ' Case "letzte Woche" + ' CalcDate(wertvalue, dtfrom, dtto) + ' Case "letzte Woche" + ' Return "cast(datepart(week," & wertdbfeld & ") as int) " & wertop & " cast(datepart(week, getdate()) as int) - 1" + ' Case "letzer Monat" + ' Return "cast(datepart(month," & wertdbfeld & ") as int) " & wertop & " cast(datepart(month, getdate()) as int) - 1" + ' Case "letztes Quartal" + ' Return "cast(datepart(quarter," & wertdbfeld & ") as int) " & wertop & " cast(datepart(quarter, getdate()) as int) - 1" + ' Case "letztes Jahr" + ' Return "year(" & wertdbfeld & ") " & wertop & " year(getdate()) - 1" + ' Case "aktuelle Woche" + ' Return "cast(datepart(week," & wertdbfeld & ") as int) " & wertop & " cast(datepart(week, getdate()) as int)" + ' Case "aktueller Monat" + ' Return "cast(datepart(month," & wertdbfeld & ") as int) " & wertop & " cast(datepart(month, getdate()) as int)" + ' Case "aktuelles Quartal" + ' Return "cast(datepart(quarter," & wertdbfeld & ") as int) " & wertop & " cast(datepart(quarter, getdate()) as int)" + ' Case "aktuelles Jahr" + ' Return "year(" & wertdbfeld & ") " & wertop & " year(getdate())" + 'End Select + Case "DATUM" + Select Case wertop + Case "=" + Return wertdbfeld + " > convert(datetime,'" + wertvalue + " 00:00:00',104) and " + wertdbfeld + " < convert(datetime,'" + wertvalue + " 23:59:59',104)" + Case "<>" + Return wertdbfeld + " < convert(datetime,'" + wertvalue + " 00:00:00',104) and " + wertdbfeld + " > convert(datetime,'" + wertvalue + " 23:59:59',104)" + Case ">=" + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)" + Case ">" + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 23:59:59',104)" + Case "<" + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)" + Case "<=" + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 23:59:59',104)" + Case Else + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)" + End Select + Case "DATUM+1" + Dim d As DateTime = wertvalue + d = DateAdd(DateInterval.Day, 1, d) + wertvalue = d.ToString + Return wertdbfeld + " " + wertop + " convert(datetime,'" + wertvalue + " 00:00:00',104)" + Case "BOOLEAN" + If UCase(wertvalue) = "TRUE" Or UCase(wertvalue) = "JA" Then + Return wertdbfeld + " " + wertop + " 1" + Else + Return wertdbfeld + " " + wertop + " 0" + End If + Case Else + End Select + + End Function +#End Region + + + + Private Sub cbvalue1_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbvalue1.DropDown, cbvalue2.DropDown, _ + cbvalue3.DropDown, cbvalue4.DropDown, cbvalue5.DropDown, cbvalue6.DropDown, cbvalue7.DropDown + Try + Dim s As String = ParamNr(sender.name) + Dim nr As Integer = s + Dim param As New ComboBox + Dim op As New ComboBox + Dim val As New ComboBox + CtrlList.Clear() + Me.GetControl(Me, "cbparam" + Trim(Str(nr)), CtrlList) + param = CtrlList.Item(0) + + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList) + val = CtrlList.Item(0) + + dr = Me.Findrow(param.Text) + + If dr.Item("Paramtype") = "Datum" Then + Dim LocalMousePosition As Point + LocalMousePosition = val.PointToClient(Cursor.Position) + + Dim f As New frmCalendar + + f.Top = Me.Top + val.Top + 200 + f.Left = Me.Left + val.Width + 399 + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList) + param = CtrlList.Item(0) + param.Text = f.MonthCalendar1.SelectionRange.Start.Date + param.Focus() + End If + End If + Catch ex As Exception + End Try + End Sub + + Private Sub BtnInitParam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInitParam.Click + Me.Init_Params() + End Sub + + Private Sub cbandor1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbandor1.SelectedIndexChanged, _ + cbandor2.SelectedIndexChanged, cbandor3.SelectedIndexChanged, cbandor3.SelectedIndexChanged, cbandor4.SelectedIndexChanged, cbandor5.SelectedIndexChanged, _ + cbandor6.SelectedIndexChanged + If Me.On_Load Then Exit Sub + Me.WhereModified = False + Me.PictureBox1.Visible = False + s = Me.ParamNr(sender.name) + s = s + 1 + CtrlList.Clear() + Me.GetControl(Me, "cbparam" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Enabled = True + Next + CtrlList.Clear() + Me.GetControl(Me, "cbop" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Enabled = True + Next + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Enabled = True + Next + CtrlList.Clear() + Me.GetControl(Me, "cbandor" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Enabled = True + Next + End Sub + + Private Sub Init_ParamRow(ByVal s As String) + s = s + 1 + CtrlList.Clear() + Me.GetControl(Me, "cbparam" + s, CtrlList) + For Each x As ComboBox In CtrlList + Try + x.Text = "" + Catch ex As Exception + End Try + x.Enabled = False + Next + CtrlList.Clear() + Me.GetControl(Me, "cbop" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Text = "" + x.Enabled = False + Next + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Text = "" + x.Enabled = False + Next + CtrlList.Clear() + Me.GetControl(Me, "cbandor" + s, CtrlList) + For Each x As ComboBox In CtrlList + x.Text = "" + Next + End Sub + + + Private Sub BtnParamDel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnParamDel1.Click, BtnParamDel2.Click, _ + BtnParamDel3.Click, BtnParamDel4.Click, BtnParamDel5.Click, BtnParamDel6.Click + Init_ParamRow(Me.ParamNr(sender.name)) + End Sub + + Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click + Me.On_Load = True + Dim s As String + CtrlList.Clear() + Me.GetControl(Me, "cbandor*", CtrlList) + For Each x As ComboBox In CtrlList + s = s + ParamNr(x.Name) + "~" + x.Text + ";" + Next + s = s + "|" + CtrlList.Clear() + Me.GetControl(Me, "cbparam*", CtrlList) + For Each x As ComboBox In CtrlList + s = s + ParamNr(x.Name) + "~" + x.Text + ";" + Next + s = s + "|" + CtrlList.Clear() + Me.GetControl(Me, "cbop*", CtrlList) + For Each x As ComboBox In CtrlList + s = s + ParamNr(x.Name) + "~" + x.Text + ";" + Next + s = s + "|" + CtrlList.Clear() + Me.GetControl(Me, "cbval*", CtrlList) + For Each x As ComboBox In CtrlList + s = s + ParamNr(x.Name) + "~" + x.Text + ";" + Next + Dim Bez As String = InputBox("Bezeichnung fr die Parameter:", "Auswertungsparameter sichern") + If Me.WhereModified = False Then + If Bez <> "" Then Me.auswertungen.Save_MAParameter(Me.auswertungen.Auswertung.iAuswertungNr.Value, Bez, s, Me.txtTitel1.Text, Me.txtTitel2.Text, Me.checkboxprintparam.Checked, "") + Else + If Bez <> "" Then Me.auswertungen.Save_MAParameter(Me.auswertungen.Auswertung.iAuswertungNr.Value, Bez, s, Me.txtTitel1.Text, Me.txtTitel2.Text, Me.checkboxprintparam.Checked, Me.SQLWhere) + End If + If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then + Me.ComboboxMAParameter.Visible = True + Try + Me.ComboboxMAParameter.DataSource = Nothing + Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter + Me.ComboboxMAParameter.DisplayMember = "Beschreibung" + Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr" + Catch ex As Exception + End Try + Else + Me.ComboboxMAParameter.Visible = False + End If + Me.On_Load = False + Try + For Each dr As DataRow In Me.auswertungen.MitarbeiterAuswertungsparameter.Rows + If dr.Item("Beschreibung") = Bez Then + Me.ComboboxMAParameter.SelectedValue = dr.Item(0) + Me.ComboboxMAParameter_SelectedIndexChanged(sender, e) + End If + Next + Catch + End Try + + End Sub + + Private Sub ComboboxMAParameter_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboboxMAParameter.SelectedIndexChanged + If Me.On_Load = True Then Exit Sub + Dim wheremod As Boolean = False + Me.WhereModified = False + Me.PictureBox1.Visible = False + Try + Dim s As String = "" + For Each dr As DataRow In Me.auswertungen.MitarbeiterAuswertungsparameter.Rows + If dr.Item("Mitarbeiter_AuswertungsparameterNr") = Me.ComboboxMAParameter.SelectedValue Then + s = dr.Item("Parameterdaten") + Me.txtTitel1.Text = dr.Item("Titelzeile1") + Me.txtTitel2.Text = dr.Item("Titelzeile2") + Me.checkboxprintparam.Checked = dr.Item("ParamPrint") + If dr.Item("SQLWhere").ToString <> "" Then + Me.SQLWhere = dr.Item("SQLWhere").ToString + Me.WhereModified = True + wheremod = True + Me.PictureBox1.Visible = True + End If + End If + Next + If s = "" Then Exit Sub + + Me.Init_Params(False) + + + Dim grp() As String = s.Split("|") + Dim andor As String = grp(0) + Dim param As String = grp(1) + Dim op As String = grp(2) + Dim val As String = grp(3) + + Dim tmpvalue() As String + Dim ValueItem() As String + Dim tmpparam() As String + Dim ParamItem() As String + Dim tmpop() As String + Dim opItem() As String + Dim tmpandor() As String + Dim andorItem() As String + Dim tmpcbidx As Integer + Dim vals() As String + + Dim CTLIndex As Integer + Dim CTLAndOr As String + Dim CTLParam As String + Dim CTLOP As String + Dim CTLValue As String + Dim CTLSplit() As String + Dim SelIndexSet As Boolean + + + Dim i As Integer + For i = 6 To 0 Step -1 + tmpvalue = val.ToString.Split(";") + If tmpvalue(i).ToString.Length > 2 Then + ValueItem = tmpvalue(i).Split("~") + CTLIndex = ValueItem(0) + CTLValue = ValueItem(1) + + tmpparam = param.Split(";") + ParamItem = tmpparam(i).Split("~") + CTLParam = ParamItem(1) + + tmpop = op.Split(";") + opItem = tmpop(i).Split("~") + CTLOP = opItem(1) + + If i > 1 Then + tmpandor = andor.Split(";") + andorItem = tmpandor(i - 1).Split("~") + CTLAndOr = andorItem(1) + End If + + 'Parameter + Dim l As New List(Of Control) + Me.GetControl(Me, "cbparam" + Trim(Str(CTLIndex)), l) + Dim x As ComboBox = l(0) + + SelIndexSet = False + Dim ii As Integer = 0 + For ii = 0 To x.Items.Count - 1 + If x.Items(ii).ToString = CTLParam Then + x.SelectedIndex = ii + SelIndexSet = True + End If + Next + If SelIndexSet = False Then x.Text = CTLParam + + 'Operator + l.Clear() + Me.GetControl(Me, "cbop" + Trim(Str(CTLIndex)), l) + x = l(0) + SelIndexSet = False + For ii = 0 To x.Items.Count - 1 + If x.Items(ii).ToString = CTLOP Then + x.SelectedIndex = ii + SelIndexSet = True + End If + Next + If SelIndexSet = False Then x.Text = CTLOP + + 'value + l.Clear() + Me.GetControl(Me, "cbvalue" + Trim(Str(CTLIndex)), l) + x = l(0) + SelIndexSet = False + For ii = 0 To x.Items.Count - 1 + If x.Items(ii).ToString = CTLValue Then + x.SelectedIndex = ii + SelIndexSet = True + End If + Next + If SelIndexSet = False Then x.Text = CTLValue + + 'andor + l.Clear() + Me.GetControl(Me, "cbandor" + Trim(Str(CTLIndex)), l) + x = l(0) + SelIndexSet = False + For ii = 0 To x.Items.Count - 1 + If x.Items(ii).ToString = CTLAndOr Then + x.SelectedIndex = ii + SelIndexSet = True + End If + Next + If SelIndexSet = False Then x.Text = CTLAndOr + + End If + Next + + If wheremod = True Then + Me.WhereModified = True + Me.PictureBox1.Visible = True + End If + + + Catch ex As Exception + End Try + End Sub + + + + + + + Private Sub ComboboxMAParameter_VisibleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboboxMAParameter.VisibleChanged + Me.btnDeleteSavedParam.Visible = Me.ComboboxMAParameter.Visible + End Sub + + Private Sub btnDeleteSavedParam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteSavedParam.Click + Me.On_Load = True + If Me.ComboboxMAParameter.SelectedIndex = -1 Then Exit Sub + + Me.auswertungen.Delete_Parameter(Me.ComboboxMAParameter.SelectedValue) + 'Me.Init_Params() + Me.txtTitel1.Text = Me.TreeAuswertungen.SelectedNode.Text + Me.txtTitel2.Text = "" + Me.checkboxprintparam.Checked = True + + If Me.auswertungen.MitarbeiterAuswertungsparameter.Rows.Count > 0 Then + Me.ComboboxMAParameter.Visible = True + Try + Me.ComboboxMAParameter.DataSource = Nothing + Me.ComboboxMAParameter.DataSource = Me.auswertungen.MitarbeiterAuswertungsparameter + Me.ComboboxMAParameter.DisplayMember = "Beschreibung" + Me.ComboboxMAParameter.ValueMember = "Mitarbeiter_AuswertungsparameterNr" + Me.ComboboxMAParameter.SelectedIndex = -1 + Catch ex As Exception + End Try + Me.On_Load = False + Else + Me.ComboboxMAParameter.Visible = False + End If + + End Sub + + Private Sub AlleKnotenSchliessenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlleKnotenSchliessenToolStripMenuItem.Click + Me.TreeAuswertungen.CollapseAll() + End Sub + + Private Sub AlleKnotenffnenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlleKnotenffnenToolStripMenuItem.Click + Me.TreeAuswertungen.ExpandAll() + End Sub + + '#Region "Datumsfunktionen" + + ' Private Function CalcDate(ByVal typ As String, ByRef dtfrom As DateTime, ByRef dtto As DateTime) + ' Select Case UCase(typ) + ' Case "LETZTE WOCHE" + ' GetDates(dtfrom, dtto) + ' Case "LETZTER MONAT" + ' dtfrom = DateAdd(DateInterval.Month, -1, dtfrom) + ' dtto = GetLastDayOfMonth(dtfrom) + ' dtfrom = GetFirstDayOfMonth(dtfrom) + ' Case "LETZTES QUARTAL" + ' Dim d As DateTime + ' d = DateAdd(DateInterval.Quarter, -1, dtfrom) + ' dtfrom = FirstDayOfQuarter(d) + ' dtto = LastDayOfQuarter(d) + ' Case "LETZTES JAHR" + ' dtfrom = DateAdd(DateInterval.Year, -1, dtfrom) + ' Dim y As Integer = Year(dtfrom) + ' dtfrom = "01.01." + Str(y) + ' dtto = "31.12." + Str(y) + ' Case "AKTUELLE WOCHE" + ' dtfrom = DateAdd(DateInterval.Day, 7, dtfrom) + ' GetDates(dtfrom, dtto) + ' Case "AKTUELLER MONAT" + ' dtfrom = dtfrom + ' dtto = GetLastDayOfMonth(dtfrom) + ' dtfrom = GetFirstDayOfMonth(dtfrom) + ' Case "AKTUELLES QUARTAL" + ' Dim d As DateTime + ' d = dtfrom + ' dtfrom = FirstDayOfQuarter(d) + ' dtto = LastDayOfQuarter(d) + ' Case "AKTUELLES JAHR" + ' Dim y As Integer = Year(dtfrom) + ' dtfrom = "01.01." + Str(y) + ' dtto = "31.12." + Str(y) + ' End Select + ' End Function + + ' Private Sub GetDates(ByRef stDate As Date, ByRef endDate As Date) + ' Dim offset As Double = 0 + ' Select Case stDate.DayOfWeek + ' Case DayOfWeek.Monday : offset = 0 + ' Case DayOfWeek.Tuesday : offset = -1 + ' Case DayOfWeek.Wednesday : offset = -2 + ' Case DayOfWeek.Thursday : offset = -3 + ' Case DayOfWeek.Friday : offset = -4 + ' Case DayOfWeek.Saturday : offset = -5 + ' Case DayOfWeek.Sunday : offset = -6 + ' End Select + ' endDate = DateAdd(DateInterval.Day, (offset - 1), stDate) + ' stDate = DateAdd(DateInterval.Day, -7 + offset, stDate) + ' End Sub + + ' Private Function GetFirstDayOfMonth(ByVal dtDate As Date) As DateTime + ' Dim dtFrom As Date = dtDate + ' dtFrom = dtFrom.AddDays(-(dtFrom.Day - 1)) + ' Return dtFrom + ' End Function + + + ' Private Function GetLastDayOfMonth(ByVal dtDate As Date) As DateTime + ' Dim dtTo As Date = dtDate + ' dtTo = dtTo.AddMonths(1) + ' dtTo = dtTo.AddDays(-(dtTo.Day)) + ' Return dtTo + ' End Function + + ' Public Function FirstDayOfQuarter(ByVal DateIn As DateTime) _ + ' As DateTime + ' ' Calculate first day of DateIn quarter, + ' ' with quarters starting at the beginning of Jan/Apr/Jul/Oct + ' Dim intQuarterNum As Integer = (Month(DateIn) - 1) \ 3 + 1 + ' Return DateSerial(Year(DateIn), 3 * intQuarterNum - 2, 1) + ' End Function + + + ' Public Function LastDayOfQuarter(ByVal DateIn As Date) As Date + ' ' Calculate last day of DateIn quarter, + ' ' with quarters ending at the end of Mar/Jun/Sep/Dec + ' Dim intQuarterNum As Integer = (Month(DateIn) - 1) \ 3 + 1 + ' Return DateSerial(Year(DateIn), 3 * intQuarterNum + 1, 0) + ' End Function + + + ' Private Function Formateddate(ByVal dt As DateTime, ByVal start As Boolean) As String + ' If start Then + ' Return Format(dt, Globals.clsapplication.sReport_Datum_Format.Value) & " 00:00:00" + ' Else + ' Return Format(dt, Globals.clsapplication.sReport_Datum_Format.Value) & " 23:59:59" + ' End If + + ' End Function + '#End Region + + + Private Sub btnEditSQL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditSQL.Click + If Me.WhereModified = False Then Get_SQLWhere() + Dim f As New frmEditWhere + f.sql = Me.SQLWhere + f.ShowDialog() + If f.DialogResult = Windows.Forms.DialogResult.OK Then + If f.sql <> "" Then + Me.SQLWhere = f.sql + Me.WhereModified = True + Me.PictureBox1.Visible = True + Else + Me.WhereModified = False + Me.PictureBox1.Visible = False + End If + End If + f.Dispose() + End Sub + + Private Sub cbop1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbop1.SelectedIndexChanged, cbop2.SelectedIndexChanged, _ + cbop3.SelectedIndexChanged, cbop4.SelectedIndexChanged, cbop5.SelectedIndexChanged, cbop6.SelectedIndexChanged, cbop7.SelectedIndexChanged + If Me.On_Load Then Exit Sub + Me.WhereModified = False + Me.PictureBox1.Visible = False + End Sub + + Private Sub cbvalue1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbvalue1.SelectedIndexChanged, _ + cbvalue2.SelectedIndexChanged, cbvalue3.SelectedIndexChanged, cbvalue4.SelectedIndexChanged, cbvalue5.SelectedIndexChanged, cbvalue6.SelectedIndexChanged, cbvalue7.SelectedIndexChanged, _ + cbvalue1.TextChanged, cbvalue2.TextChanged, cbvalue3.TextChanged, cbvalue4.TextChanged, cbvalue5.TextChanged, cbvalue6.TextChanged, cbvalue7.TextChanged + If Me.On_Load Then Exit Sub + Me.WhereModified = False + Me.PictureBox1.Visible = False + End Sub + + + Private Sub tsbtnReportDesign_Click(sender As Object, e As EventArgs) Handles tsbtnReportDesign.Click + Try + Me.Cursor = Cursors.WaitCursor + Me.auswertungen.TitelZeile1 = Me.txtTitel1.Text + Me.auswertungen.TitelZeile2 = Me.txtTitel2.Text + + If Me.WhereModified = False Then Get_SQLWhere() + Me.Auswertungsdaten = Me.auswertungen.Get_Auswertungsdaten(Me.auswertungen.Auswertung.sSQL.Value, SQLWhere, Me.auswertungen.Auswertung.sSQLType.Value) + Dim f As New frmcrreporting(Me.Auswertungsdaten, Me.auswertungen.Auswertung.iAuswertungNr.Value, Me.auswertungen, Me.checkboxprintparam.Checked, True) + f.Text = "Auswertung " + Me.TreeAuswertungen.SelectedNode.Text + f.MdiParent = Me.MdiParent + Me.Cursor = Cursors.Default + f.Show() + f.DesignReport() + Catch + Me.Cursor = Cursors.Default + MsgBox("Keine Auswertung fr die Bearbeitung ausgewhlt") + End Try + + + End Sub + + Private Sub TSBtnSetSecurityObject_Click(sender As Object, e As EventArgs) Handles TSBtnSetSecurityObject.Click + If InputBox("Passwort:") <> "341211" Then Exit Sub + sec.List_Form_Controls(Me) + sec.Print_Screen(Me) + End Sub + + Private Sub cbvalue1_KeyDown(sender As Object, e As KeyEventArgs) Handles cbvalue1.KeyDown + If e.KeyCode = Keys.F1 Then + Dim d As New DataTable + d = cbvalue1.DataSource + Dim x As New DataTable + x = d.Copy + Dim f As New frmDataSelect + f.C1Daten.DataSource = x + f.C1Daten.DataMember = x.TableName + f.ShowDialog() + If f.selectedvalue <> "" Then Me.cbvalue1.Text = f.selectedvalue + End If + End Sub + + + Private Sub cbvalue1_Leave(sender As Object, e As EventArgs) Handles cbvalue1.Leave, cbvalue2.Leave, cbvalue3.Leave, cbvalue4.Leave, cbvalue5.Leave, cbvalue6.Leave, cbvalue7.Leave + Try + Dim s As String = ParamNr(sender.name) + Dim nr As Integer = s + Dim param As New ComboBox + Dim op As New ComboBox + Dim val As New ComboBox + + CtrlList.Clear() + Me.GetControl(Me, "cbvalue" + Trim(Str(nr)), CtrlList) + val = CtrlList.Item(0) + For i = 1 To cblist.Count + Dim cb As cbe = cblist.Item(i) + If cb.ComboboxName = val.Name And cb.Name = val.Text Then + val.SelectedValue = cb.Keyvalue + End If + Next + Catch ex As Exception + End Try + End Sub +End Class + + +Public Class cbe + Dim m_keyvalue As String + Dim m_name As String + Dim m_comboboxname As String + Property Keyvalue As String + Get + Return m_keyvalue + End Get + Set(value As String) + m_keyvalue = value + End Set + End Property + + Property Name As String + Get + Return m_name + End Get + Set(value As String) + m_name = value + End Set + End Property + Property ComboboxName As String + Get + Return m_comboboxname + End Get + Set(value As String) + m_comboboxname = value + End Set + End Property + Sub New(ByVal comboboxname As String, ByVal keyvalue As String, name As String) + Me.Keyvalue = keyvalue + Me.Name = name + Me.ComboboxName = comboboxname + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmAuswertung.designer.vb b/SW/20211125/_FRReporting/Formulare/frmAuswertung.designer.vb new file mode 100644 index 0000000..2689430 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmAuswertung.designer.vb @@ -0,0 +1,181 @@ + _ +Partial Class frmAuswertung + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAuswertung)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.TSBtnPrint = New System.Windows.Forms.ToolStripButton() + Me.TSBtnExcelExport = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.SpalteLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.AllowMerge = False + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(834, 24) + Me.MenuStrip1.TabIndex = 3 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(120, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnExcelExport, Me.TSBtnPrint, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(834, 25) + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'TSBtnPrint + ' + Me.TSBtnPrint.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnPrint.Image = CType(resources.GetObject("TSBtnPrint.Image"), System.Drawing.Image) + Me.TSBtnPrint.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnPrint.Name = "TSBtnPrint" + Me.TSBtnPrint.Size = New System.Drawing.Size(23, 22) + Me.TSBtnPrint.Text = "Drucken" + Me.TSBtnPrint.Visible = False + ' + 'TSBtnExcelExport + ' + Me.TSBtnExcelExport.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnExcelExport.Image = CType(resources.GetObject("TSBtnExcelExport.Image"), System.Drawing.Image) + Me.TSBtnExcelExport.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnExcelExport.Name = "TSBtnExcelExport" + Me.TSBtnExcelExport.Size = New System.Drawing.Size(23, 22) + Me.TSBtnExcelExport.Text = "Export" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Als Excel-Datei speichern" + ' + 'C1Daten + ' + Me.C1Daten.AlternatingRows = True + Me.C1Daten.ContextMenuStrip = Me.ContextMenuStrip1 + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 49) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.ScrollTips = True + Me.C1Daten.Size = New System.Drawing.Size(834, 395) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 6 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SpalteLöschenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(151, 26) + ' + 'SpalteLöschenToolStripMenuItem + ' + Me.SpalteLöschenToolStripMenuItem.Name = "SpalteLöschenToolStripMenuItem" + Me.SpalteLöschenToolStripMenuItem.Size = New System.Drawing.Size(150, 22) + Me.SpalteLöschenToolStripMenuItem.Text = "&Spalte löschen" + ' + 'frmAuswertung + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(834, 444) + Me.Controls.Add(Me.C1Daten) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmAuswertung" + Me.Text = "Auswertung" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents TSBtnPrint As System.Windows.Forms.ToolStripButton + Friend WithEvents TSBtnExcelExport As System.Windows.Forms.ToolStripButton + Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog + Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip + Friend WithEvents SpalteLöschenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmAuswertung.resx b/SW/20211125/_FRReporting/Formulare/frmAuswertung.resx new file mode 100644 index 0000000..1aa25b9 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmAuswertung.resx @@ -0,0 +1,941 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 229, 17 + + + + + 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 + OMQvjpZMWrGxmEkAAAAASUVORK5CYII= + + + + + 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 + k5nZ/wNRMrfaV7xwSAAAAABJRU5ErkJggg== + + + + 469, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 832, 393</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 832, 393</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 332, 17 + + + + AAABAAgAICAQAAEABADoAgAAhgAAABAQEAABAAQAKAEAAG4DAAAwMAAAAQAIAKgOAACWBAAAICAAAAEA + CACoCAAAPhMAABAQAAABAAgAaAUAAOYbAAAwMAAAAQAgAKglAABOIQAAICAAAAEAIACoEAAA9kYAABAQ + AAABACAAaAQAAJ5XAAAoAAAAIAAAAEAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAAAAAAA//8A/wAAAP8A/wD//wAA////ABEQ + AAAAAAAAAAAAAAAAARERF4iIiIiIiIiIiIiIiAERERf///////////////gBEREX///////////////4 + ARERF///////////////+AERERf///////////////gBEREX///////////////4ARERF/////////// + ////+AERERf///////////////gBEREX///////////////4ARERF///////////////+AERERf///// + //////////gBEREX///////////////4ARERF///////////////+AERERf///////////////gBEREX + ///////////////4ARERF///////////////+AERERf///////////////gBEREX///////////////4 + ARERF///////////////+AERERf///////////////gBEREX///////////////4ARERF/////////// + ////+AERERf///////////////gBEREX///////////////4ARERF////////////3AAAAERERf///// + //////9/+HAREREX////////////f4cBERERF////////////3hwERERERf///////////93AREREREX + ////////////cBERERERF3d3d3d3d3d3d3ERERER4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAP4AAAH+AAAD/gAAB/4AAA/+AAAf8oAAAAEAAAACAAAAABAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAAA + AAAA//8A/wAAAP8A/wD//wAA////ABEAAAAAAAABEXiIiIiIiAERf//////4ARF///////gBEX////// + +AERf//////4ARF///////gBEX//////+AERf//////4ARF///////gBEX//////+AERf//////4ARF/ + ////8AABEX/////49xERf/////hxERF3d3d3dxERwAH//8AB///AAf//wAEBEcAB///AAf//wAH//8AB + ARHAAf//wAH//8AB///AAQERwAH//8AD///AB///wA8BESgAAAAwAAAAYAAAAAEACAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Azs7OANbW1gDe3t4A5+fnAO/v7wD39/cA///3AP/3xgD/770A7961AP/n + rQD/9+cA/+/WAP+1QgD/rTEA/60pAP+cAAD/xnMA/71jAP+1UgD3jAAA/9alAP+1WgDWcwAA53sAAO+E + AAD/794A/+fOAP/37wD/3r0A786tAP/WrQD/zpwA98aUAN6lawDenFoA3pRKAN6MOQDnrXsA/9a1APfO + rQDvxqUA772UAOe1jAC9YxgA/+fWAP/exgDevaUA972UAP/OrQDerYwA/9a9AN61nADnvaUA3qWEANac + ewD/7+cA/97OAM6UewDGjHMA1q2cAM6llADWnIQAtYRzAK17awC9hHMAxoRzAK2EewC9e2sAtXNjAMac + lAC9lIwAtYyEAKV7cwCte3MApXNrALV7cwCtc2sAvXNrALVrYwCtY1oA9+/vAP/39wD3zs4A/87OAP/G + xgD/vb0Ae1paALWEhACte3sA/7W1AKVzcwCca2sA/62tAJRjYwD/paUAjFpaAJxjYwC1c3MAhFJSAP+c + nACUWloAjFJSAK1jYwCESkoApVpaAJxSUgClUlIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5u + bm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5u + blhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYbm5ubm5ubm5ubm5ua2thYWFhYWdkZGRk + ZGRkZGRkZGRkZGRkZGRkZGRkZGRpaWlYbm5ubm5ubm5ubm5ubFRVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + VVVVVVVVVVVVIWlYbm5ubm5ubm5ubm5ubAEcLy8vLy8vLy8eHh4eHjQ0KCgoKCgoKCAgICAyMjIyVWRY + bm5ubm5ubm5ubm5ubAEcOi8vLy8vLy8vHh4eHh40NCgoKCgoKCgoKCAgIDIyVWRYbm5ubm5ubm5ubm5u + agEcHBwvLy8vLy8vLy8eHh4eHjQ0KCgoKCgoKCAgIDIyVWRYbm5ubm5ubm5ubm5uagIcHBwcOi8vLy8v + Ly8eHh4eHh40NCgoKCgoKCgoICAgVWRYbm5ubm5ubm5ubm5uagIcHBwcHDovLy8vLy8vLx4eHh4eNDQo + KCgoKCgoKCAgVWdYbm5ubm5ubm5ubm5uagIcHBwcHBwcLy8vLy8vLy8eHh4eHjQ0NCgoKCgoKCggVmFY + bm5ubm5ubm5ubm5uUQIuHBwcHBwcHC8vLy8vLy8vLx4eHh4eNDQoKCgoKCgoVmFYbm5ubm5ubm5ubm5u + UQIuLi4cHBwcHBwcLy8vLy8vLy8eHh4eHh40KCgoKCgoVmFYbm5ubm5ubm5ubm5uaAIuLi4cHBwcHBwc + HC8vLy8vLy8vHh4eHh4eNCgoKCgoVmFYbm5ubm5ubm5ubm5uaAIuLi4uLhwcHBwcHBw6Ly8vLy8vLy8e + Hh4eHjQ0KCgoV2FYbm5ubm5ubm5ubm5uUAMNLi4uLi4uHBwcHBwcHC8vLy8vLy8vHh4eHh40NCgoV2ZY + bm5ubm5ubm5ubm5uUAMNDS4uLi4uLhwcHBwcHDovLy8vLy8vLx4eHh4eHjQ0V2ZYbm5ubm5ubm5ubm5u + RgMbDQ0uLi4uLi4cHBwcHBwcOi8vLy8vLy8vHh4eHh40V19Ybm5ubm5ubm5ubm5uRgMbGxsNDS4uLi4u + LhwcHBwcHDovLy8vLy8vLx4eHh4eW19Ybm5ubm5ubm5ubm5uTwMbGxsbDQ0uLi4uLi4cHBwcHBwcLy8v + Ly8vLy8vHh4eW19Ybm5ubm5ubm5ubm5uTwQbGxsbGw0NLi4uLi4uHBwcHBwcHDovLy8vLy8vLx4eW2JY + bm5ubm5ubm5ubm5uRQQbGxsbGxsbLi4uLi4uLi4cHBwcHBwcLy8vLy8vLy8eW11Ybm5ubm5ubm5ubm5u + RQQbGxsbGxsbGw0NLi4uLi4uHBwcHBwcHC8vLy8vLy8vW11Ybm5ubm5ubm5ubm5uQwQ5ORsbGxsbGxsN + DS4uLi4uLi4cHBwcHBw6Ly8vLy8vW11Ybm5ubm5ubm5ubm5uQwQ5OTkbGxsbGxsbGw0uLi4uLi4uHBwc + HBwcOi8vLy8vW11Ybm5ubm5ubm5ubm5uPAQMOTk5ORsbGxsbGxsNDS4uLi4uLhwcHBwcHDovLy8vXl1Y + bm5ubm5ubm5ubm5uPAQMOTk5ORsbGxsbGxsbGw0NLi4uLi4cHBwcHBwcLy8vXl1Ybm5ubm5ubm5ubm5u + OwQMDDk5OTk5GxsbGxsbGxsNLi4uLi4uHBwcHBwcHDovXlxYbm5ubm5ubm5ubm5uOwUdDAwMOTk5OTkb + GxsbGxsbDS4uLi4uLi4cHBwcHBwcXlxYbm5ubm5ubm5ubm5uOAUdDB0MDDk5OTk5GxsbGxsbGw0NLi4u + Li4uHBwcHBwcYFxYbm5ubm5ubm5ubm5uOAUdHR0MDAwMOTk5ORsbGxsbGxsbDS4uLi4uLhwcHBwcYEpY + bm5ubm5ubm5ubm5uPwUdHR0dDAwMDDk5OTkbGxsbGxsbGw0NLi4uLi4uHBwcYEpYbm5ubm5ubm5ubm5u + PwUdHR0dHR0MDAwMOTk5GxsbGxsbGxsNDS4uLi4uLhwcYEpYbm5ubm5ubm5ubm5uNwUdHR0dHR0dHQwM + OTk5OTkbGxsbGxsbDQ0uLi4uLi4cYFpYbm5ubm5ubm5ubm5uN1JTHR0dHR0dHR0MDDk5OTk5GxsbGxsb + GxsNDS4uLi4uZVpYbm5ubm5ubm5ubm5uMwZTUx0dHR0dHR0MDAwMDDk5OTkbGxsbGxsbDQ0uLi4uZURY + bm5ubm5ubm5ubm5uMwYHB1NTHR0dHR0dHQwMDAw5OTk5GxsbGxsbGxsNLi4uZURYbm5ubm5ubm5ubm5u + LAYHBwdTUx0dHR0dHR0dDAwMOTk5ORsbGxsbGxsNDQ0uZURYbm5ubm5ubm5ubm5uLAYHBwcHB1MdHR0d + HR0dHQwMDDk5OTkbGxsbV1tbXl5gZVlYbm5ubm5ubm5ubm5uLAYHBwcHB1NTHR0dHR0dHR0dDAwMOTk5 + GxtISElJSUlZY2pYbm5ubm5ubm5ubm5uKwYABwcHBwcHU1MdHR0dHR0dHQwMDDk5OTlMFBEVGhkYLVhu + bm5ubm5ubm5ubm5uKwAAAAAHBwcHB1NTHR0dHR0dHR0MDAw5OTlOIRQODxAmWG5ubm5ubm5ubm5ubm5u + MQAAAAAABwcHBwdTU1MdHR0dHR0dDAwMDDlBFhcUDiVYbm5ubm5ubm5ubm5ubm5uMQAAAAAAAAAHBwcH + B1MdHR0dHR0dHQwMDAxLCxMXJFhubm5ubm5ubm5ubm5ubm5uIgAAAAAAAAAABwcHBwdTUx0dHR0dHR0d + DAxNCRIjWG5ubm5ubm5ubm5ubm5ubm5uIgAAAAAAAAAAAAAHBwcHB1NTHR0dHR0dHQxACCdYbm5ubm5u + bm5ubm5ubm5ubm5uIQAAAAAAAAAAAAAGBgYGBgYGBgYGUlIFBQVAClhubm5ubm5ubm5ubm5ubm5ubm5u + ISgoICkpKR8qKio2NjAwNTU1PT09Pj4+R0dCSW5ubm5ubm5ubm5ubm5u////////AAD///////8AAP4A + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAA/8AAPwAAAAH/wAA/AAAAA//AAD8AAAAH/8AAPwA + AAA//wAAKAAAACAAAABAAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD//v0A/f39AP/9 + /AD8/PsA//z5AP/8+AD7+/sA/vv3AP/69gD5+fkA//n1AP759AD3+PcA//jzAP748wD++PIA//fxAPb2 + 9gD+9/EA9fb2AP738AD+9vAA/vbvAP717wD09PQA/vXuAP717QD99e0A/fXsAPLz8wD+9OwA/vTrAP30 + 6wDx8vIA/vPqAP3z6gD+8+kA/fPpAP7y6QD+8ugA/fLoAP3y5wDv8PAA/vHnAP7x5gD98eUA/fDmAO7u + 7wD98OUA/fDkAP3v5QD97+QA/u/jAP3v4wD97+IA/e7jAP3u4gDs7OwA/e7hAAAAAAD97eEA/e3gAOrr + 6gD97d8A/ezfAP3s3gD87N4A/ezdAP3r3gD97NwA6OnpAP3r3AD869wA/evbAP3q2wD86tsA/eraAPzq + 2gD96tkA5ufnAP3p2QD86dkA/enYAP3p1wD86NkA5eblAPzo2AD86NcA/OjWAPzn1wD959YA/OfWAPzn + 1QDj5OQA/OfUAPzm1QD859MA/ufSAPzm1ADi4+MA/ObTAPzm0gD85dMA/OXSAPzl0QD75dEA/OTRAPzk + 0AD75NAA/OTPAPvkzwD749AA/OPPAPzjzgD85MwA++POAPzjzQD84s4A/OLNAPvizQD84swA++LMAPvi + ywD84cwA/OHLAPvhywD74coA+eHKAPzgygD74MoA/ODJAPvgyQD74MgA+9/IAPvfxwD738YA+97HAPve + xgD73sUA9t3HAPvdxQD73cQA+93DAPTcxwD73MMA+tzDAPvcwgD63MIA+9vBAPvbwAD628AA8tnFAPva + vwD927sA+tq+APvavQD72b4A+tm+APDYwwD62b0A+9i8APrYvAD62LsA+ti6AO7WwgD617oA+te5APrX + uAD61rkA/dK/APrWuAD617YA+ta3AOzUwAD61bgA+tW2APnVtgD21bUA+tS1APrUswDp0b4A+tOzAPnT + sgD+1awA9NK0APnSsAD60a4A8dCyAObNuwDu0bAA7dCvAOTMuQD/2JYA782xAOLKuQDtzK8A7MquAN/H + twDexrYA6sesAP/MmQDcxLQA68eoAOfEqwDawrMA5sKpANjAsgD/zoUA5MGoANa+sADiwKYA68CeAPez + swDTu68A372lANy7pADQuKwAzrerAPesrADMtakAybKoAM2xqADltpEA9qGiAP+9YADVpZkAzK2KAPia + mgDRo5MA/rVUAM2ekQDJmY4Ax5iNANiViQCqmpAAxpaMAMWVjADWk4cA1ZOGAMOTjADXkoQAw5KLANaP + gwDLmXMA0JxoAO6hRwD/qTEAu4puAPyiIgDLj1MA55U4AN6LNgDVgjUAAAAAAGZmZgD+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+///////////////////////////////+/v7+/v7+/uXi + 5+jp6ezt8PLy8vLy8vLy8vLy8vDq//7+/v7+/v7+3qqqqqqqqqqqqqqqqqqqqqqqqqqqye7//v7+/v7+ + /v7dZISGio2SlZaZoKKnq7GztLe6u7uq7v/+/v7+/v7+/txkfoKGh4uOlJebnKGkp6+ws7a2uqrv//7+ + /v7+/v7+2l51fYGEh4uOkZeWnqGjpquss7O3qu///v7+/v7+/v7ZVm91en6Dh4qNj5WXm6CipqitsLaq + 7//+/v7+/v7+/tZQam5xd36ChYqNj5SVmZ2goamtsKrv//7+/v7+/v7+1kdlaGlxcnyBhIeLjpOVlpuh + o6aoqu///v7+/v7+/v7SR11jZWlxdHl+hIeKjY6TlpmeoKaq7//+/v7+/v7+/s8/WFxjZ2lsdHd9hIWH + io6TlZmdoqrv//7+/v7+/v7+zT9NU1hdY2htcXR5fYOHi42SlJaZqu///v7+/v7+/v7KOkhOUlRcY2Zp + b3Z5fYKFio2PlJeq7//+/v7+/v7+/sc6QkhKUVdcY2dobG91eYKFh4qOkarv//7+/v7+/v7+xjBAQ0RJ + TVdZXWFnaXFyeX6BhoiLqu///v7+/v7+/v7DKzk9QURKTFFXXGNnaWxyd3uBhomq7//+/v7+/v7+/sAi + NDY9QENGS1JTWF9jamtueHl/hKrv//7+/v7+/v7+vSIsMTY5PkNESk5SWF1jZWtwcnh9qu///v7+/v7+ + /v61HikqLjU3O0FCSE5RUlxgZWlscniq7//+/v7+/v7+/rUZIyYsLTQ4OUBCSUpPV1ldY2hrbqrv//7+ + /v7+/v7+rhQdISYqLTE2OT1BRExOVVRbY2hqqu///v7+/v7+/v6lEhccICMnLC8yNjtBQkhMUVdcX2Wq + 7//+/v7+/v7+/p8NFhgaHyEmKS80NjtAQkNLUVdaXaru//7+/v7+/v7+mA0QExYaGyAlKS0xNjk+QENI + TVJYqvP//v7+/v7+/v6QCgsPEBUaGx0jJyotNDc7PkXV2+Dk8f/+/v7+/v7+/owHCAkMEBMXGh8jJigt + MzY73/b7/P34//7+/v7+/v7+gAQFCAkMDhAVGhshIygqMTTU4ff5+v/+/v7+/v7+/v57AgMFBggLDBAT + FxsfJCYsMcvQ5vX//v7+/v7+/v7+/nMBAQMFBgkJDA8RFxwcJCYsv8H0//7+/v7+/v7+/v7+YgACBwoN + FBkiKzA6P0dQXmS+4//+/v7+/v7+/v7+/v64mqissrm8wsTFyMzO0dPX2M7r/v7+/v7+/v7+//////gA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/AAAD/wAAB/8AAA//AA + Af8oAAAAEAAAACAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4JJBAPemQwBmZmYArntuALWC + cgC7iHUA6rN3AMKPeQDIlXwAs4h+AM+cgADVooMA1qOEANyphwDeq4gAuI6LALaRiwDBlpMAxJmVAMac + lgDJnpcA0qSXANOmmADMoZkA1qiaANmtnQDuvaUA77+oAPWzqgDwwasA+tCuAPDDrwDxxbEA+dKxAPrT + sQD61LQA8si1APrVtQD71bYA8sm3APrWuAD717gA+9e5APTJugDzzLoA+ti7APvZvAD62rwA8829APvZ + vgD62r4A+9q/APrbvwD728AA+tzBAPvcwgD73MMA+93DAPvcxAD73sQA+97GAPvfxgD738cA++DIAPvg + yQD74coA/OHKAPvhywD84csA/9XMAPzizAD74s0A++POAPzjzgD85M8A/OTQAPzk0QD85dEA/OXSAPzl + 0wD85tMA/ObUAPzn1AD85tUA/OfWAP3n1gD86NcA/OjYAP3p2AD96dkA/OraAP3q2gD86tsA/evbAPzr + 3AD8690A/ezdAP3s3gD97N8A/e3fAP3u4AD97eEA/e7hAP3u4gD97+IA/e/jAP3v5AD98OUA/vDlAP3x + 5gD98ecA/fLnAP3y6AD+8ukA/fPqAP7z6gD98+sA/fPsAP307AD+9OwA/fXtAP717QD+9e4A/vbuAP72 + 8AD+9/EA/vjxAP748gD++PMA/vn0AP769QD/+vcA//v3AP/7+AD//fsA//77AAAAAAD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAICAgICAgICAgIC + AoiIiAMZGBYVFxQTEhEQDwKIiIgERD87NzItKSMhHhoCiIiIBUpGQDw4My4oJSIbAoiIiAdSTElCPjo1 + LyomHQKIiIgIV1NOSUM/OzYxLR8CiIiICl9bVFBKRkA8NzQgAoiIiAtkYFxWUExHQT05JAKIiIgNbGZi + XVhTTUhCPicCiIiIDXJtaWNeWVVPSkQsAoiIiA14c29qZWFaVlBLMAKIiIgNf3p2cGtnYVtXUSsCiIiI + DYOAfHdxbWhFRRwJAoiIiA2GhIF9eXRuAQEAAoiIiIgNiYeFgn57dQ0GAoiIiIiIDQ0NDQ0NDgwNAoiI + iIjgAf7+wAFqbsABfoLAAY2PwAGZncABqa3AAe//wAH+/sAB/v7AAWVowAFyfMABh4vAAZWWwAOjpsAH + 7//AD/7+KAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACsrAAY3EhIOORwOEjMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMa + DRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMRgMFTMaDRQzGg0UMxoNFDMa + DRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQ5HA4SNxISDisrAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMfChkzHA43NBwOSTQaDU8zGg1QMxoNUDMaDVAzGg1QMxoNUDMa + DVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMhwNUTMa + DVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDQaDU80HA5JMxwONzMfChkrKwAGAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMcDjczGg14MhsNojMaDa4zGg2vMxoNrzMa + Da8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMa + DbA0HA+yMxoNsDMaDbAzGg2wMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa4yGw2iMxoNeDMc + Djc3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJfX/+QXV3/j1xc/45b + W/+NWlr/jFlZ/4tYWP+JVlb/h1RU/4dUVP+GU1P/hFFR/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQ + UP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+CT0//gE1N/39M + TP+ATU3/MxsNoTQYDko5HA4SAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRh + Yf/yzMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M + zP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M + zP//zMz//8zM///Mmf+BT0//MxoNrjQaDU8zGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJRhYf/MzMz/++DH//vfxv/738X/+97F//vdxP/73MP/+tvB//vcwP/72sD/+tq+//vZ + vv/62bz/+9i7//vYuv/617n/+ta4//rVt//61bb/+tW1//rUtP/607P/+tOy//nSsP/50a//+dGv//rR + rv/60Kz/+c+s//nPq//6zqn/+c2o///Ky/+CUFD/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJViYv/Nzc3//OHJ//vfyP/738f/+97G//vexf/73cT/+9zD//vc + wv/728D/+9vA//vavv/72r3/+9m9//vYu//62Lr/+9e6//vXuP/61rf/+tW3//rVtf/61LT/+tOz//rT + s//60rH/+tKw//rSr//50a7/+tCt//nQrP/5z6v/+s6q///Jyf+EU1L/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJdkZP/Ozs7/++HK//vhyf/74Mn/+9/H//ve + xv/73sX/+97E//vcw//73ML/+9zB//vbwP/727//+9q+//vZvf/62Lv/+ti7//rYuv/717n/+ta4//rV + t//61bb/+tW1//rUs//507L/+tKx//rSsP/50a//+dGu//nQrv/6z6z/+c+r///IyP+FVFP/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhlZf/Q0ND/++HL//zi + y//84Mr/++DJ//vfyP/838f/+97G//vexP/73cP/+9zC//vbwv/728H/+tq///vavv/62b7/+9m8//vY + u//72Lr/+te5//vXuP/61bf/+tW2//rVtf/61LT/+tSy//rSsv/50rD/+tKw//nRrv/60K7/+tCs///G + x/+HVVT/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlm + Zv/R0dH//OPN//zizP/84cz//ODK//vhyf/838j//N/H//vexv/73sX//N7E//vcw//73ML/+9zB//va + wP/72r//+tq+//vZvf/62Lz/+ti6//vXuf/617n/+ta3//rVt//61Lb/+tS0//rTs//507P/+tKx//rS + sP/60a//+tCu///Fxf+IV1b/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJxpZ//S0tL//OPP//zjzv/74s3/++LM//zhy//74cn/++DI//zfx//83sf//N7G//ve + xP/73MP/+9zC//vbwf/728D/+9q///vZvv/72b3/+ti8//vYu//717r/+9a5//rWuP/61bf/+tW2//rU + tP/61LT/+tSy//rTsv/60rD/+dGv///Dw/+JWVf/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5raP/T09P//OXQ//vkz//8487//OLN//zhzP/74cv/++HK//vg + yP/738f/+97G//zexf/73sX/+93E//vcw//73ML/+9vA//rawP/62r7/+tm+//rYvP/62Lv/+9i6//rX + uf/617j/+ta3//rVtv/61LX/+tS0//rTs//607L/+dKx///Cwv+LWVj/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFuav/V1dX//OXS//zk0f/849D//OPO//zi + zf/84sz//OHL//vhyv/84Mn/++DI//vex//73sb/+93F//vdxP/73cP/+9zB//vcwf/727//+9q+//va + vf/72b3/+ti7//rYu//617r/+ta4//rWt//61rb/+tW1//rUtP/607P/+tOz///BwP+MW1r/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNwa//W1tb//ObT//zl + 0v/85ND/++TP//zkzv/7483/++LN//vizP/84Mv/++HJ//vgyP/738f/+97G//vexf/73sT/+93E//vc + wv/73MH/+9vA//rav//62r7/+9m9//rZvP/62Lr/+ti5//vXuf/61rf/+tW3//rVtv/61bT/+tOz//+/ + v/+NXVv/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKVy + bP/X19f//ObU//zm0//85tL//OXR//zk0P/848///OPO//vizf/74sz/++HL//zhyv/84Mj/+9/I//ve + x//73sX/+97E//vdw//73MP/+tzB//vbwP/728D/+9q+//vavf/72Lz/+ti7//rYuv/617n/+ta4//rW + tv/61bb/+tS0//++vf+OX1z/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAKh1bv/Y2Nj//OfW//zm1f/85tP//OXS//zl0f/85ND//OPQ//zjzv/84s3//OLN//vh + y//84Mr/++DJ//vgyP/738f/+97G//vexf/73cT/+9zD//vcwv/728H/+9vA//ravv/62r7/+9m8//vY + vP/617r/+9i5//rXuP/61bf/+ta3//+8vP+QYF7/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKt4b//a2tr//OjX//zn1v/859X//ObU//zm0//85dL//OXR//zk + 0P/848//++LO//vizP/84sv/++HL//zgyv/738j/+9/H//zfxv/83sb/+93E//vdw//73MP/+9vB//rb + wP/72r//+9q+//vZvf/62bv/+ti6//rYuv/617n/+ta4//+7uv+SYV//MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK57cP/b29v//ejZ//zo1//86Nf//OfV//zn + 1P/85tT//OXS//vl0f/85ND//OPP//vjzv/84s3/++HM//zhyv/74Mr//ODI//zfyP/738f/+97F//vd + xP/73cT/+9zC//rbwv/628D/+tu///vavv/72b3/+tm8//rYu//62Lr/+te5//+6uf+SY2H/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALB9cf/c3Nz//OnZ//3p + 2f/86df//OjW//zo1f/85tX//ObU//zm0//75dH/++TQ//zj0P/8487//OLN//vhzf/74cv/++HK//vg + yf/738j/+97H//vexf/73sX/+93E//vcw//63ML/+9vB//vbv//72r7/+tm+//vZvP/72Lv/+te7//+4 + uP+UZGL/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALJ/ + c//d3d3//Orb//zq2v/96tn//OnY//zo1//86Nb//efV//zm1P/85tL//OXS//zk0f/849D//OPP//zi + zv/84sz/++HM//vhyv/84Mn//ODI//vfx//73sb/+97F//vdxP/73cP/+9zC//vcwf/628D/+9u///rZ + vv/62bz/+ti7//+2t/+VZmT/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALaDdP/f39///Ovc//3q2//96tv//enZ//zp2P/96Nf//OjW//zn1f/85tT//OXT//zl + 0v/85NH//OTQ//vjz//8487/++LN//ziy//84cv/++DJ//vgyP/838j//N/G//vexf/73sT/+93D//vc + wv/73ML/+9vB//vawP/72r7/+tq9//+1tf+XaGX/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFdf/g4OD//eze//zr3f/969z//Ora//zq2v/86dn//OnY//3n + 1v/859X//OfV//zm0//85tL/++XR//zk0P/749D/++PO//zizf/74sz/++HL//vgyv/74Mn/++DI//zf + x//73sb/+93F//vdw//73MP/+tzC//vbwf/727//+9q+//+0tP+YaWf/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALuId//h4eH//O3f//3s3//87N3//evc//3q + 2//86tr//OnZ//zp2P/96Nf//OjV//zn1f/85tT//ObT//zl0v/75ND//OTP//vjzv/8487//OLN//vh + y//84cr//ODJ//vgyP/738f/+97G//vexf/73cT/+93D//vcwv/73MH/+9vA//+ysv+Zamj/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6LeP/i4uL//e7g//3t + 4P/97d7//eze//3r3P/86tz//Ora//3p2f/86dj//ejX//zo1v/859X//OfU//zm0//85tL//OXR//vk + 0P/85M///OLO//zjzP/84cv//OHK//vhyf/74Mn/+9/I//vfx//73sb/+97F//vdxP/73ML/+tvC//+w + sf+bbGr/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCN + ef/k5OT//e7i//3u4f/87eD//ezf//3s3v/9693//evc//3r2//96dr//enZ//zo2P/859f//OfV//zn + 1P/85tT//ObS//zl0f/85ND/++PQ//zjzv/7487/++LM//vhy//74cr//ODJ//vfyP/83sb//N7G//ze + xf/73sT/+9zC//+wr/+cbWv/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMOQe//l5eX//fDj//3v4v/97uH//e3g//3t4P/87N7//evd//3q3P/969v//Ora//3p + 2f/96dj//OjW//zo1f/859X//ObU//zm0v/85dL/++XQ//zkz//848//++PN//vizf/74sz/++HK//vg + yv/738j/+9/H//vfxv/73cX/+97E//+urf+db2z/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMWSff/m5ub//vDl//3v5P/+7+P//e7h//3u4P/97d///e3e//3r + 3f/8693//erb//3q2v/86tn//enY//zp1//86Nb//OfW//zm1P/85tP//OXS//zl0f/85ND/++TP//vi + zv/84s3//OLM//vhyv/74Mn//ODJ//vfx//738b/+97F//+srf+fcW3/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiVfv/n5+f//fHm//7w5f/97+T//u/j//3u + 4v/97uH//e3g//3s3//8693//Ovd//zq2//969r//era//zp2P/96df//OfX//3n1f/859X//ObU//zl + 0v/85NH//OTQ//zjz//8487//OLN//zizP/74cv//OHK//vgyf/738j//N/H//+rq/+gcm//MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqXf//p6en//fLn//3x + 5v/98eb//fDl//3v4//97uL//e7h//3t4P/97eD//eze//zr3f/869z//erb//zp2v/96dn//OjY//zo + 1//959b//OfV//zm0//85dL//OXS//vl0f/75ND/++PP//zizf/74s3//OHL//zgyv/74Mr/++DI//+p + qf+hdHD/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM2a + gP/q6ur//vLp//7x5//98uf//fDm//3w5f/+7+P//e7j//3u4f/97eD//e3g//3s3//97N7//evc//zq + 2//96tv//erZ//zo2P/96Nf//OfW//zn1f/85tT//ObT//zm0f/85NH//OTQ//zjzv/7487//OLN//zh + y//74cv/++DK//+oqP+idXL/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANCdgf/r6+v//fPq//7y6f/98uj//fHn//7x5v/98OX//fDk//3v4v/97uL//e7h//3t + 4P/97N///eve//3r3P/969v//era//zp2v/86dj//OnX//3o1v/859X//ObU//zm0//85tL//OXR//zk + 0f/848///OPO//vizf/74sz/++HL//+np/+jd3P/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANOggv/s7Oz//fTs//3z6v/98+r//fLo//3x5//98eb//vDl//3w + 5f/+7+T//e/j//3u4f/97eD//e3f//3s3v/97N3//Ovc//3q2//96tr//OnZ//zo2P/96Nf//OjV//zn + 1P/859P//OXT//vl0f/85dD//OPQ//vjzv/84s7/++LM//+lpf+leXT/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWihP/u7u7//vXt//707P/+8+v//vPq//3y + 6P/98uj//fHn//7x5v/98OX//fDk//3v4//97uL//e7h//3t3//97N///eze//3r3P/869v//Ora//3p + 2f/96dj//ejX//zo1v/859X//OfU//zm0//85dL//OTR//zk0P/75M///OPO//+kpP+menb/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANilhf/v7+///vXu//71 + 7f/+9Oz//fPr//7z6v/+8+r//vLo//3y5//+8eb//fDl//3v5P/97uP//e/h//3u4P/97eD//O3f//zs + 3v/9693//erc//zq2//86tn//enY//3o1//86Nf//efV//zn1f/85tP//OXS//zl0f/85ND/++TP//+i + o/+oe3f/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqn + hv/w8PD//vbw//727//99u3//vTt//306//+8+v//vPp//3y6f/+8uj//fHn//3w5f/97+T//e/k//7v + 4v/97uH//e3g//3t3//97N7//evd//zr3P/969v//era//zp2P/86Nj//OjX//zn1v/95tX//efU//zm + 0//85dH//OXQ//+goP+pfXj/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN2qiP/x8fH//vfx//738P/+9e///fbu//717f/99Oz//vTr//3z6v/98+n//fHn//7x + 5v/98eb//fDl//3w5P/97+P//e7i//3u4f/97eD//e3f//3r3f/969z//erc//zq2v/96dn//OnY//zo + 1//86Nb//OfU//zm1P/85dP//OXS//+gn/+qf3n/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCtiv/z8/P//vjz//738v/+9/D//vbw//327v/+9e3//fTt//30 + 6//+8+r//fLp//7y6f/+8ef//vDm//3w5f/98OT//e/j//3u4v/97uH//e3g//3s3//97N7//Ozd//3r + 3P/96tr//OnZ//zp2P/96dj//OfW//zn1f/85tX//ObU//+enf+rgHv/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOwi//09PT///j0//748//++PL//vfx//73 + 8P/+9u///vXu//707P/+9Ov//vPr//3y6v/+8un//fLo//3x5v/98OX//fDk//3v4//97+L//e7h//zu + 4P/97d///Oze//3r3f/869z//erb//3q2v/86dn//ejX//zo1//86Nb//OfV//+cnf+sgn3/NBsNrTQa + DU8zGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWyjP/19fX//vn2///4 + 9P/++PP//vfy//748f/+9/D//vXv//727v/99e3//vTs//706//98ur//vLp//3y5//98ef//vHm//7v + 5f/97+P//e/i//3v4v/87uD//ezf//3s3//97N3//Ovc//+8vf//uLf//7Oz//+urv//qan//6Sk//+g + n/+ug37/Nx4RozgcEUk5HA4SAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOe0 + jv/29vb//vr3//769v/++fT//vj0//748//+9/H//vfx//727//+9u///fXt//717f/+8+v//vPr//7y + 6f/+8uj//fLn//7x5v/98OX//fDk//3v4//97uL//e7h//3t3//97d//upGK/7mPiP+2jIb/tYqF/7OI + hP+yh4P/sYaB/7BwcP+bamn/OyEVhUAgFzg7JxQNAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOq3j//4+Pj//vv4//769//++fb///n1//749P/++PL//vfy//738f/+9vD//vbu//31 + 7v/+9e3//vPr//7z6//98+r//vLp//7y6P/98eb//fDl//7v5f/97+T//e7i//3u4f/97eD/pXJs//+0 + Uv//mQD/9Y8A/+uFAP/gegD/1nAA/79mGf9+UU7XQSUZUkQiGh5VKysGAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAO26kP/5+fn//vz6///7+P//+/f//vr2//759v/++fT//vjz//73 + 8v/+9/H//vbw//727//+9e7//vXt//716//+8+v//vLq//3y6f/98ej//fHn//3x5v/98OX//e/k//3v + 4//97uH/qHVu///Mmf//tFL//7BE//+rNv//qC3/2Yw5/4BTUNhAIxpXRyMcJE0zGgqAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC9kf/6+vr///37///8+v///Pn///v4//76 + 9v/++vb//vn1//758//++PP//vfx//738f/99vD//vXv//717v/+9Oz//fTr//3z6v/98+n//fHo//3x + 5//98eb//fHl//3w5P/97+P/q3hv///Wo///t1v//7RS//+wRP/bk0n/g1ZS2EMmGldFKRwlRi4XC4AA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAkv/7+/v///38///9 + /P///Pv//vz5//77+P/++/f///r2//759f//+fT//vjy//748v/+9/D//vbv//727//+9e3//fXs//70 + 7P/98+r//vLp//3y6f/98ef//vDm//3w5f/98OX/rntw///grf//u2f//7db/92bW/+HWlTYQyYaV0Up + HCVGLhcLgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXC + k//9/f3///7+//7+/P///fz//vz7//78+f/++/j//vv3///69v/++fX//vj0//749P/++PL//vfx//72 + 8P/+9u///vXu//307f/99Oz//vTr//7z6v/+8un//fHo//7x5//98Ob/sH1x///ruP//wHT/3qFq/4pd + VthDJhpXRSkcJUYuFwuAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPfElf/+/v7//////////v///v3//v78//79+////Pr///v4///79///+vf///r2///5 + 9f//+PP///jy//748f/+9/D//vbw//717v/+9e3//vTs//7z7P/+8+r//vLp//7y6P/98ef/sn9z///1 + wv/gqHv/jmFX2kYpHVhMKRwlRi4XC4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPrHl/////////////7+/v/9/f3//Pz8//z8/P/7+/v/+vr6//r6 + +v/5+fn/+Pj4//f39//39/f/9vb2//X19f/19fX/9PT0//Pz8//z8vL/8vHw//Hw7//w7uz/8O3r/+/s + 6f/u6+j/toN0/+zftv+OYlbkRikbaUsyJSlVKxUMgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7Lmf/81rH/+tSw//jRrv/1z63/882r//HL + qv/uyKn/7MWo/+rDpv/owaX/5b+k/+O9ov/guqH/3ref/9u1nv/as53/17Gb/9Wumv/SrJn/0KqY/86n + lv/LpZX/yaOU/8agkv/EnpH/uIV1/7WCdJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAADwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwA + AAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwA + AAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAA8AAPwA + AAAAHwAA/AAAAAA/AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAP/8AACgAAAAgAAAAQAAAAAEA + IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANxISDjYXDyE0GhAxNhsNOTQa + DTszGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMa + DTw0Gg07MhsOODQaCjE2Fw8hNxISDlUAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Fw8hNBoNTjMb + DXMzGw2GMxoNizMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMa + DYwzGg2MMxoNjDMaDYs0Gw2FMxsNczIaDU02Fw8hQCAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAM2b + iuvSn5Pwy5qN9siXi/nGlov6xpaL+sWUivrEk4r6wpGJ+sKQifrCkIn6wpCJ+sKQifrCkIn6wpCJ+sKQ + ifrCkIn6wpCJ+sKQifrCkIn6wpCJ+sKQifnXkob4MxsNczQaEDFAFRUMAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAzbGo//3Sv//90r///dK///3Sv//90r///dK///3Sv//90r///dK///3Sv//90r///dK///3S + v//90r///dK///3Sv//90r///dK///3Sv//90r///8yZ/9WRhfo0GQ2FMRsNOTsUFA0AAAABAAAAAAAA + AAAAAAAAAAAAAAAAAADJsqj/4eLi//vgyf/738j/+97G//vdxf/63MP/+9vB//vawP/62r//+tm9//rY + vP/617n/+ta4//nVtv/51LX/+tSz//nTsv/50rD/+tGv//rRrf/90r//1ZGF+zMaDYs0Gg07NxISDgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAMy1qf/i5OP/++HL//vgyv/738j/+9/H//vexf/73cT/+tzC//rb + wP/62r7/+9q9//vYvP/62Lr/+te5//rVuP/61Lb/+tS0//rTs//60rL/+dKw//3Sv//UkYT7MxoNjDMa + DTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAzrer/+Pk5P/8483//OHL//zgyv/74Mn/+9/H//ve + xf/73cT/+9zD//rbwP/727//+tm+//vZvP/62Lv/+te6//rWuP/61rb/+tS1//rUtP/507L//dK//9SR + hPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADQuKz/5ebm//vkz//8483/++LM//vh + y//84Mn/+9/H//vexv/73cX/+93D//vbwf/628D/+tq+//rZvf/62Lz/+te6//rXuP/61rf/+tW1//rT + s//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAANK6rv/m5+f/++XR//zk + z//848///OLN//vhy//74Mr/++DI//vexv/73cX/+93D//rcwv/728H/+9q///vZvv/62bz/+9i7//rW + uf/61bf/+tW2//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA07yv/+fo + 6P/85tP//OXS//zl0P/848///OPO//zhzP/84Mr/++DJ//vfx//73sX/+93E//vcwv/728H/+9vA//ra + vv/72L3/+ti7//rXuv/617j//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAA + AADWvrD/6Onp//zn1f/85tT//ObT//zl0f/848//++PN//zizP/74cv/++DJ//vfx//73sb/+93F//rd + xP/728L/+9vA//vZv//62b7/+tm8//rXuv/90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAANjAsv/p6ur//OjX//zn1v/85tT//OXT//zl0f/85ND/++PO//zizf/84cv/++DJ//vg + yP/738f/+97G//vdxP/73ML/+tvB//vav//72b7/+ti8//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAA2sKz/+rr6//96dr//enY//zo1//859X//ObU//vl0v/75ND//OPP//vj + zv/84sz//OHL//zgyf/738f/+97F//vdxf/63MP/+tzB//vbwP/72r7//dK//9SRhPszGg2MMxoNPDcS + Eg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADcxLT/6+zs//3r3P/86tr//OnZ//3o1//859b//ObU//zm + 0v/85dH/++TP//zizv/84sz//OHL//vgyv/74Mj/+97G//vdxf/73cP/+tzC//rbwP/90r//1JGE+zMa + DYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAN7Gtv/t7e3//eze//3r3P/969v//enZ//zo + 2P/859b//ObU//zl0//85dL//OTQ//vkzv/8483//OLM//vgyv/74Mj/+9/H//vexv/73cT/+9zD//3S + v//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA38e3/+7u7//97d///Oze//3s + 3f/869v//era//zo2P/86Nb//OfV//zn0//85dP//OXR//zjz//8487//OLM//vhy//84Mr/+9/I//vf + xv/73sT//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADiyrn/7+/v//3u + 4v/97eH//ezf//3s3f/969v//Orb//3p2f/86Nj//OfW//zm1P/85dP//OXR//zk0P/8487//OLN//vi + y//84Mr/+9/I//vex//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAOTM + uf/w8fH//e/k//3v4//97eH//e3f//zs3v/97Nz//erb//zp2f/96dj//OjX//zn1P/85tT/++XR//zk + 0f/85M//++LN//zizP/74cr/++DJ//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAA5s27//Hy8v/+8ef//fDl//3v4//97uL//e3g//zt3v/97N3//evb//zp2v/86dn//OjX//zn + 1f/85tT//ObT//zk0f/749D//OPO//vizf/84cv//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAA + AAAAAAAAAAAAAAAAAADo0L3/8vPz//3y6P/98uf//fHl//7v4//97+L//O7h//3s3//97N7//evc//zq + 2v/96dn//OnY//zn1v/85tX//ObT//zl0f/85ND//OPO//vizf/90r//1JGE+zMaDYwzGg08NxISDgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAOrRvv/z9PT//vPq//3z6f/+8ef//fHm//3v5P/97uP//e7i//3t + 3//97N7//Ovd//3r2//96tn//OjY//zo1v/859X//ObU//zl0v/85NH//OTP//3Sv//UkYT7MxoNjDMa + DTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA7NTA//X19f/99ez//fPr//3y6f/98uf//vHm//3w + 5f/97+P//e7i//3t4f/97N///evd//zq2//86tr//OjZ//3p1//959b//ObU//zl0v/75NH//dK//9SR + hPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADu1sL/9vb2//727//99e3//vTr//7z + 6v/+8un//vHn//3w5v/98OT//e/j//zu4f/97N///eze//3r3P/86tv//enZ//zo2P/859b//OfU//zm + 0//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAPDYw//39/f//vbw//71 + 7//99e7//vTs//306v/98+n//fHo//3w5v/97+T//e/j//3u4f/97d///eze//zs3f/96tv//enZ//zo + 2P/859f//OfV//3Sv//VkYX7MxoNizQaDTs3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA8tnF//j4 + +P/++PL//vfx//728P/+9e7//vTt//706//+8+n//fLo//7x5v/98OX//e/j//3u4v/97eD//O3f//zs + 3v/969z//era//zp2f/86Nf//dK//9WNgfs3HhGHNh8SOTckEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAD03Mf/+fn5///59f/++PP//vjx//738P/+9e7//vXt//307P/+8+r//vLp//3x5//+8Ob//e/k//3v + 4v/97uH//e3g//3r3v/3s7P/96ys//ahov/4mpr/1pCC+z4jF3xBKBkzQCsVDAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAPbdx//6+/v//vv3///69f/++PT//vjy//738f/+9u///vXu//707P/+8+r//fPp//7x + 6P/+8eb//e/l//3v4//97uH/5baR/+6hR//nlTj/3os2/9WCNf+1gGHqSS8iYkg0Jyc5ORwJAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAA+ODK//z8+///+/n//vv3///69v/++fT///jz//738v/+9/D//vXu//71 + 7f/99Ov//vPq//7y6P/98ef//fDl//3v5P/rwJ7//71g//+pMf/8oiL/x4ZG7V9DM39RNys8WUAzFEBA + QAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD64sr//fz9///9+////Pn///v4//769//++fX//vnz//74 + 8v/+9vH//vbv//717f/+9Oz//fPq//3y6f/+8ef//fDl/+vHqP//zoX//rVU/82VXe5fQzSDVDgsQFg7 + MRpJSSQHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPzkzP/+/v7///79///9/P///Pr///z4///6 + 9//++vb//vn0//748///9/H//vbv//317f/99O3//fPq//3z6f/+8ef/7dCv///Ylv/Ik2rwXkEzhlE6 + K0JVQi8bYEBACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ufS///////9/f3/+/v7//n5 + +f/3+Pf/9fb2//T09P/y8vL/7/Dw/+7u7v/s7Oz/6uvq/+jp6f/l5+f/5OXk/+Lj4//u0bD/yqqG9lw/ + MKJROCxSWkIxH2BAQAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+1Kr5/dq5+frX + tvn51rT59tSz+fTRsvnxz7D578yv+e3Lrfnsyaz56caq+ebDqfnkwaf548Cm+eG+pPneu6P527mi+d+v + j8bap4YUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA/AAAAHwAAAB8AAAAfAA + AAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAA + AAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAA/AAAAPwAAAH8AAAD/AAAf8oAAAAEAAAACAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzHA43MxoNeDIbDaIzGg2uMxoNrzMa + Da8zGg2vMxoNrzMaDa8zGg2vMxoNrjIbDaIzGg14MxwONwAAAAAAAAAArntu/9mtnf/WqJr/06aY/9Kk + l//MoZn/yZ6X/8aclv/EmZX/wZaT/7aRi/+4jov/MxsNoTQYDkoAAAAAAAAAALWCcv/84cv/++DI//ve + xP/73ML/+tq+//rYu//717j/+tS0//nSsf/60K7/7r2l/zMaDa40Gg1PAAAAAAAAAAC7iHX//OTP//zi + zP/74Mn/+97G//vcw//72r//+9m8//rWuP/61bX/+tOx/++/qP8zGg2vMxoNUAAAAAAAAAAAwo95//zn + 1P/85NH//OPO//zhyv/738f/+9zE//vbwP/62rz/+9e5//vVtv/wwav/MxoNrzMaDVAAAAAAAAAAAMiV + fP/86Nj//ObV//zl0v/8487/++HL//vgyP/73sT/+tzB//vZvv/62Lv/8MOv/zMaDa8zGg1QAAAAAAAA + AADPnID//Ovd//3q2v/859b//ObT//zkz//84sz/++DJ//vexv/73ML/+tu///HFsf8zGg2vMxoNUAAA + AAAAAAAA1aKD//3u4P/97N3//Orb//zo1//85tP//OTR//vizf/74cr/+9/G//vdw//yyLX/MxoNrzMa + DVAAAAAAAAAAANyph//+8OX//e7h//3s3//969v//enY//zm1f/85dH/++PO//zhyv/738f/8sm3/zMa + Da8zGg1QAAAAAAAAAADcqYf//fPq//3x5v/97+P//e3f//zr3P/96dn//efW//zl0//85M///OHL//PM + uv8zGg2vMxoNUAAAAAAAAAAA3KmH//317f/+8+r//fLn//3v5P/97eH//eze//zq2v/86Nf//ObT//zk + 0P/zzb3/NRsPqjUaDU0AAAAAAAAAANyph//++PL//vXu//307P/98uj//fDl//3u4v/97N7//era//zo + 2P/85tT/9Mm6/zogEZk9IhNDAAAAAAAAAADcqYf///r3//748//+9vD//vTs//7y6f/98eb//e/i///V + zP//1cz/9bOq/6l4bOBCKBh0SCccLgAAAAAAAAAA3KmH///9+///+/f//vn0//738f/+9e3//fPr//3x + 5//3pkP/96ZD/+CSQP5HKxqRTi4gSFk3IRcAAAAAAAAAANyph/////////77///7+P/++vX//vjx//72 + 7v/98+z/3KmH/+qzdv5oSDLCTzMkZFM3IiVVORwJAAAAAAAAAADcqYf/3KmH/9yph//cqYf/3KmH/9yp + h//eq4j/1qOE/9yph//ZqYktAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAK7/wADn/8AA + 0f/AAM//wADP/8AAzf/AAMv/wADK/8AAyP/AAMb/wADF/8APw/8= + + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmAuswertung.vb b/SW/20211125/_FRReporting/Formulare/frmAuswertung.vb new file mode 100644 index 0000000..5745edf --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmAuswertung.vb @@ -0,0 +1,256 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Drawing +Imports System.Windows.Forms + +Public Class frmAuswertung + +#Region "Deklarationen" + Dim Auswertungsdaten As DataSet + Dim Auswertungsname As String + + +#End Region + + + + ''' + ''' Initialisierung des Formulars + ''' + ''' + ''' + Sub New(ByVal Auswertungname As String, ByRef Auswerungsdaten As DataSet, Optional tempfilepath As String = "") + Me.InitializeComponent() + If tempfilepath <> "" Then Globals.TmpFilepath = tempfilepath + Me.Text = Me.Text + ": " + Auswertungname + Me.Auswertungsdaten = Auswerungsdaten + Me.Auswertungsname = Auswertungname + End Sub + + Private Sub frmAuswertung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Try + Me.C1Daten.DataSource = Me.Auswertungsdaten + Me.C1Daten.DataMember = Me.Auswertungsdaten.Tables(0).TableName + + Dim i As Integer + For i = 0 To Me.Auswertungsdaten.Tables(0).Columns.Count - 1 + Me.C1Daten.Splits(0).DisplayColumns(i).AutoSize() + If C1Daten.Columns(i).DataType.Name = "DateTime" Then + C1Daten.Columns(i).NumberFormat = "dd.MM.yyyy HH:mm:ss" + End If + If C1Daten.Columns(i).Caption = "Journaleintrag" Then + C1Daten.Splits(0).DisplayColumns(i).Width = 250 + End If + C1Daten.Splits(0).DisplayColumns(i).Locked = True + Next + Catch + End Try + End Sub + + + Private Sub TSBtnExcelExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnExcelExport.Click + Cursor = Cursors.WaitCursor + Dim fn As String = System.IO.Path.GetRandomFileName + fn = fn.Substring(0, Len(fn) - 4) + fn = Globals.TmpFilepath + "\" + fn + "" + 'Dim xls As New XLSLib.clsXLSLib + ''xls.Write_Excel(fn, Me.Auswertungsdaten.Tables(0)) + 'xls.Write_Excel(Me.Auswertungsdaten.Tables(0), True) + Dim fnn As String = fn + ".xlsx" + ' Rename(fn, fnn) + 'Process.Start(fnn) + Me.DatatableToExcel(Me.Auswertungsdaten.Tables(0), fnn) + Cursor = Cursors.Default + Exit Sub + Me.SaveFileDialog1.AddExtension = True + Me.SaveFileDialog1.Filter = "Excel-Dateien|*.xlsx|CSV-Dateien|*.CSV" + Me.SaveFileDialog1.DefaultExt.Insert(0, "*.xlsx") + + Me.SaveFileDialog1.ShowDialog() + If Me.SaveFileDialog1.FileName <> "" Then + If Me.SaveFileDialog1.FileName.EndsWith("xlsx") Then + Me.DatatableToExcel(Me.Auswertungsdaten.Tables(0), Me.SaveFileDialog1.FileName) + Else + Me.C1Daten.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", True, System.Text.Encoding.Default.BodyName) + End If + End If + + Exit Sub + + If Me.C1Daten.Splits(0).Rows.Count > 0 Then + Me.SaveFileDialog1.AddExtension = True + Me.SaveFileDialog1.DefaultExt.Insert(0, "*.csv") + Me.SaveFileDialog1.Filter = "CSV-Dateien|*.CSV" + Me.SaveFileDialog1.ShowDialog() + If Me.SaveFileDialog1.FileName <> "" Then + ' Me.C1Daten.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", "", True, System.Text.Encoding.Default.BodyName) + Me.C1Daten.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", True, System.Text.Encoding.Default.BodyName) + End If + + End If + End Sub + + Public Shared Function DatatableToExcel(ByVal aDataTable As DataTable, ByVal aOutputFilename As String) As Boolean + Application.DoEvents() + 'Dim f As New FrmFortschritt + Dim app As New Object + Dim wb As New Object + Dim ws As New Object + Try + ' f.Show() + Application.DoEvents() + ' f.ProgressBar1.Minimum = 0 + ' f.ProgressBar1.Maximum = aDataTable.Rows.Count + app = CreateObject("Excel.application") + 'Dim wb As Object + 'Dim ws As Object + ' Dim app As New Excel.ApplicationClass + ' Dim wb As Excel.Workbook + ' Dim ws As Excel.Worksheet + wb = app.Workbooks.add() + 'wb = app.Workbooks.Add() + ws = wb.ActiveSheet() + Dim dc As DataColumn + Dim dr As DataRow + Dim colIndex As Integer + Dim rowIndex As Integer + ' Columns erstellen + For Each dc In aDataTable.Columns + colIndex += 1 + app.Cells(1, colIndex) = dc.ColumnName + Next + ' Rows hinzufgen + For Each dr In aDataTable.Rows + ' f.ProgressBar1.Value = rowIndex + rowIndex += 1 + colIndex = 0 + For Each dc In aDataTable.Columns + colIndex += 1 + Try + app.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName) + Catch ex As Exception + Dim s As String = dr(dc.ColumnName) + s = "'" + s + Try + app.Cells(rowIndex + 1, colIndex) = s + Catch ex1 As Exception + app.Cells(rowIndex + 1, colIndex) = "'* Text beim Export entfernt" + End Try + End Try + Next + Next + ws.Columns.AutoFit() + wb.SaveAs(aOutputFilename) + app.Workbooks.Open(aOutputFilename) + ' Excel anzeigen wenn fertig exportiert + app.Visible = True + ws = Nothing + wb = Nothing + app = Nothing + + 'f.Close() + Return True + Catch ex As Exception + 'f.Close() + MsgBox(ex.Message) + End Try + + + End Function + + + Private Sub TSBtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnPrint.Click + Dim fontbold As New Font("Arial", 12, FontStyle.Bold) + Dim fontregular As New Font("Arial", 12, FontStyle.Regular) + + With Me.C1Daten.PrintInfo + .PageHeaderStyle.Font = fontbold + .PageSettings.Margins.Bottom = 20 + .PageSettings.Margins.Top = 80 + .PageSettings.Landscape = True + .PageFooter = "Seite \p von \P" & vbLf & "Druckdatum " & Now() + .PageHeader = Me.Auswertungsname + .ShowProgressForm = True + .UseGridColors = True + .RepeatColumnHeaders = True + .VarRowHeight = .RowHeightEnum.StretchToFit + .WrapText = C1.Win.C1TrueDBGrid.PrintInfo.WrapTextEnum.NoWrap + .PageBreak = .PageBreaksEnum.OnColumn + .FillAreaWidth = .FillEmptyEnum.None + .PrintPreview() + End With + + End Sub + + + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + + + Private Sub C1Daten_FetchScrollTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchScrollTipsEventArgs) Handles C1Daten.FetchScrollTips + Try + Select Case e.ScrollBar + Case C1.Win.C1TrueDBGrid.ScrollBarEnum.Horizontal + e.ScrollTip = Me.C1Daten.Columns(e.ColIndex).Caption + Case C1.Win.C1TrueDBGrid.ScrollBarEnum.Vertical + e.ScrollTip = CStr(e.Row + 1) & " / " & CStr(Me.Auswertungsdaten.Tables(0).Rows.Count) + End Select + e.TipStyle.ForeColor = Color.Blue + Catch + End Try + + End Sub + + Private Sub ContextMenuStrip1_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening + If Me.C1Daten.SelectedCols.Count > 0 Then SpalteLschenToolStripMenuItem.Enabled = True Else Me.SpalteLschenToolStripMenuItem.Enabled = False + End Sub + + Private Sub SpalteLschenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpalteLschenToolStripMenuItem.Click + Dim i As Integer + For i = 0 To Me.C1Daten.SelectedCols.Count - 1 + Me.Auswertungsdaten.Tables(0).Columns.Remove(Me.C1Daten.SelectedCols(i).Caption) + Me.Auswertungsdaten.AcceptChanges() + Next + Me.C1Daten.DataSource = Nothing + Me.C1Daten.DataSource = Me.Auswertungsdaten + Me.C1Daten.DataMember = Me.Auswertungsdaten.Tables(0).TableName + + For i = 0 To Me.Auswertungsdaten.Tables(0).Columns.Count - 1 + Me.C1Daten.Splits(0).DisplayColumns(i).AutoSize() + If C1Daten.Columns(i).DataType.Name = "DateTime" Then + C1Daten.Columns(i).NumberFormat = "dd.MM.yyyy HH:mm:ss" + End If + If C1Daten.Columns(i).Caption = "Journaleintrag" Then + C1Daten.Splits(0).DisplayColumns(i).Width = 250 + End If + C1Daten.Splits(0).DisplayColumns(i).Locked = True + Next + + End Sub + + Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click + Me.SaveFileDialog1.AddExtension = True + Me.SaveFileDialog1.Filter = "Excel-Dateien|*.xlsx|CSV-Dateien|*.CSV" + Me.SaveFileDialog1.DefaultExt.Insert(0, "*.xlsx") + + Me.SaveFileDialog1.ShowDialog() + If Me.SaveFileDialog1.FileName <> "" Then + If Me.SaveFileDialog1.FileName.EndsWith("xlsx") Then + Me.DatatableToExcel(Me.Auswertungsdaten.Tables(0), Me.SaveFileDialog1.FileName) + Process.Start(Me.SaveFileDialog1.FileName) + Else + Me.C1Daten.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", True, System.Text.Encoding.Default.BodyName) + Process.Start(Me.SaveFileDialog1.FileName) + End If + End If + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmCRReporting.designer.vb b/SW/20211125/_FRReporting/Formulare/frmCRReporting.designer.vb new file mode 100644 index 0000000..01e9643 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCRReporting.designer.vb @@ -0,0 +1,123 @@ + _ +Partial Class frmcrreporting + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmcrreporting)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.PreviewControl1 = New FastReport.Preview.PreviewControl() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.AllowMerge = False + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(933, 24) + Me.MenuStrip1.TabIndex = 4 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'DateiToolStripMenuItem + ' + Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BeendenToolStripMenuItem}) + Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" + Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.DateiToolStripMenuItem.Text = "&Datei" + ' + 'BeendenToolStripMenuItem + ' + Me.BeendenToolStripMenuItem.Name = "BeendenToolStripMenuItem" + Me.BeendenToolStripMenuItem.Size = New System.Drawing.Size(120, 22) + Me.BeendenToolStripMenuItem.Text = "&Beenden" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(933, 25) + Me.ToolStrip1.TabIndex = 5 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'PreviewControl1 + ' + Me.PreviewControl1.BackColor = System.Drawing.SystemColors.AppWorkspace + Me.PreviewControl1.Buttons = CType(((((((((FastReport.PreviewButtons.Print Or FastReport.PreviewButtons.Find) _ + Or FastReport.PreviewButtons.Zoom) _ + Or FastReport.PreviewButtons.Outline) _ + Or FastReport.PreviewButtons.PageSetup) _ + Or FastReport.PreviewButtons.Edit) _ + Or FastReport.PreviewButtons.Watermark) _ + Or FastReport.PreviewButtons.Navigator) _ + Or FastReport.PreviewButtons.Close), FastReport.PreviewButtons) + Me.PreviewControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.PreviewControl1.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.PreviewControl1.Location = New System.Drawing.Point(0, 49) + Me.PreviewControl1.Name = "PreviewControl1" + Me.PreviewControl1.PageOffset = New System.Drawing.Point(10, 10) + Me.PreviewControl1.Size = New System.Drawing.Size(933, 487) + Me.PreviewControl1.TabIndex = 6 + Me.PreviewControl1.UIStyle = FastReport.Utils.UIStyle.Office2007Silver + ' + 'frmcrreporting + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(933, 536) + Me.Controls.Add(Me.PreviewControl1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmcrreporting" + Me.Text = "Auswertung" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BeendenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents PreviewControl1 As FastReport.Preview.PreviewControl +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmCRReporting.resx b/SW/20211125/_FRReporting/Formulare/frmCRReporting.resx new file mode 100644 index 0000000..4aa5dae --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCRReporting.resx @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 332, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZALDsMwCEM5OkfLzbIaMGH5dJkligL2a1o5 + qP9RW3VVXYpzqLV2D+CZQVU/Y27uIg4OQQAJXz+hDsyEDtVQ7dib+1GH1fpUDljD6OF5HgjvKgHvN+iC + A0O1EvB+A8ghPvgqB4j9xPlHhidVB2lwwICfbkBxMAFGqHbszb1RGhywhtGxN/dGXAbgGD4CqACMMGZR + VwrA/Rtn/QiKfADckGXYsnwKqAAAAABJRU5ErkJggg== + + + + + AAABAAgAICAQAAEABADoAgAAhgAAABAQEAABAAQAKAEAAG4DAAAwMAAAAQAIAKgOAACWBAAAICAAAAEA + CACoCAAAPhMAABAQAAABAAgAaAUAAOYbAAAwMAAAAQAgAKglAABOIQAAICAAAAEAIACoEAAA9kYAABAQ + AAABACAAaAQAAJ5XAAAoAAAAIAAAAEAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAAAAAAA//8A/wAAAP8A/wD//wAA////ABEQ + AAAAAAAAAAAAAAAAARERF4iIiIiIiIiIiIiIiAERERf///////////////gBEREX///////////////4 + ARERF///////////////+AERERf///////////////gBEREX///////////////4ARERF/////////// + ////+AERERf///////////////gBEREX///////////////4ARERF///////////////+AERERf///// + //////////gBEREX///////////////4ARERF///////////////+AERERf///////////////gBEREX + ///////////////4ARERF///////////////+AERERf///////////////gBEREX///////////////4 + ARERF///////////////+AERERf///////////////gBEREX///////////////4ARERF/////////// + ////+AERERf///////////////gBEREX///////////////4ARERF////////////3AAAAERERf///// + //////9/+HAREREX////////////f4cBERERF////////////3hwERERERf///////////93AREREREX + ////////////cBERERERF3d3d3d3d3d3d3ERERER4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAP4AAAH+AAAD/gAAB/4AAA/+AAAf8oAAAAEAAAACAAAAABAAQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAAA + AAAA//8A/wAAAP8A/wD//wAA////ABEAAAAAAAABEXiIiIiIiAERf//////4ARF///////gBEX////// + +AERf//////4ARF///////gBEX//////+AERf//////4ARF///////gBEX//////+AERf//////4ARF/ + ////8AABEX/////49xERf/////hxERF3d3d3dxERwAH//8AB///AAf//wAEBEcAB///AAf//wAH//8AB + ARHAAf//wAH//8AB///AAQERwAH//8AD///AB///wA8BESgAAAAwAAAAYAAAAAEACAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Azs7OANbW1gDe3t4A5+fnAO/v7wD39/cA///3AP/3xgD/770A7961AP/n + rQD/9+cA/+/WAP+1QgD/rTEA/60pAP+cAAD/xnMA/71jAP+1UgD3jAAA/9alAP+1WgDWcwAA53sAAO+E + AAD/794A/+fOAP/37wD/3r0A786tAP/WrQD/zpwA98aUAN6lawDenFoA3pRKAN6MOQDnrXsA/9a1APfO + rQDvxqUA772UAOe1jAC9YxgA/+fWAP/exgDevaUA972UAP/OrQDerYwA/9a9AN61nADnvaUA3qWEANac + ewD/7+cA/97OAM6UewDGjHMA1q2cAM6llADWnIQAtYRzAK17awC9hHMAxoRzAK2EewC9e2sAtXNjAMac + lAC9lIwAtYyEAKV7cwCte3MApXNrALV7cwCtc2sAvXNrALVrYwCtY1oA9+/vAP/39wD3zs4A/87OAP/G + xgD/vb0Ae1paALWEhACte3sA/7W1AKVzcwCca2sA/62tAJRjYwD/paUAjFpaAJxjYwC1c3MAhFJSAP+c + nACUWloAjFJSAK1jYwCESkoApVpaAJxSUgClUlIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5u + bm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5u + blhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYbm5ubm5ubm5ubm5ua2thYWFhYWdkZGRk + ZGRkZGRkZGRkZGRkZGRkZGRkZGRpaWlYbm5ubm5ubm5ubm5ubFRVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + VVVVVVVVVVVVIWlYbm5ubm5ubm5ubm5ubAEcLy8vLy8vLy8eHh4eHjQ0KCgoKCgoKCAgICAyMjIyVWRY + bm5ubm5ubm5ubm5ubAEcOi8vLy8vLy8vHh4eHh40NCgoKCgoKCgoKCAgIDIyVWRYbm5ubm5ubm5ubm5u + agEcHBwvLy8vLy8vLy8eHh4eHjQ0KCgoKCgoKCAgIDIyVWRYbm5ubm5ubm5ubm5uagIcHBwcOi8vLy8v + Ly8eHh4eHh40NCgoKCgoKCgoICAgVWRYbm5ubm5ubm5ubm5uagIcHBwcHDovLy8vLy8vLx4eHh4eNDQo + KCgoKCgoKCAgVWdYbm5ubm5ubm5ubm5uagIcHBwcHBwcLy8vLy8vLy8eHh4eHjQ0NCgoKCgoKCggVmFY + bm5ubm5ubm5ubm5uUQIuHBwcHBwcHC8vLy8vLy8vLx4eHh4eNDQoKCgoKCgoVmFYbm5ubm5ubm5ubm5u + UQIuLi4cHBwcHBwcLy8vLy8vLy8eHh4eHh40KCgoKCgoVmFYbm5ubm5ubm5ubm5uaAIuLi4cHBwcHBwc + HC8vLy8vLy8vHh4eHh4eNCgoKCgoVmFYbm5ubm5ubm5ubm5uaAIuLi4uLhwcHBwcHBw6Ly8vLy8vLy8e + Hh4eHjQ0KCgoV2FYbm5ubm5ubm5ubm5uUAMNLi4uLi4uHBwcHBwcHC8vLy8vLy8vHh4eHh40NCgoV2ZY + bm5ubm5ubm5ubm5uUAMNDS4uLi4uLhwcHBwcHDovLy8vLy8vLx4eHh4eHjQ0V2ZYbm5ubm5ubm5ubm5u + RgMbDQ0uLi4uLi4cHBwcHBwcOi8vLy8vLy8vHh4eHh40V19Ybm5ubm5ubm5ubm5uRgMbGxsNDS4uLi4u + LhwcHBwcHDovLy8vLy8vLx4eHh4eW19Ybm5ubm5ubm5ubm5uTwMbGxsbDQ0uLi4uLi4cHBwcHBwcLy8v + Ly8vLy8vHh4eW19Ybm5ubm5ubm5ubm5uTwQbGxsbGw0NLi4uLi4uHBwcHBwcHDovLy8vLy8vLx4eW2JY + bm5ubm5ubm5ubm5uRQQbGxsbGxsbLi4uLi4uLi4cHBwcHBwcLy8vLy8vLy8eW11Ybm5ubm5ubm5ubm5u + RQQbGxsbGxsbGw0NLi4uLi4uHBwcHBwcHC8vLy8vLy8vW11Ybm5ubm5ubm5ubm5uQwQ5ORsbGxsbGxsN + DS4uLi4uLi4cHBwcHBw6Ly8vLy8vW11Ybm5ubm5ubm5ubm5uQwQ5OTkbGxsbGxsbGw0uLi4uLi4uHBwc + HBwcOi8vLy8vW11Ybm5ubm5ubm5ubm5uPAQMOTk5ORsbGxsbGxsNDS4uLi4uLhwcHBwcHDovLy8vXl1Y + bm5ubm5ubm5ubm5uPAQMOTk5ORsbGxsbGxsbGw0NLi4uLi4cHBwcHBwcLy8vXl1Ybm5ubm5ubm5ubm5u + OwQMDDk5OTk5GxsbGxsbGxsNLi4uLi4uHBwcHBwcHDovXlxYbm5ubm5ubm5ubm5uOwUdDAwMOTk5OTkb + GxsbGxsbDS4uLi4uLi4cHBwcHBwcXlxYbm5ubm5ubm5ubm5uOAUdDB0MDDk5OTk5GxsbGxsbGw0NLi4u + Li4uHBwcHBwcYFxYbm5ubm5ubm5ubm5uOAUdHR0MDAwMOTk5ORsbGxsbGxsbDS4uLi4uLhwcHBwcYEpY + bm5ubm5ubm5ubm5uPwUdHR0dDAwMDDk5OTkbGxsbGxsbGw0NLi4uLi4uHBwcYEpYbm5ubm5ubm5ubm5u + PwUdHR0dHR0MDAwMOTk5GxsbGxsbGxsNDS4uLi4uLhwcYEpYbm5ubm5ubm5ubm5uNwUdHR0dHR0dHQwM + OTk5OTkbGxsbGxsbDQ0uLi4uLi4cYFpYbm5ubm5ubm5ubm5uN1JTHR0dHR0dHR0MDDk5OTk5GxsbGxsb + GxsNDS4uLi4uZVpYbm5ubm5ubm5ubm5uMwZTUx0dHR0dHR0MDAwMDDk5OTkbGxsbGxsbDQ0uLi4uZURY + bm5ubm5ubm5ubm5uMwYHB1NTHR0dHR0dHQwMDAw5OTk5GxsbGxsbGxsNLi4uZURYbm5ubm5ubm5ubm5u + LAYHBwdTUx0dHR0dHR0dDAwMOTk5ORsbGxsbGxsNDQ0uZURYbm5ubm5ubm5ubm5uLAYHBwcHB1MdHR0d + HR0dHQwMDDk5OTkbGxsbV1tbXl5gZVlYbm5ubm5ubm5ubm5uLAYHBwcHB1NTHR0dHR0dHR0dDAwMOTk5 + GxtISElJSUlZY2pYbm5ubm5ubm5ubm5uKwYABwcHBwcHU1MdHR0dHR0dHQwMDDk5OTlMFBEVGhkYLVhu + bm5ubm5ubm5ubm5uKwAAAAAHBwcHB1NTHR0dHR0dHR0MDAw5OTlOIRQODxAmWG5ubm5ubm5ubm5ubm5u + MQAAAAAABwcHBwdTU1MdHR0dHR0dDAwMDDlBFhcUDiVYbm5ubm5ubm5ubm5ubm5uMQAAAAAAAAAHBwcH + B1MdHR0dHR0dHQwMDAxLCxMXJFhubm5ubm5ubm5ubm5ubm5uIgAAAAAAAAAABwcHBwdTUx0dHR0dHR0d + DAxNCRIjWG5ubm5ubm5ubm5ubm5ubm5uIgAAAAAAAAAAAAAHBwcHB1NTHR0dHR0dHQxACCdYbm5ubm5u + bm5ubm5ubm5ubm5uIQAAAAAAAAAAAAAGBgYGBgYGBgYGUlIFBQVAClhubm5ubm5ubm5ubm5ubm5ubm5u + ISgoICkpKR8qKio2NjAwNTU1PT09Pj4+R0dCSW5ubm5ubm5ubm5ubm5u////////AAD///////8AAP4A + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAA/8AAPwAAAAH/wAA/AAAAA//AAD8AAAAH/8AAPwA + AAA//wAAKAAAACAAAABAAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD//v0A/f39AP/9 + /AD8/PsA//z5AP/8+AD7+/sA/vv3AP/69gD5+fkA//n1AP759AD3+PcA//jzAP748wD++PIA//fxAPb2 + 9gD+9/EA9fb2AP738AD+9vAA/vbvAP717wD09PQA/vXuAP717QD99e0A/fXsAPLz8wD+9OwA/vTrAP30 + 6wDx8vIA/vPqAP3z6gD+8+kA/fPpAP7y6QD+8ugA/fLoAP3y5wDv8PAA/vHnAP7x5gD98eUA/fDmAO7u + 7wD98OUA/fDkAP3v5QD97+QA/u/jAP3v4wD97+IA/e7jAP3u4gDs7OwA/e7hAAAAAAD97eEA/e3gAOrr + 6gD97d8A/ezfAP3s3gD87N4A/ezdAP3r3gD97NwA6OnpAP3r3AD869wA/evbAP3q2wD86tsA/eraAPzq + 2gD96tkA5ufnAP3p2QD86dkA/enYAP3p1wD86NkA5eblAPzo2AD86NcA/OjWAPzn1wD959YA/OfWAPzn + 1QDj5OQA/OfUAPzm1QD859MA/ufSAPzm1ADi4+MA/ObTAPzm0gD85dMA/OXSAPzl0QD75dEA/OTRAPzk + 0AD75NAA/OTPAPvkzwD749AA/OPPAPzjzgD85MwA++POAPzjzQD84s4A/OLNAPvizQD84swA++LMAPvi + ywD84cwA/OHLAPvhywD74coA+eHKAPzgygD74MoA/ODJAPvgyQD74MgA+9/IAPvfxwD738YA+97HAPve + xgD73sUA9t3HAPvdxQD73cQA+93DAPTcxwD73MMA+tzDAPvcwgD63MIA+9vBAPvbwAD628AA8tnFAPva + vwD927sA+tq+APvavQD72b4A+tm+APDYwwD62b0A+9i8APrYvAD62LsA+ti6AO7WwgD617oA+te5APrX + uAD61rkA/dK/APrWuAD617YA+ta3AOzUwAD61bgA+tW2APnVtgD21bUA+tS1APrUswDp0b4A+tOzAPnT + sgD+1awA9NK0APnSsAD60a4A8dCyAObNuwDu0bAA7dCvAOTMuQD/2JYA782xAOLKuQDtzK8A7MquAN/H + twDexrYA6sesAP/MmQDcxLQA68eoAOfEqwDawrMA5sKpANjAsgD/zoUA5MGoANa+sADiwKYA68CeAPez + swDTu68A372lANy7pADQuKwAzrerAPesrADMtakAybKoAM2xqADltpEA9qGiAP+9YADVpZkAzK2KAPia + mgDRo5MA/rVUAM2ekQDJmY4Ax5iNANiViQCqmpAAxpaMAMWVjADWk4cA1ZOGAMOTjADXkoQAw5KLANaP + gwDLmXMA0JxoAO6hRwD/qTEAu4puAPyiIgDLj1MA55U4AN6LNgDVgjUAAAAAAGZmZgD+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+///////////////////////////////+/v7+/v7+/uXi + 5+jp6ezt8PLy8vLy8vLy8vLy8vDq//7+/v7+/v7+3qqqqqqqqqqqqqqqqqqqqqqqqqqqye7//v7+/v7+ + /v7dZISGio2SlZaZoKKnq7GztLe6u7uq7v/+/v7+/v7+/txkfoKGh4uOlJebnKGkp6+ws7a2uqrv//7+ + /v7+/v7+2l51fYGEh4uOkZeWnqGjpquss7O3qu///v7+/v7+/v7ZVm91en6Dh4qNj5WXm6CipqitsLaq + 7//+/v7+/v7+/tZQam5xd36ChYqNj5SVmZ2goamtsKrv//7+/v7+/v7+1kdlaGlxcnyBhIeLjpOVlpuh + o6aoqu///v7+/v7+/v7SR11jZWlxdHl+hIeKjY6TlpmeoKaq7//+/v7+/v7+/s8/WFxjZ2lsdHd9hIWH + io6TlZmdoqrv//7+/v7+/v7+zT9NU1hdY2htcXR5fYOHi42SlJaZqu///v7+/v7+/v7KOkhOUlRcY2Zp + b3Z5fYKFio2PlJeq7//+/v7+/v7+/sc6QkhKUVdcY2dobG91eYKFh4qOkarv//7+/v7+/v7+xjBAQ0RJ + TVdZXWFnaXFyeX6BhoiLqu///v7+/v7+/v7DKzk9QURKTFFXXGNnaWxyd3uBhomq7//+/v7+/v7+/sAi + NDY9QENGS1JTWF9jamtueHl/hKrv//7+/v7+/v7+vSIsMTY5PkNESk5SWF1jZWtwcnh9qu///v7+/v7+ + /v61HikqLjU3O0FCSE5RUlxgZWlscniq7//+/v7+/v7+/rUZIyYsLTQ4OUBCSUpPV1ldY2hrbqrv//7+ + /v7+/v7+rhQdISYqLTE2OT1BRExOVVRbY2hqqu///v7+/v7+/v6lEhccICMnLC8yNjtBQkhMUVdcX2Wq + 7//+/v7+/v7+/p8NFhgaHyEmKS80NjtAQkNLUVdaXaru//7+/v7+/v7+mA0QExYaGyAlKS0xNjk+QENI + TVJYqvP//v7+/v7+/v6QCgsPEBUaGx0jJyotNDc7PkXV2+Dk8f/+/v7+/v7+/owHCAkMEBMXGh8jJigt + MzY73/b7/P34//7+/v7+/v7+gAQFCAkMDhAVGhshIygqMTTU4ff5+v/+/v7+/v7+/v57AgMFBggLDBAT + FxsfJCYsMcvQ5vX//v7+/v7+/v7+/nMBAQMFBgkJDA8RFxwcJCYsv8H0//7+/v7+/v7+/v7+YgACBwoN + FBkiKzA6P0dQXmS+4//+/v7+/v7+/v7+/v64mqissrm8wsTFyMzO0dPX2M7r/v7+/v7+/v7+//////gA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/AAAD/wAAB/8AAA//AA + Af8oAAAAEAAAACAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4JJBAPemQwBmZmYArntuALWC + cgC7iHUA6rN3AMKPeQDIlXwAs4h+AM+cgADVooMA1qOEANyphwDeq4gAuI6LALaRiwDBlpMAxJmVAMac + lgDJnpcA0qSXANOmmADMoZkA1qiaANmtnQDuvaUA77+oAPWzqgDwwasA+tCuAPDDrwDxxbEA+dKxAPrT + sQD61LQA8si1APrVtQD71bYA8sm3APrWuAD717gA+9e5APTJugDzzLoA+ti7APvZvAD62rwA8829APvZ + vgD62r4A+9q/APrbvwD728AA+tzBAPvcwgD73MMA+93DAPvcxAD73sQA+97GAPvfxgD738cA++DIAPvg + yQD74coA/OHKAPvhywD84csA/9XMAPzizAD74s0A++POAPzjzgD85M8A/OTQAPzk0QD85dEA/OXSAPzl + 0wD85tMA/ObUAPzn1AD85tUA/OfWAP3n1gD86NcA/OjYAP3p2AD96dkA/OraAP3q2gD86tsA/evbAPzr + 3AD8690A/ezdAP3s3gD97N8A/e3fAP3u4AD97eEA/e7hAP3u4gD97+IA/e/jAP3v5AD98OUA/vDlAP3x + 5gD98ecA/fLnAP3y6AD+8ukA/fPqAP7z6gD98+sA/fPsAP307AD+9OwA/fXtAP717QD+9e4A/vbuAP72 + 8AD+9/EA/vjxAP748gD++PMA/vn0AP769QD/+vcA//v3AP/7+AD//fsA//77AAAAAAD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAICAgICAgICAgIC + AoiIiAMZGBYVFxQTEhEQDwKIiIgERD87NzItKSMhHhoCiIiIBUpGQDw4My4oJSIbAoiIiAdSTElCPjo1 + LyomHQKIiIgIV1NOSUM/OzYxLR8CiIiICl9bVFBKRkA8NzQgAoiIiAtkYFxWUExHQT05JAKIiIgNbGZi + XVhTTUhCPicCiIiIDXJtaWNeWVVPSkQsAoiIiA14c29qZWFaVlBLMAKIiIgNf3p2cGtnYVtXUSsCiIiI + DYOAfHdxbWhFRRwJAoiIiA2GhIF9eXRuAQEAAoiIiIgNiYeFgn57dQ0GAoiIiIiIDQ0NDQ0NDgwNAoiI + iIjgAf7+wAFqbsABfoLAAY2PwAGZncABqa3AAe//wAH+/sAB/v7AAWVowAFyfMABh4vAAZWWwAOjpsAH + 7//AD/7+KAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACsrAAY3EhIOORwOEjMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMa + DRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQzGg0UMRgMFTMaDRQzGg0UMxoNFDMa + DRQzGg0UMxoNFDMaDRQzGg0UMxoNFDMaDRQ5HA4SNxISDisrAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMfChkzHA43NBwOSTQaDU8zGg1QMxoNUDMaDVAzGg1QMxoNUDMa + DVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMhwNUTMa + DVAzGg1QMxoNUDMaDVAzGg1QMxoNUDMaDVAzGg1QMxoNUDQaDU80HA5JMxwONzMfChkrKwAGAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMcDjczGg14MhsNojMaDa4zGg2vMxoNrzMa + Da8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMa + DbA0HA+yMxoNsDMaDbAzGg2wMxoNrzMaDa8zGg2vMxoNrzMaDa8zGg2vMxoNrzMaDa4yGw2iMxoNeDMc + Djc3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJfX/+QXV3/j1xc/45b + W/+NWlr/jFlZ/4tYWP+JVlb/h1RU/4dUVP+GU1P/hFFR/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQ + UP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+DUFD/g1BQ/4NQUP+CT0//gE1N/39M + TP+ATU3/MxsNoTQYDko5HA4SAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRh + Yf/yzMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M + zP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///M + zP//zMz//8zM///Mmf+BT0//MxoNrjQaDU8zGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJRhYf/MzMz/++DH//vfxv/738X/+97F//vdxP/73MP/+tvB//vcwP/72sD/+tq+//vZ + vv/62bz/+9i7//vYuv/617n/+ta4//rVt//61bb/+tW1//rUtP/607P/+tOy//nSsP/50a//+dGv//rR + rv/60Kz/+c+s//nPq//6zqn/+c2o///Ky/+CUFD/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJViYv/Nzc3//OHJ//vfyP/738f/+97G//vexf/73cT/+9zD//vc + wv/728D/+9vA//vavv/72r3/+9m9//vYu//62Lr/+9e6//vXuP/61rf/+tW3//rVtf/61LT/+tOz//rT + s//60rH/+tKw//rSr//50a7/+tCt//nQrP/5z6v/+s6q///Jyf+EU1L/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJdkZP/Ozs7/++HK//vhyf/74Mn/+9/H//ve + xv/73sX/+97E//vcw//73ML/+9zB//vbwP/727//+9q+//vZvf/62Lv/+ti7//rYuv/717n/+ta4//rV + t//61bb/+tW1//rUs//507L/+tKx//rSsP/50a//+dGu//nQrv/6z6z/+c+r///IyP+FVFP/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhlZf/Q0ND/++HL//zi + y//84Mr/++DJ//vfyP/838f/+97G//vexP/73cP/+9zC//vbwv/728H/+tq///vavv/62b7/+9m8//vY + u//72Lr/+te5//vXuP/61bf/+tW2//rVtf/61LT/+tSy//rSsv/50rD/+tKw//nRrv/60K7/+tCs///G + x/+HVVT/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlm + Zv/R0dH//OPN//zizP/84cz//ODK//vhyf/838j//N/H//vexv/73sX//N7E//vcw//73ML/+9zB//va + wP/72r//+tq+//vZvf/62Lz/+ti6//vXuf/617n/+ta3//rVt//61Lb/+tS0//rTs//507P/+tKx//rS + sP/60a//+tCu///Fxf+IV1b/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJxpZ//S0tL//OPP//zjzv/74s3/++LM//zhy//74cn/++DI//zfx//83sf//N7G//ve + xP/73MP/+9zC//vbwf/728D/+9q///vZvv/72b3/+ti8//vYu//717r/+9a5//rWuP/61bf/+tW2//rU + tP/61LT/+tSy//rTsv/60rD/+dGv///Dw/+JWVf/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5raP/T09P//OXQ//vkz//8487//OLN//zhzP/74cv/++HK//vg + yP/738f/+97G//zexf/73sX/+93E//vcw//73ML/+9vA//rawP/62r7/+tm+//rYvP/62Lv/+9i6//rX + uf/617j/+ta3//rVtv/61LX/+tS0//rTs//607L/+dKx///Cwv+LWVj/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFuav/V1dX//OXS//zk0f/849D//OPO//zi + zf/84sz//OHL//vhyv/84Mn/++DI//vex//73sb/+93F//vdxP/73cP/+9zB//vcwf/727//+9q+//va + vf/72b3/+ti7//rYu//617r/+ta4//rWt//61rb/+tW1//rUtP/607P/+tOz///BwP+MW1r/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKNwa//W1tb//ObT//zl + 0v/85ND/++TP//zkzv/7483/++LN//vizP/84Mv/++HJ//vgyP/738f/+97G//vexf/73sT/+93E//vc + wv/73MH/+9vA//rav//62r7/+9m9//rZvP/62Lr/+ti5//vXuf/61rf/+tW3//rVtv/61bT/+tOz//+/ + v/+NXVv/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKVy + bP/X19f//ObU//zm0//85tL//OXR//zk0P/848///OPO//vizf/74sz/++HL//zhyv/84Mj/+9/I//ve + x//73sX/+97E//vdw//73MP/+tzB//vbwP/728D/+9q+//vavf/72Lz/+ti7//rYuv/617n/+ta4//rW + tv/61bb/+tS0//++vf+OX1z/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAKh1bv/Y2Nj//OfW//zm1f/85tP//OXS//zl0f/85ND//OPQ//zjzv/84s3//OLN//vh + y//84Mr/++DJ//vgyP/738f/+97G//vexf/73cT/+9zD//vcwv/728H/+9vA//ravv/62r7/+9m8//vY + vP/617r/+9i5//rXuP/61bf/+ta3//+8vP+QYF7/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKt4b//a2tr//OjX//zn1v/859X//ObU//zm0//85dL//OXR//zk + 0P/848//++LO//vizP/84sv/++HL//zgyv/738j/+9/H//zfxv/83sb/+93E//vdw//73MP/+9vB//rb + wP/72r//+9q+//vZvf/62bv/+ti6//rYuv/617n/+ta4//+7uv+SYV//MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK57cP/b29v//ejZ//zo1//86Nf//OfV//zn + 1P/85tT//OXS//vl0f/85ND//OPP//vjzv/84s3/++HM//zhyv/74Mr//ODI//zfyP/738f/+97F//vd + xP/73cT/+9zC//rbwv/628D/+tu///vavv/72b3/+tm8//rYu//62Lr/+te5//+6uf+SY2H/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALB9cf/c3Nz//OnZ//3p + 2f/86df//OjW//zo1f/85tX//ObU//zm0//75dH/++TQ//zj0P/8487//OLN//vhzf/74cv/++HK//vg + yf/738j/+97H//vexf/73sX/+93E//vcw//63ML/+9vB//vbv//72r7/+tm+//vZvP/72Lv/+te7//+4 + uP+UZGL/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALJ/ + c//d3d3//Orb//zq2v/96tn//OnY//zo1//86Nb//efV//zm1P/85tL//OXS//zk0f/849D//OPP//zi + zv/84sz/++HM//vhyv/84Mn//ODI//vfx//73sb/+97F//vdxP/73cP/+9zC//vcwf/628D/+9u///rZ + vv/62bz/+ti7//+2t/+VZmT/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALaDdP/f39///Ovc//3q2//96tv//enZ//zp2P/96Nf//OjW//zn1f/85tT//OXT//zl + 0v/85NH//OTQ//vjz//8487/++LN//ziy//84cv/++DJ//vgyP/838j//N/G//vexf/73sT/+93D//vc + wv/73ML/+9vB//vawP/72r7/+tq9//+1tf+XaGX/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFdf/g4OD//eze//zr3f/969z//Ora//zq2v/86dn//OnY//3n + 1v/859X//OfV//zm0//85tL/++XR//zk0P/749D/++PO//zizf/74sz/++HL//vgyv/74Mn/++DI//zf + x//73sb/+93F//vdw//73MP/+tzC//vbwf/727//+9q+//+0tP+YaWf/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALuId//h4eH//O3f//3s3//87N3//evc//3q + 2//86tr//OnZ//zp2P/96Nf//OjV//zn1f/85tT//ObT//zl0v/75ND//OTP//vjzv/8487//OLN//vh + y//84cr//ODJ//vgyP/738f/+97G//vexf/73cT/+93D//vcwv/73MH/+9vA//+ysv+Zamj/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6LeP/i4uL//e7g//3t + 4P/97d7//eze//3r3P/86tz//Ora//3p2f/86dj//ejX//zo1v/859X//OfU//zm0//85tL//OXR//vk + 0P/85M///OLO//zjzP/84cv//OHK//vhyf/74Mn/+9/I//vfx//73sb/+97F//vdxP/73ML/+tvC//+w + sf+bbGr/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCN + ef/k5OT//e7i//3u4f/87eD//ezf//3s3v/9693//evc//3r2//96dr//enZ//zo2P/859f//OfV//zn + 1P/85tT//ObS//zl0f/85ND/++PQ//zjzv/7487/++LM//vhy//74cr//ODJ//vfyP/83sb//N7G//ze + xf/73sT/+9zC//+wr/+cbWv/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMOQe//l5eX//fDj//3v4v/97uH//e3g//3t4P/87N7//evd//3q3P/969v//Ora//3p + 2f/96dj//OjW//zo1f/859X//ObU//zm0v/85dL/++XQ//zkz//848//++PN//vizf/74sz/++HK//vg + yv/738j/+9/H//vfxv/73cX/+97E//+urf+db2z/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMWSff/m5ub//vDl//3v5P/+7+P//e7h//3u4P/97d///e3e//3r + 3f/8693//erb//3q2v/86tn//enY//zp1//86Nb//OfW//zm1P/85tP//OXS//zl0f/85ND/++TP//vi + zv/84s3//OLM//vhyv/74Mn//ODJ//vfx//738b/+97F//+srf+fcW3/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiVfv/n5+f//fHm//7w5f/97+T//u/j//3u + 4v/97uH//e3g//3s3//8693//Ovd//zq2//969r//era//zp2P/96df//OfX//3n1f/859X//ObU//zl + 0v/85NH//OTQ//zjz//8487//OLN//zizP/74cv//OHK//vgyf/738j//N/H//+rq/+gcm//MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqXf//p6en//fLn//3x + 5v/98eb//fDl//3v4//97uL//e7h//3t4P/97eD//eze//zr3f/869z//erb//zp2v/96dn//OjY//zo + 1//959b//OfV//zm0//85dL//OXS//vl0f/75ND/++PP//zizf/74s3//OHL//zgyv/74Mr/++DI//+p + qf+hdHD/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM2a + gP/q6ur//vLp//7x5//98uf//fDm//3w5f/+7+P//e7j//3u4f/97eD//e3g//3s3//97N7//evc//zq + 2//96tv//erZ//zo2P/96Nf//OfW//zn1f/85tT//ObT//zm0f/85NH//OTQ//zjzv/7487//OLN//zh + y//74cv/++DK//+oqP+idXL/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANCdgf/r6+v//fPq//7y6f/98uj//fHn//7x5v/98OX//fDk//3v4v/97uL//e7h//3t + 4P/97N///eve//3r3P/969v//era//zp2v/86dj//OnX//3o1v/859X//ObU//zm0//85tL//OXR//zk + 0f/848///OPO//vizf/74sz/++HL//+np/+jd3P/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANOggv/s7Oz//fTs//3z6v/98+r//fLo//3x5//98eb//vDl//3w + 5f/+7+T//e/j//3u4f/97eD//e3f//3s3v/97N3//Ovc//3q2//96tr//OnZ//zo2P/96Nf//OjV//zn + 1P/859P//OXT//vl0f/85dD//OPQ//vjzv/84s7/++LM//+lpf+leXT/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWihP/u7u7//vXt//707P/+8+v//vPq//3y + 6P/98uj//fHn//7x5v/98OX//fDk//3v4//97uL//e7h//3t3//97N///eze//3r3P/869v//Ora//3p + 2f/96dj//ejX//zo1v/859X//OfU//zm0//85dL//OTR//zk0P/75M///OPO//+kpP+menb/MxoNrzMa + DVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANilhf/v7+///vXu//71 + 7f/+9Oz//fPr//7z6v/+8+r//vLo//3y5//+8eb//fDl//3v5P/97uP//e/h//3u4P/97eD//O3f//zs + 3v/9693//erc//zq2//86tn//enY//3o1//86Nf//efV//zn1f/85tP//OXS//zl0f/85ND/++TP//+i + o/+oe3f/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqn + hv/w8PD//vbw//727//99u3//vTt//306//+8+v//vPp//3y6f/+8uj//fHn//3w5f/97+T//e/k//7v + 4v/97uH//e3g//3t3//97N7//evd//zr3P/969v//era//zp2P/86Nj//OjX//zn1v/95tX//efU//zm + 0//85dH//OXQ//+goP+pfXj/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN2qiP/x8fH//vfx//738P/+9e///fbu//717f/99Oz//vTr//3z6v/98+n//fHn//7x + 5v/98eb//fDl//3w5P/97+P//e7i//3u4f/97eD//e3f//3r3f/969z//erc//zq2v/96dn//OnY//zo + 1//86Nb//OfU//zm1P/85dP//OXS//+gn/+qf3n/MxoNrzMaDVAzGg0UAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCtiv/z8/P//vjz//738v/+9/D//vbw//327v/+9e3//fTt//30 + 6//+8+r//fLp//7y6f/+8ef//vDm//3w5f/98OT//e/j//3u4v/97uH//e3g//3s3//97N7//Ozd//3r + 3P/96tr//OnZ//zp2P/96dj//OfW//zn1f/85tX//ObU//+enf+rgHv/MxoNrzMaDVAzGg0UAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOwi//09PT///j0//748//++PL//vfx//73 + 8P/+9u///vXu//707P/+9Ov//vPr//3y6v/+8un//fLo//3x5v/98OX//fDk//3v4//97+L//e7h//zu + 4P/97d///Oze//3r3f/869z//erb//3q2v/86dn//ejX//zo1//86Nb//OfV//+cnf+sgn3/NBsNrTQa + DU8zGg0UAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWyjP/19fX//vn2///4 + 9P/++PP//vfy//748f/+9/D//vXv//727v/99e3//vTs//706//98ur//vLp//3y5//98ef//vHm//7v + 5f/97+P//e/i//3v4v/87uD//ezf//3s3//97N3//Ovc//+8vf//uLf//7Oz//+urv//qan//6Sk//+g + n/+ug37/Nx4RozgcEUk5HA4SAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOe0 + jv/29vb//vr3//769v/++fT//vj0//748//+9/H//vfx//727//+9u///fXt//717f/+8+v//vPr//7y + 6f/+8uj//fLn//7x5v/98OX//fDk//3v4//97uL//e7h//3t3//97d//upGK/7mPiP+2jIb/tYqF/7OI + hP+yh4P/sYaB/7BwcP+bamn/OyEVhUAgFzg7JxQNAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOq3j//4+Pj//vv4//769//++fb///n1//749P/++PL//vfy//738f/+9vD//vbu//31 + 7v/+9e3//vPr//7z6//98+r//vLp//7y6P/98eb//fDl//7v5f/97+T//e7i//3u4f/97eD/pXJs//+0 + Uv//mQD/9Y8A/+uFAP/gegD/1nAA/79mGf9+UU7XQSUZUkQiGh5VKysGAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAO26kP/5+fn//vz6///7+P//+/f//vr2//759v/++fT//vjz//73 + 8v/+9/H//vbw//727//+9e7//vXt//716//+8+v//vLq//3y6f/98ej//fHn//3x5v/98OX//e/k//3v + 4//97uH/qHVu///Mmf//tFL//7BE//+rNv//qC3/2Yw5/4BTUNhAIxpXRyMcJE0zGgqAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC9kf/6+vr///37///8+v///Pn///v4//76 + 9v/++vb//vn1//758//++PP//vfx//738f/99vD//vXv//717v/+9Oz//fTr//3z6v/98+n//fHo//3x + 5//98eb//fHl//3w5P/97+P/q3hv///Wo///t1v//7RS//+wRP/bk0n/g1ZS2EMmGldFKRwlRi4XC4AA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPAkv/7+/v///38///9 + /P///Pv//vz5//77+P/++/f///r2//759f//+fT//vjy//748v/+9/D//vbv//727//+9e3//fXs//70 + 7P/98+r//vLp//3y6f/98ef//vDm//3w5f/98OX/rntw///grf//u2f//7db/92bW/+HWlTYQyYaV0Up + HCVGLhcLgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXC + k//9/f3///7+//7+/P///fz//vz7//78+f/++/j//vv3///69v/++fX//vj0//749P/++PL//vfx//72 + 8P/+9u///vXu//307f/99Oz//vTr//7z6v/+8un//fHo//7x5//98Ob/sH1x///ruP//wHT/3qFq/4pd + VthDJhpXRSkcJUYuFwuAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPfElf/+/v7//////////v///v3//v78//79+////Pr///v4///79///+vf///r2///5 + 9f//+PP///jy//748f/+9/D//vbw//717v/+9e3//vTs//7z7P/+8+r//vLp//7y6P/98ef/sn9z///1 + wv/gqHv/jmFX2kYpHVhMKRwlRi4XC4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPrHl/////////////7+/v/9/f3//Pz8//z8/P/7+/v/+vr6//r6 + +v/5+fn/+Pj4//f39//39/f/9vb2//X19f/19fX/9PT0//Pz8//z8vL/8vHw//Hw7//w7uz/8O3r/+/s + 6f/u6+j/toN0/+zftv+OYlbkRikbaUsyJSlVKxUMgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7Lmf/81rH/+tSw//jRrv/1z63/882r//HL + qv/uyKn/7MWo/+rDpv/owaX/5b+k/+O9ov/guqH/3ref/9u1nv/as53/17Gb/9Wumv/SrJn/0KqY/86n + lv/LpZX/yaOU/8agkv/EnpH/uIV1/7WCdJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAADwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwA + AAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwA + AAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAH + AAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAAHAAD8AAAAAA8AAPwA + AAAAHwAA/AAAAAA/AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAP/8AACgAAAAgAAAAQAAAAAEA + IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANxISDjYXDyE0GhAxNhsNOTQa + DTszGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMaDTwzGg08MxoNPDMa + DTw0Gg07MhsOODQaCjE2Fw8hNxISDlUAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Fw8hNBoNTjMb + DXMzGw2GMxoNizMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMaDYwzGg2MMxoNjDMa + DYwzGg2MMxoNjDMaDYs0Gw2FMxsNczIaDU02Fw8hQCAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAM2b + iuvSn5Pwy5qN9siXi/nGlov6xpaL+sWUivrEk4r6wpGJ+sKQifrCkIn6wpCJ+sKQifrCkIn6wpCJ+sKQ + ifrCkIn6wpCJ+sKQifrCkIn6wpCJ+sKQifnXkob4MxsNczQaEDFAFRUMAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAzbGo//3Sv//90r///dK///3Sv//90r///dK///3Sv//90r///dK///3Sv//90r///dK///3S + v//90r///dK///3Sv//90r///dK///3Sv//90r///8yZ/9WRhfo0GQ2FMRsNOTsUFA0AAAABAAAAAAAA + AAAAAAAAAAAAAAAAAADJsqj/4eLi//vgyf/738j/+97G//vdxf/63MP/+9vB//vawP/62r//+tm9//rY + vP/617n/+ta4//nVtv/51LX/+tSz//nTsv/50rD/+tGv//rRrf/90r//1ZGF+zMaDYs0Gg07NxISDgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAMy1qf/i5OP/++HL//vgyv/738j/+9/H//vexf/73cT/+tzC//rb + wP/62r7/+9q9//vYvP/62Lr/+te5//rVuP/61Lb/+tS0//rTs//60rL/+dKw//3Sv//UkYT7MxoNjDMa + DTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAzrer/+Pk5P/8483//OHL//zgyv/74Mn/+9/H//ve + xf/73cT/+9zD//rbwP/727//+tm+//vZvP/62Lv/+te6//rWuP/61rb/+tS1//rUtP/507L//dK//9SR + hPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADQuKz/5ebm//vkz//8483/++LM//vh + y//84Mn/+9/H//vexv/73cX/+93D//vbwf/628D/+tq+//rZvf/62Lz/+te6//rXuP/61rf/+tW1//rT + s//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAANK6rv/m5+f/++XR//zk + z//848///OLN//vhy//74Mr/++DI//vexv/73cX/+93D//rcwv/728H/+9q///vZvv/62bz/+9i7//rW + uf/61bf/+tW2//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA07yv/+fo + 6P/85tP//OXS//zl0P/848///OPO//zhzP/84Mr/++DJ//vfx//73sX/+93E//vcwv/728H/+9vA//ra + vv/72L3/+ti7//rXuv/617j//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAA + AADWvrD/6Onp//zn1f/85tT//ObT//zl0f/848//++PN//zizP/74cv/++DJ//vfx//73sb/+93F//rd + xP/728L/+9vA//vZv//62b7/+tm8//rXuv/90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAANjAsv/p6ur//OjX//zn1v/85tT//OXT//zl0f/85ND/++PO//zizf/84cv/++DJ//vg + yP/738f/+97G//vdxP/73ML/+tvB//vav//72b7/+ti8//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAA2sKz/+rr6//96dr//enY//zo1//859X//ObU//vl0v/75ND//OPP//vj + zv/84sz//OHL//zgyf/738f/+97F//vdxf/63MP/+tzB//vbwP/72r7//dK//9SRhPszGg2MMxoNPDcS + Eg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADcxLT/6+zs//3r3P/86tr//OnZ//3o1//859b//ObU//zm + 0v/85dH/++TP//zizv/84sz//OHL//vgyv/74Mj/+97G//vdxf/73cP/+tzC//rbwP/90r//1JGE+zMa + DYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAN7Gtv/t7e3//eze//3r3P/969v//enZ//zo + 2P/859b//ObU//zl0//85dL//OTQ//vkzv/8483//OLM//vgyv/74Mj/+9/H//vexv/73cT/+9zD//3S + v//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA38e3/+7u7//97d///Oze//3s + 3f/869v//era//zo2P/86Nb//OfV//zn0//85dP//OXR//zjz//8487//OLM//vhy//84Mr/+9/I//vf + xv/73sT//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADiyrn/7+/v//3u + 4v/97eH//ezf//3s3f/969v//Orb//3p2f/86Nj//OfW//zm1P/85dP//OXR//zk0P/8487//OLN//vi + y//84Mr/+9/I//vex//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAOTM + uf/w8fH//e/k//3v4//97eH//e3f//zs3v/97Nz//erb//zp2f/96dj//OjX//zn1P/85tT/++XR//zk + 0f/85M//++LN//zizP/74cr/++DJ//3Sv//UkYT7MxoNjDMaDTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAA5s27//Hy8v/+8ef//fDl//3v4//97uL//e3g//zt3v/97N3//evb//zp2v/86dn//OjX//zn + 1f/85tT//ObT//zk0f/749D//OPO//vizf/84cv//dK//9SRhPszGg2MMxoNPDcSEg4AAAABAAAAAAAA + AAAAAAAAAAAAAAAAAADo0L3/8vPz//3y6P/98uf//fHl//7v4//97+L//O7h//3s3//97N7//evc//zq + 2v/96dn//OnY//zn1v/85tX//ObT//zl0f/85ND//OPO//vizf/90r//1JGE+zMaDYwzGg08NxISDgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAOrRvv/z9PT//vPq//3z6f/+8ef//fHm//3v5P/97uP//e7i//3t + 3//97N7//Ovd//3r2//96tn//OjY//zo1v/859X//ObU//zl0v/85NH//OTP//3Sv//UkYT7MxoNjDMa + DTw3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA7NTA//X19f/99ez//fPr//3y6f/98uf//vHm//3w + 5f/97+P//e7i//3t4f/97N///evd//zq2//86tr//OjZ//3p1//959b//ObU//zl0v/75NH//dK//9SR + hPszGg2MMxoNPDcSEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAADu1sL/9vb2//727//99e3//vTr//7z + 6v/+8un//vHn//3w5v/98OT//e/j//zu4f/97N///eze//3r3P/86tv//enZ//zo2P/859b//OfU//zm + 0//90r//1JGE+zMaDYwzGg08NxISDgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAPDYw//39/f//vbw//71 + 7//99e7//vTs//306v/98+n//fHo//3w5v/97+T//e/j//3u4f/97d///eze//zs3f/96tv//enZ//zo + 2P/859f//OfV//3Sv//VkYX7MxoNizQaDTs3EhIOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA8tnF//j4 + +P/++PL//vfx//728P/+9e7//vTt//706//+8+n//fLo//7x5v/98OX//e/j//3u4v/97eD//O3f//zs + 3v/969z//era//zp2f/86Nf//dK//9WNgfs3HhGHNh8SOTckEg4AAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAD03Mf/+fn5///59f/++PP//vjx//738P/+9e7//vXt//307P/+8+r//vLp//3x5//+8Ob//e/k//3v + 4v/97uH//e3g//3r3v/3s7P/96ys//ahov/4mpr/1pCC+z4jF3xBKBkzQCsVDAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAPbdx//6+/v//vv3///69f/++PT//vjy//738f/+9u///vXu//707P/+8+r//fPp//7x + 6P/+8eb//e/l//3v4//97uH/5baR/+6hR//nlTj/3os2/9WCNf+1gGHqSS8iYkg0Jyc5ORwJAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAA+ODK//z8+///+/n//vv3///69v/++fT///jz//738v/+9/D//vXu//71 + 7f/99Ov//vPq//7y6P/98ef//fDl//3v5P/rwJ7//71g//+pMf/8oiL/x4ZG7V9DM39RNys8WUAzFEBA + QAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD64sr//fz9///9+////Pn///v4//769//++fX//vnz//74 + 8v/+9vH//vbv//717f/+9Oz//fPq//3y6f/+8ef//fDl/+vHqP//zoX//rVU/82VXe5fQzSDVDgsQFg7 + MRpJSSQHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPzkzP/+/v7///79///9/P///Pr///z4///6 + 9//++vb//vn0//748///9/H//vbv//317f/99O3//fPq//3z6f/+8ef/7dCv///Ylv/Ik2rwXkEzhlE6 + K0JVQi8bYEBACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ufS///////9/f3/+/v7//n5 + +f/3+Pf/9fb2//T09P/y8vL/7/Dw/+7u7v/s7Oz/6uvq/+jp6f/l5+f/5OXk/+Lj4//u0bD/yqqG9lw/ + MKJROCxSWkIxH2BAQAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+1Kr5/dq5+frX + tvn51rT59tSz+fTRsvnxz7D578yv+e3Lrfnsyaz56caq+ebDqfnkwaf548Cm+eG+pPneu6P527mi+d+v + j8bap4YUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA/AAAAHwAAAB8AAAAfAA + AAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAA + AAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAB8AAAA/AAAAPwAAAH8AAAD/AAAf8oAAAAEAAAACAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzHA43MxoNeDIbDaIzGg2uMxoNrzMa + Da8zGg2vMxoNrzMaDa8zGg2vMxoNrjIbDaIzGg14MxwONwAAAAAAAAAArntu/9mtnf/WqJr/06aY/9Kk + l//MoZn/yZ6X/8aclv/EmZX/wZaT/7aRi/+4jov/MxsNoTQYDkoAAAAAAAAAALWCcv/84cv/++DI//ve + xP/73ML/+tq+//rYu//717j/+tS0//nSsf/60K7/7r2l/zMaDa40Gg1PAAAAAAAAAAC7iHX//OTP//zi + zP/74Mn/+97G//vcw//72r//+9m8//rWuP/61bX/+tOx/++/qP8zGg2vMxoNUAAAAAAAAAAAwo95//zn + 1P/85NH//OPO//zhyv/738f/+9zE//vbwP/62rz/+9e5//vVtv/wwav/MxoNrzMaDVAAAAAAAAAAAMiV + fP/86Nj//ObV//zl0v/8487/++HL//vgyP/73sT/+tzB//vZvv/62Lv/8MOv/zMaDa8zGg1QAAAAAAAA + AADPnID//Ovd//3q2v/859b//ObT//zkz//84sz/++DJ//vexv/73ML/+tu///HFsf8zGg2vMxoNUAAA + AAAAAAAA1aKD//3u4P/97N3//Orb//zo1//85tP//OTR//vizf/74cr/+9/G//vdw//yyLX/MxoNrzMa + DVAAAAAAAAAAANyph//+8OX//e7h//3s3//969v//enY//zm1f/85dH/++PO//zhyv/738f/8sm3/zMa + Da8zGg1QAAAAAAAAAADcqYf//fPq//3x5v/97+P//e3f//zr3P/96dn//efW//zl0//85M///OHL//PM + uv8zGg2vMxoNUAAAAAAAAAAA3KmH//317f/+8+r//fLn//3v5P/97eH//eze//zq2v/86Nf//ObT//zk + 0P/zzb3/NRsPqjUaDU0AAAAAAAAAANyph//++PL//vXu//307P/98uj//fDl//3u4v/97N7//era//zo + 2P/85tT/9Mm6/zogEZk9IhNDAAAAAAAAAADcqYf///r3//748//+9vD//vTs//7y6f/98eb//e/i///V + zP//1cz/9bOq/6l4bOBCKBh0SCccLgAAAAAAAAAA3KmH///9+///+/f//vn0//738f/+9e3//fPr//3x + 5//3pkP/96ZD/+CSQP5HKxqRTi4gSFk3IRcAAAAAAAAAANyph/////////77///7+P/++vX//vjx//72 + 7v/98+z/3KmH/+qzdv5oSDLCTzMkZFM3IiVVORwJAAAAAAAAAADcqYf/3KmH/9yph//cqYf/3KmH/9yp + h//eq4j/1qOE/9yph//ZqYktAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAK7/wADn/8AA + 0f/AAM//wADP/8AAzf/AAMv/wADK/8AAyP/AAMb/wADF/8APw/8= + + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmCRReporting.vb b/SW/20211125/_FRReporting/Formulare/frmCRReporting.vb new file mode 100644 index 0000000..5a54781 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCRReporting.vb @@ -0,0 +1,122 @@ +Imports System.Windows.Forms +Imports FastReport + +Public Class frmcrreporting + + Dim ds As DataSet + Dim auswertungnr As Integer + Dim dms As New Utils.MyDocMgmt + Dim auswertung As New TKB.Auswertung.clsAuswertung + Dim rptfilename As String + Dim printparam As Boolean = True + Dim StandardAuswertung As Boolean = True + Dim Design As Boolean = False + + Sub New(ByRef ds As DataSet, ByVal Auswertungnr As Integer, ByRef auswertung As TKB.Auswertung.clsAuswertung, ByVal printparam As Boolean, ByVal Design As Boolean) + InitializeComponent() + Me.ds = ds + Me.auswertungnr = Auswertungnr + Me.auswertung = auswertung + Me.printparam = printparam + Me.StandardAuswertung = True + Me.Design = Design + End Sub + Sub New(ByRef ds As DataSet, ByVal Auswertungnr As Integer) + InitializeComponent() + Me.ds = ds + Me.auswertungnr = Auswertungnr + Me.StandardAuswertung = False + End Sub + Private Sub frmcrreporting_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + + End Sub + + Public Sub DesignReport() + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + rptfilename = dms.Get_RptDatei(Me.auswertungnr) + + Dim i As Integer + ds.Tables(0).TableName = "Daten" + For i = 1 To ds.Tables.Count - 1 + ds.Tables(i).TableName = "Daten_" + Trim(Str(i)) + Next + + Dim report As New Report + Try + If rptfilename <> "" Then report.Load(rptfilename) + report.RegisterData(ds) + report.GetDataSource("Daten").Enabled = True + report.SetParameterValue("Titel1", auswertung.TitelZeile1) + report.SetParameterValue("Titel2", auswertung.TitelZeile2) + If Me.printparam Then + i = 0 + Dim s As String = "" + + For i = 1 To Me.auswertung.ParamCollection.Count + If s <> "" Then s = s + "|" + s = s + Me.auswertung.ParamCollection.Item(i).ToString + Next + report.SetParameterValue("Parameters", s) + End If + Cursor = Cursors.Default + report.Preview = Me.PreviewControl1 + report.Design() + report.Dispose() + Me.Close() + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + Public Sub DisplayReport() + Me.Cursor = Cursors.WaitCursor + Application.DoEvents() + rptfilename = dms.Get_RptDatei(Me.auswertungnr) + + Dim i As Integer + ds.Tables(0).TableName = "Daten" + For i = 1 To ds.Tables.Count - 1 + ds.Tables(i).TableName = "Daten_" + Trim(Str(i)) + Next + + Dim report As New Report + Try + If rptfilename <> "" Then report.Load(rptfilename) + report.RegisterData(ds) + report.GetDataSource("Daten").Enabled = True + report.SetParameterValue("Titel1", auswertung.TitelZeile1) + report.SetParameterValue("Titel2", auswertung.TitelZeile2) + If Me.printparam Then + i = 0 + Dim s As String = "" + + For i = 1 To Me.auswertung.ParamCollection.Count + If s <> "" Then s = s + "|" + s = s + Me.auswertung.ParamCollection.Item(i).ToString + Next + report.SetParameterValue("Parameters", s) + End If + Cursor = Cursors.Default + report.Preview = Me.PreviewControl1 + report.Show() + Catch ex As Exception + MsgBox(ex.Message) + End Try + + End Sub + + Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click + Me.Close() + End Sub + + Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click + Me.Close() + End Sub + + + + +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmCalendar.designer.vb b/SW/20211125/_FRReporting/Formulare/frmCalendar.designer.vb new file mode 100644 index 0000000..56cca9b --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCalendar.designer.vb @@ -0,0 +1,62 @@ + _ +Partial Class frmCalendar + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.MonthCalendar1 = New System.Windows.Forms.MonthCalendar() + Me.btnok = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'MonthCalendar1 + ' + Me.MonthCalendar1.Dock = System.Windows.Forms.DockStyle.Top + Me.MonthCalendar1.Location = New System.Drawing.Point(0, 0) + Me.MonthCalendar1.Name = "MonthCalendar1" + Me.MonthCalendar1.TabIndex = 0 + ' + 'btnok + ' + Me.btnok.Dock = System.Windows.Forms.DockStyle.Top + Me.btnok.Location = New System.Drawing.Point(0, 162) + Me.btnok.Name = "btnok" + Me.btnok.Size = New System.Drawing.Size(162, 23) + Me.btnok.TabIndex = 1 + Me.btnok.Text = "OK" + Me.btnok.UseVisualStyleBackColor = True + ' + 'frmCalendar + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(162, 183) + Me.Controls.Add(Me.btnok) + Me.Controls.Add(Me.MonthCalendar1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.Name = "frmCalendar" + Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual + Me.Text = "Kalender" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents MonthCalendar1 As System.Windows.Forms.MonthCalendar + Friend WithEvents btnok As System.Windows.Forms.Button +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmCalendar.resx b/SW/20211125/_FRReporting/Formulare/frmCalendar.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCalendar.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmCalendar.vb b/SW/20211125/_FRReporting/Formulare/frmCalendar.vb new file mode 100644 index 0000000..90f8294 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmCalendar.vb @@ -0,0 +1,29 @@ +Imports System.Windows.Forms +Public Class frmCalendar + + Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged + End Sub + + Private Sub MonthCalendar1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MonthCalendar1.KeyDown + If e.KeyCode = Keys.Escape Then + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Close() + End If + End Sub + + Private Sub frmCalendar_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown + If e.KeyCode = Keys.Escape Then + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Close() + End If + End Sub + + Private Sub btnok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnok.Click + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub frmCalendar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmDataSelect.Designer.vb b/SW/20211125/_FRReporting/Formulare/frmDataSelect.Designer.vb new file mode 100644 index 0000000..ea252c0 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmDataSelect.Designer.vb @@ -0,0 +1,92 @@ + _ +Partial Class frmDataSelect + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDataSelect)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() + Me.C1Daten = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.ToolStrip1.SuspendLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(451, 25) + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'TSBtnQuit + ' + Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) + Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSBtnQuit.Name = "TSBtnQuit" + Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) + Me.TSBtnQuit.Text = "Fenster schliessen" + Me.TSBtnQuit.ToolTipText = "Fenster schliessen" + ' + 'C1Daten + ' + Me.C1Daten.AllowUpdate = False + Me.C1Daten.AlternatingRows = True + Me.C1Daten.Dock = System.Windows.Forms.DockStyle.Fill + Me.C1Daten.FilterBar = True + Me.C1Daten.GroupByCaption = "Drag a column header here to group by that column" + Me.C1Daten.Images.Add(CType(resources.GetObject("C1Daten.Images"), System.Drawing.Image)) + Me.C1Daten.Location = New System.Drawing.Point(0, 25) + Me.C1Daten.Name = "C1Daten" + Me.C1Daten.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1Daten.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1Daten.PreviewInfo.ZoomFactor = 75.0R + Me.C1Daten.PrintInfo.PageSettings = CType(resources.GetObject("C1Daten.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1Daten.ScrollTips = True + Me.C1Daten.Size = New System.Drawing.Size(451, 284) + Me.C1Daten.TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.ColumnNavigation + Me.C1Daten.TabIndex = 7 + Me.C1Daten.Text = "C1TrueDBGrid1" + Me.C1Daten.PropBag = resources.GetString("C1Daten.PropBag") + ' + 'frmDataSelect + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(451, 309) + Me.Controls.Add(Me.C1Daten) + Me.Controls.Add(Me.ToolStrip1) + Me.Name = "frmDataSelect" + Me.Text = "Datenauswahl" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton + Friend WithEvents C1Daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmDataSelect.resx b/SW/20211125/_FRReporting/Formulare/frmDataSelect.resx new file mode 100644 index 0000000..ab02966 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmDataSelect.resx @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPlZALDsMwCEM5OkfLzbIaMGH5dJkligL2a1o5 + qP9RW3VVXYpzqLV2D+CZQVU/Y27uIg4OQQAJXz+hDsyEDtVQ7dib+1GH1fpUDljD6OF5HgjvKgHvN+iC + A0O1EvB+A8ghPvgqB4j9xPlHhidVB2lwwICfbkBxMAFGqHbszb1RGhywhtGxN/dGXAbgGD4CqACMMGZR + VwrA/Rtn/QiKfADckGXYsnwKqAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 449, 282</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 449, 282</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmDataSelect.vb b/SW/20211125/_FRReporting/Formulare/frmDataSelect.vb new file mode 100644 index 0000000..37dd3b5 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmDataSelect.vb @@ -0,0 +1,28 @@ +Public Class frmDataSelect + + Dim m_selectedvalue As String + Property SelectedValue As String + Get + Return m_selectedvalue + End Get + Set(value As String) + m_selectedvalue = value + End Set + End Property + Private Sub frmDataSelect_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.C1Daten.Splits(0).DisplayColumns(0).Width = 0 + End Sub + + Private Sub C1Daten_Click(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick + Me.SelectedValue = Me.C1Daten.Columns(0).Value + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + + Private Sub C1Beziehungen_MouseDown(sender As Object, e As Windows.Forms.MouseEventArgs) Handles C1Daten.MouseDown + Me.C1Daten.Bookmark = Me.C1Daten.RowContaining(e.Y) + Exit Sub + End Sub + +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmEditWhere.designer.vb b/SW/20211125/_FRReporting/Formulare/frmEditWhere.designer.vb new file mode 100644 index 0000000..53e2ce3 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmEditWhere.designer.vb @@ -0,0 +1,62 @@ + _ +Partial Class frmEditWhere + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEditWhere)) + Me.Editor = New System.Windows.Forms.RichTextBox + Me.Button1 = New System.Windows.Forms.Button + Me.SuspendLayout() + ' + 'Editor + ' + Me.Editor.Location = New System.Drawing.Point(12, 12) + Me.Editor.Name = "Editor" + Me.Editor.Size = New System.Drawing.Size(646, 168) + Me.Editor.TabIndex = 0 + Me.Editor.Text = "" + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(12, 186) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(75, 23) + Me.Button1.TabIndex = 1 + Me.Button1.Text = "Speichern" + Me.Button1.UseVisualStyleBackColor = True + ' + 'frmEditWhere + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(670, 222) + Me.Controls.Add(Me.Button1) + Me.Controls.Add(Me.Editor) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmEditWhere" + Me.Text = "Edit Where-Klausel" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Editor As System.Windows.Forms.RichTextBox + Friend WithEvents Button1 As System.Windows.Forms.Button +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmEditWhere.resx b/SW/20211125/_FRReporting/Formulare/frmEditWhere.resx new file mode 100644 index 0000000..4d79d5c --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmEditWhere.resx @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAACBAAAAvgAAAMsAAADLAAAAywAA + AMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAA + AMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAvgAAAIEAAAAfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAYgAAAPEDAwP/LCwr/z4+ + PP8/Pjz/Pz48/z8+PP8/Pjz/Pz48/z8+PP8/Pjz/Pz48/z8+PP8/Pjz/Pz48/z4+PP8+Pjz/Pj48/z4+ + PP8+Pjz/Pj48/z4+PP8+Pjz/Pj48/z4+PP8+Pjz/Pj48/z4+PP8+Pjz/LCwr/wMDA/8AAADxAAAAYgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbAAAA/Ds6 + Of/Cvrv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le + 2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/+Le2v/i3tv/4t7a/8G+ + u/87Ojn/AAAA/AAAAFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABEAAADqNTQz/9rX0//k4Nz/7Orn//Px7//z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py + 8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py + 8P/z8fD/7Orn/+Pg3P/a19P/NTQz/wAAAOoAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAGIBAQH/raqo/+Th3f/29fT//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//b19P/k4d3/raqn/wEBAf8AAABiAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcTEhL/3tvY/+7s6v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/u7Or/3tvX/xMSEv8AAACXAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMbGxr/5eLe//Tz8v/+/v7//v7+//7+ + /v/+/v7//f39//T09P/6+vr//f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/08/L/5eLe/xsb + Gv8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMbGxr/5uPf//X0 + 8//+/v7//v7+//7+/v/+/v7/4uLi/5WVlf+NjY3/mpqa/6Wlpf+ysrL/v7+//8zMzP/b29v//Pz8//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/29PP/5uPf/xsbGv8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMbGxv/5+Th//b08//+/v3//v79//7+/f/+/v3/9fT0/6KjpP+4xtT/ornQ/42apv+Oj4//kZGQ/5SU + lP+Yl5f/sLCv/+zs6//+/v3//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//7+ + /f/+/v3//v79//7+/f/29PP/5+Th/xsbGv8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMbGxv/6OTh//X08//9/f3//f39//39/f/9/f3//f39/9fc4v/d6fX/yNzw/6TG + 6P+Eq9P/fpew/5GWmv+ZmZn/nZ2d/6SkpP/S0tL/+/v7//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/19PP/6OTh/xsbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMbGxv/6OXi//X08//9/f3//f39//39/f/9/f3//f39//b4 + +//W5PP/3en1/8jc8P+fxuj/RL/r/x687f9Jr9D/nKCh/6Ojo/+oqKj/vLy8/+/v7//9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/29fP/6OXi/xsbG/8AAACjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMbGxv/6ebj//b18//9/f3//f39//39 + /f/9/f3//f39//39/f/W5PP/1eTz/8zm9v8q0Pv/ANL+/wDW/v8AyP7/N7Xf/6KnqP+rq6v/r6+v/7W1 + tf/b29v/+/v7//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/29fT/6ebj/xsb + G/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcGxv/6ufk//b0 + 8//9/Pz//fz8//38/P/9/Pz//fz8//38/P/o7/f/wNfu/0HR+v8Ayv7/AM/+/wDT/v8A1P7/AMb+/zm3 + 4f+qrq//srKy/7a2tv+7u7v/y8vL//Hx8f/9/Pz//fz8//38/P/9/Pz//fz8//38/P/9/Pz//fz8//38 + /P/29PT/6ufk/xwbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMcGxv/6+jl//b19P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/7+/z/mdLv/wLW/v8Ayv7/AMz+/wDR + /v8A1P7/ANP+/wDE/v89uOP/sbW2/7m5uf++vr7/wsLC/8nJyf/l5eX/+/v7//z8/P/8/Pz//Pz8//z8 + /P/8/Pz//Pz8//z8/P/29fT/6+jl/xwbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMcGxv/6+nm//b18//8/Pv//Pz7//z8+//8/Pv//Pz7//z8+//8/Pv/qOT5/wDL + /v8A1f7/AMz+/wDP/v8A0/7/ANX+/wDR/v8Awv7/P7rm/7e8vf/AwMD/xsbG/8vLy//R0ND/3dzc//X1 + 9P/8/Pv//Pz7//z8+//8/Pv//Pz7//z8+//29fT/6+nm/xwbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBv/7Orn//b18//7+/v/+/v7//v7+//7+/v/+/v7//v7 + +//7+/v/7/j7/zrO/f8Ay/7/ANX+/wDO/v8A0f7/ANX+/wDW/v8Az/7/AMD+/0G86P+/xMX/ysrJ/8/P + zv/T09P/2NjY/97e3v/v7+7/+vr6//v7+//7+/v/+/v7//v7+//29fT/7Orn/xwcG/8AAACjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBv/7evo//b19P/7+/r/+/r6//v6 + +v/7+/r/+/r6//v6+v/7+/r/+/r6/+r2+v84zf3/AMv+/wDV/v8Az/7/ANP+/wDX/v8A1/7/AM3+/wC+ + /v9Fvuv/yMzN/9HR0f/W1tb/3Nvb/+Hg4P/n5ub/7+7u//j49//7+vr/+/r6//v6+v/29fT/7evo/xwc + G/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBv/7uzp//b1 + 8//6+vn/+vr5//r6+f/6+vn/+vr5//r6+f/6+vn/+vr5//r6+f/p9vr/Oc79/wDK/v8A1f7/ANH+/wDV + /v8A2f7/ANf+/wDL/v8AvP7/R8Du/87U1f/a2tn/3t7e/+Tk4//p6en/7+/u//T09P/6+fn/+vr5//r6 + +f/29fT/7uzp/xwcG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMcHBz/7uzq//b08//6+fn/+vn5//r5+f/6+fn/+vn5//r5+f/6+fn/+vn5//r5+f/6+fn/6PX5/znN + /f8Ayf7/ANT+/wDS/v8A1/7/ANv+/wDY/v8AyP7/ALn+/0rC8f/X3N3/4uHh/+fm5v/t7Oz/8vHx//j3 + 9//6+fn/+vn5//r5+f/29PP/7uzq/xwcHP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMcHBz/7+3r//X08//5+fj/+fn4//n5+P/5+fj/+fn4//n5+P/5+fj/+fn4//n5 + +P/5+fj/+fn4/+j1+f83zP3/AMj+/wDT/v8A0/7/ANn+/wDe/v8A2f7/AMb+/wC3/v9OxPP/3+Pk/+rp + 6f/w7+7/9fX0//n4+P/5+fj/+fn4//n5+P/29fP/7+3r/xwcHP8AAACjAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBz/8O7s//X08//5+Pf/+fj3//n49//5+Pf/+fj3//n4 + 9//5+Pf/+fj3//n49//5+Pf/+fj3//n49//p9Pj/OMv9/wDH/v8A0v7/ANX+/wDb/v8A4P7/ANr+/wDD + /v8AtP7/T8X2/+br7P/z8vH/+Pf2//n49//5+Pf/+fj3//n49//29PP/7+3r/xwcHP8AAACjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBz/8e/t//X08//49/b/+Pf2//j3 + 9v/49/b/+Pf2//j39v/49/b/+Pf2//j39v/49/b/+Pf2//j39v/49/b/5/P3/zjL/P8Axv7/ANH+/wDW + /v8A3f7/AOL+/wDa/v8Awf7/ALL+/1LH+f/w9PT/+Pf2//j39v/49/b/+Pf2//j39v/18/L/7+3r/xwc + HP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMcHBz/8fDu//X0 + 8v/39vX/9/b1//f29f/39vX/9/b1//f29f/39vX/9/b1//f29f/39vX/9/b1//f29f/39vX/9/b1/+jz + 9v81yfz/AMX+/wDQ/v8A2P7/AOD+/wDk/v8A2/7/AL7+/wCv/v9VyPv/8vX1//f29f/39vX/9/b1//b1 + 9P/z8vD/7uzq/xwcG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMdHBz/8vDv//Xz8v/39vX/9/b1//f29f/39vX/9/b1//f29f/39vX/9/b1//f29f/39vX/9/b1//f2 + 9f/39vX/9/b1//f29f/n8vX/N8n8/wDD/v8Az/7/ANn+/wDi/v8A5v7/ANz+/wC7/v8ArP7/U8b7//D0 + 9f/39vX/9vX0//X08v/y8O7/7ero/xwbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMdHBz/8/Hw//Xz8v/29fP/9vXz//b18//29fP/9vXz//b18//29fP/9vXz//b1 + 8//29fP/9vXz//b18//29fP/9vXz//b18//29fP/5fH0/zjI/P8Awv7/AM7+/wDa/v8A5P7/AOj+/wDd + /v8BuP7/Oazk/6Cztf/Vz8n/9PPx//Px7//v7ev/6+jl/xsbG/8AAACjAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHRz/8/Lx//Tz8v/19PP/9fTy//X08v/19PP/9fTy//X0 + 8v/19PP/9fTy//X08v/19PP/9fTy//X08v/19PP/9fTy//X08v/19PP/9fTy/+Xw8/82x/z/AMD+/wDM + /v8A3P7/AOb+/wzq/f+X2uL/zMW+/7ivpP+lmIr/z8nB//Dt6//s6ef/5+Tg/xsaGv8AAACjAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHR3/9PPy//Tz8f/08/L/9PPy//Tz + 8v/08/L/9PPy//Tz8v/08/L/9PPy//Tz8v/08/L/9PPy//Tz8v/08/L/9PPy//Tz8f/08/L/9PPx//Tz + 8f/k7/L/OMb7/wC+/v8Ay/7/Cd38/7Hn6//q5+T/3tnU/83Fvv+4r6T/pJiK/8vEvP/o5OD/4t7Y/xoa + Gf8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHR3/9fTy//Ty + 8f/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py8P/z8vD/8/Lw//Py + 8P/z8vD/8/Lw//Py8P/z8vD/4u7x/zjF+/8AvP7/c8fb/93Z1P/q5+T/6ufk/97Z1P/Nxb7/v7at/6ud + mf/Ox8D/29XO/xkYF/8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMdHR3/9vTz//Py8P/y8e//8vHv//Lx7//y8e//8vHv//Lx7//y8e//8vHv//Lx7//y8e//8vHv//Lx + 7//y8e//8vHv//Lx7//y8e//8vHv//Lx7//y8e//8vHv/+Lt8P9Hwe//sa+o/83Fvv/e2dX/6ufk/+rn + 5f/a0Nb/l1LA/2kJq/+TWbD/0MfA/xgXFf8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMdHR3/9vX0//Py8P/y8O7/8vDu//Lw7v/y8O7/8vDu//Lw7v/y8O7/8vDu//Lw + 7v/y8O7/8vDu//Lw7v/y8O7/8vDu//Lw7v/y8O7/8vDu//Lw7v/y8O7/8vDu//Lw7v/d2tb/o5aJ/7iv + pP/Nxr7/3tnV/97R3/+RKNn/dQDJ/2kAtf9iAKr/k1iw/xUTE/8AAADKAAAADAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHR3/9/b1//Px7//w7+3/8O/t//Dv7f/w7+3/8O/t//Dv + 7f/w7+3/8O/t//Dv7f/w7+3/8O/t//Dv7f/w7+3/8O/t//Dv7f/w7+3/8O/t//Dv7f/w7+3/8O/t//Du + 7P/v7ev/wLet/6OWif+4r6X/0cjG/5Azzv9+ANj/fADW/3QAx/9oALT/YwCr/zcAXf8AAAD/AAAAlgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHR3/+Pf2//Lx7//v7ev/7+3r/+/t + 6//v7ev/7+3r/+/t6//v7ev/7+3r/+/t6//v7ev/7+3r/+/t6//v7ev/7+3r/+/t6//v7ev/7+3r/+/t + 6//v7ev/7+3r/+7s6v/u6+n/6+nm/7yzqf+mmo3/onO0/3IAwv93AM3/fQDX/3wA1v90AMf/bgC+/2wA + uf8hADn/AAAA9AAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMdHR3/+Pj3//Lw + 7v/u7Or/7uzq/+7s6v/u7Or/7uzq/+7s6v/u7Or/7uzq/+7s6v/u7Or/7uzq/+7s6v/u7Or/7uzq/+7s + 6v/u7Or/7uzq/+7s6v/u7Or/7uvp/+3q6P/n4+D/0srC/8/Gvf/FvbT/g0ac/20Auf9xAMH/dwDN/30A + 2P+CAN7/gADa/3cAy/9EAHT/AAAA/wAAADkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMdHR3/+fj3//Hv7v/t6+n/7evp/+3r6f/t6+n/7evp/+3r6f/t6+n/7evp/+3r6f/t6+n/7evp/+3r + 6f/t6+n/7evp/+3r6f/t6+n/7evp/+3r6P/s6uj/6+nm/+Tg3P/Jv7X/6ubi//z8/P/29fT/5uDi/5hR + yf9tALn/cQDB/3oA0f+FAOP/hwDm/34A2P87AGb/AAAA/QAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMdHR3/+fn4//Hv7f/s6uf/7Onn/+zp5//s6uf/7Onn/+zp5//s6uf/7Onn/+zp + 5//s6uf/7Onn/+zp5//s6uf/7Onn/+zp5//s6uf/7Onn/+vp5v/r6OX/6OXi/8vCuP/u6+j/9vX0/+Tg + 3f/h3dn/4d3Z/9/Y2P+TSsP/bQC6/3QAxv98ANX/gQDe/20Auv8JAA//AAAA0AAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMeHR3/+vr5//Du7P/r6Ob/6+jl/+vo5f/r6Ob/6+jl/+vo + 5f/r6Ob/6+jl/+vo5f/r6Ob/6+jl/+vo5f/r6Ob/6+jl/+vo5f/r6OX/6ufl/+nm4//o5eH/4NvX/9PL + wv/8+/v/4+Dc/+Hd2f/h3dn/4d3Z/+Hd2f/s6Or/nFnL/20Auf90AMX/XwCj/wwAFf8AAADtAAAANQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMeHh7/+/r6//Du7P/q5+T/6ufk/+rn + 5P/q5+T/6ufk/+rn5P/q5+T/6ufk/+rn5P/q5+T/6ufk/+rn5P/q5+T/6ufk/+rn5P/p5uP/6OXi/+fj + 4P/l4d3/19HK/+Ld1//z8vH/4d3Z/+Hd2f/h3dn/4d3Z/+/t6//w8PD/QEBA/w4AGf8UACP/AgAD/wAA + AO0AAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMeHh7/+/v7/+/t + 6//p5uP/6OXi/+jl4v/p5uP/6OXi/+jl4v/p5uP/6OXi/+jl4v/p5uP/6OXi/+jl4v/p5uP/6OXi/+jk + 4f/n5OD/5eLe/+Pf3P/g3Nj/0srC/+Tg2//x8O7/4d3Z/+Hd2f/h3dn/7+3r//Ly8v8/Pz//AAAA+QAA + AMgAAADMAAAAlQAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AKMeHh7//Pz7/+/s6v/n5OH/5+Th/+fk4f/n5OH/5+Th/+fk4f/n5OH/5+Th/+fk4f/n5OH/5+Th/+fk + 4f/n5OH/5uPg/+Xi3//k4N3/4t7a/9/b1v/b1tH/y8O6/+Pe2f/y8O7/4d3Z/+Hd2f/v7ev/8PDw/z8/ + P/8AAAD4AQEBVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAKMeHh7//Pz8/+7s6v/m4t//5uLf/+bi3//m49//5uLf/+bi3//m49//5uLf/+bi + 3//m49//5uLf/+bi3//l4t7/5OHd/+Pf2//h3dj/3tnV/9rUz//Vzsj/xLqv/+Hb1v/x8O7/4d3Z/+/t + 6//s7Oz/QEBA/wAAAPkBAQFXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcVFRX/9vb2//Ty8f/l4d3/5OHd/+Th3f/l4d3/5OHd/+Th + 3f/l4d3/5OHd/+Th3f/l4d3/5OHd/+Tg3P/j39v/4t3Z/9/b1//d2NP/2dPO/9PNxv/MxLv/ua6i/97Y + 0//y8O7/7+3r/+7u7v85OTn/AAAA+QEBAVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGIBAQH/wcHB//39/f/r6Ob/49/c/+Pf + 3P/j39z/49/c/+Pf3P/j39z/49/c/+Pf3P/j39v/4t7b/+Hd2f/g3Nj/3tnV/9vW0f/X0sz/0szE/8vC + uv/Atq3/raCT/9vWz//7+/v/7Ozs/zk5Of8AAAD4AQEBWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAADqOzs7//T0 + 9P/+/f3/9PPx/+7r6f/t6+j/7evo/+3r6P/t6+j/7evo/+3r6P/t6uf/6+nm/+rn5P/o5eH/5eHd/+Hc + 2P/b1tD/1M3F/8nAt/+7sKX/ppiK/9vVzv/s7Oz/Ojo6/wAAAPgBAQFYAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABbAAAA/EJCQv/a2tr//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//39/f/9/Pz/+/r6//n4 + 9v/29PL/8e/s/+vo5P/j3tn/2NHJ/8nAtf+3q57/oZGA/8rEvf85OTn/AAAA+AAAAFkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAYgAAAPEEBAT/MjIy/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/0ZG + Rv9GRkb/RUVF/0VERP9EQ0L/QkFA/0A/Pv89PDr/Ojc0/zUyL/8vKyf/KSQf/xoYF/8AAAD4AQEBWAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAACBAAAAvQAAAMsAAADLAAAAywAA + AMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAAAMsAAADLAAAAywAA + AMsAAABXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////yBP8AAAAA//IE/AAAAAA/8gT8AAAAAD/yBPgA + AAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf + 8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgA + AAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf + 8gT4AAAAAB/yBPgAAAAAH/IE+AAAAAAf8gT4AAAAAA/yBPgAAAAAD/IE+AAAAAAH8gT4AAAAAAfyBPgA + AAAAB/IE+AAAAAAH8gT4AAAAAA/yBPgAAAAAH/IE+AAAAAA/8gT4AAAAA//yBPgAAAAH//IE+AAAAA// + 8gT4AAAAH//yBPgAAAA///IE/AAAAH//8gT8AAAA///yBP8AAAH///IE////////8gQoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAMgAA + AEIAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAA + AEQAAABEAAAAQgAAADIAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAA + AIgLCwrcJSUk7CopKO4qKSjuKiko7iopKO4qKSjuKiko7iopKO4pKSjuKSko7ikpKO4pKSjuKSko7ikp + KO4pKSjuKSko7ikpKO4lJSTsCwsK3AAAAIgAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQFBQWxUE9N/tXRzv/m4+D/5+Th/+fk4f/n5OH/5+Th/+fk4f/n5OH/5+Th/+fk4f/n5OH/5+Th/+fk + 4f/n5OH/5+Th/+fk4f/n5OH/5+Th/+bj4P/U0c7/UE9N/gUFBbEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAALywsK/rCv7z/8vHv//n4+P/6+vn/+vr5//r6+f/6+vn/+vr5//r6+f/6+vn/+vr5//r6 + +f/6+vn/+vr5//r6+f/6+vn/+vr5//r6+f/6+vn/+fj4//Lx7//Cv7v/LCwr+gAAAC8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABnWVdW/+ro5v/+/v7//v7+//39/f/7+/v//f39//39/f/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/+ro5v9ZV1b/AAAAZwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1eXVv/7+7s//7+/v/+/v7/9/f3/8bGxv+0tLT/wMDA/87O + zv/Z2dn/7u7u//39/f/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/8O7s/15d + W/8AAABtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbV9eXf/w7u3//f39//39/f/7+/v/ysvN/73N + 3f+dssb/ipai/5CUl/+enZ3/xcXF//Pz8//9/fz//f39//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/w7u3/X15c/wAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtX15d//Du7f/9/f3//f39//39 + /f/x8/b/1+Xz/8Ta7/+Bud3/SrDT/3aks/+hoaL/v7+//+jo6P/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//Hv7f9fXl3/AAAAbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1gXl3/8e/t//38 + /P/9/Pz//fz8//38/P/X5fP/rd/1/xLP/P8A0/7/DMb3/2Cxyv+sra3/s7Oz/9nZ2f/09PT//fz8//38 + /P/9/Pz//fz8//38/P/9/Pz/8e/u/2BeXf8AAABtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWBf + Xv/y8O7//Pz8//z8/P/8/Pz//Pz8/9rr9v9G1Pj/AMv+/wDQ/v8A0v7/DMT3/3y0yP+1trb/v7+//9DQ + 0P/x8fH//Pv7//z8/P/8/Pz//Pz8//z8/P/y8O7/YF9e/wAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABtYWBe//Lx7v/7+/r/+/v7//v7+v/7+/v/5/b6/0zW/P8A0P7/AM7+/wDT/v8A0/7/DsL4/228 + 1v/Cw8P/ysrK/9TU1P/n5+b/+Pj3//v7+v/7+/r/+/v7//Lx7/9hYF7/AAAAbQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAG1hYF//8vHv//r6+v/6+vr/+vr6//r6+v/5+vr/x+76/xjN/f8A0f7/ANH+/wDV + /v8A0P7/DsH5/4zD2P/Nzs7/1tbW/97d3f/s7Ov/9vb2//r6+v/6+vr/8vHv/2FgX/8AAABtAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAbWJhYP/z8e//+vn5//r5+f/6+fn/+vn5//r5+f/6+fn/xe36/zPQ + /f8A0f7/ANP+/wDY/v8A0v7/D7/6/3vI5f/b3Nv/4+Li/+zr6//z8/P/+vn5//r5+f/z8fD/YmFg/wAA + AG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtYmFg//Px8P/5+fj/+fn4//n5+P/5+fj/+fn4//n5 + +P/3+Pj/xO35/xjL/f8A0P7/ANb+/wDb/v8Azf7/EL37/53T6P/m5ub/8O/v//f29v/5+fj/+fn4//Py + 8P9iYWD/AAAAbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1iYmH/8/Lw//j39v/49/b/+Pf2//j3 + 9v/49/b/+Pf2//j39v/49/b/xOv4/zLN/P8Az/7/ANf+/wDe/v8A0P7/Ebr8/4rU8//09PP/+Pf2//j3 + 9v/49/b/8/Hw/2JhYf8AAABtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWNiYf/z8vD/9/b1//f2 + 9f/39vX/9/b1//f29f/39vX/9/b1//f29f/19fX/xOr3/xfI/f8Az/7/ANz+/wDg/v8Ayv7/Erj8/6zh + 9//29vX/9/b1//b19P/x8O7/YmFg/wAAAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZGJi//Ty + 8f/29fT/9vX0//b19P/29fT/9vX0//b19P/29fT/9vX0//b19P/29fT/w+n2/zLK/P8Azv7/ANz+/wDj + /v8Azv7/GbT6/6fT5v/u7Or/9PPx/+/t6/9hX1//AAAAbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AG1kY2L/8/Lx//X08v/19PL/9fTy//X08v/19PL/9fTy//X08v/19PL/9fTy//X08v/z8/L/wuj0/xjF + /f8AzP7/AOH+/wXm/f93yOD/qbS0/8G5r//p5uP/6+jm/19eXP8AAABtAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAbWRkZP/08vH/8/Lx//Py8f/z8vH/8/Lx//Py8f/z8vH/8/Lx//Py8f/z8vH/8/Lw//Py + 8f/z8vD/wObz/zHG+/8Oy/n/jt7n/+fj4P/X0cz/ua+l/7mwp//f2tX/W1lX/wAAAG0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAABtZWRk//Ty8f/y8e//8vHv//Lx7//y8e//8vHv//Lx7//y8e//8vHv//Lx + 7//y8e//8vHv//Lx7//w8O//v+Xy/1O84P/AxMH/5ODd/+fj4P/Frsf/i02r/7WXuv9WU1D/AAAAbQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1lZWT/9PLx//Hv7f/x7+3/8e/t//Hv7f/x7+3/8e/t//Hv + 7f/x7+3/8e/t//Hv7f/x7+3/8e/t//Hv7f/x7+3/0MvF/6+kmf/Mxb7/y67W/4QR1P9wAMH/bhOt/0Ec + V/8AAACmAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWVlZf/08vH/7+3r/+/t6//v7ev/7+3r/+/t + 6//v7ev/7+3r/+/t6//v7ev/7+3r/+/t6//v7ev/7+3r/+7t6//o5eL/wbiv/62bof+NO8L/egDS/3oA + 0v9uAL3/XwCk/w4AGfEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZmZl//Py8f/t6+n/7evp/+3r + 6f/t6+n/7evp/+3r6f/t6+n/7evp/+3r6f/t6+n/7evp/+3r6f/t6+j/6+fl/9zV0P/c1tD/xLLC/4g6 + uv9xAMH/eQDR/4IA3/98ANT/KwBK/wAAAHcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1mZmX/8/Lw/+zq + 5//s6ef/7Orn/+zp5//s6uf/7Onn/+zq5//s6ef/7Orn/+zp5//s6uf/6+nn/+rn5f/a1M7/5+Le/+7r + 6f/m4uD/0LzW/34gvv9zAMX/gADc/3gAzf8RAB30AAAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWdm + Zv/z8fD/6ufl/+rn5P/q5+X/6ufk/+rn5f/q5+T/6ufl/+rn5P/q5+X/6ufk/+rn5P/o5eL/49/b/9nT + zP/x7+7/4d3Z/+Hd2f/k4N3/yLfR/10ajP9NAIP/GgAt+wAAAIIAAAAMAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABtZ2dn//Px8P/p5uP/6OXi/+nm4//o5eL/6ebj/+jl4v/p5uP/6OXi/+nm4//o5eL/5+Tg/+Th + 3v/d19L/3tjS/+zq5//h3dn/5ODd/+7t7P9YWFj+CgcM5QQACNEAAACCAAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAG1oaGf/8/Hv/+bj4P/m4+D/5uPg/+bj4P/m4+D/5uPg/+bj4P/m4+D/5uPf/+Th + 3v/i3tr/3tnV/9PMxv/Z08z/7Onn/+Tg3f/b2tn/WFhY/gAAAJUBAQETAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAZ2JiYv/08vH/5eHd/+Th3f/l4d3/5OHd/+Xh3f/k4d3/5eHd/+Tg + 3f/j39v/4d3Z/93Y0//X0cv/yMC3/9PMxP/v7ev/7evq/1RUVP4HBweyAQEBEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvMTEx+tjY2P/u6+r/5+Ph/+bj4P/m4+D/5uPg/+bj + 4P/l4t7/5ODd/+Hd2f/e2dT/1tHK/83FvP+3rKH/ysK5/97e3v9UVFT9AAAAlQEBARQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQGBgaxWlpa/uzs7P/5+Pf/+Pf2//j3 + 9v/49/b/9/f2//f19P/08/H/7+3q/+nm4v/d19H/zcW7/7Gklv/At63/VFRU/QYGBrIBAQEUAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACIDAwM3Coq + KuwvLy/uLy8v7i8vL+4uLi7uLi4u7i4tLe4sLCvuKyop7igmJe4kIiDuHhsY7hQSEe4AAACVAQEBFAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAcAAAAyAAAAQgAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAA + ABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAB/wAAAP4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAH4AAAP+AAAH/gAAD/4AAB//AAA//4AAf/KAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAYgAA + AGYAAABmAAAAZgAAAGYAAABmAAAAZgAAAGYAAABmAAAAZgAAAGYAAABmAAAAZgAAAGIAAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG5APj38i4mG/5COi/+Qjov/kI6L/5COi/+Qjov/kI6L/5CO + i/+Qjov/kI6L/5COi/+Qjov/kI6L/4uJh/8/Pj38AAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHTg3 + N/rm4+D/9vX0//j49//4+Pf/+Pj3//j49//4+Pf/+Pj3//j49//4+Pf/+Pj3//j49//4+Pf/+Pj3//b1 + 9P/l4+D/ODc2+gAAAB0AAAAAAAAAAAAAAAAAAAAAAAAATnx6eP/39vb//v7+//39/f/6+vr//f39//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/39vb/fHp4/wAAAE4AAAAAAAAAAAAA + AAAAAAAAAAAAUoB/ff/5+fj//v79//T09P+foqb/m6St/6SkpP+0tLT/5eXl//7+/f/+/v3//v79//7+ + /f/+/v3//v79//7+/f/6+fj/gH99/wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoF/fv/5+Pj//f39//39 + /f/g6PH/xNnv/3mx1f9kprz/oKGh/8zMzP/5+fn//f39//39/f/9/f3//f39//39/f/5+Pj/gX9+/wAA + AFIAAAAAAAAAAAAAAAAAAAAAAAAAUoKAf//5+Pf//fz8//38/P/u8/j/qNz0/wrO/f8A0f7/RLbZ/62u + rv/AwMD/7e3t//38/P/9/Pz//fz8//38/P/5+Pj/goB//wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoOB + gP/5+Pf//Pz7//z8+//7+/v/UNX5/wDN/v8A0f7/AM/+/0u63/+7vL3/x8fH/+Pj4//6+vn//Pz7//z8 + +//5+Pf/g4GA/wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoSDgf/4+Pf/+/r6//v6+v/7+vr/w+37/w7O + /f8A0P7/ANX+/wDM/v9Rv+X/zM3N/9fX1//l5OT/9/b2//v6+v/49/f/hIOB/wAAAFIAAAAAAAAAAAAA + AAAAAAAAAAAAUoWEgv/49/b/+vn5//r5+f/6+fn/+vn5/8Hs+v8Ozf3/ANP+/wDY/v8Ayf7/V8Ps/9zd + 3f/o5+f/8/Ly//r5+f/49/b/hYSC/wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoWEg//39vX/+fj3//n4 + 9//5+Pf/+fj3//n49//A6/n/Dsv9/wDU/v8A3P7/AMb+/1/I8v/s7e3/9/f2//n49//39vX/hYSD/wAA + AFIAAAAAAAAAAAAAAAAAAAAAAAAAUoaFhP/29fT/9/b1//f29f/39vX/9/b1//f29f/39vX/v+n3/w3J + /f8A1v7/AOD+/wDD/v9lzPn/9vb1//f29f/19PP/hYSD/wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoeG + hf/19PP/9vX0//b19P/29fT/9vX0//b19P/29fT/9vX0/77o9v8Ox/3/ANj+/wDj/v8Av/7/h8bi/+3r + 6P/y8O7/g4KA/wAAAFIAAAAAAAAAAAAAAAAAAAAAAAAAUoiHh//08/L/9PPy//Tz8v/08/L/9PPy//Tz + 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 + rEGAAaxBgAGsQYAHrEGAD6xBwB+sQQ== + + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmEditWhere.vb b/SW/20211125/_FRReporting/Formulare/frmEditWhere.vb new file mode 100644 index 0000000..489dba5 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmEditWhere.vb @@ -0,0 +1,22 @@ +Public Class frmEditWhere + + Dim m_sql As String + Property sql() As String + Get + Return m_sql + End Get + Set(ByVal value As String) + m_sql = value + End Set + End Property + + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click + Me.sql = Me.Editor.Text + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub frmEditWhere_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.Editor.Text = Me.sql + End Sub +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmViewer.Designer.vb b/SW/20211125/_FRReporting/Formulare/frmViewer.Designer.vb new file mode 100644 index 0000000..31989a4 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmViewer.Designer.vb @@ -0,0 +1,37 @@ + _ +Partial Class frmViewer + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.SuspendLayout() + ' + 'frmViewer + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(284, 262) + Me.Name = "frmViewer" + Me.Text = "frmViewer" + Me.ResumeLayout(False) + + End Sub +End Class diff --git a/SW/20211125/_FRReporting/Formulare/frmViewer.resx b/SW/20211125/_FRReporting/Formulare/frmViewer.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmViewer.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/frmViewer.vb b/SW/20211125/_FRReporting/Formulare/frmViewer.vb new file mode 100644 index 0000000..fba6276 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/frmViewer.vb @@ -0,0 +1,3 @@ +Public Class frmViewer + +End Class \ No newline at end of file diff --git a/SW/WindowsApplication1/WindowsApplication1/Form1.Designer.vb b/SW/20211125/_FRReporting/Formulare/sample.Designer.vb similarity index 77% rename from SW/WindowsApplication1/WindowsApplication1/Form1.Designer.vb rename to SW/20211125/_FRReporting/Formulare/sample.Designer.vb index f7a7ec8..88417b6 100644 --- a/SW/WindowsApplication1/WindowsApplication1/Form1.Designer.vb +++ b/SW/20211125/_FRReporting/Formulare/sample.Designer.vb @@ -1,5 +1,5 @@  _ -Partial Class Form1 +Partial Class sample Inherits System.Windows.Forms.Form 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. @@ -22,9 +22,16 @@ Partial Class Form1 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. _ Private Sub InitializeComponent() - components = New System.ComponentModel.Container() + Me.SuspendLayout() + ' + 'sample + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Text = "Form1" - End Sub + Me.ClientSize = New System.Drawing.Size(824, 591) + Me.Name = "sample" + Me.Text = "sample" + Me.ResumeLayout(False) + End Sub End Class diff --git a/SW/20211125/_FRReporting/Formulare/sample.resx b/SW/20211125/_FRReporting/Formulare/sample.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/sample.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Formulare/sample.vb b/SW/20211125/_FRReporting/Formulare/sample.vb new file mode 100644 index 0000000..03bb3da --- /dev/null +++ b/SW/20211125/_FRReporting/Formulare/sample.vb @@ -0,0 +1,3 @@ +Public Class sample + +End Class \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Klassen/Crypto.vb b/SW/20211125/_FRReporting/Klassen/Crypto.vb new file mode 100644 index 0000000..e6f4afa --- /dev/null +++ b/SW/20211125/_FRReporting/Klassen/Crypto.vb @@ -0,0 +1,34 @@ +Module Crypto + Public Function EncryptText(ByVal strText As String, ByVal strPwd As String) + Dim i As Integer, c As Integer + Dim strBuff As String + + strPwd = UCase$(strPwd) + If Len(strPwd) Then + For i = 1 To Len(strText) + c = Asc(Mid$(strText, i, 1)) + c = c + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1)) + strBuff = strBuff & Chr(c And &HFF) + Next i + Else + strBuff = strText + End If + EncryptText = strBuff + End Function + + Public Function DecryptText(ByVal strText As String, ByVal strPwd As String) + Dim i As Integer, c As Integer + Dim strBuff As String + strPwd = UCase$(strPwd) + If Len(strPwd) Then + For i = 1 To Len(strText) + c = Asc(Mid$(strText, i, 1)) + c = c - Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1)) + strBuff = strBuff & Chr(c And &HFF) + Next i + Else + strBuff = strText + End If + DecryptText = strBuff + End Function +End Module \ No newline at end of file diff --git a/SW/20211125/_FRReporting/Klassen/Globals.vb b/SW/20211125/_FRReporting/Klassen/Globals.vb new file mode 100644 index 0000000..d9a675b --- /dev/null +++ b/SW/20211125/_FRReporting/Klassen/Globals.vb @@ -0,0 +1,11 @@ +Module Globals + Public Spaltendaten As New DataTable + Public sConnectionString As String + Public conn As New DB.clsConnectionProvider + + Public ConnectionFileName As String = "" + Public Mitarbeiternr As Integer + Public TmpFilepath As String + Public SecurityDaten As New DataSet + +End Module \ No newline at end of file diff --git a/SW/Dokumente_sik/DMS/MyDocMgmt.vb b/SW/20211125/_FRReporting/Klassen/MyDocMgmt.vb similarity index 100% rename from SW/Dokumente_sik/DMS/MyDocMgmt.vb rename to SW/20211125/_FRReporting/Klassen/MyDocMgmt.vb diff --git a/SW/20211125/_FRReporting/Klassen/MySecurity.vb b/SW/20211125/_FRReporting/Klassen/MySecurity.vb new file mode 100644 index 0000000..14a6518 --- /dev/null +++ b/SW/20211125/_FRReporting/Klassen/MySecurity.vb @@ -0,0 +1,816 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Windows.Forms +Imports System.Drawing +Namespace Utils + ''' + ''' Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + ''' + ''' + + Public Class MySecurity + + Dim SecurityData As DataSet = Globals.SecurityDaten + Dim connection As New SqlConnection() + Dim da As New SqlDataAdapter("", connection) + + Dim IntForm As Object + Dim ctlcol As New Collection + Dim formname As String = "" + + + + ''' + ''' Formularsecurity setzen + ''' + ''' Aktuelles Formular + ''' + ''' + Public Function Set_Form_Security(ByRef f As Object) + IntForm = f + formname = f.Name + 'Load form DB + Load_Data(f.Name) + 'Load FormObjects + Me.ctlcol.Clear() + formname = f.Name + For Each ctl As Control In f.Controls + Objectanalysis(ctl) + ' AddHandler ctl.HelpRequested, AddressOf Object_MouseDown + 'ctl.ContextMenuStrip = Globals.TTContextMenuStrip + 'AddHandler ctl.KeyDown, AddressOf Object_MouseDown + Next + Set_Security() + + End Function + + Public Function Set_Menu_Security(ByRef f As Form, ByRef menu As ToolStripMenuItem, ByVal Menuname As String) + IntForm = f + formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + formname = f.Name + Dim ctl As Object = menu + Dim typ As System.Type = ctl.GetType + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, Menuname, ctl.Name)) + + Set_Security() + 'If Globals.Set_ToolTips = True Then + ' tt.Edit_ToolTips(f, ctlcol) + 'Else + ' tt.Set_ToolTips(f) + 'End If + + End Function + + + Public Function Set_Form_Readonly(ByRef f As Form) + IntForm = f + Me.formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + For Each ctl As Control In f.Controls + Objectanalysis_readonly(ctl) + Next + End Function + Public Function Set_Form_Default(ByRef f As Form) + IntForm = f + Me.formname = f.Name + Load_Data(f.Name) + Me.ctlcol.Clear() + For Each ctl As Control In f.Controls + Objectanalysis_default(ctl) + Next + End Function + + Private Function Objectanalysis_readonly(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis_readonly(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis_readonly(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis_readonly(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + + For Each ctl In tmptabpage.Controls + Objectanalysis_readonly(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis_readonly(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis_readonly(ctl) + Next + Case "textbox" + Dim x As TextBox = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "maskedtextbox" + Dim x As MaskedTextBox = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "combobox" + Dim x As ComboBox = ctl + x.Enabled = False + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + Case "checkbox" + Dim x As CheckBox = ctl + x.Enabled = False + Case "radiobutton" + Dim x As RadioButton = ctl + x.Enabled = False + Case "comboboxtree" + Dim x As Object = ctl + x.enabled = False + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + Case "richtextbox" + Dim x As Object = ctl + x.BackColor = Color.LightGray + x.ForeColor = Color.Black + x.ReadOnly = True + Case "button" + Dim x As Button = ctl + x.Enabled = False + Case "listbox" + Dim x As Object = ctl + ctl.enabled = False + Case "checkedlistbox" + Dim x As Object = ctl + ctl.enabled = False + Case "datetimepicker" + Dim x As Object = ctl + ctl.enabled = False + + Case Else + End Select + End Function + + Private Function Objectanalysis_default(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis_default(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis_default(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis_default(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + For Each ctl In tmptabpage.Controls + Objectanalysis_default(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis_default(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis_default(ctl) + Next + Case "textbox" + Dim x As TextBox = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.Enabled = True + Case "maskedtextbox" + Dim x As MaskedTextBox = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.Enabled = True + Case "combobox" + Dim x As ComboBox = ctl + x.Enabled = True + x.BackColor = Color.White + x.ForeColor = Color.Black + + Case "checkbox" + Dim x As CheckBox = ctl + x.Enabled = True + Case "radiobutton" + Dim x As RadioButton = ctl + x.Enabled = True + Case "comboboxtree" + Dim x As Object = ctl + x.enabled = True + x.BackColor = Color.White + x.ForeColor = Color.Black + Case "richtextbox" + Dim x As Object = ctl + x.BackColor = Color.White + x.ForeColor = Color.Black + x.readonly = True + Case "button" + Dim x As Button = ctl + x.Enabled = True + Case "listbox" + Dim x As Object = ctl + ctl.enabled = True + Case "checkedlistbox" + Dim x As Object = ctl + ctl.enabled = True + Case "datetimepicker" + Dim x As Object = ctl + ctl.enabled = True + Case Else + End Select + End Function + + + + ''' + ''' Daten ab Datenbank laden + ''' + ''' + Private Sub Load_Data(ByVal Formname As String) + Try + 'xxx + If SecurityData.Tables.Count > 0 Then + SecurityData.Tables.Clear() + End If + ' Exit Sub + Catch ex As Exception + End Try + SecurityData.Tables.Clear() + Dim sqlcmd As New SqlCommand + + sqlcmd.CommandText = "dbo.my_security_get_data" + sqlcmd.Parameters.Add("@FormName", SqlDbType.VarChar, 255) + sqlcmd.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) + sqlcmd.Parameters(0).Value = Formname + sqlcmd.Parameters(1).Value = Globals.Mitarbeiternr + + sqlcmd.CommandType = CommandType.StoredProcedure + sqlcmd.Connection = connection + Try + connection.ConnectionString = Globals.sConnectionString + connection.Open() + da.SelectCommand = sqlcmd + da.Fill(SecurityData, "SecurityTable") + Globals.SecurityDaten.Tables.Add(SecurityData.Tables(0).Copy) + Catch ex As Exception + Finally + connection.Close() + da.Dispose() + sqlcmd.Dispose() + End Try + End Sub + ''' + ''' Prft die DB-Eintrge mit den Formcontrols und bei bereinstimmung werden die Security-Einstellungen gesetzt + ''' + ''' + Private Sub Set_Security() + Dim i As Integer + For i = 0 To Me.SecurityData.Tables(0).Rows.Count - 1 + Dim SecurityObject As String = Me.SecurityData.Tables(0).Rows(i).Item("SecurityObject") + Dim SecurityObjectitem As String = Me.SecurityData.Tables(0).Rows(i).Item("SecurityObjectItem") + Dim read_only As Boolean = Me.SecurityData.Tables(0).Rows(i).Item("readonly") + Dim invisible As Boolean = Me.SecurityData.Tables(0).Rows(i).Item("invisible") + Dim ii As Integer + For ii = 1 To ctlcol.Count + Dim secobj As MyFormControls = ctlcol(ii) + If secobj.MySecurityObject = SecurityObject And secobj.MySecurityObjectItem = SecurityObjectitem Then + Set_Preferences(secobj.MyControl, read_only, invisible, SecurityObjectitem) + End If + Next + Next + End Sub + + ''' + ''' Security-Einstellungen setzen + ''' + ''' Betroffenes Objeckt (Menuitem, Conrol usw.) + ''' Readonly ja/nein + ''' Sichtbar ja/nein + ''' Name des Unterobjektes - wird fr die Spalteneinstellungen von C1TruedbGrids verwendet + ''' + Private Sub Set_Preferences(ByRef obj As Object, ByVal read_only As Boolean, ByVal invisible As Boolean, ByVal SecurityObjectItem As String) + Dim objtype As System.Type = obj.GetType + Select Case LCase(objtype.Name) + Case "button" + Dim ctl As Button = obj + If read_only Then ctl.Enabled = False + If invisible Then + ctl.Visible = False + ctl.Enabled = False + End If + Case "toolstripmenuitem" + Dim ctl As ToolStripMenuItem = obj + If read_only Then ctl.Enabled = False + If invisible Then + ctl.Visible = False + ctl.Enabled = False + End If + Case "textbox", "label", "combobox", "checkbox", "toolstripbutton", "panel", "datetimepicker" + If read_only Then obj.Enabled = False + If invisible Then obj.Visible = False + Case "richtextbox" + If read_only Then obj.Enabled = False + Try + obj.readonly = True + obj.enabled = True + Catch ex As Exception + End Try + If invisible Then obj.Visible = False + Case "tabpage" + If invisible Then + Dim tbp As TabPage = obj + For Each x As MyFormControls In Me.ctlcol + If x.MySecurityObject = tbp.Parent.Name Then + Dim tb As TabControl = x.MyControl + tb.TabPages.Remove(tbp) + Exit Sub + End If + Next + End If + '20100406 - TabPageHandling + If read_only Then + 'obj.enabled = False + For Each CTLX As Control In obj.CONTROLS + Me.Objectanalysis_readonly(CTLX) + Next + End If + Case "c1truedbgrid" + Dim ctl As C1TrueDBGrid = obj + If SecurityObjectItem = "" Then + If read_only Then ctl.Enabled = False + If invisible Then obj.Visible = False + Else + If read_only Then ctl.Splits(0).DisplayColumns(SecurityObjectItem).Locked = True + If invisible Then ctl.Splits(0).DisplayColumns(SecurityObjectItem).Visible = False + End If + + End Select + End Sub + + +#Region "Read Objects from Form and save to Database" + Dim tmpmenuname As String + ''' + ''' Alle Controls des Formulars zusammensuchen und auf der DB speichern + ''' + ''' Betroffenes Formular + ''' + ''' + + Public Function List_Form_Controls(ByRef f As Object) + Me.ctlcol.Clear() + formname = f.Name + For Each ctl As Control In f.Controls + Objectanalysis(ctl) + Next + Dim i As Integer + For i = 1 To ctlcol.Count + Dim secobj As MyFormControls = ctlcol(i) + secobj.Write_Object_to_DB() + Next + End Function + + ''' + ''' Smtliche Controls vom Formular auslesen + ''' + ''' + ''' + ''' + Private Function Objectanalysis(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "menustrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + tmpmenuname = ctl.name + ReadMenu(ctl) + Case "contextmenustrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + tmpmenuname = ctl.name + ReadContextMenu(ctl) + Case "toolstrip" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptoolstrop As ToolStrip = ctl + Try + Dim ic As Integer + For ic = 0 To tmptoolstrop.Items.Count - 1 + Try + Dim subobj As ToolStripButton + subobj = tmptoolstrop.Items(ic) + ctlcol.Add(New MyFormControls(subobj, formname, typ.Name, ctl.Name, subobj.Name, 1)) + Catch ex As Exception + + End Try + + Next + 'For Each subobj As ToolStripButton In tmptoolstrop.Items + 'ctlcol.Add(New MyFormControls(subobj, formname, typ.Name, ctl.Name, subobj.Name, 1)) + 'Next + Catch + End Try + Case "splitcontainer" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmpsplit As SplitContainer = ctl + For Each ctrl As Object In tmpsplit.Panel1.Controls + Objectanalysis(ctrl) + Next + For Each ctrl As Object In tmpsplit.Panel2.Controls + Objectanalysis(ctrl) + Next + Case "tabcontrol", "clsmytabcontrol" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabcontrol As TabControl = ctl + For Each ctl In tmptabcontrol.TabPages + Objectanalysis(ctl) + Next + Case "tabpage" + Dim tmptabpage As TabPage = ctl + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, tmptabpage.Parent.Name, 1)) + + For Each ctl In tmptabpage.Controls + Objectanalysis(ctl) + Next + Case "groupbox" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmptabpage As GroupBox = ctl + For Each ctl In tmptabpage.Controls + Objectanalysis(ctl) + Next + Case "panel" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim tmppanel As Panel = ctl + For Each ctl In tmppanel.Controls + Objectanalysis(ctl) + Next + Case "c1truedbgrid" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As C1TrueDBGrid = ctl + Dim i As Integer + For i = 0 To ctrl.Columns.Count - 1 + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, ctrl.Columns(i).Caption, 0, ctrl.Columns(i).Caption)) + Next + Try + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + Catch ex As Exception + + End Try + For Each xctl As Object In ctrl.Controls + Objectanalysis(xctl) + Next + Case "treeview" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As TreeView = ctl + Try + + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + + Catch ex As Exception + + End Try + + Case Else + If ctl.name = "TreeStruktur" Then + End If + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + End Select + End Function + + ''' + ''' Auslesen von MenuItems + ''' + ''' + ''' + ''' + ''' + Dim level As Integer = 0 + Private Function ReadMenu(ByRef x As Object) + Dim tmpmnu As MenuStrip = x + level = 0 + For Each xx As Object In tmpmnu.Items + Dim objtype As System.Type = xx.GetType + If LCase(objtype.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(xx, formname, "menustrip", tmpmenuname, xx.Name, level)) + get_all_menus(xx) + End If + Next + End Function + ''' + ''' Auslesen von ContextMenuItems + ''' + ''' + ''' + ''' + ''' + + Private Function ReadContextMenu(ByRef x As Object) + Dim tmpmnu As ContextMenuStrip = x + level = 0 + Try + For Each xx As Object In tmpmnu.Items + Dim objtype As System.Type = xx.GetType + If LCase(objtype.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(xx, formname, "menustrip", tmpmenuname, xx.Name, level)) + get_all_menus(xx) + End If + ' ctlcol.Add(New MyFormControls(xx, formname, "contextmenustrip", tmpmenuname, xx.Name, level)) + ' get_all_menus(xx) + Next + Catch ex As Exception + End Try + End Function + ''' + ''' Auslesen von Menu-Subitems + ''' + ''' + ''' + ''' + Private Function get_all_menus(ByRef xx As ToolStripMenuItem) + level = level + 1 + For Each subobj As Object In xx.DropDownItems + If LCase(subobj.GetType.Name) = "toolstripmenuitem" Then + ctlcol.Add(New MyFormControls(subobj, formname, "menustrip", tmpmenuname, subobj.Name, level)) + get_all_menus(subobj) + End If + Next + level = level - 1 + End Function + + + + ''' + ''' Prft, ob das Security-Objekt bereits auf der DB vorhanden ist + ''' + ''' Formular + ''' Objekttyp + ''' Objektname + ''' Objektitem + ''' + ''' + Private Function Objexists(ByVal securityform As String, ByVal securityobjecttype As String, ByVal securityobject As String, ByVal securityobjectitem As String) As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_security_check_entry]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@form", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityform)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objecttype", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobjecttype)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@object", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objectitem", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, securityobjectitem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objexists", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + If scmCmdToExecute.Parameters("@objexists").Value > 0 Then + Return True + Else + Return False + End If + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + +#End Region + +#Region "ScreenDoku" + + Public Function Print_Screen(ByRef ctl As Control) + saveasbitmap(ctl, ctl.Name) + End Function + Public Function Generate_HTML() + saveasbitmap(Me.IntForm, "testform") + 'Exit Function + 'Dim x As MyFormControls + 'For Each x In ctlcol + ' Try + ' saveasbitmap(x.MyControl, x.MyFormname & "_" & x.MySecurityObject & "_" & x.MySecurityObjectItem) + ' If x.MySecurityObjecttype = "ToolStrip" And x.MySecurityObjectItem = "" Then + ' Dim gaga As ToolStrip = x.MyControl + ' For Each c As ToolStripButton In gaga.Items + ' Dim xxx As Control = CType(c, Control) + + ' xxx = CType(c, Control) + ' saveasbitmap(xxx, "xxx") + ' Next + ' End If + ' Catch ex As Exception + ' MsgBox(ex.Message) + ' End Try + 'Next + End Function + + Public Function saveasbitmap(ByRef ctl As Control, ByVal filename As String) + Dim g As Graphics = ctl.CreateGraphics + Dim b As New Bitmap(ctl.Width, ctl.Height) + ctl.DrawToBitmap(b, New Rectangle(0, 0, ctl.Width, ctl.Height)) + 'b.Save("E:\Software-Projekte\Vertragsverwaltung\Screens\" & filename & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg) + End Function + + +#End Region + + + End Class + ''' + ''' Klasse fr ein Control-Objekt + ''' + ''' + Public Class MyFormControls + + Public MyControl As Object + Public MyFormname As String + Public MySecurityObjecttype As String + Public MySecurityObject As String + Public MySecurityObjectItem As String + Public MyDescription As String + Public MyLevel As Integer + + ''' + ''' Neue Instanz erstellen + ''' + ''' Control-Objekt + ''' Betroffenes Formular + ''' Objekttyp + ''' Objektname + ''' Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + ''' + Sub New(ByVal ctl As Object, ByVal Formname As String, ByVal securityobjecttype As String, ByVal Securityobject As String, ByVal SecurityObjectItem As String, Optional ByVal level As Integer = 0, Optional ByVal desc As String = "") + MyControl = ctl + MySecurityObjecttype = securityobjecttype + MyFormname = Formname + MySecurityObject = Securityobject + MySecurityObjectItem = SecurityObjectItem + If desc = "" Then + MyDescription = Get_Description(ctl) + Else + MyDescription = desc + End If + Try + MyDescription = MyDescription.Replace("&", "") + Catch ex As Exception + End Try + MyLevel = level + End Sub + + Private Function Get_Description(ByRef ctl As Object) As String + Dim typ As System.Type = ctl.GetType + Select Case LCase(typ.Name) + Case "menustrip", "toolstripmenuitem", "toolstrip", "toolstripbutton", "contextmenustrip", "tabpage", "c1truedbgrid", "label" + Return ctl.Text + Case Else + Return ctl.Name + End Select + + End Function + + ''' + ''' Schreibt einen Datnsatz in die Tabelle SecurityObjects + ''' + ''' + ''' + Public Function Write_Object_to_DB() + If Objexists() Then Exit Function + Dim sectbl As New DB.clsSecurityObject + Dim dbkey As New DB.clsMyKey_Tabelle + dbkey.cpMainConnectionProvider = Globals.conn + Dim newkey As Integer = dbkey.get_dbkey("SecurityObject") + + sectbl.cpMainConnectionProvider = Globals.conn + conn.OpenConnection() + sectbl.iSecurityObjectNr = New SqlInt32(CType(newkey, Int32)) + sectbl.sSecurityForm = New SqlString(CType(MyFormname, String)) + sectbl.sSecurityObjectType = New SqlString(CType(Me.MySecurityObjecttype, String)) + sectbl.sSecurityObject = New SqlString(CType(Me.MySecurityObject, String)) + sectbl.sSecurityObjectItem = New SqlString(CType(Me.MySecurityObjectItem, String)) + sectbl.bAktiv = New SqlBoolean(CType(True, Boolean)) + sectbl.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) + sectbl.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) + sectbl.sSecurityObjectDescriotion = New SqlString(CType(Me.MyDescription, String)) + sectbl.iLevel = New SqlInt32(CType(Me.MyLevel, Int32)) + sectbl.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) + sectbl.iMandantnr = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) + sectbl.Insert() + conn.CloseConnection(True) + sectbl.Dispose() + dbkey.Dispose() + End Function + + + ''' + '''Prft, ob das Security-Objekt bereits auf der DB vorhanden ist + ''' + ''' + ''' + Private Function Objexists() As Boolean + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[my_security_check_entry]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@form", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MyFormname)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objecttype", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObjecttype)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@object", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObject)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objectitem", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.MySecurityObjectItem)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@objexists", SqlDbType.Int, 4, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, 0)) + scmCmdToExecute.Connection.Open() + scmCmdToExecute.ExecuteNonQuery() + If scmCmdToExecute.Parameters("@objexists").Value > 0 Then + Return True + Else + Return False + End If + Catch ex As Exception + Finally + scmCmdToExecute.Connection.Close() + End Try + End Function + + + End Class + + Public Class ControlsCollection + Private Shared m_controls As Collection + Public Sub New(ByVal myForm As Form) + m_controls = New Collection + 'create a control walker to get + 'all controls on the form + Dim aControlWalker As New ControlWalker(myForm) + End Sub + 'This property returns the collection of all controls + 'on the form + ReadOnly Property Controls() As Collection + Get + Return m_controls + End Get + End Property + + Public Function FindControl(ByVal ctlname As String) As Boolean + Dim i As Integer + For i = 1 To Me.m_controls.Count + Dim ctl As Control = m_controls(i) + If UCase(ctl.Name) = UCase(ctlname) Then MsgBox("found") + Next + End Function + Private Class ControlWalker + ' This class recursively walks through all controls + ' in a container, and all containers contained in + ' this container, visiting all controls throughout + ' the hierarchy + Private mContainer As Object + Public Sub New(ByVal Container As Object) + Dim cControl As Control + If Container.haschildren Then + For Each cControl In Container.controls + 'add this control to the controls collection + m_controls.Add(cControl) + If cControl.HasChildren Then + 'This control has children, create another + 'ControlWalk go visit each of them + Dim cWalker As New ControlWalker(cControl) + End If + Next cControl + End If + End Sub + End Class + End Class +End Namespace diff --git a/SW/20211125/_FRReporting/Klassen/clsAuswertung.vb b/SW/20211125/_FRReporting/Klassen/clsAuswertung.vb new file mode 100644 index 0000000..88076b9 --- /dev/null +++ b/SW/20211125/_FRReporting/Klassen/clsAuswertung.vb @@ -0,0 +1,343 @@ +Imports C1.Win.C1TrueDBGrid +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Imports System.Windows.Forms + +Namespace TKB.Auswertung + Public Class clsAuswertung + + Private Auswertungen As New DataSet + Private Mitarbeiter_Auswerungsparameter As New DB.clsMitarbeiter_Auswertungsparameter + Public AuswertungParameter As New DataTable + Public Auswertung As New DB.clsAuswertung + Public MitarbeiterAuswertungsparameter As New DataTable + Dim sheader1 As String + Property TitelZeile1() As String + Get + Return sheader1 + End Get + Set(ByVal value As String) + sheader1 = value + End Set + End Property + Dim sheader2 As String + Property TitelZeile2() As String + Get + Return sheader2 + End Get + Set(ByVal value As String) + sheader2 = value + End Set + End Property + Dim scparamcollection As New Collection + Property ParamCollection() As Collection + Get + Return scparamcollection + End Get + Set(ByVal value As Collection) + scparamcollection = value + End Set + End Property + Dim mFullparam As String + Property FullParam() As String + Get + Return mFullparam + End Get + Set(ByVal value As String) + mFullparam = value + End Set + End Property + + Public Sub Get_Auswertungen(ByRef tree As TreeView) + Read_Auswertungen() + Load_Treeview(Auswertungen, tree) + End Sub + + + + ''' + ''' Auswertungen, fr welche der User berechtigt ist, auslesen + ''' + ''' + ''' + Private Function Read_Auswertungen() As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = "dbo.sp_Auswertung_Get_Auswertungen" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = Globals.conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr)) + sdaAdapter.Fill(dtToReturn) + Auswertungen.Tables.Clear() + Auswertungen.Tables.Add(dtToReturn) + Catch ex As Exception + Throw New Exception("clsAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + ''' + ''' Interne Relation aufbauen und Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub Load_Treeview(ByVal oSourceData As DataSet, ByRef tree As TreeView) + If Not (oSourceData Is Nothing) Then + Dim oView As DataView = oSourceData.Tables(0).DefaultView + Dim oTable As DataTable = oView.Table + Dim oDS As DataSet = New DataSet() + oDS.Tables.Add(oTable.Copy()) + + If oDS.Relations.Contains("SelfRefenceRelation") = False Then + oDS.Relations.Add("SelfRefenceRelation", _ + oDS.Tables(0).Columns("id"), _ + oDS.Tables(0).Columns("Parentid")) + End If + oTable.Dispose() + oTable = Nothing + LoadTreeView(oDS, tree) + oDS.Dispose() + oDS = Nothing + End If + End Sub + + ''' + ''' Tree aufbauen + ''' + ''' + ''' + ''' + Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As TreeView) + 'Dim oTreeView As TreeView = New TreeView() + Dim oDataRow As DataRow + For Each oDataRow In oDS.Tables(0).Rows + If Not oDataRow.IsNull("Parentid") Then + If oDataRow.Item("Parentid") = 0 Then + Dim oNode As New TreeNode() + oNode.Text = oDataRow("Bezeichnung").ToString() + oNode.Tag = oDataRow("auswertungnr").ToString + oNode.ToolTipText = oDataRow("Beschreibung").ToString + oNode.ImageIndex = 0 + oNode.SelectedImageIndex = 0 + oNode.StateImageIndex = 0 + oTreeview.Nodes.Add(oNode) + RecursivelyLoadTree(oDataRow, oNode) + End If + End If + Next oDataRow + oDS.Dispose() + oDS = Nothing + End Sub + + ''' + ''' Child-Nodes hinzufgen + ''' + ''' + ''' + ''' + Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As TreeNode) + Dim oChildRow As DataRow + For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") + Dim oChildNode As New TreeNode() + oChildNode.Text = oChildRow("Bezeichnung").ToString() + oChildNode.Tag = oChildRow("Auswertungnr").ToString() + If oChildRow("Auswertungnr") = 0 Then + oChildNode.ImageIndex = 0 + oChildNode.SelectedImageIndex = 0 + oChildNode.StateImageIndex = 0 + oChildNode.ToolTipText = oChildRow("Beschreibung").ToString + Else + oChildNode.ImageIndex = 1 + oChildNode.SelectedImageIndex = 1 + oChildNode.StateImageIndex = 1 + oChildNode.ToolTipText = oChildRow("Beschreibung").ToString + End If + oNode.Nodes.Add(oChildNode) + RecursivelyLoadTree(oChildRow, oChildNode) + Next oChildRow + End Sub + + Public Function Get_Auswertung(ByVal Auswertungnr As Integer) As Boolean + Try + Me.Auswertung.iAuswertungNr = New SqlInt32(CType(Auswertungnr, Int32)) + Me.Auswertung.cpMainConnectionProvider = Globals.conn + Me.Auswertung.SelectOne() + Me.AuswertungParameter = Get_Auswertungsparameter(Me.Auswertung.iAuswertungNr.Value) + Me.MitarbeiterAuswertungsparameter = Me.Get_MAParameter(Me.Auswertung.iAuswertungNr.Value) + Return True + Catch ex As Exception + Return False + End Try + End Function + + Public Function Get_Auswertungsparameter(ByVal Auswertungnr As Integer) As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = "dbo.sp_rpt_get_auswertungparameter" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@Auswertungnr", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Auswertungnr)) + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("frmAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + + End Function + + Public Function get_rptparam_values(ByVal sp As String) As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = sp + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("frmAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + + End Function + + Public Function Get_Auswertungsdaten(ByVal sql As String, ByVal sqlwhere As String, ByVal sqltype As String) As DataSet + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataSet = New DataSet() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = sql + Select Case UCase(sqltype) + Case "SQL" + If sqlwhere <> "" Then sql = sql + " where " + sqlwhere + 'gaga + Case "VIEW" + If sqlwhere <> "" Then sql = sql + " where " + sqlwhere + Case "SP" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Parameters.Add(New SqlParameter("@sqlwhere", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, sqlwhere)) + End Select + scmCmdToExecute.Connection = conn.scoDBConnection + Try + 'scmCmdToExecute.Parameters.Add(New SqlParameter("@Rolle", SqlDbType.VarChar, 50, ParameterDirection.Output, True, 0, 0, "", DataRowVersion.Proposed, "")) + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("frmAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + + End Function + Public Function Get_Auswertungsdaten(ByVal sp As String, ByVal sqlwhere As String, ByVal txp As Boolean) As DataTable + + Dim con As New SqlConnection(Get_TXP_Connection) + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = sp + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = con + scmCmdToExecute.CommandTimeout = 30000 + + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@sqlwhere", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, sqlwhere)) + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("frmAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + con.Close() + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + con.Dispose() + End Try + + End Function + + Private Function Get_TXP_Connection() As String + Dim sCstr As String = "" + Dim txpfile As System.IO.File + Dim txpread As System.IO.StreamReader + txpread = txpfile.OpenText(Application.StartupPath + "\TXPConn.cfg") + sCstr = txpread.ReadLine + sCstr = Crypto.DecryptText(sCstr, "HutterundMueller") + sCstr = Left(sCstr, Len(sCstr) - 1) + txpread.Close() + + Return sCstr + End Function + Public Function Save_MAParameter(ByVal auswertungnr As Integer, ByVal Bezeichnung As String, ByVal Parameter As String, ByVal Titel1 As String, ByVal Titel2 As String, ByVal PrintParam As Boolean, ByVal sqlwhere As String) + Me.Mitarbeiter_Auswerungsparameter.cpMainConnectionProvider = Globals.conn + Me.Mitarbeiter_Auswerungsparameter.iAuswertungnr = New SqlInt32(CType(auswertungnr, Int32)) + Me.Mitarbeiter_Auswerungsparameter.iMitarbeiternr = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) + Me.Mitarbeiter_Auswerungsparameter.sBeschreibung = New SqlString(CType(Bezeichnung, String)) + Me.Mitarbeiter_Auswerungsparameter.sParameterdaten = New SqlString(CType(Parameter, String)) + Me.Mitarbeiter_Auswerungsparameter.sTitelzeile1 = New SqlString(CType(Titel1, String)) + Me.Mitarbeiter_Auswerungsparameter.sTitelzeile2 = New SqlString(CType(Titel2, String)) + Me.Mitarbeiter_Auswerungsparameter.sSQLWhere = New SqlString(CType(sqlwhere, String)) + If PrintParam = True Then + Me.Mitarbeiter_Auswerungsparameter.bParamPrint = New SqlBoolean(CType(True, Boolean)) + Else + Me.Mitarbeiter_Auswerungsparameter.bParamPrint = New SqlBoolean(CType(False, Boolean)) + End If + Globals.conn.OpenConnection() + Me.Mitarbeiter_Auswerungsparameter.Insert() + Globals.conn.CloseConnection(True) + Me.MitarbeiterAuswertungsparameter = Me.Get_MAParameter(auswertungnr) + End Function + + + Public Function Get_MAParameter(ByVal Auswertungnr As Integer) As DataTable + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + Dim dtToReturn As DataTable = New DataTable() + Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) + scmCmdToExecute.CommandText = "dbo.sp_mitarbeiter_auswertungparamter_selectall" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + scmCmdToExecute.Connection = conn.scoDBConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@Auswertungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Auswertungnr)) + sdaAdapter.Fill(dtToReturn) + Return dtToReturn + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("frmAuswertung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) + Finally + scmCmdToExecute.Dispose() + sdaAdapter.Dispose() + End Try + End Function + + Public Function Delete_Parameter(ByVal AuswertungParameterNr As Integer) + Me.Mitarbeiter_Auswerungsparameter.iMitarbeiter_AuswertungsparameterNr = New SqlInt32(CType(AuswertungParameterNr, Int32)) + Me.Mitarbeiter_Auswerungsparameter.cpMainConnectionProvider = Globals.conn + Globals.conn.OpenConnection() + Me.Mitarbeiter_Auswerungsparameter.Delete() + Globals.conn.CloseConnection(True) + Me.MitarbeiterAuswertungsparameter = Me.Get_MAParameter(Me.Auswertung.iAuswertungNr.Value) + End Function + + + End Class + +End Namespace diff --git a/SW/20211125/_FRReporting/Klassen/clsMyKey_Tabelle.vb b/SW/20211125/_FRReporting/Klassen/clsMyKey_Tabelle.vb new file mode 100644 index 0000000..b6c51fb --- /dev/null +++ b/SW/20211125/_FRReporting/Klassen/clsMyKey_Tabelle.vb @@ -0,0 +1,61 @@ +Imports System +Imports System.Data +Imports System.Data.SqlTypes +Imports System.Data.SqlClient +Namespace DB + Public Class clsMyKey_Tabelle + Inherits db.clsKey_tabelle + + Public Function get_dbkey(ByVal Tablename As String) As Long + Dim m_dbkey As Long + Dim scmCmdToExecute As SqlCommand = New SqlCommand() + scmCmdToExecute.CommandText = "dbo.[sp_get_dbkey]" + scmCmdToExecute.CommandType = CommandType.StoredProcedure + ' // Use base class' connection object + scmCmdToExecute.Connection = m_scoMainConnection + Try + scmCmdToExecute.Parameters.Add(New SqlParameter("@Tablename", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Tablename)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@dbkey", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_dbkey)) + scmCmdToExecute.Parameters.Add(New SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode)) + + If m_bMainConnectionIsCreatedLocal Then + ' // Open connection. + m_scoMainConnection.Open() + Else + If m_cpMainConnectionProvider.bIsTransactionPending Then + scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction + End If + End If + + ' // Execute query. + Try + scmCmdToExecute.Connection.Open() + Catch ex As Exception + Finally + End Try + + scmCmdToExecute.ExecuteNonQuery() + m_dbkey = scmCmdToExecute.Parameters.Item("@dbkey").Value + m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, SqlInt32)) + scmCmdToExecute.Connection.Close() + + If Not m_iErrorCode.Equals(New SqlInt32(LLBLError.AllOk)) Then + ' // Throw error. + Throw New Exception("Stored Procedure 'sp_get_dbkey' reported the ErrorCode: " & m_iErrorCode.ToString()) + End If + + Return m_dbkey + Catch ex As Exception + ' // some error occured. Bubble it to caller and encapsulate Exception object + Throw New Exception("clsKey_tabelle::get_dbkey::Error occured." + ex.Message, ex) + Finally + If m_bMainConnectionIsCreatedLocal Then + ' // Close connection. + m_scoMainConnection.Close() + End If + scmCmdToExecute.Dispose() + End Try + End Function + + End Class +End Namespace diff --git a/SW/Dokumente_sik/My Project/Application.Designer.vb b/SW/20211125/_FRReporting/My Project/Application.Designer.vb similarity index 100% rename from SW/Dokumente_sik/My Project/Application.Designer.vb rename to SW/20211125/_FRReporting/My Project/Application.Designer.vb diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Application.myapp b/SW/20211125/_FRReporting/My Project/Application.myapp similarity index 80% rename from SW/WindowsApplication1/WindowsApplication1/My Project/Application.myapp rename to SW/20211125/_FRReporting/My Project/Application.myapp index 1243847..758895d 100644 --- a/SW/WindowsApplication1/WindowsApplication1/My Project/Application.myapp +++ b/SW/20211125/_FRReporting/My Project/Application.myapp @@ -1,11 +1,10 @@  - true - Form1 + false false 0 true 0 - 0 + 1 true diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/AssemblyInfo.vb b/SW/20211125/_FRReporting/My Project/AssemblyInfo.vb similarity index 82% rename from SW/WindowsApplication1/WindowsApplication1/My Project/AssemblyInfo.vb rename to SW/20211125/_FRReporting/My Project/AssemblyInfo.vb index 0bb1927..87aee83 100644 --- a/SW/WindowsApplication1/WindowsApplication1/My Project/AssemblyInfo.vb +++ b/SW/20211125/_FRReporting/My Project/AssemblyInfo.vb @@ -8,17 +8,17 @@ Imports System.Runtime.InteropServices ' Die Werte der Assemblyattribute überprüfen - + - - + + 'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird - + ' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: ' diff --git a/SW/20211125/_FRReporting/My Project/Resources.Designer.vb b/SW/20211125/_FRReporting/My Project/Resources.Designer.vb new file mode 100644 index 0000000..9689ed2 --- /dev/null +++ b/SW/20211125/_FRReporting/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + ''' + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("_FRReporting.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/SW/20211125/_FRReporting/My Project/Resources.resx b/SW/20211125/_FRReporting/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SW/20211125/_FRReporting/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/My Project/Settings.Designer.vb b/SW/20211125/_FRReporting/My Project/Settings.Designer.vb new file mode 100644 index 0000000..23e6932 --- /dev/null +++ b/SW/20211125/_FRReporting/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Funktion zum automatischen Speichern von My.Settings" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global._FRReporting.My.MySettings + Get + Return Global._FRReporting.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/SW/20211125/_FRReporting/My Project/Settings.settings b/SW/20211125/_FRReporting/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SW/20211125/_FRReporting/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SW/20211125/_FRReporting/My Project/licenses.licx b/SW/20211125/_FRReporting/My Project/licenses.licx new file mode 100644 index 0000000..02a7aaa --- /dev/null +++ b/SW/20211125/_FRReporting/My Project/licenses.licx @@ -0,0 +1 @@ +C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da diff --git a/SW/20211125/_FRReporting/_FRReporting.vb b/SW/20211125/_FRReporting/_FRReporting.vb new file mode 100644 index 0000000..c283b63 --- /dev/null +++ b/SW/20211125/_FRReporting/_FRReporting.vb @@ -0,0 +1,90 @@ +Imports System.Windows.Forms + +Public Class _FRReporting + Dim m_connectionstring As String + +#Region "Properties" + Public Property ConnectionString() As String + Get + ConnectionString = m_connectionstring + End Get + Set(ByVal Value As String) + If m_connectionstring <> Value Then + m_connectionstring = Value + Globals.sConnectionString = m_connectionstring + Globals.conn.sConnectionString = m_connectionstring + End If + End Set + End Property + + + Dim m_Mitarbeiternr As Integer + Public Property Mitarbeiternr As Integer + Get + Mitarbeiternr = m_Mitarbeiternr + End Get + Set(value As Integer) + If m_Mitarbeiternr <> value Then + m_Mitarbeiternr = value + Globals.Mitarbeiternr = m_Mitarbeiternr + End If + End Set + End Property + + Dim m_TempFilePath As String + Public Property TempFilePath As String + Get + TempFilePath = m_TempFilePath + End Get + Set(value As String) + If m_TempFilePath <> value Then + m_TempFilePath = value + Globals.TmpFilepath = m_TempFilePath + End If + End Set + End Property + + Sub New() + + End Sub +#End Region + + + Public Function ReportSelect(ByVal Parentform As Form) + Dim f As New FrmReportSelect + f.MdiParent = Parentform + f.Show() + End Function + + Public Function DefaultReport(ByVal auswertungnr As Integer, param As String, ByVal ParamValue As String, Optional Parent As Object = Nothing) + Dim f As New FrmReportSelect + f.MdiParent = Parent + f.Show() + f.TreeAuswertungen.SelectedNode = FindNode(f.TreeAuswertungen.Nodes, auswertungnr, "") + f.cbparam1.Text = param + f.cbop1.Text = "=" + f.cbvalue1.Text = ParamValue + f.showreport() + f.Close() + End Function + + Public Function FindNode(ByVal _nodeCollection As TreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As TreeNode + Dim tmpNode As TreeNode + For Each _child As TreeNode In _nodeCollection + If _child.Tag = SearchVal Then + + Return _child + End If + ' If InStr(UCase(_child.Text), UCase(SearchString)) > 0 Then + ' Return _child + ' End If + tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) + If Not tmpNode Is Nothing Then + Return tmpNode + End If + Next + Return Nothing + End Function + + +End Class diff --git a/SW/20211125/_FRReporting/_FRReporting.vbproj b/SW/20211125/_FRReporting/_FRReporting.vbproj new file mode 100644 index 0000000..b1b0111 --- /dev/null +++ b/SW/20211125/_FRReporting/_FRReporting.vbproj @@ -0,0 +1,233 @@ + + + + + Debug + AnyCPU + {C04C6268-6402-4DEB-8BFA-E6A233B55DBF} + Library + _FRReporting + _FRReporting + 512 + Windows + v4.5 + + + + true + full + true + true + bin\Debug\ + _FRReporting.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + pdbonly + false + true + true + bin\Release\ + _FRReporting.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + + False + ..\Libs\C1.Win.C1TrueDBGrid.2.dll + + + False + C:\Program Files (x86)\FastReports\FastReport.Net\FastReport.dll + True + + + False + C:\Program Files (x86)\FastReports\FastReport.Net\FastReport.Bars.dll + True + + + False + C:\Program Files (x86)\FastReports\FastReport.Net\FastReport.Editor.dll + True + + + False + ..\..\..\..\ITSM\Vertragsverwaltung\bin\Debug\FlexCel.dll + + + + + + + + + + + + + False + ..\..\..\..\ITSM\Vertragsverwaltung\bin\Debug\XLSLib.dll + + + + + + + + + + + + + + + + + + + + + + + + + + frmAuswertung.vb + + + Form + + + frmCalendar.vb + + + Form + + + frmCRReporting.vb + + + Form + + + frmDataSelect.vb + + + Form + + + frmEditWhere.vb + + + Form + + + sample.vb + + + Form + + + + + + + + + + FrmReportSelect.vb + + + Form + + + frmViewer.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + frmAuswertung.vb + Designer + + + frmCalendar.vb + + + frmCRReporting.vb + + + frmDataSelect.vb + + + frmEditWhere.vb + + + FrmReportSelect.vb + + + frmViewer.vb + + + sample.vb + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + \ No newline at end of file diff --git a/SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.dll b/SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.dll new file mode 100644 index 0000000..a78931e Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml b/SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml similarity index 99% rename from SW/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml rename to SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml index 433945e..3153e23 100644 --- a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1TrueDBGrid.2.xml +++ b/SW/20211125/_FRReporting/bin/Debug/C1.Win.C1TrueDBGrid.2.xml @@ -1361,6 +1361,16 @@ Gets or sets the border for the control.
+ + + Gets or sets the border color of the control. + + + Use the BorderColor property to specify the border color of the control. + This property is set using a object. + The BorderColor property has an effect only when the BorderStyle property is set to FixedSingle. + + Gets or sets a value indicating whether the InactiveStyle is applied to the grid when it loses focus. @@ -2410,6 +2420,21 @@ + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Raises the FetchRowStyle event. @@ -3316,6 +3341,11 @@ Occurs whenever a grouped cell that contains an aggregate is to be rendered and is true. + + + Occurs when the BorderColor property has changed. + + Occurs whenever the grid renders a row and the property has been set. @@ -3650,6 +3680,21 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Raises the event. + + An that contains the event data. + + Raising an event invokes the event handler through a delegate. + The OnBorderColorChanged method also allows derived classes to handle the event without attaching a delegate. + This is the preferred technique for handling the event in a derived class. + + Notes to Inheritors. When overriding OnBorderColorChanged in a derived class, + be sure to call the base class's OnBorderColorChanged method so that registered delegates receive the event. + + + Gets the current selected index. @@ -3993,6 +4038,11 @@ Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. + + + Occurs when the BorderColor property has changed. + + Gets or sets the object that controls the appearance of the caption area. @@ -4435,7 +4485,7 @@ - Performs internal reset. + Performs internal reset. @@ -4568,12 +4618,12 @@ Gets or sets the type of border rendered for a split. - + Base class for typeconverter. - + Returns an object from it's string representation. @@ -4582,7 +4632,7 @@ - + Returns a string representation from a given object. @@ -4591,7 +4641,7 @@ - + Returns true if the source type is string. @@ -4602,7 +4652,7 @@ - + Returns true of the type of string. @@ -4613,7 +4663,7 @@ - + Overloaded. Returns whether this converter can convert an object of one type to the type of this converter. @@ -4626,7 +4676,7 @@ - + Overloaded. Converts the given value object to the specified type. @@ -6916,6 +6966,12 @@ Row number to add. The index at which the row has been added. + + + Adds a range of rows to the end of the collection. + + The range of rows' numbers to add. + Inserts a row at the specified index. diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.Bars.dll b/SW/20211125/_FRReporting/bin/Debug/FastReport.Bars.dll new file mode 100644 index 0000000..d98c6c3 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FastReport.Bars.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.Compat.dll b/SW/20211125/_FRReporting/bin/Debug/FastReport.Compat.dll new file mode 100644 index 0000000..55c574b Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FastReport.Compat.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.DataVisualization.dll b/SW/20211125/_FRReporting/bin/Debug/FastReport.DataVisualization.dll new file mode 100644 index 0000000..29934a2 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FastReport.DataVisualization.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.Editor.dll b/SW/20211125/_FRReporting/bin/Debug/FastReport.Editor.dll new file mode 100644 index 0000000..e91d746 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FastReport.Editor.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.dll b/SW/20211125/_FRReporting/bin/Debug/FastReport.dll new file mode 100644 index 0000000..29e51d7 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FastReport.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/FastReport.xml b/SW/20211125/_FRReporting/bin/Debug/FastReport.xml new file mode 100644 index 0000000..f1434aa --- /dev/null +++ b/SW/20211125/_FRReporting/bin/Debug/FastReport.xml @@ -0,0 +1,53156 @@ + + + + FastReport + + + + + The class for representing visible digital signature in the report. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object, in millimeters + + + + + Gets or sets the dxf objects fill mode + + + + + Initializes a new instance of the class. + + + + + Export all report objects + + + + + + + + + Export of Band + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + + + + + + + + + + Add BandObject. + + + + + Add TextObject. + + + + + Save DXF file. + + + + + Save DXF stream. + + + + + Add Line. + + + + + + + + Double precision 3D point value + + + + + Code range: 0-9 + String (with the introduction of extended symbol names in AutoCAD 2000, the 255-character + limit has been increased to 2049 single-byte characters not including the newline at the end + of the line) + + + + + Sets Name group + + Name (attribute tag, block name, and so on) + + + + Sets Name group + + Name (attribute tag, block name, ENDSEC, and so on) + + + + AutoCAD Color Index -> RGB Color table + + + + + RGB Color table -> AutoCAD Color Index + + + + + Get AutoCAD Color Index + + + AutoCAD Color Index + + + + CT command + + + + + CI command + + + + + EP command + Perimeter of polygon defined as polygon buffer by PM, PA/PR, PU/PD, + AA/AR, CI, and CT command is plotted. Pen position after command and + pen up / down state will be in state before command. + + + + + EA command + Rectangle which makes diagonal coordinates (x, y) specified the present position and + here is plotted. Pen position after command and pen up / down state will be in state before command. + + + + + ER command + Rectangle which makes diagonal relative coordinate (x, y) from the present position + and the present position is plotted. Pen position after command and pen up / down state + will be in state before command. + + + + + FP command + Shading of the inside of polygon defined as polygon buffer by PM, PA/PR, + PU/PD, AA/AR, CI, and CT command is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + RA command + It is used with FT and PT command and shading of the inside of rectangle which makes + diagonal point coordinates (x, y) specified the present position and here is carried out. + Pen position after command and pen up / down state will be in state before command. + + + + + RR command + It is used with FT and PT command and shading of the inside of rectangle which makes diagonal point + relative coordinate (x, y) from the present position and there is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + Model of shading + + + + + Painting out interactive at space specified by PT command (FT command interval and angle are ignored) + + + + + It is painting out (FT command space and angle are ignored) of the single direction at space specified by PT command. + + + + + Hatching which is the single direction at space and angle which were specified by FT command + + + + + It is crossing hatching at space and angle which were specified by FT command. + + + + + None (solid) + + + + + FT command + It is used together with FP, RA, RR, and WG command, and model of shading (painting out and hatching) is specified. + + + + + IN command + Plotter is changed into initial state. + + + + + IP command + Sets origin position of system of coordinates + + + + + Line Type + + + + + Point is plotted at specifying point + + + + + Dotted line of point + + + + + Short dotted line + + + + + Long dotted line + + + + + Short dashed line + + + + + Long dashed line + + + + + Two-point phantom line + + + + + No any patterns needed + + + + + LT command + + + + + PD command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + PU command + + + + + PA command + + + + + PR command + + + + + Polygon Type + + + + + Polygon buffer is cleared and it is made polygon definition mode. + + + + + Polygon under definition is closed. + + + + + Polygon under definition is closed and polygon definition mode is canceled. + + + + + PM command + It is made polygon definition mode. PM command is used with + PA/PR, PU/PD, AA/AR, CI, and CT command, and can define polygon. + + + + + RO command + + + + + SC command + + + + + SP command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object + + + + + Gets or sets the hpgl objects fill mode + + + + + Initializes a new instance of the class. + + + + + Save hpgl file. + + + + + Save hpgl stream. + + + + + Add BandObject. + + + + + Add TextObject. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Export all report objects + + + + + + Add Line. + + + + + + + + Excel 2003 export class + + + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Read and parse Excel document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Related to DRAWING group. Used once + + + + + Provides API to binary stream + + + + + + + + + + Represents the CSV export filter. + + + + + + + + Gets or set the resulting file encoding. + + + + + Gets or set the separator character used in csv format. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets a value that disable quotation marks for text. + + + + + Gets or sets a value that disable escaping quotation marks for text. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the export to DBF. + + + + + + + + Gets or sets the encoding. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets the list of field names. + + + The field names must be separated by ";" symbol, for example: Column1;Column2;Column3 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the record. + + + + + Gets or sets the field with a specified index. + + + + + Gets the count of a fields. + + + + + Gets the size of a fields. + + + + + Initializes a new instance of the class. + + + + + Adds the new item into a list of fields. + + + + + Clears the list of fields. + + + + + Represents the email export. + + + In order to use this class, you need to set up at least the following properties: + , , . Use the + property to choose the format of an attachment. If you leave it empty, the attachment will be + in the .FRP format (FastReport prepared report). When you done with settings, call the + method to send an email. + + + This example demonstrates the bare minimum required to send an email. + + EmailExport export = new EmailExport(); + export.Account.Address = "my@address.net"; + export.Account.Host = "myhost"; + export.Address = "recipient@address.net"; + export.Subject = "Re: analysis report"; + // the report1 report must be prepared at this moment + export.SendEmail(report1); + + + + + + Displays the dialog box in which you can set up all parameters. + + true if user pressed OK button in the dialog. + + + + Gets or sets the recipient's address. + + + This property must contain value in form "john@url.com". + + + + + Gets or sets the carbon copy adresses. + + + This property must contain an array of values in form "john@url.com". + + + + + Gets or sets the subject of the message. + + + + + Gets or sets the message body. + + + + + Gets or sets the export filter which will be used to export a report. + + + Set this property to instance of any export filter. When you send the email, the report + will be exported using that export filter. + By default, this property is set to null. In this case the report will be send + in .FRP format. + + + + + Gets the email account settings such as host, user name, password. + + + + + Gets the parent Report object + + + + + Sends an email. + + Reports that will be sent as attachments. + + Before using this method, set up the following properties (it's a bare minimum): + , , . + The report that you pass in this method must be prepared using the Prepare method. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + + + + Form for . + For internal use only. + + + + + Hides attachment settings. + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allows to send message using MAPI interface. + + + + + Sends a message. + + Parent window handle. + Files to attach. + Email subject. + Email body. + Recipient names. + Recipient addresses. + Error code. 0 if operation was completed succesfully. + + + + Returns a text describing an error. + + The error code. + The text describing an error. + + + + Contains the email account settings such as host, email address, name. + + + You have to set up at least the and properties. If your + host requires authentication, provide the and + properties as well. + Set property to true if you want to use default email client + such as Outlook to send an email. In this case, all other properties will be ignored. + + + + + Gets or sets the sender's email address. + + + This property contains your email address (for example, "john@site.com"). + + + + + Gets or sets the sender's name. + + + This property contains your name (for example, "John Smith"). + + + + + Gets or sets the template that will be used to create a new message. + + + + + Gets or sets the SMTP host name or IP address. + + + + + Gets or sets the SMTP port. + + + The default value for this property is 25. + + + + + Gets or sets the user name. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets the password. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets a value that determines whether to enable the SSL protocol. + + + + + Gets or sets a value that determines whether the account setting page + in the "Send Email" window is enabled. + + + + + Gets or sets a value that determines whether to use MAPI instead of SMTP when sending an email. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all export filters. + + + + + Exports the report to a file. + + Report to export. + true if report was succesfully exported. + + This method displays an export options dialog, then prompts a file name using standard "Open file" + dialog. If both dialogs were closed by OK button, exports the report and returns true. + + + + + Displays a dialog with export options. + + true if dialog was closed with OK button. + + + + Gets a report page with OverlayBand if it is a Demo or Academic. + + The prepared report page + The prepared report page with OverlayBand. + + + + Gets list of generated streams. + + + + + Zoom factor for output file + + + + + File filter that can be used in the "Save file" dialog. + + + + + Range of pages to export. + + + + + Page numbers to export. + + + Use page numbers separated by comma and/or page ranges, for example: "1,3-5,12". Empty string means + that all pages need to be exported. + + + + + Current page number. + + + Page number need to be exported if user selects "Current page" radiobutton in the export options dialog. + This property is typically set to current page number in the preview window. + + + + + Open the document after export. + + + + + Allows or disables the OpenAfterExport feature. + + + + + Gets or sets a value that determines whether to show progress window during export or not. + + + + + Gets a list of files generated by this export. + + + + + Gets a value indicating that the export may produce multiple output files. + + + + + Gets or sets a value indicating that the report bands should be shifted, if page + has any non-exportable bands + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Stream to export to. + + + + + File name to export to. + + + + + Array of page numbers to export. + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + This method is called when the export starts. + + + + + This method is called at the start of exports of each page. + + Page for export may be empty in this method. + + + + This method is called at the end of exports of each page. + + Page for export may be empty in this method. + + + + This method is called for each band on exported page. + + Band, dispose after method compite. + + + + This method is called when the export is finished. + + + + + Gets a report page with specified index. + + Zero-based index of page. + The prepared report page. + + + + + + + + + + Exports the report to a stream. + + Report to export. + Stream to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Exports the report to a file. + + Report to export. + File name to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export filter. + + + + + + + + Draw any custom controls + + + + + Draw any custom controls. + + + + + + Types of html export + + + + + Simple export + + + + + Web preview mode + + + + + Web print mode + + + + + hash:base64Image + + + + + Gets or sets images, embedded in html (hash:base64Image) + + + + + Sets a ID of report + + + + + Sets an onclick template + + + + + Enable or disable layers export mode + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Enable or disable showing of print dialog in browser when html document is opened + + + + + Enable or disable preview in Web settings + + + + + Enable or disable the breaks between pages in print preview when single page mode is enabled + + + + + Specifies the output format + + + + + Specifies the width units in HTML export + + + + + Specifies the height units in HTML export + + + + + Enable or disable the pictures in HTML export + + + + + Enable or disable embedding pictures in HTML export + + + + + Enable or disable the WEB mode in HTML export + + + + + Gets or sets html export mode + + + + + Enable or disable the single HTML page creation + + + + + Enable or disable the page navigator in html export + + + + + Enable or disable the sub-folder for files of export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + Gets print page data + + + + + Enable or disable saving streams in GeneratedStreams collection. + + + + + Enable or disable margins for pages. Works only for Layers-mode. + + + + + Enable or disable export of vector objects such as Barcodes in SVG format. + + + + + + + + + + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + + + + + + For internal use only. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class for WebPreview mode. + + + + + + + + Event arguments for custom drawing of report objects. + + + + + Report object + + + + + ReportObject. + + + + + Resulting successfull drawing flag. + + + + + Resulting HTML string. + + + + + Resulting CSS string. + + + + + Layers mode when true or Table mode when false. + + + + + Zoom value for scale position and sizes. + + + + + Left position. + + + + + Top position. + + + + + Width of object. + + + + + Height of object. + + + + + Represents the HTML export templates. + + + + + Page Template Title + + + + + Page Template Footer + + + + + Navigator Template + + + + + OutlineTemplate + + + + + Index Template + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export format enum + + + + + Represents the message-HTML type + + + + + Represents the HTML type + + + + + Specifies the image format in HTML export. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the units of HTML sizes. + + + + + Specifies the pixel units. + + + + + Specifies the percent units. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Represents the MHT export filter. + + + + + + + + Enable or disable the pictures in MHT export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the image export filter. + + + + + + + + Gets or sets the image format. + + + + + Gets or sets a value that determines whether to generate separate image file + for each exported page. + + + If this property is set to false, the export filter will produce one big image + containing all exported pages. Be careful using this property with a big report + because it may produce out of memory error. + + + + + Gets or sets image resolution, in dpi. + + + By default this property is set to 96 dpi. Use bigger values (300-600 dpi) + if you going to print the exported images. + + + + + Gets or sets horizontal image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets vertical image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets the jpg image quality. + + + This property is used if is set to Jpeg. By default + it is set to 100. Use lesser value to decrease the jpg file size. + + + + + Gets or sets the value determines whether to produce multi-frame tiff file. + + + + + Gets or sets a value that determines whether the Tiff export must produce monochrome image. + + + Monochrome tiff image is compressed using the compression method specified in the + property. + + + + + Gets or sets the compression method for a monochrome TIFF image. + + + This property is used only when exporting to TIFF image, and the property + is set to true. + The valid values for this property are: EncoderValue.CompressionNone, + EncoderValue.CompressionLZW, EncoderValue.CompressionRle, + EncoderValue.CompressionCCITT3, EncoderValue.CompressionCCITT4. + The default compression method is CCITT4. + + + + + Sets padding in non separate pages + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image export format. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the .tif format. + + + + + Specifies the .emf format. + + + + + Represents the JSON export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the LaTeX export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Base class for any ODF exports. + + + + + + + + Enum of OpenOffice formats. + + + + + OpenOffice Spreadsheet format. + + + + + OpenOffice Writer format. + + + + + Standard of ODF format. + + + + + ODF 1.0/1.1 + + + + + ODF 1.2 + + + + + XODF 1.0/1.1 + + + + + XODF 1.2 + + + + + Creator of the document + + + + + Is XODT format + + + + + Switch of page breaks + + + + + Wysiwyg mode, set for better results + + + + + Gets or sets ODF Compliance standard. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Spreadsheet export (Open Office Calc). + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Text export (Open Office Writer). + + + + + Initializes a new instance of the class. + + + + + + + + MS Word 2007 export class + + + + + + + + Types of table rows height + + + + + Exactly height + + + + + Minimum height + + + + + Enable or disable matrix view of document + + + + + Enable or disable Paragraph view of document + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the type of height calculation. + + + + + Gets or sets the type of height calculation. + + + + + Enable or disable a resolution optimization. + + + + + Enable or disable DoNotExpandShiftReturn. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Word2007Export class. + + + + + Represents the PowerPoint 2007 export. + + + + + + + + Gets or sets the image format used when exporting. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the class with the default settings. + + + + + Excel 2007 export class + + + + + + + + Defines Print Scaling Mode. + + + + + Print sheets at thier actual size. + + + + + Shrink the printout so that it fits on one page. + + + + + Shrink the printout so that it is one page wide. + + + + + Shrink the printout so that it is one page high. + + + + + Gets or sets the Print Fit Mode. + + + + + Gets or sets the font scale value. + Default value is 1 + + + + + Enable or disable a resolution optimization. + + + + + Each report page is placed on a new Excel page. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Enable or disable export of page footers and next page headers without table breaks. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Main class of XML export + + + + + + + + PicturesCount + + + + + HumanReadable + + + + + + + + + + + + + + + + + + + + + + + Constructor of XPSExport + + + + + Destructor of XPSExport + + + + + Save + + + + + + + Padding over ridh object + + + + + This prperty keep RTF to DOC translation result, i.e. DOCX XML fragment + + + + + Base class for Microsoft Office 2007 export objects + + + + + Default XML header + + + + + Base class for export Office Open objects + + + + + Core document properties + + + + + Core document properties + + + + + Power point shape + + + + + Power Point Layout Descriptor + + + + + Power Point base class for style element + + + + + Base class for styles group + + + + + Base class for slides, masters, and layouts + + + + + Slide masters object + + + + + Ordinaty slide + + + + + Slide layout object + + + + + Presentation class + + + + + PPt Application Properties class + + + + + Ppt Table styles class + + + + + Ppt Presentation properties class + + + + + Ppt View Properties class + + + + + Specifies the image format in PowerPoint export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing class + + + + + Share all strings in document + + + + + Share all URL in document + + + + + Document styles + + + + + Workbook + + + + + OoXMLSheet class + + + + + Picture container + + + + + List of all document fonts + + + + + Single page export + + + + + Document structure descriptor + + + + + Font container + + + + + Font obfuscation procedure + + + + + PDF export (Adobe Acrobat) + + + + + + + + Embedded File + + + + + Name of embedded file. + + + + + Description of embedded file. + + + + + Modify Date of embedded file. + + + + + Relationship between the embedded document and the PDF part. + + + + + Valid MIME type. + + + + + Stream of embedded file. + + + + + File reference. + + + + + ZUGFeRD Conformance Level. + + + + Initializes a new instance of the class. + + + + Default preview size. + + + + + Actual size + + + + + Fit Page + + + + + Fit Width + + + + + Default + + + + + 10% + + + + + 25% + + + + + 50% + + + + + 75% + + + + + 100% + + + + + 125% + + + + + 150% + + + + + 200% + + + + + 400% + + + + + 800% + + + + + Standard of PDF format. + + + + + PDF 1.5 + + + + + PDF/A-1a + + + + + PDF/A-2a + + + + + PDF/A-2b + + + + + PDF/A-2u + + + + + PDF/A-3a + + + + + PDF/A-3b + + + + + Pdf/X-3 + + + + + Pdf/X-4 + + + + + Color Space. + + + + + RGB color space + + + + + CMYK color space + + + + + Types of pdf export. + + + + + Simple export + + + + + Web print mode + + + + + Relationship between the embedded document and the PDF part. + + + + + The embedded file contains data which is used for the visual representation. + + + + + The embedded file contains the source data for the visual representation derived therefrom in the PDF part. + + + + + This data relationship should be used if the embedded data are an alternative representation of the PDF contents. + + + + + This data relationship is used if the embedded file serves neither as the source nor as the alternative representation, but the file contains additional information. + + + + + If none of the data relationships above apply or there is an unknown data relationship, this data relationship is used. + + + + + ZUGFeRD Conformance Level. + + + + + Basic level. + + + + + Comfort level. + + + + + Extended level. + + + + + Gets or sets PDF Compliance standard. + After set, do not change other settings, it may lead to fail compliance test. + + + + + Enable or disable of embedding the TrueType fonts. + + + + + Enable or disable of exporting the background. + + + + + Enable or disable export text in curves + + + + + Gets or sets PDF color space + + + + + Enables or disables saving images in their original resolution + + + + + Enables or disables optimization of images for printing + + + + + Enable or disable image jpeg compression + + + + + Sets the quality of images in the PDF + + + + + Title of the document. + + + + + Author of the document. + + + + + Subject of the document. + + + + + Keywords of the document. + + + + + Creator of the document. + + + + + Producer of the document. + + + + + Sets the owner password. + + + + + Sets the user password. + + + + + Enable or disable printing in protected document. + + + + + Enable or disable modifying in protected document. + + + + + Enable or disable copying in protected document. + + + + + Enable or disable annotating in protected document. + + + + + Enable or disable the print dialog window after opening + + + + + Enable or disable hide the toolbar. + + + + + Enable or disable hide the menu's bar. + + + + + Enable or disable hide the Windows UI. + + + + + Enable or disable of fitting the window + + + + + Enable or disable of centering the window. + + + + + Enable or disable of scaling the page for shrink to printable area. + + + + + Enable or disable of document's Outline. + + + + + Set default zoom on open document + + + + + Sets the quality of RichText objects in the PDF + + + + + Enable or disable the compression in PDF document. + + + + + Enable or disable of images transparency. + + + + + Enable or disable of displaying document's title. + + + + + Set default page on open document + + + + + Color Profile (ICC file). + If "null" then default profile will be used + + + + + Gets or sets pdf export mode + + + + + Gets pdf AcroForms compatibility, if set then EmbeddingFonts = false and PdfCompliance = PdfStandard.None + + + + + Set pattern for selection of embedding glyphs for Interactive Forms + + + + + Enable or disable digital sign for pdf document + + + Be sure to specify a valid certificate for signing using the DigitalSignCertificate property. + Or using the DigitalSignCertificatePath and DigitalSignCertificatePassword properties. + + + + + Should save and serialize password for digital sign certificate. + Do not save password unless absolutely necessary!!! + + + + + Manualy sets digital sign certificate for exported documents. + + + This property is in priority, i.e. if a certificate is specified, + the DigitalSignCertificatePath and DigitalSignCertificatePassword properties will not be used. + + + + + The path for load digital sign certificate. + + + + + Sets digital sign certificate password. + + + + + Gets or sets the cpu host name or physical location of the signing + + + + + The reason for the signing, such as (I agree ...) + + + + + The information to enable the recipient to contact the signer to verify the signature + + + + + + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + Export of Band + + + + + + + + + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + ZUGFeRD Conformance Level + + + + Add an embedded file (only for PDF/A-3 standard). + + File name + Description + Modification date + Relation type + MIME type + File stream + + + + Initializes a new instance of the class. + + + + + Calculates mask for image. + + + + + Calculates image bounds according to . + + + + + Writes pixels' colors without alpha to stream according to CMYK or RGB color space. + Pixels should be in the format. + + + + + Update stream position for object number, only for int value + + int value + + + + + + The pdf export + size of place for svg + + + + The interpolation of curves (svg) + + + + + The interpolation of curves (text) + + + + + Export svg object as image, not vector + + + + + Gradient interpolation, high value will lead beautiful the gradient, + but the file size will increase and the speed of work will decrease. + + + + + The quality of gradient, export as image or export as gradient grid + + + + + Added graphics path to pdf, + + size of rect for gradient filling + path, with positions in pdf scaling + Any brush + Interpolation value + + matrix for transform to pdf scale + + + + returns true if this gradient is fillable by gradient grid + + + + + + The enum of curves interpolation + + + + + Export as curves, without interpolation + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + The enum of gradient interpolation points + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + Thirty two points + + + + + Sixty four points + + + + + One hundred and twenty eight points + + + + + Two hundred and fifty six points + + + + + The quality of gradient export + + + + + Export as image + + + + + Export as low quality gradient grid, max size of interpolation points is 32 + + + + + Export as medium quality gradient grid, max size of interpolation points is 128 + + + + + Export as high quality gradient grid, max size of interpolation points is 256 + + + + + File name without extentions, for example "MetaDataX" + + + + Represents the PPML export filter. + + + + + + + + Enable or disable the pictures in PPML export + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + + Add image as PPMLObject + + + + + + + + + + Save svg file. + + + + + Save svg stream. + + + + + + + + + + Represents the ps export filter. + + + + + + + + Enable or disable the pictures in PS export + + + + + Enable or disable export text in curves + + + + + Enable or disable export every page in separate file + + + + + Enable or disable saving every image in separate file + + + + + Gets or sets quality of JPEG images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + Add TextLine in curves + + + + Method for add TextObject. + + + + + Method to add rectangle. + + + + + Method for add ellips. + + + + + Method for add triangle. + + + + + Method for add Diamond. + + + + + Method for add line. + + + + + Method for add line with dash. + + + + + Add image + + + + + + + + + + + Add image as hex code + + + + + + + + + + End of each page + + + + + Save file. + + + + + Save stream. + + + + + + + + + Represents the RTF export filter. + + + + + + + + Gets or sets the quality of Jpeg images in RTF file. + + + Default value is 90. This property will be used if you select Jpeg + in the property. + + + + + Gets or sets the image format that will be used to save pictures in RTF file. + + + Default value is Metafile. This format is better for exporting such objects as + MSChartObject and ShapeObject. + + + + + Gets or sets a value indicating that pictures are enabled. + + + + + Gets or sets a value indicating that page breaks are enabled. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting rtf file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the creator of the document. + + + + + Gets or sets a value that determines whether the rows in the resulting table + should calculate its height automatically. + + + Default value for this property is false. In this mode, each row in the + resulting table has fixed height to get maximum wysiwyg. If you set it to true, + the height of resulting table will be calculated automatically by the Word processor. + The document will be more editable, but less wysiwyg. + + + + + Gets or sets a value that determines whether the repot's RichObject will be + translated as picture or joined to generated RTF. + + + Default value for this property is false. In this mode, each RichObject + will be embedded as a picture. This is default behavior. If you set it to true, + the RichObject will be incorporated as a navive part of document. This is experimetal + feature. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image format in RTF export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .emf format. + + + + + Represents the SVG export filter. + + + + + + + + Enable or disable the pictures in SVG export + + + + + Gets or sets the image format used when exporting. + + + + + Embed images into svg + + + + + Gets or sets value indicating whether or not should to force uniform scaling of SVG document + + + + + Gets or sets value indicating whether or not should be added 'viewBox' attribute to the svg tag + + + + + Gets or sets value indicating whether or not should be added 'width' and 'height' attributes to the svg tag + + + + + + + + Begin exporting of page + + + + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the alignment methods + + + + + Do not force uniform scaling. Scale the graphic content of the given element non-uniformly + if necessary such that the element's bounding box exactly matches the viewport rectangle. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint + X value of the viewport. Align the min-y of the element's viewBox with the smallest Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the midpoint Y value of the element's viewBox with the midpoint Y value + of the viewport. + + + + + The default. Force uniform scaling. Align the midpoint X value of the element's viewBox + with the midpoint X value of the viewport. Align the midpoint Y value of the element's + viewBox with the midpoint Y value of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X + value of the viewport. Align the midpoint Y value of the element's viewBox with the midpoint + Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint X + value of the viewport. Align the min-y+height of the element's viewBox with the maximum Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Specifies the svg scale types + + + + + (the default) - Scale the graphic such that: + - aspect ratio is preserved + - the entire viewBox is visible within the viewport + - the viewBox is scaled up as much as possible, while still meeting the other criteria + + + + + Scale the graphic such that: + - aspect ratio is preserved + - the entire viewport is covered by the viewBox + - the viewBox is scaled down as much as possible, while still meeting the other criteria + + + + + Describes scaling of a svg documents + + + + + Gets the align value + + + + + Gets the meetOrSlice value + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + Align value + meetOrSlice value + + + + Represents the text export. + + + + + + + + Enable or disable the Data loss avoiding. + Auto calculation of ScaleX and ScaleY will be launched when dialogue window will be off. + + + + + Gets or sets the count of copies for printing of results. + + + + + Gets or sets the printer name for printing of results. + + + + + Enable or disable the printing results after export. + + + + + Gets or sets the active index of registered printer type. + + + + + Gets or sets the list of printer types. + + + + + Gets or sets the scale by X axis for correct text objects placement. + + + + + Gets or sets the scale by Y axis for correct text objects placement. + + + + + Gets or sets the encoding of resulting document. + + + Windows ANSI encoding + TextExport.Encoding = Encoding.Default; + Unicode UTF-8 encoding + TextExport.Encoding = Encoding.UTF8; + OEM encoding for current system locale sessings + TextExport.Encoding = Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage); + + + + + Enable or disable the data only output without any headers. Default value is false. + + + + + Enable or disable the breaks of pages in resulting document. Default value is true. + + + + + Enable or disable frames in resulting document. Default value is true. + + + + + Enable or disable the text (non graphic) frames in resulting document. Default value is false. + + + + + Enable or disable the output of empty lines in resulting document. Default value is false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Exports the page. + + + + + + + Calculates scale. + + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the printer command class + + + + + Gets or sets the active state of command. Default value is false. + + + + + Gets or sets the command name. + + + + + Gets or sets the list of "on sequence". + + + + + Gets or sets the list of "off sequence". + + + + + Initializes a new instance of the class. + + + + + Represents of the printer type class. + + + + + Gets or sets the printer name. + + + + + Gets or sets the list of printer commands. + + + + + Initializes a new instance of the class. + + + + + Represents supplement class for print of any stream directly in printer. + + + + + Prints a stream. + + Printer name on which should be print. + Document title for printer spooler. + Count of copies. + Stream that will be printed. + This example demonstrates the printing of Stream. + + TextExportPrint.PrintStream("EPSON FX-1000", "My Report", 1, txtStream) + + + + + Represents the XAML export filter. + + + + + + + + Gets or sets the class name of XAML document + + + + + Enable or disable the pictures in XAML export + + + + + Gets or sets the image format used when exporting. + + + + + Get or set scrollbar settings + + + + + Get dictionary of saved images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + Gem MemoryStream what contain image + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + XAML generator + + + + + Create Window. + + + + + Create Grid. + + + + + Create Canvas. + + + + + Create StackPanel + + + + + Create StackPanel + + + + + Create Resources tag + + + + + Add resource for TextObject + + + + + Add resource for TextObject with angle + + + + + Add resource for Line + + + + + Add resource for Rectangle + + + + + Add resource for Ellipse + + + + + Add resource for Polygon + + + + + Add TextObject. + + + + + Method for add TextObject with angle + + + + + Add line. + + + + + Add line with dash. + + + + + Add rectangle. + + + + + Add ellips. + + + + + Add triangle. + + + + + Add Diamond. + + + + + Add image + + + + + + + + + + + + Add image without name + + + + + + + + + + + Add page to StackPanel + + + + + + Save xaml file. + + + + + Save xaml stream. + + + + + + + + + + + + + Specifies the image format in XAML export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Represents the Excel 2003 XML export filter. + + + + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the name of document creator. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Each report page is placed on a new Excel page. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the Zpl export filter. + + + + + + + + Enum of densty types of Zebra printers. + + + + + 6 dpmm(152 dpi) + + + + + 8 dpmm(203 dpi) + + + + + 12 dpmm(300 dpi) + + + + + 24 dpmm(600 dpi) + + + + + Sets the density of printer. + + + + + Sets the init string for sending before printing the document. + + + + + Sets the code page of document. Default is UTF-8 (^CI28). + + + + + Sets the string for sending after printing the document. + + + + + Sets the string for sending before printing each page. + + + + + Sets the scale font size. + + + + + Sets the Printer Font, default value is "A". + + + + + Enable or disable export as bitmap. + + + + + Writes the string value in stream. + + + + + + + Writes the string value in stream with CRLF. + + + + + + + Gets the left position in zpl units. + + + + + + + Gets the top position in zpl units. + + + + + + + Exports the TableObject. + + + + + + Exports the LineObject. + + + + + + Exports the ShapeObject. + + + + + + Exports the TextObject. + + + + + + Gets the position of object in ZPL code. + + + + + + + + Gets the text attributes in ZPL code. + + + + + + + + + + + Gets the text with font width and height in ZPL code. + + + + + + + + + Gets the horiz align in ZPL code. + + + + + + + Gets the rectangle in ZPL code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the export font class. + + + + + These fonts not support Bold or Itailc styles + + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontPanose structure + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of FontTextMetric structure + + + + + Return text metric structure, need to use after FillOutlineTextMetrix() + + + + + Gets or sets internal font name + + + + + Return source font used in constructor + + + + + Returns multiplier for stroke bold emulation + + + + + Gets or sets internal reference + + + + + Gets or sets internal property - save flag + + + + + True if bold style is not supported by font + + + + + True if italic style is not supported by font + + + + + Mark font as editable for InteractiveForms + + + + + Run fill outline text metric structure + + + + + Return glyph width + + + + + + + Return font file + + + + + + Get font data and set NeedSimulateBold and NeedSimulateItalic properties. Call this method after FillOutlineTextMetrix + + + + + Remap str in glyph indexes. Return string with glyph indexes. + + + + + + + + Set pattern for generation of alphabet's subset + + Regular expression with pattern generator + Use left-to-right rules + + + + Return english name of source font + + + + + + Return PANOSE string + + + + + + Create object of ExportTTFFont. + + + + + + Destructor + + + + + This property for internal use only. + + + + + Binary tree class + + + + + Maximal value between child and parent + + + + + Nodes count + + + + + Root node + + + + + Nodes array. Accending sorting by node value. Available after close of tree. + + + + + Accecptable inaccuracy of new values. + + + + + Recursive add value to a node. + + + + + + + + Poll right child node for correct balance. + + + + + + Poll left child for correct balance. + + + + + + Recursive indexation of node and childs. + + + + + + Add new value in tree. All equals are skipped. + + + + + + Close the tree and make index array. + + + + + Seek of value index in the tree. + + + + + + + Find of value index in sub-tree of node. + + + + + + + + Borrow values form List in the tree + + + + + + Borrow values form array in the tree + + + + + + Clear tree + + + + + Tree constructor + + + + + Tree node class + + + + + Link to left child + + + + + Link to right child + + + + + Node value + + + + + Count of nodes in left sub-tree + + + + + Count of nodes in right sub-tree + + + + + Node index + + + + + Node constructor + + + + + + For internal use only. + + + + + Gets current page width. + + + + + + + Gets current page height. + + + + + + + + + + + + + + Class for handling Exports visibility in the Preview control. + + + + + All exports available in the Preview control. + + + + + Gets an instance of ExportOptions. + + + + + + Exports menu node. + + + + + Gets the name. + + + + + Gets nodes. + + + + + Gets type of the export. + + + + + Gets index of the image. + + + + + Gets or sets the tag. + + + + + Gets or sets a value that indicates is node enabled. + + + + + Gets true if node is export, otherwise false. + + + + + Saves current visible exports in config file. + + + + + Restores visible exports from config file. + + + + + + + + + + Sets Export category visibility. + + Export category name. + Visibility state. + + + + Sets Export visibility. + + Export type. + Visibility state. + + + + Default Exports menu + + Tree that contains default Exports menu + + + + All cloud exports available in the preview. + + + + + All messengers exports available in the preview. + + + + + Default cloud exports menu. + + Tree that contains default cloud exports menu. + + + + Default messengers. + + + + + + Register all clouds. + + + + + Register all messengers. + + + + + Contains some configuration properties and settings that will be applied to the FastReport.Net + environment, including Report, Designer and Preview components. + + + + + Gets or sets the main form of application. + + + + + Gets or sets a value indicating that UI library must use high dpi compatible rendering. + + This flag is false by default. Turn it on at the application start if you need + better appearance of custom drawn UI items in high dpi mode. This however may result in + wrong appearance on multi-monitor setup. + /// + + + + Gets or sets the settings for the report designer window. + + + + + Gets or sets the UI style. + + + This property affects both designer and preview windows. + + + + + Gets or sets a value indicating whether the Ribbon UI should be used + + + + + Gets or set the current icon pack index. Default is 0 (classic). + + Set this property at the application start. + + + + Gets or sets a value indicating whether SplashScreen should be displayed while loading designer + + + + + Gets or sets a value indicating whether Welcome window feature enabled. + If false, interface elements associated with the Welcome window will not be visible. + + + + + Gets or sets a value indicating whether Welcome window shoud be displayed on startup + + + + + Gets the folder to store auto save files + + + + + Gets the autosaved report + + + + + Gets the autosaved report path + + + + + Is necessary to process abort and some other events in parallel + + + + + Gets a value indicating that the ASP.NET hosting permission level is set to full trust. + + + + + Gets or sets a value that determines whether to disable some functionality to run in web mode. + + + Use this property if you use FastReport in ASP.Net. Set this property to true before + you access any FastReport.Net objects. + + + + + Restores the form state from the configuration file. + + The form to restore. + + + + Saves the form state to the configuration file. + + The form to save. + + + + Saves the form state to the configuration file. + + The name of the form. + True if the form is in maximized state. + True if the form is in minimized state. + The location of the form. + The size of the form. + + + + Checks the visibility of rectangle area on currently connected screens with small gap. + + Rectanle area for checking. + True for visible rect. + + + + Gets or sets the settings for the preview window. + + + + + Gets a value indicating that the Mono runtime is used. + + + + + Gets or sets a value indicating is it impossible to specify a local data path in Xml and Csv. + + + + + Gets or sets the optimization of strings. Is experimental feature. + + + + + Enable or disable the compression in files with prepared reports (fpx). + + + + + Gets the application folder. + + + + + Gets an english culture information for localization purposes + + + + + Gets or sets the path used to load/save the configuration file. + + + By default, the configuration file is saved to the application local data folder + (C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\). + Set this property to "" if you want to store the configuration file in the application folder. + + + + + Gets or sets the path used to font.list file. + + + By default, the font.list file is saved to the FastReport.config folder + If WebMode enabled (or config file path is null), then file is saved in the application folder. + + + + + Gets or sets the settings for the Report component. + + + + + Gets or sets a value indicating whether RTL layout should be used. + + + + + Gets or sets a value indicating whether hotkeys should be disabled. + + + + + Gets the root item of config xml. + + + + + Gets or sets the path to the temporary folder used to store temporary files. + + + The default value is null, so the system temp folder will be used. + + + + + Gets the path to the system temporary folder used to store temporary files. + + + + + Gets FastReport version. + + + + + Called on script compile + + + + + Gets a PrivateFontCollection instance. + + + + + Enable report script validation. For WebMode only + + + + + Throws when property EnableScriptSecurity has been changed + + + + + Properties of report script validation + + + + + Properties of ScriptSecurity + + + + + Add stubs for the most dangerous classes (in System.IO, System.Reflection etc) + + + + + List of keywords that shouldn't be declared in the report script + + + + + Throws when has changed + + + + + Sets default value for + + + + + Gets or sets the settings for the "Send Email" window. + + + + + Get access to font collection + + + + + Holds the information about the registered object. + + + + + Image index. + + + + + Button index. + + + + + Name of object or category. + + + + + The registered object. + + + + + The registered function. + + + + + Tooltip text. + + + + + Flags that will be used to create an object instance in the designer. + + + + + Indicates whether this object can be inserted several times simultaneously. + + + This is applied to Line object only. + + + + + Gets or sets the enabled flag for the object. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + + + + + + + + + + + + + + + + Contains all registered report items such as objects, export filters, wizards. + + + Use this class to register own components, wizards, export filters or another items that + need to be serialized to/from a report file. + + + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + + + + + + Registers a new cloud storage client. + + Type of cloud storage client. + Text for cloud storage client's menu item. + + The obj must be of type. + + + + // register own cloud storage client + RegisteredObjects.AddCloud(typeof(MyCloud), "My Cloud"); + + + + + + Registers a new messenger. + + Type of messenger. + Text messenger's menu item. + + The obj must be of type. + + + + // register own messenger + RegisteredObjects.AddMessenger(typeof(MyMessenger), "My Messenger"); + + + + + + Registers a new wizard. + + Type of wizard. + Image for wizard item. + Text for wizard item. + true if this wizard creates some items in existing report. + + The obj must be of type. + + This example shows how to register own wizard that is used to create some items in the + current report. If you want to register a wizard that will be used to create a new report, + set the isReportItemWizard to false. + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + + + + + + Root object for all registered objects. + + + + + Root object for all registered functions. + + + + + Checks whether the specified type is registered already. + + Type to check. + true if such type is registered. + + + + Registers a category that may contain several report objects. + + Category name. + Image for category button. + Text for category button. + + Category is a button on the "Objects" toolbar that shows context menu with nested items + when you click it. Consider using categories if you register several report objects. It can + save space on the "Objects" toolbar. For example, FastReport registers one category called "Shapes" + that contains the LineObject and different types of ShapeObject. + The name of category must starts either with "ReportPage," or "DialogPage," depending on + what kind of controls do you need to regiter in this category: report objects or dialog controls. + After the comma, specify the category name. So the full category name that you need to specify + in the name parameter, must be something like this: "ReportPage,Shapes". + + When register an object inside a category, you must specify the full category name in the + category parameter of the Add method. + + + + + Register Export category. + + Category name. + Category text. + + + + Registers a new export filter. + + Type of export filter. + Text for export filter's menu item. + + The obj must be of type. + + + + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + + + + + + Registers custom data connection. + + Type of connection. + Name of connection. + + The obj must be of type. + + + + // register data connection + RegisteredObjects.AddConnection(typeof(MyDataConnection), "My Data Connection"); + + + + + + Registers an object in the specified category. + + Type of object to register. + Name of category to register in. + Index of image for object's button. + Index of object's button in toolbar. + + + + Registers an object in the specified category with button's image, text, object's flags and multi-insert flag. + + Type of object to register. + Name of category to register in. + Image for object's button. + Text for object's button. + Integer value that will be passed to object's OnBeforeInsert method. + Specifies whether the object may be inserted several times until you + select the "arrow" button or insert another object. + + You must specify either the page type name or existing category name in the category parameter. + The report objects must be registered in the "ReportPage" category or custom category that is + registered in the "ReportPage" as well. The dialog controls must be registered in the "DialogPage" + category or custom category that is registered in the "DialogPage" as well. + If you want to register an object that needs to be serialized, but you don't want + to show it on the toolbar, pass empty string in the category parameter. + + To learn about flags, see the method. + + + + // register the report object + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage", myReportObjectBmp, "My Report Object"); + // register the dialog control + RegisteredObjects.Add(typeof(MyDialogControl), "DialogPage", myDialogControlBmp, "My Dialog Control"); + // add a category and register an object inside it + RegisteredObjects.AddCategory("ReportPage,MyCategory", myCategoryBmp, "My Category"); + // register another report object in MyCategory + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage,MyCategory", + anotherReportObjectBmp, "Another Report Object"); + + + + + + Adds a new function category. + + Short name of category. + Display name of category. + + Short name is used to reference the category in the subsequent + method call. It may be any value, for example, "MyFuncs". Display name of category is displayed + in the "Data" window. In may be, for example, "My Functions". + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + + + This example shows how to register a new category: + + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + + + + + Adds a new function into the specified category. + + MethodInfo containing all necessary information about the function. + The name of category to register the function in. + + Your function must be a static, public method of a public class. + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + You may use one of the standard categories, or create a new category by the + method call. + FastReport uses XML comments to display your function's description. + To generate XML comments, enable it in your project's properties + ("Project|Properties..." menu, "Build" tab, enable the "XML documentation file" checkbox). + + + The following example shows how to register own functions: + + public static class MyFunctions + { + /// <summary> + /// Converts a specified string to uppercase. + /// </summary> + /// <param name="s">The string to convert.</param> + /// <returns>A string in uppercase.</returns> + public static string MyUpperCase(string s) + { + return s == null ? "" : s.ToUpper(); + } + + /// <summary> + /// Returns the larger of two 32-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static int MyMaximum(int val1, int val2) + { + return Math.Max(val1, val2); + } + + /// <summary> + /// Returns the larger of two 64-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static long MyMaximum(long val1, long val2) + { + return Math.Max(val1, val2); + } + } + + // register a category + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + // obtain MethodInfo for our functions + Type myType = typeof(MyFunctions); + MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase"); + MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) }); + MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) }); + + // register simple function + RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs"); + + // register overridden functions + RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum"); + RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum"); + + + + + + Finds the registered object's info. + + The type of object to find. + The object's info. + This method can be used to disable some objects, for example: + RegisteredObjects.FindObject(typeof(PDFExport)).Enabled = false; + + + + + Register and override the method with method name in the type. + For property use the property name and _Get or _Set suffix. + + Type for registering method + Name of method fir registering + Method for registering + + + + Gets the method or null if method is not found + + Type for method finding + Name for method finfing + Use True value for inheritance the method from base type, use false for get the method only from the this type + + + + + Used to get localized values from the language resource file. + + + The resource file used by default is english. To load another locale, call + the method. It should be done at application start + before you use any FastReport classes. + + + + + Adds user image to 96 dpi images. + + User image (16x16 pixels). + Image index in the image list. + + + + Gets the standard images used in FastReport as an ImageList. + + ImageList object that contains standard images. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified index. + + Image index (zero-based). + Dpi value (96 for base dpi). + The image with specified index. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified name from resources. + + The name of image resource. + Dpi value (96 for base dpi). + The image. + + + + Gets an image with specified index and converts it to Icon. + + Image index (zero-based). + Dpi value (96 for base dpi). + The Icon object. + + + + Gets or set the folder that contains localization files (*.frl). + + + + + Returns the current UI locale name, for example "en". + + + + + Loads the locale from a file. + + The name of the file that contains localized strings. + + + + Loads and caches the locale from information. + Notes: *.frl the localization file is looked for in + To work correctly, it is recommended to install FastReport.Localization package + + + + + + Loads the locale from a stream. + + The stream that contains localized strings. + + + + Loads the english locale. + + + + + Gets a string with specified ID. + + The resource ID. + The localized string. + + Since the locale file is xml-based, it may contain several xml node levels. For example, + the file contains the following items: + + <Objects> + <Report Text="Report"/> + <Bands Text="Bands"> + <ReportTitle Text="Report Title"/> + </Bands> + </Objects> + + To get the localized "ReportTitle" value, you should pass the following ID + to this method: "Objects,Bands,ReportTitle". + + + + + Get builtin string. + + + + + + + Replaces the specified locale string with the new value. + + Comma-separated path to the existing locale string. + The new string. + + Use this method if you want to replace some existing locale value with the new one. + + + + Res.Set("Messages,SaveChanges", "My text that will appear when you close the designer"); + + + + + + Tries to get a string with specified ID. + + The resource ID. + The localized value, if specified ID exists; otherwise, the ID itself. + + + + Tries to get builtin string with specified ID. + + + + + + + Checks if specified ID exists. + + The resource ID. + true if specified ID exists. + + + + Resource loader class. + + + + + Gets a bitmap from specified assembly resource. + + Assembly name. + Resource name. + Bitmap object. + + + + Gets a bitmap from specified FastReport assembly resource. + + Resource name. + Bitmap object. + + + + Gets a cursor from specified assembly resource. + + Assembly name. + Resource name. + Cursor object. + + + + Gets a cursor from specified FastReport assembly resource. + + Resource name. + Cursor object. + + + + Gets an icon from specified assembly resource. + + Assembly name. + Resource name. + Icon object. + + + + Gets an icon from specified FastReport assembly resource. + + Resource name. + Icon object. + + + + Gets a stream from specified assembly resource. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from FastReport assembly resource. + + Resource name. + Stream object. + + + + Gets a stream from specified assembly resource and unpacks it. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from specified FastReport assembly resource and unpacks it. + + Resource name. + Stream object. + + + + A static class that contains methods to auto-convert rtl layout. + + + + + Changes control's layout to rtl. + + + + + + Draws an image and a text. + + The control which is used to determine RTL and DPI settings. + The draw event args. + The image. + The text. + This method is used to draw items in an owner-drawn listboxes and comboboxes. It respects RTL and DPI settings of a control. + + + + Gets current dpi value for the control. + + The control. + The dpi value. + + + + Gets current dpi multiplier for the control (1.0 for 96dpi). + + The control. + The dpi multiplier. + + + + Gets current font dpi multiplier for the control (1.0 for 96dpi). + + The return value depends on the base resolution of the main screen. + The control. + The font dpi multiplier. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical font to device font. + + The control. + Logical font. + Determines whether to dispose the original font or not. + Device font. + + + + Returns an image from resources using control's dpi value. + + The control. + Image index. + An image with specified index from "buttons.png" resource. + + + + Returns an image from resources using control's dpi value. + + The control. + Image name. + An image with specified index from "buttons.png" resource. + + + + Returns an imagelist from resources using control's dpi value. + + The control. + An imagelist from "buttons.png" resource. + + + + The style of FastReport user interface. + + + + + Specifies the Microsoft Office 2003 style (blue). + + + + + Specifies the Microsoft Office 2007 style (blue). + + + + + Specifies the Microsoft Office 2007 style (silver). + + + + + Specifies the Microsoft Office 2007 style (black). + + + + + Specifies the Office 2010 (Blue) style. + + + + + Specifies the Office 2010 (Silver) style. + + + + + Specifies the Office 2010 (Black) style. + + + + + Specifies the Office 2013 style. + + + + + Specifies the Microsoft Visual Studio 2005 style. + + + + + Specifies the Visual Studio 2010 style. + + + + + Specifies the Visual Studio 2012 (Light) style. + + + + + Specifies the Microsoft Vista style (black). + + + + + Contains conversion methods between FastReport's UIStyle to various enums. + + + + + Contains visual style names. + + + + + Converts FastReport's UIStyle to eDotNetBarStyle. + + Style to convert. + Value of eDotNetBarStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eOffice2007ColorScheme. + + Style to convert. + Value of eOffice2007ColorScheme type. + + + + Converts FastReport's UIStyle to eColorSchemeStyle. + + Style to convert. + Value of eColorSchemeStyle type. + + + + Returns app workspace color for the given style. + + UI style. + The color. + + + + Returns control color for the given style. + + UI style. + The color. + + + + Contains methods to call common editors. + + + Use this class if you are writing a new component for FastReport. + + + + + Invokes the expression editor. + + A reference to the report. + The expression to edit. + The new expression. + + + + Invokes the border editor. + + The Border to edit. + The new border. + + + + Invokes the data band columns editor. + + The data band columns to edit. + + + + + Invokes the fill editor. + + The fill to edit. + The new fill. + + + + Invokes the outline editor. + + The outline to edit. + The new outline. + + + + Provides the message functions. + + + + + Shows the Message Box with error message. + + The message. + + + + Shows Message Box with confirmation. + + The message. + The dialog buttons. + The dialog result. + + + + Shows information Message Box. + + The message. + + + + The profiler. + + + + + Starts the profiler. + + + + + Finishes the profiler and displays results. + + + + + Script security event arguments. + + + + + Gets the report language. + + The report language. + + + + Gets the report. + + The report. + + + + Gets the report script. + + The report script. + + + + Gets the references of script. + + Script references + + + + Gets or sets value if script is allowed to compile + + true if is valid; otherwise, false. + + + + Initializes a new instance of the class. + + Report. + Report's script. + Report's references. + + + + Base class for plugin's assembly initializer. + + + FastReport has an open architecture. That means you can extend it with own classes + such as report objects, wizards, export filters. Usually such classes are + placed in separate dlls (plugins). FastReport has mechanism to load plugin dlls. You can specify + which plugins to load at first start, in the FastReport configuration file (by default it is located in the + C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\FastReport.config file). + To do this, add an xml item with your plugin name inside the <Plugins> item: + + <?xml version="1.0" encoding="utf-8"?> + <Config> + <Plugins> + <Plugin Name="c:\Program Files\MyProgram\MyPlugin.dll"/> + </Plugins> + </Config> + + When you run your application and use the Report object first time, all plugins will be loaded. + To register objects contained in a plugin, FastReport searches for classes of type + AssemblyInitializerBase and instantiates them. + Use this class to register custom report objects, controls, wizards, exports that + are contained in the assembly. To do this, make your own class of the AssemblyInitializerBase + type and override its default constructor. In the constructor, call RegisteredObjects.Add + methods to register all necessary items. + + + + + Registers plugins contained in this assembly. + + + This constructor is called automatically when the assembly is loaded. + + This example show how to create own assembly initializer to register own items. + + public class MyAssemblyInitializer : AssemblyInitializerBase + { + public MyAssemblyInitializer() + { + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + } + } + + + + + + Source of image, only for inline img tag + + + + + Class for ACMYK color conversions + + + + + Alpha transparency 0..255 + + + + + Cyan 0..100 + + + + + Magenta 0..100 + + + + + Yellow 0..100 + + + + + Black 0..100 + + + + + Returns ACMYK as string. + + + + + + Gets CMYKA from string. + + + + + + Converts Color value to ACMYK + + + + + + Converts separate ARGB values in ACMYK + + + + + + + + + Returns ARGB color value + + + + + + Creates CMYKColor from ARGB values + + + + + + + + + Creates CMYKColor from ACMYK values + + + + + + + + + + Creates CMYKColor from string (comma separated values) + + + + + + Creates CMYKColor from Color value + + + + + + Color Utilities + + + + + Return true for CMYK Jpeg image + + + + + + + Contains methods that peform string to object and vice versa conversions. + + + + + Converts an object to a string. + + The object to convert. + The string that contains the converted value. + + + + Converts a value to a string using the specified converter. + + The object to convert. + The type of converter. + The string that contains the converted value. + + + + Converts a string value to the specified data type. + + The data type to convert to. + The string to convert from. + The object of type specified in the type parameter that contains + a converted value. + + + + Converts a string to an object using the specified converter. + + The string to convert. + The type of converter. + The object that contains the converted value. + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + The result string. + + This method replaces some special symbols like <, > into xml-compatible + form: &lt;, &gt;. To convert such string back to original form, use the + method. + + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + Determines whether it is necessary to convert cr-lf symbols to xml form. + The result string. + + + + Converts a value to xml-compatible string. + + The value to convert. + The result string. + + + + Convert the xml-compatible string to the regular one. + + The string to convert. + The result string. + + This is counterpart to the method. + + + + + Decreases the precision of floating-point value. + + The initial value. + The number of decimal digits in the fraction. + The value with lesser precision. + + + + Converts a string value to the float. + + The string value to convert. + The float value. + + Both "." or "," decimal separators are allowed. + + + + + Converts a string value to the float. + + The string value to convert. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts the string containing several text lines to a collection of strings. + + The string to convert. + The collection instance. + + + + Converts a collection of strings to a string. + + The collection to convert. + The string that contains all lines from the collection. + + + + Converts null value to 0, false, empty string, depending on type. + + The data type. + The value of the type data type. + + + + Converts string value to byte[]. + + The string to convert + The value of the byte[] data type. + + + + Converts a string to NameValueCollection. + + The string to convert. + The NameValueCollection that contains the name/value pairs. + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Result of processing + True if successful + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Append result of processing to FastString + True if successful + + + + Calc the Crc32 checksum + + + + + Caclulate Streams checksum. + + + + + + + Calculate byte array checksum. + + + + + + + Calculate string checksum. + + + + + + + Begin the checksum + + + + + + Update the checksum + + + + + + + + + + End the checksum. + + + + + + + Contains methods used to crypt/decrypt a data. + + + + + Sets the password that is used to crypt connection strings stored in a report. + + + See the property for more details. + + + + + Crypts a stream using specified password. + + The destination stream that will receive the crypted data. + The password. + The stream that you need to write to. + + Pass the stream you need to write to, to the dest parameter. Write your data to the + stream that this method returns. When you close this stream, the dest stream will be + closed too and contains the crypted data. + + + + + Decrypts a stream using specified password. + + Stream that contains crypted data. + The password. + The stream that contains decrypted data. + + You should read from the stream that this method returns. + + + + + Checks if the stream contains a crypt signature. + + Stream to check. + true if stream is crypted. + + + + Encrypts the string using the default password. + + String to encrypt. + The encrypted string. + + The password used to encrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Encrypts the string using specified password. + + String to encrypt. + The password. + The encrypted string. + + + + Decrypts the string using the default password. + + String to decrypt. + The decrypted string. + + The password used to decrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Decrypts the string using specified password. + + String to decrypt. + The password. + The decrypted string. + + + + Computes hash of specified stream. Initial position in stream will be saved. + + Initial stream + + + + + Computes hash of specified array. + + Initial array + + + + + Computes hash of specified array. + + Initial array + + + + + MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. + It was created by Austin Appleby in 2008 and is currently hosted on Github along with its test suite named 'SMHasher'. + It also exists in a number of variants, all of which have been released into the public domain. + The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop. + https://en.wikipedia.org/wiki/MurmurHash + Implementation of Murmur3 Hash by Adam Horvath + http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html + + + + + READ_SIZE + + + + + ComputeHash function + + + + + + + Gets the Hash + + + + + Used to draw a text with non-standard angle or justification. + + + + + Draws a string. + + String to draw. + Graphics object to draw on. + Font that used to draw text. + Brush that determines the color and texture of the drawn text. + RectangleF structure that specifies the location of the drawn text. + StringFormat that specifies formatting attributes, such as line spacing and alignment, that are applied to the drawn text. + Horizontal alignment of the text. + Width ratio of the font used to draw a string. + Line height, in pixels. + Angle of the text, in degrees. + Indicates whther to draw string close to the printout. + Force justify for the last line. + + + + Initializes a new instance of the DrawText class with default settings. + + + + + Draws control to a bitmap. + + Control to draw. + Determines whether to draw control's children or not. + The bitmap. + + + + The exception that is thrown when the user tried to set object's name that is already exists. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when loading bad formed xml report file. + + + + + The exception that is thrown when loading an encrypted report with wrong password. + + + + + The exception that is thrown if there is an error in the report's script code. + + + + + The exception that is thrown when trying to set an object's Parent property to + an object that not accepts children of this type. + + + + + The exception that is thrown when trying to load a report file that contains reference to an + unknown object type. + + + + + The exception that is thrown when initializing a table datasource which + TableName or Alias is not set properly. + + + + + The exception that is thrown when trying to access a row of a datasource that is not initialized yet. + + + + + The exception that is thrown if an error occurs in the TableObject.ManualBuild event. + + + + + The exception that is thrown if an error occurs in the MatrixObject.ManualBuild event. + + + + + The exception that is thrown if a report object's Name property is set to wrong value. + + + + + The exception that is thrown if an unknown value is supplied to some methods dealing with totals, variables etc. + + + + + throws this exception if an error occurs in the SaveReport method. + See inner exception for detailed information. + + + + + The exception that is thrown when the Group Header has no group condition. + + + + + The helper class used to create unique component names using the fastest method. + + + Note: you can create unique component's name using its CreateUniqueName method. + However, it is very slow and can't be used in some situations (when you create a report + layout in a code and have a lot of objects on a page). + + This example demonstrates how to use this class. + + FastNameCreator nameCreator = new FastNameCreator(Report.AllObjects); + foreach (Base c in Report.AllObjects) + { + if (c.Name == "") + nameCreator.CreateUniqueName(c); + } + + + + + + Creates the unique name for the given object. + + The object to create name for. + + + + Initializes a new instance of the FastNameCreator class with collection of + existing report objects. + + The collection of existing report objects. + + + + Fast alternative of StringBuilder. + + + + + Gets the Length of string. + + + + + Gets or sets the chars of string. + + + Char value + + + + Gets StringBuilder + + + + + Initialize the new array for chars. + + Length of initial array. + + + + Checks the empty array. + + True if string is empty. + + + + Converts the array in string. + + String value. + + + + Clears the string. + + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Append formatted string. + + + + + + + + Appends new line. + + FastString object. + + + + Appends the string by char value. + + Char value. + FastString object. + + + + Appends the another FastString object. + + FastString object. + FastString object. + + + + Appends the string by object data. + + Object value. + FastString object. + + + + Copies the substring in char array. + + Start index in source. + Destination array. + Destination index. + Count of chars + + + + Removes substring. + + Start index of removed string. + Length of removed string. + FastString object. + + + + Inserts string. + + Start index in existing string. + Value of inserting string. + FastString object. + + + + Replacing the substring on other. + + Old string value. + New string value. + FastString object. + + + + Index of substring. + + Substring for search. + Sarting position for search. + Position of substring. + + + + Compare of substring in position. + + Starting index for comparsion. + Value for compare. + True if substring is identical in position. + + + + Returns the substring. + + Starting index. + Length of substring. + Substring. + + + + Creates the new FastString object with initial capacity. + + Initial capacity. + + + + Creates the new FastString object with default capacity. + + + + + Creates the new FastString object from initial string. + + + + + + Represents a collection of float values. + + + + + Gets or sets the value at the specified index. + + Index of a value. + The value at the specified index. + + + + Adds the specified values to the end of this collection. + + + + + + Adds a value to the end of this collection. + + Value to add. + Index of the added value. + + + + Inserts a value into this collection at the specified index. + + The zero-based index at which value should be inserted. + The value to insert. + + + + Removes the specified value from the collection. + + Value to remove. + + + + Returns the zero-based index of the first occurrence of a value. + + The value to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether a value is in the collection. + + The value to locate in the collection. + true if value is found in the collection; otherwise, false. + + + + Copies values from another collection. + + Collection to copy from. + + + + Represents a collection of FastReport base objects. + + + + + Gets an owner of this collection. + + + + + Adds the specified elements to the end of this collection. + + Range of elements. + + + + Adds the specified elements to the end of this collection. + + Collection of elements. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Returns an array of collection items. + + + + + + Determines whether two collections are equal. + + The collection to compare with. + true if collections are equal; false otherwise. + + + + Copies the content to another collection. + + The collection to copy to. + + + + + + + + + + + + + Initializes a new instance of the FRCollectionBase class with default settings. + + + + + Initializes a new instance of the FRCollectionBase class with specified owner. + + The owner of this collection. + + + + Specifies the main mode of the designer's workspace. + + + + + Specifies selection mode. + + + + + Specifies insertion mode. + + + + + Specifies drag-drop mode. + + + + + Specifies the additional mode of the designer's workspace. + + + + + Specifies default mode. + + + + + Indicates that user moves the selected objects. + + + + + Indicates that user resizes the selected objects. + + + + + Indicates that user draw the selection rectangle. + + + + + Specifies a custom mode handled by the object. + + + + + Provides a data for mouse events. + + + + + The X mouse coordinate. + + + + + The Y mouse coordinate. + + + + + Current state of mouse buttons. + + + + + Current keyboard state. + + + + + Indicates that current object was handled the mouse message. + + + + + The delta of the mouse movement. + + + + + The mouse wheel delta. + + + + + Current cursor shape. + + + + + Additional mode of the designer's workspace. + + + + + Current sizing point if Mode is set to Size. + + + + + Current selection rectangle if mode is set to SelectionRect. + + + + + Active object that handles the mouse event. + + + + + The source object of drag-drop operation. + + + + + Multiple sources objects of drag-drop operation. + + + + + The target object of drag-drop operation. + + + + + The message to show when drag source is over the object. + + + + + Additional data supplied and handled by report objects. + + + + + Specifies the sizing point used to resize an object by mouse. + + + + + No sizing point. + + + + + Specifies left-top sizing point. + + + + + Specifies left-bottom sizing point. + + + + + Specifies right-top sizing point. + + + + + Specifies right-bottom sizing point. + + + + + Specifies top-center sizing point. + + + + + Specifies bottom-center sizing point. + + + + + Specifies left-center sizing point. + + + + + Specifies right-center sizing point. + + + + + Specifies a selection point used to resize an object. + + + + + The X coordinate of the point. + + + + + The Y coordinate of the point. + + + + + The size mode. + + + + + Initializes a new instance of the SelectionPoint class with specified location and size mode. + + The X coordinate. + The Y coordinate. + Size mode. + + + + Provides a data for paint event. + + + + + Gets a Graphics object to draw on. + + + + + Gets the X scale factor. + + + + + Gets the Y scale factor. + + + + + Gets the cache that contains graphics objects. + + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + IGraphicsRenderer object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + Graphics object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + The reader used to deserialize object's properties from a report file. + + + + + Gets a string that contains errors occured during the load. + + + + + Gets the current item name. + + + + + Gets or sets a value indicating whther is necessary to read the object's children. + + + + + Returns Root element for this reader + + + + + Gets or sets target of serialization. + + + + + Reads the specified object. + + The object to read. + + The object must implement the interface. This method + invokes the Deserialize method of the object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads an object from current xml node. + + The object. + + This method creates an instance of object described by the current xml node, then invokes + its Deserialize method. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads properties of specified object. + + The object to read. + + This method reads simple properties like "Text", "Border.Lines" etc. for specified object. + To read nested properties like collections, you should override the + method of an object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Moves the current xml item. + + false if there is no more items to move on; true otherwise. + + This method is used to read child objects. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Checks if current item has specified property. + + The property name to check. + true if current item has specified property. + + + + Reads the string property. + + Name of property. + Property value. + + + + Reads the boolean property. + + Name of property. + Property value. + + + + Reads the integer property. + + Name of property. + Property value. + + + + Reads the float property. + + Name of property. + Property value. + + + + Reads the double property. + + Name of property. + Property value. + + + + Reads the enum property. + + Name of property. + Type of property. + Property value. + + + + Reads the standalone property value. + + Property value. + + + + Disposes the reader, fixups the property references. + + + + + Loads the xml items from a stream. + + The stream to load from. + + + + Initializes a new instance of the FRReader class with specified report. + + Reference to a report. + + + + Initializes a new instance of the FRReader class with specified report and xml item with + contents to read. + + Reference to a report. + Xml item with contents to read. + + + + Specifies the target for the serialize operation. + + + + + Serialize to the report file. + + + + + Serialize to the preview pages. + + + + + Serialize to the source pages of a preview. + + + + + Serialize to the designer's clipboard. + + + + + Serialize to the designer's undo/redo buffer. + + + + + The writer used to serialize object's properties to a report file. + + + + + Gets or sets current xml item name. + + + + + Gets or sets target of serialization. + + + + + Gets the ethalon object to compare with. + + + + + Gets or sets a value that determines whether is necessary to serialize child objects. + + + + + Gets or sets a value that determines whether is necessary to add xml header. + + + + + Serializes the specified object. + + The object to serialize. + + The object must implement the interface. This method + invokes the Serialize method of the object. + + This example demonstrates the use of writer. + + public void Serialize(FRWriter writer) + { + // get the etalon object. It will be used to write changed properties only. + Base c = writer.DiffObject as Base; + + // write the type name + writer.ItemName = ClassName; + + // write properties + if (Name != "") + writer.WriteStr("Name", Name); + if (Restrictions != c.Restrictions) + writer.WriteValue("Restrictions", Restrictions); + + // write child objects if allowed + if (writer.SaveChildren) + { + foreach (Base child in ChildObjects) + { + writer.Write(child); + } + } + } + + + + + + Serializes the object using specified etalon. + + The object to serialize. + The etalon object. + + + + Writes a string property. + + Property name. + Property value. + + + + Writes a boolean property. + + Property name. + Property value. + + + + Writes an integer property. + + Property name. + Property value. + + + + Writes a float property. + + Property name. + Property value. + + + + Writes a double property. + + Property name. + Property value. + + + + Writes an enumeration property. + + Property name. + Property value. + + + + Writes an object reference property. + + Property name. + Property value. + + + + Writes a standalone property value. + + Name of property. + Property value. + + This method produces the following output: + <PropertyName>PropertyValue</PropertyName> + + + + + Determines if two objects are equal. + + The first object. + The second object. + true if objects will be serialized to the same value. + + + + Disposes the writer. + + + + + Saves the writer output to a stream. + + Stream to save to. + + + + Initializes a new instance of the FRWriter class with default settings. + + + + + Initializes a new instance of the FRWriter class with specified xml item that will + receive writer's output. + + The xml item that will receive writer's output. + + + + Returns splited string + + text for splitting + index of first character of second string + second part of string + returns true if ends on enter + first part of string + + + + Check the line, and if last word is able to move next line, move it. + e.g. white space won't move to next line. + If word is not moved return current line. + else return new line + + the paragraph for lines + the line with extra words + the index of start last word in this line + width to place words + ref to current line width + + + + + Represents character placement. + + + + + Be care generates dictionary only one time + + + + + Return true if read char + + + + + + Represents a style used in HtmlTags mode. Color does not affect the equals function. + + + + + returns true if objects realy equals + + + + + + + Converts a PNG image to a icon (ico) + + The input image + The output stream + Preserve the aspect ratio + Wether or not the icon was succesfully generated + + + + Returns an Image format. + + + + + Name of object or category. + + + + + Tooltip text. + + + + + The registered function. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + Used to access to resource IDs inside the specified branch. + + + Using the method, you have to specify the full path to your resource. + Using this class, you can shorten the path: + + // using the Res.Get method + miKeepTogether = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,RepeatOnEveryPage")); + + // using MyRes.Get method + MyRes res = new MyRes("ComponentMenu,HeaderBand"); + miKeepTogether = new ToolStripMenuItem(res.Get("KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(res.Get("ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(res.Get("RepeatOnEveryPage")); + + + + + + + Gets a string with specified ID inside the main branch. + + The resource ID. + The localized value. + + + + Initializes a new instance of the class with spevified branch. + + The main resource branch. + + + + Localized CategoryAttribute class. + + + + + + + + Initializes a new instance of the SRCategory class. + + The category name. + + + + Advanced text renderer is used to perform the following tasks: + - draw justified text, text with custom line height, text containing html tags; + - calculate text height, get part of text that does not fit in the display rectangle; + - get paragraphs, lines, words and char sequence to perform accurate export to such + formats as PDF, TXT, RTF + + Here is how one may operate the renderer items: + + foreach (AdvancedTextRenderer.Paragraph paragraph in renderer.Paragraphs) + { + foreach (AdvancedTextRenderer.Line line in paragraph.Lines) + { + foreach (AdvancedTextRenderer.Word word in line.Words) + { + if (renderer.HtmlTags) + { + foreach (AdvancedTextRenderer.Run run in word.Runs) + { + using (Font f = run.GetFont()) + using (Brush b = run.GetBrush()) + { + g.DrawString(run.Text, f, b, run.Left, run.Top, renderer.Format); + } + } + } + else + { + g.DrawString(word.Text, renderer.Font, renderer.Brush, word.Left, word.Top, renderer.Format); + } + } + } + } + + + + + + The scale for font tag + + + + + Paragraph represents single paragraph. It consists of one or several . + + + + + Line represents single text line. It consists of one or several . + Simple line (that does not contain tabs, html tags, and is not justified) has + single which contains all the text. + + + + + Word represents single word. It may consist of one or several , in case + when HtmlTags are enabled in the main class. + + + + + Represents character placement. + + + + + Represents a style used in HtmlTags mode. + + + + + Represents sequence of characters that have the same . + + + + + Represents inline Image. + + + + + Standard text renderer uses standard DrawString method to draw text. It also supports: + - text rotation; + - fonts with non-standard width ratio. + In case your text is justified, or contains html tags, use the + class instead. + + + + + Cache for rendering img tags in textobject. + You can use only HTTP[s] protocol with absolute urls. + + + + + Is serialized + + + + + Get or set WebClient for downloading imgs by url + + + + + Occurs before image load + + + + + Occurs after image load + + + + + Enumerates all values + + + + + + Return CacheItem by src + + Src attribute from img tag + + + + + + + + + + + + Set CacheItem by src + + Src attribute from img tag + CacheItem + + + + + Validate src attribute from image + + Src attribute from img tag + return true if src is valid + + + + + + + + + + + + Item of image cache Dictionary + + + + + Get Base64 string + + + + + Return true if has some error with Image + + + + + Get Image + + + + + Get byte array + + + + + Return error image and set true to error property + + + + + + Set value for cache item + + Image encoded base64 string + + + + Set value for cache item + + Image + + + + Set value for cache item + + Image + + + + + + + + + + WebClientEventArgs + + + + + Gets a cache + + + + + Gets or sets a value indicating whether the event was handled. + + + + + Gets or sets a url from src attribue of img tag + + + + + + + + + + + The report page units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in hundreths of inch. + + + + + Defines the constants used to convert between report units and screen pixels. + + + To convert pixels to millimeters, use the following code: + valueInMillimeters = valueInPixels / Units.Millimeters; + To convert millimeters to pixels, use the following code: + valueInPixels = valueInMillimeters * Units.Millimeters; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in 1/10 of ich. + + + + + The number of pixels in 1/100 of inch. + + + + + Represents a xml property. + + + + + Represents a property key. + + + + + Represents a property value. + + + + + Creates new property and assigns value + + Property key + Property value + + + + Represents a xml node. + + + + + Gets a number of children in this node. + + + + + Gets a list of children in this node. + + + + + Gets a child node with specified index. + + Index of node. + The node with specified index. + + + + Gets or sets the node name. + + + This property will return "Node" for a node like <Node Text="" Left="0"/> + + + + + Gets or sets a list of properties in this node. + + + + + Gets or sets the parent for this node. + + + + + Gets or sets the node value. + + + This property will return "ABC" for a node like <Node>ABC</Node> + + + + + Gets the root node which owns this node. + + + + + Clears the child nodes of this node. + + + + + Adds a new child node to this node. + + The new child node. + + + + Adds a specified node to this node. + + The node to add. + + + + Inserts a specified node to this node. + + Position to insert. + Node to insert. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; null otherwise. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; the new node otherwise. + + This method adds the node with specified name to the child nodes if it cannot find the node. + Do not dispose items, which has been created by this method + + + + + Gets the index of specified node in the child nodes list. + + The node to find. + Zero-based index of node, if found; -1 otherwise. + + + + Gets a property with specified name. + + The property name. + The value of property, if found; empty string otherwise. + + This property will return "0" when you request the "Left" property for a node + like <Node Text="" Left="0"/> + + + + + Removes all properties. + + + + + Sets the value for a specified property. + + The property name. + Value to set. + + For example, you have a node like <Node Text="" Left="0"/>. When you set the + "Text" property to "test", the node will be <Node Text="test" Left="0"/>. + If property with specified name is not exist, it will be added. + + + + + Removes a property with specified name. + + The property name. + Returns true if property is removed, false otherwise. + + + + Disposes the node and all its children. + + + + + Initializes a new instance of the XmlItem class with default settings. + + + + + Represents a xml document that contains the root xml node. + + + Use Load and Save methods to load/save the document. To access the root node + of the document, use the property. + + + + + Gets or sets a value indicating whether is necessary to indent the document + when saving it to a file/stream. + + + + + Gets or sets a value indicating whether is necessary to add xml header. + + + + + Gets the root node of the document. + + + + + Clears the document. + + + + + Saves the document to a stream. + + Stream to save to. + + + + Saves the document to a string. + + Writer to save to. + + + + Loads the document from a stream. + + Stream to load from. + + + + Saves the document to a file. + + The name of file to save to. + + + + Loads the document from a file. + + The name of file to load from. + + + + Disposes resources used by the document. + + + + + Initializes a new instance of the XmlDocument class with default settings. + + + + + + + + + + + + + Clear all files in archive. + + + + + Check for exisiting file in archive. + + + + + + + Adds the file form disk to the archive. + + + + + + Adds all files from directory (recursive) on the disk to the archive. + + + + + + Adds the stream to the archive. + + + + + + + Creates the zip and writes it to rhe Stream + + + + + + Creates the ZIP archive and writes it to the file. + + + + + + Gets or sets the Root Folder. + + + + + Gets or sets the errors. + + + + + Gets or sets the commentary to the archive. + + + + + Gets count of files in archive. + + + + + Creates the new zip archive. + + + + + Class helper for compile source code with path of assemblies + + + + + Generate a assembly in memory with some source code and several path for additional assemblies + + + + + + + + The components factory. + + + The components factory. + + + + + Creates a RichObject instance with specified name and parent. + + The name of the RichObject instance. + The parent of the RichObject instance. + The RichObject instance. + + + + Creates a MSChartObject instance with specified name and parent. + + The name of the MSChartObject instance. + The parent of the MSChartObject instance. + The MSChartObject instance. + + + + Creates a SparklineObject instance with specified name and parent. + + The name of the SparlineObject instance. + The parent of the SparlineObject instance. + + + + + Creates a MapObject instance with specified name and parent. + + The name of the MapObject instance. + The parent of the MapObject instance. + The MapObject instance. + + + + Creates a ReportPage instance in the specified Report. + + The Report instance. + The ReportPage instance. + + + + Creates a ReportTitleBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportTitleBand instance. + + + + Creates a ReportSummaryBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportSummaryBand instance. + + + + Creates a PageHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The PageHeaderBand instance. + + + + Creates a PageFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The PageFooterBand instance. + + + + Creates a ColumnHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnHeaderBand instance. + + + + Creates a ColumnFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnFooterBand instance. + + + + Creates a DataHeaderBand instance in the specified DataBand. + + The DataBand instance. + The DataHeaderBand instance. + + + + Creates a DataBand instance in the specified ReportPage. + + The ReportPage instance. + The DataBand instance. + + + + Creates a DataFooterBand instance in the specified DataBand. + + The DataBand instance. + The DataFooterBand instance. + + + + Creates a GroupHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The GroupHeaderBand instance. + + + + Creates a GroupFooterBand instance in the cpecified ReportPage. + + The ReportPage instance. + The GroupFooterBand instance. + + + + Creates a ChildBand instance in the specified BandBase. + + The BandBase instance. + The ChildBand instance. + + + + Creates an OverlayBand in the specified ReportPage. + + The ReportPage instance. + The OverlayBand instance. + + + + Creates a Style instance with specified name. + + The name of the Style instance. + The report to add style to. + The Style instance. + + + + Creates a TextObject instance with specified name and parent. + + The name of the TextObject instance. + The parent of the TextObject instance. + The TextObject instance. + + + + Creates a PictureObject instance with specified name and parent. + + The name of the PictureObject instance. + The parent of the PictureObject instance. + The PictureObject instance. + + + + Creates a LineObject instance with specified name and parent. + + The name of the LineObject instance. + The parent of the LineObject instance. + The LineObject instance. + + + + Creates a ShapeObject instance with specified name and parent. + + The name of the ShapeObject instance. + The parent of the ShapeObject instance. + The ShapeObject instance. + + + + Creates a PolyLineObject instance with specified name and parent. + + The name of the PolyLineObject instance. + The parent of the PolyLineObject instance. + The PolyLineObject instance. + + + + Creates a PolygonObject instance with specified name and parent. + + The name of the PolygonObject instance. + The parent of the PolygonObject instance. + The PolygonObject instance. + + + + Creates a SubreportObject instance with specified name and parent. + + The name of the SubreportObject instance. + The parent of the SubreportObject instance. + The SubreportObject instance. + + + + Creates a ContainerObject instance with specified name and parent. + + The name of the ContainerObject instance. + The parent of the ContainerObject instance. + The ContainerObject instance. + + + + Creates a CheckBoxObject instance with specified name and parent. + + The name of the CheckBoxObject instance. + The parent of the CheckBoxObject instance. + The CheckBoxObject instance. + + + + Creates a HtmlObject instance with specified name and parent. + + The name of the HtmlObject instance. + The parent of the HtmlObject instance. + The HtmlObject instance. + + + + Creates a TableObject instance with specified name and parent. + + The name of the TableObject instance. + The parent of the TableObject instance. + The TableObject instance. + + + + Creates a MatrixObject instance with specified name and parent. + + The name of the MatrixObject instance. + The parent of the MatrixObject instance. + The MatrixObject instance. + + + + Creates a BarcodeObject instance with specified name and parent. + + The name of the BarcodeObject instance. + The parent of the BarcodeObject instance. + The BarcodeObject instance. + + + + Creates a ZipCodeObject instance with specified name and parent. + + The name of the ZipCodeObject instance. + The parent of the ZipCodeObject instance. + The ZipCodeObject instance. + + + + Creates a CellularTextObject instance with specified name and parent. + + The name of the CellularTextObject instance. + The parent ot the CellularTextObject instance. + The CellularTextObject instance. + + + + Creates a LinearGauge instance with specified name and parent. + + The name of the LinearGauge instance. + The parent of the LinearGauge instance. + The LinearGauge instance. + + + + Creates a SimpleGauge instance with specified name and parent. + + The name of the SimpleGauge instance. + The parent of the SimpleGauge instance. + The SimpleGauge instance. + + + + Represents the DevExpess import plugin. + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + The DevExpress units converter. + + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + Use this method for fonts, because font size is not stored as multiplied by dpi + + + + + Converts value to Boolean. + + Boolen value as string. + + + + Converts DevExpress Color. + + The DevExpress Color value as string. + The Color value. + + + + Converts DevExpress BackColor. + + The DevExpress BackColor value as string. + The Color value. + + + + Converts the DevExpress BorderDashStyle to LineStyle. + + The DevExpress BorderDashStyle value. + The LineStyle value. + + + + Converts the DevExpress LineStyle to LineStyle. + + The DevExpress LineStyle value. + The LineStyle value. + + + + Converts the DevExpress TextAlignment to HorzAlignment. + + The DevExpress TextAlignment value. + The HorzAlign value. + + + + Converts the DevExpress TextAlignment to VertAlignment. + + The DevExpress TextAlignment value. + The VertAlign value. + + + + Converts the DevExpress ImageSizeMode to PictureBoxSizeMode. + + The ImageSizeMode value as string. + The PictureBoxSizeMode value. + + + + Converts the DevExpress Shape to ShapeKind. + + The DevExpress Shape value as string. + The ShapeKind value. + + + + Converts the DevExpress Barcode.Symbology to Barcode.Barcode. + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Converts the DevExpress border sides to FastReport border sides + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Represents the RDL import plugin. + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + + + + The RDL units converter. + + + The RDL units converter. + + + + + Converts the RDL GradientType to GradientStyle. + + The RDL GradientType value. + The GradientStyle value. + + + + Converts the RDL Chart.Type to SeriesChartType. + + The RDL Chart.Type value. + The SeriesChartType value. + + + + Converts the RDL Chart.Palette to ChartColorPalette. + + The RDL Chart.Palette value. + The RDL ChartColorPalette value. + + + + Converts the RDL Chart.Legend.Position to Legend.Docking and Legend.Alignment. + + The RDL Chart.Legend.Position value. + The Legend instance to convert to. + + + + Converts the RDL Chart.Legend.Layout to LegendStyle. + + The RDL Chart.Legend.Layout value. + The LegendStyle value. + + + + Converts the RDL BorderStyle to ChartDashStyle. + + The RDL BorderStyle value. + The ChartDashStyle value. + + + + Converts the RDL Axis.Visible to AxisEnabled. + + The RDL Axis.Visible value. + The AxisEnabled value. + + + + Converts the RDL TickMarkStyle to TickMarkStyle. + + The RDL TickMarkStyle value. + The TickMarkStyle value. + + + + Converts the RDL Shading to LightStyle. + + The RDL Shading value. + The LightStyle value. + + + + Converts the RDL Boolean to bool value. + + The RDL Boolean value. + The bool value. + + + + Converts the RDL Color to Color. + + The RDL Color value. + The Color value. + + + + Converts the RDL Size to float value. + + The RDL Size value. + The RDL Size units measure. + The float value of RDL Size. + + + + Converts the RDL Size to int value. + + The RDL Size value. + The RDL Size units measure. + The int value of RDL Size. + + + + Converts the RDL Size to millimeters. + + The RDL Size value. + The float value of RDL Size in millimeters. + + + + Converts the RDL Size to pixels. + + The RDL Size value. + The float value of RDL Size in pixels. + + + + Converts the RDL FontStyle to FontStyle. + + The RDL FontStyle value. + The FontStyle value. + + + + Converts the RDL FontSize to float. + + The RDL FontSize value. + The float value of RDL FontSize in points. + + + + Converts the RDL TextAlign to HorzAlign. + + The RDL TextAlign value. + The HorzAlign value. + + + + Converts the RDL TextAlign to VerticalAlign. + + The RDL VerticalAlign value. + The VertAlign value. + + + + Converts the RDL WritingMode to Angle. + + The RDL WritingMode value. + The int value of RDL WritingMode in degree. + + + + Converts the RDL TextAlign to StringAlignment. + + The RDL TextAling value. + The StringAlignment value. + + + + Converts the RDL TextAlign and VerticalAlign to ContentAlignment. + + The RDL TextAlign value. + The RDL VerticalAlign value. + The ContentAlignment value. + + + + Converts the RDL BorderStyle to LineStyle. + + The RDL BorderStyle value. + The LineStyle value. + + + + Converts the RDL Sizing to PictureBoxSizeMode. + + The RDL Sizing value. + The PictureBoxSizeMode value. + + + + The RDL Size units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in points. + + + + + Specifies the units measured in picas. + + + + + Defines the constants used to convert between RDL Size and pixels. + + + To convert pixels to inches, use the code: + inches = pixels / SizeUnitsP.Inch; + To convert inches to pixels, use the code: + pixels = inches * SizeUnitsP.Inch; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in one point. + + + + + The number of pixels in one pica. + + + + + Defines the constants used to convert between RDL Size and millimeters. + + + To convert millimeters to inches, use the code: + inches = millimeters / SizeUnitsM.Inch; + To convert inches to millimeters, use the code: + millimeters = inches * SizeUnitsM.Inch; + + + + + The number of millimeters in one centimeter. + + + + + The number of millimeters in one inch. + + + + + The number of millimeters in one point. + + + + + The number of millimeters in one pica. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the List and Label import plugin. + + + + + Gets the value indicating is the report List and Label template after trying to load it. + + + + + Initializes a new instance of the class. + + + + + + + + The List and Label units converter. + + + + + Converts List and Label units to millimeters. + + The List and Label unit as string. + The value in millimeters. + + + + Converts List and Label units to pixels. + + The List and Label unit as string. + The value in pixels. + + + + Converts List and Label paper orientation. + + The List and Label paper orientation value as string. + Returns true if orientation is landscape. + + + + Converts List and Label bool. + + The List and Label bool value as string. + A bool value. + + + + Converts List and Label text Align. + + The List and Label text Align value as string. + A HorzAlign value. + + + + Convert List and Label LineType to LineStyle. + + The List and Label LineType value as string. + A LineStyle value. + + + + Converts List and Label rounding to float. + + The List and Label rounding value as string. + A float value. + + + + Represents the pages of a prepared report. + + + Prepared page is a page that you can see in the preview window. Prepared pages can be + accessed via property. + The common scenarios of using this object are: + + + Working with prepared pages after the report is finished: load + () or save () pages + from/to a .fpx file, get a page with specified index to work with its objects + (); modify specified page (). + + + + Using the , , + methods while report is generating to produce an output. + + + + + + + + + Gets the number of pages in the prepared report. + + + + + Specifies an action that will be performed on method call. + + + + + Gets or sets a value indicating whether the prepared pages can be uploaded to the file cache. + + + This property is used while report is generating. + Default value for this property is true. That means the prepared pages may be uploaded to + the file cache if needed. To prevent this (for example, if you need to access some objects + on previously generated pages), set the property value to false. + + + + + + + + Adds a source page to the prepared pages dictionary. + + The template page to add. + + Call this method before using AddPage and AddBand methods. This method adds + a page to the dictionary that will be used to decrease size of the prepared report. + + + + + Adds a new page. + + The original (template) page to add. + + Call the method before adding a page. This method creates + a new output page with settings based on page parameter. + + + + + Prints a band with all its child objects. + + The band to print. + true if band was printed; false if it can't be printed + on current page due to its PrintOn property value. + + Call the method before adding a band. + + + + + Gets a page with specified index. + + Zero-based index of page. + The page with specified index. + + + + Gets the size of specified page, in pixels. + + Index of page. + the size of specified page, in pixels. + + + + Replaces the prepared page with specified one. + + The index of prepared page to replace. + The new page to replace with. + + + + Modify the prepared page with new sizes. + + The name of prepared page to reSize. + + + + Removes a page with the specified index. + + The zero-based index of page to remove. + + + + Creates a copy of a page with specified index and inserts it after original one. + + The zero-based index of original page. + + + + Saves prepared pages to a stream. + + The stream to save to. + + + + Saves prepared pages to a .fpx file. + + The name of the file to save to. + + + + Loads prepared pages from a stream. + + The stream to load from. + + + + Loads prepared pages from a .fpx file. + + The name of the file to load from. + + + + Clears the prepared report's pages. + + + + + Creates the pages of a prepared report + + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the OutlineControl class with default settings. + + + + + Represents a Windows Forms control used to preview a report. + + + To use this control, place it on a form and link it to a report using the report's + property. To show a report, call + the Report.Show method: + + report1.Preview = previewControl1; + report1.Show(); + + Use this control's methods such as , etc. to + handle the preview. Call method to clear the preview. + You can specify whether the standard toolbar is visible in the + property. The property allows you to hide/show the statusbar. + + + + + + Occurs when current page number is changed. + + + + + Occurs when Print button clicked. + + + + + Occurs when Export button clicked. + + + + + Gets a reference to the report. + + + + + Obsolete. Gets or sets the color of page border. + + + + + Gets or sets the color of active page border. + + + + + Gets or sets the first page offset from the top left corner of the control. + + + + + Gets or sets a value indicating whether the toolbar is visible. + + + + + Gets or sets a value indicating whether the statusbar is visible. + + + + + Gets or sets a value indicating whether the outline control is visible. + + + + + Specifies the set of buttons available in the toolbar. + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Gets or sets the visual style. + + + + + Gets or sets a value indicating that the BackColor property must be used to draw the background area. + + + By default, the background area is drawn using the color defined in the current UIStyle. + + + + + Gets the preview window's toolbar. + + + + + Gets the preview window's statusbar. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Updates the control appearance and layout on dpi change. + + + + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + If true, makes the new tab active. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Switches to the tab with specified text. + + Text of the tab. + true if the tab with specified text exists, or false if there is no such tab. + + + + Deletes the report tab with specified text. + + The text of the tab. + + + + Checks if the tab with specified text exists. + + The text of the tab. + true if the tab exists. + + + + Displays the text in the status bar. + + Text to display. + + + + Sets the focus to the preview control. + + + + + Prints the current report. + + true if report was printed; false if user cancels the "Print" dialog. + + + + Saves the current report to a .fpx file using the "Save FIle" dialog. + + + + + Saves the current report to a specified .fpx file. + + + + + Saves the current report to a stream. + + + + + Loads the report from a .fpx file using the "Open File" dialog. + + + + + Loads the report from a specified .fpx file. + + + + + Load the report from a stream. + + The stream to load from. + + + + Sends an email. + + + + + Finds the text in the current report using the "Find Text" dialog. + + + + + Finds the specified text in the current report. + + Text to find. + A value indicating whether the search is case-sensitive. + A value indicating whether the search matches whole words only. + true if text found. + + + + Finds the next occurence of text specified in the Find method. + + true if text found. + + + + Navigates to the first page. + + + + + Navigates to the previuos page. + + + + + Navigates to the next page. + + + + + Navigates to the last page. + + + + + Gets or sets the current page number. + + + This value is 1-based. + + + + + Gets the pages count in the current report. + + + + + Gets or sets the zoom factor. + + + 1 corresponds to 100% zoom. + + + + + Zooms in. + + + + + Zooms out. + + + + + Zooms to fit the page width. + + + + + Zooms to fit the whole page. + + + + + Edits the current page in the designer. + + + + + Copies the current page in preview. + + + + + Removes the current page in preview. + + + + + Edits the current report in the designer. + + + + + Edits the watermark. + + + + + Edits the page settings. + + + + + Navigates to the specified position inside a specified page. + + The page number (1-based). + The position inside a page, in pixels. + + + + Clears the preview. + + + + + Refresh the report. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies an action that will be performed on PreparedPages.AddPage method call. + + + + + Do not add the new prepared page if possible, increment the CurPage instead. + + + + + Add the new prepared page. + + + + + Represents a class that contains all parameters of Swiss QR Code. + + + + + IBAN object + + + + + (either EUR or CHF) + + + + + Creditor (payee) information + + + + + Reference information + + + + + Can be null + + + + + Debitor (payer) information + + + + + Amount + + + + + Optional command for alternative processing mode - line 1 + + + + + Optional command for alternative processing mode - line 2 + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR" + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Represents a barcode object. + Represents a barcode object. + + + The instance of this class represents a barcode. Here are some common + actions that can be performed with this object: + + + To select the type of barcode, use the property. + + + + To specify a static barcode data, use the property. + You also may use the or properties + to specify dynamic value for a barcode. + + + + To set a barcode orientation, use the property. + + + + To specify the size of barcode, set the property + to true and use the property to zoom the barcode. + If property is set to false, you need to specify the + size using the Width and + Height properties. + + + + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + + + + + + + + + + + + + + + + Specifies the horizontal alignment of a Barcode object. Works only when autosize is on. + + + + + Specifies that the barcode is aligned to the left of the original layout. + + + + + Specifies that the barcode is aligned to the center of the original layout. + + + + + Specifies that the barcode is aligned to the right of the original layout. + + + + + Gets or sets the barcode type. + + + + + Gets or sets the horizontal alignment of a Barcode object. + + + + + Gets or sets the symbology name. + + + The following symbology names are supported: + + "2/5 Interleaved" + "2/5 Industrial" + "2/5 Matrix" + "Codabar" + "Code128" + "Code39" + "Code39 Extended" + "Code93" + "Code93 Extended" + "EAN8" + "EAN13" + "MSI" + "PostNet" + "UPC-A" + "UPC-E0" + "UPC-E1" + "Supplement 2" + "Supplement 5" + "PDF417" + "Datamatrix" + "QRCode" + + + + + barcode.SymbologyName = "PDF417"; + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + Gets or sets the angle of barcode, in degrees. + + + + + Gets or sets a value that determines whether the barcode should handle its width automatically. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the barcode data. + + + + + Enable or disable of using an expression in Text + + + + + Gets or sets brackets for using in expressions + + + + + Gets or sets a value that indicates if the barcode should display a human-readable text. + + + + + Gets or sets the barcode data. + + + + + Gets or sets padding within the BarcodeObject. + + + + + Gets or sets a zoom of the barcode. + + + + + Gets or sets a value that determines whether it is necessary to hide the object if the + barcode data is empty. + + + + + Gets or sets the text that will be displayed if the barcode data is empty. + + + + + Gets or sets values for forced use of a bitmap image instead of a vector + + + + + Initialize current BarcodeObject as Swiss QR. + + Parameters of swiss qr. + + + + Relocate BarcodeObject based on alignment + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + + Aztec 2D code representation + + Rustam Abdullaev + + + + Compact or full symbol indicator + + + + + Size in pixels (width and height) + + + + + Number of levels + + + + + Number of data codewords + + + + + The symbol image + + + + + The class holds the available options for the AztecWriter + + + + + Representing the minimal percentage of error correction words. + Note: an Aztec symbol should have a minimum of 25% EC words. + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + A simple, fast array of bits, represented compactly by an array of ints internally. + + Sean Owen + + + Flips bit i. + + + bit to set + + + + + Gets the next set. + + first bit to check + index of first bit that is set, starting from the given index, or size if none are set + at or beyond this given index + + + + see getNextSet(int) + + index to start looking for unset bit + index of next unset bit, or if none are unset until the end + + + Sets a block of 32 bits, starting at bit i. + + + first bit to set + + the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + + + Sets a range of bits. + + start of range, inclusive. + end of range, exclusive + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + + start of range, inclusive. + + end of range, exclusive + + if true, checks that bits in range are set, otherwise checks that they are not set + + true iff all bits are set or not set in range, according to value argument + + IllegalArgumentException if end is less than or equal to start + + + + Appends the bit. + + The bit. + + + underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + + + Appends the least-significant bits, from value, in order from most-significant to + least-significant. For example, appending 6 bits from 0x000001E will append the bits + 0, 1, 1, 1, 1, 0 in that order. + + containing bits to append + bits from value to append + + + + Toes the bytes. + + first bit to start writing + array to write into. Bytes are written most-significant byte first. This is the opposite + of the internal representation, which is exposed by BitArray + position in array to start writing + how many bytes to write + + + Reverses all bits in the array. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Erstellt ein neues Objekt, das eine Kopie der aktuellen Instanz darstellt. + + + Ein neues Objekt, das eine Kopie dieser Instanz darstellt. + + + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+
+ Sean Owen + dswitkin@google.com (Daniel Switkin) +
+ + The width of the matrix + + + + The height of the matrix + + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + + row/column dimension of this matrix + + + +

Gets the requested bit, where true means black.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + + value of given bit in matrix + +
+ +

Flips the given bit.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ +
+ The horizontal position to begin at (inclusive) + + The vertical position to begin at (inclusive) + + The width of the region + + The height of the region + +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + + The row to retrieve + + An optional caller-allocated BitArray, will be allocated if null or too small + + The resulting BitArray - this reference should always be used even when passing + your own row + + + + + Sets the row. + + row to set + {@link BitArray} to copy from + + + + Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees + + + + + This is useful in detecting the enclosing rectangle of a 'pure' barcode. + + {left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white + + + + This is useful in detecting a corner of a 'pure' barcode. + + {x,y} coordinate of top-left-most 1 bit, or null if it is all white + + + + These are a set of hints that you may pass to Writers to specify their behavior. + + dswitkin@google.com (Daniel Switkin) + + + + Specifies the width of the barcode image + type: + + + + + Specifies the height of the barcode image + type: + + + + + Don't put the content string into the output image. + type: + + + + + Specifies what character encoding to use where applicable. + type: + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + type: + + + + + Specifies whether to use compact mode for PDF417. + type: + + + + + Don't append ECI segment. + That is against the specification of QR Code but some + readers have problems if the charset is switched from + ISO-8859-1 (default) to UTF-8 with the necessary ECI segment. + If you set the property to true you can use UTF-8 encoding + and the ECI segment is omitted. + type: + + + + + if true, don't switch to codeset C for numbers + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + Generates Aztec 2D barcodes. + + Rustam Abdullaev + + + + Encodes the given binary content as an Aztec symbol + + input data string + Aztec symbol matrix with metadata + + + + Encodes the given binary content as an Aztec symbol + + input data string + minimal percentage of error check words (According to ISO/IEC 24778:2008, + a minimum of 23% + 3 words is recommended) + if non-zero, a user-specified value for the number of layers + + Aztec symbol matrix with metadata + + + + + Defines an container for encoder options + + + + + Gets the data container for all options + + + + + Specifies the height of the barcode image + + + + + Specifies the width of the barcode image + + + + + Don't put the content string into the output image. + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + + + + + Initializes a new instance of the class. + + + + +

This class contains utility methods for performing mathematical operations over + the Galois Fields. Operations use a given primitive polynomial in calculations.

+

Throughout this package, elements of the GF are represented as an {@code int} + for convenience and speed (but at the cost of memory). +

+
+ Sean Owen +
+ + + Create a representation of GF(size) using the given primitive polynomial. + + irreducible polynomial whose coefficients are represented by + * the bits of an int, where the least-significant bit represents the constant + * coefficient + the size of the field + the factor b in the generator polynomial can be 0- or 1-based + * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). + * In most cases it should be 1, but for QR code it is 0. + + + + Builds the monomial. + + The degree. + The coefficient. + the monomial representing coefficient * x^degree + + + + Implements both addition and subtraction -- they are the same in GF(size). + + sum/difference of a and b + + + + Exps the specified a. + + 2 to the power of a in GF(size) + + + + Logs the specified a. + + A. + base 2 log of a in GF(size) + + + + Inverses the specified a. + + multiplicative inverse of a + + + + Multiplies the specified a with b. + + A. + The b. + product of a and b in GF(size) + + + + Gets the size. + + + + + Gets the generator base. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + +

Represents a polynomial whose coefficients are elements of a GF. + Instances of this class are immutable.

+

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+
+ Sean Owen +
+ + + Initializes a new instance of the class. + + the {@link GenericGF} instance representing the field to use + to perform computations + coefficients as ints representing elements of GF(size), arranged + from most significant (highest-power term) coefficient to least significant + if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + + degree of this polynomial + + + + + Gets a value indicating whether this is zero. + + true iff this polynomial is the monomial "0" + + + + coefficient of x^degree term in this polynomial + + The degree. + coefficient of x^degree term in this polynomial + + + + evaluation of this polynomial at a given point + + A. + evaluation of this polynomial at a given point + + + + This produces nearly optimal encodings of text into the first-level of + encoding used by Aztec code. + It uses a dynamic algorithm. For each prefix of the string, it determines + a set of encodings that could lead to this prefix. We repeatedly add a + character and generate a new set of optimal encodings until we have read + through the entire input. + @author Frank Yellin + @author Rustam Abdullaev + + + + + Convert the text represented by this High Level Encoder into a BitArray. + + text represented by this encoder encoded as a + + + + Implements Reed-Solomon encoding, as the name implies. + + Sean Owen + William Rucklidge + + + + State represents all information about a sequence necessary to generate the current output. + Note that a state is immutable. + + + + + Create a new state representing this state with a latch to a (not + necessary different) mode, and then a code. + + + + + Create a new state representing this state, with a temporary shift + to a different mode to output a single value. + + + + + Create a new state representing this state, but an additional character + output in Binary Shift mode. + + + + + Create the state identical to this one, but we are no longer in + Binary Shift mode. + + + + + Returns true if "this" state is better (or equal) to be in than "that" + state under all possible circumstances. + + + + + Contains conversion support elements such as classes, interfaces and static methods. + + + + + Copies an array of chars obtained from a String into a specified array of chars + + The String to get the chars from + Position of the String to start getting the chars + Position of the String to end getting the chars + Array to return the chars + Position of the destination array of chars to start storing the chars + An array of chars + + + + Sets the capacity for the specified List + + The List which capacity will be set + The new capacity value + + + + Converts a string-Collection to an array + + The strings. + + + + + Joins all elements to one string. + + + The separator. + The values. + + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The value. + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The start index. + The end index. + The value. + + + + Generates the Code128 barcode. + + + This barcode supports three code pages: A, B and C. You need to set appropriate code page + in the barcode text, or use the auto encode feature. See the property + for more details. + + This example shows how to configure the BarcodeObject to display Code128 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + + + + + + Gets or sets a value that determines whether the barcode should automatically + use appropriate encoding. + + + You may use this property to encode data automatically. If you set it to false, + you must specify the code page inside the data string. The following control codes are available: + + + Sequence + Code128 control code + + + &A; + START A / CODE A + + + &B; + START B / CODE B + + + &C; + START C / CODE C + + + + &S; + SHIFT + + + &1; + FNC1 + + + &2; + FNC2 + + + &3; + FNC3 + + + &4; + FNC4 + + + The following example shows how to specify control codes: + + BarcodeObject barcode; + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + barcode.Text = "&C;1234&A;ABC"; + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for 2D-barcodes such as PDF417 and Datamatrix. + + + + + Generates the "2/5 Interleaved" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Identcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Leitcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Generates the "ITF-14" barcode. + + + + + Gets or sets the value indicating that vertical bearer bars are needed to draw. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "2/5 Industrial" barcode. + + + + + Generates the "2/5 Matrix" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 extended barcode. + + + + + Generates the Code93 barcode. + + + + + + + + Generates the Code93 extended barcode. + + + + + Generates the 2D Aztec barcode. + + + + + Gets or sets the error correction percent. + + + + + Initializes a new instance of the class with default settings. + + + + + + + + The base class for all barcodes. + + + + + Gets the name of barcode. + + + + + Gets or sets the color of barcode. + + + + + Creates the exact copy of this barcode. + + The copy of this barcode. + + + + Assigns properties from other, similar barcode. + + Barcode object to assign properties from. + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Codabar barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the Datamatrix encoding. + + + + + Specifies the auto encoding. + + + + + Specifies the ASCII encoding. + + + + + Specifies the C40 encoding. + + + + + Specifies the text encoding. + + + + + Specifies the binary encoding. + + + + + Specifies the X12 encoding. + + + + + Specifies the Edifact encoding. + + + + + Specifies the Datamatrix symbol size. + + + + + Specifies the auto size. + + + + + Specifies the 10x10 size. + + + + + Specifies the 12x12 size. + + + + + Specifies the 8x8 size. + + + + + Specifies the 14x14 size. + + + + + Specifies the 8x32 size. + + + + + Specifies the 16x16 size. + + + + + Specifies the 12x26 size. + + + + + Specifies the 18x18 size. + + + + + Specifies the 20x20 size. + + + + + Specifies the 12x36 size. + + + + + Specifies the 22x22 size. + + + + + Specifies the 16x36 size. + + + + + Specifies the 24x24 size. + + + + + Specifies the 26x26 size. + + + + + Specifies the 16x48 size. + + + + + Specifies the 32x32 size. + + + + + Specifies the 36x36 size. + + + + + Specifies the 40x40 size. + + + + + Specifies the 44x44 size. + + + + + Specifies the 48x48 size. + + + + + Specifies the 52x52 size. + + + + + Specifies the 64x64 size. + + + + + Specifies the 72x72 size. + + + + + Specifies the 80x80 size. + + + + + Specifies the 88x88 size. + + + + + Specifies the 96x96 size. + + + + + Specifies the 104x104 size. + + + + + Specifies the 120x120 size. + + + + + Specifies the 132x132 size. + + + + + Specifies the 144x144 size. + + + + + Generates the 2D Data Matrix barcode. + + + + + Gets or sets the symbol size. + + + + + Gets or sets the encoding mode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the size of the pixel. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for EAN barcodes. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the EAN8 barcode. + + + + + Generates the EAN13 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the GS1-128 (formerly known as UCC-128 or EAN-128) barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Intelligent Mail (USPS) barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 2D MaxiCode barcode. + + + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + + + + Initializes a new instance of the class with default settings. + + + + + + + Implements MaxiCode according to ISO 16023:2000. + + MaxiCode employs a pattern of hexagons around a central 'bulls-eye' + finder pattern. Encoding in several modes is supported, but encoding in + Mode 2 and 3 require primary messages to be set. Input characters can be + any from the ISO 8859-1 (Latin-1) character set. + + TODO: Add ECI functionality. + + @author Robin Stuart + @author Daniel Gredler + + + MaxiCode module sequence, from ISO/IEC 16023 Figure 5 (30 x 33 data grid). + + + ASCII character to Code Set mapping, from ISO/IEC 16023 Appendix A. + 1 = Set A, 2 = Set B, 3 = Set C, 4 = Set D, 5 = Set E. + 0 refers to special characters that fit into more than one set (e.g. GS). + + + ASCII character to symbol value, from ISO/IEC 16023 Appendix A. + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + @param mode the MaxiCode mode to use + + + Returns the MaxiCode mode being used. Only modes 2 to 6 are supported. + + @return the MaxiCode mode being used + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the + position of this symbol in the series. Valid values are 1 through 8 inclusive. + + @param position the position of this MaxiCode symbol in the structured append series + + + Returns the position of this MaxiCode symbol in a series of symbols using structured append. If this symbol is not part of + such a series, this method will return 1. + + @return the position of this MaxiCode symbol in a series of symbols using structured append + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the total + number of symbols in the series. Valid values are 1 through 8 inclusive. A value of 1 indicates that this symbol is not + part of a structured append series. + + @param total the total number of MaxiCode symbols in the structured append series + + + Returns the size of the series of MaxiCode symbols using structured append that this symbol is part of. If this symbol is + not part of a structured append series, this method will return 1. + + @return size of the series that this symbol is part of + + + Sets the primary data. Should only be used for modes 2 and 3. Must conform to the following structure: + + + + + + +
CharactersMeaning
1-9Postal code data which can consist of up to 9 digits (for mode 2) or up to 6 + alphanumeric characters (for mode 3). Remaining unused characters should be + filled with the SPACE character (ASCII 32).
10-12Three-digit country code according to ISO-3166.
13-15Three digit service code. This depends on your parcel courier.
+ + @param primary the primary data +
+ + Returns the primary data for this MaxiCode symbol. Should only be used for modes 2 and 3. + + @return the primary data for this MaxiCode symbol + + + {@inheritDoc} + + + Extracts the postal code, country code and service code from the primary data and returns the corresponding primary message + codewords. + + @return the primary message codewords + + + Returns the primary message codewords for mode 2. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Returns the primary message codewords for mode 3. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Formats text according to Appendix A, populating the {@link #set} and {@link #character} arrays. + + @return true if the content fits in this symbol and was formatted; false otherwise + + + Guesses the best set to use at the specified index by looking at the surrounding sets. In general, characters in + lower-numbered sets are more common, so we choose them if we can. If no good surrounding sets can be found, the default + value returned is the first value from the valid set. + + @param index the current index + @param Length the maximum Length to look at + @param valid the valid sets for this index + @return the best set to use at the specified index + + + Moves everything up so that the specified shift or latch character can be inserted. + + @param position the position beyond which everything needs to be shifted + @param c the latch or shift character to insert at the specified position, after everything has been shifted + + + Returns the error correction codewords for the specified data codewords. + + @param codewords the codewords that we need error correction codewords for + @param ecclen the number of error correction codewords needed + @return the error correction codewords for the specified data codewords + + + {@inheritDoc} + + + {@inheritDoc} + + + + Generates the MSI barcode. + + + + + Specifies the error correction level used for PDF417 barcode. + + + + + Indicates that correction level should be calculated automatically. + + + + + Specifies level 0. + + + + + Specifies level 1. + + + + + Specifies level 2. + + + + + Specifies level 3. + + + + + Specifies level 4. + + + + + Specifies level 5. + + + + + Specifies level 6. + + + + + Specifies level 7. + + + + + Specifies level 8. + + + + + Specifies the compaction mode used for PDF417 barcode. + + + + + Indicates that compaction mode should be calculated automatically. + + + + + Specifies the text compaction mode. + + + + + Specifies the numeric compaction mode. + + + + + Specifies the binary compaction mode. + + + + + Generates the 2D PDF417 barcode. + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = PDF417CompactionMode.Text; + + + + + + Gets or sets the barcode aspect ratio. + + + A ratio or 0.5 will make the barcode width twice as large as the height. + + + + + Gets or sets the number of barcode data columns. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the number of barcode data rows. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the error level correction used for the barcode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the compaction mode. + + + + + Gets or sets the size of the pixel. + + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Pharmacode barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + Generates the Plessey barcode. + + + + + Appends the given pattern to the target array starting at pos. + + encode black/white pattern into this array + position to start encoding at in target + lengths of black/white runs to encode + starting color - false for white, true for black + the number of elements added to target. + + + + Generates the PostNet barcode. + + + + + Specifies the QR code error correction level. + + + + + L = ~7% correction. + + + + + M = ~15% correction. + + + + + Q = ~25% correction. + + + + + H = ~30% correction. + + + + + Specifies the QR Code encoding. + + + + + UTF-8 encoding. + + + + + ISO 8859-1 encoding. + + + + + Shift_JIS encoding. + + + + + Windows-1251 encoding. + + + + + cp866 encoding. + + + + + Generates the 2D QR code barcode. + + + + + Gets or sets the error correction. + + + + + Gets or sets the encoding used for text conversion. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E0 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E1 barcode. + + + + + Generates the UPC A barcode. + + + + + Generates the 2-digit supplement barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 5-digit supplement barcode. + + + + + The base class for linear (1D) barcodes. + + + + + Gets or sets a value that determines if the barcode object should calculate + the check digit automatically. + + + + + Gets or sets a relative width of wide bars in the barcode. + + + + + Gets the value indicating that the barcode is numeric. + + + + + Gets or sets a value indicating that leading/trailing whitespaces must be trimmed. + + + true if trim; otherwise, false. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Container object that may contain child objects. + + + + + Gets the collection of child objects. + + + + + This event occurs before the container layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a script event name that will be fired before the container layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + + + + + + + + + + Initializes a new instance of the ContainerObject class with default settings. + + + + + + + + + + + + + + + + + The default field name. + + + + + FastReport json connection + + + + + Name of json object table + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the JsonDataConnection connection string builder. + + + Use this class to parse connection string returned by the JsonDataConnection class. + + + + + Gets or sets json data + + + + + Gets or sets json schema + + + + + Gets or sets json url encoding + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + JsonTableDataSource present a json array object + + + + + Gets or sets value for force update schema on init schema + + + + + + + + + + + + + + + + + + + + + + + This class represents a single data column in a . + + + + + + + + Gets or sets the business object property name which this column is bound to. + + + + + Gets or sets the business object property descriptor which this column is bound to. + + + + + Gets or sets the type of data supplied by this column. + + + + + Gets or sets a value that specifies the type of a control that will be created + when you drop this column on a report page. + + + If you need to specify the custom type, use the property instead. + + + + + Gets or sets a name of custom bindable control. + + + Use this property if you want to bind a column to custom object type. You need to + specify the type name of your object; that object must be registered in FastReport using the + RegisteredObjects.Add method. + + + + + Gets or sets the format of this column. + + + This property is used when you drag a column from the Data window to the report page. + FastReport will create a "Text" object and set its "Format" property to the corresponding format. + By default, this property is set to Auto. It means that the format will be determined + automatically depending on the property. + + + + + Gets or sets expression of the calculated column. + + + This property is used if the property is true. + + + + + Gets or sets a value that indicates whether this column is calculated. + + + You should specify the property for calculated columns. + + + + + Gets the collection of child columns. + + + + + Gets or sets the tag value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Column class with default settings. + + + + + + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all connection editors. This control is used when you edit + the connection in the Data Wizard. + + + + + Gets or sets a connection string. + + + + + This method should construct the connection string from values entered by user. + + The connection string. + + + + This method should parse the connection string and fill the user interface elements. + + The connection string. + + + + Updates the component layout on dpi change. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a connection to xml file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + XmlDataConnection conn = new XmlDataConnection(); + conn.XmlFile = @"c:\data.xml"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .xsd file. + + + + + Gets or sets the path to .xml file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a total that is used to calculate aggregates such as Sum, Min, Max, Avg, Count. + + + + + + + + Gets or sets the total type. + + + + + Gets or sets the expression used to calculate the total. + + + + + Gets or sets the evaluator databand. + + + The total will be calculated for each row of this band. + + + + + This property is kept for compatibility only. + + + + + Gets or sets the band to print the total on. + + + The total will be resetted after the specified band has been printed. + + + + + Gets or sets a value that determines whether the total should be resetted after print. + + + + + Gets or sets a value that determines whether the total should be resetted if printed + on repeated band (i.e. band with "RepeatOnEveryPage" flag). + + + + + Gets or sets the condition which tells the total to evaluate. + + + + + Gets or sets a value that determines if invisible rows of the Evaluator should + be included into the total's value. + + + + + This property is not relevant to this class. + + + + + Gets the value of total. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a datasource based on DataTable class. + + This example shows how to add a new table to the existing connection: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = "Table1"; + conn.Tables.Add(table); + + + + + + + + + Gets or sets the underlying DataTable object. + + + + + Gets or sets the table name. + + + + + Gets or sets SQL "select" command. + + + If this command contains parameters, you should specify them in the + property. + + + + + Gets a collection of parameters used by "select" command. + + + You must set up this property if the SQL query that you've specified in the + property contains parameters. + You can pass a value to the SQL parameter in two ways. + The right way is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the SQL parameter. To do this, set the SQL parameter's Expression property + to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + The other way (unrecommended) is to find a datasource object and set its parameter from a code: + + TableDataSource ds = report.GetDataSource("My DataSource Name") as TableDataSource; + ds.Parameters[0].Value = 10; + + This way is not good because you hardcode the report object's name. + + + + + Gets or sets the parent object. + + + + + Gets or sets a value that determines whether it is necessary to store table data in a report file. + + + + + Gets or sets the table data. + + + This property is for internal use only. + + + + + If set, ignores the Connection (always returns null). Needed when we replace the + existing connection-based datasource with datatable defined in an application. + + + + + Gets or sets the query builder schema. + + + This property is for internal use only. + + + + + + + + + + + + + + + + + Refresh the table schema. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a master-detail relation between two data sources. + + + To setup a relation, you must specify parent and child datasources. For a parent datasource, + you must specify set of key columns; for child datasource, you must specify set of columns that + relate to the parent key columns. + This example shows how to create relation between Customers and Orders tables: + + Report report1; + DataSourceBase customersTable = report1.Dictionary.DataSources.FindByAlias("Customers"); + DataSourceBase ordersTable = report1.Dictionary.DataSources.FindByAlias("Orders"); + Relation rel = new Relation(); + rel.Name = "customersOrders"; + rel.ParentDataSource = customersTable; + rel.ChildDataSource = ordersTable; + rel.ParentColumns = new string[] { "CustomerID" }; + rel.ChildColumns = new string[] { "CustomerID" }; + report1.Dictionary.Relations.Add(rel); + + + + + + + + + + Gets or sets the parent datasource. + + + + + Gets or sets the child datasource. + + + + + Gets or sets an array of parent datasource columns. + + + Note: both and must have the + same number of elements. + + + + + Gets or sets an array of child datasource columns. + + + Note: both and must have the + same number of elements. + + + + + + + + Compares this relation with another one. + + Another relation to compare with. + true if both relations are equal; false otherwise. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to any OLE DB database. + + This example shows how to add a new connection to the report. + + Report report1; + OleDbDataConnection conn = new OleDbDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to any database through ODBC. + + This example shows how to add a new connection to the report. + + Report report1; + OdbcDataConnection conn = new OdbcDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS SQL database. + + This example shows how to add a new connection to the report. + + Report report1; + MsSqlDataConnection conn = new MsSqlDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS Access database (.mdb file). + + This example shows how to add a new connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + Gets or sets the datasource file name. + + + + + Gets or sets the user name. + + + + + Gets or sets the password. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data connection components such as . + + This example shows how to add a new MS Access connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + Gets a string that will identify a connection in the Data Wizard. + + The string that contains the connection type and some meaningful information. + + + + Gets the default type for a new parameter. + + The integer representation of a parameter type. + + + + Gets a control that will be used to edit the connection properties. + + The editor's control. + + + + + + + Tests the connection. + + + If test connection is not successful, this method throws an exception. Catch this exception to + show an error message. + + + + + Gets an internal DataSet object that contains all data tables. + + + + + Gets a collection of data tables in this connection. + + + To add a table to the connection, you must either create a new TableDataSource and add it + to this collection or call the method which will add + all tables available in the database. + + + + + Gets or sets a connection string that contains all connection parameters. + + + To modify some parameter of the connection, use respective + ConnectionStringBuilder class. + Security note: the connection string may contain a user name/password. + This information is stored in a report file. By default, it is crypted using the standard + FastReport's password. Since FastReport's source code is available to anyone who paid for it, + it may be insecure to use the standard password. For more security, you should use own + password. To do this, specify it in the Crypter.DefaultPassword property. + + This example demonstrates how to change a connection string: + + OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(oleDbConnection1.ConnectionString); + builder.PersistSecurityInfo = false; + oleDbConnection1.ConnectionString = builder.ToString(); + + + + + + Gets or sets an expression that returns a connection string. + + + Use this property to set the connection string dynamically. + The recommended way to do this is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the connection. Set the ConnectionStringExpression property of the + connection object to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + + Once you set value for this property, the property will be ignored + when report is run. + + + + + + Gets or sets a value indicates if this connection is SQL-based. + + + + + Gets or sets a value indicating whether a login dialog appears immediately before opening a connection. + + + Set LoginPrompt to true to provide login dialog when establishing a connection. If this + property is false (by default), you should provide login information (user name and password) + in the property. Though that property is stored in a crypted form, + this may be insecure. + Another way to pass login information to the connection is to use + property that is bound to the report parameter. In that + case you supply the entire connection string from your application. + + + + + Gets or sets the command timeout, in seconds. + + + + + + + + Initializes a DataSet instance. + + The DataSet object. + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Disposes a DataSet. + + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Sets the connection string. + + New connection string. + + Use this method if you need to perform some actions when the connection string is set. + + + + + Gets a connection string that contains username and password specified. + + User name. + Password. + + Override this method to pass login information to the connection. Typical implementation + must get the existing , merge specified login information into it + and return the new value. + + + + + + + + + + + + + + + + + + + + + + + + + + Fills the collection with all tables available in the database. + + + This method does not read the table data; to do this, call the + method of each table. + + + + + Fills the collection with all tables available in the database. + + Set to true to initialize each table's schema. + + + + Creates the relations between tables. Applies to XmlDataConnection only. + + + + + Gets an array of table names available in the database. + + An array of strings. + + + + Returns a type of connection. + + Type instance. + + You should override this method if you developing a new connection component. + If your connection component does not use data connection, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override Type GetConnectionType() + { + return typeof(OleDbConnection); + } + + + + + + Returns a connection object. + + The DbConnection instance. + Either creates a new DbConnection instance of type provided by the + method, or returns the application connection if set + in the Config.DesignerSettings.ApplicationConnection. + + + + Opens a specified connection object. + + Connection to open. + + Use this method to open a connection returned by the method. + This method displays a login dialog if your connection has the + property set to true. Once you have entered an user name and password in + this dialog, it will remeber the entered values and will not used anymore in this report session. + + + + + Disposes a connection. + + The connection to dispose. + + + + Returns a object that is specific to this connection. + + The SQL command used to fetch a table data rows. + The connection object. + The select command parameters. + The DbDataAdapter object. + + You should override this method if you are developing a new connection component. In this method, + you need to create the adapter and set its SelectCommand's parameters. + If your connection does not use data adapter, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, + CommandParameterCollection parameters) + { + OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection as OleDbConnection); + foreach (CommandParameter p in parameters) + { + OleDbParameter parameter = adapter.SelectCommand.Parameters.Add(p.Name, (OleDbType)p.DataType, p.Size); + parameter.Value = p.Value; + } + return adapter; + } + + + + + + Gets the type of parameter that is specific to this connection. + + The parameter's type. + + This property is used in the report designer to display available data types when you edit the + connection parameters. For example, the type of OleDbConnection parameter is a OleDbType. + + + + + Quotes the specified DB identifier such as table name or column name. + + Identifier to quote. + The opened DB connection. + The quoted identifier. + + + + Fills the table schema. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table schema. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Fills the table data. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table data. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Creates table. + For internal use only. + + + + + Deletes table. + For internal use only. + + + + + Clone table. + For internal use only. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data components such as data sources, columns. + + + + + + + + Gets or sets alias of this object. + + + Alias is a human-friendly name of this object. It may contain any symbols (including + spaces and national symbols). + + + + + Gets or sets a value indicates that object is enabled and thus can be used in a report. + + + This property is used to hide an object from the Data Dictionary window. Hidden + objects are still accessible in the "Data|Choose Data Source..." menu. + + + + + Gets or sets a name of the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets or sets a reference to the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a value indicates that this object has an alias. + + + + + + + + + + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to csv file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + CsvDataConnection conn = new CsvDataConnection(); + conn.CsvFile = @"c:\data.csv"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of the .csv file. + + + + + Gets or sets the separator of the .csv file. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types fhould be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Obsolete. Specifies a set of flags used to convert business objects into datasources. + + + + + Specifies no actions. + + + + + Allows using the fields of a business object. + + + + + Allows using properties of a business object with BrowsableAttribute only. + + + + + Specifies a kind of property. + + + + + Specifies the property of a simple type (such as integer). + + + + + Specifies the complex property such as class with own properties. + + + + + Specifies the property which is a list of objects (is of IEnumerable type). + + + + + Represents a datasource based on business object of IEnumerable type. + + + Do not use this class directly. To register a business object, use the + Report.RegisterData method. + + + + + Occurs when FastReport engine loads data source with data from a business object. + + + Use this event if you want to implement load-on-demand. Event handler must load the data into + your business object. + + + + + + + + + + + + + + + + + + + + Represents the method that will handle the LoadBusinessObject event. + + The source of the event. + The event data. + + + + Provides data for event. + + + + + Parent object for this data source. + + + + + Specifies the format for the column value. + + + + + The format will be determined automatically depending on the column's DataType. + + + + + Specifies the General format (no formatting). + + + + + Specifies the Number format. + + + + + Specifies the Currency format. + + + + + Specifies the Date format. + + + + + Specifies the Time format. + + + + + Specifies the Percent format. + + + + + Specifies the Boolean format. + + + + + Specifies the type of an object that will be created when you drop the + data column on a report page. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the custom object, specified in the + property. + + + + + Represents the collection of objects. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + Finds a column by its name. + + The name of a column. + The object if found; otherwise null. + + + + Finds a column by its alias. + + The alias of a column. + The object if found; otherwise null. + + + + Returns an unique column name based on given name. + + The base name. + The unique name. + + + + Returns an unique column alias based on given alias. + + The base alias. + The unique alias. + + + + Sorts the collection of columns. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of columns. + + + + + + + + This class represents a single parameter to use in the "select" command. + + + + + Gets or sets the parameter's data type. + + + + + Gets or sets the size of parameter's data. + + + This property is used if the property is set to String. + + + + + Gets or sets an expression that returns the parameter's value. + + + If this property is not set, the property will be used + to obtain a parameter's value. + + + + + Gets or sets a default value for this parameter. + + + This value is used when you designing a report. Also it is used when report is running + in case if you don't provide a value for the property. + + + + + Gets or sets the parameter's value. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + This class is used to store the list of parameters defined in the datasource. See the + property for more details. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a data connection. + + The index of a data connection in this collection. + The data connection with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the CsvDataConnection connection string builder. + + + Use this class to parse connection string returned by the CsvDataConnection class. + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of .csv file. + + + + + Gets or sets the separator. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types should be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified connection string. + + The connection string. + + + + Base class for all CubeSources such as . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a CubeSource by its name. + + The name of a CubeSource. + The object if found; otherwise null. + + + + Finds a CubeSource by its alias. + + The alias of a CubeSource. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Base class for all datasources such as . + + + + + Occurs when the FastReport engine loads data source with data. + + + Use this event if you want to implement load-on-demand. Event handler must load the data + into the data object which this datasource is bound to (for example, the + TableDataSource uses data from the DataTable object bound to + the Table property). + + + + + Gets a number of data rows in this datasource. + + + You should initialize the datasource by the Init method before using this property. + + + + + Gets a value indicating that datasource has more rows, that is the + is less than the . + + + You should initialize the datasource by the Init method before using this property. + Usually this property is used with the following code block: + + dataSource.Init(); + while (dataSource.HasMoreRows) + { + // do something... + dataSource.Next(); + } + + + + + + Gets the current data row. + + + This property is updated when you call the method. + + + + + Gets an index of current data row. + + + You should initialize the datasource by the Init method before using this property. + This property is updated when you call the method. + + + + + Gets data stored in a specified column. + + Alias of a column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Gets data stored in a specified column. + + The column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Forces loading of data for this datasource. + + + This property is false by default. Set it to true if you need to reload data + each time when the datasource initialized. Note that this may slow down the performance. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the additional filter settings. + + + + + Gets data stored in a specified column. + + The column alias. + An object that contains the data. + + + + Gets data stored in a specified column. + + The column. + An object that contains the data. + + + + Initializes the datasource schema. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + + + + Loads the datasource with data. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + Rows to fill with data. + + + + Initializes this datasource. + + + This method fills the table with data. You should always call it before using most of + datasource properties. + + + + + Initializes this datasource and applies the specified filter. + + The filter expression. + + + + Initializes this datasource, applies the specified filter and sorts the rows. + + The filter expression. + The collection of sort descriptors. + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. + + Parent datasource. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. Also applies the specified filter and sorts the rows. + + Parent datasource. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation. + Also applies the specified filter and sorts the rows. + + The master-detail relation. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes the data source if it is not initialized yet. + + + + + Navigates to the first row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the next row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the prior row. + + + You should initialize the datasource by the Init method before using this method. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a datasource by its name. + + The name of a datasource. + The object if found; otherwise null. + + + + Finds a datasource by its alias. + + The alias of a datasource. + The object if found; otherwise null. + + + + Sorts data sources by theirs names. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of data sources. + + + + + + + + Determines how to filter the data value. + + + The "Data value" is a value contained in the datasource which you filter. + The "Selected value" is a value you have entered or selected in the dialog control. + + + + + Data value is equal to selected value. + + + + + Data value is not equal to selected value. + + + + + Data value is less than selected value. + + + + + Data value is less than or equal to selected value. + + + + + Data value is greater than selected value. + + + + + Data value is greater than or equal to selected value. + + + + + Data string contains selected value. + + + + + Data string does not contain selected value. + + + + + Data string starts with selected value. + + + + + Data string does not start with selected value. + + + + + Data string ends with selected value. + + + + + Data string does not end with selected value. + + + + + This class stores all report data items such as datasources, connections, relations, parameters, + system variables. + + + You can access the report dictionary via Report.Dictionary property. + + + + + Gets a collection of connection objects available in a report. + + + + + Gets a collection of datasources available in a report. + + + Usually you don't need to use this property. It contains only datasources + registered using the RegisterData method. All other datasources are contained + in connection objects and may be accessed via property. + + + + + Gets a collection of relations. + + + + + Gets a collection of parameters. + + + Another way to access parameters is to use the Report.Parameters property + which is actually a shortcut to this property. You also may use the Report.GetParameter + and Report.GetParameterValue methods. + + + + + Gets a collection of system variables like Date, PageNofM etc. + + + Another way to access a system variable is to use the Report.GetVariableValue method. + + + + + Gets a collection of totals. + + + Another way to get a total value is to use the Report.GetTotalValue method. + + + + + Gets a collection of cubesources available in a report. + + + Usually you don't need to use this property. It contains only cubesources + registered using the RegisterData method. + + + + + Gets a list of registered items. + + + This property is for internal use only. + + + + + + + + Registers a DataView. + + The DataView to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a business object. + + The business object. + The name of the object. + Maximum level of data nesting. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a CubeLink. + + The CubeLink to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a data object. + + The object to register. + The name of the object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Unregisters the previously registered data. + + The application data. + + + + Unregisters the previously registered data. + + The application data. + The name of the data. + + You must specify the same data and name as when you call RegisterData. + + + + + Re-registers the data registered before. + + + This method is for internal use only. + + + + + Re-registers the data registered before. + + + + + + Clears all registered data. + + + + + Enables or disables relations between data tables. + + + Call this method if you create master-detail report from code. This method enables + relation between two data tables which Enabled flag is set to true. Relations + whose parent and child tables are disabled, gets disabled too. + + + + + Creates unique name for data item such as connection, datasource, relation, parameter or total. + + The base name. + The new unique name. + + Use this method to create unique name of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new parameter: + + Report report1; + Parameter par = new Parameter(); + par.Name = report1.Dictionary.CreateUniqueName("Parameter"); + report1.Parameters.Add(par); + + + + + + + Creates unique alias for data item such as connection, datasource or relation. + + The base alias. + The new unique alias. + + Use this method to create unique alias of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new table: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = report1.Dictionary.CreateUniqueName("EmployeesTable"); + table.Alias = report1.Dictionary.CreateUniqueAlias("Employees"); + conn.Tables.Add(table); + + + + + + + Finds a data item such as connection, datasource, relation, parameter or total by its name. + + The item's name. + The data item if found; otherwise, null. + + + + Finds a data item such as connection, datasource or relation by its alias. + + The item's alias. + The data item if found; otherwise, null. + + + + Finds a datasource that matches the specified DataTable. + + The DataTable object to check. + The DataSourceBase object if found. + + This method is for internal use only. + + + + + Finds a data component that matches the specified reference name. + + The name to check. + The DataComponentBase object if found. + + This method is for internal use only. + + + + + + + + + + + Saves the dictionary to a stream. + + Stream to save to. + + + + Saves the dictionary to a file. + + The name of a file to save to. + + + + Loads the dictionary from a stream. + + The stream to load from. + + + + Loads the dictionary from a file. + + The name of a file to load from. + + + + Merges this dictionary with another Dictionary. + + Another dictionary to merge the data from. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the item registered in a dictionary. + + + + + Gets the item data. + + + + + Gets the item name. + + + + + Represents a report parameter that is used to pass user data to a report. + + + See for details about using parameters. + + + + + Gets or sets the name of parameter. + + + + + Gets or sets the type of parameter. + + + + + Gets or sets the value of parameter. + + + You may specify the static value in this property. Note: if the + property is not empty, it will be calculated and its value will be returned. + + + + + Gets or sets value of the parameter as a string. + + + + + Gets or sets an expression of the parameter. + + + This expression will be calculated each time you access a parameter's Value. + + + + + Gets or sets the description of a parameter. + + + + + Gets a collection of nested parameters. + + + Parameters can have child (nested) parameters. To get or set a nested + parameter's value, use the method. + + + + + Gets the full name of the parameter. This is useful to get the nested parameter's full name. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified name. + + + + + Represents the collection of objects. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Copies the parameters from other collection. + + Parameters to copy from. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a relation. + + The index of a relation in this collection. + The relation with specified index. + + + + Finds a relation by its name. + + The name of a relation. + The object if found; otherwise null. + + + + Finds a relation by its alias. + + The alias of a relation. + The object if found; otherwise null. + + + + Finds a relation that is equal to specified one. + + Another relation to compare with. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Represents the collection of system variables. + + + + + Represents the base class for system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Returns date and time of the report's start. + + + + + + + + Returns current page number. + + + + + + + + Returns total number of pages in the report. To use this variable, you need + to enable the report's double pass. + + + + + + + + Returns a string containing the current page number in a form "Page N". + + + + + + + + Returns a string containing the current page number and total pages in a form "Page N of M". + To use this variable, you need to enable the report's double pass. + + + + + + + + Returns data row number inside the group. This value is reset at the start of a new group. + + + + + + + + Returns absolute number of data row. This value is never reset at the start of a new group. + + + + + + + + Returns current page number. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the number of total pages in the report. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the name of the printed copy. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns a level of hierarchy in the hierarchical report. + + + + + + + + Returns the row number like "1.2.1" in the hierarchical report. + + + + + + + + Represents the collection of objects. + + + + + Gets or sets a data table. + + The index of a data table in this collection. + The data table with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Specifies the total type. + + + + + The total returns sum of values. + + + + + The total returns minimal value. + + + + + The total returns maximal value. + + + + + The total returns average value. + + + + + The total returns number of values. + + + + + The total returns number of distinct values. + + + + + Represents the collection of objects. + + + + + Gets or sets a total. + + The index of a total in this collection. + The total with specified index. + + + + Finds a total by its name. + + The name of a total. + The object if found; otherwise null. + + + + Returns an unique total name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Gets the underlying DataView object. + + + + + + + + + + + + + + + + + Represents the XmlDataConnection connection string builder. + + + Use this class to parse connection string returned by the XmlDataConnection class. + + + + + Gets or sets the path to .xml file. + + + + + Gets or sets the path to .xsd file. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + Allows working with JsonObject + + + + + Returns child object for JsonArray + + + + + + + Returns child object for JsonObject + + + + + + + Returns count of child object + + + + + Returns true if this object is JsonArray + + + + + Returns true if this object is JsonObject + + + + + Returns list of JsonObject keys + + + + + Pars json text string and return a new JsonBase Object + + + + + + + returns true + + + + + + + Serialize this object to sb + + + + indent in space, 0 = without indent + + + + Based on code of Stefan Bцther, xprocs@hotmail.de + + + + + Contains standard functions registered in the "Data" window. + + + + + Returns the larger of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the smaller of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns an integer value representing the character code corresponding to a character. + + Character to convert. + The character code. + + + + Returns the character associated with the specified character code. + + Character code to convert. + The character. + + + + Inserts a specified string at a specified index position in the original string. + + The original string. + The index position of the insertion. + The string to insert. + A new string. + + + + Gets the number of characters in a string. + + The original string. + The number of characters. + + + + Converts a specified string to lowercase. + + The string to convert. + A string in lowercase. + + + + Right-aligns the characters in a string, padding with spaces on the left for a specified total length. + + The original string. + The number of characters in the resulting string. + Right-aligned string, padded on the left with spaces. + + + + Right-aligns the characters in a string, padding on the left with a specified character + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Right-aligned string, padded on the left with padding characters. + + + + Left-aligns the characters in a string, padding with spaces on the right, for a specified total length. + + The original string. + The number of characters in the resulting string. + Left-aligned string, padded on the right with spaces. + + + + Left-aligns the characters in a string, padding on the right with a specified character, + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Left-aligned string, padded on the right with padding characters. + + + + Converts the specified string to titlecase. + + The string to convert. + A new string. + + + + Deletes all the characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + A new string. + + + + Deletes a specified number of characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + The number of characters to delete. + A new string. + + + + Replaces all occurrences of a specified string in the original string, with another specified string. + + The original string. + A string to be replaced. + A string to replace all occurrences of oldValue. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position. + + The original string. + The starting character position of a substring. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position, + with a specified length. + + The original string. + The starting character position of a substring. + The number of characters in the substring. + A new string. + + + + Removes all occurrences of white space characters from the beginning and end of the original string. + + The original string. + A new string. + + + + Converts a specified string to uppercase. + + The string to convert. + A string in uppercase. + + + + Adds the specified number of days to the original date. + + The original date. + A number of whole and fractional days. + A new DateTime value. + + + + Adds the specified number of hours to the original date. + + The original date. + A number of whole and fractional hours. + A new DateTime value. + + + + Adds the specified number of minutes to the original date. + + The original date. + A number of whole and fractional minutes. + A new DateTime value. + + + + Adds the specified number of months to the original date. + + The original date. + A number of months. + A new DateTime value. + + + + Adds the specified number of seconds to the original date. + + The original date. + A number of whole and fractional seconds. + A new DateTime value. + + + + Adds the specified number of years to the original date. + + The original date. + A number of years. + A new DateTime value. + + + + Subtracts the specified date and time from the original date. + + The original date. + The date and time to subtract. + A TimeSpan interval between two dates. + + + + Initializes a new instance of the DateTime. + + The year. + The month. + The day. + A new DateTime value. + + + + Gets the day of the month. + + The date value. + The day component. + + + + Gets the localized name of the day of the week. + + The date value. + The name of the day of the week. + + + + Gets the day of the year. + + The date value. + The day of the year. + + + + Returns the number of days in the specified month and year. + + The year. + The month. + The number of days in month for the specified year. + + + + Gets the hour component of the date. + + The date. + The hour component. + + + + Gets the minute component of the date. + + The date. + The minute component. + + + + Gets the month component of the date. + + The date. + The month component. + + + + Gets the localized month name. + + The month number. + The month name. + + + + Gets the seconds component of the date. + + The date. + The seconds component. + + + + Gets the week of the year. + + The date value. + The week of the year. + + + + Gets the year component of the date. + + The date. + The year component. + + + + Replaces the format item in a specified String with the text equivalent of the value of a + corresponding Object instance in a specified array. + + A String containing zero or more format items. + An Object array containing zero or more objects to format. + A copy of format in which the format items have been replaced by the String equivalent of the corresponding instances of Object in args. + + + + Returns a string formatted as a currency value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a currency value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The format specifier, one of the + "Long Date", "Short Date", "Long Time", "Short Time" values. + The formatted string. + + + + Returns a string formatted as a numeric value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a numeric value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a percent value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a percent value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Converts a numeric value to Roman string representation. + + Integer value in range 0-3998. + The string in Roman form. + + + + Converts a currency value to an english (US) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (US) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (US) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (GB) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a russian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "страница". + The name in plural form, for example "страницы". + The name in plural form, for example "страниц". + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a german string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a french string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a dutch string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + the currency value to convert + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "INR". + + + + + Converts a numeric value to a indian numbering system string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a currency value to a ukrainian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "UAH". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "сторінка". + The name in plural form, for example "сторінки". + The name in plural form, for example "сторінок". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a spanish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a persian representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a polish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Selects and returns a value from a list of arguments. + + A value between 1 and the number of elements passed in the "choice" argument. + Object parameter array. + One of the values in the "choice" argument. + + + + Returns one of two objects, depending on the evaluation of an expression. + + The expression you want to evaluate. + Returned if Expression evaluates to True. + Returned if Expression evaluates to False. + Either truePart os falsePart. + + + + Evaluates a list of expressions and returns a value corresponding to the first + expression in the list that is True. + + Parameter array consists of paired expressions and values. + The value corresponding to an expression which returns true. + + + + Checks if the specified object is null. + + The report instance. + Either a name of DB column, or a parameter name, or a total name to check. + true if the object's value is null. + + + + The FastReport.dll assembly initializer. + + + + + Registers all standard objects, wizards, export filters. + + + + + Base class for all bands. + + + + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This event occurs before the band layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a value indicating that the band should be printed from a new page. + + + New page is not generated when printing very first group or data row. This is made to avoid empty + first page. + + + + + Gets or sets a value that determines the number of repetitions of the same band. + + + + + Gets or sets a value indicating that the first row can start a new report page. + + + Use this property if is set to true. Normally the new page + is not started when printing the first data row, to avoid empty first page. + + + + + Gets or sets a value indicating that the band should be printed on the page bottom. + + + + + Gets or sets a value indicating that the band should be printed together with its child band. + + + + + Gets or sets an outline expression. + + + + Outline is a tree control displayed in the preview window. It represents the prepared report structure. + Each outline node can be clicked to navigate to the item in the prepared report. + + + To create the outline, set this property to any valid expression that represents the outline node text. + This expression will be calculated when band is about to print, and its value will be added to the + outline. Thus, nodes' hierarchy in the outline is similar to the bands' hierarchy + in a report. That means there will be the main and subordinate outline nodes, corresponding + to the main and subordinate bands in a report (a report with two levels of data or with groups can + exemplify the point). + + + + + + Gets or sets a child band that will be printed right after this band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + Gets a collection of report objects belongs to this band. + + + + + Gets a value indicating that band is reprinted on a new page. + + + This property is applicable to the DataHeaderBand and GroupHeaderBand only. + It returns true if its RepeatOnAllPages property is true and band is + reprinted on a new page. + + + + + Gets or sets a script event name that will be fired before the band layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + Gets or sets collection of guide lines for this band. + + + + + Gets a row number (the same value returned by the "Row#" system variable). + + + This property can be used when running a report. It may be useful to print hierarchical + row numbers in a master-detail report, like this: + 1.1 + 1.2 + 2.1 + 2.2 + To do this, put the Text object on a detail data band with the following text in it: + [Data1.RowNo].[Data2.RowNo] + + + + + Gets an absolute row number (the same value returned by the "AbsRow#" system variable). + + + + + Gets a value indicating that this is the first data row. + + + + + Gets a value indicating that this is the last data row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Specifies an origin where the new objects inserted from. + + + + + Specifies that a new object was inserted from the "Objects" toolbar or "Insert" menu. + + + + + Specifies that a new object was dragged from the "Dictionary" window. + + + + + Specifies that a new object was pasted from the clipboard. + + + + + Represents the root class of the FastReport object's hierarhy. + + + + + Gets a value indicating whether the object is selected in the designer. + + + + + Gets a value indicating whether one of the object's parent is selected in the designer. + + + + + Deletes the object in the designer. + + + This method is called when you delete the object in the designer. + Typically this method calls the method to delete the object and all + its children. You may override it to delete the object only, and keep children. + + + + + Called before inserting a new object in the designer. + + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + Some objects are registered in the designer several times with the same object + type, but different flags. For example, the + represents different shapes: rectangle, roundrect, ellipse and so on. All these + shapes are registered in the designer using flags (the last parameter in this + code): + + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 108, "Objects,Shapes,Rectangle", 0); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 109, "Objects,Shapes,RoundRectangle", 1); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 110, "Objects,Shapes,Ellipse", 2); + + When we put the "Ellipse" object on a band, the designer creates the + ShapeObject instance and calls its OnBeforeInsert method with + flags value set to 2. In turn, the OnBeforeInsert method converts the + int value of the flags to the shape kind: + + public override void OnBeforeInsert(int flags) + { + FShape = (ShapeKind)flags; + } + + + + Object's flags. + + + + Called after the new object was inserted in the designer. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + This method is called when new object is inserted, pasted from clipboard or dragged from + "Dictionary" window. You may override this method if you need to perform some actions when object + is inserted. Typical implementation invokes the object's editor if "Edit after insert" flag is set + in the designer options. + + The insertion source. + + + + Called when the user selects another object in the designer. + + + This method is typically used by the in-place object's editor to check if selection was changed and close + the editor. + + + + + Gets the object's context menu. + + Null reference if object does not have a menu. + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + You may use base menu classes such as , + to create own context menus. + + + + + Gets or sets the name of the object. + + + Name of the report object must contain alpha, digit, underscore symbols only. + Data objects such as Variable, TableDataSource + etc. can have any characters in they names. Each component must have unique + name. + + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + + + Another object with such name exists. + Rename an object that was introduced in the ancestor report. + + + + Gets or sets the flags that restrict some actions in the designer. + + + Use this property to restrict some user actions like move, resize, edit, delete. For example, if + Restriction.DontMove flag is set, user cannot move the object in the designer. + + + + + Gets the flags that allow some functionality in the designer. + + + Use this property only if you developing a new FastReport object. + + + + + Gets or sets the parent of the object. + + + Each report object must have a parent in order to appear in the report. Parent must be able to + contain objects of such type. + Another way (preferred) to set a parent is to use specific properties of the parent object. + For example, the object has the collection. + To add a new page to the report, use the following code: report1.Pages.Add(new ReportPage()); + + + + Report report1; + ReportPage page = new ReportPage(); + page.Parent = report1; + + Parent object cannot contain this object. + + + + The base part of the object's name. + + + This property is used to automatically create unique object's name. See + + + + + Gets the short type name. + + + Returns the short type name, such as "TextObject". + + + + + Gets reference to the parent object. + + + + + Gets reference to the parent object. + + + + + Gets the collection of this object's child objects. + + + This property returns child objects that belongs to this object. For example, Report.ChildObjects + will return only pages that contains in the report, but not page childs such as bands. To return all + child objects, use property. + + + + + Gets the collection of all child objects. + + + This property returns child objects that belongs to this object and to child objects of this object. + For example, Report.AllObjects will return all objects that contains in the report - such as + pages, bands, text objects. + + + + + Gets or sets the Z-order of the object. + + + The Z-order is also called "creation order". It is the index of an object in the parent's objects list. + For example, put two text objects on a band. First object will have ZOrder = 0, second = 1. Setting the + second object's ZOrder to 0 will move it to the back of the first text object. + + + + + Gets a value indicating whether the object was introduced in the ancestor report. + + + + + Gets a value indicating whether the object is in the design state. + + + + + Gets a value indicating whether the object is currently printing. + + + + + Gets a value indicating whether the object is currently processed by the report engine. + + + + + Gets an original component for this object. + + + This property is used in the preview mode. Each object in the prepared report is bound to its + original (from the report template). This technique is used to minimize the prepared report's size. + + + + + Helper method, helps to set a reference-type value to the property. + + Old property value. + New property value. + + This method is used widely to set a new value to the property that references another FastReport object. + Method deals with the property. + + This is example of the DataBand.Header property: + public DataHeaderBand Header + { + get { return FHeader; } + set + { + SetProp(FHeader, value); + FHeader = value; + } + } + + + + + Checks if two float values are different. + + First value. + Second value. + true if values are not equal. + + This method is needed to compare two float values using some precision (0.001). It is useful + to compare objects' locations and sizes for equality. + + + + + Deserializes nested object properties. + + Reader object. + + Typically the object serializes all properties to the single xml item: + + <TextObject Name="Text2" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + + Some objects like have child objects that serialized in subitems: + + <DataBand Name="Data1" Top="163" Width="718.2" Height="18.9"> + <TextObject Name="Text3" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + </DataBand> + + To read such subitems, the DeserializeSubItems method is used. Base + implementation reads the child objects. You may override it to read some specific subitems. + + The following code is used to read report's styles: + + protected override void DeserializeSubItems(FRReader reader) + { + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else + base.DeserializeSubItems(reader); + } + + + + + + Replaces the macros in the given string and returns the new string. + + The text containing macros. + The text with macros replaced with its values. + + + + + + + Set object's flags. + + Flag to set. + true to set the flag, false to reset. + + + + Sets the reference to a Report. + + Report to set. + + + + Sets the object's name. + + + This method is for internal use only. It just sets a new name without any checks + (unlike the property setter). + + Name Property + New name. + + + + Sets the object's parent. + + + This method is for internal use only. You can use it if you are developing a new + component for FastReport. Override it to perform some actions when the parent of an + object is changing. This method checks that parent can contain a child. + + Parent object cannot contain this object. + New parent. + + + + Sets the object's parent. + + New parent. + + This method is for internal use only. You can use it if you are developing a new component for FastReport. + This method does not perform any checks, it just sets the new parent. + + + + + Searches for an object with given name. + + Name of the object to find. + Returns a null reference if object is not found + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + if (text1 != null) + { + // object found + } + + + + + + Creates the unique object's name. + + + Note: you have to set object's parent before calling this method. Method uses the + property to create a name. + Note: this method may be very slow on a report that contains lots of objects. Consider + using own naming logic in this case. + + + + TextObject textObj = new TextObject(); + dataBand1.Objects.Add(textObj); + textObj.CreateUniqueName(); + + + + + + Clears the object's state. + + + This method also disposes all object's children. + + + + + Serializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to save the state. It may happen + when: + + + saving the report to the file or stream; + + + saving the report to the designer's undo buffer; + + + + assigning the object to another object using the + or AssignAll methods; + + + + saving the object to the designer's clipboard; + + + saving the object to the preview (when run a + report). + + + + Writer object. + + + + Deserializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to restore the state. It may + happen when: + + + loading the report from a file or stream; + + + loading the report from the designer's undo + buffer; + + + assigning another object to this object using the + or AssignAll methods; + + + loading the object from the designer's + clipboard; + + loading the object from the preview pages. + + + Reader object. + + + + Assigns values from another source. + + + Note: this method is relatively slow because it serializes + an object to the xml and then deserializes it. + + Source to assign from. + + + Copies the contents of another, similar object. + + Call Assign to copy the properties from another object of the same type. + The standard form of a call to Assign is + destination.Assign(source); + + which tells the destination object to copy the contents of the + source object to itself. In this method, all child objects are + ignored. If you want to copy child objects, use the + AssignAll method. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings, do not copy report objects + report2.Assign(report1); + + AssignAll Method + Source object to copy the contents from. + + + Copies the contents (including children) of another, similar object. + + + This method is similar to method. It copies child + objects as well. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings and objects + report2.AssignAll(report1); + + + Source object to copy the state from. + + + + Gets a value indicating whether the object has the specified parent in its parent hierarhy. + + Parent object to check. + Returns true if the object has given parent in its parent hierarhy. + + + + Gets a value indicating whether the object has a specified flag in its property. + + Flag to check. + true if Flags property contains specified flag. + + + + Gets a value indicating whether the object has a specified restriction + in its property. + + Restriction to check. + true if Restrictions property contains specified restriction. + + + + Invokes script event. + + Name of the event to invoke. + Event parameters. + + Do not call this method directly. You should use it if you are developing a new component + for FastReport. + Use this method to call an event handler that is located in the report's script. + + Example of the OnBeforePrint method: + public void OnBeforePrint(EventArgs e) + { + if (BeforePrint != null) + BeforePrint(this, e); + InvokeEvent(BeforePrintEvent, e); + } + + + + + Called after all report objects were loaded. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + + + + + Gets all expressions contained in the object. + + Array of expressions or null if object contains no expressions. + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + This method is called by FastReport each time before run a report. FastReport + do this to collect all expressions and compile them. For example, + GetExpressions method of the class + parses the text and returns all expressions found in the text. + + + + + + Returns a custom code that will be added to the report script before report is run. + + A custom script text, if any. Otherwise returns null. + + This method may return any valid code that may be inserted into the report script. Currently it is + used in the TableObject to define the following script methods: Sum, Min, Max, Avg, Count. + + + Note: you must take into account the current script language - C# or VB.Net. You may check it via + Report.ScriptLanguage property. + + + + + + Used to extract macros such as "TotalPages#" in the preview mode. + + + This method is used mainly by the TextObject to extract macros and replace it with + actual values passed in the pageIndex and totalPages parameters. This method + is called automatically when the object is being previewed. + + + + + Used to get information of the need to convertation if the function returns true, then the GetConvertedObjects function is called + + The export or the object, that call this method + By default returns false + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Used to get an enumeration of the objects to which this object will be converted, before calling this function, the IsHaveToConvert function will be called + + By default returns this object + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Gets the collection of all child objects, converts objects if necessary + + the object or export, that call this convertation + + + + Initializes a new instance of the Base class with default settings. + + + + + This class represents the context menu of the . + + + This class adds the "Can Break" menu item to the component context menu. + + + + + The "Can Break" menu item. + + + + + Initializes a new instance of the BreakableComponentMenu class with default settings. + + + + + Represents a text object which draws each symbol of text in its own cell. + + + The text may be aligned to left or right side, or centered. Use the + property to do this. The "justify" align is not supported now, as well as vertical alignment. + The cell size is defined in the and properties. + These properties are 0 by default, in this case the size of cell is calculated automatically based + on the object's Font. + To define a spacing (gap) between cells, use the and + properties. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets or sets the width of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the height of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the horizontal spacing between cells, in pixels. + + + + + Gets or sets the vertical spacing between cells, in pixels. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents a check box object. + + + + + + + + + + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the unchecked state. + + + + + Gets or sets a color of the check symbol. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "[Datasource.Column]". + + + + + Gets or sets an expression that determines whether to show a check. + + + + + Gets or sets the check symbol width ratio. + + + Valid values are from 0.2 to 2. + + + + + Gets or sets a value determines whether to hide the checkbox if it is in the unchecked state. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the CheckBoxObject class with default settings. + + + + + This class represents a child band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + + + + + + + Gets or sets a value indicating that band will be used to fill unused space on a page. + + + If you set this property to true, the band will be printed several times to fill + unused space on a report page. + + + + + Gets or sets a value that determines the overall number of data rows printed by the data band. + + + Using this property, you may complete the data band upto N data rows. + If the data band has less number of rows, this band will be used to print empty rows. + + + + + Gets or sets a value indicating that the band will be printed if its parent databand is empty. + + + The child band with this property set to true, connected to a databand can be used to print "No data" + text if the databand has no rows. + + + + + + + + + + + Returns true, if compilation is successful + + + + + Handle compile errors + + Returns true if all errors were handled + + + + Returns true, if recompilation is successful + + + + + This class is used to pass find arguments to some methods of the CodeUtils class. + + + + + The start position of the search. After the search, this property points to + the begin of an expression. + + + + + After the search, this property points to the end of an expression. + + + + + The char sequence used to find the expression's begin. + + + + + The char sequence used to find the expression's end. + + + + + The text with embedded expressions. + + + + + The last found expression. + + + + + This static class contains methods that may be used to find expressions embedded + in the object's text. + + + + + Returns expressions found in the text. + + Text that may contain expressions. + The char sequence used to find the start of expression. + The char sequence used to find the end of expression. + Array of expressions if found; otherwise return an empty array. + + + + Gets first expression found in the text. + + Object with find arguments. + Indicates whether to skip strings. + The expression if found; otherwise, returns an empty string. + + + + Class that implements some object's properties such as location, size and visibility. + + + + + Corrects the object's size and sizing point if the size becomes negative. + + Current mouse state. + Typically you don't need to use or override this method. + This method is called by the FastReport designer to check if the object's size becomes negative + when resizing the object by the mouse. Method must correct the object's size and/or position to + make it positive, also change the sizing point if needed. + + + + Checks if the object is inside its parent. + + if true, check now independent of any conditions. + + Typically you don't need to use or override this method. + When you move an object with the mouse, it may be moved outside its parent. If so, this method + must find a new parent for the object and correct it's Left, Top and Parent + properties. If immediately parameter is false, you can optimize the method + to search for new parent only if the object's bounds are outside parent. If this parameter is + true, you must skip any optimizations and search for a parent immediately. + + + + + Draws the object. + + Paint event args. + + This method is widely used in the FastReport. It is called each time when the object needs to draw + or print itself. + In order to draw the object correctly, you should multiply the object's bounds by the scale + parameter. + cache parameter is used to optimize the drawing speed. It holds all items such as + pens, fonts, brushes, string formats that was used before. If the item with requested parameters + exists in the cache, it will be returned (instead of create new item and then dispose it). + + + + + Draw the frame around the object to indicate that it accepts the drag&drop operation. + + Paint event args. + The color of frame. + + + + Draw the selection points. + + Paint event args. + + This method draws a set of selection points returned by the method. + + + + + + + + Gets the preferred size of an object. + + Preferred size. + + This method is called by the FastReport designer when you insert a new object. + + + + + Returns a "smart tag" menu. + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + + + Handles double click event in the designer. + + + This method is called when the user doubleclicks the object in the designer. Typical implementation + invokes the object's editor (calls the InvokeEditor method) and sets the designer's + Modified flag. + + + + + Handles the DragDrop event in the designer. + + Current mouse state. + + This method is called when the user drops an item from the Data Tree window into this object. + This method should copy the information from the e.DraggedObject object and set the + e.Handled flag to true to complete the drag operation. + + + + + Handles the DragOver event in the designer. + + Current mouse state. + + This method is called when the user drags an item from the Data Tree window. This method should + check that the mouse (e.X, e.Y) is inside the object, then set the e.Handled flag + to true if an item can be dragged into this object. + + + + + Handles KeyDown event in the designer. + + The designer's workspace. + Keyboard event parameters. + + This method is called when the user presses any key in the designer. Typical implementation + does nothing. + + + + + Handles MouseDown event that occurs when the user clicks the mouse in the designer. + + + This method is called when the user press the mouse button in the designer. + The standard implementation does the following: + + checks if the mouse pointer is inside the object; + add an object to the selected objects list of the designer; + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. Typical + use of this method is to change the mouse cursor to SizeAll when it is over + an object. The standard implementation does the following: + + checks if the mouse pointer is inside the object; + changes the cursor shape (e.Cursor property); + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. The + standard implementation does the following: + + + if mouse button is not pressed, check that mouse pointer is inside one of + the selection points returned by the + method and set the e.SizingPoint member to the corresponding sizing + point; + + if mouse button is pressed, and e.SizingPoint member is not + SizingPoint.None, resize the object. + + + Current mouse state. + + + + Handles MouseUp event that occurs when the user releases the mouse button in the designer. + + + This method is called when the user releases the mouse button in the + designer. The standard implementation does the following: + + if e.Mode is WorkspaceMode2.SelectionRect, checks if object + is inside the selection rectangle and sets e.Handled flag if so; + + checks that object is inside its parent (calls the + method). + + + + Current mouse state. + + + + Handles mouse wheel event. + + Current mouse state. + + + + Checks if given point is inside the object's bounds. + + point to check. + true if point is inside the object's bounds. + + You can override this method if your objectis not of rectangular form. + + + + + Draws the selection point. + + Paint event args. + object. + object. + Left coordinate. + Top coordinate. + + + + Gets the object's selection points. + + Array of objects. + + Selection point is a small square displayed at the object's sides when object is selected + in the designer. You can drag this square by the mouse to change the object's size. For example, + the TextObject has eight selection points to change its width and height by the mouse. + If you are developing a new component for FastReport, you may override this method + if your object has non-standard set of selection points. For example, if an object has something like + "AutoSize" property, it would be good to disable all selection points if that property is true, + to disable resizing of the object by the mouse. + + + + + Gets a value indicating that given point is inside selection point. + + point's x coordinate. + point's y coordinate. + selection point. + true if (x,y) is inside the point + + + + Gets the absolute bottom coordinate of the object. + + + + + Gets the absolute bounding rectangle of the object. + + + + + Gets the absolute left coordinate of the object. + + + + + Gets the absolute right coordinate of the object. + + + + + Gets the absolute top coordinate of the object. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control + is resized with its parent. + + + Use the Anchor property to define how a control is automatically resized as its parent control + is resized. Anchoring a control to its parent control ensures that the anchored edges remain in the + same position relative to the edges of the parent control when the parent control is resized. + You can anchor a control to one or more edges of its container. For example, if you have a band + with a TextObject whose Anchor property value is set to Top, Bottom, the TextObject is stretched to + maintain the anchored distance to the top and bottom edges of the band as the height of the band + is increased. + + + + + Gets the bottom coordinate of the object in relation to its container. + + + To change the bottom coordinate, change the and/or properties. + + + + + Gets or sets the bounding rectangle of the object. + + + Assigning a value to this property is equal to assigning values to the , + , , properties. + + + + + Gets or sets the size of client area of the object. + + + This property is used in the class. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control + is resized with its parent. + + + Use the Dock property to define how a control is automatically resized as its parent control is + resized. For example, setting Dock to DockStyle.Left causes the control to align itself with the + left edges of its parent control and to resize as the parent control is resized. + A control can be docked to one edge of its parent container or can be docked to all edges and + fill the parent container. + + + + + Gets or sets a group index. + + + Group index is used to group objects in the designer (using "Group" button). When you select + any object in a group, entire group becomes selected. To reset a group, set the GroupIndex + to 0 (default value). + + + + + Gets or sets the height of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Height to 10mm + text1.Height = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Height = " + (text1.Height / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets the left coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Left to 10mm + text1.Left = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Left = " + (text1.Left / Units.Millimeters).ToString() + "mm"); + + + + + Gets the right coordinate of the object in relation to its container. + + + To change the right coordinate, change the and/or properties. + + + + + Gets or sets the Tag string for this component. + + + + + Gets or sets the top coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Top to 10mm + text1.Top = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Top = " + (text1.Top / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets a value indicating whether the object is displayed in the preview window. + + + Setting this property to false will hide the object in the preview window. + + The following report script will control the Text1 visibility depending on the value of the + data column: + private void Data1_BeforePrint(object sender, EventArgs e) + { + Text1.Visible = [Orders.Shipped] == true; + } + + + + + Gets or sets a string containing expression that determines should be object displayed in the preview window. + + + + + Gets or sets a value that determines if the object can be printed on the printer. + + + Object with Printable = false is still visible in the preview window, but not on the printout. + If you want to hide an object in the preview, set the property to false. + + + + + Gets or sets a string containing expression that determines should be object printed on the printer. + + + + + Gets or sets the width of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Width to 10mm + text1.Width = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Width = " + (text1.Width / Units.Millimeters).ToString() + "mm"); + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. This class implements the following actions: Edit, Cut, Copy, + Paste, Delete, Bring to Front, Send to Back. + + + + + The "Name" menu item. + + + + + The "Edit" menu item. + + + + + The "Cut" menu item. + + + + + The "Copy" menu item. + + + + + The "Paste" menu item. + + + + + The "Delete" menu item. + + + + + The "BringToFront" menu item. + + + + + The "SendToBack" menu item. + + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Represents a combobox that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Gets or sets value indicating whether it is necessary to show a color name in a combobox. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a drop-down control that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the control that owns this dropdown. + + Set the Owner to onscreen control that initiates dropdown. This control will + be used to calculate dpi-dependent sizes. + + + + Gets or sets the selected color. + + + + + Sets the UI style. + + The style to set. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a popup window that alows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup control. + + + + Represents the combobox used to select a data column. + + + + + Occurs when the text portion of the combobox is changed. + + + + + + + + Gets or sets the data source. + + + + + Gets or sets the Report. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + This is an internal enum that represents the selected datatree item type. + + + + + Nothing selected. + + + + + Data column selected. + + + + + Total selected. + + + + + Parameter selected. + + + + + Function selected. + + + + + Dialog control selected. + + + + + This is an internal control that represents the data tree. + + + This control is for internal use only. + + + + + DataSource property + + + + + SelectedItem property + + + + + SelectedItemType property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the DataTreeView control. + + + + + Split Container Control + + + + + Constructor + + + + + Represents the label with line. + + + + + + + + Initializes a new instance of the class. + + + + + Represents a control that may contain several pages. It is similar to the TabControl + but contains no tabs. This control is widely used in wizards. + + + + + Occurs when page is selected. + + + + + Gets or sets a value that determines whether the selector area is visible or not. + + + + + Gets or sets the height of selector tab. + + + + + This property is not relevant to this class + + + + + Gets or sets the active page. + + + + + Gets or sets the index of active page. + + + + + Gets or sets the highlighted page index. + + + + + Gets the collection of pages. + + + + + + + + + + + + + + + + + + + + Gets tab at specified mouse point. + + The mouse point. + Index of tab under mouse; -1 if mouse is outside tab area. + + + + Selects the next page. + + + + + Selects the previous page. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a single page of the control. + + + + + Gets or sets the image associated with this page. + + + + + Gets or sets the page caption text. + + + + + + + + + + + + + + Represents a popup form. + + + Use this form if you want to show some controls in non-modal borderless form that + behaves like other standard popup controls such as context menu. This form does not + move a focus from the parent form. + + + + + Shows the form. + + The control which location is used as a reference for pt parameter. + The location relative to the ctl control. + + + + Shows the form. + + The control which location is used as a reference for x, y parameters. + The x position relative to the ctl control. + The y position relative to the ctl control. + + + + Shows the form. + + The absolute screen location. + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup form. + + + + Handler which allows to prevent canceling of popup window + + Popup helper + Event arguments + + + + Contains event information for a PopupClosed event. + + + + + The popup form. + + + + + Gets the popup form which is being closed. + + + + + Constructs a new instance of this class for the specified + popup form. + + Popup Form which is being closed. + + + + Arguments to a PopupCancelEvent. Provides a + reference to the popup form that is to be closed and + allows the operation to be cancelled. + + + + + Whether to cancel the operation + + + + + Mouse down location + + + + + Popup form. + + + + + Constructs a new instance of this class. + + The popup form + The mouse location, if any, where the + mouse event that would cancel the popup occured. + + + + Gets the popup form + + + + + Gets the location that the mouse down which would cancel this + popup occurred + + + + + Gets/sets whether to cancel closing the form. Set to + true to prevent the popup from being closed. + + + + + Represents the method which responds to a PopupClosed event. + + + + + Represents the method which responds to a PopupCancel event. + + + + + A class to assist in creating popup windows like Combo Box drop-downs and Menus. + This class includes functionality to keep the title bar of the popup owner form + active whilst the popup is displayed, and to automatically cancel the popup + whenever the user clicks outside the popup window or shifts focus to another + application. + + + + + Event Handler to detect when the popup window is closed + + + + + Message filter to detect mouse clicks anywhere in the application + whilst the popup window is being displayed. + + + + + The popup form that is being shown. + + + + + The owner of the popup form that is being shown: + + + + + Whether the popup is showing or not. + + + + + Whether the popup has been cancelled, notified by PopupCancel, + rather than closed. + + + + + Raised when the popup form is closed. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + Shows the specified Form as a popup window, keeping the + Owner's title bar active and preparing to cancel the popup + should the user click anywhere outside the popup window. + Typical code to use this message is as follows: + + frmPopup popup = new frmPopup(); + Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom)); + popupHelper.ShowPopup(this, popup, location); + + Put as much initialisation code as possible + into the popup form's constructor, rather than the System.Windows.Forms.Load + event as this will improve visual appearance. + + Main form which owns the popup + Window to show as a popup + Location relative to the screen to show the popup at. + + + + Responds to the + event from the popup form. + + Popup form that has been closed. + Not used. + + + + Subclasses the owning form's existing Window Procedure to enables the + title bar to remain active when a popup is show, and to detect if + the user clicks onto another application whilst the popup is visible. + + Window Procedure Message + + + + Called when the popup is being hidden. + + + + + Raises the event. + + describing the + popup form that is being closed. + + + + Raises the event. + + describing the + popup form that about to be cancelled. + + + + Default constructor. + + Use the + method to attach this class to the form you want to show popups from. + + + + A Message Loop filter which detect mouse events whilst the popup form is shown + and notifies the owning class when a mouse + click outside the popup occurs. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + The popup form + + + + + The owning object. + + + + + Constructs a new instance of this class and sets the owning + object. + + The object + which owns this class. + + + + Gets/sets the popup form which is being displayed. + + + + + Checks the message loop for mouse messages whilst the popup + window is displayed. If one is detected the position is + checked to see if it is outside the form, and the owner + is notified if so. + + Windows Message about to be processed by the + message loop + true to filter the message, false otherwise. + This implementation always returns false. + + + + Checks the mouse location and calls the OnCancelPopup method + if the mouse is outside the popup form. + + + + + Raises the event. + + The associated + with the cancel event. + + + + Represents the control that combines a textbox and a button. + + + + + Occurs when the button is clicked. + + + + + Occurs when the text is changed. + + + + + + + + Gets or sets the button's image. + + + + + Gets or sets the button's text. + + + + + + + + + + + + + + Set focus on text box. + + + + + + Initializes a new instance of the class. + + + + + TreeView control with multiselect support. + + + This control is for internal use only. + + + + + Creates a new instance of the TreeViewMultiSelect control. + + + + + Gets a copy of list of selected nodes. + + + + + + + + + + + + + + + + + + + + Specifies how text in a is horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + Gets or sets the alignment to apply to the current + selection or insertion point. + + + Replaces the SelectionAlignment from . + + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in screen pixels + Value in twips + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in twips + Value in screen pixels + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + (Index of last character that fitted on the page) + 1 + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + The calculated text height + (Index of last character that fitted on the page) + 1 + + + + The base class for the context menu item. + + + + + Gets a collection of menu items. + + + + + Gets or sets "Check on click" property. + + + + + Sets bold font. + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. + + + + + The reference to the report designer. + + + + + Gets a collection of menu items. + + + You should add new items to this collection. + + + + + This method is called to reflect changes in the designer. + + + + + Creates a new menu item. + + Item's text. + New item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New item. + + + + Displays context menu. + + Parent control. + Location. + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Specifies the shape of the CrossBandObject. + + + + + Specifies the vertical line shape. + + + + + Specifies the rectangle shape. + + + + + Represents an object that can be printed across several bands. + + + + + Gets or sets the object's shape. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + This class represents the Data band. + + + Use the property to connect the band to a datasource. Set the + property if you want to filter data rows. The + property can be used to sort data rows. + + + + + + + + + + + + + + + + + Invokes column editor + + + + + Gets or sets a header band. + + + + + Gets a collection of detail bands. + + + + + Gets or sets a footer band. + + + + + Gets or sets a data source. + Please note: data source have to be enabled. + + + + + Gets or sets a number of rows in the virtual data source. + + + Use this property if your data band is not connected to any data source. In this case + the virtual data source with the specified number of rows will be used. + + + + + Limits the maximum number of rows in a datasource. 0 means no limit. + + + + + Gets or sets a relation used to establish a master-detail relationship between + this band and its parent. + + + Use this property if there are several relations exist between two data sources. + If there is only one relation (in most cases it is), you can leave this property empty. + + + + + Gets the collection of sort conditions. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will not be printed. + + + + + Gets the band columns. + + + + + Gets or sets a value that determines whether to print a band if all its detail rows are empty. + + + + + Gets or sets a value that determines whether to print a band if its datasource is empty. + + + + + Gets or sets a value indicating that all band rows should be printed together on one page. + + + + + Gets or sets a value indicating that the band should be printed together with all its detail rows. + + + + + Gets or sets the key column that identifies the data row. + + + This property is used when printing a hierarchic list. + To print the hierarchic list, you have to setup three properties: IdColumn, + ParentIdColumn and Indent. First two properties are used to identify the data + row and its parent; the Indent property specifies the indent that will be used to shift + the databand according to its hierarchy level. + When printing hierarchy, FastReport shifts the band to the right + (by value specified in the property), and also decreases the + width of the band by the same value. You may use the Anchor property of the + objects on a band to indicate whether the object should move with the band, or stay + on its original position, or shrink. + + + + + Gets or sets the column that identifies the parent data row. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets the indent that will be used to shift the databand according to its hierarchy level. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets a value indicating that the databand should collect child data rows. + + + This property determines how the master-detail report is printed. Default behavior is: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + MasterData row2 + -- DetailData row1 + -- DetailData row2 + When you set this property to true, the master databand will collect all child data rows + under a single master data row: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + -- DetailData row4 + -- DetailData row5 + + + + + Gets or sets a value that determines whether to reset the page numbers when this band starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the data source connected to this band. + + + + + + + + Initializes a new instance of the class. + + + + + Class represent a smart tag that is used to choose a data column. + + + + + Gets or sets the data column name. + + + + + + + + Gets a root datasource for the object currently edited. + + The DataSourceBase object if found; null otherwise. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents a smart tag that is used to choose a data source. + + + + + Gets or sets a data source. + + + + + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the report's designer control. + + + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + This control represents pure designer surface + Objects toolbar. If you need + standard menu, statusbar, toolbars and tool windows, use the + control instead. Also you may + decide to use a designer's form () + instead of a control. + To run a designer, you need to attach a Report instance to it. This can be done via + the property. + To call the designer in MDI (Multi-Document Interface) mode, use the + property. + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + + Occurs when designer's UI state changed. + + + + + Gets or sets the edited report. + + + To initialize the designer, you need to pass a Report instance to this property. + This will create the designer's surface associated with the report. + + Designer designer = new Designer(); + designer.Parent = form1; + designer.Report = report1; + + + + + + Gets active report object. + + + May be null if Start Page selected, or no reports opened. + + + + + Gets a collection of global plugins such as menu, properties window, etc. + + + + + Gets a collection of objects on the active page of the active report. + + + + + Gets a collection of selected objects on the active page of the active report. + + + + + Gets a collection of selected objects of the ComponentBase type. + + + + + Gets a collection of selected objects of the ReportComponentBase type. + + + + + Gets a collection of selected objects of the TextObject type. + + + + + Gets or sets a value indicating that the report was modified. + + + + + Gets or sets a value that determines whether to ask user to save changes when closing the designer. + + + + + Gets the designer restrictions. + + + + + Gets or sets a value indicating that designer is run in MDI mode. + + + To call the designer in MDI (Multi-Document Interface) mode, use the following code: + + DesignerControl designer = new DesignerControl(); + designer.MdiMode = true; + designer.ShowDialog(); + + + + + + Gets or sets the visual style. + + + + + Gets a value indicating that designer is used to edit a preview page. + + + + + Gets or sets the zoom factor. + + + + + Gets the zoom factor with respect of designer's dpi value. + + + + + The "File|New" command. + + + + + The "New Page" toolbar command. + + + + + The "New Dialog" toolbar command. + + + + + The "File|Open..." command. + + + + + The "File|Save" command. + + + + + The "File|Save As..." command. + + + + + The "File|Save All" command. + + + + + The "File|Close" command. + + + + + The "Window|Close All" command. + + + + + The "File|Preview..." command. + + + + + The "File|Printer Setup..." command. + + + + + The "File|Page Setup..." command. + + + + + The "Data|Add New Data Source..." command. + + + + + The "Data|Sort Data Sources" command. + + + + + The "Data|Choose Report Data..." command. + + + + + The "Edit|Undo" command. + + + + + The "Edit|Redo" command. + + + + + The "Edit|Cut" command. + + + + + The "Edit|Copy" command. + + + + + The "Edit|Paste" command. + + + + + The "Format Painter" toolbar command. + + + + + The "Edit|Delete" command. + + + + + The "Edit|Copy Page" command. + + + + + The "Edit|Delete Page" command. + + + + + The "Edit|Select All" command. + + + + + The "Edit|Group" command. + + + + + The "Edit|Ungroup" command. + + + + + The "Edit" command. + + + + + The "Edit|Find..." command. + + + + + The "Polygon move command" command. + + + + + The "Polygon point move" command. + + + + + The "Polygon add new point" command. + + + + + The "Polygon berier" command. + + + + + The "Polygon remove point" command. + + + + + The "Edit|Replace..." command. + + + + + The "Bring To Front" command. + + + + + The "Send To Back" command. + + + + + The "Insert" command. + + + + + The "Insert Band" command. + + + + + The "Recent Files" command. + + + + + The "File|Select Language..." command. + + + + + The "View|Start Page" command. + + + + + The "Report|Options..." command. + + + + + The "View|Options..." command. + + + + + The "Report|Styles..." command. + + + + + The "Help|Help Contents..." command. + + + + + The "Help|About..." command. + + + + + The "Show welcome window..." command. + + + + + Gets or sets the layout state of the designer. + + + This property is used to store layout in Visual Studio design time. You may also use + it to save and restore the designer's layout in your code. However, consider using the + and methods that use FastReport + configuration file. + + + + + Fires when the layout is changed. + + + This event is for internal use only. + + + + + Updates UI style of the designer. + + + + + Initializes designer plugins such as toolbars and toolwindows. + + + + + + + + Zooms the report to page width. + + + + + Zooms the report to whole page. + + + + + Cancels paste mode. + + + + + AutoSave system initialization. + + + + + Stops the AutoSave system. + + + + + Call this method if you change something in the report. + + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + The name of modified object. + + + + Call this method to tell the designer that current selection is changed. + + The plugin that changes the selection (may be null). + + + + Locks all plugins. + + + This method is usually called when we destroy the report to prevent unexpected + errors - such as trying to draw destroyed objects. + + + + + Unlocks all plugins. + + + Call this method after the Lock. + + + + + Call this method to refresh all plugins' content. + + The plugin that we don't need to refresh. + + + + Updates localization of the designer. + + + + + Updates layout and images on dpi change. + + The sender object. + + + + Saves config to a FastReport configuration file. + + + + + Restores config from a FastReport configuration file. + + + Call this method to restore the designer's layout. You need to do this after the + designer's control is placed on a form. + + + + + Refresh the designer's toolbars and toolwindows layout. + + + Call this method if you use + DesignerControl. To restore + the layout that you've created in VS design time, you need to call this method in the form's + Load event handler. If you don't do this, tool windows like Properties, Data, Report Tree + will not be available. + + + + + + + + + + + Initializes the workspace after the new report is loaded. + + + + + Tries to create a new empty report. + + true if report was created successfully; false if user cancels the action. + + + + Displays a message in the "Messages" window. + + Message text. + + + + Clears the "Messages" window. + + + + + Shows the selected object's information in the designer's statusbar. + + Object's location. + Object's size. + Textual information about the selected object. + + + + Close all opened reports, ask to save changes. + + true if all tabs closed succesfully. + + Use this method to close all opened documents and save changes when you closing the main form + that contains the designer control. To do this, create an event handler for your form's FormClosing + event and call this method inside the handler. If it returns false, set e.Cancel to true. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all designer commands. + + + + + Gets a value indicating that the command is enabled. + + + If you use own controls that invoke designer commands, use this property to refresh + the Enabled state of a control that is bound to this command. + + + + + Defines a custom action for this command. + + + Using custom action, you can override the standard behavior of this designer's command. + + + This example demonstrates how to override the "New..." command behavior. + + // add an event handler that will be fired when the designer is run + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + // override "New..." command behavior + (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); + } + + void cmdNew_CustomAction(object sender, EventArgs e) + { + // show the "Label" wizard instead of standard "Add New Item" dialog + Designer designer = sender as Designer; + LabelWizard wizard = new LabelWizard(); + wizard.Run(designer); + } + + + + + + Gets a value for the Enabled property. + + true if command is enabled. + + + + Invokes the command. + + + + + Invokes the command with specified sender and event args. + + Sender. + Event args. + + This method is compatible with standard and can be passed + to the event handler constructor directly. + + + + + Represents the "File|New" command. + + + + + + + + + + + Represents the "New Page" toolbar command. + + + + + + + + + + + Represents the "New Dialog" toolbar command. + + + + + + + + + + + Represents the "File|Open..." command. Also can be used for loading a file + from the recent files list. + + + + + + + + + + + Loads a specified report file. + + File to load. + + + + Represents the "File|Save" command. + + + + + + + + + + + Represents the "File|Save As..." command. + + + + + + + + + + + Represents the "File|Save All" command. + + + + + + + + + + + Represents the "File|Close" command. + + + + + + + + + + + Represents the "Window|Close All" command. + + + + + + + + Represents the "File|Preview..." command. + + + + + + + + + + + Represents the "File|Page Setup..." command. + + + + + + + + + + + Represents the "Report|Options..." command. + + + + + + + + + + + Represents the "File|Printer Setup..." command. + + + + + + + + + + + Represents the "Edit|Undo" command. + + + + + + + + + + + Undo several actions. + + Number of actions to undo. + + + + Represents the "Edit|Redo" command. + + + + + + + + + + + Redo several actions. + + Number of actions to redo. + + + + Represents the "Edit|Cut" command. + + + + + + + + + + + Represents the "Edit|Copy" command. + + + + + + + + Represents the "Edit|Copy Page" command. + + + + + + + + + + + Represents the "Edit|Paste" command. + + + + + + + + + + + Represents the "Format Painter" toolbar command. + + + + + + + + + + + Represents the "Edit|Delete" command. + + + + + + + + + + + Represents the "Edit|Delete Page" command. + + + + + + + + + + + Represents the "Edit|Select All" command. + + + + + + + + + + + Represents the "Edit|Group" command. + + + + + + + + + + + Represents the "Edit|Ungroup" command. + + + + + + + + Represents the "Edit" command. + + + + + + + + + + + Represents the "Edit|Find..." command. + + + + + + + + + + + Represents the "Edit|Replace..." command. + + + + + Represents the "Bring To Front" context menu command. + + + + + + + + + + + Represents the "Send To Back" context menu command. + + + + + + + + Represents the "Insert" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Insert Band" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Data|Add Data Source..." command. + + + + + + + + + + + Represents the "Data|Sort Data Sources" command. + + + + + + + + + + + Represents the "Data|Choose Report Data..." command. + + + + + + + + + + + Represents the "Recent Files" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the recent files list is enabled. + + + + + + + + Represents the "File|Select Language..." command. + + + + + + + + Represents the "View|Options..." command. + + + + + + + + Represents the "View|Start Page" command. + + + + + + + + + + + Represents the "Select polygon move" command. + + + + + + + + + + + Represents the "Report|Styles..." command. + + + + + + + + + + + Represents the "Help|Help Contents..." command. + + + + + + + + + + + Represents the "Help|About..." command. + + + + + + + + Represents the "Show welcome window..." command. + + + + + + + + + + + Provides a data for the designer ReportLoaded event. + + + + + The current report. + + + + + Represents the method that will handle the designer ReportLoaded event. + + The source of the event. + The event data. + + + + Provides a data for the designer ObjectInserted event. + + + + + Gets the inserted object. + + + + + Gets the source where the object is inserted from. + + + + + Represents the method that will handle the designer ObjectInserted event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets or sets a file name. + + + This property contains the location of a report. If you work with files (like the + standard "Open" and "Save" dialogs do), treat this property as a file name. + + + + + Gets or sets a value indicating that the dialog was cancelled. + + + This property is used to tell the designer that the user was cancelled the dialog. + + + + + Gets or sets the custom data that is shared across events. + + + You may set the Data in the OpenDialog event and use it later in the OpenReport event. + + + + + Gets a report designer. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets a report. + + + Use this report in the load/save operations. + + + + + Gets a file name. + + + This property contains the location of a report that was selected by the user in the + open/save dialogs. If you work with files (like the standard "Open" and "Save" dialogs do), + treat this property as a file name. + + + + + Gets the custom data that was set in the OpenDialog event. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides data for the FilterConnectionTables event. + + + + + Gets the Connection object. + + + + + Gets the table name. + + + + + Gets or sets a value that indicates whether this table should be skipped. + + + + + Represents the method that will handle the FilterConnectionTables event. + + The source of the event. + The event data. + + + + Provides data for the CustomQueryBuilder event. + + + + + Gets the Connection object. + + + + + Gets or sets the query text. + + + + + Gets or sets the query parameters. + + + + + Represents the method that will handle the CustomQueryBuilder event. + + The source of the event. + The event data. + + + + Represents list of registered design plugins. + + + + + Adds a new plugin's type. + + The type of a plugin. + + + + Represents a set of designer's restrictions. + + + + + Gets or sets a value that enables or disables the "Open" action. + + + + + Gets or sets a value that enables or disables the "Save/Save as" actions. + + + + + Gets or sets a value that enables or disables the "New..." action. + + + + + Gets or sets a value that enables or disables the "Preview" action. + + + + + Gets or sets a value that enables or disables the recent files list. + + + + + Gets or sets a value that enables or disables the "Code" tab. + + + + + Gets or sets a value that enables or disables the "Data" menu. + + + + + Gets or sets a value that enables or disables the "Data|Add New Data Source..." menu. + + + + + Gets or sets a value that enables or disables the "Data|Sort Data Sources" menu. + + + + + Gets or sets a value that enables or disables the "Report|Options..." menu. + + + + + Gets or sets a value that enables or disables insertion of objects. + + + + + Gets or sets a value that enables or disables the insertion of bands. + + + + + Gets or sets a value that enables or disables the "Delete Page" action. + + + + + Gets or sets a value that enables or disables the creation of report/dialog pages. + + + + + Gets or set a value that enables or disbles the "Copy Page" action. + + + + + Gets or sets a value that enables or disables the "Page Setup" action. + + + + + Copies the contents of another, similar object. + + Source object to copy the contents from. + + + + Creates exact copy of this object. + + The copy of this object. + + + + This class contains settings that will be applied to the report designer. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when the designer is closed. + + + + + Occurs when the report is loaded. + + + + + Occurs when a report page or a dialog form is added to the report. + + + Use this event if you want to customize the page properties. + + + This example demonstrates how to change the default page margins. + + Config.DesignerSettings.PageAdded += new EventHandler(DesignerSettings_PageAdded); + + void DesignerSettings_PageAdded(object sender, EventArgs e) + { + if (sender is ReportPage) + (sender as ReportPage).TopMargin = 0; + } + + + + + + Occurs when object is inserted. + + + + + + + + + + + + + + + + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + Config.DesignerSettings.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + Config.DesignerSettings.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Occurs when the query builder is called. + + + Subscribe to this event if you want to replace the embedded query builder with your own one. + + + + + Gets or sets the icon for the designer window. + + + + + Gets or sets the default font used in a report. + + + + + Gets or sets a value indicating whether the designer window is displayed in the Windows taskbar. + + + + + Gets the designer restrictions flags. + + + + + Gets or sets the title text for the designer window. + + + If no text is set, the default text "FastReport -" will be used. + + + + + Gets or sets application-defined DbConnection object that will be used in the designer + to create a new datasource. + + + The application connection object is used in the "Data Wizard" to create new datasources. + In this mode, you can't create any other connections in the wizard; only application + connection is available. You still able to choose tables or create a new queries inside + this connection. The connection information (ConnectionString) is not stored in the report file. + + + + + Gets the toolstrip renderer. + + + + + Adds a custom connection used in the "Data Wizard" window. + + + Use this method to provide own connection strings for the "Data Wizard" dialog. To do this, you need + to pass the type of connection object and connection string associated with it. You must use one of the + connection objects registered in FastReport that inherit from the + class. + To clear the custom connections, use the method. + + + This example shows how to add own connection string. + + Config.DesignerSettings.AddCustomConnection(typeof(MsAccessDataConnection), @"Data Source=c:\data.mdb"); + + + + + + Clears the custom connections added by the AddCustomConnection method. + + + + + Initializes a new instance of the class. + + + + + Base class for all export plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Save File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Saves the specified report into specified file. + + Report object. + File name. + + + + Represents the FR3 export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR3 units converter. + + + + + Converts Color to TColor. + + Color value. + String that contains TColor value. + + + + Converts font style. + + FontStyle value. + String that contains converted value. + + + + Converts horizontal alignment of text. + + HorzAlign value. + String that contains converted value. + + + + Converts vertical alignment of text. + + VertAlign value. + String that contains coverted value. + + + + Converts font size to delphi font height. + + Font size value. + String that contains font height value. + + + + Convert line style to frame style. + + Line style value. + String that contains converted value. + + + + Converts barcode type. + + BarcodeBase instance. + String that contains converted value. + + + + Converts BorderLines value. + + BorderLines instance. + String that contains converted value. + + + + Converts CheckedSymbol value. + + CheckeSymbol instance. + String that contains converted value. + + + + Converts ScaleDock value. + + ScaleDock instance. + String that contains converted value. + + + + Converts DashStyle value. + + DashStyle instance. + String that contains converted value. + + + + Converts TotalType value. + + TotalType instance. + String that contains converted value. + + + + Converts MapLabelKind value. + + MapLabelKind instance. + String that contains converted value. + + + + Converts MapPalette value. + + MapPalette instance. + String that contains converted value. + + + + Converts ShapeKind value. + + ShapeKind instance. + String that contains coverted value. + + + + Represents the RDL export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR units converter. + + + + + Converts the float size in pixels to string value in millimeters. + + The float value in pixels. + The string value in millimeters. + + + + Converts the float size in millimeters to string value in millimeters. + + The float value in millimeters. + The string value in millimeters. + + + + Converts the bool value to string. + + The bool value. + The string value. + + + + Converts the int size in pixels to string value in pt. + + The int value in pixels. + The string value in pt. + + + + Converts the Color value to string. + + The Color value. + The string representation of Color value. + + + + Converts the LineStyle value to RDL BorderStyle value. + + The LineStyle value. + The string with RDL BorderStyle value. + + + + Converts the GradientStyle value to RDL GradientType value. + + The GradientStyle value. + The string with RDL GradientType value. + + + + Converts the FontStyle value to RDL FontStyle value. + + The FontStyle value. + The string with RDL FontStyle value. + + + + Converts the FontFamily value to RDL FontFamily value. + + The FontFamily value. + The string with RDL FontFamily value. + + + + Converts the HorzAlign value to RDL TextAlign value. + + The HorzAlign value. + The string with RDL TextAling value. + + + + Converts the VertAling value to RDL VerticalAling value. + + The VertAling value. + The string with RDL VerticalAlign value. + + + + Converts the Angle value to RDL WritingMode value. + + The Angle value. + The string with RDL WritingMode value. + + + + Converts the FontSize value to RDL FontSize value. + + The FontSize value. + The string with RDL FontSize value. + + + + Converts the PictureBoxSizeMode value to RDL Sizing value. + + The PictureBoxSizeMode value. + The string with RDL Sizing value. + + + + Converts the SeriesChartType value to RDL Chart.Type value. + + The SeriesChartType value. + The string with RDL Chart.Type value. + + + + Converts the ChartColorPalette value to RDL Chart.Palette value. + + The ChartColorPalette value. + The string with RDL Chart.Palette value. + + + + Converts the Legend.Docking and Legend.Alignment values to RDL Chart.Legend.Position value. + + The Legend.Docking value. + The Legend.Alignment value. + The string with RDL Chart.Legend.Position value. + + + + Converts the LegendStyle value to Chart.Legend.Layout value. + + The LegendStyle value. + The string with RDL Chart.Legend.Layout value. + + + + Converts the LightStyle value to RDL Shading value. + + The LightStyle value. + The string with RDL Shading value. + + + + Converts the ChartDashStyle value to RDL BorderStyle value. + + The ChartDashStyle value. + The string with RDL ChartDahsStyle value. + + + + Converts the ContentAlignment value to RDL TextAlign value. + + The ContentAlignment value. + The string with RDL TextAlign value. + + + + Converts the ContentAlignment value to RDL VerticalAlign value. + + The ContentAlignment value. + The string with RDL VerticalAlign value. + + + + Converts the AxisEnabled value to RDL Axis.Visible value. + + The AxisEnabled value. + The string with RDL Axis.Visible value. + + + + Converts the TickMarkStyle value to RDL TickMarkStyle value. + + The TickMarkStyle value. + The string with RDL TickMarkStyle value. + + + + Converts the StringAlignment value to RDL TextAlign value. + + The StringAlignment value. + The string with RDL TextAlign value. + + + + Provides functionality required for report designer plugins such as toolbars and toolwindows. + + + + + Gets the plugin name. + + + + + Saves the plugin state. + + This example shows how to save the state: + + public void SaveState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + xi.SetProp("ShowGrid", DialogWorkspace.ShowGrid ? "1" : "0"); + } + + + + + + Restores the plugin state. + + This example shows how to restore the state: + + public void RestoreState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + DialogWorkspace.ShowGrid = xi.GetProp("ShowGrid") != "0"; + } + + + + + + Updates plugin state when current selection was changed. + + + Typically you need to do the same work in the and + methods. + + + + + Updates plugin state when the report was modified. + + + Typically you need to do the same work in the and + methods. + + + + + Locks the plugin. + + + This method is called by the designer when report is loading. It may be needed to disable + some operations (like painting) that use the report. + + + + + Unlocks the plugin. + + This method is called by the designer when report is loaded. It follows the Lock + method call and must reset the lock. + + + + Localizes the plugin. + + + This method is called by the designer when current localization is changed. + + + + + Gets an options page that will be used in the Designer Options dialog to edit the plugin options. + + The options page, if implemented; otherwise, null. + + + + Updates UI style of the plugin. + + + The plugin should update its style according to the designer's UIStyle property. + + + + + Updates layout on dpi change. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Open File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + + + + Gets or sets reference to the import. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a open dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + Represents the List and Label import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Import RichTextFile to a report + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents collection of designer plugins. + + + This class is used in the Designer.Plugins property. + To register own plugin, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Finds a plugin by its name. + + The plugin's name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.Find("MessagesWindow") as MessagesWindow; + + + + + + Finds a plugin by its type name. + + The plugin's type name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + Base class for all designer toolbars. + + + Use this class to write own designer's toolbar. To do this: + - in the constructor, set the Name property and create toolbar buttons. + The Name will be used to restore toolbar's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolbar, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Gets the report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new button. + + Button's name. + Button's image index. + Click handler. + New button. + + + + Creates a new button. + + Button's name. + Button's image index. + Button's tooltip text. + Click handler. + New button. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the "Data Dictionary" window. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Describes an item dragged from the "Data Dictionary" window. + + + + + The dragged object. + + + + + The text of dragged object. + + + + + Collection of dragged items. + + + + + Represents the "Messages" window. + + + To get this window, use the following code: + + Designer designer; + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + + + + Clears the message list. + + + + + Adds a new message. + + The message text. + The name of object related to a message. + + + + Adds a new script-related message. + + The message text. + The line of the script. + The column of the script. + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Properties" window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Report Tree" window. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Extend the class for window with TreeView. + + + + + + + + This method puts data to TreeView. + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + + + + + + + + + + Base class for all tool windows such as "Properties", "Data Dictionary" etc. + + + Use this class to create own tool window. To do this: + - in the constructor, set the Name and Image properties and create necessary controls. + The Name will be used to restore window's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolwindow, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolWindow)); + + + + + + + Gets the report designer. + + + + + Gets a value indicating that window is locked. + + + + + + + + Gets or sets shortcut keys used to show this toolwindow. + + + + + Gets or sets a value indicating that the toolwindow can be closed by the x button. + + + + + Gets a parent control that contains all controls. + + + Add your control to the parent control Controls collection. + + + + + Shows the toolwindow. + + + + + Hides the toolwindow. + + + + + + + + + + + + + + + + + + + + + + + + + + Implements method. + + The options page, if implemented; otherwise, null. + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the standard report designer. + + + This control extends the control with + standard menu, status bar, and toolbars. + To choose toolbars and tool windows in design-time, click the "View" menu + in this control and select what you want to see. Toolbars can be reordered using the mouse. + To restore the designer layout at runtime, you need to call the + RefreshLayout method in your + form's Load event handler. + + + + + Gets the main menu. + + + + + Gets or sets a value indicating whether the main menu should be displayed or not. + + + + + Gets or sets a value indicating whether the status bar should be displayed or not. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents standard designer's form. + + + This form contains the . Use the + property to get access to this control. + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + If you decided to use this class, you need: + + + create an instance of this class; + + + set the Designer.Report property to report that you need to design; + + + call either ShowModal or Show methods to display a form. + + + + + + + Gets a reference to the control which is actually a designer. + + + + + Gets a list of File menu buttons + + + + + Creates a new instance of the class with default settings. + + + + + Creates a new instance of the class with default settings. + + enables welcome window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the designer's main menu. + + + To get this menu, use the following code: + + Designer designer; + DesignerMenu menu = designer.Plugins.FindType("DesignerMenu") as DesignerMenu; + + + + + + The "File" menu. + + + + + The "File|New..." menu. + + + + + The "File|Open..." menu. + + + + + The "File|Close" menu. + + + + + The "File|Save" menu. + + + + + The "File|Save as..." menu. + + + + + The "File|Save All" menu. + + + + + The "File|Page Setup..." menu. + + + + + The "File|Printer Setup..." menu. + + + + + The "File|Preview..." menu. + + + + + The "File|Select Language" menu. + + + + + The "File|Exit" menu. + + + + + The "Edit" menu. + + + + + The "Edit|Undo" menu. + + + + + The "Edit|Redo" menu. + + + + + The "Edit|Cut" menu. + + + + + The "Edit|Copy" menu. + + + + + The "Edit|Paste" menu. + + + + + The "Edit|Delete" menu. + + + + + The "Edit|NewPage" menu. + + + + + The "Edit|Copy Page" menu. + + + + + The "Edit|Delete Page" menu. + + + + + The "Edit|Select All" menu. + + + + + The "Edit|Group" menu. + + + + + The "Edit|Ungroup" menu. + + + + + The "Edit|Find..." menu. + + + + + The "Edit|Replace..." menu. + + + + + The "View" menu. + + + + + The "View|Toolbars" menu. + + + + + The "View|Start Page" menu. + + + + + The "View|Options..." menu. + + + + + The "Insert" menu. + + + + + The "Report" menu. + + + + + The "Report|Options..." menu. + + + + + The "Data" menu. + + + + + The "Data|Choose Report Data..." menu. + + + + + The "Data|Add Data Source..." menu. + + + + + The "Data|Show Data Dictionary" menu. + + + + + The "Window" menu. + + + + + The "Window|Close All" menu. + + + + + The "Help" menu. + + + + + The "Help|Help Contents..." menu. + + + + + The "Help|About..." menu. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new menu item. + + New menu item. + + + + Creates a new menu item. + + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New menu item. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the designer's statusbar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Updates the information about location and size. + + The location. + The size. + + + + Updates the name and text information. + + The text. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Contains the email settings such as recipient(s) address, name, subject, message body. + + + + + + + Gets or sets the recipient(s) email addresses. + + + This property contains one or several email addresses in the following form: "john@url.com". + + + + + Gets or sets the message subject. + + + + + Gets or sets the message body. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains some global settings that used in the FastReport.Net. + + + This component is intended for use in the Visual Studio IDE to quickly configure + FastReport global settings. To use it, drop the component on your Form and set up + its properties and events. + Here are some common actions that can be performed with this object: + + + To define own open/save dialogs that will be used in the report designer, + use the , , + , events; + + + + To pass connection string to the connection object defined in a report, + or to define own database login dialog, use the event; + + + + To adjust the connection object after it is opened, + use the event; + + + + To define own progress window, use the , + and events; + + + + To setup some common properties of the report, designer and preview, + use properties defined in this class; + + + + To set UI style of the designer and preview window, + use property. + + + + This component actually uses the static class which + contains , and + properties. You can use Config class as well. + + + + + Gets or sets the UI style of the designer and preview windows. + + + This property affects both designer and preview windows. + + + + + Indicates whether the Ribbon-style window should be used. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs when progress state is changed. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Gets or sets the report settings. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + environmentSettings1.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when report is loaded in the designer. + + + Use this event handler to register application data in a report. + + + + + Occurs when object is inserted in the designer. + + + Use this event handler to set some object's properties when it is inserted. + + + + + Occurs when the report designer is about to show the "Open" dialog. + + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will open the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to show the "Save" dialog. + + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will save the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to load the report. + + This event is used together with the event. + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + load the e.Report from the location specified in the e.FileName property. + For example, if you work with files: e.Report.Load(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to save the report. + + This event is used together with the event. + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + save the e.Report to the location specified in the e.FileName property. + For example, if you work with files: e.Report.Save(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + environmentSettings1.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + environmentSettings1.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Gets or sets the designer settings. + + + + + Gets or sets the preview settings. + + + + + Gets or sets the email settings. + + + + + Represents a group header band. + + + A simple group consists of one GroupHeaderBand and the DataBand that is set + to the property. To create the nested groups, use the property. + + Only the last nested group can have data band. + + Use the property to set the group condition. The + property can be used to set the sort order for group's data rows. You can also use the Sort + property of the group's DataBand to specify additional sort. + + This example shows how to create nested groups. + + ReportPage page = report.Pages[0] as ReportPage; + + // create the main group + GroupHeaderBand mainGroup = new GroupHeaderBand(); + mainGroup.Height = Units.Millimeters * 10; + mainGroup.Name = "MainGroup"; + mainGroup.Condition = "[Orders.CustomerName]"; + // add a group to the page + page.Bands.Add(mainGroup); + + // create the nested group + GroupHeaderBand nestedGroup = new GroupHeaderBand(); + nestedGroup.Height = Units.Millimeters * 10; + nestedGroup.Name = "NestedGroup"; + nestedGroup.Condition = "[Orders.OrderDate]"; + // add it to the main group + mainGroup.NestedGroup = nestedGroup; + + // create a data band + DataBand dataBand = new DataBand(); + dataBand.Height = Units.Millimeters * 10; + dataBand.Name = "GroupData"; + dataBand.DataSource = report.GetDataSource("Orders"); + // connect the databand to the nested group + nestedGroup.Data = dataBand; + + + + + + + + + + + + + + + Gets or sets a nested group. + + + Use this property to create nested groups. + + Only the last nested group can have data band. + + + + This example demonstrates how to create a group with nested group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.NestedGroup = new GroupHeaderBand(); + group.NestedGroup.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets the group data band. + + + Use this property to add a data band to a group. Note: only the last nested group can have Data band. + + + This example demonstrates how to add a data band to a group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets a group footer. + + + + + Gets or sets a header band. + + + + + Gets or sets a footer band. + + + To access a group footer band, use the property. + + + + + Gets or sets the group condition. + + + This property can contain any valid expression. When running a report, this expression is calculated + for each data row. When the value of this condition is changed, FastReport starts a new group. + + + + + Gets or sets the sort order. + + + FastReport can sort data rows automatically using the value. + + + + + Gets or sets a value indicating that the group should be printed together on one page. + + + + + Gets or sets a value that determines whether to reset the page numbers when this group starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for headers and footers which support the "Keep With Data" and "Repeat on Every Page" features. + + + + + + + + Gets or sets a value indicating that the band should be printed together with data band. + + + + + Gets or sets a value that determines whether to repeat this band on every page. + + + When band is repeated, its property is set to true. You can use + it to show any additional information on the band. To do this, + use the property which + can be set to "Rpeeated". In that case the object will be printed + only on the repeated band. + + + + + + + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObject. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Implements the object's editor. + + + + + Invokes the object's editor. + + true if object was succesfully edited. + + This method is called by FastReport when the object is doubleclicked in the designer. + + + + + Provides the "search" functionality in the preview and designer. + + + + + Finds the specified text inside the object. + + Text to find. + true to perform case-sensitive search. + true to find whole words only. + Array of character ranges that describes the occurences of text found; + null if text not found. + + + + Draws the highlight to show the text found. + + Draw event arguments. + Range of characters to highlight. + + + + Represents a line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. Set the property to true + if you want to show a diagonal line. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating that the line is diagonal. + + + If this property is false, the line can be only horizontal or vertical. + + + + + Gets or sets the start cap settings. + + + + + Gets or sets the end cap settings. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report pages and dialog forms. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the snap size for this page. + + + + + Gets a page designer for this page type. + + The page designer. + + + + This method is called by the designer when you create a new page. + + + You may create the default page layout (add default bands, set default page size, etc). + + + + + Causes the page to refresh in the preview window. + + + Call this method when you handle object's MouseMove, MouseDown, MouseUp, MouseEnter, MouseLeave events + and want to refresh the preview window. + + If you have changed some objects on a page, the Refresh method will not save the changes. + This means when you print or export the page, you will see original (unmodified) page content. + If you want to save the changes, you have to use the method instead. + + + + + + Modifies the page content and refresh it in the preview window. + + + Call this method when you handle object's Click, MouseDown or MouseUp events + and want to modify an object and refresh the preview window. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Picture object that can display pictures. + + + The Picture object can display the following kind of pictures: + + + picture that is embedded in the report file. Use the + property to do this; + + + picture that is stored in the database BLOb field. Use the + property to specify the name of data column you want to show; + + + picture that is stored in the local disk file. Use the + property to specify the name of the file; + + + picture that is stored in the Web. Use the + property to specify the picture's URL. + + + Use the property to specify a size mode. The + and properties can be used to restrict the image size if SizeMode + is set to AutoSize. + The property can be used to display an image with + transparent background. Use the property if you want to display + semi-transparent image. + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image. + + + By default, image that you assign to this property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set the property to true right after you assign an image: + + myPictureObject.Image = new Bitmap("file.bmp"); + myPictureObject.ShouldDisposeImage = true; + + + + + + Gets or sets the expansion of image. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Gets or sets a hash of grayscale svg image + + + + + Gets or sets the color of the image that will be treated as transparent. + + + + + Gets or sets the transparency of the PictureObject. + + + Valid range of values is 0..1. Default value is 0. + + + + + Gets or sets a value indicating that the image should be tiled. + + + + + Gets or sets a value indicating that the image stored in the + property should be disposed when this object is disposed. + + + By default, image assigned to the property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set this property to true right after you assign an image to the property. + + + + + Gets or sets a bitmap transparent image + + + + + + + + + + + + + + + + + Draws the image. + + Paint event args. + + + + Sets image data to FImageData + + + + + + + + + + + + Loads image + + + + + Disposes image + + + + + + + + + + + + + + Forces loading the image from a data column. + + + Call this method in the AfterData event handler to force loading an image + into the property. Normally, the image is stored internally as byte[] array + and never loaded into the Image property, to save the time. The side effect is that you + can't analyze the image properties such as width and height. If you need this, call this method + before you access the Image property. Note that this will significantly slow down the report. + + + + + Initializes a new instance of the class with default settings. + + + + + the base class for all picture objects + + + + + Draw an error image to Graphics g, when the image is designing + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image rotation angle, in degrees. Possible values are 0, 90, 180, 270. + + + + + Gets or sets the data column name to get the image from. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + + + + Gets or sets the path for the image to display in the PictureObject. + + + This property may contain the path to the image file as well as external URL. + + + + + Gets or sets the expression that determines the source for the image to display in the PictureObject. + + + The result of the expression should be data column name or path to the image file. + The data column name will be saved to the property. + The path will be savetd to the property. + + + + + Gets a value indicating that the image stored in the databases column + + + + + Gets a value indicating that the image stored in the separate file + + + + + Gets a value indicating that the image stored in the Web + + + + + Gets or sets the maximum height of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets the maximum width of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets padding within the PictureObject. + + + + + Gets or sets a value indicating whether the PictureObject should display + the error indicator if there is no image in it. + + + + + Gets or sets a value that specifies how an image is positioned within a PictureObject. + + + + + + + + Gets or sets the alignment of a image in the border. + + + + + Return base size of image, internal use only + + + + + Return base size of image, internal use only + + + + + + + + + + + Calculates URI from ImageLocation + + + + + + + + + gets points for transform this image + + the box where to draw image + image width + image height + scale horizontal + scale vertical + offset of left + offset of top + out start of vectors + out end of frist vector + out end of second vector + + + + Loads image + + + + + Moves the point on specified angle + + + + + + + + + + + + Rotates vector on specified angle + + + + + + + + + + + Draws not tiled image + + + + + + + + Reset index of image + + + + + When auto size was updated, internal use only + + + + + + + + Represents a polygon object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + scale by width + scale by height + Always returns a non-empty path + + + + Draw polyline path to graphics + + Event arguments + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a poly line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + + + Add point to end of polyline and recalculate bounds after add. + Can be first point. + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + Add point to start of polyline and recalculate bounds after add + Can be first point + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + + + + + + + Replace points with star + + Minimum value is 3 + + + + + + + + + + + + + + + + + + + Insert point to desired place of polyline + Recalculate bounds after insert + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + + + + Insert point to near line + Recalculate bounds after insert + + local x - relative to left-top point + local y - relative to left-top point + depricated + Index of inserted point + + + + + + + + + + + + + + + + Delete point from polyline by index + Recalculate bounds after remove + + Index of point in polyline + + + + + + + Delete point from polyline by index. + Recalculate bounds. + + Index of point in polyline + + + + + + + + + + Returns best new point position based on mouse + + + + + + do not set this value, internal use only + + + + + Return points collection. + You can modify the collection for change this object. + + + + + Returns origin of coordinates relative to the top left corner + + + + + Returns origin of coordinates relative to the top left corner + + + + + Return points array of line + deprecated + + + + + Return point types array. 0 - Start of line, 1 - Keep on line + deprecated + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + Left boundary + Top boundary + Right boundary + Bottom boundary + scale by width + scale by height + Always returns a non-empty path + + + + Recalculate position and size of element + + + + + + + + Add point to end of polyline, need to recalculate bounds after add + First point must have zero coordinate and zero type. + Recalculate bounds. + Method is slow do not use this. + + local x - relative to left-top point + local y - relative to left-top point + depreceted + + + + Delete point from polyline by index. + Recalculate bounds. + Method is slow do not use this. + + Index of point in polyline + + + + Draw polyline path to graphics + + Event arguments + + + + Insert point to desired place of polyline + recalculateBounds(); + Method is slow do not use this + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + deprecated + + + + Represent a point for polygon object + + + + + Specifies the set of buttons available in the preview. + + + + + No buttons visible. + + + + + The "Print" button is visible. + + + + + The "Open" button is visible. + + + + + The "Save" button is visible. + + + + + The "Email" button is visible. + + + + + The "Find" button is visible. + + + + + The zoom buttons are visible. + + + + + The "Outline" button is visible. + + + + + The "Page setup" button is visible. + + + + + The "Edit" button is visible. + + + + + The "Watermark" button is visible. + + + + + The page navigator buttons are visible. + + + + + The "Close" button is visible. + + + + + The "Design" button is visible. + + + + + The "Copy Page" button is visible. + + + + + The "Delete Page" button is visible. + + + + + The "About" button is visible. + + + + + All buttons are visible. + + + + + Specifies the set of export buttons available in the preview. + + + + + No exports visible. + + + + + The "Prepared" button is visible. + + + + + The "PDFExport" button is visible. + + + + + The "RTFExport" button is visible. + + + + + The "HTMLExport" button is visible. + + + + + The "MHTExport" button is visible. + + + + + The "XMLExport" export button is visible. + + + + + The "Excel2007Export" button is visible. + + + + + The "Excel2003Document" button is visible. + + + + + The "Word2007Export" button is visible. + + + + + The "PowerPoint2007Export" button is visible. + + + + + The "ODSExport" button is visible. + + + + + The "ODTExport" button is visible. + + + + + The "XPSExport" export button is visible. + + + + + The "CSVExport" button is visible. + + + + + The "DBFExport" button is visible. + + + + + The "TextExport" button is visible. + + + + + The "ZplExport" button is visible. + + + + + The "ImageExport" button is visible. + + + + + The "XAMLExport" button is visible. + + + + + The "SVGExport" button is visible. + + + + + The "PPMLExport" button is visible. + + + + + The "PSExport" button is visible. + + + + + The "JsonExport" button is visible. + + + + + The "LaTeXExport" button is visible. + + + + + The "HpglExport" button is visible. + + + + + The All export buttons is visible. + + + + + Specifies the set of export in clouds buttons available in the preview. + + + + + No exports in clouds visible. + + + + + The "Box" button is visible. + + + + + The "Dropbox" button is visible. + + + + + The "FastCloud" button is visible. + + + + + The "Ftp" button is visible. + + + + + The "GoogleDrive" button is visible. + + + + + The "SkyDrive" button is visible. + + + + + The All export in clouds buttons is visible. + + + + + Specifies the set of export by messenger buttons available in the preview. + + + + + No exports by messengers visible. + + + + + The "Xmpp" button is visible. + + + + + The All export my messengers buttons is visible. + + + + + Contains some settings of the preview window. + + + + + Occurs when the standard preview window opened. + + + You may use this event to change the standard preview window, for example, add an own button to it. + The sender parameter in this event is the PreviewControl. + + + + + Gets or sets a set of buttons that will be visible in the preview's toolbar. + + + Here is an example how you can disable the "Print" and "EMail" buttons: + + Config.PreviewSettings.Buttons = PreviewButtons.Open | + PreviewButtons.Save | + PreviewButtons.Find | + PreviewButtons.Zoom | + PreviewButtons.Outline | + PreviewButtons.PageSetup | + PreviewButtons.Edit | + PreviewButtons.Watermark | + PreviewButtons.Navigator | + PreviewButtons.Close; + + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Specifies the set of exports by messengers that will be available in the preview's "save" menu. + + + + + Gets or sets the number of prepared pages that can be stored in the memory cache during preview. + + + Decrease this value if your prepared report contains a lot of pictures. This will + save the RAM memory. + + + + + Gets or sets a value indicating whether the preview window is displayed in the Windows taskbar. + + + + + Gets or sets a value indicating whether the preview window should be displayed as a topmost form. + + + + + Gets or sets the icon for the preview window. + + + + + Gets or sets the text for the preview window. + + + If no text is set, the default text "Preview" will be used. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Enables or disables the "Print to file" feature in the print dialog. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the PreviewSettings class with default settings. + + + + + Specifies the report printing mode. + + + + + Specifies the default printing mode. One report page produces + one printed paper sheet of the same size. + + + + + Specifies the split mode. Big report page produces several smaller paper sheets. + Use this mode to print A3 report on A4 printer. + + + + + Specifies the scale mode. One or several report pages produce one bigger paper sheet. + Use this mode to print A5 report on A4 printer. + + + + + Specifies the number of report pages printed on one paper sheet. + + + + + Specifies one report page per sheet. + + + + + Specifies two report pages per sheet. + + + + + Specifies four report pages per sheet. + + + + + Specifies eight report pages per sheet. + + + + + Specifies the pages to print. + + + + + Print all report pages. + + + + + Print odd pages only. + + + + + Print even pages only. + + + + + This class contains the printer settings. + It is used in the property. + + + Typical use of this class is to setup a printer properties without using the "Print" + dialog. In this case, setup necessary properties and turn off the dialog via the + property. + + + + + Gets or sets the printer name. + + + + + Gets or sets a value indicating that the printer name should be saved in a report file. + + + If this property is set to true, the printer name will be saved in a report file. + Next time when you open the report, the printer will be automatically selected. + + + + + Gets or sets a value indicating that the printing output should be send + to a file instead of a printer. + + + Also set the property. + + + + + The name of a file to print the report to. + + + This property is used if property is true. + + + + + Gets or sets a value specifies the page range to print. + + + + + Gets or sets the page number(s) to print. + + + This property is used if property is set to PageNumbers. + You can specify the page numbers, separated by commas, or the page ranges. + For example: "1,3,5-12". + + + + + Gets or sets the number of copies to print. + + + + + Gets or sets a value indicating whether the printed document should be collated. + + + + + Gets or sets a value specifies the pages to print. + + + + + Gets or sets a value determines whether to print pages in reverse order. + + + + + Gets or sets the duplex mode. + + + + + Gets or sets the paper source. + + + This property corresponds to the RAW source number. Default value is 7 which + corresponds to DMBIN_AUTO. + + + + + Gets or sets the print mode. + + + See the enumeration for details. If you use + the mode other than Default, you must specify the sheet size in the + , properties. + + + + + Gets or sets the width of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper width in millimeters. + + + + + Gets or sets the height of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper height in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + + + Gets or sets the number of pages per printed sheet. + + + This property is used if the property is set to Scale. + + + + + Gets or sets an array of printed copy names, such as "Original", "Copy", etc. + + + + + Specifies whether to display the "Print" dialog. + + + + + + + + Assigns values from another source. + + Source to assign from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a report object. + + + The instance of this class contains a report. Here are some common + actions that can be performed with this object: + + + To load a report, use the + method or call static method. + + + To save a report, call the method. + + + To register application dataset for use it in a report, call one of the + RegisterData methods. + + + To pass some parameter to a report, use the + method. + + + To design a report, call the method. + + + To run a report and preview it, call the method. + Another way is to call the method, then call the + method. + + + To run a report and print it, call the method. + Another way is to call the method, then call the + method. + + + To load/save prepared report, use one of the LoadPrepared and + SavePrepared methods. + + + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + The report consists of one or several report pages (pages of the + type) and/or dialog forms (pages of the type). + They are stored in the collection. In turn, each page may contain report + objects. See the example below how to create a simple report in code. + + This example shows how to create a report instance, load it from a file, + register the application data, run and preview. + + Report report = new Report(); + report.Load("reportfile.frx"); + report.RegisterData(application_dataset); + report.Show(); + + This example shows how to create simple report in code. + + Report report = new Report(); + // create the report page + ReportPage page = new ReportPage(); + page.Name = "ReportPage1"; + // set paper width and height. Note: these properties are measured in millimeters. + page.PaperWidth = 210; + page.PaperHeight = 297; + // add a page to the report + report.Pages.Add(page); + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create Text object and put it to the title + TextObject text = new TextObject(); + text.Name = "Text1"; + text.Bounds = new RectangleF(0, 0, Units.Millimeters * 100, Units.Millimeters * 5); + page.ReportTitle.Objects.Add(text); + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to a page + page.Bands.Add(data); + + + + + + Gets a reference to the report designer. + + + This property can be used when report is designing. In other cases it returns null. + + + + + Runs the report designer. + + true if report was modified, otherwise false. + + + + Runs the report designer. + + A value indicates whether the designer should run modally. + true if report was modified, otherwise false. + + + + Runs the report designer. + + The main MDI form which will be a parent for the designer. + true if report was modified, otherwise false. + + + + Gets the email settings such as recipients, subject, message body. + + + + + Gets or sets the report preview control. + + + Use this property to attach a custom preview to your report. To do this, place the PreviewControl + control to your form and set the report's Preview property to this control. + + + + + Gets the print settings such as printer name, copies, pages to print etc. + + + + + + + + + + Prepares the report and prints it. + + + + + Prints the report with the "Print" dialog. + Report should be prepared using the method. + + + + + Prints the report without the "Print" dialog. + Report should be prepared using the method. + + Printer-specific settings. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Prepares the report and shows it in the preview window. + + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Prepares the report and shows it in the preview window. + + The main MDI form which will be a parent for the preview window. + + + + Previews the report. The report should be prepared using the method. + + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Previews the prepared report. + + The main MDI form which will be a parent for the preview window. + + + + Shows the "Print" dialog. + + Printer-specific settings. + true if the dialog was closed by "Print" button. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Occurs when calc execution is started. + + + + + Occurs when report is inherited and trying to load a base report. + + + Typical use of this event is to load the base report from a database instead of a file. + + + + + Occurs when report execution is started. + + + + + Occurs when report execution is finished. + + + + + Occurs before export to set custom export parameters. + + + + + Gets the pages contained in this report. + + + This property contains pages of all types (report and dialog). Use the is/as operators + if you want to work with pages of ReportPage type. + + The following code demonstrates how to access the first report page: + + ReportPage page1 = report1.Pages[0] as ReportPage; + + + + + + Gets the report's data. + + + The dictionary contains all data items such as connections, data sources, parameters, + system variables. + + + + + Gets the collection of report parameters. + + + Parameters are displayed in the "Data" window under the "Parameters" node. + Typical use of parameters is to pass some static data from the application to the report. + You can print such data, use it in the data row filter, script etc. + Another way to use parameters is to define some reusable piece of code, for example, + to define an expression that will return the concatenation of first and second employee name. + In this case, you set the parameter's Expression property to something like this: + [Employees.FirstName] + " " + [Employees.LastName]. Now this parameter may be used in the report + to print full employee name. Each time you access such parameter, it will calculate the expression + and return its value. + You can create nested parameters. To do this, add the new Parameter to the + Parameters collection of the root parameter. To access the nested parameter, you may use the + method. + To get or set the parameter's value, use the and + methods. To set the parameter's expression, use the + method that returns a Parameter object and set its + Expression property. + + + + + Gets or sets the report information such as report name, author, description etc. + + + + + Gets or sets the base report file name. + + + This property contains the name of a report file this report is inherited from. + Note: setting this property to non-empty value will clear the report and + load the base file into it. + + + + + Gets or sets the absolute path to the parent report. + + + This property contains the absolute path to the parent report. + + + + + Gets or sets the name of a file the report was loaded from. + + + This property is used to support the FastReport.Net infrastructure; + typically you don't need to use it. + + + + + Gets or sets the report script. + + + The script contains the ReportScript class that contains all report objects' + event handlers and own items such as private fields, properties, methods etc. The script + contains only items written by you. Unlike other report generators, the script does not + contain report objects declarations, initialization code. It is added automatically when + you run the report. + By default this property contains an empty script text. You may see it in the designer + when you switch to the Code window. + If you set this property programmatically, you have to declare the FastReport + namespace and the ReportScript class in it. Do not declare report items (such as bands, + objects, etc) in the ReportScript class: the report engine does this automatically when + you run the report. + Security note: since the report script is compiled into .NET assembly, it allows + you to do ANYTHING. For example, you may create a script that will read/write files from/to a disk. + To restrict such operations, use the property. + + + + + Gets or sets the script language of this report. + + + Note: changing this property will reset the report script to default empty script. + + + + + Gets or sets a value indicating whether the null DB value must be converted to zero, false or + empty string depending on the data column type. + + + This property is true by default. If you set it to false, you should check + the DB value before you do something with it (for example, typecast it to any type, use it + in a expression etc.) + + + + + Gets or sets a value that specifies whether the report engine should perform the second pass. + + + Typically the second pass is necessary to print the number of total pages. It also + may be used to perform some calculations on the first pass and print its results on the + second pass. + Use the Engine.FirstPass, Engine.FinalPass properties to determine which + pass the engine is performing now. + + + + + Gets or sets a value that specifies whether to compress the report file. + + + The report file is compressed using the Gzip algorithm. So you can open the + compressed report in any zip-compatible archiver. + + + + + Gets or sets a value that specifies whether to use the file cache rather than memory + to store the prepared report pages. + + + + + Gets or sets a value that specifies the quality of text rendering. + + + Note: the default property value is TextQuality.Default. That means the report + may look different depending on OS settings. This property does not affect the printout. + + + + + Gets or sets a value that specifies if the graphic objects such as bitmaps + and shapes should be displayed smoothly. + + + + + Gets or sets the report password. + + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in this property before loading + the report. In this case the report will load silently. + Password-protected report file is crypted using Rijndael algorithm. + Do not forget your password! It will be hard or even impossible to open + the protected file in this case. + + + + + Gets or sets a value indicating whether it is necessary to automatically fill + DataSet registered with RegisterData call. + + + If this property is true (by default), FastReport will automatically fill + the DataSet with data when you trying to run a report. Set it to false if + you want to fill the DataSet by yourself. + + + + + Gets or sets the maximum number of generated pages in a prepared report. + + + Use this property to limit the number of pages in a prepared report. + + + + + Gets or sets the collection of styles used in this report. + + + + + Gets or sets an array of assembly names that will be used to compile the report script. + + + By default this property contains the following assemblies: "System.dll", "System.Drawing.dll", + "System.Windows.Forms.dll", "System.Data.dll", "System.Xml.dll". If your script uses some types + from another assemblies, you have to add them to this property. + + + + + Gets or sets a script event name that will be fired when the report starts. + + + + + Gets or sets a script event name that will be fired when the report is finished. + + + + + Gets a value indicating that report execution was aborted. + + + + + Gets or sets a value that determines whether to store the report in the application resources. + Use this property in the MS Visual Studio IDE only. + + + By default this property is true. When set to false, you should store your report + in a file. + + + + + Gets or sets the resource string that contains the report. + + + This property is used by the MS Visual Studio to store the report. Do not use it directly. + + + + + Gets a value indicating that this report contains dialog forms. + + + + + Gets or sets a set of permissions that will be restricted for the script code. + + + Since the report script is compiled into .NET assembly, it allows you to do ANYTHING. + For example, you may create a script that will read/write files from/to a disk. This property + is used to restrict such operations. + This example shows how to restrict the file IO operations in a script: + + using System.Security; + using System.Security.Permissions; + ... + PermissionSet ps = new PermissionSet(PermissionState.None); + ps.AddPermission(new FileIOPermission(PermissionState.Unrestricted)); + report1.ScriptRestrictions = ps; + report1.Prepare(); + + + + + + + Gets a reference to the graphics cache for this report. + + + This property is used to support the FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a pages of the prepared report. + + + + + Gets a reference to the report engine. + + + This property can be used when report is running. In other cases it returns null. + + + + + Gets or sets the initial page number for PageN/PageNofM system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the report operation that is currently performed. + + + + + Gets or sets the Tag object of the report. + + + + + Gets or sets the flag for refresh. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the report's fields. + + + This method is for internal use only. + + + + + Generates the file (.cs or .vb) that contains the report source code. + + Name of the file. + + Use this method to generate the report source code. This code can be attached to your project. + In this case, you will need to call the following code to run a report: + + SimpleListReport report = new SimpleListReport(); + report.RegisterData(your_dataset); + report.Show(); + + + + + + Calculates an expression and returns the result. + + The expression to calculate. + If report is running, returns the result of calculation. + Otherwise returns null. + + The expression may be any valid expression such as "1 + 2". The expression + is calculated in the report script's ReportScript class instance context, + so you may refer to any objects available in this context: private fields, + methods, report objects. + + + + + Calculates an expression and returns the result. + + The expression to calculate. + The value of currently printing object. + If report is running, returns the result of calculation. + Otherwise returns null. + + Do not call this method directly. Use the Calc(string expression) method instead. + + + + + Returns an expression value. + + The expression. + The value of currently printing object. + Returns the result of calculation. + + This method is for internal use only, do not call it directly. + + + + + Invokes the script event handler with given name. + + The name of the script method. + The method parameters. + + + + Gets the data column's value. Automatically converts null value to 0, false or "" + depending on the column type. + + The name of the data column including the datasource name. + If report is running, returns the column value. Otherwise returns null. + + The return value of this method does not depend on the property. + + + + string employeeName = (string)report.GetColumnValue("Employees.FirstName"); + + + + + + Gets the data column's value. This method does not convert null values. + + The name of the data column including the datasource name. + If report is running, returns the column value. + Otherwise returns null. + + + + Gets the report parameter with given name. + + The name of the parameter. + The object if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Gets a value of the parameter with given name. + + The name of the parameter. + The parameter's value if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Sets the parameter's value. + + The name of the parameter. + Value to set. + + Use this method to pass a value to the parameter that you've created in the "Data" window. + Such parameter may be used everythere in a report; for example, you can print its value + or use it in expressions. + You should call this method after the report was loaded and before you run it. + To access a nested parameter, use the "." separator: "MainParameter.NestedParameter" + + This method will create the parameter if it does not exist. + + + This example shows how to pass a value to the parameter with "MyParam" name: + + // load the report + report1.Load("report.frx"); + // setup the parameter + report1.SetParameterValue("MyParam", 10); + // show the report + report1.Show(); + + + + + + Gets a value of the system variable with specified name. + + Name of a variable. + The variable's value if found, otherwise null. + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise 0. + This method converts null values to 0 if the property is set to true. + Use the method if you don't want the null conversion. + + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise null. + + + + Gets the datasource with specified name. + + Alias name of a datasource. + The datasource object if found, otherwise null. + + + + + + + Aborts the report execution. + + + + + + + + + + + Updates the report component's styles. + + + Call this method if you change the collection. + + + + + Sets prepared pages. + + + + + + This method fires the StartReport event and the script code connected + to the StartReportEvent. + + + + + This method fires the FinishReport event and the script code connected + to the FinishReportEvent. + + + + + Runs the Export event. + + ExportReportEventArgs object. + + + + Add the name of the assembly (in addition to the default) that will be used to compile the report script + + Assembly name + + For example: report.AddReferencedAssembly("Newtonsoft.Json.dll") + + + + + Add the names of the assembly (in addition to the default) that will be used to compile the report script + + Assembly's names + + + + + + + + + + Saves the report to a stream. + + The stream to save to. + + + + Saves the report to a file. + + The name of the file to save to. + + + + Loads report from a stream. + + The stream to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a file. + + The name of the file to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a string. + + The string that contains a stream in UTF8 or Base64 encoding. + + + + Saves the report to a string. + + The string that contains a stream. + + + + Saves the report to a string using the Base64 encoding. + + The string that contains a stream. + + + + Creates the report instance and loads the report from a stream. + + The stream to load from. + The new report instance. + + + + Creates the report instance and loads the report from a file. + + The name of the file to load from. + The new report instance. + + + + Creates the report instance and loads the report from a string. + + The string that contains a stream in UTF8 encoding. + The new report instance. + + + + Registers the application dataset with all its tables and relations to use it in the report. + + The application data. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1); + + + + + + Registers the application dataset with all its tables and relations to use it in the report and enables all its tables. + + The application data. + The boolean value indicating whether all tables should be enabled. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, true); + + + + + + Registers the application dataset with specified name. + + The application data. + The name of the data. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind"); + + + + + + Registers the application dataset with specified name and enables all its tables. + + The application data. + The name of the data. + The boolean value indicating whether all tables should be enabled. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind", true); + + + + + + Registers the application data table to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1.Tables["Orders"], "Orders"); + + + + + + Registers the application data view to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myDataView, "OrdersView"); + + + + + + Registers the application data relation to use it in the report. + + The application data. + The name of the data. + + You may specify any value for the name parameter: it is not displayed anywhere + in the designer and used only to load/save a report. The name must be persistent + and unique for each registered relation. + + + + report1.Load("report.frx"); + report1.RegisterData(myDataRelation, "myRelation"); + + + + + + Obsolete. Registers the application business object to use it in the report. + + Application data. + Name of the data. + Not used. + Maximum nesting level of business objects. + + This method is obsolete. Use the method instead. + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myBusinessObject, "Customers"); + + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + Maximum nesting level of business objects. + + This method creates initial datasource with specified nesting level. It is useful if + you create a report in code. In most cases, you don't need to specify the nesting level + because it may be selected in the designer's "Choose Report Data" dialog. + + + + + Registers the application cube link to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myCubeLink, "Orders"); + + + + + + Prepares the report. + + true if report was prepared succesfully. + + + + Prepares the report. + + Specifies whether the new report should be added to a + report that was prepared before. + true if report was prepared succesfully. + + Use this method to merge prepared reports. + + This example shows how to merge two reports and preview the result: + + Report report = new Report(); + report.Load("report1.frx"); + report.Prepare(); + report.Load("report2.frx"); + report.Prepare(true); + report.ShowPrepared(); + + + + + + Prepares the report with pages limit. + + Pages limit. The number of pages equal or less will be prepared. + true if report was prepared succesfully. + + + + For internal use only. + + + + + For internal use only. + + + + + Refresh the current report. + + + Call this method in the Click or MouseUp event handler of a report object to refresh + the currently previewed report. Report will be generated again, but without dialog forms. + + + + + Refresh prepared report after intercative actions. + + + + + Prepare page + + + + + + Exports a report. Report should be prepared using the method. + + The export filter. + Stream to save export result to. + + + + Exports a report. Report should be prepared using the method. + + The export filter. + File name to save export result to. + + + + Saves the prepared report. Report should be prepared using the method. + + File name to save to. + + + + Saves the prepared report. Report should be prepared using the method. + + Stream to save to. + + + + Loads the prepared report from a .fpx file. + + File name to load form. + + + + Loads the prepared report from a .fpx file. + + Stream to load from. + + + + Initializes a new instance of the class with default settings. + + + + + Ensure that static constructor is called. + + + + + Create name for all unnamed elements with prefix and start with number + + Prefix for name + Number from which to start + + + + The style of the report object markers. + + + + + Rectangle marker. + + + + + Small markers at the object's corners. + + + + + Base class for all report objects. + + + + + + + + + + + + + + + + + Assigns a format from another, similar object. + + Source object to assign a format from. + + + + + + + + + + Draws the object's markers. + + Draw event arguments. + + + + Draws the object's markers. + + Draw event arguments. + Marker style + + + + + + + + + + + + + This event occurs when the user moves the mouse over the object in the preview window. + + + + + This event occurs when the user releases the mouse button in the preview window. + + + + + This event occurs when the user clicks the mouse button in the preview window. + + + + + This event occurs when the mouse enters the object's bounds in the preview window. + + + + + This event occurs when the mouse leaves the object's bounds in the preview window. + + + + + Copies event handlers from another similar object. + + The object to copy handlers from. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method is fired when the user scrolls the mouse in the preview window. + + Event data. + + + + This event occurs before the object is added to the preview pages. + + + + + This event occurs after the object was added to the preview pages. + + + + + This event occurs after the object was filled with data. + + + + + This event occurs when the user clicks the object in the preview window. + + + + + Gets or sets a value that determines if the object can be exported. + + + + + Gets or sets a string containing expression that determines should be object exported. + + + + + Gets or sets an object's border. + + + + + Gets or sets an object's fill. + + + The fill can be one of the following types: , , + , . + To set the solid fill color, use the simpler property. + + This example shows how to set the new fill and change its properties: + + textObject1.Fill = new SolidFill(Color.Green); + (textObject1.Fill as SolidFill).Color = Color.Red; + + + + + + Gets or sets the fill color in a simple manner. + + + This property can be used in a report script to change the fill color of the object. It is + equivalent to: reportComponent1.Fill = new SolidFill(color); + + + + + Gets or sets a bookmark expression. + + + This property can contain any valid expression that returns a bookmark name. This can be, for example, + a data column. To navigate to a bookmark, you have to use the property. + + + + + Gets or sets a hyperlink. + + + The hyperlink is used to define clickable objects in the preview. + When you click such object, you may navigate to the external url, the page number, + the bookmark defined by other report object, or display the external report. + Set the Kind property of the hyperlink to select appropriate behavior. + Usually you should set the Expression property of the hyperlink to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to + something fixed (URL or page number, for example) you also may set the Value + property instead of Expression. + + + + + Determines if the object can grow. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object will grow to display all the information that it contains. + + + + + Determines if the object can shrink. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object can shrink to remove the unused space. + + + + + Determines if the object must grow to the band's bottom side. + + + If the property is set to true, object grows to the bottom side of its parent. This is useful if + you have several objects on a band, and some of them can grow or shrink. + + + + + Gets or sets a shift mode of the object. + + + See enumeration for details. + + + + + Gets or sets the style name. + + + Style is a set of common properties such as border, fill, font, text color. The Report + has a set of styles in the property. + + + + + Gets or sets a style name that will be applied to even band rows. + + + Style with this name must exist in the collection. + + + + + Gets or sets a style name that will be applied to this object when the mouse pointer is over it. + + + Style with this name must exist in the collection. + + + + + Gets or sets a value that determines which properties of the even style to use. + + + Usually you will need only the Fill property of the even style to be applied. If you want to + apply all style settings, set this property to StylePriority.UseAll. + + + + + Gets or sets a value that determines where to print the object. + + + See the enumeration for details. + + + + + Gets or sets a script event name that will be fired before the object will be printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was filled with data. + + + + + Gets or sets a script event name that will be fired when the user click the object in the preview window. + + + + + Determines if the object has custom border and use only Border.Width, Border.Style and + Border.Color properties. + + + This flag is used to disable some toolbar buttons when such object is selected. Applicable to the + ShapeObject and LineObject. + + + + + Determines if the object uses the Border. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Determines if the object uses the fill. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Gets or sets a value indicates that object should not be added to the preview. + + + + + Determines if serializing the Style property is needed. + + + The Style property must be serialized last. Some ancestor classes may turn off the standard Style + serialization and serialize it by themselves. + + + + + Determines if an object can provide the hyperlink value automatically. + + + This flag is used in complex objects such as Matrix or Chart. These objects can provide + a hyperlink value automatically, depending on where you click. + + + + + Gets an object's parent band. + + + + + Gets an object's parent data band. + + + + + Gets or sets an object's cursor shape. + + + This property is used in the preview mode. + + + + + Gets or sets a script event name that will be fired when the user + moves the mouse over the object in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + releases the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + clicks the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse enters the object's bounds in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse leaves the object's bounds in the preview window. + + + + + + + + Applies the style settings. + + Style to apply. + + + + Saves the current style. + + + + + Restores the current style. + + + + + Draws the object's background. + + Draw event arguments. + + + + + + + Determines if the object is visible on current drawing surface. + + Draw event arguments. + + + + + + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + + + + Checks if there are any listeners to the Click event. + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Performs a finalization after the report is finished. + + + This method is used by the report engine, do not call it directly. + + + + + Saves the object's state before printing it. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should save any object properties that may be changed during the object printing. + The standard implementation saves the object's bounds, visibility, bookmark and hyperlink. + + + + + Restores the object's state after printing it. + + + This method is called by the report engine after processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should restore the object properties that were saved by the method. + + + + + Calculates the object's height. + + Actual object's height, in pixels. + + Applicable to objects that contain several text lines, such as TextObject. Returns the height needed + to display all the text lines. + + + + + Gets the data from a datasource that the object is connected to. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should get the data from a datasource that the object is connected to. + + + + + + + + This method fires the BeforePrint event and the script code connected to the BeforePrintEvent. + + Event data. + + + + This method fires the AfterPrint event and the script code connected to the AfterPrintEvent. + + Event data. + + + + This method fires the AfterData event and the script code connected to the AfterDataEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific + to the ReportComponentBase. + + + + + The "Can Grow" menu item. + + + + + The "Can Shrink" menu item. + + + + + The "Grow to Bottom" menu item. + + + + + The "Hyperlink" menu item. + + + + + The "Style" menu item. + + + + + Initializes a new instance of the ReportComponentBaseMenu + class with default settings. + + The reference to a report designer. + + + + Represents a report page. + + + To get/set a paper size and orientation, use the , + and properties. Note that paper size is measured in millimeters. + Report page can contain one or several bands with report objects. Use the , + , , , + , , properties + to get/set the page bands. The property holds the list of data bands or groups. + Thus you may add several databands to this property to create master-master reports, for example. + + Report page can contain bands only. You cannot place report objects such as TextObject on a page. + + + + This example shows how to create a page with one ReportTitleBand and DataBand bands and add + it to the report. + + ReportPage page = new ReportPage(); + // set the paper in millimeters + page.PaperWidth = 210; + page.PaperHeight = 297; + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to the page + page.Bands.Add(data); + // add page to the report + report.Pages.Add(page); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets a value indicating that imperial units (inches, hundreths of inches) are used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + + + + Gets or sets the paper source for the first printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the first page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for all printed pages except the first one. + + + + This property represents the paper source (printer tray) that will be used when printing + all pages except the first one and the last one. To set source for first and last pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for the last printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the last page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the printer duplex mode that will be used when printing this page. + + + + + This event occurs when the report engine starts this page. + + + + + This event occurs when the report engine finished this page. + + + + + This event occurs when the report engine is about to print databands in this page. + + + + + Gets or sets a width of the paper, in millimeters. + + + + + Gets or sets the page name on export + + + + + Gets or sets a height of the paper, in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + This property stores the RawKind value of a selected papersize. It is used to distiguish + between several papers with the same size (for ex. "A3" and "A3 with no margins") used in some + printer drivers. + It is not obligatory to set this property. FastReport will select the + necessary paper using the PaperWidth and PaperHeight values. + + + + + Gets or sets a value indicating whether the page has unlimited height. + + + + + Gets or sets the value indicating whether the unlimited page should be printed on roll paper. + + + + + Gets or sets a value indicating whether the page has unlimited width. + + + + + Get or set the current height of unlimited page. + + + + + Get or set the current width of unlimited page. + + + + + Gets the current page height in pixels. + + + + + Gets the current page width in pixels. + + + + + Gets or sets a value indicating that page should be in landscape orientation. + + + When you change this property, it will automatically swap paper width and height, as well as paper margins. + + + + + Gets or sets the left page margin, in millimeters. + + + + + Gets or sets the top page margin, in millimeters. + + + + + Gets or sets the right page margin, in millimeters. + + + + + Gets or sets the bottom page margin, in millimeters. + + + + + Gets or sets a value indicating that even pages should swap its left and right margins when + previewed or printed. + + + + + Gets the page columns settings. + + + + + Gets or sets the page border that will be printed inside the page printing area. + + + + + Gets or sets the page background fill. + + + + + Gets or sets the page watermark. + + + To enabled watermark, set its Enabled property to true. + + + + + Gets or sets a value indicating that ReportTitle band should be printed before the + PageHeader band. + + + + + Gets or sets an outline expression. + + + For more information, see property. + + + + + Gets or sets a value indicating whether to start to print this page on a free space of the previous page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating that FastReport engine must reset page numbers before printing this page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating whether the page has extra width in the report designer. + + + This property may be useful if you work with such objects as Matrix and Table. + + + + + Gets or sets a value indicating whether this page will start on an odd page only. + + + This property is useful to print booklet-type reports. Setting this property to true + means that this page will start to print on an odd page only. If necessary, an empty page + will be added to the prepared report before this page will be printed. + + + + + Uses this page as a back page for previously printed pages. + + + + + Gets or sets a report title band. + + + + + Gets or sets a report summary band. + + + + + Gets or sets a page header band. + + + + + Gets or sets a page footer band. + + + + + Gets or sets a column header band. + + + + + Gets or sets a column footer band. + + + + + Gets or sets an overlay band. + + + + + Gets the collection of data bands or group header bands. + + + The Bands property holds the list of data bands or group headers. + Thus you may add several databands to this property to create master-master reports, for example. + + + + + Gets or sets the page guidelines. + + + This property hold all vertical guidelines. The horizontal guidelines are owned by the bands (see + property). + + + + + Gets or sets the reference to a parent SubreportObject that owns this page. + + + This property is null for regular report pages. See the for details. + + + + + Gets or sets a script event name that will be fired when the report engine starts this page. + + + + + Gets or sets a script event name that will be fired when the report engine finished this page. + + + + + Gets or sets a script event name that will be fired when the report engine is about + to print databands in this page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the StartPage event and the script code connected to the StartPageEvent. + + + + + This method fires the FinishPage event and the script code connected to the FinishPageEvent. + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains settings that will be applied to the Report component. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs after printing a report. + + + + + Occurs when progress state is changed. + + + + + Gets or sets a value that determines whether to show the progress window + when perform time-consuming operations such as run, print, export. + + + + + Gets or sets a value that determines whether to show the information about + the report performance (report generation time, memory consumed) in the + lower right corner of the preview window. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Occurs when discovering the structure of business object of ICustomTypeDescriptor type + with no instance specified. + + + The event handler must return an instance of that type. + + + + + Gets or sets the default script language. + + + + + Gets or sets the default paper size used when creating a new report. + + + + + Gets or sets a value indicating that the business object engine will use property values + when possible to discover the BO structure. + + + + + Gets or sets the default path for root of PictureObject.ImageLocation path. + + + + + Initializes a new instance of the class. + + + + + Represents a report summary band. + + + + + This property is not relevant to this class. + + + + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Alignment" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Aligns left edges of the selected objects. + + + + + Aligns right edges of the selected objects. + + + + + Aligns centers of the selected objects. + + + + + Aligns top edges of the selected objects. + + + + + Aligns bottom edges of the selected objects. + + + + + Aligns middles of the selected objects. + + + + + Makes the selected objects the same width as the first object. + + + + + Makes the selected objects the same height as the first object. + + + + + Makes the selected objects the same size as the first object. + + + + + Centers the selected objects horizontally. + + + + + Centers the selected objects vertically. + + + + + Aligns the selected objects to the grid. + + + + + Adjusts the size of selected objects to the grid. + + + + + Spaces the selected objects horizontally. + + + + + Increases horizontal spacing between the selected objects. + + + + + Decreases horizontal spacing between the selected objects. + + + + + Removes horizontal spacing between the selected objects. + + + + + Spaces the selected objects vertically. + + + + + Increases vertical spacing between the selected objects. + + + + + Decreases vertical spacing between the selected objects. + + + + + Removes vertical spacing between the selected objects. + + + + + Holds the list of selected objects of type. Used by the + . + + + + + Gets a value indicating that report page is selected. + + + + + Gets a value indicating that report is selected. + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Border and Fill" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. + If you want to access all selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Gets a value indicating whether the object with simple border is selected. + + + When the object has a simple border, you cannot change individual border lines. + Example of such an object is the "Shape" and "Line" objects. + + + + + Gets a value indicating whether the border operations are enabled. + + + + + Gets a value indicating whether the fill operations are enabled. + + + + + Sets the solid fill color for the selected objects. + + Fill color. + + + + Sets the fill for the selected objects. + + Fill. + + + + Sets the style for the selected objects. + + Style name. + + + + Sets the hyperlink for the selected objects. + + Hyperlink. + Indicates whether to modify the object's appearance. + Indicates whether it is necessary to change designer's modified state. + + + + Sets the CanGrow flag for the selected objects. + + Flag value. + + + + Sets the CanShrink flag for the selected objects. + + Flag value. + + + + Sets the GrowToBottom flag for the selected objects. + + Flag value. + + + + Toggles the specified border line for the selected objects. + + Border line. + Toggle value. + + + + Sets the border color for the selected objects. + + Border color. + + + + Sets the border width for the selected objects. + + Border width. + + + + Sets the border style for the selected objects. + + Border style. + + + + Sets the border for the selected objects. + + Border. + + + + Invokes the fill editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the border editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the hyperlink editor for the selected objects. + + true if editor was closed by the OK button. + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Text" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Sets the font name for the selected objects. + + Font name. + + + + Sets the font size for the selected objects. + + Font size. + + + + Toggles the specified font style for the selected objects. + + Font style. + Toggle value. + + + + Sets the horizontal text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the vertical text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the text color for the selected objects. + + Text color. + + + + Sets the angle for the selected objects. + + Angle to set. + + + + Sets the AutoWidth property value for the selected objects. + + Value to set. + + + + Sets the WordWrap property value for the selected objects. + + Value to set. + + + + Sets the highlight conditions for the selected objects. + + Highlight conditions. + + + + Clears the text of the selected objects. + + + + + Invokes the highlight editor for the selected objects. + + true if editor was closed with the OK button. + + + + Represents a shape object. + + + Use the property to specify a shape. To set the width, style and color of the + shape's border, use the Border.Width, Border.Style and Border.Color properties. + + + + + + + + + + + Gets or sets a shape kind. + + + + + Gets or sets a shape curvature if is RoundRectangle. + + + 0 value means automatic curvature. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for smart tags. + + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + Smart tag is internally a ContextMenuStrip. + + + + + + Gets the underlying context menu. + + + + + Gets the report object that invokes this smart tag. + + + + + Gets the report designer. + + + + + Called when the menu item is clicked. + + + Override this method to define a reaction on the menu item click. + + + + + Creates the smart tag menu items. + + + Override this method to create the smart tag menu. + + + + + Displays a smart tag at the specified screen location. + + + Do not call this method directly. It is called automatically when click on smart tag button. + + Screen location. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the base class for the report style or the highlight condition. + + + + + Gets or sets a value determines that the border must be applied. + + + + + Gets or sets a value determines that the fill must be applied. + + + + + Gets or sets a value determines that the font must be applied. + + + + + Gets or sets a value determines that the text fill must be applied. + + + + + Gets or sets a border. + + + + + Gets or sets a fill. + + + + + Gets or sets a font. + + + + + Gets or sets a text fill. + + + + + Initializes a new instance of the class with default settings. + + + + + Assigns values from another source. + + Source to assign from. + + + + Deserializes the style. + + Reader object. + + This method is for internal use only. + + + + + Serializes the style. + + Writer object. + + This method is for internal use only. + + + + + Represents a subreport object. + + + To create a subreport in code, you should create the report page first and + connect it to the subreport using the property. + + The following example shows how to create a subreport object in code. + + // create the main report page + ReportPage reportPage = new ReportPage(); + reportPage.Name = "Page1"; + report.Pages.Add(reportPage); + // create report title band + reportPage.ReportTitle = new ReportTitleBand(); + reportPage.ReportTitle.Name = "ReportTitle1"; + reportPage.ReportTitle.Height = Units.Millimeters * 10; + // add subreport on it + SubreportObject subreport = new SubreportObject(); + subreport.Name = "Subreport1"; + subreport.Bounds = new RectangleF(0, 0, Units.Millimeters * 25, Units.Millimeters * 5); + reportPage.ReportTitle.Objects.Add(subreport); + // create subreport page + ReportPage subreportPage = new ReportPage(); + subreportPage.Name = "SubreportPage1"; + report.Pages.Add(subreportPage); + // connect the subreport to the subreport page + subreport.ReportPage = subreportPage; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a report page that contains the subreport bands and objects. + + + + + Gets or sets a value indicating that subreport must print its objects on a parent band to which it belongs. + + + Default behavior of the subreport is to print subreport objects they own separate bands. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a paragraph format for a new html rendering type, not for others rendering + + + + + Gets or sets a value that determines if the text object should handle its width automatically. + + + + + Gets or sets a value that indicates whether the font size should shrink to + display the longest text line without word wrap. + + + To limit the minimum size, use the property. + + + + + Gets or sets the minimum size of font (or minimum width ratio) if the + mode is on. + + + This property determines the minimum font size (in case the property is set to + FontSize), or the minimum font width ratio (if AutoShrink is set to FontWidth). + The default value is 0, that means no limits. + + + + + Gets or sets the horizontal alignment of a text in the TextObject object. + + + + + Gets or sets the vertical alignment of a text in the TextObject object. + + + + + Gets or sets the text angle, in degrees. + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + Gets or sets a value that indicates if lines are automatically word-wrapped. + + + + + Gets or sets a value that determines if the text object will underline each text line. + + + + + Gets or sets the font settings for this object. + + + + + Gets or sets a collection of TAB symbol positions, in pixels. + + Use collection methods to add or remove TAB positions. + + + + Gets or sets the fill color used to draw a text. + + + Default fill is . You may specify other fill types, for example: + + text1.TextFill = new HatchFill(Color.Black, Color.White, HatchStyle.Cross); + + Use the property to set the solid text color. + + + + + Gets or sets the text outline. + + + + + Gets or sets the text color in a simple manner. + + + This property can be used in a report script to change the text color of the object. It is + equivalent to: textObject1.TextFill = new SolidFill(color); + + + + + Gets or sets the string trimming options. + + + + + Gets or sets the width ratio of the font. + + + Default value is 1. To make a font wider, set a value grether than 1; to make a font narrower, + set a value less than 1. + + + + + Gets or sets the height of single text line, in pixels. + + + + + Gets or sets the offset of the first TAB symbol. + + + + + Gets or sets the width of TAB symbol, in pixels. + + + + + Gets or sets a value that indicates if text should be clipped inside the object's bounds. + + + + + Gets the collection of conditional highlight attributes. + + + Conditional highlight is used to change the visual appearance of the Text object + depending on some condition(s). For example, you may highlight negative values displayed by + the Text object with red color. To do this, add the highlight condition: + + TextObject text1; + HighlightCondition highlight = new HighlightCondition(); + highlight.Expression = "Value < 0"; + highlight.Fill = new SolidFill(Color.Red); + highlight.ApplyFill = true; + text1.Highlight.Add(highlight); + + + + + + Gets or sets a value that indicates if the text object should display its contents similar to the printout. + + + + + Forces justify for the last text line. + + + + + Allows handling html tags in the text. + + + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Indicates handling html tags in the text. + + To set the value use the TextRenderer property. + + + + The type of text render + + /// + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Gets or sets the paragraph offset, in pixels. For HtmlParagraph use ParagraphFormat.FirstLineIndent. + + + + + Cache for inline images + + + + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + Base class for text objects such as and . + + + This class implements common functionality of the text objects. + + + + + + + + + + + + + + Gets or sets a value indicating that the object's text may contain expressions. + + + + + Gets or sets the symbols that will be used to find expressions in the object's text. + + + The default property value is "[,]". As you can see, the open and close symbols are + separated by the comma. You may use another symbols, for example: "<,>" or "<%,%>". + You should use different open and close symbols. + + + + + Gets or sets the object's text. + + + Text may contain expressions and data items, for example: "Today is [Date]". + When report is running, all expressions are calculated and replaced with actual + values, so the text would be "Today is 01.01.2008". + + + + + Gets or sets padding within the text object. + + + + + Gets or sets a value indicating that zero values must be hidden. + + + + + Gets or sets a value that will be hidden. + + + Use this property to specify a value that you would like to hide. For example, specify "0" + if you want to hide zero values, or use property to do this. + You also may use this property to hide default DateTime values (such as 1/1/1900). + In this case you need to specify a string containing both date and time, for example: + "1/1/1900 0:00:00". + + FastReport uses the ToString conversion to compare the expression value with this property. + This conversion depends on regional settings selected in the Control Panel, so be aware of this + if you going to distribute your report worldwide. + + + + + + Gets or sets a string that will be displayed instead of a null value. + + + + + Gets or sets the formatter that will be used to format data in the Text object. + + + The default formatter does nothing, i.e. it shows expression values with no formatting. + To set another formatting, create a new formatter and assign it to this property. + If there are several expressions in the text, use the property + to format each expression value. + + This example shows how to set currency formatter. + + TextObject text1; + text1.Format = new CurrencyFormat(); + + + + + + Gets or sets a value that specifies how the report engine processes this text object. + + + Use this property to perform such task as "print a total value in the group header". Normally, + all total values are calculated in the footers (for example, in a group footer). If you try to print + a total value in the group header, you will get 0. If you set this property to + ProcessAt.DataFinished, FastReport will do the following: + + + print the object (with wrong value); + + + print all related data rows; + + + calculate the correct object's value and replace old (wrong) value with the new one. + + + + This option will not work if you set the to true. + + + + + + Gets the collection of formatters. + + + This property is used to set format for each expression contained in the text. + For example, if the TextObject contains two expressions: + Today is [Date]; Page [PageN] + you can use the following code to format these expressions separately: + + text1.Formats.Clear(); + text1.Formats.Add(new DateFormat()); + text1.Formats.Add(new NumberFormat()); + + + + + + Gets or sets a value that determines how to display duplicate values. + + + + + Gets a value of expression contained in the object's text. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObjectBase. + + + + + The "Format" menu item. + + + + + The "Allow Expressions" menu item. + + + + + The "Hide Zeros" menu item. + + + + + Initializes a new instance of the TextObjectBaseMenu + class with default settings. + + The reference to a report designer. + + + + The class introduces some menu items specific to the TextObject. + + + + + The "Clear" menu item. + + + + + The "Auto Width" menu item. + + + + + The "Word Wrap" menu item. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Represents a zip code object. + + + This object is mainly used in Russia to print postal index on envelopes. It complies with the + GOST R 51506-99. + + + + + + + + + + + + + + + + + + + + Gets or sets the width of a single zipcode segment, in pixels. + + + + + Gets or sets the height of a single zipcode segment, in pixels. + + + + + Gets or sets the spacing between origins of segments, in pixels. + + + + + Gets or sets the number of segments in zipcode. + + + + + Gets or sets a value indicating whether the reference markers should be drawn. + + + Reference markers are used by postal service to automatically read the zipcode. + + + + + Gets or sets a value indicating whether the segment grid should be drawn. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the zip code. + + + + + Gets or sets the zip code. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with the default settings. + + + + + Box cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Box storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Box client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FastCloud storage client. + + + + + Gets or sets the access token. + + + + + Gets the report URL that can be used to download report from cloud. + + + + + Initializes a new instance of the class. + + + + + + + + Gets the access token. + + The access token string. + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Gets the proxy settings. + + The proxy settings. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FTP storage client. + + + + + Gets or sets the FTP server. + + + + + Gets or sets the username. + + + + + Gets or sets the password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + + + + + + + Represents form of the FTP storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all cloud storage clients. + + + + + Gets or sets the filename. + + + + + Gets or set the information is user authorized or not. + + + + + Gets or sets the proxy settings of a client. + + + + + Initializes a new instance of the class. + + + + + Prepares report before it will be saved to cloud storage. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Creates a MemoryStream instance using a Stream instance. + + The Stream instance that should be converted. + The MemoryStream instance. + + + + Saves a memory stream to cloud. + + The memory stream that should be saved. + + + + Saves the report to cloud storage. + + The report template that should be saved. + The export filter that should export template before. + + + + + Saves the stream to cloud storage. + + The stream that contains report. + The filename in which stream will be saved in cloud. + + + + Represents form of Dropbox storage client. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + Shows a dialog window. + + Modal result. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl. + + + + + Represents the Application Info diabolg form. + + + + + Gets the access token. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Dropbox cloud storage client. + + + + + The base URL for files_put command. + + + + + Gets or sets the application access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Dropbox application access token. + + + + + + + Represents form of Dropbox storage client. + + + + + Initializes a new instance of the class. + + The Dropbox access token. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Gets the client Auth key. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Google Drive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Google Drive storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Google Drive client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the information about SkyDrive application. + + + + + Gets or sets the client name. + + + + + Gets or sets the client ID. + + + + + Gets or sets the client secret. + + + + + Initializes a new instance of the class. + + The client name. + The client ID. + The client secret. + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of SkyDrive storage client. + + + + + Initializes a new instance of the class. + + The SkyDrive client info. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SkyDrive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL string. + + + + Gets the access token. + + The access token value. + + + + Represents the base form for cloud storage web browsers. + + + + + Gets or sets the url string. + + + + + Initizlizes a new instance of the class. + + + + + Initializes a new instance of the class. + + The url string. + + + + Handle the web browser form shown event. + + The event sender. + The event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The web browser component. + + + + + Represents an HTTP request method. + + + + + GET request method. + + + + + POST request method. + + + + + PUT request method. + + + + + Static class that contains HTTP utilities. + + + + + Encodes the URL string. + + The URL string. + The encoded URL string. + + + + Encodes the dictionary with URL parameters. + + The dictionary with parameters. + The encoded string. + + + + Decodes the URL string. + + The URL string. + The decoded URL string. + + + + Represents the consumer. + + + + + Gets the consumer key. + + + + + Gest the consumer secret. + + + + + Gets the consumer's signature method. + + + + + Initializes a new instance of the class. + + The consumer key. + The consumer secret. + + + + Represents parser for parse OAuth responses. + + + + + Parses token information in stream. + + The stream for parse. + The OAuth token. + + + + Parses token information in stream for SkyDrive. + + The stream for parse. + The SkyDrive access token. + + + + Parses token information in stream for Google Drive. + + The stream for parse. + The Google Drive access token. + + + + Parses token information in stream for FastCloud. + + The stream for parse. + The FastCloud access token. + + + + Represents the service provider. + + + + + Gets the request token URL. + + + + + Gets the user authorization URL. + + + + + Gets the callback URL. + + + + + Gets the access token URL. + + + + + Initializes a new instance of the class with a specified parameters. + + The request token URL. + The user authorization URL. + The callback URL. + The access token URL. + + + + Represents the OAuth token credentials. + + + + + Gets the token key. + + + + + Gets the token secret. + + + + + Initializes a new instance of the class. + + The token key. + The token secret. + + + + API for OAuth protocol. + + + + + Builds signed URL. + + The base token URL. + The HTTP method. + The consumer context. + The request token. + Signed URL. + + + + Represents the signature method. + + + + + Signature method PLAINTEXT. + + + + + Signature method HMAC-SHA1. + + + + + Signature method RSA-SHA1. + + + + + Represents proxy settings of the cloud storage. + + + + + Gets or sets the type of proxy. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + The type of proxy. + The proxy server. + The port number of server. + The username. + The user's password. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Provides utils for the web request. + + + + + Sets proxy settings for web request. + + The web request. + The cloud proxy settings. + + + + Represents the parameter of http request. + + + + + Gets the name of a request parameter. + + + + + Gets the value of a request parameter. + + + + + Initializes a naw instance of the class with a specified parameters. + + The name of a request parameter. + The value of a request paramter. + + + + Comparer class for comparing request parameters. + + + + + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Represents the crossview object that is used to print cube slice or slicegrid. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a value indicating whether to show a X Axis fields Caption. + + + + + Gets or sets a value indicating whether to show a Y Axis fields Caption. + + + + + Gets or sets a matrix style. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a cube source. + + + + + Gets the object that holds data of Cube + + + See the class for more details. + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents interface of the source for object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The descriptor that is used to describe one CrossView data cell. + + + The class is used to define one data cell of the CrossView. + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the CrossView data cells is stored + in the CrossViewObject.Data.Cells property. + + + + + Gets a value indicating that this is the "GrandTotal" element on X axis. + + + + + Gets a value indicating that this is the "GrandTotal" element on Y axis. + + + + + Gets a value indicating that this is the "Total" element on X axis. + + + + + Gets a value indicating that this is the "Total" element on Y axis. + + + + + Gets the name of field in X axis. + + + + + Gets the name of field in Y axis. + + + + + Gets the name of measure in cube. + + + + + Gets the x coordinate. + + + + + Gets the y coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name in X axis. + The Field Name in Y axis. + The Measure Name. + Indicates the "XTotal" element. + Indicates the "YTotal" element. + Indicates the "XGrandTotal" element. + Indicates the "YGrandTotal" element. + + + + Initializes a new instance of the class + + + + + Represents a collection of CrossView data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the CrossView descriptors. + + + This class contains three collections of descriptors such as , + and . Descriptors are filled from FastCube Slice. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + CrossViewObject crossView; + // change the fill color of the first matrix cell + crossView.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of CrossView header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + The descriptor that is used to describe one element of the CrossView header. + + + The class is used to define one header element of the CrossView + (either the column element or row element). + To set visual appearance of the element, use the + property. + The collection of descriptors used to represent the CrossView header is stored + in the CrossViewObject.Data.Columns and CrossViewObject.Data.Rows properties. + + + + + Gets a value indicating that this is the "GrandTotal" element. + + + + + Gets a value indicating that this is the "Total" element. + + + + + Gets a value indicating that this is the "Measure" element. + + + + + Gets the name of field in cube. + + + + + Gets the name of measure in cube. + + + + + Gets the cell coordinate. + + + + + Gets the size in cell coordinate. + + + + + Gets the level coordinate. + + + + + Gets the size in level coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name. + The Measure Name. + Indicates the "Total" element. + Indicates the "GrandTotal" element. + Indicates the "Measure" element. + + + + Initializes a new instance of the class + + + + + Represents a Windows CheckBox. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal CheckBox. + + + + + Gets or sets the value that determines the appearance of a CheckBox control. + Wraps the property. + + + + + Gets or sets the horizontal and vertical alignment of the check mark on a CheckBox control. + Wraps the property. + + + + + Gets or set a value indicating whether the CheckBox is in the checked state. + Wraps the property. + + + + + Gets or sets the state of the CheckBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the CheckBoxControl class with default settings. + + + + + Represents a Windows combo box control. + Wraps the control. + + + + + + + + + + + + + + Occurs after the selection has been changed. + Wraps the event. + + + + + Occurs each time an owner-drawn ComboBox item needs to be drawn and + when the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes. + Wraps the event. + + + + + Gets an internal ComboBox. + + + + + Gets or sets a value indicating whether your code or the operating system will handle drawing of elements in the list. + Wraps the property. + + + + + Gets or sets a value specifying the style of the combo box. + Wraps the property. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + Wraps the property. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets the height of an item in the combo box. + Wraps the property. + + + + + Gets a collection of the items contained in this ComboBox. + Wraps the property. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the combo box are sorted. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the index specifying the currently selected item. + Wraps the property. + + + + + Gets or sets currently selected item in the ComboBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Initializes a new instance of the ComboBoxControl class with default settings. + + + + + Implements base behavior of button controls. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value that indicates whether the control resizes based on its contents. + Wraps the property. + + + + + Gets or sets the image that is displayed on a button control. + Wraps the property. + + + + + Gets or sets the alignment of the image on the button control. + Wraps the property. + + + + + Gets or sets the alignment of the text on the button control. + Wraps the property. + + + + + Gets or sets the position of text and image relative to each other. + Wraps the property. + + + + + + + + + + + Represents a Windows button control. + Wraps the control. + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal Button. + + + + + Gets or sets a value that is returned to the parent form when the button is clicked. + Wraps the property. + + + + + + + + Initializes a new instance of the ButtonControl class with default settings. + + + + + Displays a ListBox in which a check box is displayed to the left of each item. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Occurs after item's check state was changed. + Wraps the event. + + + + + Gets an internal CheckedListBox. + + + + + Gets or sets a value indicating whether the check box should be toggled when an item is selected. + Wraps the property. + + + + + Collection of checked indexes in this CheckedListBox. + Wraps the property. + + + + + Collection of checked items in this CheckedListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ItemCheck event and the script code connected to the ItemCheckEvent. + + Event data. + + + + Initializes a new instance of the CheckedListBoxControl class with default settings. + + + + + Displays a hierarchical collection of labeled items, each represented by a TreeNode. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs after the tree node is selected. + Wraps the event. + + + + + Gets an internal TreeView. + + + + + Gets or sets a value indicating whether check boxes are displayed next to the tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between the tree nodes that are at the root of the tree view. + Wraps the property. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + Wraps the property. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + Wraps the property. + + + + + Gets or sets the tree node that is currently selected in the tree view control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + This method fires the AfterSelect event and the script code connected to the AfterSelectEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Windows text box control. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal TextBox. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + Wraps the property. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box control types a TAB character in the control instead of moving the focus to the next control in the tab order. + Wraps the property. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + Wraps the property. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + Wraps the property. + + + + + Gets or sets a value indicating whether this is a multiline TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + Wraps the property. + + + + + Gets or sets which scroll bars should appear in a multiline TextBox control. + Wraps the property. + + + + + Gets or sets how text is aligned in a TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + Wraps the property. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the TextBoxControl class with default settings. + + + + + Enables the user to select a single option from a group of choices when paired with other RadioButton controls. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal RadioButton. + + + + + Gets or sets the location of the check box portion of the RadioButton. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is checked. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the RadioButtonControl class with default settings. + + + + + Represents a Windows picture box control for displaying an image. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal PictureBox. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + Gets or sets the image that the PictureBox displays. + Wraps the property. + + + + + Indicates how the image is displayed. + Wraps the property. + + + + + + + + Initializes a new instance of the PictureBoxControl class with default settings. + + + + + Base class for controls that may contain child controls. + + + + + + + + + + + + + + + + + Gets the collection of child controls. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the ParentControl class with default settings. + + + + + Used to group collections of controls. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + Gets an internal Panel. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + + + + + + + Initializes a new instance of the PanelControl class with default settings. + + + + + Represents a Windows spin box (also known as an up-down control) that displays numeric values. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs when the Value property has been changed in some way. + Wraps the event. + + + + + Gets an internal NumericUpDown. + + + + + Gets or sets the number of decimal places to display in the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether the up-down control should display the value it contains in hexadecimal format. + Wraps the property. + + + + + Gets or sets the value to increment or decrement the up-down control when the up or down buttons are clicked. + Wraps the property. + + + + + Gets or sets the maximum value for the up-down control. + Wraps the property. + + + + + Gets or sets the minimum value for the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the up-down control when appropriate. + Wraps the property. + + + + + Gets or sets the value assigned to the up-down control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the NumericUpDownControl class with default settings. + + + + + Represents a Windows control that enables the user to select a date using a visual monthly calendar display. + Wraps the control. + + + + + + + + + + + + + + + + + Occurs when the date selected in the MonthCalendar changes. + Wraps the event. + + + + + Gets an internal MonthCalendar. + + + + + Gets or sets the number of columns and rows of months displayed. + Wraps the property. + + + + + Gets or sets the first day of the week as displayed in the month calendar. + Wraps the property. + + + + + Gets or sets the maximum allowable date. + Wraps the property. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + Wraps the property. + + + + + Gets or sets the minimum allowable date. + Wraps the property. + + + + + Gets or sets a value indicating whether the date represented by the TodayDate property is displayed at the bottom of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether today's date is circled. + Wraps the property. + + + + + Gets or sets a value indicating whether the month calendar control displays week numbers (1-52) to the left of each row of days. + Wraps the property. + + + + + Gets or sets the value that is used by MonthCalendar as today's date. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which annual days are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to bold. + Wraps the property. + + + + + Gets or sets the end date of the selected range of dates. + Wraps the property. + + + + + Gets or sets the selected range of dates for a month calendar control. + Wraps the property. + + + + + Gets or sets the start date of the selected range of dates. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the DateChanged event and the script code connected to the DateChangedEvent. + + Event data. + + + + Initializes a new instance of the MonthCalendarControl class with default settings. + + + + + Uses a mask to distinguish between proper and improper user input. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal MaskedTextBox. + + + + + Gets or sets the input mask to use at run time. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to reenter literal values. + Wraps the property. + + + + + Gets or sets how text is aligned in a masked text box control. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the MaskedTextBoxControl class with default settings. + + + + + Represents a Windows list view control, which displays a collection of items that can be displayed using one of four different views. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the checked state of an item changes. + Wraps the event. + + + + + Occurs when the index of the selected item in the list view control changes. + Wraps the event. + + + + + Gets an internal ListView. + + + + + Gets or sets a value indicating whether a check box appears next to each item in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether multiple items can be selected. + Wraps the property. + + + + + Gets or sets a value indicating whether items are displayed in groups. + Wraps the property. + + + + + Gets or sets how items are displayed in the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the indexes of the currently checked items in the control. + Wraps the property. + + + + + Gets the currently checked items in the control. + Wraps the property. + + + + + Gets the collection of all column headers that appear in the control. + Wraps the property. + + + + + Gets the collection of ListViewGroup objects assigned to the control. + Wraps the property. + + + + + Gets a collection containing all items in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as large icons in the control. + Wraps the property. + + + + + Gets the indexes of the selected items in the control. + Wraps the property. + + + + + Gets the items that are selected in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as small icons in the control. + Wraps the property. + + + + + + + + + + + + + + This method fires the ItemChecked event and the script code connected to the ItemCheckedEvent. + + Event data. + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + Initializes a new instance of the ListViewControl class with default settings. + + + + + Base class for list box controls such as ListBoxControl, CheckedListBoxControl. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the SelectedIndex property has changed. + Wraps the event. + + + + + Occurs when an owner-drawn ListBox is created and the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ListBox changes. + Wraps the event. + + + + + Gets or sets the width of columns in a multicolumn ListBox. + Wraps the property. + + + + + Gets or sets the drawing mode for the control. + Wraps the property. + + + + + Gets or sets the height of an item in the ListBox. + Wraps the property. + + + + + Gets the items of the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox supports multiple columns. + Wraps the property. + + + + + Gets or sets the method in which items are selected in the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the ListBox are sorted alphabetically. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox can recognize and expand tab characters when drawing its strings. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBox. + Wraps the property. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets the currently selected item in the ListBox. + Wraps the property. + + + + + Gets a collection containing the currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Represents a standard Windows label. + Wraps the control. + + + + + + + + Gets an internal Label. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. + Wraps the property. + + + + + Gets or sets the alignment of text in the label. + Wraps the property. + + + + + + + + Initializes a new instance of the LabelControl class with default settings. + + + + + Displays data in a customizable grid. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal DataGridView. + + + + + Gets or sets the data source that the DataGridView is displaying data for. + + + + + Gets or sets a value indicating whether the option to add rows is displayed to the user. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to delete rows from the DataGridView. + Wraps the property. + + + + + Gets or sets the default cell style applied to odd-numbered rows of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating how column widths are determined. + Wraps the property. + + + + + Gets or sets a value indicating how row heights are determined. + Wraps the property. + + + + + Gets or sets the background color of the DataGridView. + Wraps the property. + + + + + Gets or sets the border style for the DataGridView. + Wraps the property. + + + + + Gets the cell border style for the DataGridView. + Wraps the property. + + + + + Gets the border style applied to the column headers. + Wraps the property. + + + + + Gets or sets the default column header style. + Wraps the property. + + + + + Gets or sets the height, in pixels, of the column headers row. + Wraps the property. + + + + + Gets or sets a value indicating whether the height of the column headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the column header row is displayed. + Wraps the property. + + + + + Gets the collection of objects that represents the grid columns. + + + + + Gets or sets the default cell style to be applied to the cells in the DataGridView if no other cell style properties are set. + Wraps the property. + + + + + Gets or sets the color of the grid lines separating the cells of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the DataGridView at a time. + Wraps the property. + + + + + Gets a value indicating whether the user can edit the cells of the DataGridView control. + Wraps the property. + + + + + Gets or sets the border style of the row header cells. + Wraps the property. + + + + + Gets or sets the default style applied to the row header cells. + Wraps the property. + + + + + Gets or sets a value indicating whether the column that contains row headers is displayed. + Wraps the property. + + + + + Gets or sets the width, in pixels, of the column that contains the row headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the width of the row headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets the default style applied to the row cells of the DataGridView. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display for the DataGridView control. + Wraps the property. + + + + + Gets or sets a value indicating how the cells of the DataGridView can be selected. + Wraps the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the GridControl class with default settings. + + + + + Represents the special kind of report page that wraps the + and used to display dialog forms. + + + Use the property to add/remove controls to/from a dialog form. + If you set the Visible property to false, this dialog form will be + skippen when you run a report. + + This example shows how to create a dialog form with one button in code. + + DialogPage form = new DialogPage(); + // set the width and height in pixels + form.Width = 200; + form.Height = 200; + form.Name = "Form1"; + // create a button + ButtonControl button = new ButtonControl(); + button.Location = new Point(20, 20); + button.Size = new Size(75, 25); + button.Text = "The button"; + // add the button to the form + form.Controls.Add(button); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs before a form is displayed for the first time. + Wraps the event. + + + + + Occurs after the form is closed. + Wraps the event. + + + + + Occurs before the form is closed. + Wraps the event. + + + + + Occurs whenever the form is first displayed. + Wraps the event. + + + + + Occurs when the form is resized. + Wraps the event. + + + + + Occurs when the form is redrawn. + Wraps the event. + + + + + Gets an internal Form. + + + + + Gets or sets an active state in Web application. + + + + + Gets or sets the button on the form that is clicked when the user presses the ENTER key. + Wraps the property. + + + + + Gets or sets the button control that is clicked when the user presses the ESC key. + Wraps the property. + + + + + Gets the auto scale dimensions for this form. + + + + + Gets or sets the background color for the form. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the border style of the form. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the text associated with this form. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the collection of controls contained within the form. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shows the form as a modal dialog box with the currently active window set as its owner. + Wraps the method. + + One of the DialogResult values. + + + + This method fires the Load event and the script code connected to the LoadEvent. + + Event data. + + + + This method fires the FormClosed event and the script code connected to the FormClosedEvent. + + Event data. + + + + This method fires the FormClosing event and the script code connected to the FormClosingEvent. + + Event data. + + + + This method fires the Shown event and the script code connected to the ShownEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Initializes a new instance of the DialogPage class. + + + + + Base class for all dialog controls such as ButtonControl, TextBoxControl. + + + + + Determines whether is necessary to serialize the BackColor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Cursor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Font property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the ForeColor property. + + true if serialization is necessary. + + + + + + + Draws the selection point. + + Graphics object to draw on. + object. + object. + Left coordinate. + Top coordinate. + + + + + + + + + + Creates the empty event handler for the ClickEvent event in the report's script. + + true if event handler was created successfully. + + + + + + + Occurs when the control is clicked. + Wraps the event. + + + + + Occurs when the control is double-clicked. + Wraps the event. + + + + + Occurs when the control is entered. + Wraps the event. + + + + + Occurs when the input focus leaves the control. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is released while the control has focus. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is pressed. + Wraps the event. + + + + + Occurs when the mouse pointer is moved over the control. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is released. + Wraps the event. + + + + + Occurs when the mouse pointer enters the control. + Wraps the event. + + + + + Occurs when the mouse pointer leaves the control. + Wraps the event. + + + + + Occurs when the control is resized. + Wraps the event. + + + + + Occurs when the Text property value changes. + Wraps the event. + + + + + Occurs when the control is redrawn. + Wraps the event. + + + + + Gets an internal Control. + + + + + Gets or sets the background color for the control. + Wraps the property. + + + + + Gets or sets the cursor that is displayed when the mouse pointer is over the control. + Wraps the property. + + + + + Gets or sets a value indicating whether the control can respond to user interaction. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the foreground color of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the tab order of the control within its container. + Wraps the property. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + Wraps the property. + + + + + Gets or sets the text associated with this control. + Wraps the property. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is displayed. + Wraps the property. + + + + + Gets or sets a property that returns actual data contained in a control. This value is used + in the "Data" window. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + Called when the control's Enabled state changed. + + + + + Attaches Control events to its event handlers. + + + Override this method if your custom control has own events. + + See the example of AttachEvents implementation used in the CheckBoxControl: + + protected override void AttachEvents() + { + base.AttachEvents(); + CheckBox.CheckedChanged += new EventHandler(CheckBox_CheckedChanged); + } + + private void CheckBox_CheckedChanged(object sender, EventArgs e) + { + if (CheckedChanged != null) + CheckedChanged(this, e); + InvokeEvent(CheckedChangedEvent, e); + } + + + + + + Detaches Control events from its event handlers. + + + Override this method if your custom control has own events. In this method, you should + detach control's events that were attached in the method. + + See the example of DetachEvents implementation used in the CheckBoxControl: + + protected override void DetachEvents() + { + base.DetachEvents(); + CheckBox.CheckedChanged -= new EventHandler(CheckBox_CheckedChanged); + } + + + + + + + + + + + + Initializes the control before display it in the dialog form. + + + This method is called when report is run. + + + + + Finalizes the control after its parent form is closed. + + + This method is called when report is run. + + + + + Sets input focus to the control. + + + + + Conceals the control from the user. + + + + + Displays the control to the user. + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + This method fires the DoubleClick event and the script code connected to the DoubleClickEvent. + + Event data. + + + + This method fires the Enter event and the script code connected to the EnterEvent. + + Event data. + + + + This method fires the Leave event and the script code connected to the LeaveEvent. + + Event data. + + + + This method fires the KeyDown event and the script code connected to the KeyDownEvent. + + Event data. + + + + This method fires the KeyPress event and the script code connected to the KeyPressEvent. + + Event data. + + + + This method fires the KeyUp event and the script code connected to the KeyUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the TextChanged event and the script code connected to the TextChangedEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Base class for all dialog components. + + + + + + + + + + + + + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets the height and width of the control. + + + + + + + + Initializes a new instance of the DialogComponentBase class with default settings. + + + + + Represents the control with two lists (available items and selected items). + + + The control allows to select one or several items and then filter the datasource which it is connected to. + All you need is to setup the DataColumn property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value indicating that the items must be sorted. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the DataSelectorControl class with default settings. + + + + + Represents a Windows control that allows the user to select a date and a time and to display the date and time with a specified format. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs after the date has been changed. + Wraps the event. + + + + + Gets an internal DateTimePicker. + + + + + Gets or sets a value indicating whether the Value property has been set with a valid date/time value and the displayed value is able to be updated. + Wraps the property. + + + + + Gets or sets the custom date/time format string. + Wraps the property. + + + + + Gets or sets the alignment of the drop-down calendar on the DateTimePicker control. + Wraps the property. + + + + + Gets or sets the format of the date and time displayed in the control. + Wraps the property. + + + + + Gets or sets the maximum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets the minimum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Wraps the property. + + + + + Gets or sets a value indicating whether a spin button control (also known as an up-down control) is used to adjust the date/time value. + Wraps the property. + + + + + Gets or sets the date/time value assigned to the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the DateTimePickerControl class with default settings. + + + + + Represents the 's column. + Wraps the class. + + + + + Gets or sets the mode by which the column automatically adjusts its width. + Wraps the property. + + + + + Gets or sets the data column attached to this column. + + + + + Gets or sets the caption text on the column's header cell. + Wraps the property. + + + + + Gets or sets the column's default cell style. + Wraps the property. + + + + + Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control. + Wraps the property. + + + + + Gets or sets the current width of the column. + Wraps the property. + + + + + Gets or sets a value indicating whether the column is visible. + Wraps the property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the GridControlColumn class with default settings. + + + + + Represents the collection of GridControl columns. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + + + + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows rich text box control. + Wraps the control. + + + + + Gets an internal RichTextBox. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display in the RichTextBox control. + Wraps the property. + + + + + + + + Loads rtf from a file. + + File to load from. + + + + Loads rtf from a stream using specified stream type. + + Stream to load from. + Type of a stream. + + + + Loads rtf from a file using specified stream type. + + File to load from. + Type of a stream. + + + + Initializes a new instance of the RichTextBoxControl class with default settings. + + + + + Represents a Windows control that displays a frame around a group of controls with an optional caption. + Wraps the control. + + + + + Gets an internal GroupBox. + + + + + Initializes a new instance of the GroupBoxControl class with default settings. + + + + + The base class for all controls that support the data filtering feature. + + + The data filtering allows you to bind the control to a . + It will be automatically filled by data from the datasource's column. When you select/check + item(s) and close the dialog with OK button, it will filter the datasource according to your selection. + You can set the filter operation using the property. + + + + + Occurs after the control is filled with data. + + + + + Gets or sets a value that determines whether to fill the control with data automatically. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a value that determines whether to filter the datasource automatically + when you close the dialog by OK button. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a data column name that will be used to fill this control with data. + + + This property must contain both datasource name and column name, for example: + Orders.OrderID. You also may use relations, for example: Orders.Customers.CompanyName. + + + + + Gets or sets name of report parameter which value will be set to value contained + in this control when you close the dialog. + + + + + Gets or sets a value that specifies the filter operation. + + + + + Gets or sets the detail control used in cascaded filtering. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Fills the control with data. + + The data source. + The data column. + Here is the example of FillData method implementation: + + protected override void FillData(DataSourceBase dataSource, Column column) + { + Items.Clear(); + dataSource.First(); + while (dataSource.HasMoreRows) + { + Items.Add(dataSource[column].ToString()); + dataSource.Next(); + } + } + + + + + + Returns list of values that can be used to fill control with data. + + The data source. + The data column. + List of string values. + + This method is used by the FillData method to fill list-type controls + such as ListBox with data. The result list contains distinct values. + + + + + Returns value entered in the control. + + The value of type supported by this control. + + This method must return a value entered by the user. For example, TextBox + control must return its Text property value. If this control supports multi-selection, + return selected values in an array, for example string[] array for CheckedListBox. + + + + + Handles the cascaded filter internal logic. + + + This method should be called in your custom dialog control that supports data filtering. + Call it when the value in your control is changed. + + + + + + + + + + + + + + Fills the control with data from a datasource. + + + Call this method if you set the property to false. + + + + + Fills the control with data from a datasource. + + Parent data source + + Call this method if you need to implement cascaded filter. In the parentData parameter, + pass the parent data source that will be used to set up master-detail relationship with + data source in this control. + + + + + Fills the control with data from a datasource. + + Parent control + + Call this method if you need to implement cascaded filter. In the parentControl parameter, + pass the parent control which performs filtering on a parent data source. + + + + + Applies the filter to a datasource. + + + Call this method if you set the property to false. + + + + + Resets the filter set by this control. + + + + + This method fires the DataLoaded event and the script code connected to the DataLoadedEvent. + + Event data. + + + + Initializes a new instance of the DataFilterBaseControl class with default settings. + + + + + Represents the collection of dialog components. + + + + + Gets or sets a component. + + The index of a component in this collection. + The component with specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows control to display a list of items. + Wraps the control. + + + + + Gets an internal ListBox. + + + + + + + + + + + Initializes a new instance of the ListBoxControl class with default settings. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all forms. + + + + + The event occurs on form's dpi change. + + + + + Convenience method returns an image with specified index for this form's dpi. + + Image index. + The image. + + + + Convenience method returns an image with specified name for this form's dpi. + + Image resource name. + The image. + + + + Convenience method returns an imagelist for this form's dpi. + + The imagelist. + + + + Localizes the dialog controls. + + + Use this method to set control's captions specific to the current locale. + + + + + + + + Update controls on dpi change. + + This method is called when the form's dpi is changed. Write custom logic to update + some controls (such as ListBox.ItemHeight) here. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Editor for rearrangement Exports Menu elements + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The form for message box with text editor + + + + + Gets or sets text + + + + + Defualt constructor + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base form for all export options dialog forms. + + + + + Represents the "Open after export" button visibility. + + + + + Gets a reference to the currently editing export filter. + + + + + + + + + + + Called when editing is done. + + + Override this method to pass edited values from the dialog controls to the export filter. + + See the example of this method implementation that is used in the ImageExport. + + protected override void Done() + { + base.Done(); + ImageExport imageExport = Export as ImageExport; + imageExport.ImageFormat = (ImageExportFormat)cbxImageFormat.SelectedIndex; + imageExport.Resolution = (int)udResolution.Value; + imageExport.JpegQuality = (int)udQuality.Value; + imageExport.SeparateFiles = cbSeparateFiles.Checked; + } + + + + + + + + + Initializes controls with initial values. + + The export filter to edit. + + Override this method to pass values from the export filter to the dialog controls. + + See the example of this method implementation that is used in the ImageExport. + + public override void Init(ExportBase export) + { + base.Init(export); + ImageExport imageExport = Export as ImageExport; + cbxImageFormat.SelectedIndex = (int)imageExport.ImageFormat; + udResolution.Value = imageExport.Resolution; + udQuality.Value = imageExport.JpegQuality; + cbSeparateFiles.Checked = imageExport.SeparateFiles; + } + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + "Page Range" groupbox. + + + + + "Page Numbers" label. + + + + + "Page Numbers" textbox. + + + + + "Page Numbers" radiobutton. + + + + + "Current Page" radiobutton. + + + + + "All Pages" radiobutton. + + + + + PageControl. + + + + + Pages panel. + + + + + "Open after export" checkbox. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Splash Screen showing during loading designer + + + + + Initializes a new instance of the class. + + + + + Filters mouse events. + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Welcome window displayed on the designer startup + + + + + Initializes a new instance of the class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The "Advanced Connection Properties" form. + + + + + Gets or sets the connection string builder which contains the connection properties. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the FastReport exception form. + + + + + + + + Creates a new instance ofthe form. + + The exception object which data to display in the form. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + Gets Aborted state + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for barcode editor + + + + + Generated text for barcode object + + + + + Initializes a new instance of the class. + + Text data for parsing + Report object for nodes + Brackets symbols + Editor for rich barcode? + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all dialog forms with two buttons, OK and Cancel. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The OK button. + + + + + The Cancel button. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for designer plugin's options page. + + + Use this class if you develop a designer plugin that may be configured in the + "View|Options..." menu. You need to implement an options page for your + plugin and return it in the IDesignerPlugin.GetOptionsPage method. + + + + + The TabControl control. + + + + + The TabPage control. + + + + + Initializes controls on this options page. + + + Override this method to fill options page's controls with initial values. + + + + + Finalizes the options page. + + The dialog result. + + Override this method to pass controls' values to the plugin. Do this if result is + DialogResult.OK. + + + + + Updates images used in the control. + + + + + Initializes a new instance of the DesignerOptionsPage class with default settings. + + + Usually you need to define another contructor which takes one parameter - the plugin. + + This example shows how to define own constructor which takes a plugin: + + public DialogPageOptions(DialogPageDesigner pd) : base() + { + FPageDesigner = pd; + InitializeComponent(); + } + + + + + + read current token, returns next + + + + + + + + read current token, returns next + + + + + + + + ignore current token, read from next, returns current i.e not next + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the report engine. + + + + + Shows band at the current position. + + Band to show. + + After the band is shown, the current position is advanced by the band's height. + + + + + Gets or sets the current X offset. + + + This property specifies the X offset where the current band will be printed. + + + + + Gets or sets the current Y offset. + + + This property specifies the Y offset where the current band will be printed. + After the band is printed, this value is incremented by the band's height. + + + + + Gets the index of currently printing column in the multi-column report. + + + This value is 0-based. + + + + + Gets or sets index of current prepared page the current band will print on. + + + Note: the page with specified index must exists. This property is used to print side-by-side + subreports and Table object. Usually you don't need to use it. + + + + + Gets the current page width, in pixels. + + + This property returns a paper width minus left and right margins. + + + + + Gets the current page height, in pixels. + + + This property returns a paper height minus top and bottom margins. + + + + + Gets the value indicating whether the page has unlimited height. + + + + + Gets the value indicating whether the page has unlimited width. + + + + + Gets or sets the current height of unlimited page. + + + + + Gets or sets the current width of unlimited page. + + + + + Gets the height of page footer (including all its child bands), in pixels. + + + + + Gets the height of column footer (including all its child bands), in pixels. + + + + + Gets the free space on the current page, in pixels. + + + This property returns the page height minus footers height minus CurY value. + + + + + Gets the current prepared page number. + + + This value is 1-based. The initial value (usually 1) is set in the Report.InitialPageNumber property. + + + + + Gets the number of total pages in a prepared report. + + + To use this property, your report must be two-pass. Set the + property to true. + + + + + Gets the string that represents the current page number. + + + This property returns a locale-based value, for example: "Page 1". + + + + + Gets the string that represents the "Page N of M" number. + + + This property returns a locale-based value, for example: "Page 1 of 10". + + + + + Gets the current row number of currently printing band. + + + This value is 1-based. It resets to 1 on each new group. + + + + + Gets the running current row number of currently printing band. + + + This value is 1-based. + + + + + Gets the date of report start. + + + + + Gets a value indicating whether the report is executing the final pass. + + + This property is true if report is one-pass, or if report is two-pass and + the second pass is executing. + + + + + Gets a value indicating whether the report is executing the first pass. + + + This property is true if report is one-pass, or if report is two-pass and + the first pass is executing. + + + + + Gets a level of hierarchy when printing hierarchical bands. + + + The first level of hierarchy has 0 index. + + + + + Gets the row number like "1.2.1" when printing hierarchical bands. + + + + + Returns true of keeping is enabled + + + + + Returns keeping position + + + + + Starts the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Ends the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Gets xml containing outline nodes. + + + + + Creates a new outline element with specified text. + + Text of element. + + After you call this method, the element will be added to the current position in the outline. + The next call to AddOutline will add new element as a child of this element. + To shift the position, use the or + OutlineUp methods. + + + + + Sets the current outline position to root. + + + + + Shifts the current outline position one level up. + + + + + Creates a new bookmark with specified name at current position. + + + + + + Gets a page number for the specified bookmark name. + + Name of bookmark. + Page number if bookmark with such name found; 0 otherwise. + + Use this method to print the table of contents in your report. Normally it can be done + using bookmarks. + + You must set your report to double pass to use this method. + + + + + + Resets the logical page numbers. + + + + + Called when the number of pages increased during DoublePass + + + + + Starts a new page. + + + + + Starts a new column. + + + + + Processes the specified text object which ProcessAt property is set to Custom. + + The text object to process. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents a linear gauge. + + + + + + + + + + + Gets or sets the value that specifies inverted gauge or not. + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a linear pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Initializes a new instance of the + + The parent gauge object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a linear gauge. + + + + + + + + + + + + + + + + + Returns centr of the gauge + + + + + The number of radians in one degree + + + + + Gets or sets the Radial Gauge type + + + + + Gats or sets the Radial Gauge position. Doesn't work for Full Radial Gauge. + + + + + Gets or sets the semicircles offset + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Radial Gauge types + + + + + Full sized gauge + + + + + Half of the radial gauge + + + + + Quarter of the radial gauge + + + + + Radial Gauge position types + + + + + None + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + Represents a linear pointer. + + + + + Gets or sets the value, indicating that gradient should be rotated automatically + + + + + Initializes a new instance of the + + The parent gauge object. + The scale object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple progress gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Gets scale. Should be disabled for SimpleProgressGauge + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Gets or sets the number of fractional digits + + + + + + + + + + + + + + SimpleProgressGauge pointer types + + + + + Full sized pointer + + + + + Small pointer + + + + + + + + Gets or sets the pointer type + + + + + Gets or sets the small pointer width ratio + + + + + + + + + + + + + + Represents a simple gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a simple pointer. + + + + + Gets o sets the Left offset of gauge pointer. + + + + + Gets o sets the Top offset of gauge pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Gets or sets the pointer ratio. + + + + + Gets or sets the pointer horizontal offset (cm). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple scale. + + + + + Gets or sets the first subscale (top or left). + + + + + Gets or sets the second subscale (right or bottom). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represent the subscale of simple scale. + + + + + Gets or sets a value that specifies enabled subscale or not. + + + + + Gets or sets a value that specifies show caption or not. + + + + + Initializes a new instance of the class. + + + + + Copies the contents of another SimpleSubScale. + + The SimpleSubScale instance to copy the contents from. + + + + Serializes the SimpleSubScale. + + Writer object. + SimpleSubScale property name. + Another SimpleSubScale to compare with. + + This method is for internal use only. + + + + + Represents a gauge object. + + + + + + + + + + + + + + Gets or sets the minimal value of gauge. + + + + + Gets or sets the maximal value of gauge. + + + + + Gets or sets the currenta value of gauge. + + + + + Gets or sets scale of gauge. + + + + + Gets or sets pointer of gauge. + + + + + Gets or sets gauge label. + + + + + Gets or sets an expression that determines the value of gauge object. + + + + + Gets a value that specifies is gauge vertical or not. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + Scale of gauge. + Pointer of gauge. + + + + + + + + + + + + + Draws the gauge. + + Draw event arguments. + + + + + + + Clone Gauge Object + + clone of this object + + + + Represents a label of a gauge. + + + + + Gets or sets the label text + + + + + Gets or sets the label font + + + + + Gets or sets the label color + + + + + Gets or sets the label parent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Label text + Label font + Label color + Label parent + + + + Copies the contents of another GaugeLabel. + + The GaugeLabel instance to copy the contents from. + + + + Draws the gauge label. + + Draw event arguments. + + + + Serializes the gauge label. + + Writer object. + Gauge label property name. + Another GaugeLabel to compare with. + + This method is for internal use only. + + + + + Represents a pointer of gauge. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the color of a pointer. + + + + + Gets or sets the border width of a pointer. + + + + + Gets or sets the border color of a pointer. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugePointer. + + The GaugePointer instance to copy the contents from. + + + + Draws the gauge pointer. + + Draw event arguments. + + + + Serializes the gauge pointer. + + Writer object. + Gauge pointer property name. + Another GaugePointer to compare with. + + This method is for internal use only. + + + + + Represents a scale of a gauge. + + + + + Gets or sets major ticks of scale. + + + + + Gets or sets minor ticks of scale. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the font of scale. + + + + + Gets or sets the scale font color + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugeScale. + + The GaugeScale instance to copy the contents from. + + + + Draws the scale of gauge. + + Draw event arguments. + + + + Serializes the gauge scale. + + Writer object. + Scale property name. + Another GaugeScale to compare with. + + This method is for internal use only. + + + + + Represents a scale ticks. + + + + + Gets or sets the length of ticks. + + + + + Gets or sets the width of ticks. + + + + + Gets or sets the color of ticks. + + + + + Gets or sets the count of ticks + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + Ticks count. + + + + Copies the contents of another ScaleTicks. + + The ScaleTicks instance to copy the contents from. + + + + Serializes the scale ticks. + + Writer object. + Scale ticks property name. + Another ScaleTicks to compare with. + + This method is for internal use only. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + + + + + + + Provides a user interface for editing a text outline. + + + + + + + + + + + Provides a user interface for choosing a relation. + + + + + Provides a user interface for selecting a component inside the report. + + + + + + + + + + + + + + Provides a user interface for selecting a component inside the same band. + + + + + + + + + + + + + + Provides a user interface for editing a flags enumeration. + + + + + + + + + + + Provides a user interface for choosing a data type. + + + + + + + + + + + Provides a user interface for choosing a data column. + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + Provides a user interface for editing an angle in degrees. + + + + + + + + + + + Provides a user interface for editing a component's border. + + + + + + + + + + + Provides a user interface for selecting a component inside the same page. + + + + + + + + + + + + + + Provides a user interface for choosing a color. + + + + + + + + + + + + + + + + + Provides a user interface for editing a fill. + + + + + + + + + + + Provides a user interface for editing a string collection. + + + + + + + + + + + Represents a map object. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the path to folder containing shapefiles. + + + This property is used by the map editor when selecting a shapefile. + + + + + Gets or sets the map zoom. + + + + + Gets or sets minimum zoom value. + + + + + Gets or sets maximum zoom value. + + + + + Gets or sets the X offset of the map. + + + + + Gets or sets the Y offset of the map. + + + + + Gets or sets the value indicating that mercator projection must be used to view the map. + + + + + Gets the color scale settings. + + + + + Gets or sets a collection of map layers. + + + + + Gets or sets padding within the map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loads a map from file. + + Name of file that contains a map. + + + + Creates unique names for all contained objects such as layers, shapes, etc. + + + + + Initializes a new instance of the class. + + + + + Represents a map point. + + + + + Gets or sets the X-coordinate of the point. + + + + + Gets or sets the Y-coordinate of the point. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a polygon shape. + + + + + Holds the largest bounding rectangle of this shape. + + + + + Gets or sets a bounding box of this shape. + + + + + Gets or sets a list of polygons in this shape. + + + + + Gets or sets the shape data in binary format. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents four coordinates that define a bounding box. + + + + + Gets or sets the minimum X-coordinate of a bounding box. + + + + + Gets or sets the minimum Y-coordinate of a bounding box. + + + + + Gets or sets the maximum X-coordinate of a bounding box. + + + + + Gets or sets the maximum Y-coordinate of a bounding box. + + + + + Copies the contents of another instance. + + Source box to copy the contents from. + + + + Defines the palette used to display map shapes. + + + + + No palette used. + + + + + Light palette. + + + + + Pastel palette. + + + + + Grayscale palette. + + + + + Earth tones palette. + + + + + Sea green palette. + + + + + Bright pastel palette. + + + + + Represents a set of color ranges used to highlight polygons based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start color. + + + + + Gets or sets the middle color. + + + + + Gets or sets the end color. + + + + + Gets or sets a value indicating that the map's color scale must display data from this color ranges. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another ColorRanges. + + The ColorRanges instance to copy the contents from. + + + + Gets a color associated with given analytical value. + + The analytical value. + The color associated with this value, or Color.Transparent if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single color range. + + + + + Gets or sets color of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another ColorRange. + + The ColorRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The color of the range. + The start value of the range. + The end value of the range. + + + + Represents the color scale. + + + + + Gets or sets that must be displayed in this color scale. + + + + + Gets or sets the format string used to format data values. + + + + + Gets or sets a value indicating whether the color scale must be hidden if there is no data in it. + + + + + Gets or sets the text displayed in the color scale if there is no data in it. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a distance scale. + + + + + Initializes a new instance of the class. + + + + + Represents loading map data from dbf-file. + + + + + Gets or sets the filter string used in an open file dialog. + + + + + Initializes a new instance of the class. + + + + + Returns a file filter for an open file dialog. + + String that contains a file filter. + + + + Imports the map data from a specified file into a specfied layer. + + The MapObject for an importing map. + The name of a file that contains map. + + + + Represents the description of dBase field. + + + + + Gets the field name. + + + + + Gets the field type. + + + + + Gets the field length. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + The type of dBase field. + + + + + Character field. + + + + + Date field. + + + + + Numeric field. + + + + + Logical field. + + + + + Memo field. + + + + + Represents a collection of objects. + + + + + Gets a layer with specified index. + + Index of a layer. + The layer with specified index. + + + + Specifies the type of objects that layer contains. + + + + + The layer contains points. + + + + + The layer contains lines. + + + + + The layer contains polygons. + + + + + Specifies the spatial source for the layer. + + + + + Source is ESRI shapefile. + + + + + Source is a latitude/longitude/name provided by an application. + + + + + Determines how map labels are displayed. + + + + + No label displayed. + + + + + The shape name is displayed. + + + + + The value is displayed. + + + + + Both name and value displayed. + + + + + Represents a map layer. + + + + + Gets or sets a type of layer. + + + + + Gets or sets the spatial source for the layer. + + + + + Gets or sets the name of ESRI shapefile. + + + + + Gets or sets the data source. + + + + + Gets or sets the datasource filter expression. + + + + + Gets or sets spatial column name. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns spatial value. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns latitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns longitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns label value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns analytical value. + + + + + Gets or sets label's column name. + + + + + Gets or sets a value that determines how map labels are displayed. + + + + + Gets or sets the format of label's value. + + + + + Gets or sets the map accuracy. Lower value is better, but slower. + + + + + Gets or sets the value that determines the labels visiblity at a certain zoom value. + + + + + Gets or sets the aggregate function. + + + + + Gets or sets a value indicating that the layer is visible. + + + + + Gets or sets a bounding box of layer. + + + + + Gets a collection of map objects. + + + + + Gets the default style of shapes in this layer. + + + + + Gets or sets the palette used to highlight shapes. + + + + + Gets the color ranges used to highlight shapes based on analytical value. + + + + + Gets the size ranges used to draw points based on analytical value. + + + + + Gets or sets the expression that returns the name of polygon to zoom. + + + + + Gets or sets the bounding box as a string. + + + + + Gets a reference to the Map object. + + + + + + + + Draws the layer. + + The drawing parameters. + + + + Finds the shape under cursor. + + The cursor coordinates. + The ShapeBase object if found. + + + + + + + Creates unique names for all contained objects such as points, lines, polygons, etc. + + + + + Reduces the number of points in the shapes in this layer. + + The accuracy value. + + + + Loads the layer contents from ESRI shapefile (*.shp/*.dbf). + + The file name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds application provided data. + + Latitude value. + Longitude value. + The name displayed as a label. + Analytical value. + + Use this method if the is set to ApplicationData. + + + + + Adds a spatial/analytical value pair to the list. + + The spatial value. + The analytical value. + + Use this method if the is set to ShpFile. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a pair of double coordinates that defines a constituent point. + + + + + Gets or sets the X-coordinate of a point. + + + + + Gets or sets the Y-coordinate of a point. + + + + + Creates a new instance of the class with specified coordinates. + + X coordinate. + Y coordinate. + + + + Specifies the position of a scale control inside the map. + + + + + The scale is displayed at top left corner. + + + + + The scale is displayed at top center side. + + + + + The scale is displayed at top right corner. + + + + + The scale is displayed at middle left side. + + + + + The scale is displayed at middle right side. + + + + + The scale is displayed at bottom left corner. + + + + + The scale is displayed at bottom center side. + + + + + The scale is displayed at bottom right corner. + + + + + The base class for scale-type controls such as and . + + + + + Gets or sets the border. + + + + + Gets or sets the fill. + + + + + Gets or sets the title font. + + + + + Gets or sets the title text color. + + + + + Gets or sets the title text. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color. + + + + + Gets or sets the location of the scale. + + + + + Gets or sets the visibility of a scale. + + + + + Copies the contents of another ScaleBase. + + The ScaleBase instance to copy the contents from. + + + + Serializes the scale. + + Writer object. + Scale property name. + Another ScaleBase to compare with. + + This method is for internal use only. + + + + + Gets the size of the scale, in pixels. + + The SizeF structure containing the size of the object. + + + + Draws the object. + + Draw parameters. + Parent map object. + + + + Initializes a new instance of the class. + + + + + The base class for shape objects such as , and . + + + + + Gets or sets the shape visibility. + + + + + Gets or sets a value indicating that custom shape style is used. + + + If this property is false, the layer's DefaultShapeStyle is used. + + + + + Gets a custom shape style. + + + To use this property, first set the property to true. + + + + + Gets or sets the center point X offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the center point Y offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the shape X offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the shape Y offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the scale factor for this shape. + + + Use this property to adjust the shape size. + + + + + Gets or sets the spatial data associated with this shape. + + + + + Gets or sets the value. + + + + + Gets a reference to the parent Map object. + + + + + Gets a reference to the parent Layer object. + + + + + + + + Draws the shape. + + Object that provides a data for paint event. + + + + Draws the label. + + Object that provides a data for paint event. + + + + Checks if the shape is under cursor. + + The cursor coordinates. + true if the cursor is over the shape. + + + + Reduces the number of points in the shape. + + The accuracy value. + + + + + + + Initializes a component before running a report. + + + + + Finalizes a component before running a report. + + + + + Saves the state of this component. + + + + + Restores the state of this component. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents a line shape. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the spatial data of a shape. + + + + + Copies contents from another spatial data object. + + The object to copy contents from. + + + + Compares two spatial data objects. + + The spatial object to compare with. + true if spatial objects are identical. + + + + Gets a value by its key. + + The key of value. + The value. + + + + Sets a value by its key. + + The key of value. + The value. + + + + Gets a list of keys. + + The list of keys. + + + + Creates a new instance of the class. + + + + + Represents the style of a shape. + + + + + Gets or sets the border color. + + + + + Gets or sets the border style. + + + + + Gets or sets the border width. + + + + + Gets or sets the fill color. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the point size, in pixels. + + + + + Copies contents from another similar object. + + The object to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Represents a set of size ranges used to draw points based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start size. + + + + + Gets or sets the end size. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another SizeRanges. + + The SizeRanges instance to copy the contents from. + + + + Gets a size associated with given analytical value. + + The analytical value. + The size associated with this value, or 0 if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single size range. + + + + + Gets or sets size of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another SizeRange. + + The SizeRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The size of the range. + The start value of the range. + The end value of the range. + + + + Represents the matrix object that is used to print pivot table (also known as cross-tab). + + + The matrix consists of the following elements: columns, rows and data cells. Each element is + represented by the descriptor. The class is used + for columns and rows; the is used for data cells. + The property holds three collections of descriptors - Columns, + Rows and Cells. + To create the matrix in a code, you should perform the following actions: + + + create an instance of the MatrixObject and add it to the report; + + + create descriptors for columns, rows and cells and add it to the + collections inside the property; + + + call the method to create the matrix template + that will be used to create a result; + + + modify the matrix template (change captions, set the visual appearance). + + + To connect the matrix to a datasource, use the property. If + this property is not set, the result matrix will be empty. In this case you may use + the event handler to fill the matrix. + + This example demonstrates how to create a matrix in a code. + + // create an instance of MatrixObject + MatrixObject matrix = new MatrixObject(); + matrix.Name = "Matrix1"; + // add it to the report title band of the first report page + matrix.Parent = (report.Pages[0] as ReportPage).ReportTitle; + + // create two column descriptors + MatrixHeaderDescriptor column = new MatrixHeaderDescriptor("[MatrixDemo.Year]"); + matrix.Data.Columns.Add(column); + column = new MatrixHeaderDescriptor("[MatrixDemo.Month]"); + matrix.Data.Columns.Add(column); + + // create one row descriptor + MatrixHeaderDescriptor row = new MatrixHeaderDescriptor("[MatrixDemo.Name]"); + matrix.Data.Rows.Add(row); + + // create one data cell + MatrixCellDescriptor cell = new MatrixCellDescriptor("[MatrixDemo.Revenue]", MatrixAggregateFunction.Sum); + matrix.Data.Cells.Add(cell); + + // connect matrix to a datasource + matrix.DataSource = Report.GetDataSource("MatrixDemo"); + + // create the matrix template + matrix.BuildTemplate(); + + // change the style + matrix.Style = "Green"; + + // change the column and row total's text to "Grand Total" + matrix.Data.Columns[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allows to fill the matrix in code. + + + In most cases the matrix is connected to a datasource via the + property. When you run a report, the matrix is filled with datasource values automatically. + Using this event, you can put additional values to the matrix or even completely fill it + with own values (if is set to null. To do this, call the + Data.AddValue method. See the + method for more details. + + This example shows how to fill a matrix with own values. + + // suppose we have a matrix with one column, row and data cell. + // provide 3 one-dimensional arrays with one element in each to the AddValue method + Matrix1.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Andrew Fuller" }, + new object[] { 21.35f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Nancy Davolio" }, + new object[] { 421.5f }); + + // this code will produce the following matrix: + // | 1996 | 1997 | + // --------------+--------+--------+ + // Andrew Fuller | 123.45| 21.35| + // --------------+--------+--------+ + // Nancy Davolio | | 421.50| + // --------------+--------+--------+ + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value that determines whether the matrix must calculate column/row sizes automatically. + + + + + Gets or sets a value that determines how to print multiple data cells. + + + This property can be used if matrix has two or more data cells. Default property value + is false - that means the data cells will be stacked. + + + + + Gets or sets a value indicating that the side-by-side cells must be kept together on the same page. + + + + + Gets or sets a data source. + + + When you create the matrix in the designer by drag-drop data columns into it, + this property will be set automatically. However you need to set it if you create + the matrix in code. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will be skipped. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a matrix style. + + + + + Gets or sets even style priority for matrix cells. + + + + + Gets or sets need split rows. + + + + + Gets or sets a value indicating that empty matrix should be printed. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets the object that holds the collection of descriptors used + to build a matrix. + + + See the class for more details. + + + + + Gets or sets array of values that describes the currently printing column. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing column. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.ColumnValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (int)Matrix1.ColumnValues[0] == 2000. + + + + + + + + Gets or sets array of values that describes the currently printing row. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing row. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.RowValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (string)Matrix1.RowValues[0] == "Andrew Fuller". + + + + + + + + Gets or sets the index of currently printing column. + + + This property may be used to print even columns with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.ColumnIndex, + for example: Matrix1.ColumnIndex % 2 == 1. + + + + + + + + Gets or sets the index of currently printing row. + + + This property may be used to print even rows with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.RowIndex, + for example: Matrix1.RowIndex % 2 == 1. + + + + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + This method fires the AfterTotals event and the script code connected to the AfterTotalsEvent. + + Event data. + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + This is a shortcut method to call the matrix Data.AddValue. + See the method for more details. + + + + + Gets the value of the data cell with the specified index. + + Zero-based index of the data cell. + The cell's value. + + Use this method in the cell's expression if the cell has custom totals + (the total function is set to "Custom"). The example: + Matrix1.Value(0) / Matrix1.Value(1) + will return the result of dividing the first data cell's value by the second one. + + + + + Initializes a new instance of the class. + + + + + Specifies the aggregate function used in the . + + + + + No aggregates are used. + + + + + Specifies the sum of values. + + + + + Specifies the minimum of values. + + + + + Specifies the maximum of values. + + + + + Specifies the average of values. + + + + + Specifies the count of values. + + + + + Specifies the count of distinct values. + + + + + Specifies the custom function. + + + + + Determines how matrix percents are calculated. + + + + + Do not calculate percent value. + + + + + Calculate percent of the column total value. + + + + + Calculate percent of the row total value. + + + + + Calculate percent of the grand total value. + + + + + The descriptor that is used to describe one matrix data cell. + + + The class is used to define one data cell of the matrix. + The key properties are and . + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the matrix data cells is stored + in the MatrixObject.Data.Cells property. + + + + + Gets or sets an aggregate function used to calculate totals for this cell. + + + + + Gets or sets a value that determines how to calculate the percent value for this cell. + + + + + + + + + + + Initializes a new instance of the class + with default settings. + + + + + Initializes a new instance of the class + with specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class + with specified expression and aggregate function. + + The descriptor's expression. + The aggregate function. + + + + Initializes a new instance of the class + with specified expression, aggregate function, and a percent. + + The descriptor's expression. + The aggregate function. + The percent setting. + + + + Represents a collection of matrix data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the matrix descriptors. + + + This class contains three collections of descriptors such as , + and . Use collections' methods to add/remove + descriptors. When you are done, call the + method to refresh the matrix. + To fill a matrix in code, use the AddValue method. + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Clears all descriptors. + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + The number of elements in an array passed to this method must be the same as + a number of descriptors in the appropriate collection. That is, if your matrix + has one column, two row and one cell descriptors (in Columns, Rows and + Cells collections respectively), you have to pass one-element array for the + columnValues param, two-element array for the rowValues and one-element + array for the cellValues. + + This example demonstrates how to fill a simple matrix that contains one column, + row and cell. + + MatrixObject matrix; + matrix.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + + // this will produce the following result: + // | 1996 | + // --------------+----------+ + // Andrew Fuller | 123.45| + // --------------+----------+ + + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + Datasource row index. + + See the method for more details. + + + + + Gets a value with specified column, row and cell indicies. + + Index of a column. + Index of a row. + Index of a cell. + The value of a cell. + + + + Sets the cell's value. + + Index of a column. + Index of a row. + The new value. + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + MatrixObject matrix; + // change the fill color of the first matrix cell + matrix.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of matrix header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + Gets the list of indices of terminal items of this header. + + The list of indices. + + + + Gets the list of indices of terminal items of the header with specified address. + + The address of a header. + The list of indices. + + + + Removes a header item with the address specified. + + The address of a header. + + + + Gets an index of header with the address specified. + + The address of a header. + The index of header. + + + + Gets an index of header with the address specified. If there is no such header item, it will be created. + + The address of a header. + The index of header. + + + + + + + + + + The descriptor that is used to describe one element of the matrix header. + + + The class is used to define one header element of the matrix + (either the column element or row element). The key properties are + , and . + To set visual appearance of the element, use the + property. To set visual appearance of the "total" element, use the + property. + The collection of descriptors used to represent the matrix header is stored + in the MatrixObject.Data.Columns and MatrixObject.Data.Rows properties. + + + + + Gets or sets the sort order of header values. + + + This property determines how the values displayed in this element are sorted. The default sort + is ascending. + + + + + Gets or sets a value indicating that this element has associated "total" element. + + + To access the matrix cell that is bound to the "Total" element, use the + property. It may be useful to change the + "Total" text by something else. + + This example shows how to change the "Total" text of the total element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + Gets or sets the value indicating whether the total values must be printed before the data. + + + + + Gets or sets a value indicating that the page break must be printed before this element. + + + Page break is not printed before the very first element. + + + + + Gets or sets a value that determines whether it is necessary to suppress totals + if there is only one value in a group. + + + + + Gets or sets the template column bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to the "total" element of this descriptor. + + + This property may be useful to change the "Total" text by something else. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + This example shows how to change the "Total" element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Fill = new SolidFill(Color.Green); + + + + + + + + + + + + Initializes a new instance of the class with + default settings. + + + + + Initializes a new instance of the class with + specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class with + specified expression and totals. + + The descriptor's expression. + Indicates whether to show the "total" element. + + + + Initializes a new instance of the class with + specified expression, sort order and totals. + + The descriptor's expression. + Sort order used to sort header values. + Indicates whether to show the "total" element. + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Describes how the even style is applied to a matrix. + + + + + The even style is applied to matrix rows. + + + + + The even style is applied to matrix columns. + + + + + Represents the chart object based on Microsoft Chart control. + + + FastReport uses Microsoft Chart library to display charts. This library is included + in .Net Framework 4.0. For .Net 3.5 it is available as a separate download here: + http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c + This library requires .Net Framework 3.5 SP1. + To access Microsoft Chart object, use the property. It allows you + to set up chart appearance. For more information on available properties, refer to the + MS Chart documentation. + Chart object may contain one or several series. Each series is represented by two objects: + + + the Series that is handled by MS Chart. It is stored in the + Chart.Series collection; + + + the object that provides data for MS Chart series. + It is stored in the collection. + + + Do not operate series objects directly. To add or remove series, use + the and methods. These methods + handle Series and MSChartSeries in sync. + If you have a chart object on your Form and want to print it in FastReport, use + the method. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of objects. + + + + + Gets a reference to the MS Chart object. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the data source. + + + + + Gets or sets the filter expression. + + + This filter will be applied to all series in chart. You may also use the series' + property to filter each series individually. + + + + + Gets or sets a value indicating that all series' data point should be aligned by its X value. + + + Using this property is necessary to print stacked type series. These series must have + equal number of data points, and the order of data points must be the same for all series. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or set the color for auto-series. + + + If no color is specified, the new series will use the palette defined in the chart. + + + + + Gets or sets sort order for auto-series. + + + + + + + + Adds a new series. + + The type of series. + The new MSChartSeries object. + + + + Deletes a series at a specified index. + + Index of series. + + + + Assigns chart appearance, series and data from the + System.Windows.Forms.DataVisualization.Charting.Chart object. + + Chart object to assign data from. + + Use this method if you have a chart in your application and want to print it in FastReport. + To do this, put an empty MSChartObject in your report and execute the following code: + + report.Load("..."); + MSChartObject reportChart = report.FindObject("MSChart1") as MSChartObject; + reportChart.AssignChart(applicationChart); + report.Show(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Represents the small chart object (called sparkline) fully based on MSChartObject. + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies how the series points are sorted. + + + + + Points are not sorted. + + + + + Points are sorted by X value. + + + + + Points are sorted by Y value. + + + + + Specifies the direction in which the series points are sorted. + + + + + Points are sorted in ascending order. + + + + + Points are sorted in descending order. + + + + + Specifies how the series points are grouped. + + + + + Points are not grouped. + + + + + Points are grouped by X value. + + + + + Points are grouped by number specified in the . + + + + + Points are grouped by Years. + + + + + Points are grouped by Months. + + + + + Points are grouped by Weeks. + + + + + Points are grouped by Days. + + + + + Points are grouped by Hours. + + + + + Points are grouped by Minutes. + + + + + Points are grouped by Seconds. + + + + + Points are grouped by Milliseconds. + + + + + Specifies which pie value to explode. + + + + + Do not explode pie values. + + + + + Explode the biggest value. + + + + + Explode the lowest value. + + + + + Explode the value specified in the property. + + + + + Specifies which data points to collect into one point. + + + + + Do not collect points. + + + + + Show top N points (N value is specified in the + property), collect other points into one. + + + + + Show bottom N points (N value is specified in the + property), collect other points into one. + + + + + Collect points which have Y value less than specified + in the property. + + + + + Collect points which have Y value less than percent specified + in the property. + + + + + Collect points which have Y value greater than specified + in the property. + + + + + Collect points which have Y value greater than percent specified + in the property. + + + + + Represents a MS Chart series wrapper. + + + This class provides a data for MS Chart series. The series itself is stored inside the + MS Chart and is accessible via the property. + You don't need to create an instance of this class directly. Instead, use the + method. + + + + + Gets os sets the data filter expression. + + + The filter is applied for this series only. You can also use the + property to set a filter that will be applied to all + series in a chart. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or sets the sort method used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the sort order used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or sets the group method used to group data points. + + + This property is mainly used when series is filled with data with several identical X values. + In this case, you need to set the property to XValue. All identical data points will be + grouped into one point, their Y values will be summarized. You can choose the summary function + using the property. + + + + + Gets or sets the group interval. + + + This value is used if property is set to Number. + + + + + Gets or sets the function used to group data points. + + + + + Gets or sets the collect method used to collect several data points into one. + + + This instrument for data processing allows to collect several series points into one point. + The collected point will be displaed using the text specified in the + property and color specified in the property. + For example, to display top 5 values, set this property to TopN and specify + N value (5) in the property. + + + + + Gets or sets the collect value used to collect several data points into one. + + + This property is used if the property is set to any value other than None. + + + + + Gets or sets the text for the collected value. + + + + + Gets or sets the color for the collected value. + + + If this property is set to Transparent (by default), the default palette color + will be used to display a collected point. + + + + + Gets or sets the method used to explode values in pie-type series. + + + + + Gets or sets the value that must be exploded. + + + This property is used if property is set + to SpecificValue. + + + + + Gets or sets the data column or expression that returns the X value of data point. + + + + + Gets or sets the data column or expression that returns the first Y value of data point. + + + + + Gets or sets the data column or expression returns the second Y value of data point. + + + + + Gets or sets the data column or expression returns the third Y value of data point. + + + + + Gets or sets the data column or expression returns the fourth Y value of data point. + + + + + Gets or sets the data column or expression that returns the color of data point. + + + + + Gets or sets the data column or expression returns the label value of data point. + + + + + Gets a reference to MS Chart Series object. + + + Use this property to set many options available for the Series object. These options + include: visual appearance, labels, marks, value types. Refer to the Microsoft Chart control + documentation to learn more. + + + + + Gets a number of Y value per data point. + + + Number of Y values depends on series type. Most of series have only one Y value. Financial + series such as Stock and Candlestick, use four Y values. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Clears all data points in this series. + + + + + Adds a data point with specified X and Y values. + + X value. + Array of Y values. + + Note: number of values in the yValues parameter must be the same as value returned + by the property. + + + + + + + + Creates a new instance of the class with default settings. + + + + + Represents a collection of objects. + + + + + Gets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Resets series data. + + + + + Processes the current data row. + + + + + Finishes the series data. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SVG object + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets svg document + + + + + Gets or sets ViewBox value + + + + + Gets or sets AspectRatio value + + + + + + + + Gets or sets grayscale svg document + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Returns SVG string + + + + + + + + + + + + + + + + + + + + + + + Returns clone of this object + + + + + + Sets svg object by SvgDocument + + SVG document + + + + Sets svg object from specified path + + path to SVG file + + + + Sets svg object from svg string + + SVG string + + + + Initializes a new instance of the class with default settings. + + + + + Represents a table row. + + + Use the property to set the height of a row. If + property is true, the row will calculate its height automatically. + You can also set the and properties + to restrict the row's height. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a height of the row, in pixels. + + + The row height cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal height for this row, in pixels. + + + + + Gets or sets the maximal height for this row, in pixels. + + + + + Gets or sets a value determines if the row should calculate its height automatically. + + + The row height cannot exceed the range defined by the + and properties. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets the index of this row. + + + + + + + + Gets or sets the cell with specified index. + + Column index. + The TableCell object. + + + + Gets or sets the page break flag for this row. + + + + + Gets or sets the number of rows to keep on the same page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table object that consists of several rows and columns. + + + To add/remove columns, use the collection. To add/remove + rows, use the collection. To initialize a table with specified number of + columns and rows, use and properties. + To print a table in code, use the event. In the manual build + mode, you can use aggregate functions. The following functions available: + + + Aggregate function + Description + + + Sum(cell) + Calculates the sum of values in specified table cell. + + + Min(cell) + Calculates the minimum of values in specified table cell. + + + Max(cell) + Calculates the maximum of values in specified table cell. + + + Avg(cell) + Calculates the average of values in specified table cell. + + + Count(cell) + Calculates the number of repeats of a specified table cell. + + + To print aggregate value, place the aggregate function call in the table cell: + [Count(Cell2)]. + + + + + + + + + + + + + + + + + + + + + + + Allows to print table rows/columns dynamically. + + + This event is used to handle the table print process in a code. Using special methods + like , you can print specified rows/columns. + + First way is to repeat specified row(s) to get a table that will grow downwards. + To do this, you have to call the PrintRow method followed by the PrintColumns method. + + Another way is to repeat the specified column(s) to get a table that grows sidewards. + To do this, call the PrintColumn method followed by the PrintRows method. + + Finally, the third way is to repeat rows and columns. The table will grow downwards and + sidewards. To do this, call the PrintRow method followed by the PrintColumn + method (or vice versa). + + + + When you print a table row-by-row, you must call one of the PrintColumn, + PrintColumns methods right after the PrintRow method. + In the same manner, when you print a table column-by-column, call one of the + PrintRow, PrintRows methods right after the PrintColumn method. + If you ignore this rule you will get an exception. + + + + In this example, we will consider all three ways to print a table which has 3 rows and 3 columns. + Case 1: print a table downwards. + + // print table header (the first row) + Table1.PrintRow(0); + Table1.PrintColumns(); + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + Table1.PrintRow(1); + Table1.PrintColumns(); + } + // print table footer (the third row) + Table1.PrintRow(2); + Table1.PrintColumns(); + + + Case 2: print a table sidewards. + + // print table header (the first column) + Table1.PrintColumn(0); + Table1.PrintRows(); + // print table body (the second column) + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + Table1.PrintRows(); + } + // print table footer (the third column) + Table1.PrintColumn(2); + Table1.PrintRows(); + + + Case 3: print a table downwards and sidewards. + + // print the first row with all its columns + Table1.PrintRow(0); + // print header column + Table1.PrintColumn(0); + // print 10 data columns + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + // print footer column + Table1.PrintColumn(2); + + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + // print data row with all its columns + Table1.PrintRow(1); + Table1.PrintColumn(0); + for (int j = 0; j < 10; j++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + } + + // print table footer (the third row) + Table1.PrintRow(2); + // again print all columns in the table footer + Table1.PrintColumn(0); + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + + + + + + Gets or sets a script method name that will be used to handle the + event. + + + If you use this event, you must handle the table print process manually. + See the event for details. + + + + + Determines whether to manage cell spans automatically during manual build. + + + The default value for this property is true. If you set it to false, you need to manage + spans in your ManualBuild event handler. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + Prints a row with specified index. + + Index of a row to print. + + See the event for more details. + + + + + Prints rows with specified indices. + + Indices of rows to print. + + See the event for more details. + + + + + Prints all rows. + + + See the event for more details. + + + + + Prints a column with specified index. + + Index of a column to print. + + See the event for more details. + + + + + Prints columns with specified indices. + + Indices of columns to print. + + See the event for more details. + + + + + Prints all columns. + + + See the event for more details. + + + + + Adds a page before rows or columns. + + + Call this method to insert a page break before the next row or column that you intend to print + using PrintRow(s) or PrintColumn(s) methods. + See the event for more details. + + + + + Initializes a new instance of the class. + + + + + Represents a table column. + + + Use the property to set the width of a column. If + property is true, the column will calculate its width automatically. + You can also set the and properties + to restrict the column's width. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a width of the column, in pixels. + + + The column width cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal width for this column, in pixels. + + + + + Gets or sets the maximal width for this column, in pixels. + + + + + Gets or sets a value determines if the column should calculate its width automatically. + + + The column width cannot exceed the range defined by the + and properties. + + + + + Gets the index of this column. + + + + + + + + Gets or sets the page break flag for this column. + + + + + Gets or sets the number of columns to keep on the same page. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table cell. + + + Use , properties to set the cell's + column and row spans. To put an object inside the cell, use its property: + + TableCell cell1; + PictureObject picture1 = new PictureObject(); + picture1.Bounds = new RectangleF(0, 0, 32, 32); + picture1.Name = "Picture1"; + cell1.Objects.Add(picture1); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of objects contained in this cell. + + + + + Gets or sets the column span for this cell. + + + + + Gets or sets the row span for this cell. + + + + + + + + Gets the address of this cell. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets the TableBase object which this cell belongs to. + + + + + + + + Creates the exact copy of this cell. + + The copy of this cell. + + + + Determines if two cells have identical settings. + + Cell to compare with. + true if cells are equal. + + + + + + + Changes the cell's style. + + The new style. + + Each cell in a dynamic table object (or in a matrix) has associated style. + Several cells may share one style. If you try to change the cell's appearance directly + (like setting cell.TextColor), it may affect other cells in the table. + To change the single cell, use this method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + The base class for table-type controls such as and + . + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of table rows. + + + + + Gets a collection of table columns. + + + + + Gets or sets the number of fixed rows that will be repeated on each page. + + + + + Gets or sets the number of fixed columns that will be repeated on each page. + + + + + Gets or sets a value that determines whether is necessary to repeat table header on each page. + + + To define a table header, set the and + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Row header on each page. + + + To define a table Row header, set the + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Column header on each page. + + + To define a table Column header, set the + properties. + + + + + Gets or sets the table layout. + + + This property affects printing the big table that breaks across pages. + + + + + Gets or sets gap between parts of the table in wrapped layout mode. + + + This property is used if you set the property to Wrapped. + + + + + Gets or sets a value that determines whether to adjust the spanned cell's width when breaking the table across pages. + + + If set to true, the spanned cell's width will be adjusted to accomodate all contained text. + + + + + Gets or sets the table cell. + + Column index. + Row index. + The TableCell object that represents a cell. + + + + Gets or sets a number of columns in the table. + + + + + Gets or sets a number of rows in the table. + + + + + Gets a table which contains the result of rendering dynamic table. + + + Use this property to access the result of rendering your table in dynamic mode. + It may be useful if you want to center or right-align the result table on a page. + In this case, you need to add the following code at the end of your ManualBuild event handler: + + // right-align the table + Table1.ResultTable.Left = Engine.PageWidth - Table1.ResultTable.CalcWidth() - 1; + + + + + + + + + + + + + + + Gets data of the table cell with specified column and row numbers. + + The column number. + The row number. + TableCellData instance containing data of the table cell. + + + + Creates unique names for all table elements such as rows, columns, cells. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates and returns the table width, in pixels. + + + + + + + + + + + Calculates a sum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a minimum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a maximum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates an average of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates number of repeats of a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Initializes a new instance of the class. + + + + + Specifies the layout that will be used when printing a big table. + + + + + The table is printed across a pages then down. + + + + + The table is printed down then across a pages. + + + + + The table is wrapped. + + + + + Represents data of the table cell. + + + + + Gets or sets parent table of the cell. + + + + + Gets or sets objects collection of the cell. + + + + + Gets or sets text of the table cell. + + + + + Gets or sets value of the table cell. + + + + + Gets or sets hyperlink value of the table cell. + + + + + Gets or sets column span of the table cell. + + + + + Gets or sets row span of the table cell. + + + + + Gets or sets the address of the table cell. + + + + + Gets the table cell. + + + + + Gets style of table cell. + + + + + Gets original the table cell. + + + + + Gets width of the table cell. + + + + + Gets height of the table cell. + + + + + Initializes a new instance of the class. + + + + + Attaches the specified table cell. + + The table cell instance. + This method is called when we load the table. + + + + Assigns another instance. + + The table cell data that used as a source. + This method is called when we copy cells or clone columns/rows in a designer. + + + + Assigns another instance at run time. + + The table cell data that used as a source. + This flag shows should children be copied or not. + This method is called when we print a table. We should create a copy of the cell and set the style. + + + + Sets style of the table cell. + + The new style of the table cell. + + + + Disposes the instance. + + + + + Calculates width of the table cell. + + The value of the table cell width. + + + + Calculates height of the table cell. + + The width of the table cell. + The value of the table cell height. + + + + Updates layout of the table cell. + + The width of the table cell. + The height of the table cell. + The new value of x coordinate. + The new value of y coordinate. + + + + Represents a collection of objects. + + + + + Gets a column with specified index. + + Index of a column. + The column with specified index. + + + + + + + + + + Represents a result table. + + + Do not use this class directly. It is used by the and + objects to render a result. + + + + + Occurs after calculation of table bounds. + + + You may use this event to change automatically calculated rows/column sizes. It may be useful + if you need to fit dynamically printed table on a page. + + + + + + + + + + + Creates a new instance of the class. + + + + + Represents a collection of objects. + + + + + Gets a row with specified index. + + Index of a row. + The row with specified index. + + + + + + + + + + Represents the "Blank Report" wizard. + + + + + + + + Represents the "Inherited Report" wizard. + + + + + + + + Represents the "Label" wizard. + + + + + Gets a selected label manufacturer. + + + + + Gets a selected label name. + + + + + Gets the XML item containing a selected label parameters. + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents the "New Data Source" wizard. + + + + + + + + Represents the "Standard Report" wizard. + + + + + + + + The base class for all report wizards. + + + To create own wizard, use this class as a base. All you need is to override + the method. To register a wizard, use the + method. + + + + + Runs the wizard. + + Report designer. + true if wizard was executed succesfully. + + This method is called when you select a wizard in the "Add New Item" window and + click "Add" button. You should do the work in this method. + + + + + Represents the "New Dialog" wizard. + + + + + + + + Represents the "New Page" wizard. + + + + + + + + Represents a RichText object that can display formatted text. + + + Use the property to set the object's text. The text may include + the RTF formatting tags. + + + + + + + + + + + + + + Gets or sets the object's text. + + + This property returns the formatted text with rtf tags. + + + + + Gets or sets a name of the data column bound to this control. + + + Value must contain the datasource name, for example: "Datasource.Column". + + + + + Gets the actual text start. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets the actual text length. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets or sets the break style. + + + Set this property to true if you want editable rich text when you edit the prepared report page. + + + + + Experimental feature for translation of RichText into report objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The DIGEST-MD5 SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + + + + The PLAIN SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + Computes the client response for server challenge. + + The challenge from server. Usually empty for PLAIN mechanism. + The response from client. + + + + The base abstarct class for all SASL mechanisms. + + + + + Gets or sets the name of mechanism. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + The username. + The user's password. + + + + Computes client response for server challenge. + + The server challenge. + The client response. + + + + Gets the base64-encoded client response fo the server challenge. + + The base64-string containing server challenge. + The base64-string containing client response. + + + + Gets the client response for the server challenge. + + Byte array containing server challenge. + Byte array containing client response. + + + + The base class for all messengers. + + + + + Gets the filename. + + + + + Gets or sets the proxy settings. + + + + + Initializes a new instance of the class. + + + + + Authorizes the user. + + True if user has been successfully authorized. + + + + Prepares the report before it will be send. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Sends the report. + + The report template that should be sent. + The export filter that should export template before. + True if report has been successfully sent. + + + + Represents form of messenger. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl pageControl1. + + + + + Represents proxy settings of the messenger. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the type of proxy. + + + + + Initializes a new instance of the class. + + The proxy server. + The port number of server. + The username. + The user's password. + The type of proxy. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Represents the IQ stanza. + + + + + Gets or sets the type of iq. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the iq. + The type of iq. + The JID of the sender. + The JID of the recipient. + The ID of the iq. + The language of the iq. + The data of the iq. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP message. + + + + + Gets or sets the type of message. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the message. + The type of message. + The JID of the sender. + The JID of the recipient. + The ID of the message. + The language of the message. + The data of the message. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP Presence. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the presence. + The JID of the sender. + The JID of the recipient. + The ID of the presence. + The language of the presence. + The data of the presence. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the base class for XML stanzas used in XMPP. + + + + + Gets the data of the stanza. + + + + + Gets or sets the JID of the sender. + + + + + Gets or sets the JID of the recipient. + + + + + Gets or sets the ID of the stanza. + + + + + Gets or sets the language of the stanza. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the stanza. + The JID of the sender. + The JID of the recipient. + The ID of the stanza. + The language of the stanza. + The data of the stanza. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Converts stanza to string. + + String containing stanza value. + + + + The parser for XMPP XML-streams. + + + + + Initializes a new instance of the class. + + The stream for parsing. + True to leave the stream opened after closing the StreamReader instance. + + + + Read the XML stream up to opening "stream:stream" tag. + + + + + Reads the next XML element from the stream. + + The list of XML elements that are expected. + The XML element. + + + + Closes the stream parser. + + + + + Releases all resources used by the current instance of the class. + + + + + Represents a static class to simplify the work with XmlElement instance. + + + + + Creates a new XmlElement instance. + + The name of the element. + The namespace of the element. + A new instance of the class. + + + + Adds the specified child to the end of child nodes of element. + + The element for add the child to. + The child node to add. + A XmlElement instance. + + + + Adds the attribute to XmlElement with spefied name and value. + + The element for add the attribute to. + The name of attribute. + The value of attribute. + A XmlElement instance. + + + + Adds the specified text to the end of child nodes of element. + + The element for add the text to. + The text for add. + A XmlElement instance. + + + + Converts the XmlElement instance to a string. + + The element to convert to. + True if needed to include XML declaration. + True if needed to leave the tag of an empty element open. + The XmlElement instance as string. + + + + Represents the XMPP messenger. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the hostname of XMPP server. + + + + + Gets or sets the port number of the XMPP service of the server. + + + + + Gets or sets the username to send file to. + + + + + Gets or sets the JID to send from. + + + + + Gets or set the JID to send to. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + Username. + Password. + Hostname. + Port. + Username to send file to. + Send to user's resource. + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + JID to send to with resource. + + + + Sends the specified string to the server. + + The string to send. + + + + Initiates the stream to the server. + + The hostname. + The features response of the server. + + + + Validates the server certificate. + + The sender object. + X509 certificate. + The X509 chain. + The SSL policy errors. + True if successfull. + + + + Secures the stream by TLS. + + The hostname. + The features response of the server. + + + + Selects the SASL authentication mechanism. + + List of mechanisms. + The string containing mechanism name. + + + + Authenticates the user on the server using Plain mechanism. + + + + + Authenticates the user on the server using Digest-MD5 mechanism. + + + + + Authenticates the user on the server. + + The SASL mechanisms list. + + + + Setups the connection with the server. + + + + + Binds resource and gets the full JID that will be associated with current session. + + The full session JID. + + + + Opens session between client and server. + + The id of the opened session. + + + + Connects to the server. + + + + + Sends the message. + + The text of the message. + True if message has been successfully sent. + + + + Sends the presence. + + The text of the presence. + True if presence has been successfully sent. + + + + Initiates the In Band Bytestream for sending the file (XEP-0047). + + True if bytestream has been successfully initiated. + + + + Sends the chunk to the XMPP server. + + The data of the chunk. + The number of the chunk. + + + + Sends the file using In Band Bytestream. + + The memory stream containing data of the file. + True if file has been successfully sent. + + + + Sends the file using FastReport Cloud as a proxy server. + + The report template. + The export filter to export report before sending. + True if file has been successfully sent. + + + + Disconnects from the server. + + + + + + + + + + + Closes the connection. + + + + + Releases all the resources used by the XMPP messenger. + + + + + Represents the form of the XMPP messenger. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + Send to user's JID. + Report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Provides a type converter for a property representing a reference to another component in a report. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a value measured in the current report units. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing an expandable object. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a data type. + + + + + + + + + + + + + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + Represents a collection of bands. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + Owner that owns this collection. + + + + The layout of the data band columns. + + + + + Print columns across then down. + + + + + Print columns down then across. + + + + + This class holds the band columns settings. It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + The column width, in pixels. + + + + + Gets or sets the layout of the columns. + + + + + Gets or sets the minimum row count that must be printed. + + + This property is used if the Layout property is set to DownThenAcross. 0 means that + FastReport should calculate the optimal number of rows. + + + + + Assigns values from another source. + + Source to assign from. + + + + Initializes a new instance of the BandColumns class with default settings. + + + + + Specifies a set of actions that cannot be performed on the object in the design mode. + + + + + Specifies no restrictions. + + + + + Restricts moving the object. + + + + + Restricts resizing the object. + + + + + Restricts modifying the object's properties. + + + + + Restricts editing the object. + + + + + Restricts deleting the object. + + + + + Hides all properties of the object. + + + + + Specifies a set of actions that can be performed on the object in the design mode. + + + + + Specifies no actions. + + + + + Allows moving the object. + + + + + Allows resizing the object. + + + + + Allows deleting the object. + + + + + Allows editing the object. + + + + + Allows changing the Z-order of an object. + + + + + Allows moving the object to another parent. + + + + + Allows copying the object to the clipboard. + + + + + Allows drawing the object. + + + + + Allows grouping the object. + + + + + Allows write children in the preview mode by itself. + + + + + Allows write object's bounds into the report stream. + + + + + Allows the "smart tag" functionality. + + + + + Specifies that the object's name is global (this is true for all report objects + such as Text, Picture and so on). + + + + + Specifies that the object can display children in the designer's Report Tree window. + + + + + Specifies that the object supports mouse wheel in the preview window. + + + + + Specifies the style of a border line. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a double line. + + + + + Specifies the sides of a border. + + + + + Specifies no border lines. + + + + + Specifies the left border line. + + + + + Specifies the right border line. + + + + + Specifies the top border line. + + + + + Specifies the bottom border line. + + + + + Specifies all border lines. + + + + + Represents a single border line. + + + + + Gets or sets a color of the line. + + + + + Gets or sets a style of the line. + + + + + Gets or sets a width of the line, in pixels. + + + + + + + + + + + Represents a border around the report object. + + + Border consists of four lines. Each line has own color, style and width. Lines are accessible through + , , , properties. + + To turn on and off the lines, use the property. To set the same color, style or width + for each line, use , , properties of the Border. + + + + + Gets or sets a color of the border. + + + This property actually returns a color of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a value determines whether to draw a shadow. + + + + + Gets or sets a shadow width, in pixels. + + + + + Gets or sets a shadow color. + + + + + Gets or sets a style of the border. + + + This property actually returns a style of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a visible lines of a border. + + + + + Gets or sets a width of the border, in pixels. + + + This property actually returns a width of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets the left line of the border. + + + + + Gets or sets the top line of the border. + + + + + Gets or sets the right line of the border. + + + + + Gets or sets the bottom line of the border. + + + + + Gets or sets a value determines that Border must serialize only one line. + + + This property is for internal use only. + + + + + Creates the exact copy of this Border. + + A copy of this border. + + + + + + + + + + Serializes the border. + + Writer object. + Border property name. + Another Border to compare with. + + This method is for internal use only. + + + + + Draw the border using draw event arguments and specified bounding rectangle. + + Draw event arguments. + Bounding rectangle. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report components that can break across pages. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets or sets a reference to another similar object that will be used for displaying the + text that not fit in this object. + + + + + + + + + + + Breaks the contents of the object. + + Object to put the part of content to that does not fit in this object. These two + objects must have the same type. + true if there is enough space in this object to display at least one text line. + + + Do not call this method directly, it is used by the report engine. You should override it if + you are writing a new FastReport object. + + + This method must break the contents of the object. The part of content that fit in current object's + bounds should remain in this object, the part that does not fit should be transferred to breakTo + object. + + + + + + Initializes a new instance of the BreakableComponent class with default settings. + + + + + Specifies a line cap style. + + + + + Specifies a line without a cap. + + + + + Specifies a line with a circle cap. + + + + + Specifies a line with a square cap. + + + + + Specifies a line with a diamond cap. + + + + + Specifies a line with an arrow cap. + + + + + Specifies a start and end line caps. + + + + + Gets or sets a width of the cap. + + + + + Gets or sets a height of the cap. + + + + + Gets or sets a cap style. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this object. + + Copy of this object. + + + + + + + + + + Serializes the cap settings. + + Name of the cap property. + Writer object. + Another cap to compare with. + + This method is for internal use only. + + + + + Initializes a new instance of the CapSettings class with default settings. + + + + + Specifies a symbol that will be displayed when a is in the checked state. + + + + + Specifies a check symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a plus symbol. + + + + + Specifies a filled rectangle. + + + + + Specifies a symbol that will be displayed when a is in the unchecked state. + + + + + Specifies no symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a minus symbol. + + + + + Specifies a slash symbol. + + + + + Specifies a back slash symbol. + + + + + This class represents a column footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a column header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of highlight conditions used in the property + of the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies conditions from another collection. + + Collection to copy from. + + + + + + + + + + This class represents a data band footer. + + + + + This class represents a header of the data band. + + + + + Specifies the image format in SVG export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing objects to a svg + + + + + For setting namespace, clear all attributes on setting, therefore use this property before setting other svg options + + + + + Initialize a new Graphics for SVG, it's rendered to xml, layer by layer, not one image, + set the Size of this graphics in Size property + + + + + Base class for all fills. + + + + + Returned true if Color = Transparent + + + + + Creates exact copy of this fill. + + Copy of this object. + + + + Creates the GDI+ Brush object. + + Drawing rectangle. + Brush object. + + + + Creates the GDI+ Brush object with scaling. + + Drawing rectangle. + X scaling coefficient. + Y scaling coefficient. + Brush object. + + + + Serializes the fill. + + Writer object. + Name of the fill property. + Fill object to compare with. + + This method is for internal use only. + + + + + Fills the specified rectangle. + + Draw event arguments. + Drawing rectangle. + + + + Class represents the solid fill. + + + + + Gets or sets the fill color. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with Transparent color. + + + + + Initializes the class with specified color. + + + + + + Class represents the linear gradient fill. + + + + + Gets or sets the start color of the gradient. + + + + + Gets or sets the end color of the gradient. + + + + + Gets or sets the angle of the gradient. + + + + + Gets or sets the focus point of the gradient. + + + Value is a floating point value from 0 to 1. + + + + + Gets or sets the gradient contrast. + + + Value is a floating point value from 0 to 1. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with start and end colors. + + Start color. + End color. + + + + Initializes the class with start, end colors and angle. + + Start color. + End color. + Angle. + + + + Initializes the class with start and end colors, angle, focus and contrast. + + Start color. + End color. + Angle. + Focus. + Contrast. + + + + The style of the path gradient. + + + + + Elliptic gradient. + + + + + Rectangular gradient. + + + + + Class represents the path gradient fill. + + + + + Gets or sets the center color of the gradient. + + + + + Gets or sets the edge color of the gradient. + + + + + Gets or sets the style of the gradient. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with center, edge colors and style. + + Center color. + Edge color. + Gradient style. + + + + Class represents the hatch fill. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the background color. + + + + + Gets or sets the hatch style. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with foreground, background colors and hatch style. + + Foreground color. + Background color. + Hatch style. + + + + Class represents the glass fill. + + + + + Gets or sets the fill color. + + + + + Gets or sets the blend value. + + Value must be between 0 and 1. + + + + + Gets or sets a value determines whether to draw a hatch or not. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with given color, blend ratio and hatch style. + + Color. + Blend ratio (0..1). + Display the hatch. + + + + Class represents the Texture fill. + + + + + Gets or sets value, indicating that image should preserve aspect ratio + + + + + Gets or sets the image width + + + + + Gets or sets the image height + + + + + Gets or sets the texture wrap mode + + + + + Gets or sets the image index + + + + + Gets or sets the image data + + + + + Image left offset + + + + + Image top offset + + + + + Sets image data to imageData + + input image data + + + + Set image + + input image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default texture. + + + + + Initializes the class with specified image. + + + + + + Initializes the class with specified image. + + + + + + Font header + + + + + TrueTypeFont object + + + + + Create outline for group of characters + + text as array of glyph's indexes + position of text + font size + text in form of outline vectors + + + + Create outline for text string + + text which will be transformed to outline + position of text + font size in px + text in form of outline vectors + + + + + + + Expected default behaviour as version 2020.3 + + + + + We use dictionary and pack "Index To Location" table (reorder glyph indexes) + + + + + Get or set current script + + + + + Get or set current Language + + + + + Get available scripts + + + + + Get available languages for script + + + + + + + Get available features for language and script + + + + + + + + Prepare tables for drawing, subsetting and so on + + always true + + + + Return raw image of the font + + Array of font bytes + + + + + Parse font supplement tables which store properties of the font + + + + + Create glyph outline assigned to specific position + + unicode character which will be drawn + size of the character + position of outline + outline of character + + + + Get glyph's outline + + unicode charter + outline image size + + + + + Constructor of TrueTypeFont object + + The start of RAW image of font or font collection + Actual address of font within RAW image + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of OutlineTextMetric structure + + + + + Emulation of Uniscribe GetOutlineTextMetrics + + Reference to metric structure + + + + Translate text to positions of glyphs in glyph tables and glyphs width + + + size in px + + + + + + + + + Destructor of TrueTypeFont object + + + + + Font descriptor + + + + + Indicates that the point is the start of a figure. + + + + + Indicates that the point is one of the two endpoints of a line. + + + + + Indicates that the point is an endpoint or control point of a cubic Bézier spline. + + + + + Masks all bits except for the three low-order bits, which indicate the point type. + + + + + Specifies that the point is a marker. + + + + + Specifies that the point is the last point in a closed subpath (figure). + + + + + FontHeader table + + + + + Define type of font file + + + + + Classic TrueType font + + + + + Collection of TrueType fonts + + + + + OpenType font format + + + + + + + + GlyphSubstitution table + + + + + Return true if was applied + + + + + + + + + Return coverageIndex for ApplyForce or if fail then return -1 + + + + + + + + Apply this Substitution with specified coverageIndex, cant be called only after IsApply + + + + + + + + + Table with encoded glyphs' outline + + + + + HorizontalMetrix table + + + + + IndexToLocation table + + + + + Kerning table + + + + + MaximumProfile table + + + + + Name table keep human friendly description about font properties, including font names, author and copyright notes + + + + + OS/2 and Windows Metrics table + + + + + Description of FontTextMetric structure + + + + + Description of FontPanose structure + + + + + Request font file + + System.Drawing.Font object + System/IO.Stream object + + + + Get full path to a font file by it's identifier + + font name with attributes + path to a font file + + + + assign full path to a font file to it's identifier + + font name with attributes + path to a font file + + + + Request font file location + + + + + Request font file location + + + + + Register font file + + + + + Will be removed soon + + + + + Different caching strategies + + + + + Progress callback type definition + + Progress information + + + + Progress callback event + + + + + Open and parse TrueType file + + + + + + + + Find all fonts files in directory and it's subdirectories + + Directory where find fond files + Defines file which collect found fonts + + + + Get TrueType font from static collection + + String which identifies font - family name + "-B" for bold and "-I" for italic + + + + + Get font by its name and bold/italic attributes + + + TrueType font object + + + + Workaround function for avoid font duplicates + + if true then font append to collection, if false then font append to hash + Internal font structure + This parameter defines path to font file if file append to hash. Not used otherwise + + + + Parse raw image of font data and create TrueTypeFont objects from this image + + Defines font or collections + Pointer to memory of raw font data + + + + + Build list of fonts + + Optional path to font.list folder. + + + + Enumerate available fonts + + + + + Base class which is parent of any table in TrueType font or collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines how boolean values are formatted and displayed. + + + + + Gets or sets a string that will be displayed if value is false. + + + + + Gets or sets a string that will be displayed if value is true. + + + + + + + + + + + + + + + + + Initializes a new instance of the BooleanFormat class with default settings. + + + + + Defines how currency values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in currency values. + + + + + Gets or sets the string to use as the decimal separator in currency values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in currency values. + + + + + Gets or sets the string to use as the currency symbol. + + + + + Gets or sets the format pattern for positive currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0$n + 1n$ + 2$ n + 3n $ + + + + + + Gets or sets the format pattern for negative currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0 ($n) + 1 -$n + 2 $-n + 3 $n- + 4 (n$) + 5 -n$ + 6 n-$ + 7 n$- + 8 -n $ + 9 -$ n + 10n $- + 11$ n- + 12$ -n + 13n- $ + 14($ n) + 15(n $) + + + + + + + + + + + + + + + + + + Initializes a new instance of the CurrencyFormat class with default settings. + + + + + Represents a format that uses the Format string to display values. + + + + + Gets or sets a format string. + + + Default format is "G". For example, if you want to format a date, use the following + format string: "MM/dd/yyyy". See the System.String.Format method for list + of possible format strings. + + + + + + + + + + + + + + + + + Initializes a new instance of the CustomFormat class with default settings. + + + + + Defines how date values are formatted and displayed. + + + + + + + + Initializes a new instance of the DateFormat class with default settings. + + + + + Base class for all formats. + + + The format is used to format expression value in a object. + + + + + Gets the short format name (e.g. without a "Format" suffix). + + + + + Creates exact copy of this format. + + The copy of this format. + + + + Formats the specified value. + + The value to format. + The string that represents the formatted value. + + + + + + + + + + Represents a collection of formats used by the and + objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies formats from another collection. + + Collection to copy from. + + + + + + + + + + Represents a format used to display values with no formatting. + + + + + + + + + + + + + + + + + Defines how numeric values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in numeric values. + + + + + Gets or sets the string to use as the decimal separator in numeric values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in numeric values. + + + + + Gets or sets the format pattern for negative numeric values. + + This property can have one of the values in the following table. + The symbol n is a number. + + ValueAssociated Pattern + 0(n) + 1-n + 2- n + 3n- + 4n - + + + + + + + + + + + + + + + + + + Initializes a new instance of the NumberFormat class with default settings. + + + + + Defines how percent values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in percent values. + + + + + Gets or sets the string to use as the decimal separator in percent values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in percent values. + + + + + Gets or sets the string to use as the percent symbol. + + + + + Gets or sets the format pattern for positive percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0n % + 1n% + 2%n + 3% n + + + + + + Gets or sets the format pattern for negative percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0 -n % + 1 -n% + 2 -%n + 3 %-n + 4 %n- + 5 n-% + 6 n%- + 7 -%n + 8 n %- + 9 % n- + 10% -n + 11n- % + + + + + + + + + + + + + + + + + + Initializes a new instance of the PercentFormat class with default settings. + + + + + Defines how time values are formatted and displayed. + + + + + + + + Initializes a new instance of the TimeFormat class with default settings. + + + + + Represents a group footer band. + + + + + Specifies a sort order. + + + This enumeration is used in the group header and in the "Matrix" object. + + + + + Specifies no sort (natural order). + + + + + Specifies an ascending sort order. + + + + + Specifies a descending sort order. + + + + + Represents a single highlight condition used by the property + of the . + + + + + Gets or sets a highlight expression. + + + This property can contain any valid boolean expression. If value of this expression is true, + the fill and font settings will be applied to the TextObject. + + + + + Gets or sets the visibility flag. + + + If this property is set to false, the Text object will be hidden if the + condition is met. + + + + + + + + + + + Creates exact copy of this condition. + + A copy of this condition. + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the hyperlink type. + + + + + Specifies the hyperlink to external URL such as "http://www.fast-report.com", "mailto:" + or any other system command. + + + + + Specifies hyperlink to a given page number. + + + + + Specifies hyperlink to a bookmark. + + + + + Specifies hyperlink to external report. This report will be run when you follow the hyperlink. + + + + + Specifies hyperlink to this report's page. The page will be run when you follow the hyperlink. + + + + + Specifies a custom hyperlink. No actions performed when you click it, you should handle it + in the object's Click event handler. + + + + + This class contains a hyperlink settings. + + + + + Gets or sets the kind of hyperlink. + + + Use the Kind property to define hyperlink's behavior. + The hyperlink may be used to navigate to the external url, the page number, + the bookmark defined by other report object, the external report, the other page of this report, + and custom hyperlink. + + + + + Gets or sets the expression which value will be used for navigation. + + + Normally you should set the Expression property to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to some fixed data (URL or page number, for example), + use the property instead. + + + + + Gets or sets a value that will be used for navigation. + + + Use this property to specify the fixed data (such as URL, page number etc). If you want to + navigate to some dynamically calculated value, use the property instead. + + + + + Gets or sets a value that indicate should be links open in new tab or not. + + + It works for HTML-export only! + + + + + Gets or sets an external report file name. + + + Use this property if is set to DetailReport. + When you follow the hyperlink, this report will be loaded and run. + You also may specify the report's parameter in the property. + + + + + Gets or sets the name of this report's page. + + + Use this property if is set to DetailPage. + When you follow the hyperlink, the specified page will be executed. It may contain the + detailed report. You also may specify the report's parameter in the + property. + + + + + Gets or sets a parameter's name that will be set to hyperlink's value. + + + Use this property if is set to DetailReport or DetailPage. + If you want to pass the hyperlink's value to the report's parameter, specify the + parameter name in this property. This parameter will be set to the hyperlink's value + before running a report. It may be used to display detailed information about clicked item. + It is also possible to pass multiple values to several parameters. If hyperlink's value + contains separators (the separator string can be set in the + property), it will be splitted to several values. That values will be passed to nested parameters + of the ReportParameter (you should create nested parameters by youself). For example, you have + the ReportParameter called "SelectedValue" which has two nested parameters: the first one is + "Employee" and the second is "Category". The hyperlink's value is "Andrew Fuller;Beverages". + It will be splitted to two values: "Andrew Fuller" and "Beverages". The first nested parameter + of the ReportParameter that is "Employee" in our case will be set to "Andrew Fuller"; + the second nested parameter ("Category") will be set to "Beverages". + Note: when you create a parameter in the detailed report, don't forget to set + its DataType property. It is used to convert string values to actual data type. + + + + + + Gets or sets a string that will be used as a separator to pass several values + to the external report parameters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Provides the serialize/deserialize functionality. + + + + + Serializes the object. + + Writer object. + + + + Deserializes the object. + + Reader object. + + + + Implement this interface if your object can contain list of child objects. + + + + + Gets a value indicating that this object can contain the specified child object. + + Child object. + true if this object can contain the specified child object; otherwise, false. + + + + Gets a list of child objects. + + List to fill with values. + + + + Adds a child object to this object's childs. + + Object to add. + + + + Removes a specified object from this object's childs. + + + + + + Returns z-order of the specified child object. + + Child object. + Z-order of the specified object. + + This method must return the index of a specified child object in the internal child list. + + + + + Sets the z-order of the specified object. + + Child object. + New Z-order. + + This method must place the specified child object at the specified position in the internal child list. + + + + + Updates the children layout when the size of this object is changed by dx, dy values. + + X delta. + Y delta. + + This method must update positions/sizes of child objects whose Dock or Anchor properties + are set to non-default values. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents an overlay band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + This class contains the page columns settings. + It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + Gets or sets the column width. + + + + + Gets or sets a list of column starting positions. + + + Each value represents a column starting position measured in the millimeters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Represents a page footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a page header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the alignment of a image in the border. + + + + + Specifies that image is not aligned in the layout rectangle. + + + + + Specifies that image is aligned in the top-left of the layout rectangle. + + + + + Specifies that image is aligned in the top-center of the layout rectangle. + + + + + Specifies that image is aligned in the top-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies the language of the report's script. + + + + + The C# language. + + + + + The VisualBasic.Net language. + + + + + Specifies the quality of text rendering. + + + + + The default text quality, depends on system settings. + + + + + The regular quality. + + + + + The "ClearType" quality. + + + + + The AntiAlias quality. This mode may be used to produce the WYSIWYG text. + + + + + The "SingleBitPerPixel" quality. + + + + + The "SingleBitPerPixelGridFit" quality. + + + + + Specifies the report operation. + + + + + Specifies no operation. + + + + + The report is running. + + + + + The report is printing. + + + + + The report is exporting. + + + + + Specifies the page range to print/export. + + + + + Print all pages. + + + + + Print current page. + + + + + Print pages specified in the PageNumbers property of the PrintSettings. + + + + + The automatic shift mode. + + + + + Do not shift the object. + + + + + Shift the object up or down if any object above it shrinks or grows. + + + + + Shift the object up or down if any object above it shrinks or grows. + Objects must have overlapped x-coordinates. + + + + + Specifies where to print an object. + + + + + Do not print the object. + + + + + Print the object on the first page. If this flag is not set, the object will not + be printed on the first page. + + + + + Print the object on the last page. If this flag is not set, the object will not + be printed on the last page. You should set the report's double pass option to make + it work correctly. + + + + + Print the object on odd pages only. + + + + + Print the object on even pages only. + + + + + Print the object on band with "Repeat on Every Page" flag when that band is repeated. + + + + + Print the object if the report has single page only. + + + + + Specifies the style properties to use when style is applied. + + + + + Use the fill property of the style. + + + + + Use all style properties. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Provides data for the event. + + + + + Gets a name of the file to load the report from. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The name of the file to load the report from. + The report. + + + + Provides data for the event. + + + + + Gets an expression. + + + + + Gets or sets a object. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The text of expression. + The name of the file to load the report from. + The report. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Provides data for the Progress event. + + + + + Gets a progress message. + + + + + Gets the current page number. + + + + + Gets the number of total pages. + + + + + Initializes a new instance of the class using the specified + message, page number and total number of pages. + + The progress message. + Current page number. + Number of total pages. + + + + Represents the method that will handle the Progress event. + + The source of the event. + The event data. + + + + Provides data for the DatabaseLogin event. + + + + + Gets or sets the connection string. + + + + + Gets or sets an user name. + + + + + Gets or sets a password. + + + + + Initializes a new instance of the class using the specified + connection string. + + The connection string. + + + + Represents the method that will handle the DatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the AfterDatabaseLogin event. + + + + + Gets the DbConnection object. + + + + + Initializes a new instance of the class using + the specified connection. + + The connection object. + + + + Represents the method that will handle the AfterDatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the FilterProperties event. + + + + + Gets the property descriptor. + + + + + Gets or sets a value that indicates whether this property should be skipped. + + + + + Represents the method that will handle the FilterProperties event. + + The source of the event. + The event data. + + + + Provides data for the GetPropertyKind event. + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets or sets the kind of property. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Provides data for the GetTypeInstance event. + + + + + Gets the type. + + + + + Gets or sets the instance of type. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Event arguments for custom Export parameters + + + + + Used to set custom export parameters + + + + + Specifies the Save Mode of designed report. + + + + + The saving allowed to all. + + + + + The saving in original place. + + + + + The saving allowed to current user. + + + + + The saving allowed to current role/group. + + + + + The saving allowed with other security permissions. + + + + + The saving not allowed. + + + + + Custom saving rules. + + + + + This class represents the report information such as name, author, description etc. + + + + + Gets or sets the name of a report. + + + + + Gets or sets the author of a report. + + + + + Gets or sets the report version. + + + + + Gets or sets the report description. + + + + + Gets or sets the picture associated with a report. + + + + + Gets or sets the report creation date and time. + + + + + Gets or sets a value indicating that report was modified in the designer. + + + + + Gets or sets a value that determines whether to fill the property + automatically. + + + + + Gets or sets the ratio that will be used when generating a preview picture. + + + + + Gets the version of FastReport that was created this report file. + + + + + Gets or sets the Tag string object for this report file. + + + + + Gets or sets SaveMode property. + + + + + Resets all properties to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the default paper size used when creating a new report. + + + + + A4 paper (210 x 297 mm). + + + + + Letter paper (8.5 x 11 inches, 216 x 279 mm). + + + + + Represents a report title band. + + + + + Internal representation of RichText document + + + + + This class represents a RTF run. + + + + + Insert paragraph into list of paragraphs + + + + + Insert row into list of paragraphs + + + + + This class represents a RTF properies. + + + + + This class parses an entiry RTF document. + + + + + + + + + + + + + + + + + Get RTF structure based on range of elements + + + + + + Save RTF document to text stream + + + + + This class represents a RTF document header. + + + Refer to RTF-1.7 spec for detail description + + + + + Parser of RTF header. + + + Return false on finish of header + + + + + This class represents a RTF text paragraph. + + + + + This class detect a RTF control sequences and text. + + + + + This class represents a RTF column description. + + + + + + Create RTF row + + + + + + + Save RTF document to plain text stream + + + + + Specifies a kind of the shape. + + + + + Specifies a rectangle shape. + + + + + Specifies a round rectangle shape. + + + + + Specifies an ellipse shape. + + + + + Specifies a triangle shape. + + + + + Specifies a diamond shape. + + + + + Represents a sort condition used in the . + + + + + Gets or sets an expression used to sort data band rows. + + + This property can contain any valid expression. + + + + + Gets or sets a value indicating that sort must be performed in descending order. + + + + + Serializes the class. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the class. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified expression. + + + + + Initializes a new instance of the class with specified expression and sort order. + + + + + Represents a collection of sort conditions used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Assigns values from another collection. + + Collection to assign from. + + + + Represents a style. + + + + Style class holds border, fill, text fill and font settings. It can be applied to any report object of + type. + + + The Report object holds list of styles in its property. Each style has + unique name. To apply a style to the report component, set its + property to the style name. + + + + + + Gets or sets a name of the style. + + + The name must be unique. + + + + + + + + + + + Creates exact copy of this Style. + + Copy of this style. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of styles used in the . + + + + + Gets or sets the name of the style. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style with specified name. + + The name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style with specified name is in the collection. + + The style name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file. + + The name of the file. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file. + + The name of the file. + + + + Creates exact copy of this collection. + + The copy of this collection. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of the objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style collection with specified name. + + The style collection name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style collection with specified name is in the collection. + + The style collection name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Gets an array containing all collection items. + + An array containing all collection items. + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file with specified name. + + File name to save to. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file with specified name. + + Name of a file. + + + + Specifies the horizontal alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the left of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the right of the layout rectangle. + + + + + Specifies that text is aligned in the left and right sides of the layout rectangle. + + + + + Specifies the vertical alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the top of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the bottom of the layout rectangle. + + + + + The type of text renderer + + + + + The default render + + + + + Render with some html tags and stable logic + + + + + Render with img tags, span etc. Experimental and unstable logic + + + + + The format of paragraph + + + + + The first line on each paragraph, not effect if value less then 0 + + + + + The distance between lines, not effect if value less then 0 + + + + + The spacing type for distance between line calculation + + + + + The value for a multiplication line height for adding spacing + + + + + Skip the line indent in the first paragraph, for broken paragraphs + + + + + clone with new scale; + + + + + + + The spacing type between lines + + + + + Single spacing, not effect from LineSpacing + + + + + Minimal spacing in exactly size + + + + + The specific distance between the lines, for some exports, does not work if the distance value is too small. + + + + + The calculated distance between lines, for some exports, does not work if the distance value is too small. + + + + + Specifies the behavior of the AutoShrink feature of TextObject. + + + + + AutoShrink is disabled. + + + + + AutoShrink decreases the Font.Size property of the TextObject. + + + + + AutoShrink decreases the FontWidthRatio property of the TextObject. + + + + + Specifies how to display the duplicate values. + + + + + The TextObject can show duplicate values. + + + + + The TextObject with duplicate value will be hidden. + + + + + The TextObject with duplicate value will be shown but with no text. + + + + + Several TextObject objects with the same value will be merged into one TextObject object. + + + + + Specifies how the report engine processes the text objects. + + + + + Specifies the default process mode. The text object is processed just-in-time. + + + + + Specifies that the text object must be processed when the entire report is finished. This mode + can be used to print grand total value (which is normally calculated at the end of report) in the + report title band. + + + + + Specifies that the text object must be processed when the entire report page is finished. This mode + can be used if the report template consists of several report pages. + + + + + Specifies that the text object must be processed when any report page is finished. This mode + can be used to print the page total (which is normally calculated at the page footer) in the + page header band. + + + + + Specifies that the text object must be processed when the column is finished. This mode + can be used to print the column total (which is normally calculated at the column footer) in the + column header band. + + + + + Specifies that the text object must be processed when the data block is finished. This mode can be + used to print a total value in the data header (which is normally available + in the data footer only). + + + + + Specifies that the text object must be processed when the group is finished. This mode can be + used to print a total value in the group header (which is normally available + in the group footer only). + + + + + Specifies that the text object is processed manually when you call the Engine.ProcessObject + method in the report script. + + + + + Represents text outline. + + + + + Gets or sets a value indicating that outline is enabled. + + + + + Enable or disable draw the outline behind of text. + + + + + Gets or sets the outline color. + + + + + Gets or sets the outline width. + + + + + Specifies the style of an outline. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + True if outline enabled. + Outline color. + Outline width. + Outline style. + True if outline should be drawn behind text. + + + + Copies the content of another TextOutline. + + The TextOutline instance to copy the contents from. + + + + Creates the exact copy of this outline. + + Copy of this outline. + + + + Serializes the TextOutline. + + Writer object. + TextOutline property name. + Another TextOutline to compare with. + + + + Represents a cache of graphics objects such as pens, brushes, fonts and text formats. + + + Cache holds all used graphics objects. There is no need to dispose objects returned + by GetXXX calls. + + This example demonstrates how to use graphic cache. + + public void Draw(FRPaintEventArgs e) + { + Brush brush = e.Cache.GetBrush(BackColor); + Pen pen = e.Cache.GetPen(BorderColor, 1, BorderStyle); + e.Graphics.FillRectangle(brush, Bounds); + e.Graphics.DrawRectangle(pen, Bounds); + } + + + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + The Pen object. + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + Line join of a pen. + The Pen object. + + + + Gets a brush with specified color. + + Color of a brush. + The SolidBrush object. + + + + Gets a font with specified settings. + + Name of a font. + Size of a font. + Style of a font. + The Font object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + The StringFormat object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + Default distance between default tabs stops. + The StringFormat object. + + + + Disposes resources used by this object. + + + + + Initializes a new instance of the GraphicCache class with default settings. + + + + + A strongly typed object that readily casts an intrinsic + object to the other intrinsic types when possible. + + + The Variant class is an intrinsic object container structure + inspired by Visual Basic 6.0's Variant. The key features + of a Variant class include the ability to perform typecasts and + arithmetic between types that are not normally considered compatible. + For example, if a Variant class contains a string describing a + number, such as "1.1", then floating point arithmetic can be + performed on it. + Variants are normally considered dangerous because they + strip away the effectiveness of type safety, which is the + reason why the Visual Basic 6.0 Variant was left out of + Visual Basic .NET. However, this implementation restores the + Variant structure, both as a proof of concept and as a + restoration of the utility and positive merits of the Variant + where it can be used responsibly. + + + + + Creates a strongly typed object that readily casts a primitive + object to the other primitive types when possible. + + + + + The actual value being stored in its original , + returned as an . + + + + + The of the property. + + + + + Returns the for this instance. + + The enumerated constant that is the + of the class or value type that implements this interface. + + + + Returns the string equivalent of the property. + + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + The object after typecasting. + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + An + interface implementation that supplies culture-specific formatting information. + The object after typecasting. + + + + Returns true if the property implements + + + + + Returns true if the property + is a numeric intrinsic value. + + + + + Returns true if the property + is a numeric intrinsic value or else can be parsed into + a numeric intrinsic value. + + + + + Returns true if the value is a date or can be parsed into a date. + + + + + Returns true if the value is a TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent 16-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + Addition operator. + + + If the value on the right is a + or a , + the Variant is converted to a string and appended. + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Subtraction operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Unary minus operator. + + + + + Greater than operator. + + + + + Greater than or equal operator. + + + + + Less than operator. + + + + + Less than or equal operator. + + + + + Multiplication operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Division operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Modulus operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise And operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise Or operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Inequality operator. + + + + + The opposite of == + + + + + Equality operator. + First attempts to compare the left value after + temporarily converting it to the type of the right value. + If the conversion cannot occur, such as if the value is not an + intrinsic value type, the comparison occurs at the + level using Object.Equals. + + + + + + + + Equality operator. + + + + + + + + Equality operator. + + + + + + + + Returns property unless the value on the right + is null. If the value on the right is null, returns "". + + + + + + Converts the value of this instance to an equivalent + using the specified culture-specific formatting information. + + + + + + + See . + + + + + + See . + + + + + + + Converts an object to a boolean. + For any type, if null, returns false. + For Boolean: true/false. + For String: "", "false", "0", etc. == false; + "1", "true", etc. == true, else true. + For numeric intrinsics: 0 == false, else true. + For any other non-null object, returns true. + + The string to be converted + The boolean value of this string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the watermark image size mode. + + + + + Specifies the normal (original) size. + + + + + Specifies the centered image. + + + + + Specifies the stretched image. + + + + + Specifies the stretched image that keeps its aspect ratio. + + + + + Specifies the tiled image. + + + + + Specifies the watermark text rotation. + + + + + Specifies a horizontal text. + + + + + Specifies a vertical text. + + + + + Specifies a diagonal text. + + + + + Specifies a backward diagonal text. + + + + + Represents the report page watermark. + + + Watermark can draw text and/or image behind the page objects on in front of them. To enable + watermark, set its Enabled property to true. + + + + + Gets or sets avalue indicating that watermark is enabled. + + + + + Gets or sets the watermark image. + + + + + Gets or sets the watermark image size mode. + + + + + Gets or sets an image transparency. + + + Valid values are 0..1. 1 means totally transparent image. + + + + + Gets or sets the watermark text. + + + + + Gets or sets a font of the watermark text. + + + + + Gets or sets a text fill. + + + + + Gets or sets a text rotation. + + + + + Gets or sets a value indicates that the text should be displayed on top of all page objects. + + + + + Gets or sets a value indicates that the image should be displayed on top of all page objects. + + + + + + + + + + Draws watermark image. + + + + + + + + + Draws watermark text. + + + + + + + + + Serializes the watermark. + + Writer object. + The watermark property name. + Another Watermark object to compare with. + + This method is for internal use only. + + + + + Disposes resources used by the watermark. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this Watermark. + + Copy of this watermark. + + + + Initializes a new instance of the class with default settings. + + + + + An SVG element to render circles to the document. + + + + + Gets the center point of the circle. + + The center. + + + + Gets the representing this element. + + + + + Renders the circle to the specified object. + + The graphics object. + + + + Initializes a new instance of the class. + + + + + Represents and SVG ellipse element. + + + + + Gets the for this element. + + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Initializes a new instance of the class. + + + + + Represents and SVG image + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + Represents and SVG line element. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an element that is using a GraphicsPath as rendering base. + + + + + SvgPolygon defines a closed shape consisting of a set of connected straight line segments. + + + + + The points that make up the SvgPolygon + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + SvgPolyline defines a set of connected straight line segments. Typically, defines open shapes. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an SVG rectangle that could also have rounded edges. + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the position where the left point of the rectangle should start. + + + + + Gets or sets the position where the top point of the rectangle should start. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets or sets the X-radius of the rounded edges of this rectangle. + + + + + Gets or sets the Y-radius of the rounded edges of this rectangle. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + The class that all SVG elements should derive from when they are to be rendered. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the associated if one has been specified. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets the algorithm which is to be used to determine the clipping region. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the fill of the to the specified + + The object to render to. + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Gets or sets a value to determine whether the element will be rendered. + + + + + Gets or sets a value to determine whether the element will be rendered. + Needed to support SVG attribute display="none" + + + + + Gets or sets the fill of this element. + + + + + Defines the methods and properties that an must implement to support clipping. + + + + + Gets or sets the ID of the associated if one has been specified. + + + + + Specifies the rule used to define the clipping region when the element is within a . + + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Defines a path that can be used by other elements. + + + + + Specifies the coordinate system for the clipping path. + + + + + Initializes a new instance of the class. + + + + + Gets this 's region to be used as a clipping region. + + A new containing the to be used for clipping. + + + + + + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Indicates the algorithm which is to be used to determine the clipping region. + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from + that point to infinity in any direction and then examining the places where a segment of the + shape crosses the ray. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside. + + + + + Provides properties and methods to be implemented by view port elements. + + + + + Gets or sets the viewport of the element. + + + + + Description of SvgAspectRatio. + + + + Specifies the color space for gradient interpolations, color animations and alpha compositing. + When a child element is blended into a background, the value of the ‘color-interpolation’ property on the child determines the type of blending, not the value of the ‘color-interpolation’ on the parent. For gradients which make use of the ‘xlink:href’ attribute to reference another gradient, the gradient uses the ‘color-interpolation’ property value from the gradient element which is directly referenced by the ‘fill’ or ‘stroke’ property. When animating colors, color interpolation is performed according to the value of the ‘color-interpolation’ property on the element being animated. + + + Indicates that the user agent can choose either the sRGB or linearRGB spaces for color interpolation. This option indicates that the author doesn't require that color interpolation occur in a particular color space. + + + Indicates that color interpolation should occur in the sRGB color space. + + + Indicates that color interpolation should occur in the linearized RGB color space as described above. + + + The value is inherited from the parent element. + + + Defines the coordinate system for attributes ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’. + + + If markerUnits="strokeWidth", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in a coordinate system which has a single unit equal the size in user units of the current stroke width (see the ‘stroke-width’ property) in place for the graphic object referencing the marker. + + + If markerUnits="userSpaceOnUse", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in the current user coordinate system in place for the graphic object referencing the marker (i.e., the user coordinate system for the element referencing the ‘marker’ element via a ‘marker’, ‘marker-start’, ‘marker-mid’ or ‘marker-end’ property). + + + + Defines the various coordinate units certain SVG elements may use. + + + + + Indicates that the coordinate system of the owner element is to be used. + + + + + Indicates that the coordinate system of the entire document is to be used. + + + + This is the descriptor for the style of a font and takes the same values as the 'font-style' property, except that a comma-separated list is permitted. + + + Indicates that the font-face supplies all styles (normal, oblique and italic). + + + Specifies a font that is classified as 'normal' in the UA's font database. + + + Specifies a font that is classified as 'oblique' in the UA's font database. Fonts with Oblique, Slanted, or Incline in their names will typically be labeled 'oblique' in the font database. A font that is labeled 'oblique' in the UA's font database may actually have been generated by electronically slanting a normal font. + + + Specifies a font that is classified as 'italic' in the UA's font database, or, if that is not available, one labeled 'oblique'. Fonts with Italic, Cursive, or Kursiv in their names will typically be labeled 'italic' + + + The weight of a face relative to others in the same font family. + + + All font weights. + + + The value is inherited from the parent element. + + + Same as . + + + Same as . + + + One font weight darker than the parent element. + + + One font weight lighter than the parent element. + + + + + + + + + + + + Same as . + + + + + + + + + Same as . + + + + + + + + + + Represents an orientation in an Scalable Vector Graphics document. + + + + + Gets the value of the unit. + + + + + Gets the value of the unit. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Overflow is not rendered. + + + The value is inherited from the parent element. + + + The overflow is rendered - same as "visible". + + + Overflow is rendered. + + + Overflow causes a scrollbar to appear (horizontal, vertical or both). + + + + Represents a list of used with the and . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + This property describes decorations that are added to the text of an element. Conforming SVG Viewers are not required to support the blink value. + + + The value is inherited from the parent element. + + + The text is not decorated + + + The text is underlined. + + + The text is overlined. + + + The text is struck through. + + + The text will blink. + + + Indicates the type of adjustments which the user agent shall make to make the rendered length of the text match the value specified on the ‘textLength’ attribute. + + The user agent is required to achieve correct start and end positions for the text strings, but the locations of intermediate glyphs are not predictable because user agents might employ advanced algorithms to stretch or compress text strings in order to balance correct start and end positioning with optimal typography. + Note that, for a text string that contains n characters, the adjustments to the advance values often occur only for n−1 characters (see description of attribute ‘textLength’), whereas stretching or compressing of the glyphs will be applied to all n characters. + + + + Indicates that only the advance values are adjusted. The glyphs themselves are not stretched or compressed. + + + Indicates that the advance values are adjusted and the glyphs themselves stretched or compressed in one axis (i.e., a direction parallel to the inline-progression-direction). + + + Indicates the method by which text should be rendered along the path. + + + Indicates that the glyphs should be rendered using simple 2x3 transformations such that there is no stretching/warping of the glyphs. Typically, supplemental rotation, scaling and translation transformations are done for each glyph to be rendered. As a result, with align, fonts where the glyphs are designed to be connected (e.g., cursive fonts), the connections may not align properly when text is rendered along a path. + + + Indicates that the glyph outlines will be converted into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. + + + Indicates how the user agent should determine the spacing between glyphs that are to be rendered along a path. + + + Indicates that the glyphs should be rendered exactly according to the spacing rules as specified in Text on a path layout rules. + + + Indicates that the user agent should use text-on-a-path layout algorithms to adjust the spacing between glyphs in order to achieve visually appealing results. + + + + Represents a unit in an Scalable Vector Graphics document. + + + + + Gets and empty . + + + + + Gets an with a value of none. + + + + + Gets a value to determine whether the unit is empty. + + + + + Gets whether this unit is none. + + + + + Gets the value of the unit. + + + + + Gets the of unit. + + + + + Converts the current unit to one that can be used at render time. + + The container element used as the basis for calculations + The representation of the current unit in a device value (usually pixels). + + + + Converts the current unit to a percentage, if applicable. + + An of type . + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The type. + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Defines the various types of unit an can be. + + + + + Indicates that the unit holds no value. + + + + + Indicates that the unit is in pixels. + + + + + Indicates that the unit is equal to the pt size of the current font. + + + + + Indicates that the unit is equal to the x-height of the current font. + + + + + Indicates that the unit is a percentage. + + + + + Indicates that the unit has no unit identifier and is a value in the current user coordinate system. + + + + + Indicates the the unit is in inches. + + + + + Indicates that the unit is in centimeters. + + + + + Indicates that the unit is in millimeters. + + + + + Indicates that the unit is in picas. + + + + + Indicates that the unit is in points, the smallest unit of measure, being a subdivision of the larger . There are 12 points in the . + + + + + Represents a list of . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + It is often desirable to specify that a given set of graphics stretch to fit a particular container element. The viewBox attribute provides this capability. + + + + + Gets or sets the position where the viewport starts horizontally. + + + + + Gets or sets the position where the viewport starts vertically. + + + + + Gets or sets the width of the viewport. + + + + + Gets or sets the height of the viewport. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The min X. + The min Y. + The width. + The height. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An represents an SVG fragment that can be the root element or an embedded fragment of an SVG document. + + + + + Gets the SVG namespace string. + + + + + Gets or sets the position where the left point of the svg should start. + + + + + Gets or sets the position where the top point of the svg should start. + + + + + Gets or sets the width of the fragment. + + The width. + + + + Gets or sets the height of the fragment. + + The height. + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Indicates which font family is to be used to render the text. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Gets the for this element. + + + + + + Gets the bounds of the svg element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + An element used to group SVG shapes. + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + The �switch� element evaluates the �requiredFeatures�, �requiredExtensions� and �systemLanguage� attributes on its direct child elements in order, and then processes and renders the first child for which these attributes evaluate to true + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An element used to group SVG shapes. + + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Applies the required transforms to . + + The to be transformed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Initializes a new instance of the class. + + + + + The �foreignObject� element allows for inclusion of a foreign namespace which has its graphical content drawn by a different user agent + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + matrix | saturate | hueRotate | luminanceToAlpha + Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix. If attribute �type� is not specified, then the effect is as if a value of matrix were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + + Gets or sets the radius of the blur (only allows for one value - not the two specified in the SVG Spec) + + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the x-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the y-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + A filter effect consists of a series of graphics operations that are applied to a given source graphic to produce a modified graphical result. + + + + + Gets or sets the position where the left point of the filter. + + + + + Gets or sets the position where the top point of the filter. + + + + + Gets or sets the width of the resulting filter graphic. + + + + + Gets or sets the height of the resulting filter graphic. + + + + + Gets or sets the color-interpolation-filters of the resulting filter graphic. + NOT currently mapped through to bitmap + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Publish the element name to be able to differentiate non-svg elements. + + + + If specified, upon conversion, the default value will result in 'null'. + + + Creates a new instance. + + + Creates a new instance. + Specified the default value of the enum. + + + Attempts to convert the provided value to . + + + Attempts to convert the value to the destination type. + + + + Defines the methods and properties required for an SVG element to be styled. + + + + + Converts string representations of colours into objects. + + + + + Converts the given object to the converter's native type. + + A that provides a format context. You can use this object to get additional information about the environment from which this converter is being invoked. + A that specifies the culture to represent the color. + The object to convert. + + An representing the converted value. + + The conversion cannot be performed. + + + + + + + Converts HSL color (with HSL specified from 0 to 1) to RGB color. + Taken from http://www.geekymonkey.com/Programming/CSharp/RGB2HSL_HSL2RGB.htm + + + + + + + + + An unspecified . + + + + + A that should inherit from its parent. + + + + + A wrapper for a paint server which isn't defined currently in the parse process, but + should be defined by the time the image needs to render. + + + + + A wrapper for a paint server has a fallback if the primary server doesn't work. + + + + + Provides the base class for all paint servers that wish to render a gradient. + + + + + Initializes a new instance of the class. + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Gets the ramp of colors to use on a gradient. + + + + + Specifies what happens if the gradient starts or ends inside the bounds of the target rectangle. + + + + + Gets or sets the coordinate system of the gradient. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Gets a representing the 's gradient stops. + + The parent . + The opacity of the colour blend. + + + Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle. + + Possible values are: 'pad', which says to use the terminal colors of the gradient to fill the remainder of the target region, 'reflect', which says to reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled, and repeat, which says to repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + If the attribute is not specified, the effect is as if a value of 'pad' were specified. + + + + Use the terminal colors of the gradient to fill the remainder of the target region. + + + Reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled. + + + Repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + + + + Represents a colour stop in a gradient. + + + + + Gets or sets the offset, i.e. where the stop begins from the beginning, of the gradient stop. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the gradient stop (0-1). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The offset. + The colour. + + + + + Render this marker using the slope of the given line segment + + + + + + + + + Render this marker using the average of the slopes of the two given line segments + + + + + + + + + + Common code for rendering a marker once the orientation angle has been calculated + + + + + + + + + Create a pen that can be used to render this marker + + + + + + + Get a clone of the current path, scaled for the stroke width + + + + + + Adjust the given value to account for the width of the viewbox in the viewport + + + + + + + Adjust the given value to account for the height of the viewbox in the viewport + + + + + + + Represents the base class for all paint servers that are intended to be used as a fill or stroke. + + + + + An unspecified . + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + A pattern is used to fill or stroke an object using a pre-defined graphic object which can be replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. + + + + + Specifies a supplemental transformation which is applied on top of any + transformations necessary to create a new pattern coordinate system. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the height of the pattern. + + + + + Gets or sets the X-axis location of the pattern. + + + + + Gets or sets the Y-axis location of the pattern. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Initializes a new instance of the class. + + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Determine how much (approximately) the path must be scaled to contain the rectangle + + Bounds that the path must contain + Path of the gradient + Scale factor + + This method continually transforms the rectangle (fewer points) until it is contained by the path + and returns the result of the search. The scale factor is set to a constant 95% + + + + Specifies the shape to be used at the end of open subpaths when they are stroked. + + + The value is inherited from the parent element. + + + The ends of the subpaths are square but do not extend past the end of the subpath. + + + The ends of the subpaths are rounded. + + + The ends of the subpaths are square. + + + Specifies the shape to be used at the corners of paths or basic shapes when they are stroked. + + + The value is inherited from the parent element. + + + The corners of the paths are joined sharply. + + + The corners of the paths are rounded off. + + + The corners of the paths are "flattened". + + + + Represents an SVG path element. + + + + + Gets or sets a of path data. + + + + + Gets or sets the length of the path. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Parses the specified string into a collection of path segments. + + A containing path data. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if and contains relative coordinate values, otherwise false. + that contains absolute coordinates. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if contains relative coordinate value, otherwise false. + true if contains relative coordinate value, otherwise false. + that contains absolute coordinates. + + + + Convenience wrapper around a graphics object + + + + + Initializes a new instance of the class. + + + + + Creates a new from the specified . + + from which to create the new . + + + + Creates a new from the specified . + + The to create the renderer from. + + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + Based of parent. If parents are also not set, then + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed, crisp edges and geometric precision, but with geometric precision given more importance than speed and crisp edges. + + true + + + + Indicates that the user agent shall emphasize rendering speed over geometric precision and crisp edges. This option will sometimes cause the user agent to turn off shape anti-aliasing. + + false + + + + Indicates that the user agent shall attempt to emphasize the contrast between clean edges of artwork over rendering speed and geometric precision. To achieve crisp edges, the user agent might turn off anti-aliasing for all lines and curves or possibly just for straight lines which are close to vertical or horizontal. Also, the user agent might adjust line positions and line widths to align edges with device pixels. + + false + + + + Indicates that the user agent shall emphasize geometric precision over speed and crisp edges. + + false + + + + The creator of SVG content might want to provide a hint about what tradeoffs to make as the browser renders text. The text-rendering attribute provides these hints. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/text-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the browser shall make appropriate tradeoffs to balance speed, legibility and geometric precision, but with legibility given more importance than speed and geometric precision. + + + + + Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision. This option will sometimes cause some browsers to turn off text anti-aliasing. + + + + + Indicates that the browser shall emphasize legibility over rendering speed and geometric precision. The user agent will often choose whether to apply anti-aliasing techniques, built-in font hinting or both to produce the most legible text. + + + + + Indicates that the browser shall emphasize geometric precision over legibility and rendering speed. This option will usually cause the user agent to suspend the use of hinting so that glyph outlines are drawn with comparable geometric precision to the rendering of path data. + + + + + The image-rendering attribute provides a hint to the browser about how to make speed vs. quality tradeoffs as it performs image processing. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/image-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed and quality, but quality shall be given more importance than speed. + + + + + Indicates that the user agent shall emphasize rendering speed over quality. + + + + + Indicates that the user agent shall emphasize quality over rendering speed. + + + + + Specifies the SVG attribute name of the associated property. + + + + + Gets a containing the XLink namespace (http://www.w3.org/1999/xlink). + + + + + When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. + + An to compare with this instance of . + + true if this instance equals ; otherwise, false. + + + + + Gets the name of the SVG attribute. + + + + + Gets the name of the SVG attribute. + + + + + Gets the namespace of the SVG attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified attribute name. + + The name of the SVG attribute. + + + + Initializes a new instance of the class with the specified SVG attribute name and namespace. + + The name of the SVG attribute. + The namespace of the SVG attribute (e.g. http://www.w3.org/2000/svg). + + + + A collection of Scalable Vector Attributes that can be inherited from the owner elements ancestors. + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The value to return if a value hasn't already been specified. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name and inherits from ancestors if there is no attribute set. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the ancestors value for the same attribute; otherwise the default value of . + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + A collection of Custom Attributes + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + Create a deep copy of this . + + A deep copy of this + + + + Holds a dictionary of the default values of the SVG specification + + + + + Checks whether the property value is the default value of the svg definition. + + Name of the svg attribute + .NET value of the attribute + + + + The class used to create and load SVG documents. + + + + + Initializes a new instance of the class. + + + + + Gets an for this document. + + + + + Overwrites the current IdManager with a custom implementation. + Be careful with this: If elements have been inserted into the document before, + you have to take care that the new IdManager also knows of them. + + + + + + Gets or sets the Pixels Per Inch of the rendered image. + + + + + Gets or sets an external Cascading Style Sheet (CSS) + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + A dictionary of custom entity definitions to be used when resolving XML entities within the document. + An with the contents loaded. + The document at the specified cannot be found. + + + + Attempts to open an SVG document from the specified . + + The containing the SVG document to open. + + + + Attempts to create an SVG document from the specified string data. + + The SVG data. + + + + Opens an SVG document from the specified and adds the specified entities. + + The containing the SVG document to open. + Custom entity definitions. + The parameter cannot be null. + + + + Opens an SVG document from the specified . + + The containing the SVG document XML. + The parameter cannot be null. + + + + Renders the to the specified . + + The to render the document with. + The parameter cannot be null. + + + + Renders the to the specified . + + The to be rendered to. + The parameter cannot be null. + + + + Renders the and returns the image as a . + + A containing the rendered document. + + + + Renders the into a given Bitmap . + + + + + Renders the in given size and returns the image as a . + + A containing the rendered document. + + + + If both or one of raster height and width is not given (0), calculate that missing value from original SVG size + while keeping original SVG size ratio + + + + + + + + Maps a URI to an object containing the actual resource. + + The URI returned from + The current implementation does not use this parameter when resolving URIs. This is provided for future extensibility purposes. For example, this can be mapped to the xlink:role and used as an implementation specific argument in other scenarios. + The type of object to return. The current implementation only returns System.IO.Stream objects. + + A System.IO.Stream object or null if a type other than stream is specified. + + + is neither null nor a Stream type. + The specified URI is not an absolute URI. + + is null. + There is a runtime error (for example, an interrupted server connection). + + + + The base class of which all SVG elements are derived from. + + + + + Gets the name of the element. + + + + + Gets or sets the color of this element which drives the currentColor property. + + + + + Gets or sets the content of the element. + + + + + Gets an of all events belonging to the element. + + + + + Occurs when the element is loaded. + + + + + Gets a collection of all child . + + + + + Gets a value to determine whether the element has children. + + + + + Gets the parent . + + An if one exists; otherwise null. + + + + Gets the owner . + + + + + Gets a collection of element attributes. + + + + + Gets a collection of custom attributes + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Gets or sets the element transforms. + + The transforms. + + + + Gets or sets the ID of the element. + + The ID is already used within the . + + + + Gets or sets the space handling. + + The space handling. + + + + Only used by the ID Manager + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Fired when an Element was added to the children of this Element + + + + + Calls the method with the specified parameters. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Calls the method with the specified as the parameter. + + The that has been removed. + + + + Initializes a new instance of the class. + + + + + Renders this element to the . + + The that the element should use to render itself. + + + Derrived classes may decide that the element should not be written. For example, the text element shouldn't be written if it's empty. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the children of this . + + The to render the child s to. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Recursive method to add up the paths of all children + + + + + + + Recursive method to add up the paths of all children + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Fired when an Atrribute of this Element has changed + + + + + Fired when an Atrribute of this Element has changed + + + + + Gets or sets a value indicating whether this element's is dirty. + + + true if the path is dirty; otherwise, false. + + + + + Force recreation of the paths for the element and it's children. + + + + + Gets or sets the fill of this element. + + + + + Gets or sets the to be used when rendering a stroke around this element. + + + + + Gets or sets the opacity of this element's . + + + + + Gets or sets the width of the stroke (if the property has a valid value specified. + + + + + Gets or sets the opacity of the stroke, if the property has been specified. 1.0 is fully opaque; 0.0 is transparent. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the element. 1.0 is fully opaque; 0.0 is transparent. + + + + + Refers to the AnitAlias rendering of shapes. + + + + + Gets or sets the text anchor. + + + + + Specifies dominant-baseline positioning of text. + + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Refers to the boldness of the font. + + + + + Set all font information. + + + + + Get the font information based on data stored with the text object or inherited from the parent. + + + + + + Describes the Attribute which was set + + + + + Content of this whas was set + + + + + Describes the Attribute which was set + + + + + Represents the state of the mouse at the moment the event occured. + + + + + 1 = left, 2 = middle, 3 = right + + + + + Amount of mouse clicks, e.g. 2 for double click + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Represents a string argument + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Create a deep copy of this . + + A deep copy of this + + + This interface mostly indicates that a node is not to be drawn when rendering the SVG. + + + + Specifies the SVG name of an . + + + + + Gets the name of the SVG element. + + + + + Initializes a new instance of the class with the specified element name; + + The name of the SVG element. + + + + Represents a collection of s. + + + + + Initialises a new instance of an class. + + The owner of the collection. + + + + Returns the index of the specified in the collection. + + The to search for. + The index of the element if it is present; otherwise -1. + + + + Inserts the given to the collection at the specified index. + + The index that the should be added at. + The to be added. + + + + expensive recursive search for nodes of type T + + + + + + + expensive recursive search for first node of type T + + + + + + + Provides the methods required in order to parse and create instances from XML. + + + + + Gets a list of available types that can be used when creating an . + + + + + Creates an from the current node in the specified . + + The containing the node to parse into an . + The parameter cannot be null. + The CreateDocument method can only be used to parse root <svg> elements. + + + + Creates an from the current node in the specified . + + The containing the node to parse into a subclass of . + The that the created element belongs to. + The and parameters cannot be null. + + + + Contains information about a type inheriting from . + + + + + Gets the SVG name of the . + + + + + Gets the of the subclass. + + + + + Initializes a new instance of the struct. + + Name of the element. + Type of the element. + + + + Initializes a new instance of the class. + + + + + Provides methods to ensure element ID's are valid and unique. + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Adds the specified for ID management. + + The to be managed. + + + + Adds the specified for ID management. + And can auto fix the ID if it already exists or it starts with a number. + + The to be managed. + Pass true here, if you want the ID to be fixed + If not null, the action is called before the id is fixed + true, if ID was altered + + + + Removed the specified from ID management. + + The to be removed from ID management. + + + + Ensures that the specified ID is valid within the containing . + + A containing the ID to validate. + Creates a new unique id . + + The ID cannot start with a digit. + An element with the same ID already exists within the containing . + + + + + Initialises a new instance of an . + + The containing the s to manage. + + + + Svg helpers + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + http://stackoverflow.com/questions/3633000/net-enumerate-winforms-font-styles + + + + + Evaluates the integral of the function over the integral using the specified number of points + + + + + + + + http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + + http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Gets or sets a of path data. + + + + + Gets the for this element. + + + + + Initializes a new instance of the class. + + + + + The element defines a graphics element consisting of text. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Text anchor is used to align (start-, middle- or end-alignment) a string of text relative to a given point. + + + + The value is inherited from the parent element. + + + + The rendered characters are aligned such that the start of the text string is at the initial current text position. + + + + + The rendered characters are aligned such that the middle of the text string is at the current text position. + + + + + The rendered characters are aligned such that the end of the text string is at the initial current text position. + + + + + Gets or sets the text to be rendered. + + + + + Gets or sets the X. + + The X. + + + + Gets or sets the dX. + + The dX. + + + + Gets or sets the Y. + + The Y. + + + + Gets or sets the dY. + + The dY. + + + + Gets or sets the rotate. + + The rotate. + + + + The pre-calculated length of the text + + + + + Gets or sets the text anchor. + + The text anchor. + + + + Specifies spacing behavior between text characters. + + + + + Specifies spacing behavior between words. + + + + + Gets or sets the fill. + + + Unlike other s, has a default fill of black rather than transparent. + + The fill. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + Necessary to make sure that any internal tspan elements get rendered as well + + + + Gets the for this element. + + + + + + Sets the path on this element and all child elements. Uses the state + object to track the state of the drawing + + State of the drawing operation + + + + Prepare the text according to the whitespace handling rules. SVG Spec. + + Text to be prepared + Prepared text + + + Empty text elements are not legal - only write this element if it has children. + + + + The element defines a graphics element consisting of text. + + + + + Represents and element that may be transformed. + + + + + Gets or sets an of element transforms. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + The class which applies custom transform to this Matrix (Required for projects created by the Inkscape). + + + + + The class which applies the specified shear vector to this Matrix. + + + + + The class which applies the specified skew vector to this Matrix. + + + + + Multiplies all matrices + + The result of all transforms + + + + Fired when an SvgTransform has changed + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + The maximum allowed codepoint (defined in Unicode). + + + + Return the shortest form possible + + + + + exposed enumeration for the adding of separators into term lists + + + + + An implementation that generates + human-readable description of the selector. + + + + + Initializes the text. + + + + + Gets the generated human-readable description text. + + + + + Generates human-readable for a selector in a group. + + + + + Concludes the text. + + + + + Adds to the generated human-readable text. + + + + + Generates human-readable text of this type selector. + + + + + Generates human-readable text of this universal selector. + + + + + Generates human-readable text of this ID selector. + + + + + Generates human-readable text of this class selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates human-readable text of this combinator. + + + + + Represents a selectors implementation for an arbitrary document/node system. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent an implementation that is responsible for generating + an implementation for a selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits the closing/conclusion of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent a type or attribute name. + + + + + Represents a name from either the default or any namespace + in a target document, depending on whether a default namespace is + in effect or not. + + + + + Represents an empty namespace. + + + + + Represents any namespace. + + + + + Initializes an instance with a namespace prefix specification. + + + + + Gets the raw text value of this instance. + + + + + Indicates whether this instance represents a name + from either the default or any namespace in a target + document, depending on whether a default namespace is + in effect or not. + + + + + Indicates whether this instance represents a name + from any namespace (including one without one) + in a target document. + + + + + Indicates whether this instance represents a name + without a namespace in a target document. + + + + + Indicates whether this instance represents a name from a + specific namespace or not. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and another are equal. + + + + + Returns the hash code for this instance. + + + + + Returns a string representation of this instance. + + + + + Formats this namespace together with a name. + + + + + Semantic parser for CSS selector grammar. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Adds reading semantics to a base with the + option to un-read and insert new elements while consuming the source. + + + + + Initialize a new with a base + object. + + + + + Initialize a new with a base + object. + + + + + Indicates whether there is, at least, one value waiting to be read or not. + + + + + Pushes back a new value that will be returned on the next read. + + + + + Reads and returns the next value. + + + + + Peeks the next value waiting to be read. + + + Thrown if there is no value waiting to be read. + + + + + Returns an enumerator that iterates through the remaining + values to be read. + + + + + Disposes the enumerator used to initialize this object + if that enumerator supports . + + + + + Represents a selector implementation over an arbitrary type of elements. + + + + + A selector generator implementation for an arbitrary document/element system. + + + + + Initializes a new instance of this object with an instance + of and the default equality + comparer that is used for determining if two elements are equal. + + + + + Initializes a new instance of this object with an instance + of and an equality comparer + used for determining if two elements are equal. + + + + + Gets the selector implementation. + + + If the generation is not complete, this property returns the + last generated selector. + + + + + Gets the instance that this object + was initialized with. + + + + + Returns the collection of selector implementations representing + a group. + + + If the generation is not complete, this method return the + selectors generated so far in a group. + + + + + Adds a generated selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Delimits the closing/conclusion of a generation. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + An implementation that delegates + to two other objects, which + can be useful for doing work in a single pass. + + + + + Gets the first generator used to initialize this generator. + + + + + Gets the second generator used to initialize this generator. + + + + + Initializes a new instance of + with the two other objects + it delegates to. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Implementation for a selectors compiler that supports caching. + + + This class is primarily targeted for developers of selection + over an arbitrary document model. + + + + + Creates a caching selectors compiler on top on an existing compiler. + + + + + Creates a caching selectors compiler on top on an existing compiler. + An addition parameter specified a dictionary to use as the cache. + + + If is null then this method uses a + the implementation with an + ordinally case-insensitive selectors text comparer. + + + + + Represent a token and optionally any text associated with it. + + + + + Gets the kind/type/class of the token. + + + + + Gets text, if any, associated with the token. + + + + + Creates an end-of-input token. + + + + + Creates a star token. + + + + + Creates a dot token. + + + + + Creates a colon token. + + + + + Creates a comma token. + + + + + Creates a right parenthesis token. + + + + + Creates an equals token. + + + + + Creates a left bracket token. + + + + + Creates a right bracket token. + + + + + Creates a pipe (vertical line) token. + + + + + Creates a plus token. + + + + + Creates a greater token. + + + + + Creates an includes token. + + + + + Creates a dash-match token. + + + + + Creates a prefix-match token. + + + + + Creates a suffix-match token. + + + + + Creates a substring-match token. + + + + + Creates a general sibling token. + + + + + Creates an identifier token. + + + + + Creates an integer token. + + + + + Creates a hash-name token. + + + + + Creates a white-space token. + + + + + Creates a string token. + + + + + Creates a function token. + + + + + Creates an arbitrary character token. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Indicates whether the current object is equal to another object of the same type. + + + + + Gets a string representation of the token. + + + + + Performs a logical comparison of the two tokens to determine + whether they are equal. + + + + + Performs a logical comparison of the two tokens to determine + whether they are inequal. + + + + + Lexer for tokens in CSS selector grammar. + + + + + Parses tokens from a given text source. + + + + + Parses tokens from a given string. + + + + + Represents the classification of a token. + + + + + Represents end of input/file/stream + + + + + Represents {ident} + + + + + Represents "#" {name} + + + + + Represents "~=" + + + + + Represents "|=" + + + + + Represents "^=" + + + + + Represents "$=" + + + + + Represents "*=" + + + + + Represents {string} + + + + + Represents S* "+" + + + + + Represents S* ">" + + + + + Represents [ \t\r\n\f]+ + + + + + Represents {ident} ")" + + + + + Represents [0-9]+ + + + + + Represents S* "~" + + + + + Represents an arbitrary character + + +
+
diff --git a/SW/20211125/_FRReporting/bin/Debug/FlexCel.dll b/SW/20211125/_FRReporting/bin/Debug/FlexCel.dll new file mode 100644 index 0000000..8c93d59 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/FlexCel.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/XLSLib.dll b/SW/20211125/_FRReporting/bin/Debug/XLSLib.dll new file mode 100644 index 0000000..87352d8 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/XLSLib.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/_FRReporting.dll b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.dll new file mode 100644 index 0000000..eec0ad1 Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.dll differ diff --git a/SW/20211125/_FRReporting/bin/Debug/_FRReporting.pdb b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.pdb new file mode 100644 index 0000000..3602d8b Binary files /dev/null and b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.pdb differ diff --git a/SW/20211125/_FRReporting/bin/Debug/_FRReporting.xml b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.xml new file mode 100644 index 0000000..064c1c8 --- /dev/null +++ b/SW/20211125/_FRReporting/bin/Debug/_FRReporting.xml @@ -0,0 +1,1327 @@ + + + + +_FRReporting + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'Auswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bReport
  • +
  • sFilename
  • +
  • bExcel_Report
  • +
  • sSQL
  • +
  • sSQLType
  • +
  • sBeschreibung
  • +
  • sConnectionstring_Subreport
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungAuswertungParameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr
  • +
  • iAuswertungparameternr
  • +
  • sDBfeldname
  • +
  • iReihenfolge
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iParentid
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppeAuswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr
  • +
  • iAuswertungNr
  • +
  • bAktiv
  • +
  • daErstllt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungRptDatei'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungDateiNr
  • +
  • sFilename
  • +
  • sReportname
  • +
  • blobReportfile
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungparameternr
  • +
  • sBezeichnung
  • +
  • sOperator
  • +
  • sFeldbezug
  • +
  • sWert
  • +
  • sParamName
  • +
  • sParamType
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Mitarbeiter_Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr
  • +
  • iAuswertungnr
  • +
  • sBeschreibung
  • +
  • sParameterdaten
  • +
  • sTitelzeile1
  • +
  • sTitelzeile2
  • +
  • bParamPrint
  • +
  • sSQLWhere
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSecurityObjectNr
  • +
  • sSecurityForm
  • +
  • sSecurityObjectType
  • +
  • sSecurityObject
  • +
  • sSecurityObjectItem
  • +
  • sSecurityObjectDescriotion
  • +
  • iLevel
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Initialisierung des Formulars + + + + + + + Auswertungen, für welche der User berechtigt ist, auslesen + + + + + + + Interne Relation aufbauen und Tree aufbauen + + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + + + + + + Formularsecurity setzen + + Aktuelles Formular + + + + + + Daten ab Datenbank laden + + + + + + Prüft die DB-Einträge mit den Formcontrols und bei Übereinstimmung werden die Security-Einstellungen gesetzt + + + + + + Security-Einstellungen setzen + + Betroffenes Objeckt (Menuitem, Conrol usw.) + Readonly ja/nein + Sichtbar ja/nein + Name des Unterobjektes - wird für die Spalteneinstellungen von C1TruedbGrids verwendet + + + + + Alle Controls des Formulars zusammensuchen und auf der DB speichern + + Betroffenes Formular + + + + + + Sämtliche Controls vom Formular auslesen + + + + + + + + Auslesen von MenuItems + + + + + + + + + Auslesen von ContextMenuItems + + + + + + + + + Auslesen von Menu-Subitems + + + + + + + + Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + Formular + Objekttyp + Objektname + Objektitem + + + + + + Klasse für ein Control-Objekt + + + + + + Neue Instanz erstellen + + Control-Objekt + Betroffenes Formular + Objekttyp + Objektname + Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + + + + + Schreibt einen Datnsatz in die Tabelle SecurityObjects + + + + + + +Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + + + + + + Formular schliessen + + + + + + + + Formualr schliessen + + + + + + + + Formular schliessen + + + + + + + + Mousedown-Ereignis auf dem Tree + + + + + + + + Nach Selektion eines Nodes Parameter neu aufbereiten und Auswerungsmöglichkeit (CR/CSV) anzeigen + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Parameter initialisieren + + + + + + Selektion Parameter + + + + + + + + Datenrow in den zur Auswertung gehörenden Parameterliste suchen + + + + + + + + Where Bedingung für die Abfrage zusammenstellen + + + + + + Where zusammenstellen + + + + + +
+
diff --git a/SW/20211125/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb b/SW/20211125/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb new file mode 100644 index 0000000..6ffebde --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb @@ -0,0 +1,7 @@ +' + Option Strict Off + Option Explicit On + + Imports System + Imports System.Reflection + diff --git a/SW/20211125/_FRReporting/obj/Debug/BEA.vbproj.FileListAbsolute.txt b/SW/20211125/_FRReporting/obj/Debug/BEA.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..c264a1b --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/BEA.vbproj.FileListAbsolute.txt @@ -0,0 +1,67 @@ +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\BEA.exe +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_AllgMainObjekte.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_Generic_Event_Handler.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_MyBeziehungen.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\FastReport.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\FastReport.Bars.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_DataClass.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\csvadapter.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\FlexCel.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\MWTreeView.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\XLSLib.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FunktionDetail.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_AllgMainObjekte.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_AllgMainObjekte.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FunktionDetail.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FunktionDetail.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\FlexCel.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\MWTreeView.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_DataClass.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_DataClass.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_Generic_Event_Handler.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_Generic_Event_Handler.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_MyBeziehungen.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\_MyBeziehungen.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\es\FlexCel.resources.dll +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.vbprojResolveAssemblyReference.cache +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.vbproj.ResolveComReference.cache +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmDatenbankauswahl.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmAbout.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmExportContainer.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmFortschritt.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmLogin.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmMsgBox.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmSplash.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmTempBerechtigung.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmDatenverarbeitung.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmExcelSheets.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmUpdate.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmMain.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.Resources.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmDomainEditor.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmDomainEditorExtTables.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmFormSelector.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmSysadminMenu.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmSysadminTableSelector.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.FrmToolTipEditor.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmVerbindungEditor.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmSuche.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.frmUebersicht.resources +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.exe.licenses +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.exe +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\obj\Debug\BEA.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\BEA.exe.config +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\BEA.pdb +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\BEA.xml +E:\Software-Projekte\TKBDiverse\BEA\BEA\bin\Debug\System.Windows.Forms.DataVisualization.dll +E:\Software-Projekte\TKBDiverse\BEA\_FunktionDetail\obj\Debug\BEA.vbproj.ResolveComReference.cache +E:\Software-Projekte\TKBDiverse\BEA\_FunktionDetail\obj\Debug\BEA.exe +E:\Software-Projekte\TKBDiverse\BEA\_FunktionDetail\obj\Debug\BEA.xml +E:\Software-Projekte\TKBDiverse\BEA\_FunktionDetail\obj\Debug\BEA.pdb +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\BEA.exe.config +E:\Software-Projekte\TKBDiverse\BEA\_AllgMainObjekte\bin\Debug\BEA.exe.config diff --git a/SW/20211125/_FRReporting/obj/Debug/CoreCompileInputs.cache b/SW/20211125/_FRReporting/obj/Debug/CoreCompileInputs.cache new file mode 100644 index 0000000..fb884a1 --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/CoreCompileInputs.cache @@ -0,0 +1 @@ +3bee2fd3914494f976a90fe7a6c90a465c3795a2 diff --git a/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..3d4e6ca Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..e595a7e Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/20211125/_FRReporting/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/SW/20211125/_FRReporting/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..9dfd526 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.FrmReportSelect.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.FrmReportSelect.resources new file mode 100644 index 0000000..7beae8b Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.FrmReportSelect.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.Resources.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.Resources.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.dll b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.dll new file mode 100644 index 0000000..eec0ad1 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.dll differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmAuswertung.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmAuswertung.resources new file mode 100644 index 0000000..3783561 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmAuswertung.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmCalendar.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmCalendar.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmCalendar.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmDataSelect.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmDataSelect.resources new file mode 100644 index 0000000..ab87685 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmDataSelect.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmEditWhere.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmEditWhere.resources new file mode 100644 index 0000000..3b2904d Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmEditWhere.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmViewer.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmViewer.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmViewer.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmcrreporting.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmcrreporting.resources new file mode 100644 index 0000000..934e1cf Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.frmcrreporting.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.pdb b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.pdb new file mode 100644 index 0000000..3602d8b Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.pdb differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.sample.resources b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.sample.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.sample.resources differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..05665cc Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.CopyComplete b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache new file mode 100644 index 0000000..1f298e4 --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +cb99f62cce835abfa8792df1956e27a1038a5010 diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..939dbae --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt @@ -0,0 +1,55 @@ +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\FlexCel.xml +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\FlexCel.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\XLSLib.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\XLSLib.pdb +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\XLSLib.xml +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\bin\Debug\es\FlexCel.resources.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmAuswertung.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmCalendar.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmcrreporting.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmDataSelect.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmEditWhere.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.FrmReportSelect.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.frmViewer.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.sample.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.Resources.resources +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.dll.licenses +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\BEA\_FRReporting\obj\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmAuswertung.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmCalendar.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmcrreporting.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmDataSelect.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmEditWhere.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.FrmReportSelect.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.frmViewer.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.sample.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.Resources.resources +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.GenerateResource.Cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.dll.licenses +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\_FRReporting.pdb +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\_FRReporting.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\C1.Win.C1TrueDBGrid.2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Bars.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Editor.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\C1.Win.C1TrueDBGrid.2.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FlexCel.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\XLSLib.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Compat.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.DataVisualization.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.CoreCompileInputs.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.AssemblyReference.cache diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.cache b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.cache new file mode 100644 index 0000000..149a20a Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.cache differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbprojAssemblyReference.cache b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbprojAssemblyReference.cache new file mode 100644 index 0000000..9188297 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.vbprojAssemblyReference.cache differ diff --git a/SW/20211125/_FRReporting/obj/Debug/_FRReporting.xml b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.xml new file mode 100644 index 0000000..064c1c8 --- /dev/null +++ b/SW/20211125/_FRReporting/obj/Debug/_FRReporting.xml @@ -0,0 +1,1327 @@ + + + + +_FRReporting + + + + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + + + + Purpose: Data Access class for the table 'Auswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • bReport. May be SqlBoolean.Null
  • +
  • sFilename. May be SqlString.Null
  • +
  • bExcel_Report. May be SqlBoolean.Null
  • +
  • sSQL. May be SqlString.Null
  • +
  • sSQLType. May be SqlString.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sConnectionstring_Subreport. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • bReport
  • +
  • sFilename
  • +
  • bExcel_Report
  • +
  • sSQL
  • +
  • sSQLType
  • +
  • sBeschreibung
  • +
  • sConnectionstring_Subreport
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungAuswertungParameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • iAuswertungparameternr. May be SqlInt32.Null
  • +
  • sDBfeldname. May be SqlString.Null
  • +
  • iReihenfolge. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungAuswertungparameternr
  • +
  • iAuswertungnr
  • +
  • iAuswertungparameternr
  • +
  • sDBfeldname
  • +
  • iReihenfolge
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppe'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iParentid. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeNr
  • +
  • sBezeichnung
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iParentid
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungGruppeAuswertung'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr. May be SqlInt32.Null
  • +
  • iAuswertungNr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstllt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungGruppeAuswertungNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungGruppeAuswertungNr
  • +
  • iAuswertungGruppeNr
  • +
  • iAuswertungNr
  • +
  • bAktiv
  • +
  • daErstllt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'AuswertungRptDatei'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
  • sFilename. May be SqlString.Null
  • +
  • sReportname. May be SqlString.Null
  • +
  • blobReportfile. May be SqlBinary.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungDateiNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungDateiNr
  • +
  • sFilename
  • +
  • sReportname
  • +
  • blobReportfile
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
  • sBezeichnung. May be SqlString.Null
  • +
  • sOperator. May be SqlString.Null
  • +
  • sFeldbezug. May be SqlString.Null
  • +
  • sWert. May be SqlString.Null
  • +
  • sParamName. May be SqlString.Null
  • +
  • sParamType. May be SqlString.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iAuswertungparameternr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iAuswertungparameternr
  • +
  • sBezeichnung
  • +
  • sOperator
  • +
  • sFeldbezug
  • +
  • sWert
  • +
  • sParamName
  • +
  • sParamType
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'key_tabelle'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iKeynr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iKeynr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iKeynr
  • +
  • sBeschreibung
  • +
  • iKey_wert
  • +
  • iMandantnr
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'Mitarbeiter_Auswertungsparameter'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr. May be SqlInt32.Null
  • +
  • iAuswertungnr. May be SqlInt32.Null
  • +
  • sBeschreibung. May be SqlString.Null
  • +
  • sParameterdaten. May be SqlString.Null
  • +
  • sTitelzeile1. May be SqlString.Null
  • +
  • sTitelzeile2. May be SqlString.Null
  • +
  • bParamPrint. May be SqlBoolean.Null
  • +
  • sSQLWhere. May be SqlString.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iMitarbeiter_AuswertungsparameterNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iMitarbeiter_AuswertungsparameterNr
  • +
  • iMitarbeiternr
  • +
  • iAuswertungnr
  • +
  • sBeschreibung
  • +
  • sParameterdaten
  • +
  • sTitelzeile1
  • +
  • sTitelzeile2
  • +
  • bParamPrint
  • +
  • sSQLWhere
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Data Access class for the table 'SecurityObject'. + + + + + Purpose: Class constructor. + + + + + Purpose: Insert method. This method will insert one new row into the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Update method. This method will Update one existing row in the database. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
  • sSecurityForm. May be SqlString.Null
  • +
  • sSecurityObjectType. May be SqlString.Null
  • +
  • sSecurityObject. May be SqlString.Null
  • +
  • sSecurityObjectItem. May be SqlString.Null
  • +
  • sSecurityObjectDescriotion. May be SqlString.Null
  • +
  • iLevel. May be SqlInt32.Null
  • +
  • bAktiv. May be SqlBoolean.Null
  • +
  • daErstellt_am. May be SqlDateTime.Null
  • +
  • daMutiert_am. May be SqlDateTime.Null
  • +
  • iMutierer. May be SqlInt32.Null
  • +
  • iMandantnr. May be SqlInt32.Null
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. + + True if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties needed for this method: +
    +
  • iSecurityObjectNr
  • +
+ Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
  • iSecurityObjectNr
  • +
  • sSecurityForm
  • +
  • sSecurityObjectType
  • +
  • sSecurityObject
  • +
  • sSecurityObjectItem
  • +
  • sSecurityObjectDescriotion
  • +
  • iLevel
  • +
  • bAktiv
  • +
  • daErstellt_am
  • +
  • daMutiert_am
  • +
  • iMutierer
  • +
  • iMandantnr
  • +
+ Will fill all properties corresponding with a field in the table with the value of the row selected. +
+
+ + + Purpose: SelectAll method. This method will Select all rows from the table. + + DataTable object if succeeded, otherwise an Exception is thrown. + + Properties set after a succesful call of this method: +
    +
  • iErrorCode
  • +
+
+
+ + + Initialisierung des Formulars + + + + + + + Auswertungen, für welche der User berechtigt ist, auslesen + + + + + + + Interne Relation aufbauen und Tree aufbauen + + + + + + + + Tree aufbauen + + + + + + + + Child-Nodes hinzufügen + + + + + + + + Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank + + + Es werden folgende Datebanktabellen berücksichtigt: + + + Dokument Attribut DocImage + + Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der + Vertragsübersicht|Vertragselemente + + yes + + + + Grid-Layoutfile speichern + + C1Truedbgrind, von welchem das Layout gespeichert werden soll + Nummer des Grids: 1=Vertragsübersicht... + + + + + + Dokument in der Tabelle Dokument speichern + + Nummer des Dokument-Datensatzes + Zu speichender Dateiname + + + + + + Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab + + + + + + + + Formular-Security-Objekte auslesen und auf DB schreiben bzw. Formular-Security zur Laufzeit setzen + + + + + + Formularsecurity setzen + + Aktuelles Formular + + + + + + Daten ab Datenbank laden + + + + + + Prüft die DB-Einträge mit den Formcontrols und bei Übereinstimmung werden die Security-Einstellungen gesetzt + + + + + + Security-Einstellungen setzen + + Betroffenes Objeckt (Menuitem, Conrol usw.) + Readonly ja/nein + Sichtbar ja/nein + Name des Unterobjektes - wird für die Spalteneinstellungen von C1TruedbGrids verwendet + + + + + Alle Controls des Formulars zusammensuchen und auf der DB speichern + + Betroffenes Formular + + + + + + Sämtliche Controls vom Formular auslesen + + + + + + + + Auslesen von MenuItems + + + + + + + + + Auslesen von ContextMenuItems + + + + + + + + + Auslesen von Menu-Subitems + + + + + + + + Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + Formular + Objekttyp + Objektname + Objektitem + + + + + + Klasse für ein Control-Objekt + + + + + + Neue Instanz erstellen + + Control-Objekt + Betroffenes Formular + Objekttyp + Objektname + Unterobjekt (z.B. bei Menus, Spalten von C1TrueDBGrids) + + + + + Schreibt einen Datnsatz in die Tabelle SecurityObjects + + + + + + +Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist + + + + + + + Formular schliessen + + + + + + + + Formualr schliessen + + + + + + + + Formular schliessen + + + + + + + + Mousedown-Ereignis auf dem Tree + + + + + + + + Nach Selektion eines Nodes Parameter neu aufbereiten und Auswerungsmöglichkeit (CR/CSV) anzeigen + + + + + + + + Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet + die gefundnen Controls in der Liste L zur weiteren Bearbeitung + + Base-Contrlo (z.B. aktuelles Formular + Schlüssel welcher gesucht werden soll + Liste der gefundenen Objekte + True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. + + + + + + Parameter initialisieren + + + + + + Selektion Parameter + + + + + + + + Datenrow in den zur Auswertung gehörenden Parameterliste suchen + + + + + + + + Where Bedingung für die Abfrage zusammenstellen + + + + + + Where zusammenstellen + + + + + +
+
diff --git a/SW/20211125/_FRReporting/obj/Debug/_frreporting.dll.licenses b/SW/20211125/_FRReporting/obj/Debug/_frreporting.dll.licenses new file mode 100644 index 0000000..3511dd3 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Debug/_frreporting.dll.licenses differ diff --git a/SW/20211125/_FRReporting/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/SW/20211125/_FRReporting/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..57c335f Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/20211125/_FRReporting/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/SW/20211125/_FRReporting/obj/Release/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..1667183 Binary files /dev/null and b/SW/20211125/_FRReporting/obj/Release/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/SW/AssessmentMgmt.sln b/SW/AssessmentMgmt.sln index a07304d..f448f17 100644 --- a/SW/AssessmentMgmt.sln +++ b/SW/AssessmentMgmt.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31613.86 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "AssessmentMgmt", "AssessmentMgmt\AssessmentMgmt.vbproj", "{1B191999-7204-4EB5-96F7-A6805B0B32FC}" EndProject @@ -55,4 +55,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {70BE0CBD-9FD7-4445-82CB-8A38BAC41906} + EndGlobalSection EndGlobal diff --git a/SW/AssessmentMgmt/AssessmentMgmt.vbproj b/SW/AssessmentMgmt/AssessmentMgmt.vbproj index 70940cf..c81abbd 100644 --- a/SW/AssessmentMgmt/AssessmentMgmt.vbproj +++ b/SW/AssessmentMgmt/AssessmentMgmt.vbproj @@ -56,7 +56,6 @@ - False diff --git a/SW/AssessmentMgmt/DB/Form2.Designer.vb b/SW/AssessmentMgmt/DB/Form2.Designer.vb new file mode 100644 index 0000000..f2f88cf --- /dev/null +++ b/SW/AssessmentMgmt/DB/Form2.Designer.vb @@ -0,0 +1,81 @@ + _ +Partial Class Form2 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form2)) + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + Me.C1TrueDBGrid2 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.C1TrueDBGrid2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 0 + Me.C1TrueDBGrid1.UseCompatibleTextRendering = False + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'C1TrueDBGrid2 + ' + Me.C1TrueDBGrid2.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid2.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid2.Images.Add(CType(resources.GetObject("C1TrueDBGrid2.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid2.Location = New System.Drawing.Point(713, 111) + Me.C1TrueDBGrid2.Name = "C1TrueDBGrid2" + Me.C1TrueDBGrid2.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid2.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid2.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid2.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid2.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid2.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid2.TabIndex = 1 + Me.C1TrueDBGrid2.UseCompatibleTextRendering = False + Me.C1TrueDBGrid2.PropBag = resources.GetString("C1TrueDBGrid2.PropBag") + ' + 'Form2 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.C1TrueDBGrid2) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Name = "Form2" + Me.Text = "Form2" + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.C1TrueDBGrid2, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid + Friend WithEvents C1TrueDBGrid2 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/AssessmentMgmt/DB/Form2.resx b/SW/AssessmentMgmt/DB/Form2.resx new file mode 100644 index 0000000..f2dfcbe --- /dev/null +++ b/SW/AssessmentMgmt/DB/Form2.resx @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/AssessmentMgmt/DB/Form2.vb b/SW/AssessmentMgmt/DB/Form2.vb new file mode 100644 index 0000000..361d614 --- /dev/null +++ b/SW/AssessmentMgmt/DB/Form2.vb @@ -0,0 +1,3 @@ +Public Class Form2 + +End Class \ No newline at end of file diff --git a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb index a5c8120..4ca4f11 100644 --- a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb +++ b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.Designer.vb @@ -1172,7 +1172,6 @@ Partial Class frmISI 'TreeUebersicht ' Me.TreeUebersicht.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline - Me.TreeUebersicht.AllowDrop = True Me.TreeUebersicht.AllowExternalDrop = False Me.TreeUebersicht.BackColor = System.Drawing.SystemColors.Window ' diff --git a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.resx b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.resx index 7d84455..7ee50e6 100644 --- a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.resx +++ b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.resx @@ -155,7 +155,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 362, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 362, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 362, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 362, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> @@ -194,7 +194,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 366, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 366, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 366, 108</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 366, 108</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> @@ -233,7 +233,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 572, 118</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 572, 118</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 572, 118</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 572, 118</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> 17, 56 @@ -278,7 +278,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 1122, 359</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 1122, 359</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 1122, 359</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 1122, 359</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> 360, 56 @@ -288,7 +288,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE - CwAAAk1TRnQBSQFMAgEBBAEAAdABAQHQAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CwAAAk1TRnQBSQFMAgEBBAEAAfgBAQH4AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -358,16 +358,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPlY9dSJNhFMffCylqduHIEk2pdyuFRWVeJF1Z - 0AeGKckIIpBGdzaU8KIomKN1ZRdBH6AXo959tlnbu6053WpbsboJQQvJtUY4rb1t5jZ30Ua+/57Bc9k2 - +8Gf8zzn/M85z8NsBj/L8m/b2m7S6/8x09Pz8D7DQF9Xh4BM9vGNXF5PS9URFx53zsejcN++i3tkyLhE - gueNjZhl2W5qqczvuRupzFQHktEJxBYFjO9l8aCmBi6p9Ba1lGcjpuN++c8iybdi2cRgxX8K0R8pvFQP - faOW8ohx3ZlMSImkW0EGyLA8KUXK247vti2Izz1rpbZ/E/WqtwrBqwWBbE5Pn0DCvgOr011kkBx//BI1 - tZVnY344IHgUWJ05TV5wkGzuQMp3HDnvrgi1lEeMXlelvZ346TmCtaASAvnC2us+TGgOiJ9s9bXUVp7i - wqOE4GlH/v01pKaOIRu6hDTZLob2X6CWyhQ+P0Fm0YnM7B1kX/WS7edRDB2dpOXKjI1dlkBwIvflBdaX - gsgnAshHutdpuTrNzbsVF/u6kP3qRkGIAMWYLbfyYSctV6eppeXctu212NPQ4EovvWui6c0RDof3aTSa - Ua1Wq+NMJqVe/3TAbDYPOhyOkZKcTucgkYroisvl6ud5/qTP55PTdoax2+2HLBZLL2kaMBgMQ0ajcYTE - URI1JdFzKTdMpOI4rt9qtR5mGIb5C+R+JA9MKWNxAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIVSURBVDhPlY9fSJNRGMbPhRQ1u3BkiabUtlJYVOZF0pUF + /cEwJRlBBNLozoYSXhQFc7Su7CIoA7sYtf9t1vZta0632lasbkLQQvJrjXBa+9rMbe6ijdzTGZzLttkP + Ht5z3vd53/ccshn8Egn3tq3tJrv+HzM9PQ/vEwJdXR0CUunHNzJZPStVp7jwqHM+xsN9+y7u0SETIhGe + NzZiViLpZpbK/J67kUxPdSDBP0Z0UcDEXgke1NTAJRbfYpbybES1+l/+s0hwrVg2Eaz4T4H/kcRL1dA3 + ZilPMaY9kw4pkHDL6QAplifFSHrb8d22BbG5Z63M9m94r2qrELyaF+jm1PQJxO07sDrdRQfJ8McvUjFb + eTbmhwOCR47VmdP0BQfp5g4kfceR9e6KMEt5ivx1ZcrbiZ+eI1gLKiDQL6y97sO4+kDxk62+ltnKU1gY + jwueduTeX0Ny6hgyoUtI0e3F0P4LzFKZ/OcnSC86kZ69g8yrXrr9PAqho5OsXJmxscsiCE5kv7zA+lIQ + uXgAuUj3OitXp7l5t/xiXxcyX93ICxGgELVlVz7sZOXqNLW0nNu2vRZ7GhpcqaV3TSy9OcLh8D61Wj2q + 0Wi0epNJodM9HTCbzYMOh2OkJKfTOUilpLricrn6OY476fP5ZKydELvdfshisfTSpgGDwTBkNBpHaByl + UV0SO5dyw1RKvV7fb7VaDxNCyF/bDyQKWc8wWAAAAABJRU5ErkJggg== @@ -422,7 +422,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC6 - DQAAAk1TRnQBSQFMAgEBBgEAAcABAgHAAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DQAAAk1TRnQBSQFMAgEBBgEAAegBAgHoAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -520,7 +520,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 894, 217</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 894, 217</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 894, 217</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 894, 217</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> @@ -559,24 +559,24 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 400, 130</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 400, 130</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 400, 130</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 400, 130</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> 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 diff --git a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.vb b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.vb index c186a93..6c0da6c 100644 --- a/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.vb +++ b/SW/AssessmentMgmt/ISI_Uebersicht/frmISI.vb @@ -38,7 +38,14 @@ Public Class frmISI Private Sub frmPruefschrittUebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load Refresh_Tree() - + sec.Set_Form_Security(Me) + If Me.AssessmentZuteilenToolStripMenuItem.Enabled = False Or Me.AssessmentZuteilenToolStripMenuItem.Visible = False Then + Me.DokumenteAllgemein.Show_Toolbar = False + Me.DokumenteDefinition.Show_Toolbar = False + Me.DokumenteFindings.Show_Toolbar = False + Me.DokumenteMassnahmen.Show_Toolbar = False + Me.DokumenteResultat.Show_Toolbar = False + End If ' Refresh_All() End Sub @@ -580,7 +587,7 @@ Public Class frmISI End Try Try - Me.DokumenteDefinition.Show_Toolbar = True + 'Me.DokumenteDefinition.Show_Toolbar = True Me.DokumenteDefinition.ConnectionString = Globals.sConnectionString Me.DokumenteDefinition.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.DokumenteDefinition.Doktype = 2 diff --git a/SW/AssessmentMgmt/Klassen/MySecurity.vb b/SW/AssessmentMgmt/Klassen/MySecurity.vb index 703ae48..69627df 100644 --- a/SW/AssessmentMgmt/Klassen/MySecurity.vb +++ b/SW/AssessmentMgmt/Klassen/MySecurity.vb @@ -342,7 +342,7 @@ Namespace Utils ctl.Visible = False ctl.Enabled = False End If - Case "textbox", "label", "combobox", "checkbox", "toolstripbutton", "panel", "datetimepicker" + Case "textbox", "label", "combobox", "checkbox", "toolstripbutton", "panel", "datetimepicker", "toolstrip" If read_only Then obj.Enabled = False If invisible Then obj.Visible = False Case "richtextbox" @@ -371,6 +371,7 @@ Namespace Utils Me.Objectanalysis_readonly(CTLX) Next End If + Case "c1truedbgrid" Dim ctl As C1TrueDBGrid = obj If SecurityObjectItem = "" Then @@ -496,6 +497,20 @@ Namespace Utils For Each xctl As Object In ctrl.Controls Objectanalysis(xctl) Next + Case "advtree" + ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) + Dim ctrl As DevComponents.AdvTree.AdvTree = ctl + Try + + If ctrl.ContextMenuStrip.Name <> "" Then + Dim x As ContextMenuStrip = ctrl.ContextMenuStrip + Objectanalysis(x) + End If + + Catch ex As Exception + + End Try + Case "treeview" ctlcol.Add(New MyFormControls(ctl, formname, typ.Name, ctl.Name, "")) Dim ctrl As TreeView = ctl diff --git a/SW/AssessmentMgmt/My Project/licenses.licx b/SW/AssessmentMgmt/My Project/licenses.licx index 2d71b0c..02a7aaa 100644 --- a/SW/AssessmentMgmt/My Project/licenses.licx +++ b/SW/AssessmentMgmt/My Project/licenses.licx @@ -1,2 +1 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=79882d576c6336da C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da diff --git a/SW/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb b/SW/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb index 36b26c9..228599f 100644 --- a/SW/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb +++ b/SW/AssessmentMgmt/Pruefplan/frmPPlan.Designer.vb @@ -43,7 +43,7 @@ Partial Class frmPPlan Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() Me.VorgabeAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.PrüfschrittGenerierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() + Me.ToolStripPruefplan = New System.Windows.Forms.ToolStrip() Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() Me.TSBtnAddNew = New System.Windows.Forms.ToolStripButton() Me.TSBtnDelete = New System.Windows.Forms.ToolStripButton() @@ -93,7 +93,7 @@ Partial Class frmPPlan Me.SplitContainer1.SuspendLayout() CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).BeginInit() Me.ctxMenuDetails.SuspendLayout() - Me.ToolStrip2.SuspendLayout() + Me.ToolStripPruefplan.SuspendLayout() Me.Panel1.SuspendLayout() Me.GrpDokumente.SuspendLayout() Me.grpDetails.SuspendLayout() @@ -170,6 +170,7 @@ Partial Class frmPPlan ' 'tsTxtSearch ' + Me.tsTxtSearch.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.tsTxtSearch.Name = "tsTxtSearch" Me.tsTxtSearch.Size = New System.Drawing.Size(100, 25) ' @@ -201,7 +202,7 @@ Partial Class frmPPlan 'SplitContainer1.Panel1 ' Me.SplitContainer1.Panel1.Controls.Add(Me.C1Daten) - Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStrip2) + Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStripPruefplan) ' 'SplitContainer1.Panel2 ' @@ -269,14 +270,14 @@ Partial Class frmPPlan Me.PrüfschrittGenerierenToolStripMenuItem.Size = New System.Drawing.Size(245, 22) Me.PrüfschrittGenerierenToolStripMenuItem.Text = "Assessment generieren" ' - 'ToolStrip2 + 'ToolStripPruefplan ' - Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnSave, Me.TSBtnAddNew, Me.TSBtnDelete, Me.TSBtnSetSecurityObject, Me.tsbtnReport, Me.tsbtncopy1, Me.tsbtnCopy2, Me.ToolStripButton2}) - Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) - Me.ToolStrip2.Name = "ToolStrip2" - Me.ToolStrip2.Size = New System.Drawing.Size(958, 25) - Me.ToolStrip2.TabIndex = 10 - Me.ToolStrip2.Text = "ToolStrip2" + Me.ToolStripPruefplan.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnSave, Me.TSBtnAddNew, Me.TSBtnDelete, Me.TSBtnSetSecurityObject, Me.tsbtnReport, Me.tsbtncopy1, Me.tsbtnCopy2, Me.ToolStripButton2}) + Me.ToolStripPruefplan.Location = New System.Drawing.Point(0, 0) + Me.ToolStripPruefplan.Name = "ToolStripPruefplan" + Me.ToolStripPruefplan.Size = New System.Drawing.Size(958, 25) + Me.ToolStripPruefplan.TabIndex = 10 + Me.ToolStripPruefplan.Text = "ToolStrip2" ' 'TSBtnSave ' @@ -666,12 +667,12 @@ Partial Class frmPPlan Me.ContextMenuStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DefinitionAnzeigenToolStripMenuItem}) Me.ContextMenuStrip1.Name = "ContextMenuStrip1" - Me.ContextMenuStrip1.Size = New System.Drawing.Size(177, 26) + Me.ContextMenuStrip1.Size = New System.Drawing.Size(181, 48) ' 'DefinitionAnzeigenToolStripMenuItem ' Me.DefinitionAnzeigenToolStripMenuItem.Name = "DefinitionAnzeigenToolStripMenuItem" - Me.DefinitionAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(176, 22) + Me.DefinitionAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.DefinitionAnzeigenToolStripMenuItem.Text = "Definition anzeigen" ' 'frmPPlan @@ -696,8 +697,8 @@ Partial Class frmPPlan Me.SplitContainer1.ResumeLayout(False) CType(Me.C1Daten, System.ComponentModel.ISupportInitialize).EndInit() Me.ctxMenuDetails.ResumeLayout(False) - Me.ToolStrip2.ResumeLayout(False) - Me.ToolStrip2.PerformLayout() + Me.ToolStripPruefplan.ResumeLayout(False) + Me.ToolStripPruefplan.PerformLayout() Me.Panel1.ResumeLayout(False) Me.GrpDokumente.ResumeLayout(False) Me.grpDetails.ResumeLayout(False) @@ -745,7 +746,7 @@ Partial Class frmPPlan Friend WithEvents TSBtnDelete As ToolStripButton Friend WithEvents TSBtnAddNew As ToolStripButton Friend WithEvents TSBtnSave As ToolStripButton - Friend WithEvents ToolStrip2 As ToolStrip + Friend WithEvents ToolStripPruefplan As ToolStrip Friend WithEvents ImageList1 As ImageList Friend WithEvents lblSearchStruktur_Definition As ToolStripLabel Friend WithEvents ToolStripButton3 As ToolStripButton diff --git a/SW/AssessmentMgmt/Pruefplan/frmPPlan.resx b/SW/AssessmentMgmt/Pruefplan/frmPPlan.resx index 780658c..e33e1ad 100644 --- a/SW/AssessmentMgmt/Pruefplan/frmPPlan.resx +++ b/SW/AssessmentMgmt/Pruefplan/frmPPlan.resx @@ -232,9 +232,9 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 956, 289</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 956, 289</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 956, 289</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 956, 289</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> - + 633, 17 @@ -320,16 +320,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPjZPPb9JgGMfJ9OLBgwfP3ozxov8Bxn9ALxw8 - 4o0Jh84Q4umd5UeBrroBG9BCYfLOHzXTTeTHxhbYQLbhMJunmWjwpgcvxpNZ9sSn5SUvCWzxkzRpnz7f - T5+naW1nQQiZcDqdlz0ez3Wf7+Etl8t1id06Hbvdfr7ZLH8+Otr+2et1j+MxAnpWgkScgGG86Xi93ous - dTwOh+NcvV4/oTkJaD4MdDEK9JkMmUwI/P4AvK9UG4IgXGDtHFmWbi8tae7i6kvp8LD+OyIRCAUJ4BqQ - nJ+GjBa0zs1D19NpFuN0d2ut/lMjcPz3+xfzqbQwA6LIJIlpaxKz1umsv2UxTqdd3aB6CAaSwejmFIry - xJKkFvqSg09br1iMs9MoFmk2CFzS3z8+R2B2FsMpEWRcy6x93K0VWIzT3Fx9TbUAjJMMRlciKMDa3s56 - lsU4m9XlAlVFoJofaMYUDUtwJZQoYRRg7cN2OclinI2yodL0YxiR6FyimCtgrd0szbEYZ+3dixhNYcOI - xFwJJbkwKCG8j7VGbUVmMU5pmUZpEhssCb7tMZL9VuVHt11Zo4vqHRbjrBh5kc5jeAEPU2RJcJohSSBA - brL2UQyqPaIJDA5LUijBlXJ43fu692dq6sFV1j5KPh0TKP4wqkzg28HWr/1WqVYtPo+qiaf33G73NfyQ - JljreHyCcGMmIt6dnLx/hZX+A5vtHyFcra2thVTwAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIMSURBVDhPjZNNbxJRFIZJ7caFCxeu3RnjRv8Bxj9QNyxc + 4o4WFlNDiKtLh+GjQz8AqTAzFLkp1TqmtRX5aGkDLUhbWkzrqiYa3OnCjXFlmp54Lly8jWDjk0zCnDnv + M+dkLpaLIIQM2e32ay6X65bH8+iuw+G4yh/9G6vVOlyrFT6cnOx8a7dbp5FZAoauQDRCwDRXmm63+wpv + HYzNZrtUqVTOaEoBOu8Hmg4CfRYCTfOB1zsBb4ulqiRJl3m7IBwO3ltcNJy5taXg8XHlR0Ah4JMJ4BoQ + jxHQknLnN7vSaU3jMUFrr1zvvjUAp7++fGRvpZnJP6F4lHQmYbVmc+M1jwmajdImNXzQk/RGZ1Ooargj + mXvSlRy9337JY4Ldai5HdRmEpLt/ZIbA9DSG5wiEcC1WO9grL/CYoLa19oomJ2CQpDe6GkAB1vZ3N+Z5 + TLBVWl6gCWxIeoFqTHRegiuhRPXjc6y92ykkeEywWTB1+hQb/pYYQqKyFbDWqOWjPCZYf/MiRnHPfglb + CSUpP6g+rGOtWl4N85ggv5xVaRwbLpAc1otfW43iepbqIzwmWDUzMsUDQ9mnYqIBEkUhd3h7P2bWeEzZ + YTkv4dOk8L79af/n+PjYDd7eT0aLSRT/MIkQgc9H298P6/lyKfdc1eOzD5xO5008SEO8dTAeSbo9NSnf + Hx19eJ2X/gOL5Tdo0KpaiRqTTgAAAABJRU5ErkJggg== @@ -349,15 +349,15 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwqMyLpCsL - +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1L7bzH02p1ttK1Y3IWgh+bZGOK29vTO3uYs28v33DJ7L3s1+ - 8Oc8zzn/c87zMJshJJN53ra13aTX/2Omp+fhfYaBoa4OYbn84xuFop6WqiMsPO6cT7Lw3b6Le2TIuESC - F42NmJXJuqmlMr/nbvDZqQ6k2SdILHIY3yvDg5oaeKXSW9QizkZCb/wVOou0pxXLFgYroVNgf/B4qRn6 - Ri3iCEn9mWxUhbRPSQbIsTwhBR9ox3fHFiTnnrdS279hA5qtXORqkSObM9MnkHLuwOp0FxmkwJ+QRENt - 4mzMD4c5vxKrM6fJCw6SzR3gg8eRD+yKU4s4AntdnQl04qf/CNYiKnDkC2uv+zCpPSB8ctTXUps4pYVH - Kc7fjsL7a+CnjiEXvYQM2S5E91+glsoUPz9FdtGN7Owd5F71ku3nUYoenaDlyoyNXZaAcyP/ZRLrSxEU - UmEU4t3rtFyd5ubdyot9Xch99aHIxYFSwpFf+bCTlqvT1NJybtv2WuxpaPBmlt410fTmiMVi+7Ra7ahO - p9MbLRaVwfBswGq1DrpcrpGy3G73IJGa6IrX6+33eDwng8GggrYzjNPpPGSz2XpJ04DJZBoym80jJI6S - qC2Lnsu5YSK10Wjst9vthxmGYf4CCkkkI6HhNFIAAAAASUVORK5CYII= + +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1L7ba+2zOd1qWzG7CUELybc1wmnt7Z25zV20kfv3DJ7L3s1+ + 8Oc8zzn/c87zMJshKJO537W13aTX/2O6p+fhfYaBoa4OIbn841uFop6WqlNaeNw5n+DgvX0X98iQcYkE + LxobMSuTdVNLZX7P3RAykx1IcU8QX+QxvleGBzU18Eilt6hFnI243vgreBYpdyuWLQxWgqfA/RDwSjP0 + jVrEKSX0ZzIRFVJeJRkgx/KEFIK/Hd8dW5CYe95Kbf+G82u28uGrBZ5sTk+dQJLdgdWpLjJIgT9BiYba + xNmYHw7xPiVWp0+TFxwkmzsgBI4j598VoxZxStx1ddrfiZ++I1gLq8CTL6y96QOrPVD65KivpTZxiguP + kryvHfn31yBMHkM2cglpsr0U2X+BWipT+PwUmUUXMrN3kH3dS7afRzFydIKWKzM2dlkC3oXcl5dYXwoj + nwwhH+tep+XqNDfvVl7s60L2qxcFPgYU447cyoedtFydppaWc9u212JPQ4MnvTTTRNObIxqN7tNqtaM6 + nU5vtFhUBsOzAavVOuh0OkfKcrlcg0Rqoisej6ff7XafDAQCCtrOMCzLHrLZbL2kacBkMg2ZzeYREkdJ + 1JZFz+XcMJHaaDT22+32wwzDMH8BBKAkICW8visAAAAASUVORK5CYII= @@ -368,7 +368,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAm - CwAAAk1TRnQBSQFMAgEBBAEAAYABAQGAAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CwAAAk1TRnQBSQFMAgEBBAEAAZgBAQGYAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/SW/AssessmentMgmt/Pruefplan/frmPPlan.vb b/SW/AssessmentMgmt/Pruefplan/frmPPlan.vb index 0a198a8..f1e3e06 100644 --- a/SW/AssessmentMgmt/Pruefplan/frmPPlan.vb +++ b/SW/AssessmentMgmt/Pruefplan/frmPPlan.vb @@ -193,6 +193,7 @@ Public Class frmPPlan Private Sub frmPPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load Refresh_List() + sec.Set_Form_Security(Me) End Sub Sub Refresh_List(Optional searchstring As String = "") @@ -225,6 +226,7 @@ Public Class frmPPlan Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v3) Me.C1Daten.Columns("Icon").ValueItems.Translate = True Me.C1Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center + End Sub #End Region @@ -295,8 +297,11 @@ Public Class frmPPlan f.Pruefplannr = Me.C1Daten.Columns("pruefplannr").Value f.MdiParent = Me.MdiParent f.PruefplanHandler = Me.Handle - f.Show() + 'If Me.ToolStripPruefplan.Visible = False Or Me.ToolStripPruefplan.Enabled = False Then + ' f.IsReadonly = True + 'End If + f.Show() Catch ex As Exception End Try diff --git a/SW/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb b/SW/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb index dc1a44b..7ccf647 100644 --- a/SW/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb +++ b/SW/AssessmentMgmt/Pruefplan/frmPruefplanDetail.vb @@ -23,6 +23,16 @@ End Set End Property + Dim m_readonly As Boolean + Property IsReadonly As Boolean + Get + Return m_readonly + End Get + Set(value As Boolean) + m_readonly = value + End Set + End Property + Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder Dim sec As New Utils.MySecurity Dim msg As New Utils.MyMessage @@ -45,6 +55,7 @@ Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Me.FormReadonly = True Then Exit Sub + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then Exit Sub If Check_Changes() = False Then e.Cancel = True Else @@ -218,8 +229,12 @@ End Sub - Private Sub frmPruefplanDetail_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If Me.IsReadonly Then + Me.TSBtnSave.Visible = False + Me.DokumenteAllgemein.Show_Toolbar = False + Me.FormReadonly = True + End If Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.DokumenteAllgemein.Doktype = 3 @@ -265,7 +280,12 @@ Me.txtBezeichnung.SelectAll() Me.txtBezeichnung.Focus() AddChanges(Me) + sec.Set_Form_Security(Me) + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then + Me.DokumenteAllgemein.Show_Toolbar = False + Me.FormReadonly = True + End If End Sub @@ -395,7 +415,7 @@ #Region "Zuordnung" Private Sub btnNeueZuordnung_Click(sender As Object, e As EventArgs) Handles btnNeueZuordnung.Click - If Me.FormDataChanged = True Then Me.Save_data() + If Me.FormDataChanged = True And Me.TSBtnSave.Visible = True And Me.TSBtnSave.Enabled = True Then Me.Save_data() If Me.Pruefplannr = 0 Then Me.Save_data() If Me.GrpStruktur.Visible = False Then @@ -414,6 +434,7 @@ #Region "Tree" Private Sub TreeStruktur_DoubleClick(sender As Object, e As EventArgs) Handles TreeStruktur.DoubleClick + If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then Exit Sub Try If TreeStruktur.SelectedNode.Nodes.Count > 0 Then MsgBox("Für die Zuordnung können nur Elemente der untersten Stufe (Definitionen) verwendet werden.", vbExclamation) @@ -432,6 +453,7 @@ Private Sub TreeZuordnung_DoubleClick(sender As Object, e As EventArgs) Handles TreeZuordnung.DoubleClick + If Me.TSBtnSave.Enabled = False Or Me.TSBtnSave.Visible = False Then Exit Sub If IsDate(Me.TreeZuordnung.SelectedNode.Text) Then TreeZuordnung.SelectedNode = Me.TreeZuordnung.SelectedNode.Parent End If diff --git a/SW/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb b/SW/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb index 3a3057f..713ce3c 100644 --- a/SW/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb +++ b/SW/AssessmentMgmt/Pruefschritt/PruefschrittDetailsBearbeitung.vb @@ -395,6 +395,7 @@ Public Class PruefschrittDetailsBearbeitung End If Try Me.DokumenteFindings.Show_Toolbar = Me.IsReadonly = False + Me.DokumenteFindings.Set_ShowToolbar() Me.DokumenteFindings.ConnectionString = Globals.sConnectionString Me.DokumenteFindings.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.DokumenteFindings.Init() diff --git a/SW/AssessmentMgmt/Utils/Globals.vb b/SW/AssessmentMgmt/Utils/Globals.vb index 8892882..ff0b78e 100644 --- a/SW/AssessmentMgmt/Utils/Globals.vb +++ b/SW/AssessmentMgmt/Utils/Globals.vb @@ -5,8 +5,8 @@ Module Globals ''' Applikationsversion '''
''' - Public Version As String = "1.1" - Public Versionsdatum As String = "23. Juli 2017" + Public Version As String = "1.2" + Public Versionsdatum As String = "26. November 2021" ''' ''' Applikationsdaten diff --git a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb index 807309a..502aa74 100644 --- a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb +++ b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.Designer.vb @@ -85,6 +85,8 @@ Partial Class frmVorgabe Me.TsBtnEditDefinition = New System.Windows.Forms.ToolStripButton() Me.TsBtnDeleteDefinition = New System.Windows.Forms.ToolStripButton() Me.DokumenteDefinition = New ThemenDokumente.Dokumente() + Me.EintragAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EintragAnzeigenToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMain.SuspendLayout() Me.MenuStrip1.SuspendLayout() CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -162,6 +164,7 @@ Partial Class frmVorgabe ' 'tsTxtSearchStruktur_Definition ' + Me.tsTxtSearchStruktur_Definition.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.tsTxtSearchStruktur_Definition.Name = "tsTxtSearchStruktur_Definition" Me.tsTxtSearchStruktur_Definition.Size = New System.Drawing.Size(100, 25) ' @@ -226,7 +229,6 @@ Partial Class frmVorgabe 'TreeVorgabe ' Me.TreeVorgabe.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline - Me.TreeVorgabe.AllowDrop = True Me.TreeVorgabe.AllowExternalDrop = False Me.TreeVorgabe.AllowUserToResizeColumns = False Me.TreeVorgabe.BackColor = System.Drawing.SystemColors.Window @@ -343,6 +345,7 @@ Partial Class frmVorgabe ' 'tstxtSuche ' + Me.tstxtSuche.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.tstxtSuche.Name = "tstxtSuche" Me.tstxtSuche.Size = New System.Drawing.Size(100, 25) ' @@ -473,26 +476,26 @@ Partial Class frmVorgabe 'ctxMenuVorgabe ' Me.ctxMenuVorgabe.ImageScalingSize = New System.Drawing.Size(32, 32) - Me.ctxMenuVorgabe.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuVorgabeNeu, Me.ToolStripMenuVorgabeEdit, Me.ToolStripMenuVorgabeDelete}) + Me.ctxMenuVorgabe.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuVorgabeNeu, Me.ToolStripMenuVorgabeEdit, Me.ToolStripMenuVorgabeDelete, Me.EintragAnzeigenToolStripMenuItem}) Me.ctxMenuVorgabe.Name = "ctxMenuDefinition" - Me.ctxMenuVorgabe.Size = New System.Drawing.Size(171, 70) + Me.ctxMenuVorgabe.Size = New System.Drawing.Size(171, 92) ' 'ToolStripMenuVorgabeNeu ' Me.ToolStripMenuVorgabeNeu.Name = "ToolStripMenuVorgabeNeu" - Me.ToolStripMenuVorgabeNeu.Size = New System.Drawing.Size(170, 22) + Me.ToolStripMenuVorgabeNeu.Size = New System.Drawing.Size(180, 22) Me.ToolStripMenuVorgabeNeu.Text = "Neuer Eintrag" ' 'ToolStripMenuVorgabeEdit ' Me.ToolStripMenuVorgabeEdit.Name = "ToolStripMenuVorgabeEdit" - Me.ToolStripMenuVorgabeEdit.Size = New System.Drawing.Size(170, 22) + Me.ToolStripMenuVorgabeEdit.Size = New System.Drawing.Size(180, 22) Me.ToolStripMenuVorgabeEdit.Text = "Eintrag bearbeiten" ' 'ToolStripMenuVorgabeDelete ' Me.ToolStripMenuVorgabeDelete.Name = "ToolStripMenuVorgabeDelete" - Me.ToolStripMenuVorgabeDelete.Size = New System.Drawing.Size(170, 22) + Me.ToolStripMenuVorgabeDelete.Size = New System.Drawing.Size(180, 22) Me.ToolStripMenuVorgabeDelete.Text = "Eintrag löschen" ' 'ToolStripStruktur @@ -612,9 +615,9 @@ Partial Class frmVorgabe 'ctxMenuDefinition ' Me.ctxMenuDefinition.ImageScalingSize = New System.Drawing.Size(32, 32) - Me.ctxMenuDefinition.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuerEintragToolStripMenuItem1, Me.EintragBearbeitenToolStripMenuItem1, Me.EintragLöschenToolStripMenuItem1}) + Me.ctxMenuDefinition.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuerEintragToolStripMenuItem1, Me.EintragBearbeitenToolStripMenuItem1, Me.EintragLöschenToolStripMenuItem1, Me.EintragAnzeigenToolStripMenuItem1}) Me.ctxMenuDefinition.Name = "ctxMenuDefinition" - Me.ctxMenuDefinition.Size = New System.Drawing.Size(171, 70) + Me.ctxMenuDefinition.Size = New System.Drawing.Size(181, 114) ' 'NeuerEintragToolStripMenuItem1 ' @@ -685,6 +688,18 @@ Partial Class frmVorgabe Me.DokumenteDefinition.TempFilePath = Nothing Me.DokumenteDefinition.ThemaNr = 0 ' + 'EintragAnzeigenToolStripMenuItem + ' + Me.EintragAnzeigenToolStripMenuItem.Name = "EintragAnzeigenToolStripMenuItem" + Me.EintragAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.EintragAnzeigenToolStripMenuItem.Text = "Eintrag anzeigen" + ' + 'EintragAnzeigenToolStripMenuItem1 + ' + Me.EintragAnzeigenToolStripMenuItem1.Name = "EintragAnzeigenToolStripMenuItem1" + Me.EintragAnzeigenToolStripMenuItem1.Size = New System.Drawing.Size(180, 22) + Me.EintragAnzeigenToolStripMenuItem1.Text = "Eintrag anzeigen" + ' 'frmVorgabe ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -800,4 +815,6 @@ Partial Class frmVorgabe Private WithEvents ImageList1 As ImageList Friend WithEvents ToolStripButton2 As ToolStripButton Friend WithEvents ToolStripMain As ToolStrip + Friend WithEvents EintragAnzeigenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents EintragAnzeigenToolStripMenuItem1 As ToolStripMenuItem End Class diff --git a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.resx b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.resx index c44a8a3..5bae06c 100644 --- a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.resx +++ b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.resx @@ -186,6 +186,54 @@ 847, 17 + + 1341, 17 + + + 1598, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;Wrap:True;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 413, 272</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 413, 272</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + + 1064, 17 + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -317,7 +365,7 @@ - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{ForeColor:ControlText;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 407, 189</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 407, 189</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}Style2{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}Heading{AlignVert:Center;Border:Raised,,1, 1, 1, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style6{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 407, 189</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 407, 189</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> 1341, 17 @@ -340,16 +388,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pdyuFhWVeJF1Z - 0AeGKckIIpBGdzaU8KIomKN1ZRdBH2DQqHefbdY+m9OttiWrmxDUknxbI5zW3jZzm7toI/fvGTyXbbMf - /DnPc87/nPM8zGbwsaxjuqXlBr3+H1Pd3Q/uMQy0NTXwSyTzb6XSWlqqTGHhUcdclIfr1h3cJUPGRCK8 - qK/HDMt2UUt5fs9eT6Qm2hHnHyOyKGBsL4v7VVVwisU3qaU0GxEN98t3BnFHM5YNDFZ8J8H/SOCVcvAb - tZSmENWcTgXliLtkZIAEy+NiJDxt+G7Zgujs82Zq+ze8R7lVCFzJCWRzcvI4YtYdWJ3sJIOk+OMTKamt - NBtzQ37BLcPq1CnygoNkczsS3mPIeHaFqaU0Bf6aIunpwE/3YawF5BDIF9be9OLTkwOFj5baamorTX7h - YUxwtyH7/ioSE0eRDl5EkmwvBPefp5by5D4/RWrRjtTMbaRf95Dt55APHhmn5fKMjl4SQbAj8+Ul1pcC - yMb8yIa71mm5Mo2Nu2UXejuR/upCTggD+Ygls/JhJy1XpqGp6ey27dXYU1fnTC69a6DpzREKhfapVKoR - tVqt4QwGuVb7rN9oNA7YbLbhoux2+wCRguiy0+nsczgcJ7xer5S2M4zVam01mUw9pKlfp9MN6vX6YRJH - SFQVRc/F3BCRguO4PrPZfIhhGOYvjFokaETopNYAAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqeuHIEr+odyuFRWVeJF1Z + 0AeGKckIIpBGdzaU8KIomKN1ZRdBH2DEqHefbdY+m9OttiWrmxA0kVxrhNPa2ztzm7toI/fvGTyXbbMf + /DnPc87/nPM8zFbwsaxjpq3tJr3+H9M9PQ/vMwy0tbXwSySf3kmldbRUmcLi4875WASu23dxjwwZF4nw + sqEBsyzbTS3l+T13Q0hNdiAReYLoEo/xvSweVFXBKRbfopbSbEY13C/fWSQcrVgxMFj1nULkh4DXyqFv + 1FKaQkxzJhWUI+GSkQESrEyIIXja8d2yDbG5F63U9m8iHuV2PnA1x5PNyakTiFtrsDbVRQZJ8ccnUlJb + aTbnh/28W4a16dPkBQfJ5g4I3uPIeHaHqaU0hch1RdLTiZ/uI1gPyMGTL6y/7cPC0wOFBUtdNbWVJr/4 + KM6725H9cA3C5DGkg5eQJNsLwf0XqKU8uc/PkFqyIzV7B+k3vWT7eeSDRydouTxjY5dF4O3IfHmFjeUA + snE/suHuDVquTHPzHtnFvi6kv7qQ48NAPmrJrH7cRcuVaWxpObdjZzWa6uudyeX3jTS9NUKh0D6VSjWq + Vqs1nMEg12qfDxiNxkGbzTZSlN1uHyRSEF1xOp39DofjpNfrldJ2hrFarYdMJlMvaRrQ6XRDer1+hMRR + ElVF0XMxN0yk4Diu32w2H2YYhvkLiJUkZvHBKt4AAAAASUVORK5CYII= @@ -368,51 +416,6 @@ ovwBHtVvxMSvxBEAAAAASUVORK5CYII= - - 1598, 17 - - - - iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 - vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 - dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh - d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp - emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 - c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp - bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz - dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n - LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf - U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh - d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA - AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk - cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi - eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv - bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE - ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 - AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp - bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n - ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu - RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF - 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA - AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w - BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA - AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ - QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA - ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= - - - - <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:White;}Normal{}RecordSelector{AlignImage:Center;}OddRow{BackColor:224, 224, 224;}Style3{}Footer{}Style14{}FilterBar{ForeColor:Black;BackColor:255, 255, 192;}Heading{Wrap:True;Border:Raised,,1, 1, 1, 1;AlignVert:Center;BackColor:Control;ForeColor:ControlText;}Style5{}Editor{}Style10{AlignHorz:Near;}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Style16{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style6{}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" AlternatingRowStyle="True" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" FilterBar="True" FilterBorderStyle="Raised" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 413, 272</ClientRect><BorderSide>0</BorderSide><BorderStyle>Sunken</BorderStyle></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 413, 272</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> - - - 1064, 17 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -431,16 +434,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIXSURBVDhPlY9dSJNhFMffCylqduHIEk2pbaWwsMyLpCsL - +sAwJRlBBNLozoYSXhQFc7Su7CLoA+xi1LvPNmt7tzWnW20rZjchaDLybY1wWnvbzG3uoo3cv2fwXLbN - fvDnPM85/3PO8zBbwSeRcO/b2m7R6/8x09v76AHDQFdXB79U+umdTFZPS9UpRp50LcR4uO7cw30yZEIk - wsvGRsxJJD3UUpnf8zeT6alOJPiniC4JmNgvwcOaGjjF4tvUUp7NqJb95TuHBNeKFSODVd9p8D+SeK0a - /kYt5SnGtGfTQQUSLjkZIMXKpBhJTwe+W7chNv+ildr+De9RbRcC1/IC2ZyaPom4bRfWprvJIBn++EQq - aivP5sKIX3DLsTZzhrzgMNnciaT3BLKePWFqKU+Rv6FMebrw030U6wEFBPKF9bf9iOgOFRet9bXUVp5C - 5HFccHcg9+E6klPHkQleRopsLwYPXqSWyuQ/P0N6yYH03F1k3vSR7RdQCB6bpOXKjI9fEUFwIPvlFTaW - A8jF/ciFezZouTrNzXvll/q7kfnqQl4IA4WoNbv6cTctV6eppeX8jp212NfQ4EwtzzbR9NYIhUIH1Gr1 - mEaj0bJGo0Knez5oMpmG7Hb7aEkOh2OISEl01el0DnAcd8rr9cpoO8PYbLZ2s9ncR5oG9Xr9sMFgGCVx - jER1SfRcyo0QKVmWHbBYLEcYhmH+ApAfJGovldWEAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIWSURBVDhPlY9dSJNhFMffCylqduHIEk2pdyuFhWVeJF1Z + 0AeGKckIIpBGdzaU8KIomKN1ZRdBH2DQqHefbdY+m9OttiWrmxDUknxbI5zW3jZzm7toI/fvGTyXbbMf + /DnPc87/nPM8zGbwsaxjuqXlBr3+H1Pd3Q/uMQy0NTXwSyTzb6XSWlqqTGHhUcdclIfr1h3cJUPGRCK8 + qK/HDMt2UUt5fs9eT6Qm2hHnHyOyKGBsL4v7VVVwisU3qaU0GxEN98t3BnFHM5YNDFZ8J8H/SOCVcvAb + tZSmENWcTgXliLtkZIAEy+NiJDxt+G7Zgujs82Zq+ze8R7lVCFzJCWRzcvI4YtYdWJ3sJIOk+OMTKamt + NBtzQ37BLcPq1CnygoNkczsS3mPIeHaFqaU0Bf6aIunpwE/3YawF5BDIF9be9OLTkwOFj5baamorTX7h + YUxwtyH7/ioSE0eRDl5EkmwvBPefp5by5D4/RWrRjtTMbaRf95Dt55APHhmn5fKMjl4SQbAj8+Ul1pcC + yMb8yIa71mm5Mo2Nu2UXejuR/upCTggD+Ygls/JhJy1XpqGp6ey27dXYU1fnTC69a6DpzREKhfapVKoR + tVqt4QwGuVb7rN9oNA7YbLbhoux2+wCRguiy0+nsczgcJ7xer5S2M4zVam01mUw9pKlfp9MN6vX6YRJH + SFQVRc/F3BCRguO4PrPZfIhhGOYvjFokaETopNYAAAAASUVORK5CYII= diff --git a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.vb b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.vb index 84f9148..561ad39 100644 --- a/SW/AssessmentMgmt/Vorgabe/frmVorgabe.vb +++ b/SW/AssessmentMgmt/Vorgabe/frmVorgabe.vb @@ -206,6 +206,13 @@ VorgabeTree.Refresh_Filter(Me.tsCbxFilter) Me.TreeVorgabe.SelectedNode = Me.TreeVorgabe.Nodes(0) AddChanges(Me) + sec.Set_Form_Security(Me) + If Me.ToolStripStruktur.Visible = False Then + Me.DokumenteAllgemein.Show_Toolbar = False + ' Me.DokumenteAllgemein.Set_ShowToolbar() + Me.DokumenteDefinition.Show_Toolbar = False + ' Me.DokumenteDefinition.Set_ShowToolbar() + End If End Sub Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click @@ -392,7 +399,7 @@ End Sub Sub Refresh_Details() - Me.DokumenteAllgemein.Show_Toolbar = True + 'Me.DokumenteAllgemein.Show_Toolbar = True Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.DokumenteAllgemein.Doktype = 1 @@ -425,6 +432,10 @@ f.Parentnode = Me.TreeVorgabe.SelectedNode.Parent f.Tree = Me.TreeVorgabe f.Key = Me.C1Daten.Columns("Vorgabeid").Value + If Me.EintragBearbeitenToolStripMenuItem.Enabled = False Then + f.btnSave.Enabled = False + f.TreeVorgabe.AllowDrop = False + End If f.ShowDialog() If f.DialogResult = Windows.Forms.DialogResult.OK Then Me.TreeVorgabe.Nodes.Clear() @@ -536,7 +547,7 @@ Sub Refresh_DetailsDefinition() Try - Me.DokumenteDefinition.Show_Toolbar = True + 'Me.DokumenteDefinition.Show_Toolbar = True Me.DokumenteDefinition.ConnectionString = Globals.sConnectionString Me.DokumenteDefinition.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.DokumenteDefinition.Doktype = 2 @@ -570,6 +581,10 @@ Dim f As New frmVorgabeDefinition f.Key = Me.C2Daten.Columns("VorgabeDefinitionNr").Value f.VorgabeID = Me.C1Daten.Columns("VorgabeID").Value + If Me.EintragBearbeitenToolStripMenuItem.Enabled = False Then + f.btnSave.Enabled = False + + End If f.ShowDialog() If f.DialogResult = DialogResult.OK Then Refresh_C2Daten() Catch @@ -637,6 +652,14 @@ End Sub + Private Sub EintragAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragAnzeigenToolStripMenuItem.Click + TsBtnEditStruktur_Click(sender, e) + End Sub + + Private Sub EintragAnzeigenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles EintragAnzeigenToolStripMenuItem1.Click + TsBtnEditDefinition_Click(sender, e) + End Sub + diff --git a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg index 34f7398..171c016 100644 --- a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg +++ b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.cfg @@ -1 +1 @@ -¹µÈ¦rȽ¹¿¸ª‰¿­Çx…½³»É·¥¹u¨­À¦¾·¼‘•¸ÅºÁ·ºº³À™¬¿¼´†„v‰†t…µ±¾¸»»ÉtǪµÊÀ­ÁÎeµº«Á…›µÀ¸·Å³¿À¸À­¹»·Ãt½©¨–™ˆÅ¦¯·ªÆhȽڏ‰~}ƒº¿±·r±¹‘ǦÅ¯·ÀÌ´¾°‚|»½É†~ +¹µÈ¦rȽ¹¿¸ª‰¿­Çx…½³»É·¥¹u¨­À¦¾·¼‘•¸ÅºÁ·ºº³À™¬¿¼‡„†v‚€vˆÅª¾¿®Å¼uǹ¨ÇÇ·¸Æu®º²´Ž¶ÀǪÌ½¶¸È¹­À®Á¶u½¸‚¥£½¶¨·±¹r»¾Î¹‚†…‡zˆÊ¸±¾e»¬’ǵ€Â¶Á·ÄÄ·°‰oŰʆ€ diff --git a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe index 7d66ca0..245795f 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe and b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.exe differ diff --git a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb index 46b5f3d..ca96931 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb and b/SW/AssessmentMgmt/bin/Debug/AssessmentMgmt.pdb differ diff --git a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.dll b/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.dll deleted file mode 100644 index 014a482..0000000 Binary files a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.dll and /dev/null differ diff --git a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.xml b/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.xml deleted file mode 100644 index 2038bf1..0000000 --- a/SW/AssessmentMgmt/bin/Debug/C1.Win.C1FlexGrid.2.xml +++ /dev/null @@ -1,12595 +0,0 @@ - - - - C1.Win.C1FlexGrid.2 - - - - - The Excel font underline style. - - - - No underline. - - - Single underline. - - - Double underline. - - - Single accounting underline. - - - Double accounting underline. - - - - The Excel font superscript/subscript style. - - - - Normal. - - - Superscript. - - - Subscript. - - - - Static class containing UI strings used by the designer. - - - - - Static class containing UI strings used by the designer. - - - - - Represents a filter that contains a and a - . - - - - - Interface implemented by column filter objects. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; - False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A to be used to modify the filter at - run time. - The control returned must implement the - interface. - - - - Gets a value that determines whether the filter is active. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to edit the filter - at run time. - - - - Gets the contained in this . - - - - - Gets the contained in this . - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Interface implemented by column filter editor controls. - - - - - Initializes the editor with parameters from a filter to be edited. - - - that contains the column to be filtered. - Index of the column that contains the values to be filtered. - - being edited. - - - - Applies changes to the filter being edited. - - - - - Gets a value that determines whether the containing form should remain - open even when it is deactivated. - - - This property allows custom editors to display modal dialogs. - - - - - Represents a filter based on a set of values. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to edit the filter at run time. - - - - Gets or sets an array with the values that should be included in the output. - - - Setting this property to null causes the filter to include all values in the output. - - - - - Gets or sets the limit count of displayed values in value filter. - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Static class containing UI strings used by the designer. - - - - - Helper class that provides information about a currently active ComboBox editor. - - - - - Gets or sets the selected index in the currently active ComboBox editor. - - - If there's no active editor, or if the editor is not a ComboBox, - the value returned is -1. - - - - - Gets or sets the selected item in the currently active ComboBox editor. - - - If there's no active editor, or if the editor is not a ComboBox, - the value returned is null. - - - - - Gets the key that corresponds to the selected item in the currently - active ComboBox editor. - - - If there's no active editor, if the editor is not a , or if the cell - being edited does not have an associated DataMap, the value returned is null. - - - - - Gets the collection of items in the currently active ComboBox editor. - - - If there's no active editor, or if the editor is not a ComboBox, - the value returned is null. - - - - - Summary description for GridDesigner. - - - - - Initializes the designer with the specified component. - - Component associated with the designer. - - - - Releases the resources associated with the designer. - - True to release all resources, false to release unmanaged resources only. - - - - Indicates whether a mouse click at the specified point should be handled by the control. - - Point indicating the mouse position, in screen coordinates. - True if the control should handle the click, false otherwise. - - - - Gets the design time action lists supported by the component associated - with this designer. - - - - - Interface implemented by editors and used by the grid to host edit controls - on cells. - - - All built-in grid editors implement this interface, as do the controls in the - ComponentOne C1Input library. - If you want to use a third-party editor with the , consider - creating a derived class and implementing this interface. - Note that the methods in IC1EmbeddedEditor are called using reflection. - Controls do not need to implement the entire interface. Any public methods with matching - signatures (names, parameters, and return values) will be invoked by the grid. - The grid supplies default handlers for any methods not implemented by the control. - - - - - Called to initialize the editor content and styles. - - Contains the grid data that should be displayed in the editor. - Contains a dictionary with keys that correspond to style element names and values for the cell being edited. - - The dictionary contains the following keys: - - BackColor: Cell background color. - - ForeColor: Cell foreground color. - - Font: Cell font. - - Format: Cell format string (e.g. "#,##0.##"). - - ContentAlignment: Cell text alignment. - - Margins: Extra margins around the cell content (in pixels). - - Wrap: Whether word wrapping is enabled. - - - - - Gets the current value of the editor. - - The current value of the editor (any data type). - - - - Gets a value that determines if the editor's current contents are valid. - - True if the editor currently has valid content (e.g it contains - an EditMask and all required positions have been filled). - - - - - Called to update the editor's size and position. - - The bounds of the cell being edited, in client coordinates. - - This method is called during initialization and also when the grid scrolls. - - - - - Gets a value that determines whether a given key should finalize editing. - - Key to be tested. - True if the key should finish the edits and close the editor. - - If this method returns true, the grid copies the editor value to the cell and - exits edit mode. The key is then processed by the grid (unless the e.Handled - parameter is set to true). - For example, pressing the down arrow typically causes the grid to exit edit - mode and move the cursor to the next row. - The default handler returns true for the TAB, ENTER, and ESC keys. - It also handles the arrow keys for editors based on TextBox, ComboBox, - and DateTimePicker controls. - - - - - Formats a given value using a specified mask. - - Value to be formatted. - Formatting mask. - A string containing the formatted value. - The default implementation ignores the mask and returns value.ToString(). - - - - Gets the editor style, which determines the type of button that is displayed in - the cell before and during editing (DropDown, Modal, or None). - - - The default handler returns DropDown for ComboBoxes, DateTimePickers, and - UpDown controls. It returns None for other control types. - The UITypeEditorEditStyle enumeration is defined in the System.Drawing.Design - namespace. The available settings are DropDown, Modal, and None. - - - - - Interface that extends and can be used to implement multi-column data maps. - - - - - Gets the string that should be displayed in the grid while not in edit mode. - - Value to look up in the dictionary. - The string that should be displayed in the grid while not in edit mode. - - When the is used to populate a , - all columns are displayed when the combo is dropped down. When the combo is closed, only one - column can be displayed. This method returns that value. - - - - - Interface that extends and can be used to implement multi-column data maps. - - - - - Gets the string which is in given column of the dictionary. - - Value to look up in the dictionary. - >Column index in the dictionary. - The string that should be displayed in the grid while not in edit mode. - - - - Class that implements the and can be used as - a column DataMap to create multi-column combo editors. - - - The class can be used to implement simple string-based - data maps or bound data maps that get the data from a data source object. - - - The code below creates an unbound two-column data map and assigns it to a grid column: - - // create string-based MultiColumnDictionary and assign it to column - // note: this will automatically generate keys of type 'int' for each item, - // the key values will be stored in the grid. - string text = "Row1, Col1\tRow1, Col2|Row2, Col1\tRow2, Col3|Row2, Col1\tRow3, Col2"; - MultiColumnDictionary map = new MultiColumnDictionary(text, 0, true); - _flex.Cols[1].DataMap = map; - - The map consists of three items, each with two columns. Because the autoKeys - parameter was set to true in the map's constructor, the map will have unique integer keys for - each value,and those integers will be stored in the grid cells. If autoKeys - had been set to false, the strings themselves would be used as keys and stored in the grid - cells. - The code below creates a bound data map and assigns it to a grid column: - - // create data-based MultiColumnDictionary and assign it to column - // notes: the list will automatically be updated is the data source changes. - DataTable dt = GetDataTable("employees"); - string[] columnNames = new string[] { "FirstName", "LastName", "Country" }; - MultiColumnDictionary map = new MultiColumnDictionary(dt, "EmployeeID", columnNames, 1); - _flex.Cols[2].DataMap = map; - - This map is bound to an Employees DataTable. The keyColumn parameter is set - to "EmployeeID", causing this field to be used as a key. When the grid is edited, the values - stored in the cells will be the employee's ID. However, this value is never displayed be the grid. - The drop-down list will show the employee's first name, last name, and country, as specified by the - columnNames parameter. - When the list is closed, the grid will display the employee's last name, as specified - by the displayColumn parameter. - Note that this map is dynamically bound to the data source, so if the employees table is - modified, the editor list will reflect the changes automatically. - Note also that the usual combo editing features such as auto-search and double-click cycling - still work. - - - - - Initializes a new instance of an unbound class. - - String that contains the items, delimited by pipe characters ("|"). - Each item may contain multiple columns, delimited by tabs (vbTab or '\t'). - - This constructor causes the map to show all columns when the editor is dropped down and only the - first column when the editor is closed or inactive. - - - - - Initializes a new instance of an unbound class. - - String that contains the items. Items are delimited by pipe characters ("|"). - Each item may contain multiple columns, delimited by tabs (vbTab or '\t'). - Index of the column that is displayed in the grid. - True if keys are to be automatically generated, false if the items themselves are - to be used as keys. Note that in the latter case, duplicate items are not allowed. - - - - Initializes a new instance of a bound class. - - Data source object. - Name of the data source column that contains unique keys. - Array with the names of the columns that are included in the map. - Name of the column that is displayed in the grid. - - - - Initializes a new instance of a bound class. - - Data source object. - Name of the data source column that contains unique keys. - - This constructor causes the map to show all columns when the editor is dropped down and only the - first column when the editor is closed or inactive. - - - - - Initializes a new instance of a bound class. - - Data source object. - Name of the data source column that contains unique keys. - Array with the names of the columns that are included in the map. - Name of the column that is displayed in the grid. - - - - Initializes a new instance of a bound class. - - Data source object. - Name of the data source column that contains unique keys. - - - - Removes all entries from the . - - - - - Adds an entry with the specified key and value into the . - - - - - Gets or sets the value associated with the specified key - - The key of the value to get or set. - - - - Specifies how adjacent cells are merged for display. - - - - - Do not merge any cells. - - - - - Merge any adjacent cells with same contents. - - - - - Merge rows only if cells above are also merged. - - - - - Merge columns only if cells to the left are also merged. - - - - - Merge cells only if cells above or to the left are also merged. - - - - - Merge only fixed cells. This setting is useful for setting up complex - headers for the data and preventing the data itself from being merged. - - - - - Allow long entries to spill into empty adjacent cells. - - - - - Allow long entries in node rows to spill into empty adjacent cells. - - - - - Use collection to determine which cells are merged. - - - - - Use the setting specified for the property. - - - - - The C1FlexGrid control is a powerful, full-featured grid. - C1FlexGrid provides advanced features such as outline trees, cell merging, - masked editing, translated combo and image lists, owner-draw cells, and automatic - data aggregation. - - - C1FlexGrid can be used in bound mode, where it displays data from .NET - data sources, or in unbound mode, where the grid itself manages the data. - You can use C1FlexGrid to read and write Excel files (.Xls), or read and write - grid contents to and from Xml files. - Classes derived from should have a LicenseProvider - attribute so Visual Studio will embed the appropriate licensing information into - projects that use the derived control. - For example: - - [LicenseProvider(typeof(LicenseProvider))] - public class MyGrid : C1FlexGrid - { - // implementation - } - - - - - - Base class for the control. - - - - - Base class for controls that support auto-scrolling behavior. - - - This class is similar to , but provides - extra customization, better scroll notification, and support for scroll tracking and - Windows XP themes. - - - - - Creates a new instance of a class. - - - - - Maintains performance by preventing the control from updating itself until - the method is called. - - - - - Resumes updating the control after calls to the method. - - - - - Called when the control receives a WM_THEMECHANGED message. - - - The WM_THEMECHANGED message is broadcast to every window following a - theme change event. Examples of theme change events are the activation of a - theme, the deactivation of a theme, or a transition from one theme to another. - - - - - Called when the control receives a WM_IME_STARTCOMPOSITION message. - - - The WM_IME_STARTCOMPOSITION message is sent immediately before the IME generates - the composition string as a result of a keystroke. The message is a notification to - an IME window to open its composition window. An application should process this - message if it displays composition characters itself. - - - - - Called after the control scrolls (see the property). - - - value that indicates the scroll direction. - - - - Called before the controls displays a scroll tip. - - New value for the vertical scrollbar. - - - - Builds a rectangle that defines the scrollable portion of the control for a given pair of scroll offsets. - - Horizontal scroll offset. - Vertical scroll offset. - A that defines the scrollable portion of the control. - - This method is for internal use. It allows derived classes to customize the control scrolling behavior. - - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Calculates the new position of a scrollbar in response to a user command. - - Scroll command (SB_LINEUP, etc). - True for the vertical scrollbar, false for the horizontal scrollbar. - Current scrollbar position. - Scrollbar thumb position. - The new position for the scrollbar. - - Derived classes may override this method to customize the scrolling behavior. - - - - - Gets or sets which scroll bars should appear on the control. - - - Scroll bars are displayed only if the contents of the control extend beyond its - client area. For example, if is set to , - a horizontal scroll bar is displayed only if the control is not wide enough to display all - columns at once. - Even when it has no scrollbars, the control will still scroll to keep the selection visible. - If you want to prevent scrolling, handle the event and - set its parameter to true. - You can force the control to display scrollbars at all times with the - property. - You can determine which scrollbars are currently visible with the - property. - - - - - - - Gets or sets the location of the auto-scroll position. - - - Use the property to get or set the scroll position using pixel coordinates. - Use the and properties to get or - set the scroll position using cell coordinates. - - - This code binds two grids (_flexLeft and _flexRight) together and synchronizes their scrolling in the vertical - direction (the user can scroll the grids independently in the horizontal direction). - - // bind grids together - _flexRight.DataSource = _flexLeft; - _flexLeft.ScrollBars = ScrollBars.Horizontal; - - // synchronize vertical scrolling - // (this handles the AfterScroll event for both grids) - void flex_AfterScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e) - { - // update sender grid (could be _flexLeft or _flexRight) - C1FlexGrid.C1FlexGrid src = ((C1FlexGrid)sender); - src.Update(); - - // get new vertical position from sender grid - int y = src.ScrollPosition.Y; - - // apply new vertical position to the other grid - if (src.Equals == _flexLeft) - { - _flexRight.ScrollPosition = new Point(_flexRight.ScrollPosition.X, y); - } - else - { - _flexLeft.ScrollPosition = new Point(_flexLeft.ScrollPosition.X, y); - } - } - - - - - Gets or sets the type of border around the control. - - - - - Gets a value that indicates which scrollbars are currently visible. - - - - - - - Gets a rectangle that defines the scrollable portion of the control. - - - - - Releases all resources used by the . - - True to release both managed and unmanaged resources; - False to release only unmanaged resources. - - - - Signals the object that initialization is starting. - - - - - Signals the object that initialization is complete. - - - - - Raises the event. - - - that contains the event data. - - - - Creates a new accessibility object for the control. - - A new for the control. - - - - Retrieves the specified . - - Row index of the accessibility object to return. - The for the specified row. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - - - - Raises the event. - - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A object that contains event data. - - - - Raises the event. - - A object that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - An that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Gets a custom associated with a cell. - - Row index. - Column index - - object associated with the cell, - or null if the cell doesn't have a custom style. - - If the cell doesn't have a custom style, the grid paints it using one of the - built-in styles. The built-in style is selected based on the cell position - and state (fixed, scrollable, highlighted, etc). To retrieve the style that - will be used to paint the cell (custom or built-in) use the method. - - - - - Assigns a custom to a cell. - - Row index. - Column index - The to associate with the cell. - - The method is useful is you want to assign a new style - to a single cell. You can also reset the cell style by setting it to null (Nothing, in VB). - To apply a custom cell style to an entire row or column, set the row or column's - properties. - To apply a custom style to a range cells, use a object. - For example: - - CellRange rg = _flex.GetCellRange(3, 3, 10, 10); - rg.Style = _flex.Styles["MyRangeStyle"]; - - - - - - Assigns a custom to a cell. - - Row index. - Column index - Name of the new style. - - - - Gets the style used to render a cell. - - Row index. - Column index - - object used to display the cell. - - The object returned may be a composite with elements from several - styles. For example, a cell with the focus is painted with a style that contains elements - from the , a custom style associated with the cell, - row, and column (if available), and the style. - - - - - Gets the image displayed in a grid cell. - - Row index. - Column index. - An object previously assigned to the cell using the - method. - - - - Sets the image displayed in a grid cell. - - Row index. - Column index. - An object containing an image to display in the cell. - - In addition to the usual cell contents, you can display images in cells. - There are two methods for showing images in cells: - 1. You can use the and methods to - assign images directly to the cells. In this case, the cell contents and the image are - independent. To update the image, you need to call again. - 2. You can use the property to associate images with - specific cell values. In this case, images are updated automatically whenever the cell - contents change. The property allows you to specify whether - the control should display the images in addition to or instead of the cell text. - - - - - Assigns a value to a grid cell. - - Row index. - Column index. - Value to assign to the cell. - Whether the value should be converted to the column's data type. - True if the value was assigned to the cell. - - If is set to true and the value can't be converted into - the proper data type, the grid will fire the event and the - cell will retain its original value. - Using with set to true is equivalent - to setting the grid's indexer. For example, the following lines of code are equivalent: - - flex.SetData(1, 1, "Hello", true); - flex[1, 1] = "Hello"; // same thing - - - - - - Assigns a value to a range of cells. - - - that specifies the cells that will be assigned a new value. - Value that will be assigned to all cells in the range. - Whether the value should be converted to the column's data type. - True if the value was assigned to all cells in the destination range. - - - - Assigns a value to a grid cell, coercing the value into the cell's specified DataType. - - Row index. - Column index. - Value to assign to the cell. - True if the value was assigned to the cell, false if the value could not be - assigned (usually because it could not be converted to the appropriate type). - - - - Assigns a value to a range of cells, coercing the value into each cell's specified DataType. - - - that specifies the cells that will be assigned a new value. - Value that will be assigned to all cells in the range. - True if the value was assigned to all cells in the destination range, false if - the value could not be assigned to all cells in the range (usually because it could not be - converted to the appropriate type). - - - - Assigns a value to a grid cell. - - Row index. - Column name. - Value to assign to the cell. - Whether the value should be converted to the column's data type. - True if the value was assigned to the cell, False otherwise. - - If is set to true and the value can't be converted into - the proper data type, the grid will fire the event and the - cell will retain its original value. - Using with set to true is equivalent - to setting the grid's indexer. For example, the following lines of code are equivalent: - - flex.SetData(1, "ColName", "Hello", true); - flex[1, "ColName"] = "Hello"; // same thing - - - - - - Assigns a value to a grid cell, coercing the value into the cell's specified data type. - - Row index. - Column name. - Value to assign to the cell. - True if the value was assigned to the cell, False otherwise. - - - - Assigns a value to a grid cell, optionally coercing the value into the cell's specified data type. - - Row index. - Column index. - Value to assign to the cell. - Whether to coerce the value into the cell's specified data type. - True if the value was assigned to the cell, False otherwise. - - - - Gets the value of a grid cell. - - Row index. - Column index. - The value of the cell. - - The method returns the raw data stored in a specific grid cell. - It is equivalent to using the grid's indexer. For example: - - object foo = flex.GetData(1, 1); - object bar = flex[1, 1]; // same thing - - The data displayed on the grid might be different from the raw data, depending on - the setting of the and properties. - To obtain the display value (which is always a string), use the - method instead. - - - - - Gets the value of a grid cell, taking into account the value returned by the method. - - Row index. - Column index. - Whether to take into account the value of the method. - - - - - - Gets the value of a grid cell. - - Row index. - Column name. - The value of the cell. - - - - Gets user data associated with a cell. - - Row index. - Column index. - Object associated with the cell. - - The user data is not used internally by the grid. It is reserved for additional data that you may want to - associate with a cell. - - - - - Gets user data associated with a cell. - - Row index. - Column name. - Object associated with the cell. - - The user data is not used internally by the grid. It is reserved for additional data that you may want to - associate with a cell. - - - - - Assigns user data to a cell. - - Row index. - Column index. - User data to assign to the cell. - - The user data is not used internally by the grid. It is reserved for - additional data that you may want to associate with a cell. - - - - - Assigns user data to a cell. - - Row index. - Column name. - User data to assign to the cell. - - The user data is not used internally by the grid. It is reserved for additional data that you may want to - associate with a cell. - - - - - Gets the value in a grid cell, formatted as a string. - - Row index. - Column index. - A string containing the data displayed in the given grid cell. - - - - Gets the value in a grid cell, formatted as a string. - - Row index. - Column name. - A string containing the data displayed in the given grid cell. - - - - Gets the value in a grid cell, formatted as a string, and the image or checkbox in the cell. - - Row index. - Column index. - Returns the image in the cell. - Returns the checkbox value in the cell. - A string containing the data displayed in the given grid cell. - - This method provides a way to retrieve all the data that is displayed in a cell with a single call. - The image returned in the parameter may be an image assigned to the - cell using the method, a mapped value obtained through an , - or an image stored as cell data (when the cell's is set to Image). - The value returned in the parameter is the value - returned by the method. - - - - - Gets the value in a grid cell, formatted as a string, and the image or checkbox in the cell. - - Row index. - Column name. - Returns the image in the cell. - Returns the checkbox value in the cell. - A string containing the data displayed in the given grid cell. - - This method provides a way to retrieve all the data that is displayed in a cell with a single call. - The image returned in the parameter may be an image assigned to the - cell using the method, a mapped value obtained through an , - or an image stored as cell data (when the cell's is set to Image). - The value returned in the parameter is the value - returned by the method. - - - - - Selects a range of cells. - - - that specifies the cells that will be selected. - Whether to scroll the new selection into view. - - - - Selects a range of cells and scrolls it into view. - - - that specifies the cells that will be selected. - - - - Selects a range of cells. - - New value for the property. - New value for the property. - New value for the property. - New value for the property. - Whether to scroll the new selection into view. - - Using the method is equivalent to setting the , - , , and properties. - - - - - Selects a range of cells and scrolls it into view. - - New value for the property. - New value for the property. - New value for the property. - New value for the property. - - Using the method is equivalent to setting the , - , , and properties. - - - - - Selects a cell. - - New value for the property. - New value for the property. - Whether to scroll the new selection into view. - - Using the method is equivalent to setting the and properties. - - - - - Selects a cell and scrolls it into view. - - New value for the property. - New value for the property. - - Using the method is equivalent to setting the and properties. - - - - - Sorts the grid contents based on a column. - - - value that specifies the sort direction and options. - Column to sort on. - - Sorting works differently depending on whether the grid is bound to a data source or not. - In bound mode, the grid passes the sort request to the underlying data source object. In this case, - the sort settings remain in effect as the grid data changes. Editing values in the sort column will cause - the data source to re-sort the data, and grid will show the changes automatically. This is equivalent to - setting the property on a object for example. - In unbound mode, the Sort method sorts the data that is currently stored in the grid. Changing - the data after it has been sorted will not automatically update the sort. - When the grid is bound to a new data source, it inherits the sort settings currently applied to the - new data source object. Because of this, calling Sort immediately before setting the - property has no effect on the grid. - In unbound mode, the grid uses a stable sorting algorithm. This means that the sorting keeps the - relative order of records when the sorting key is the same. For example, if you sort a list of files by - name, then by extension, the list will still be sorted by name within each extension group. - The grid recognizes two types of row: regular rows which contain data, and node rows which are used - to group data. The Sort method only sorts regular rows; it does not affect node rows at all. - To sort nodes, use the method in the property or the - method in the class. - - - - - Sorts the grid contents based on a column range. - - - value that specifies the sort direction and options. - First column in the range. - Last column in the range. - - When you sort multiple columns, the same sorting options are applied to each column, - starting from the leftmost column in the range and proceeding to the right. - To sort multiple columns using a different sorting order for each, you can either - call the method multiple times or set each column's - property and call the method including the - flag in the parameter. - - - - - Sorts a range of cells in the grid. - - - value that specifies the sort direction and options. - - object that specifies the range of cells to sort. - - When you sort multiple columns, the same sorting options are applied to each column, - starting from the leftmost column in the range and proceeding to the right. - To sort multiple columns using a different sorting order for each, you can either - call the method multiple times or set each column's - property and call the method including the - flag in the flags parameter. - - - - - Sorts a group of rows using the specified comparer. - - First row in the sort range. - Number of rows in the sort range. - An object that compares objects. - - The interface has a single method called that - takes two objects as arguments (in this case, they will be objects) and - returns -1, 0, or +1. For more details, see the documentation for . - Custom sorting can only be used when the grid is in unbound mode. - - - - - Sorts the grid using the specified comparer. - - An object that compares objects. - - The interface has a single method called that - takes two objects as arguments (in this case, they will be objects) and - returns -1, 0, or +1. For more details, see the documentation for . - Custom sorting can only be used when the grid is in unbound mode. - - - - - Shows the sorting glyph on a column header. - - - value that specifies the glyph to display. - Column index. - - This method is useful if you want to perform custom sorting and need control over the appearance - and position of the sorting glyph (the little triangle that appears on the header of sorted columns). - - - - - Scrolls a cell into view. - - Row index. - Column index. - - This method does not affect the current selection. To move the cursor to a specific cell - and optionally bring it into view, use the method. - - - - - Invalidates the control. - - - - - Invalidates a cell, causing it to be repainted. - - Row index. - Column index. - - This method is rarely used by the programmer, since the grid automatically performs invalidation as needed. - - - - - Invalidates a cell range, causing it to be repainted. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - - - - Invalidates a cell range, causing it to be repainted. - - - that will be invalidated. - - This method is rarely used by the programmer, since the grid automatically - performs invalidation as needed. - - - - - Returns information about the control at a specified point on the control surface. - - The horizontal position of the client coordinate. - The vertical position of the client coordinate. - A object that contains information about the point. - - This method is especially useful when handling the event. - It allows you to determine whether the mouse is over a specific cell, grid buttons, - resizing elements, etc. - - - The code below shows hit test information whenever the user clicks the mouse: - - void _flex_BeforeMouseDown(object sender, BeforeMouseDownEventArgs e) - { - HitTestInfo hti = _flex.HitTest(e.X, e.Y); - Console.WriteLine("at {0},{1}: row {2} col {3} type {4}", - hti.X, hti.Y, hti.Row, hti.Column, hti.Type); - } - - - - - Returns information about the control at a specified point on the control surface. - - - in client coordinates. - A object that contains information about the point. - - This method is especially useful when handling the event. - It allows you to determine whether the mouse is over a specific cell, grid buttons, - resizing elements, etc. - - - - - Returns information about the control at the current mouse position. - - A object that contains information about the point. - - - - Gets a object with the coordinates of the cell within the control. - - Row index. - Column index. - Whether to scroll the cell into view before calculating the rectangle. - A object with the coordinates of the cell, in pixels and - relative to the control's client area. - - This property is useful if you need to implement custom editors or other elements that need - to be positioned over cells. - - - - - Gets a object with the coordinates of the cell within the control. - - Row index. - Column index. - - This property is useful if you need to implement custom editors or other elements that need - to be positioned over cells. - This method does not ensure the cell is visible. - - - - - Finds a row that contains a specified string. - - String to look for. - Index of the row where the search should start. - Column that contains the data to be searched. - Whether the search should be case-sensitive. - Whether a full match is required. If this parameter is set to false, searching for "John" may return a row that contains "Johnson". - Whether the search should stop at the bottom of the grid or wrap around and restart from the first scrollable row. - The index of the row that contains the string, or -1 if the string is not found. - - To allow users to search for data as they type, use the property. - - - - - Finds a row that contains a specified value in a given column. - - Object to look for. - Index of the row where the search should start. - Column to be searched. - Whether the search should stop at the bottom of the grid or wrap around and restart from the first scrollable row. - The index of the row that contains the data, or -1 if the object is not found. - - - - Finds a row that contains a specified value in a given column using a RegularExpression. - - The regular expression pattern to match. - Index of the row where the search should start. - Column that contains the data to be searched. - Whether the search should stop at the bottom of the grid or wrap around and restart from the first scrollable row. - The index of the row that matches the pattern, or -1 if no matches were found. - - The parameter specifies a regular expression pattern - expressed in the usual syntax. - The regular expression syntax supports character classes, ranges, repeat counts, - alternate matches, and more. Please refer to the .NET documentation for details and examples. - - - - - Maintains performance by preventing the control from updating itself until - the method is called. - - - The and methods are used to - optimize the performance of the grid. Call before making - extensive changes, and call when done to suspend repainting. - This will reduce flicker and increase performance. This optimization is especially - effective when adding large numbers of rows to the grid, because it needs to - recalculate ranges and update scrollbars each time a row is added. - - - The code below shows how to add a large number of rows to the grid efficiently. - Note how the method is called inside a 'finally' block - to ensure repainting is properly restored. - - void UpdateGrid(C1FlexGrid flex) - { - try - { - flex.BeginUpdate(); // suspend painting to avoid flicker - flex.Rows.Count = 1; - for (int i = 1; i < 10000; i++) - flex.AddItem("Row " + i.ToString()); - } - finally - { - flex.EndUpdate(); // always restore painting - } - } - - - - - Resumes updating the control after calls to the method. - - - - - Clears a range. - - - value that specifies the elements to clear. - Range to clear. - - - - Clears a range. - - - value that specifies the elements to clear. - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - - - - Clears a cell. - - - value that specifies the elements to clear. - Row index. - Column index. - - - - Clears the grid. - - - value that specifies the elements to clear. - - The method does not affect the number of rows and columns on the grid, - and can't be used to clear data when the grid is bound to a data source. - - - - - Clears the grid. - - - This method removes all data, styles, and user data from all cells, rows, and columns on the grid. - The method does not affect the number of rows and columns on the grid, - and can't be used to clear data when the grid is bound to a data source. - - - - - Gets a object that can be used to format and manipulate a cell. - - Row index. - Column index. - A object that can be used to format and manipulate the cell. - - - - Gets a object that can be used to format and manipulate a range. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - A object that can be used to format and manipulate the range. - - The object provides access to properties of the cells in the range. - For example, the code below sets the style of a range: - - CellRange rg = flex.GetCellRange(5, 5, 20, 8); - rg.Style = flex.Styles["MyStyle"]; - - Note: is a class, not a struct. Because of this, you have to - assign the value to a variable and then use the variable. For example, the following code - will not compile: - - // this does not compile - flex.GetCellRange(5, 5, 20, 8).Style = flex.Styles["MyStyle"]; - - - - - - Creates an image of the entire grid. - - An object containing a metafile image of the grid. - - Use this method to copy grid images to the clipboard so you can paste them into - documents or other applications. - - - The code below creates an image of a grid range and saves it to a PNG file that can be - included in other documents such as web pages: - - Image img = flex.CreateImage(0,0,10,5); - img.Save(@"c:\temp\grid.png", System.Drawing.Imaging.ImageFormat.Png); - - - - - Creates an image of a portion of the grid. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - An object containing a metafile image of the grid. - - The image returned includes any fixed and frozen cells in addition to the specified range. - - - - - Creates an image of a portion of the grid. - - - that specifies which cells should be included in the image. - An object containing a metafile image of the grid. - - The image returned includes any fixed and frozen cells in addition to the specified range. - - - - - Creates an image of a portion of the grid. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - - value that determines the type of metafile to create. - An object containing a metafile image of the grid. - - The image returned includes any fixed and frozen cells in addition to the specified range. - - - - - Creates an image of a portion of the grid. - - - that specifies which cells should be included in the image. - - value that determines the type of metafile to create. - An object containing a metafile image of the grid. - - The image returned includes any fixed and frozen cells in addition to the specified range. - - - - - Draws a grid cell. - - - object where the cell will be drawn. - Index of the cell's row. - Index of the cell's column. - - that defines the cell position. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Puts the grid in edit mode and starts editing a cell. - - Row index. - Column index. - Initial character to be sent to the editor. - True if the grid entered edit mode successfully, false otherwise. - - - - Puts the grid in edit mode and starts editing a cell. - - Row index. - Column index. - True if the grid entered edit mode successfully, false otherwise. - - - - Puts the grid in edit mode and starts editing the current cell. - - True if the grid entered edit mode successfully, false otherwise. - - If the property is set to true, the control goes into - edit mode automatically when the user presses the edit key (F2), the space bar, or - any printable character. You may use the method to force - the control into cell-editing mode. - The method forces the control into editing mode even - if is set to False. You may also use it to allow editing of - fixed cells. - - - The code below uses the method to keep the grid in edit mode - while the user moves the selection (like the .NET DataGrid control): - - void _flex_RowColChange(object sender, System.EventArgs e) - { - _flex.StartEditing(); - } - - - - - Finishes editing the current cell and takes the grid out of edit mode. - - True if the grid left edit mode successfully, false otherwise. - - - - Finishes editing the current cell and takes the grid out of edit mode, - optionally canceling the edits. - - Whether to cancel the current edits and revert the cell to its original value. - True if the grid left edit mode successfully, false otherwise. - - If the cancel parameter is set to false, the grid tries to apply the edits, - and fires the , , and events as usual. - If validation fails, the grid stays in edit mode (and returns false). - If the cancel parameter is set to true, the original cell value is restored and the - grid is guaranteed to leave the edit mode. In this case, only the event fires. - To determine whether the grid is in edit mode, check whether the property is null. - - - - - Starts editing a cell in response to a key press. - - - This method is for internal use. It allows inherited classes to customize the editing process. - - Row index. - Column index. - Key that initiated the edit process. - Whether editing should start even in non-editable cells (e.g. fixed cells). - True if the editing process was started successfully, false otherwise. - - - - Starts editing a cell in response to a mouse action. - - - This method is for internal use. It allows inherited classes to customize the editing process. - - Row index. - Column index. - Mouse position in client coordinates. - Whether the action was a double-click. - True if the editing process was started successfully, false otherwise. - - - - Sets the and properties. - - The new data source object. - The table to bind to within the data source object. - - - - Sets the and properties, - optionally keeping the current column layout. - - The new data source object. - The table to bind to within the data source object. - Whether the current column layout should be preserved or re-generated - automatically based on the data source schema. - - - - Calculates aggregate statistics for a range. - - - value that specifies the type of aggregate to calculate. - - object that contains the values to be aggregated. - - value that specifies aggregation options. - A that represents the aggregate value. - - - - Calculates aggregate statistics for a range. - - - value that specifies the type of aggregate to calculate. - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - - value that specifies aggregation options. - A that represents the aggregate value. - - - - Calculates aggregate statistics for the current selection. - - - value that specifies the type of aggregate to calculate. - - value that specifies aggregation options. - A that represents the aggregate value. - - - - Calculates aggregate statistics for the current selection. - - - value that specifies the type of aggregate to calculate. - A that represents the aggregate value. - - The code below method to calculate aggregate statistics - for the current selection. Whenever the selection changes, new aggregates are - calculated and written to the console. - - void flex_SelChange(object sender, System.EventArgs e) - { - string fmt = "Count {0:0}, Sum {1:#,##0.00}, " + - "Avg {2:#,##0.00}, Stdev {3:#,##0.00}"; - Console.WriteLine(fmt, - flex.Aggregate(AggregateEnum.Count), - flex.Aggregate(AggregateEnum.Sum), - flex.Aggregate(AggregateEnum.Average), - flex.Aggregate(AggregateEnum.Std)); - } - - - - - Calculates aggregate statistics for a range. - - - value that specifies the type of aggregate to calculate. - - object that contains the values to be aggregated. - A that represents the aggregate value. - - - - Calculates aggregate statistics for a range. - - - value that specifies the type of aggregate to calculate. - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - A that represents the aggregate value. - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - First column in the range used to detect group breaks. - Last column in the range used to detect group breaks. - Column that contains values to be aggregated (usually numeric). - Text to insert in the subtotal rows. - - The method inserts rows containing aggregate values. These new rows are set - to behave as tree nodes so they can be collapsed and expanded to display a dynamic hierarchical - outline. - You can control the appearance and behavior of the outline tree using the property. - The node rows added by the method have their property - automatically set to one of the Styles.Subtotal* styles. You can use the - collection to modify the appearance of all subtotal rows on the grid. - To create an outline tree manually, insert node rows using the method, - or convert regular rows into nodes by setting the property to true for the - node rows. Then use the property to set the outline level for the new - nodes. - - - The code below assumes a grid with four columns: "Product", "Region", "Employee", and "Sales". - The code groups on the first two columns, calculating total sales for each product and for - each region within each product. - If the user drags a column to a new position, the tree is automatically rebuilt to show - the new grouping (by Employee, Region, etc). - - void UpdateTotals() - { - // no repainting until we're done - _flex.Redraw = false; - - // clear old subtotals, if any - _flex.Subtotal(AggregateEnum.Clear); - - // sort the grid on the columns that will be grouped - _flex.Sort(SortFlags.Ascending, 0, 3); - - // show outline tree on column 0 - _flex.Tree.Column = 0; - - // get a grand total (use -1 instead of column index) - _flex.Subtotal(AggregateEnum.Sum, -1, -1, 3, "Grand Total"); - - // total on column 0 (initially Product) - _flex.Subtotal(AggregateEnum.Sum, 0, 0, 3); - - // total on column 1 (initially Region) - _flex.Subtotal(AggregateEnum.Sum, 1, 1, 3); - - // show outline level 1 - _flex.Tree.Show(1); - - // restore painting - _flex.Redraw = true; - } - void _flex_AfterDragColumn(object sender, C1.Win.C1FlexGrid.DragRowColEventArgs e) - { - UpdateTotals(); // user moved a column, update totals - } - - - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - Column used to detect group breaks. - Column that contains values to be aggregated (usually numeric). - Text to insert in the subtotal rows. - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - Column used to detect group breaks. - Column that contains values to be aggregated (usually numeric). - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - - This version of the method does not take any column parameters, - and is useful only for clearing the subtotals. For example: - - flex.Subtotal(AggregateEnum.Clear); // clear all subtotals - - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - Name of the first column in the range used to detect group breaks. - Name of the last column in the range used to detect group breaks. - Name of the column that contains values to be aggregated (usually numeric). - Text to insert in the subtotal rows. - - This is a variant of the method - that takes column names instead of indices. - - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - Name column used to detect group breaks. - Name of the column that contains values to be aggregated (usually numeric). - Text to insert in the subtotal rows. - - This is a variant of the method - that takes column names instead of indices. - - - - - Groups rows based on cell contents and calculates aggregate values. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - Name column used to detect group breaks. - Name of the column that contains values to be aggregated (usually numeric). - - This is a variant of the method - that takes column names instead of indices. - - - - - Adds a row to the grid and populates the new row with data. - - String containing the data for the new row. Items are separated by tab characters - by default. You can change the separator character using the property. - A reference to the new row. - - You can also add and remove rows using the collection. The - method provides a concise syntax for creating the row, populating it with data, and then adding it to the grid. - Before using to add a large number of rows to the grid, remember to set the - property to false. When finished adding the rows, set back to - its original value. This will significantly improve performance. - - - The code below adds 300 rows to the grid. - - // suspend painting to improve performance - bool redraw = flex.Redraw; - flex.Redraw = false; - - // append 100 rows, using tabs as separators - flex.ClipSeparators = "\t\n"; - for (int i = 0; i < 100; i++) - flex.AddItem("\tcol1\tcol2\tcol3"); - - // add 100 rows at the top, using pipes as separators - flex.ClipSeparators = "|;"; - for (int i = 0; i < 100; i++) - flex.AddItem("|col1|col2|col3", 0); - - // append 100 rows at the bottom, using an object array - object[] items = { "col1", "col2", "col3" }; - for (int i = 0; i < 100; i++) - flex.AddItem(items, flex.Rows.Count, flex.Cols.Fixed); - - // restore painting - flex.Redraw = redraw; - - - - - Adds a row to the grid and populates the new row with data. - - Array of objects that will be assigned to the new row. - A reference to the new row. - - - - Adds a row to the grid at a specified position and populates the new row with data. - - String containing the data for the new row. Items are separated by tab characters - by default. You can change the separator character using the property. - Position where the new row will be inserted. - A reference to the new row. - - - - Adds a row to the grid at a specified position and populates the new row with data. - - Array of objects that will be assigned to the new row. - Position where the new row will be inserted. - First column to populate with the items in the - array. This parameter is usually set to the index of the first scrollable column. - A reference to the new row. - - - - Removes the last row from the grid. - - - You can also add and remove rows using the collection. - The method is provided for consistency, since the grid - also has an method. - - - - - Removes a row at a specified position from the grid. - - Index of the row to be removed. - - - - Prints the grid, optionally showing a page setup or print preview dialog. - - The document name, which appears on the progress dialogs and on the print job windows. - Flags that select printing options. - True if the grid was printed, false if the user canceled the operation before printing started. - - Use the property to set up options such as page orientation - and margins, header and footer fonts, etc. - The method returns true if the user started the printing process. If the user clicks cancel while - the grid is printing, the method returns true (some pages may be printed anyway depending on the - printer settings). To detect canceled jobs, handle the event and check the - value of the e.Cancel parameter. - - - - - Prints the grid, optionally showing a page setup or print preview dialog. - - The document name, which appears on the progress dialogs and on the print job windows. - Flags that select printing options. - String that appears on the top of every page. - String that appears on the bottom of every page. - True if the grid was printed, false if the user canceled the operation. - - The header and footer strings may contain up to three tab-delimited sections, which are - aligned to the left, center, and right of the page. The strings may also contain placeholders - that are replaced with the current page number and total number of pages ("{0}" and "{1}"). - Use the property to set up options such as page orientation - and margins, header and footer fonts, etc. - - - - - Prints the grid, optionally showing a page setup or print preview dialog. - - The document name, which appears on the progress dialogs and on the print job windows. - True if the grid was printed, false if the user canceled the operation. - - Use the property to set up options such as page orientation - and margins, header and footer fonts, etc. - - - - - Saves the grid contents to a file. - - Name of the file to save, including the path. - File format to use. - Options to use when saving the file. - - to use when saving the file. - - Grids saved to CSV and other text files include data only (no formatting information is saved). - Grids saved to Excel files include data and formatting information. Images are not saved. - Grids can also be persisted to Xml format using the and methods. - - - - - Saves the grid contents to a file. - - Name of the file to save, including the path. - File format to use. - Options to use when saving the file. - - - - Saves the grid contents to a file. - - Name of the file to save, including the path. - File format to use. - - - - Loads the grid from a file. - - Name of the file to load, including the path. - File format to use. - Options to use when loading the file. - - to use when saving the file. - - This method loads grid from a file previously saved with the method. - Formats supported include comma-delimited text files (CSV format), tab-delimited - text files, and Microsoft Excel files (.XLS). - When loading text files, rows and columns are added to the grid if needed to - accommodate the file contents. Text files contain only data and no formatting information. - When loading Excel files, the grid retrieves the first worksheet from the specified - workbook file. The method allows you to specify which worksheet should be loaded. - You can use the - method allows you to retrieve a list of the worksheets stored in an XLS file. - The grid can save and load data and formatting information from XLS files. - Grids can also be persisted to Xml format using the and methods. - - - - - Loads the grid from a file. - - Name of the file to load, including the path. - File format to use. - Options to use when loading the file. - - - - Loads the grid from a file. - - Name of the file to load, including the path. - File format to use. - - - - Saves the grid contents to a Microsoft Excel (.XLS) file. - - Name of the file to save, including the path. - Name of the sheet to add to the Excel workbook. - Options to use when saving the file. - - to use when saving the file. - - If the specified file exists, the control will add or replace a single worksheet in it. - Existing sheets will be preserved if possible. - The worksheet to add or replace is identified by the parameter. - If the specified file is in use by another application (usually Excel), the method will fail. - This method does not require Microsoft Excel to be installed on the machine. - - - - - Saves the grid contents to a Microsoft Excel (.XLS) file. - - Name of the file to save, including the path. - Name of the sheet to add to the Excel workbook. - Options to use when saving the file. - - If the specified file exists, the control will add or replace a single worksheet in it. - Existing sheets will be preserved if possible. - The worksheet to add or replace is identified by the parameter. - If the specified file is in use by another application (usually Excel), the method will fail. - This method does not require Microsoft Excel to be installed on the machine. - - - - - Saves the grid contents to a Microsoft Excel (.XLS) file. - - Name of the file to save, including the path. - Name of the sheet to add to the Excel workbook. - - - - Saves the grid contents to a Microsoft Excel (.XLS) file. - - Name of the file to save, including the path. - - - - - - Saves the grid contents to a Microsoft Excel (.XLS) file. - - Name of the file to save, including the path. - - - - Loads the grid from a Microsoft Excel (.XLS) file. - - Name of the file to load, including the path. - Name of the worksheet to load. - Options to use when loading the file. - - Use the method to obtain a list of the worksheets - in an XLS file. - - - - - Loads the grid from a Microsoft Excel (.XLS) file. - - Name of the file to load, including the path. - Name of the worksheet to load. - - Use the method to obtain a list of the worksheets - in an XLS file. - - - - - Loads the grid from the first worksheet in a Microsoft Excel (.XLS) file. - - Name of the file to load, including the path. - Options to use when loading the file. - - - - Loads the grid from the first worksheet in a Microsoft Excel (.XLS) file. - - Name of the file to load, including the path. - - - - Gets a list with the names of the worksheets in a Microsoft Excel (.XLS) file. - - Name of the Excel file, including the path. - An array containing the names of the worksheets defined in the file. - - This method is used to obtain a list of sheet names that can later be used to load and - save specific sheets using the and methods. - - - The code below loads all sheets in an Excel workbook into a collection of grids in a - TabControl: - - // clear tabControl - tabControl.TabPages.Clear(); - - // load sheet names - string fileName = "c:\book1.xls"; - string[] sheets = _flexGrid.LoadExcelSheetNames(fileName); - - // load each sheet - foreach (string sheetName in sheets) - { - // create a new grid for this sheet - C1FlexGrid flex = new C1FlexGrid(); - flex.Dock = DockStyle.Fill; - - // load sheet into new grid - flex.LoadExcel(fileName, sheetName); - - // add grid to the tabControl - TabPage page = new TabPage(); - page.Controls.Add(flex); - page.Text = sheetName; - tabControl.TabPages.Add(page); - } - - - - - Gets a value that determines if a cell contains the grid cursor. - - Row index. - Column index. - True if the cell contains the cursor, false otherwise. - - - - Gets a value that determines if a cell belongs to a fixed row or column. - - Row index. - Column index. - True if the cell is fixed, false otherwise. - - - - Gets a value that determines if a cell is selected. - - Row index. - Column index. - True if the cell is selected, false otherwise. - - - - Gets a value that determines if a pair of cell coordinates are valid. - - Row index. - Column index. - True if the cell coordinates are valid, false otherwise. - - - - Gets a value that determines if a cell is part of the selection and should be highlighted. - - Row index. - Column index. - True if the cell should be highlighted, false otherwise. - - - - Gets a value that determines whether the cell contents are displayed as a checkbox. - - Row index. - Column index. - True if the cell contents should be displayed as a checkbox, false otherwise. - - Boolean values are displayed as check boxes unless one of the following conditions is true: - 1) The cell has an associated . In this case the values specified - in the DataMap are displayed instead of check boxes. - 2) The cell has a multi-part string (such as "yes;no"). In this case - the Format is used instead of check boxes. - 3) The cell belongs to a subtotal row and does not contain a Boolean value. - - - - - Saves the grid contents to an Xml document. - - Name of the file to save, including the path. - - The grid serializes all its contents into the Xml document, including the - data stored in the cells, row and column properties, styles, images, etc. - Objects of custom types stored in the grid are also serialized as long as - they have an associated that provides conversions to - and from string. - The method has several overloads that allow you to - save several grids into a single Xml document, along with other information stored - in the Xml document. - - - The code below saves a grid into an Xml file: - - // save a grid into am Xml file - flex.WriteXml(fileName); - - The code below saves two grids into an Xml file, then reads them back in reverse order: - - // prepare XmlTextWriter - XmlTextWriter w = new XmlTextWriter(fileName, new UTF8Encoding(false)); - w.Formatting = Formatting.Indented; - w.WriteStartDocument(); - w.WriteStartElement("Grids"); - - // save first grid - w.WriteStartElement(c1FlexGrid1.Name); - c1FlexGrid1.WriteXml(w); - w.WriteEndElement(); - - // save second grid - w.WriteStartElement(c1FlexGrid2.Name); - c1FlexGrid2.WriteXml(w); - w.WriteEndElement(); - - // close document - w.WriteEndElement(); - w.Close(); - - // load document from file - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - XmlNode n = doc.SelectSingleNode("Grids"); - - // load grids in reverse order - c1FlexGrid2.ReadXml(n.ChildNodes[0]); - c1FlexGrid1.ReadXml(n.ChildNodes[1]); - - - - - Saves the grid contents to an Xml document. - - The where the document is saved. - - - - Saves the grid contents to an Xml document. - - The where the document is saved. - - - - Saves the grid contents to an Xml document. - - The where the document is saved. - - - - Loads the grid from an Xml document. - - Name of the file to load, including the path. - - - - Loads the grid from an Xml document. - - - object to use for loading the grid. - - - - Loads the grid from an Xml document. - - - object to use for loading the grid. - - - - Loads the grid from an Xml document. - - - object to use for loading the grid. - - - - Loads the grid from an Xml document. - - - object to use for loading the grid. - - - - Loads the grid from an Xml document. - - - object to use for loading the grid. - - - - Raises the event. - - Object raising the event. - A that contains event data. - - - - Builds a rectangle that defines the scrollable portion of the control for a given pair of scroll offsets. - - Horizontal scroll offset. - Vertical scroll offset. - A that defines the scrollable portion of the control. - - This method is for internal use. It allows derived classes to customize the control scrolling behavior. - - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Paints the control background. - - A that contains information about the control to paint. - - - - Called when the control receives a WM_THEMECHANGED message. - - - The WM_THEMECHANGED message is broadcast to every window following a - theme change event. Examples of theme change events are the activation of a - theme, the deactivation of a theme, or a transition from one theme to another. - - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Calculates the new position of a scrollbar in response to a user command. - - Scroll command (SB_LINEUP, etc). - True for the vertical scrollbar, false for the horizontal scrollbar. - Current scrollbar position. - Scrollbar thumb position. - The new position for the scrollbar. - - Derived classes may override this method to customize the scrolling behavior. - - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - - that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Moves or extends the current selection. - - - value that specifies the type of cursor movement. - Whether to extend the current selection. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Moves or extends the selection from a given cell. - - - value that specifies the type of cursor movement. - Whether to extend the current selection. - Row index for the initial selection. - Column index for the initial selection. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Gets a value that indicates what types of child nodes a row has. - - - This method is for internal use. It allows inherited classes to customize outline trees. - - Row index. - Column index. - Outline level. - Zero if the row has no children, 1 if it has regular data rows only, - 2 if it has child nodes, and 3 if it has data and child nodes. - - - - - Gets a rectangle representing the coordinates of a cell, row, or column. - - - This method is for internal use. It allows inherited classes to customize the way cell geometry - is calculated. - - Row index (or -1 to get column bounds). - Column index (or -1 to get row bounds). - Whether the rectangle should be horizontally clipped to the grid's client area. - Whether the rectangle should be vertically clipped to the grid's client area. - A containing the display area for the row, column, or cell, - in client coordinates and accounting for scroll position. - - - - Gets a rectangle representing the coordinates of a cell, row, or column. - - - This method is for internal use. It allows inherited classes to customize the way cell geometry - is calculated. - - Row index (or -1 to get column bounds). - Column index (or -1 to get row bounds). - A containing the display area for the row, column, or cell, - in client coordinates and accounting for scroll position. - - - - Gets a rectangle representing the coordinates of a cell editor. - - - This method is for internal use. It allows inherited classes to customize the way cell geometry - is calculated. - - Row index. - Column index. - Rectangle used to position the cell editor. - - - - Draws a grid row. - - A that contains a - object where the row will be drawn. - Index of the row to draw. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Draws a grid cell. - - A that contains a - object where the cell will be drawn. - Index of the cell's row. - Index of the cell's column. - The index of the last column painted (may be greater than - if columns are merged). - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Gets the state for a Windows Xp theme while the mouse moves over a cell. - - - This method is for internal use. It allows inherited classes to customize the - hot-tracking behavior. - - Row under the mouse. - Column under the mouse. - An integer representing the item state (2 for hot-tracking, 1 for normal). - - - - Gets a cell glyph to show in a cell. - - - This method is for internal use. It allows inherited classes to customize the display of the sorting glyphs. - - Row index. - Column index. - Cell rectangle - Glyph to display above the cell content. - Glyphs to display on the left of the cell. - Glyphs to display on the right of the cell. - True if any glyphs were assigned to the cell, false otherwise. - - - - Gets the state of the checkbox in a grid cell. - - Row index. - Column index. - One of the values in the enumeration. - - By default, the grid displays values in Boolean columns as check boxes (the column's - data type determined by the property). If you don't want Boolean - values displayed as check boxes, set the column's property to a - string containing the values that should be displayed for True and False values, separated by - a semi-colon. For example: - - flex.Cols["CheckBoxes"].DataType = typeof(bool); - flex.Cols["yesNo"].DataType = typeof(bool); - flex.Cols["yesNo"].Format := "Yes;No"; - - In unbound mode, you can use the and - methods to add check boxes to any cells. The check boxes will be displayed along with any text in - the cell, and you can set their position using the column's property. - There are two types of check boxes: Boolean and tri-state. Boolean check boxes toggle between - the and states. Tri-state check - boxes cycle through the settings , , - and . - For example, the code below creates a Boolean checkbox in cell (3,3) and a tri-state checkbox - in cell (4,3): - - flex.SetCellCheck(3, 3, CheckEnum.Unchecked) // Boolean; - flex.SetCellCheck(4, 3, CheckEnum.TSUnchecked) // tri-state; - - - - - - Sets the state of the checkbox in a grid cell. - - Row index. - Column index. - - value to assign to the cell. - - For details and examples, see the method. - - - - - Applies a value to a cell or cell range. - - - This method is for internal use. It allows inherited classes to customize the way checkbox - data is applied to the cells when cells are edited. - - Row index. - Column index. - Value to apply to the cell. - - - - Adjusts the width of a column range to fit the data in a cell range. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - Amount of extra space, in pixels, to add to the column widths. - Flags that control auto-sizing options. - - By default, the method measures every cell in each column, - taking into account the cell contents and style. - If the grid has a large number of rows, you can improve performance by using the - and parameters to specify a row range. - You can include only a few hundred rows in the process, and add some extra spacing for safety. - - - - - Adjusts the width of all columns to fit the data. - - - - - Adjusts the width of columns in a range to fit the data. - - Left column in the range. - Right column in the range. - Amount of extra space, in pixels, to add to the column widths. - - - - Adjusts the width of all columns fit the data. - - Amount of extra space, in pixels, to add to the column widths. - - - - Adjusts the width of a column to fit the data. - - Column index. - - This method measures every cell in the column, taking into account the cell contents and style. - If the grid has a large number of rows, consider using the - method instead, because it allows you to specify a smaller set of rows and columns to measure. - - - - - Adjusts the width of a column to fit the data. - - Column index. - Amount of extra space, in pixels, to add to the column widths. - - This method measures every cell in the column, taking into account the cell contents and style. - If the grid has a large number of rows, consider using the - method instead, because it allows you to specify a smaller set of rows and columns to measure. - - - - - Adjusts the height of a row range to fit the data in a cell range. - - Top row in the range. - Left column in the range. - Bottom row in the range. - Right column in the range. - Amount of extra space, in pixels, to add to the column widths. - Flags that control auto-sizing options. - - - - Adjusts the height of all rows to fit the data. - - - - - Adjusts the height of a row to fit the data. - - Row index. - - - - Automatically size grid columns to fit the largest entry. - - - object used to measure the cell contents. - Index of the first row to be measured. - Index of the first column to be measured. - Index of the last row to be measured. - Index of the first column to be measured. - Extra space, in twips, to add to the largest entry. - - value that specifies auto-sizing behavior. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Automatically size grid columns to fit the largest entry. - - - object used to measure the cell contents. - Index of the first row to be measured. - Index of the first column to be measured. - Index of the last row to be measured. - Index of the first column to be measured. - Extra space, in twips, to add to the largest entry. - - value that specifies auto-sizing behavior. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Determines whether the specified key is a regular input key or a special - key that requires preprocessing. - - One of the values. - True if the specified key is a regular input key, False otherwise. - - - - Determines if a character is an input character that the control recognizes. - - The character to test. - True if the character should be sent directly to the control and not preprocessed, False otherwise. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Called when the grid contents scroll. - - - value that specifies the scroll direction. - - This method is for internal use. It allows inherited classes to customize the grid scrolling behavior. - - - - - Called when the grid contents scroll vertically, to update the value of the scroll tip. - - New value for the vertical scroll bar. - - This method processes the new scroll position and calls . - - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Raises the event. - - A that contains event data. - - - - Gets a value that determines whether the - property is set explicitly and should be persisted. - - True if the property was explicitly set by the user. - - - - Resets the value of the ambient property. - - - - - Method invoked when the property changes. - - - - - Copies the current selection to the clipboard. - - - - - Cuts the content of the current selection to the clipboard. - - - This command copies the current selection to the clipboard, then deletes - the editable content within the selection. - - - - - Pastes the content of the clipboard onto the current selection. - - - - - Applies all column filters to the data on the grid. - - - - - Edits the filter associated with a given column. - - Index of the column whose filter should be edited. - - - - Edits the filter associated with a given column. - - - whose filter should be edited. - - - - Clears the filter associated with a given column. - - Index of the column whose filter should be cleared. - - - - Clears the filter associated with a given column. - - - whose filter should be cleared. - - - - Clears all column filters. - - - - - Occurs when the filter localizes a string in the user interface. - - - The control automatically localizes the - column filter based on the system's current culture and in the setting - of the property. - This event allows you to customize the filter strings or to - implement localization to languages that are not supported by the grid's - built-in localization mechanism. - To modify the content of any of the filter's UI elements, handle - this event and set the e.Value parameter to the text you would - like to display. - - - The example below shows how you can change the strings in the filter - UI based on the string value and on the name of the controls being - localized: - - void Initialize() - { - // enable filtering - _flex.AllowFiltering = true; - - // set GetLocalizedString handler - _flex.GetLocalizedString += _flex_GetLocalizedString; - } - void _flex_GetLocalizedString(object sender, C1.Win.C1FlexGrid.GetLocalizedStringEventArgs e) - { - // customize item based on text value - if (e.Value == "(Select All)") - { - e.Value = "(Select Everything)"; - } - - // customize item based on component name - switch (e.ComponentName) - { - case "_btnApplyFilter": - e.Value = "OK"; - break; - case "_btnClearFilter": - e.Value = "Reset"; - break; - case "_btnCancel": - e.Value = "Close"; - break; - } - } - - - - - Gets the default size of the control. - - - - - Fires when the grid or its contents change. - - - This is a general event that fires before more specific events. - For example, if the user drags a column with the mouse, the control fires the - , , and - events. - The GridChanged event allows you to create a centralized handler - for all types of grid events. It does not provide detailed arguments for - every event, nor the option of canceling user actions. - - - - - Fires before the event is handled by the grid. - - - This event fires before the grid processes the event, and - gives the program a chance to customize the behavior of the control and optionally - cancel the default handling of the mouse. - - - The code below handles the event to detect clicks - on row headers and provide OLE drag and drop functionality. - - void _flex_BeforeMouseDown(object sender, C1.Win.C1FlexGrid.BeforeMouseDownEventArgs e) - { - // start dragging when the user clicks the row headers - HitTestInfo hti = _flex.HitTest(e.X, e.Y); - if (hti.Type == HitTestTypeEnum.RowHeader) - { - e.Cancel = true; // cancel default handling - HandleRowDragDrop(hti.Row); // handle row drag/drop - } - } - - - - - Fires before the DoubleClick event is handled by the grid. - - - This event fires before the grid processes the event, and - gives the program a chance to customize the behavior of the control and optionally - cancel the default handling of the mouse. - - - The code below handles the event to detect double-clicks - on cells in a specific column and provide a custom edit dialog instead of using the - built-in editor. - - void _flex_BeforeDoubleClick(object sender, C1.Win.C1FlexGrid.BeforeMouseDownEventArgs e) - { - // detect double-clicks on column "Customer" - HitTestInfo hti = _flex.HitTest(e.X, e.Y); - if (hti.Type == HitTestTypeEnum.Cell && _flex[hti.Column].Name == "Customer") - { - e.Cancel = true; // cancel default handling - ShowCustomEditDialog(hti.Row, hti.Column); // handle row drag/drop - } - } - - - - - Fires when the user starts dragging a row. - - - This event only fires when the user drags a row using the mouse. - It does not fire when a row is moved using the method. - You can prevent specific rows from being dragged by the user by setting their - property to false. - - - - - Fires as the user drags a row to a new position. - - - This event only fires when the user drags a row using the mouse. - It does not fire when a row is moved using the method. - You can prevent specific rows from being dragged by the user by setting their - property to false. - - - - - Fires after the user finishes dragging a row. - - - This event only fires when the user drags a row using the mouse. - It does not fire when a row is moved using the method. - You can prevent specific rows from being dragged by the user by setting their - property to false. - - - - - Fires when the user starts dragging a column. - - - This event only fires when the user drags a column using the mouse. - It is does not fire when a column is moved using the method. - You can prevent specific columns from being dragged by the user by setting their - property to false. - - - - - Fires as the user drags a column to a new position. - - - This event only fires when the user drags a column using the mouse. - It does not fire when a row is moved using the method. - You can prevent specific columns from being dragged by the user by setting their - property to false. - - - - - Fires after the user finishes dragging a column. - - - This event only fires when the user drags a column using the mouse. - It does not fire when a column is moved using the method. - You can prevent specific columns from being dragged by the user by setting their - property to false. - - - - - Fires before a column is sorted by a click on a column header. - - - This event only fires if the sorting was caused by a click on a column header. It does not fire - before sorting with the method. - This event is useful when you want to prevent the user from sorting certain columns or to specify - custom sorting orders for specific columns. You may do so by modifying the value of the - parameter. - - - - - Fires after a column is sorted by a click on a column header. - - - This event only fires if the sorting was caused by a click on a column header cell (see the - property). It does not fire after sorting with the method. - This event is useful if you want to update user interface elements to reflect the new sorting. - To prevent certain columns from being sorted, or to alter their default sorting order, use the - or handle the event. - - - - - Fires before a row is automatically resized by a double-click on a row header. - - - - - Fires before a column is automatically resized by a double-click on a column header. - - - - - Fires before a row is resized by dragging the row header. - - - Use the grid's property to determine whether users - are allowed to resize rows, columns, or both. - and - objects also have an property - that allows you to prevent specific rows and columns from being resized. - - - - Fires after a row is resized by dragging the row header. - - - This event is fired after a row is resized by the user, by dragging the edge - of the row header cell with the mouse (see the property). - It is not fired when a row is resized by assigning a new value to the - property. - - - - - Fires before a column is resized by dragging the column header. - - - - - Fires after a column is resized by dragging the column header. - - - This event is fired after a column is resized by the user, by dragging the edge - of the column header cell with the mouse (see the property). - It is not fired when a column is resized by assigning a new value to the - property. - - - - - Fires before rows are frozen by dragging the frozen row divider. - - - Use the property to enable or disable row and column freezing. - - - - - Fires after rows are frozen by dragging the frozen row divider. - - - Use the property to enable or disable row and column freezing. - - - - - Fires before columns are frozen by dragging the frozen column divider. - - - Use the property to enable or disable row and column freezing. - - - - - Fires after columns are frozen by dragging the frozen column divider. - - - Use the property to enable or disable row and column freezing. - - - - - Fires when the mouse enters a cell. - - - Many applications track mouse movement and react to the cell that is currently - under the mouse. This can be done using the event, but that - is not very efficient since the event fires many times while the mouse is over the - same cell. - The MouseEnterCell event allows you to implement cell tracking - efficiently, since it only fires once until the mouse leaves the cell. - - - The code below tracks mouse movement and highlights the cell under the mouse: - - void Form1_Load(object sender, EventArgs e) - { - // create style for tracking cell under the mouse - CellStyle cs = _flex.Styles.Add("track"); - cs.BackColor = Color.Gold; - } - void _flex_MouseEnterCell(object sender, RowColEventArgs e) - { - // apply tracking style when mouse enters the cell - _flex.SetCellStyle(e.Row, e.Col, _flex.Styles["track"]); - } - void _flex_MouseLeaveCell(object sender, RowColEventArgs e) - { - // remove tracking style when mouse leaves the cell - _flex.SetCellStyle(e.Row, e.Col, (CellStyle)null); - } - - - - - Fires when the mouse leaves a cell. - - - - - Fires before the grid scrolls. - - - - - Fires after the grid scrolls. - - - This event allows you to prevent the user from scrolling the grid while an operation - is being performed on the current selection. - - - The code below prevents the grid from scrolling while the grid is in edit mode. - - void _flex_BeforeScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e) - { - if (_flex.Editor != null) - e.Cancel = true; - } - - - - - Fires before the vertical ScrollTip is displayed. - - - This event fires only if the ShowScrollTips flag is set in the property. - It allows you to specify the text that will be displayed in the scroll tip. - - - The code below uses the event to display a scroll tip showing the value of the - first cell that will become visible when the user stops scrolling. - - _flex.ScrollOptions = ScrollFlags.DelayedScroll | ScrollFlags.ShowScrollTips; - void _flex_ShowScrollTip(object sender, ToolTipEventArgs e) - { - e.ToolTipText = string.Format("row {0}", e.Row); - } - - - - - Fires before the current cell changes ( and properties). - - - This event fires before the or properties change, either as a - result of user actions or through code. It allows you to prevent the selection of certain cells, - thus creating "protected" ranges on a grid. - - fires only when the or - properties are about to change. To detect extended selections, you also need to handle the - event. - - - - - Fires after the current cell changes ( and properties). - - - This event fires before the or properties change, either as a - result of user actions (mouse or keyboard) or through code. It allows you to display additional information - about the currently selected row, column, or cell. - To perform validation or prevent certain cells from being selected, use the - and events instead. - - - - - Fires before the selection changes (, , , properties). - - - This event fires before the and properties change, either as a result - of user actions or through code. It allows you to prevent the selection of certain cells, thus creating - "protected" ranges on a grid. - To prevent the selection of a range, you also need to handle the event, which - is fired before the Row and Col properties change. - - - - - Fires after the selection changes (, , , - properties). - - - This event is fired after the or properties change, either as - a result of user actions (mouse or keyboard) or through code. - This event is useful if you want to display additional information about the current selection. To - perform validation or prevent certain cells from being selected, use the and - events instead. - - - - - Fires after the current cell changes ( and properties). - - - - fires when the or properties change, either - as a result of user actions (mouse or keyboard) or through code. - This event does not fire when the selection changes ( or properties) - but the active cell (, ) remains the same. In this case, the - event fires instead. - - - - - Fires after the selection changes (, , , - properties). - - - - fires after the , , , - or properties change, either as a result of user actions (mouse or keyboard) - or through code. - This event also fires while the user extends the selection with the mouse. - - - - - Fires before the current cell changes ( and properties). - - - This event fires before the cursor leaves the current cell, either as a result of user actions - (mouse or keyboard), or through code. - - - - - Fires after the current cell changes ( and properties). - - - This event fires after the cursor enters a cell, either as a result of user actions (mouse or keyboard), - or through code. - - - - - Fires before the grid enters edit mode, and also when the cell that has the - focus needs to be painted. - - - This event doesn't fire only when the grid is about to enter edit mode. - It also fires while painting cells, in order to support drawing the editor's - drop-down buttons. - The event fires only when the grid is about to enter - edit mode. - - - - - Fires before the control enters edit mode. - - - This event fires before the control enters edit mode. It allows you to prevent - editing by setting the Cancel parameter to true, or to supply a list of choices - for a combo list using the property, or an edit mask using the - property. - If the choices or the mask are the same for a whole column, you may set them more - efficiently using the and - properties for the object. In this case, there's no need to handle - the StartEdit event at all. - The grid also exposes a event. The difference between - the two is that BeforeEdit fires when the grid paints the cell that has the focus - (so it can determine whether the cell has a drop-down button). BeforeEdit fires - more often than StartEdit, and does not always indicate that the grid is actually - entering edit mode. - - - - - Fires after a cell has been edited. - - - This event does not fire if the user cancels the edits by pressing the ESC key. - The event fires whenever the grid leaves edit mode, - even if the edits were canceled. - - - - - Fires after the control leaves edit mode. - - - - - Fires after the user clicks a cell button. - - - This event fires when the user clicks an edit button on a cell. Typically, - this event is used to pop up a custom editor for the cell (for example, dialogs for - selecting colors, dates, files, pictures, and so on). - By default, cell edit buttons are displayed on the right side of a cell, - with an ellipsis caption ("..."). They are similar to the buttons displayed in the - PropertyGrid control, next to Image properties. You may customize - the button's appearance by assigning a picture to the property. - To create an edit button on a cell, you must set the - property to true and set the property (on the grid or on specific - columns) to an ellipsis ("..."). - - - - - Fires after a cell editor has been initialized by the grid, to allow additional custom initialization. - - - This event can be used to customize the behavior of the cell editor by setting properties - on the editor control. - For example, the code below checks to see if the editor being used is a TextBox, and then - sets the editor's CharacterCasing and MaxLength properties. - - void _flex_SetupEditor(object sender, RowColEventArgs e) - { - TextBox tb = _flex.Editor as TextBox; - if (tb != null) - { - if (_flex.Cols[e.Col].Name == "ID") - tb.MaxLength = 4; - else - tb.MaxLength = 32000; - } - } - - - - - - Fires before the control exits cell edit mode, while the editor is still active. - - - When this event fires, the contents of the editor have not been applied to the - grid. You can validate the editor contents and cancel the edits if necessary. - To validate the editor contents, check the value contained in the Editor.Text - property. If the value is invalid for the cell, set the Cancel parameter to true - and the grid will remain in edit mode until the user types a valid entry. - - For example, the code below checks to make sure the value entered is an integer - between 0 and 100: - - void _flex_ValidateEdit(object sender, ValidateEditEventArgs e) - { - if (_flex.Cols[e.Col].Name = "Score") - { - try - { - int value = int.Parse(_flex.Editor.Text); - if (value >= 0 && value <= 50) - return; // accept edits - } - catch {} - - // error or invalid range, refuse edits - e.Cancel = true; - } - } - - - - - - Fires after a checkbox in a cell is checked or unchecked by the user. - - - - - Fires in edit mode, after the contents of the editor change. - - - This event fires while the grid is in edit mode and the contents of the editor change. - This may be caused by the user typing into the editor or selecting a new item in a - drop down list. - When this event fires, the new editor content has not been applied to the grid cell yet. - You may check the new content using the property. - - - The code below shows a message when the text being edited contains more than 10 characters: - - void _flex_ChangeEdit(object sender, EventArgs e) - { - // get text in editor - string text = _flex.Editor.Text; - - // show message if it's too long - statusStrip1.Text = text.Length > 10 - ? "This text seems too long..." - : "This text looks OK..."; - } - - - - - Fires in edit mode, when the dropdown portion of an editor opens. - - - - - Fires in edit mode, when the dropdown portion of an editor closes. - - - - - Fires in edit mode, when the user presses a key. - - - The KeyDownEdit event corresponds to the event, - except it fires when the grid is in edit mode (in this case, the control that received the - key is the editor, not the grid itself). - The editor has three modes: text, drop-down combo, or drop-down list. The mode used is - determined by the properties in the grid and column objects. - While editing with the text editor or with a drop-down combo, you may set or retrieve - the contents of the editor by retrieving the editor control with the - property and casting it to the proper type. - - - - - Fires in edit mode, when the user releases a key. - - - The event corresponds to the - event, except it fires when the grid is in edit mode (in this case, the control that - receives the key is the editor, not the grid itself). - The editor has three modes: text, drop-down combo, or drop-down list. The mode - used is determined by the properties in the grid and column objects. - While editing with the text editor or with a drop-down combo, you may set or retrieve - the contents of the editor by retrieving the editor control with the - property and casting it to the proper type. - - - - - Fires in edit mode, when the user presses a character key. - - - The event corresponds to the - event, except it fires when the - grid is in edit mode (in this case, the control that receives the - key is the editor, not the grid itself). - The editor has three modes: text, drop-down combo, or drop-down list. - The mode used is determined by the properties in the - grid and column objects. - While editing with the text editor or with a drop-down combo, you may set - or retrieve the contents of the editor by retrieving the editor control with the - property and casting it to the proper type. - - - - - Fires after the contents of a cell have changed. - - - This event allows you to perform processing whenever the contents of a cell - change, regardless of how they were changed (for example, a user typed data into - the cell, data got loaded from a database, or data was assigned to the grid through code). - This event can be used to provide conditional formatting and dynamic data summaries, - which get updated automatically whenever the data changes. - This event fires in bound and unbound modes. In some bound more scenarios, the - data source object may inform the grid that some data in the current row changed, without - specifying which column changed. In this case, the Col parameter will be set to -1. - Event handlers should be prepared to handle this situation without throwing exceptions. - - - - - Fires after any data source change notifications. - - - When the grid is used in bound mode, any changes to the data source cause the - grid to fire the event. This event is the ideal place - to put code that updates the grid with data-dependent elements such as subtotals and - outline trees. - - Note: The delegate is defined in - the System.ComponentModel namespace. - - - - - Fires after the data source reports an error condition. - - - - - Fires when the grid needs to retrieve data for an unbound cell. - - - This event fires in bound mode when the grid contains unbound columns. - Unbound columns are columns that have the Name property set to values - that do not map to columns in the data source. The information in unbound columns - must be provided by the application, by setting the Value property of the - parameter. - The class supports calculated columns that in many - situations can be used instead of unbound columns. - - - - - Fires when the grid needs to store data in an unbound cell. - - - This event fires in bound mode when the grid contains unbound columns. - Unbound columns are columns that have the Name property set to values - that do not map to columns in the data source. The information in unbound columns - must be provided by the application using the event. - In most cases, unbound columns are read-only, and you don't need to handle this event. - However, if a value is assigned to an unbound cell, either through editing or programmatically, - the grid fires this event to allow the application to store the value using whatever mechanism - is appropriate. - - - - - Fires after a data-binding operation has finished. - - - - - Fires when the value of the property changes. - - - - - Fires when the value of the property changes. - - - - - Fires before a node row is collapsed or expanded. - - - - - Fires after a node row is collapsed or expanded. - - - The and events - fire before and after node rows are expanded or collapsed. You can determine - whether the node is being collapsed or expanded by checking the value of the - node's its property. - These events allow you to populate outlines on demand, so you only need - to create the rows that will actually be shown to the user. For example, if - you are using the grid to display a directory tree, it would take a long time - to read each directory on the disk in order to populate the tree. - - - - - Fires before the grid draws a cell, when the property is set to . - - - The OwnerDrawCell event only fires when the property is - set to . - You can use this event to customize the appearance of any cell in the grid. - The event allows three main types of customization: - - - - - - Change the value of the Text and Image parameters to modify the values displayed - by the grid. You can use this type of customization to replace password strings with asterisks, - for example. - - - - - - Change the Style property to display the cell using a different style than the one - selected by the grid by default. You can use this type of customization to provide conditional - formatting, for example. - - - - - - Use the Graphics and Bounds parameters and draw the cell yourself. When drawing - cells this way, you may call the member to force - the grid to draw specific parts of the cell, while your code draws other parts. For example, - you could paint a custom background and then call DrawCell to have the grid paint the cell - border and contents. - - - - The OwnerDrawCell event also fires when the grid auto sizes rows or columns (see the - and methods). This is done because the - grid needs to measure the cell using the same text, image, and style parameters that are used to - render it. In these cases, the Measuring parameter is set to true and the Bounds - rectangle is empty. - - - - - Fires while the control is being printed to provide control over page breaks. - - - This event is fired while the control is being printed with the - method to provide control over page breaks. - Set the Cancel parameter to true to indicate that the given Row should - not be printed at the top of a page. In this case, the control will move the break point up - and fire the event again until it finds a valid break point. Note that you can only prevent - page breaks, not force them. - - - - - Fires before the grid starts printing. - - - - - Fires after the grid finishes printing. - - - This event is typically used to update the user interface and provide - feedback while printing the grid. - Use the method to print the grid and specify the document - name, common printing options, headers and footers. - Use the property to specify less common printing - options such as header and footer fonts, page margins, orientation, and so on. - - - - - Fires after the grid finishes printing a page. - - - This event is typically used to provide feedback while printing the grid, - and to offer the user a cancel button that can be used to stop the printing process. - You can also use this event to add custom elements to the printed pages. - Use the method to print the grid and specify the document name, - common printing options, headers and footers. - Use the property to specify less common printing options - such as header and footer fonts, page margins, orientation, and so on. - - - - - Fires before the grid starts an automatic OLE drag operation. - - - - - Fires before a new row is added by the user. - - - This event only fires when is set to true and - the user creates a new empty row by moving the cursor into the last row on the grid. - It does not fire when a new row is added to the grid programmatically or when a - row is added to the grid's data source. - You can use this event to cancel the creation of new rows by setting the - Cancel parameter to true. In this case, the cursor does not move into - the new row. - - - - - Fires after a new row is added by the user. - - - This event only fires when property is set to true - and the user creates a new empty row by moving the cursor into the last row on the - grid. - It does not fire when a new row is added to the grid programmatically or - through the grid's data source. - You can use this event to initialize the new rows. - When a new row is created this way, it is initially empty, and the user may - cancel the row by moving the cursor out of the new row before making any edits. - In this case, the grid fires the event and the new - (empty) row is removed. - - - - - Fires when the cursor leaves the new row without making any changes to it. - - - For details, see the event. - - - - - Fires before a row is deleted by the user. - - - This event only fires when is set to true and the - user deletes one or more rows by selecting them and pressing the DEL key. - It does not fire when rows are removed from the grid programmatically or through - the grid's data source. - You can use this event to cancel the deletion of the rows by setting the - Cancel parameter to true. - - - - - Fires after one or more rows are deleted by the user. - - - This event only fires when property is set to True - and the user deletes one or more rows by pressing the DEL key. It does not fire - when rows are removed from the grid programmatically or through the grid's data source. - When this event fires, the rows have already been removed from the grid, so the - Row parameter is always set to E. - - - - - Fires when is set to true and the control needs error information for a cell. - - - - - Fires when is set to true and the control needs error information for a row. - - - - - Fires before each subtotal row is added to the grid. - - - Subtotal rows are added when the method is invoked. - The event handler may prevent the grid from adding a particular row, or it - may customize the caption, style, and aggregate value used in the new subtotal row. - - - - - Fires after each subtotal row has been added to the grid. - - - Subtotal rows are added when the method is invoked. - - - - - Fires before the column filters are applied to the grid. - - - - - Fires after the column filters have been applied to the grid. - - - - - Gets or sets the data in a grid cell. - - - This is one of the indexers you can use to get or set the data stored in grid cells. - You can index cells using the row and column indices or using the row - index and column name. - Using integer indices is more efficient, because the grid doesn't have to - look up the column. Using column names is more flexible, because references - remain valid even if the user moves columns to a new position. - When assigning a value to a cell, the grid tries to convert it into the type - specified for the column (see the property). If the - grid can't convert the value, it fires the event and the - cell retains its original value. - - - The example below creates a column and assigns it a name, then sets the value of - a cell using the column index and retrieves the value using the column name: - - // create a column, assign it a name and get the new index - Column myCol = flex.Cols.Add(); - myCol.Name = "address"; - myCol.DataType = typeof(string); - int colIndex = myCol.Index; - - // assign a value to a cell using cell coordinates: - flex[1, colIndex] = "555, Broadway"; - - // get the value using the column name - string address = (string)flex[1, "address"]; - MessageBox.Show("The address is " + address); - - - - - Gets or sets the data in a grid cell. - - - This is one of the indexers you can use to get or set the data stored in grid cells. - You can index cells using the row and column indices or using the row index and column name. - - - - - Gets or sets whether the user is allowed to resize rows and columns with the mouse. - - - To resize rows or columns, the mouse must be over the fixed area of the grid, and - close to a border between rows or columns. The mouse pointer will change into a sizing - pointer and the user can drag the row or column to change the row height or column width. - If a group of columns is selected (from first to last row) and the user resizes one - of them, all selected columns are resized. The same applies to rows. - If column sizing is allowed, users may double-click the resizing area to resize a - column so it will automatically fit the longest entry. - Rows with zero height and columns with zero width can't be resized by the user. - If you want to make them very small but still resizable, set their height or width to - one pixel, not to zero. - The and events fire - before resizing starts, and may be used to prevent resizing of specific rows and columns. - The and events fire after - resizing, and may be used to validate the user's action and to update the display. - - - - - Gets or sets whether the user is allowed to freeze rows and columns with the mouse. - - - Frozen cells remain on the screen when the user scrolls the control - (like fixed cells), but they are selectable and editable (like scrollable cells). - They are painted using the style. - To freeze rows or columns at runtime, the mouse must be near the edge of the - frozen area. The mouse pointer will then change into a 'freeze' pointer (looks like - a padlock) and the user can drag the frozen boundary to a new row or column. - - - - - Gets or sets whether the user is allowed to drag rows and columns with the mouse. - - - Row dragging may not work in bound mode. This is because some data sources - do not allow absolute positioning of rows. - ADO.NET DataTable object in particular do not support this. - Column dragging is supported for any data source, and row dragging is always - supported in unbound mode. - You can prevent specific rows and columns from being dragged by setting - their property to false. - - - - - Gets or sets when to highlight selected cells. - - - You can customize the appearance of highlighted cells by modifying the - property. - - - - - Gets or sets the type of focus rectangle to display. - - - If the focus rectangle is drawn, then the current cell is painted using - the style, which by default looks like a regular - scrollable cell (as in most spreadsheets and grids). - If the focus rectangle is hidden (using the setting), - the current cell is painted using the style. - - - - - Gets or sets whether the user is allowed to edit grid contents. - - - If you set to false, editing is disabled for the - entire grid. - To enable editing on some rows and columns, set to true - for the grid and set the or - properties to false for the rows and columns that should not be editable. - You can also disable editing of specific cells by handling the - event and setting the Cancel event parameter to true. - - - - - Gets or sets when to display combo buttons in cells. - - - By default, the grid will show editing buttons in cells only when they - have the focus. This is the same behavior used by the - control. - If you set to , - the grid will display buttons on any cells that have associated lists, even if they - don't have the focus. - For details on how to associate lists with cells, see the , - , and properties. - - - - - Gets or sets whether the grid displays a record selector image on the first fixed column. - - - - The record selector is a small triangle similar to the one used in Access and most data grids. - - - - - - Gets or sets whether the grid should display sorting glyphs (a triangle) on the headers of sorted columns. - - - - - Gets or sets a value that determines the position of the sort glyphs within column header cells. - - - - - Gets or sets whether the grid should display error information in cells and rows. - - - Setting this property to true causes the grid to display error information in cells and - rows. Error information is displayed as error icons in the cells or row headers. Moving the - mouse over the error icons show tooltips containing an error description. - The error information may be supplied directly by data sources that implement the - interface (for example, the DataTable class implements this - interface). - If the grid is bound to a data source that doesn't support , - you can provide error information using the and - events. - - - - - Gets or sets whether the grid should display labels over cells whose contents are partially hidden. - - - - - Gets or sets whether the user is allowed to sort columns using the mouse. - - - When the grid is used in bound mode, the sorting is performed by the - object. If the data source object does not support sorting, - this property has no effect. - In unbound mode, you can also sort data using the method. - - - - - Gets or sets whether the last column should be extended to fill the control. - - - This property only affects painting. It does not modify the - property of the last column. - - - - - Gets or sets the row that contains the cursor. - - - Use the and properties to make a cell current or to find - out which row or column contains the current cell. Columns and rows are - numbered from zero, beginning at the top for rows and at the left for columns. - The property may be set to -1 to hide the selection, to a value - between zero and Rows.Fixed-1 to select a cell in a fixed row, or to a value between - Rows.Fixed and Rows.Count-1 to select a cell in a scrollable row. - Setting the Row and Col properties automatically collapses the selection to a - single cell, resetting the and properties. - To specify a block selection, you must set Row and Col, then RowSel and ColSel. Alternatively, - you can use the method to select an arbitrary range with a single statement. - Setting the Row and Col properties does not ensure that the current cell is visible. - To do that, use the method. - - - - - Gets or sets the column that contains the cursor. - - - Use the and properties to make a cell current or to find - out which row or column contains the current cell. Columns and rows are - numbered from zero, beginning at the top for rows and at the left for columns. - The property may be set to -1 to hide the selection, to a value - between zero and Cols.Fixed-1 to select a cell in a fixed column, or to a value between - Cols.Fixed and Cols.Count-1 to select a cell in a scrollable column. - Setting the Row and Col properties automatically collapses the selection to a - single cell, resetting the and properties. - To specify a block selection, you must set Row and Col, then RowSel and ColSel. Alternatively, - you can use the method to select an arbitrary range with a single statement. - Setting the Row and Col properties does not ensure that the current cell is visible. - To do that, use the method. - - - - - Gets or sets the last row in the current selection. - - - Use the and properties to modify a - selection or to determine which cells are currently selected. Columns and rows are - numbered from zero, beginning at the top for rows and at the left for columns. - Setting the and properties automatically - collapses the selection to a single cell, resetting the RowSel and ColSel properties. - Therefore, to specify a block selection, you must Row and Col, then RowSel and ColSel. - Alternatively, you may use the method to select a range with a - single statement. - If the property is set to , - you should use the property on individual row objects to - select and deselect rows. - When a range is selected, the value of may be greater than or - less than , and may be greater than or less than . - This is inconvenient when you need to set up bounds for loops. In these cases, you can - use the property to retrieve a normalized - object, where r1 <= r2 and c1 <= c2. - See the property for an example. - - - - - Gets or sets the last column in the current selection. - - - Use the and properties to modify a - selection or to determine which cells are currently selected. Columns and rows are - numbered from zero, beginning at the top for rows and at the left for columns. - Setting the and properties automatically - collapses the selection to a single cell, resetting the RowSel and ColSel properties. - Therefore, to specify a block selection, you must Row and Col, then RowSel and ColSel. - Alternatively, you may use the method to select a range with a - single statement. - When a range is selected, the value of may be greater than or - less than , and may be greater than or less than . - This is inconvenient when you need to set up bounds for loops. In these cases, you can - use the property to retrieve a normalized - object, where r1 <= r2 and c1 <= c2. - - - The code below loops though the cells in the current selection: - - CellRange rg = flex.Selection; - for (int r = rg.r1; r <= rg.r2; r++) - for (int c = rg.c1; c <= rg.c2; c++) - Console.WriteLine("the value at {0} {1} is {2}", r, c, flex[r, c]); - - - - - Gets the collection of objects in the grid. - - - The property returns a reference to the list of rows - that make up the grid. With this reference, you can add, remove, move, - and count the rows. For more information on the tasks that can be performed - with this collection, see the object. - This property is read-only. The grid creates and manages the row collection for you. - Upgrade Note: In the VSFlexGrid ActiveX control, the Rows and FixedRows properties - corresponded to the number of rows and fixed rows on the grid. In C1FlexGrid, use Rows.Count - and Rows.Fixed. - - - - - Gets the collection of objects in the grid. - - - The property returns a reference to the list of columns - that make up the grid. With this reference, you can add, remove, move, - and count the columns. For more information on the tasks that can be performed - with this collection, see the object. - This property is read-only. The grid creates and manages the column collection for you. - Upgrade Note: In the VSFlexGrid ActiveX control, the Cols and FixedCols properties - corresponded to the number of columns and fixed columns on the grid. In C1FlexGrid, use - Cols.Count and Cols.Fixed instead. - - - - - Gets or sets the first visible column in the scrollable area. - - - Setting the property causes the grid to scroll horizontally - so that the given column becomes the leftmost visible column. This is often useful when - you want to synchronize two or more grids so that when one of them scrolls, the other - scrolls as well. To scroll vertically, use the property. - When setting this property, the largest possible column number is the total - number of columns minus the number of columns that will fit the display. Attempting - to set to a greater value will cause the grid to set it to the - largest possible value (no error will occur). - The value returned by the and properties - may correspond to partially visible rows or columns. - Use the and properties to scroll using - cells as units. Use the property to scroll the grid using - pixel units. - To ensure that a given cell is visible, use the method. - - - - - Gets or sets the first visible row in the scrollable area. - - - Setting the property causes the grid to scroll vertically - so that the given row becomes the topmost visible row. This is often useful when - you want to synchronize two or more grids so that when one of them scrolls, the other - scrolls as well. To scroll horizontally, use the property. - When setting this property, the largest possible row number is the total - number of rows minus the number of rows that will fit the display. Attempting - to set to a greater value will cause the grid to set it to the - largest possible value (no error will occur). - The value returned by the and properties - may correspond to partially visible rows or columns. - Use the and properties to scroll using - cells as units. Use the property to scroll the grid using - pixel units. - To ensure that a given cell is visible, use the method. - - - - - Gets the last visible column in the scrollable area. - - - The index returned may correspond to a column that is only partially visible. - This property is read-only. To scroll the contents of the grid, see the - , , and properties. - To ensure that a cell is visible, use the method. - - - - - Gets the last visible row in the scrollable area. - - - The index returned may correspond to a row that is only partially visible. - This property is read-only. To scroll the contents of the grid, see the - , , and properties. - To ensure that a cell is visible, use the method. - - - - - Gets or sets the grid's selection behavior. - - - In most selection modes, you can obtain the current selection using the - property. - When is set to , - however, the selection may consist of a non-continuous range of rows. In this case, - you can check the selection state of individual rows using the - property or obtain a collection of selected rows using the property. - - - - - Gets the selected range in normalized form. - - - The range returned corresponds to the current selection, defined by the , , - , and properties. - The range is normalized, so range.r1 <= range.r2 and range.c1 <= range.c2. This makes - it easy to loop through the selection. For example: - - int total = 0; - CellRange rg = flex.Selection; - for (int r = rg.r1; r <= rg.r2; r++) - for (int c = rg.c1; c <= rg.c2; c++) - total += (int)flex[r,c]; - Console.WriteLine("The total is: {0}", total); - - - - - Gets a object that contains the cell at coordinates , . - - - To get a object that spans the entire selection, use the property. - - - - - Gets the collection of cell styles defined in the grid. - - - The property enables you to obtain a reference to the list of - styles that are currently defined in the grid. With this reference, you can add, remove, - and count the styles. For more information on the tasks that can be performed with this - collection, see the class reference topics. For information - on cell formatting, see the reference topics. - This property is read-only. The grid creates and manages the collection for you. - Upgrade Note: The VSFlexGrid ActiveX control had many properties that affected the way - the grid was displayed (e.g. BackColor, BackColorAlternate, BackColorBkg, BackColorFixed, - BackColorFrozen, BackColorSel, and so on). The C1FlexGrid control replaces all these - properties with a collection of objects. This makes the object - model simpler, more consistent, and more powerful. You can change the built-in styles or - define your own, and assign them to rows, columns, or arbitrary cell ranges. - - - - - Gets or sets whether the grid should move the cursor searching for entries as the user types. - - - If is on, the grid will search the current column as the user - types, automatically moving the cursor and highlighting matches using the style. - The search is case-insensitive. The search is canceled when the user presses the ESC key or - moves the selection with the mouse or cursor keys. - When the user stops typing for about a second, the search buffer is reset. This amount of - time can be changed by setting the property. - If is on and is set to true, the user - will need to hit ENTER, SPACE, or F2 to start editing cells. Other keys are used for searching. - - - - - Gets or sets the delay (in seconds) before the buffer is reset. - - - See the property for details. - - - - - Gets or sets the action to be performed when the user presses the ENTER key. - - - By default, the grid will move the selection down to the next visible row when the - user presses the ENTER key. If the grid is editable, pressing ENTER will cause the grid - to enter edit mode, and pressing ENTER while in edit mode will cause the cursor to move down. - This property allows you to modify this behavior and disable cell navigation with the - ENTER key, or cause it to move the selection to the next column instead of row. - Note that the and as - settings have the same effect when applied to this property. Pressing the ENTER key will - move the selection within the grid, but will not move the focus to the next control on the form. - - - - - Gets or sets the action to be performed when the user presses the TAB key. - - - By default, the grid will ignore the TAB key and it will be handled by the form, moving the focus to - the next control in the tab order. If you set the property to a value - other than , the grid will trap the TAB key and use it for navigating cells. - - - - - Gets or sets the image to be used in cell buttons. - - - This property allows you to customize the appearance of cell buttons. For details on how to - create and handle cell buttons, see the event. - If you want to use a single picture for all cell buttons on the grid, assign the picture to the - property at design time. To change pictures depending on the row, column, or cell - being edited, set the picture in response to the event. - The pictures used for cell buttons should fit within the button (larger pictures are truncated). - They should also be transparent, so the button face can be seen through the empty parts of the picture. - For best results, use small icons (16 x 16 pixels) and draw the picture in the upper left 12 x 12 - rectangle within the icon. - - - - - Gets the index of the row under the cursor. - - - The and properties are often useful when - handling the event, to provide custom mouse handling. - They are also useful when handling mouse events that do not change the selection and for - detecting clicks on the fixed areas of the grid. - Typical uses for these properties include displaying help information or tooltips when - the user moves the mouse over a selection, and the implementation of manual drag-and-drop - manipulation of OLE objects. - - and return -1 if the mouse is not over - any rows or columns. - To obtain more detailed hit-testing information, use the method. - - - - - Gets the index of the column under the cursor. - - - The and properties are often useful when - handling the event, to provide custom mouse handling. - They are also useful when handling mouse events that do not change the selection and for - detecting clicks on the fixed areas of the grid. - Typical uses for these properties include displaying help information or tooltips when - the user moves the mouse over a selection, and the implementation of manual drag-and-drop - manipulation of OLE objects. - - and return -1 if the mouse is not over - any rows or columns. - To obtain more detailed hit-testing information, use the method. - - - - - Gets or sets whether the grid should paint its contents. - - - This property is deprecated. Use the and - methods instead. - - - - - Gets or sets whether the control should fire the event. - - - If you set this property to , the grid will - fire the event whenever a cell needs to be painted. - You can handle the event and customize the way each cell is painted, either by changing - the cell contents and style, or by taking over the painting and doing it yourself. - For more details and examples, see the event. - - - - - Gets or sets whether the control should use an off-screen buffer when painting to reduce flicker. - - - This property is set to true by default, and rarely needs to be changed. - Setting to false may increase performance of applications - running under terminal server software. - - - - - Gets or sets the characters used as row and column separators in clip strings. - - For details and an example, see the property. - - - - Gets or sets the contents of the selected range. - - - The string assigned to (or returned by) the property may contain - multiple cells. By default, tab characters (\t) indicate column breaks, and carriage return - characters (\n) indicate row breaks. - The default row and column delimiters may be changed using the property. - When a string is assigned to the property, only the selected - cells are affected. If there are more cells in the selected region than are described in the - clip string, the remaining cells are ignored. If there are more cells described in the clip - string than in the selected region, the extra portion of the clip string is ignored. Empty - entries in the string will clear existing cell contents. - To get or set a clip string for an arbitrary range, use a object. - The value returned is affected by the setting of the - property. - - - The code below puts text into a selected area two rows high and two columns wide. - - // build clip string - string s = "r1 c1\tr1 c2\nr2 c1\tr2 c2"; - - // select a 2 x 2 range and apply clip string to selection - flex.Select(2, 2, 4, 4); - flex.Clip = s; - - - - - Gets or sets a reference to the cell editor that is currently active. - - - The property returns a reference to the cell editor that is - currently active. This may be one of the built-in editors (a TextBox, a ComboBox, or a - DateTimePicker control), a custom editor, or null (if the grid is not in edit mode). - You can use this property to programmatically access the editor, or to find out - if the grid is in edit mode. - If you don't want to use the grid's built-in editors, you can use any other control - instead. To do this, either associate the external editor with a specific grid row, column, - or using the property, which you can - get and set at any time. - Alternatively, you can handle the event and assign any control - directly to the property. (Note that the grid's Editor property can only - be assigned while handling the event, and is automatically reset to - null when the grid exits edit mode.) - Any control can be used as an external editor, but to achieve complete integration with - the grid, the external editor should implement the IC1EmbeddedEditor interface. Some controls - implement this interface natively and don't require any extra code to be used as grid editors - (like the ones in the C1Input library). Most, however, will require you to implement at least - a few of the methods in IC1EmbeddedEditor. - For examples of custom editors, please see Using Custom Editors and Creating Custom Editors - in this documentation, or visit our on-line sample library at http://helpcentral.componentone.com/ProductResources.aspx - and download the "CustomEditors" sample. - - - The code below uses the event to customize the current editor - by setting two properties. - - void _flex_SetupEditor(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - TextBox tb = _flex.Editor as TextBox; - if (tb != null) - { - tb.CharacterCasing = CharacterCasing.Upper; - tb.MaxLength = 12; - } - } - - - - - Gets or sets the list of items to be used by the drop-down editor. - - - The property specifies the type of editor to be used when - editing a cell. You may use a text box, drop-down list, drop-down combo, or an edit button - to pop up custom editor forms. - To use the property, set the property - to true and respond to the event by setting the - property to a string that describes the type of editing you want to use for that cell. - The options are described below: - 1. To edit the cell using a regular text box, set the property to an empty string. - For example: - flex.ComboList = string.Empty; - 2. To edit the cell using a drop-down list, set the property to a string containing the - available options, separated by pipe characters. For example: - flex.ComboList = "Item 1|Item 2|Item 3"; - 3. To edit the cell using a drop-down combo, set the property to a string containing the - available options, separated by pipe characters ("|") and starting with a pipe character. For example: - flex.ComboList = "|Item 1|Item 2|Item 3"; - 4. To display an edit button, set the property to a string containing an ellipsis ("..."). - Edit buttons look like regular push buttons, aligned to the right of the cell, with an ellipsis as a caption. - When the user clicks on the edit button, the grid fires the CellButtonClick event. In this case, the user can't - edit the cell contents directly. For example: - flex.ComboList = "..."; - 5. To display an edit button next to an editable cell, set the property to a string - containing a pipe and an ellipsis ("|..."). In this case, you get a regular edit button but the user can also edit the - cell contents directly. For example: - flex.ComboList = "|..."; - The property is especially useful in cases where different rows in - the same column may contain different types of data (for example a control such as the PropertyGrid). - In this case, the property allows you to adjust the type of editing you - want to provide depending on the current row. - If all rows in the column contain the same type of data, use the Column's - property instead. This way, the grid will automatically select the list depending on the column - being edited and you don't need to handle any events. - Note that the ComboList allows you to specify lists of strings only. Cells will store and display - these strings. If you want to store a certain type of data and display values associated with that data, see - the property. The DataMap property allows you to store values in the cells - (for example a CustomerID) and display strings associated with that data (for example the customer name). - - - The code below handles the event and assigns a value to the - property so that the grid displays buttons on every other row. - - void _flex_BeforeEdit(object sender, RowColEventArgs e) - { - _flex.ComboList = string.Empty; - if (e.Row % 2 == 0) _flex.ComboList = "..."; - } - - - - - Gets or sets the input mask to use when editing cells. - - - The specifies an input mask for automatic input formatting and - validation. The mask syntax is similar to the one used by the Microsoft MaskedEdit ActiveX - control and by Microsoft Access and is described below. - Set the property in response to the event, - in the same way you would set the property. - If the same mask is used to edit all values in a column, use the column's - property. This simplifies your code because you don't need to handle the event. - When the user is done editing a cell with a mask, the event fires. - The event parameter will be set to true if the mask was not filled - out properly, so in most cases you don't have to implement the handler. The default behavior ensures that - only valid data will be entered. - The string is composed of the following symbols: - - - 1) Wildcards - 0 digit - 9 digit or space - # digit, space, or sign - L letter - ? letter or space - A letter or digit - a letter, digit, or space - & any character - - - 2) Localized characters - . localized decimal separator - , localized thousand separator - : localized time separator - / localized date separator - - - 3) Command characters - \ next character is taken as a literal - > translate letters to uppercase - < translate letters to lowercase - - - 4) Placeholder specification - ; next character is used as a placeholder (the default is an underscore) - - - The code below sets the edit mask so the user can enter a phone number, with optional - area code, and a state in uppercase letters. The space-holder used is an asterisk ("*"). - - flex.EditMask = "(###) 000-0000 St\ate\: >LL;*"; - - - - - Gets a reference to the object that controls the appearance - of the outline tree in the grid. - - - The can group data hierarchically and display it with a - collapsible tree similar to the one in the Microsoft TreeView control. - The object is used to specify the position and appearance - of the outline tree. - For details on create outlines, see the method and - the property. - - - - - Gets an array containing all zero-level - rows on the grid. - - - - - Gets or sets the specific list in a object that the grid should display. - - - If a contains multiple sources of data, you should set the - property to one of the sources. - For example, if the DataSource is a contains three tables named Customers, - Orders, and OrderDetails, you must specify one of the tables to bind to. - If the contains only one , you may set the - DataMember property to an empty string. - You can use the method to set the - and properties at the same time. - - - - - Gets or sets the data source for the grid. - - - Any object that implements the or - interfaces can be used as a data source. - Specifically, the following ADO.NET data sources are valid: DataTable, DataView, - DataSet, and DataViewManager. - The following ComponentOne DataObjects components are also valid data sources: - C1ExpressTable, C1ExpressVew, C1ExpressConnection, C1DataView, C1DataTableSource, and C1DataSet. - If the reference contains more than one table, you must - also set the property a string that specifies the table to bind to. - For example, if the DataSource is a DataSet or DataViewManager that contains three tables named - Customers, Orders, and OrderDetails, you must specify one of the tables to bind to. - You can use the method to set the - and properties simultaneously. - You can also assign another object to the - property. In this case, the controls will share the same grid model, including the data, display styles, - selection, etc. This can be used to implement split views, where different controls display different - parts of the same data. - - - - - Gets or sets whether column widths are automatically adjusted when data is loaded. - - - This property works when the control is bound to a . - If is set to true, the control automatically resizes its - columns to fit the widest entry every time new data is read from the data source. - If the data source contains a large number of rows and columns, the automatic - resizing may take a relatively long time. In these cases, you should consider setting - to false and setting the column widths directly in code. - You may also use the method to adjust the column widths - automatically. - - - - - Gets or sets whether columns are automatically created when the grid is bound to a data source. - - - By default, assigning a new to the grid resets the column collection - to reflect the data source schema. If you set to false, the - existing column layout will be preserved. - - - - - Gets or sets whether node rows appear above or below the data. - - - This property determines how the outline tree is drawn, and it also determines - whether the method should add subtotal rows (which are node rows) - above or below the data being summarized. - Changing this property clears any existing nodes. - - - - - Gets a object that specifies printing parameters for the grid. - - - Use the method to print the grid and specify the document name, - common printing options, headers and footers. - Use the property to specify less common printing options - such as header and footer fonts, page margins, and page orientation. - - - - - Gets or sets a value that determines if the control can accept data that the user drags onto it. - - - This property allows you to use the control as a target for OLE drag-drop operations. - If set to (the default value), the control does not act as a drop target. - If set to , the control fires the standard drag-drop events - and the programmer is responsible for handling them. The main events involved are and - . These events are provided by the standard System.Windows.Forms.Control object. - If set to , the control handles the and - events automatically by performing the following actions: - 1) Query the data object for data in text or filename formats. - 2) Scroll if the user drags an object near the edges of the control. - 3) Paste the contents of the data object when the user drops valid data on the control. - Note: This property replaces and extends the property provided by the - base object. - - - - - Gets or sets a value that determines if the user can drag data from the control. - - - This property allows you to use the control as a source for OLE drag-drop operations. If - set to any of the automatic settings, the control provides the following services: - 1) Detect when the mouse is near the edge of a selected cell or range and display the - OLE drag cursor. - 2) If the user clicks the mouse while the OLE drag cursor is displayed, initiate a - drag operation with a data object containing the current selection. - In manual mode, the programmer is responsible for starting drag-drop operations using - the method. - - - - - Gets or sets whether the grid should display a new row template after the last data row. - - - If the user enters data into the new row template, a new row is automatically added to the grid. - This property works in bound mode (if the data source supports adding new rows) and also in - unbound mode. - Note that if this property is set to true, the Rows.Count property will return a value - that includes the new row template. If you set the Rows.Count property, the grid will set the - number of data rows and will automatically add the new row template. For example: - - flex.AllowAddNew = true; - flex.Rows.Count = 10; - Console.WriteLine("Row count is {0}.", _flex.Rows.Count); - Row count is 11. - - - - - - Gets or sets whether the grid should monitor the keyboard and handle the DEL key. - - - If this property is set to true, the user can delete rows by selecting them and then pressing - the DEL key. - This property works in bound mode (if the data source supports deleting rows) and in unbound mode. - - - - - Gets the collection of control glyphs (images used to show sorting, check boxes, etc). - - - The property returns a collection with an indexer - of type . This collection allows you to get or set the images used to - indicate column sorting, collapsed and expanded outline groups, check boxes, cursors, - error information, etc. - Note: Setting a glyph to null restores the default (built-in) image. If you want to make a glyph - invisible, set it to a small blank image instead. - - - For example, the code below causes the grid to use custom images to display the column sorting order - (instead of the built-in hollow triangles): - - flex.Glyphs[GlyphEnum.Ascending] = imgAscending; - flex.Glyphs[GlyphEnum.Descending] = imgDescending; - - - - - Gets or sets whether the grid should handle the clipboard keys and automatically - perform cut, copy, paste, and delete operations. - - - Setting this property to true causes the grid to monitor the keyboard for the - following clipboard keys: - Copy: CTRL-INS, CTRL-C - Cut: CTRL-X, SHIFT-DEL - Paste: CTRL-V, SHIFT-INS - Delete: DEL - Cut, paste, and delete actions are performed only if the - property is set to true. - If you want to handle only a subset of the supported keys, add a handler to the - event and set the Handled parameter to true to disable some of the keys. - Automatic clipboard operations only affect the grid data. Styles and images are - not copied, pasted, or deleted. - Values copied to the clipboard are affected by the setting of the - property. - - - - - Gets or sets a custom comparer object used by the grid to perform grouping, - merging, and searching operations. - - - The grid has a default implementation that is used to compare - cells and determine if their contents are equivalent. This implementation is used when merging, - grouping, or searching for values (see the property and the - and methods). - The default implementation is case-sensitive and takes leading and trailing blanks into account. - If you want to merge cells using a case-insensitive comparison or trimming blanks, - write a custom class that implements the interface and assign an - instance of it to the grid's property. - Setting this property to null (Nothing in Visual Basic) restores the default behavior. - - - The code below replaces the built-in comparer with a . - This causes the method to group items that differ only in case into the - same groups: - - // use case-insensitive comparer - flex.CustomComparer = new CaseInsensitiveComparer(); - - // add groups ignoring case - flex.Subtotal(AggregateEnum.Sum, 0, groupOn, totalOn); - - // restore default (case-sensitive) comparer - flex.CustomComparer = null; - - - - - Gets or sets an flags that affect the grid's editing behavior. - - - The default value for this property is , which enables - all editing options. See the enumeration for a list of - options available. - - - - - Specifies whether text rendering should be compatible with previous releases of WinForms. - - - This property determines whether the control should render text using the - class (compatible with previous versions), or the new class - (available in .NET 2.0 and later). - The class supports complex scripts and Uniscribe APIs, making - it better suited for some international applications. - However, the class seems to render about 25% slower than the - traditional method. - You may want to try both modes and select the one that matches the appearance of other - controls and forms in your application. - - - - - Gets a object that provides easy access to properties of the currently - active ComboBox editor. - - - The object can be used to get and set properties on the currently - active ComboBox editor without casting the property. - If no editor is active, or if the editor is not a , these properties - return null or -1, and cannot be set. - - - The code below shows two equivalent ways of accessing the selected index of the currently active ComboBox editor: - - // with the ComboBoxEditor property: - Console.WriteLine("The current combo index is {0}", - _flex.ComboBoxEditor.SelectedIndex); - - // without the ComboBoxEditor property: - ComboBox cb = _flex.Editor as ComboBox; - int index = (cb != null) ? cb.SelectedIndex : -1; - Console.WriteLine("The current combo index is {0}", - index); - - - - - Gets or sets a value that specifies the grid scrolling behavior. - - - - - Gets a rectangle that defines the scrollable portion of the control. - - - The value returned corresponds to the control's client area minus any fixed - and frozen rows and columns. - - - - - Gets or sets the background color for the control. - - - This is the color used to paint the background of the scrollable cells, also defined by the - cell style. - - - - - Gets or sets the foreground color for the control. - - - This is the color used to paint the text in scrollable cells, also defined by the - cell style. - - - - - Fires when a row is losing focus and needs to be validated. - - - This event is analogous to the event. - Use this event to perform validation on all the values of a row. - If the row does not pass validation, set the property to true. - Canceling this event prevents the event from occurring, - and also prevents the user from leaving the invalid row. - - - - - Fires after a row lost focus and has been validated. - - - This event is analogous to the event. - Use this event to perform post-processing on a row of values. - - - - - Gets a reference to the column that defines the current sort applied to the grid. - - - The grid may be sorted by a call to the method, by a user clicking - a column header, or as a result of sorting applied directly to the object that is being - used as the grid's . - To determine the current sort direction, use the sorted column's - property. - If the grid is not currently sorted, this property returns null. - - - - - Gets or sets whether the control should use Xp themes for displaying row or column headers. - - - This property only has an effect if the application is themed. To enable themes for - an application, you can either call the Application.EnableVisualStyles method or use - a manifest file. Please refer to MSDN for details. - Setting the property to BorderStyleEnum.XpThemes - automatically sets this property to ShowThemedHeadersEnum.Both. - - - - - Gets or sets a value that determines the overall appearance of the control. - - - This property allows you to quickly customize the appearance of the grid so - it matches the appearance of your application. - The settings available include System, various Microsoft Office color - schemes, and Custom, which relies on the control's standard styles and - appearance properties. - - - - - Gets or sets a used to customize the look and - feel of the control. - - - - - Gets or sets a string that is displayed over the new row template - when the property is set to true. - - - - - Gets or sets what parts of the grid are copied to the clipboard when the - property is set to true. - - - - - Gets or sets whether the user is allowed to filter the data. - - - When this property is set to true, the grid displays filter icons - on the column headers. Users may click the icons to define filters to be - applied to the data. - When a filter is applied, the grid hides rows that don't match the - filter by setting their property to false. The - filter is not applied to the data source. - You may specify the type of filter to use for each individual column - by setting the columns property. - You may also create custom filters by creating classes the implement - the interface and assigning instances of that - class to the column's property. - - - - - Gets or sets a value that determines whether the filter should ignore diacritics - (accents) when comparing values. - - - By default, the filter compares values as they appear in the data source. - For example, if you are looking for values that contain the string "fac", you - will find "factory" but not "façade". - If you set this property to true, the filter will remove any diacritics - before performing the comparisons. In this case, looking for the string "fac" - will return both "factory" and "façade". - This property is especially useful in applications localized for languages - that contain many accents, such as French, Spanish, Portuguese, etc. - - - - - Gets or sets an XML string containing the current filter state. - - - - - Gets or sets the language to use when localizing the column filters. - - - - - Creates a new instance of the control. - - - - - Returns the merged range of cells that includes a given cell. - - Row index. - Column index. - Whether the range should be clipped to the visible area of the grid. - A object that contains the given cell. - - Cell merging is controlled by the property. - The method allows you to determine whether a cell is - merged with adjacent cells. - You can override the method to implement custom merging - logic. If you do this, make sure the merging method is consistent and efficient, since - it gets called frequently and affects the grid's appearance and behavior. - - - The code below checks the current cell after a selection to see if it is part - of a merged range: - - private void _flex_SelChange(object sender, System.EventArgs e) - { - CellRange rg = this._flex.GetMergedRange(_flex.Row, _flex.Col, false); - if (!rg.IsSingleCell) - { - Console.WriteLine("selection is merged: {0},{1}-{2},{3}", - rg.TopRow, rg.LeftCol, rg.BottomRow, rg.RightCol); - } - } - - The code below shows how you can override the method - to provide custom merging: - - public class CustomMerge : C1FlexGrid - { - public CustomMerge() - { - // allow free merging by default - AllowMerging = AllowMergingEnum.Free; - for (int r = 0; r < Rows.Count; r++) Rows[r].AllowMerging = true; - for (int c = 0; c < Cols.Count; c++) Cols[c].AllowMerging = true; - } - override public CellRange GetMergedRange(int row, int col, bool clip) - { - // merge cells in range (1,1)-(3,3) - if (row >= 1 && row <= 3 && col >= 1 && col <= 3) - return GetCellRange(1, 1, 3, 3); - - // don't merge anything else - return GetCellRange(row, col); - } - } - - - - - Returns the merged range of cells that includes a given cell. - - Row index. - Column index. - A object that contains the given cell. - - This method returns the entire range, including invisible cells. - - - - - Overridden to clear merged ranges. - - - - - Gets the state for a Windows XP theme while the mouse moves over a cell. - - - This method is for internal use. It allows inherited classes to customize the hot-tracking behavior. - - Row under the mouse. - Column under the mouse. - An integer representing the item state (2 for hot-tracking, 1 for normal). - - - - Gets a cell glyph to show in a cell. - - - This method is for internal use. It allows inherited classes to customize the display of the sorting glyphs. - - Row index. - Column index. - Cell rectangle - Glyph to display above the cell content. - Glyphs to display on the left of the cell. - Glyphs to display on the right of the cell. - True if any glyphs were assigned to the cell, false otherwise. - - - - Applies a value to a cell or cell range. - - - This method is for internal use. It allows inherited classes to customize the way data - coming from cell editors is applied to the cells. - - Row index. - Column index. - Data to be applied to the cell. - Whether the data should be coerced into the cell's data type. - - - - - - Applies a value to a cell or cell range. - - - This method is for internal use. It allows inherited classes to customize the way checkbox - data is applied to the cells. - - Row index. - Column index. - Value to apply to the cell. - - - - Invalidates a cell range, causing it to be repainted. - - Range to be invalidated. - - This method is rarely used by the programmer, since the grid automatically - performs invalidation as needed. - - - - - Gets a rectangle representing the coordinates of a cell, row, or column. - - - This method is for internal use. It allows inherited classes to customize the way cell geometry - is calculated. - - Row index (or -1 to get column bounds). - Column index (or -1 to get row bounds). - Whether the rectangle should be horizontally clipped to the grid's client area. - Whether the rectangle should be vertically clipped to the grid's client area. - A containing the display area for the row, column, or cell, in client - coordinates and accounting for scroll position. - - - - Gets a rectangle representing the coordinates of a cell editor. - - - This method is for internal use. It allows inherited classes to customize the way cell geometry - is calculated. - - Row index. - Column index. - Rectangle used to position the cell editor. - - - - Starts editing a cell in response to a key press. - - - This method is for internal use. It allows inherited classes to customize the editing process. - - Row index. - Column index. - Key that initiated the edit process. - Whether editing should start even in non-editable cells (e.g. fixed cells). - True if the editing process was started successfully, false otherwise. - - - - Starts editing a cell in response to a mouse action. - - - This method is for internal use. It allows inherited classes to customize the editing process. - - Row index. - Column index. - Mouse position in client coordinates. - Whether the action was a double-click. - True if the editing process was started successfully, false otherwise. - - - - Gets a value that determines if a cell contains the grid cursor. - - Row index. - Column index. - True if the cell contains the cursor, false otherwise. - - - - Gets a value that determines if a cell is part of the selection and should be highlighted. - - Row index. - Column index. - True if the cell should be highlighted, false otherwise. - - - - Gets a value that indicates what types of child nodes a row has. - - - This method is for internal use. It allows inherited classes to customize outline trees. - - Row index. - Column index. - Outline level. - Zero if the row has no children, 1 if it has regular data rows only, - 2 if it has child nodes, and 3 if it has data and child nodes. - - - - - Draws a grid row. - - A that contains a - object where the row will be drawn. - Index of the row to draw. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Draws a grid cell. - - A that contains a - object where the cell will be drawn. - Index of the cell's row. - Index of the cell's column. - The index of the last column painted (may be greater than - if columns are merged). - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Draws a grid cell. - - - object where the cell will be drawn. - Index of the cell's row. - Index of the cell's column. - - that defines the cell position. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Moves or extends the current selection. - - - value that specifies the type of cursor movement. - Whether to extend the current selection. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Automatically size grid columns to fit the largest entry. - - - object used to measure the cell contents. - Index of the first row to be measured. - Index of the first column to be measured. - Index of the last row to be measured. - Index of the first column to be measured. - Extra space, in twips, to add to the largest entry. - - value that specifies auto sizing behavior. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Automatically size grid columns to fit the largest entry. - - - object used to measure the cell contents. - Index of the first row to be measured. - Index of the first column to be measured. - Index of the last row to be measured. - Index of the first column to be measured. - Extra space, in twips, to add to the largest entry. - - value that specifies auto-sizing behavior. - - This method is for internal use. It allows inherited classes to customize the grid appearance. - - - - - Raises the event. - - Object raising the event. - A that contains event data. - - - - Called when the grid contents scroll. - - - value that specifies the scroll direction. - - This method is for internal use. It allows inherited classes to customize the grid scrolling behavior. - - - - - Gets or sets how cells should be merged. - - - Merging cells allows you to display data in a clear, appealing way, - because it highlights groups of identical information. It also gives you - flexibility to build tables similar to the ones you can create in HTML or - using Microsoft Word, both of which support merged cells. - To create tables with merged cells, set the - property to a value other than , and - set the property of individual rows and - columns true for the rows and columns you wish to merge. After these - properties are set, the grid will automatically merge adjacent cells - that have the same contents. - Whenever the cell contents change, the grid updates the merging state. - - - The code below causes the grid to merge cells with the same data in column 1: - - flex.AllowMerging = AllowMergingEnum.Free; - flex.Cols[1].AllowMerging = true; // merge values in column 1 - - - - - Gets or sets how non-scrollable cells should be merged. - - - By default, this property is set to , which - causes fixed cells to be merged with the same setting as scrollable cells. - If you specify a different value for this property, you can use different merging - modes for fixed cells such as column headers than the setting used for scrollable cells. - - - - - Gets the that determines which grid - cells are merged when the property is set to - . - - - - - Specifies whether the user should be able to resize rows and columns with the mouse. - - - - - The user may not resize rows or columns. - - - - - The user may resize columns with the mouse by dragging the edge of the column headers. - Double-clicking the edge of a column header automatically sizes the column to fit the widest entry. - - - - - The user may resize rows with the mouse by dragging the edge of the row headers. - Double-clicking the edge of a row header automatically sizes the row to fit the tallest entry. - - - - - The user may resize rows and columns with the mouse. - - - - - The user may change the default column width with the mouse. - Resizing any column will resize all columns that don't have a specific width assigned to them. - - - - - The user may change the default row height with the mouse. - Resizing any row will resize all rows that don't have a specific height assigned to them. - - - - - The user may change the default column width or row height with the mouse. - - - - - Specifies whether the user should be able to freeze rows and columns with the mouse. - - - - - The user may not freeze rows or columns. - - - - - The user may freeze columns by dragging the frozen region vertical boundary with the mouse. - - - - - The user may freeze rows by dragging the frozen region horizontal boundary with the mouse. - - - - - The user may freeze rows and columns by dragging the frozen region boundaries with the mouse. - - - - - Specifies whether the user should be able to drag rows and columns with the mouse. - - - - - The user may not drag rows or columns. - - - - - The user may drag columns with the mouse. - - - - - The user may drag rows with the mouse. - - - - - The user may drag rows and columns with the mouse. - - - - - Specifies whether the user should be able to sort columns with the mouse. - - - - - The user may not sort columns with the mouse. - - - - - The user may sort single columns by clicking on its header cell. - - - - - The user may sort a range of columns by clicking on the header cell - of the rightmost column in the range. - - - - - Specifies whether the grid should highlight the selected range. - - - - - Never highlight the selected range. - - - - - Always highlight the selected range. - - - - - Highlight the selected range when the control has focus. - - - - - Specifies the appearance of the focus rectangle. - - - - - No focus rectangle. - - - - - Show a light focus rectangle (dotted, 1-pixel wide). This is the default setting. - - - - - Show a heavy focus rectangle (dotted, 2-pixel wide). - - - - - Show a solid focus rectangle. The color of the rectangle is determined by the - BackColor property of the style. - - - - - Show a raised focus rectangle. - - - - - Show an inset focus rectangle. - - - - - Specifies options that control auto-sizing. - - - - - Default behavior. - - - - - All rows (or columns) in the range are set to the same size. - - - - - Ignore invisible rows (or columns) when auto-sizing. - - - - - Ignore merged cells when auto-sizing. - - - - - Specifies whether cells should be drawn entirely by the grid or with - help from custom drawing code. - - - - - Grid cells are drawn by the grid. - - - - - The grid fires the event to allow custom - cell drawing. - - - - - Specifies which elements of the cell should be drawn by the grid. - - - This enumeration is used when rendering owner-drawn cells. - If you set the property to , - the grid will fire the event to allow custom cell drawing. - The parameter passed to the event handler has a - method that allows you to use the standard - drawing routines for rendering parts of the cell. For example, you can paint a custom background - and use the standard drawing routines for the cell borders and content. - See the event for an example. - - - - - Draw the cell background. - - - - - Draw the cell border. - - - - - Draw the cell content (text, images, check boxes, etc). - - - - - Draw all cell elements (background, border, and contents). - - - - - Specifies when the grid should display combo buttons in cells. - - - - - Show buttons only while editing the cell. - - - - - Show buttons when the cell has the focus. This is the default setting. - - - - - Always show buttons. - - - - - Specifies options that customize the grid's editing behavior. - - - - - No special behavior. - - - - - Search for entries in lists as the user types. - - - - - Cycle to the next item on the list when the user double-clicks a cell. - - - - - Check and uncheck all check boxes in a selection simultaneously. - - - - - Use built-in numeric editor when editing numeric types. - - - - - Commit changes to data source only when changing rows or moving focus. - - - - - Exit editor if user presses the right arrow key at the end of the content - or the left arrow key at the start of the content. - - - - - Enter edit mode only in response to mouse or keyboard events. Setting this - flag to false causes the grid to enter edit mode when the control gets the - focus or when the user moves the cursor. - - - - - All of the above. - - - - - Specifies whether the control should use themes for displaying row or column headers. - - - - - Use themed headers when the property is set to XpThemes. - - - - - Do not use themed headers. - - - - - Use themed headers for row headers. - - - - - Use themed headers for column headers. - - - - - Use themed headers for row and column headers. - - - - - Use themed headers to indicate selected rows and columns when VisualStyle - is set to one of the Office styles. - - - - - Specifies options that customize scrollbar behavior. - - - - - Use the default scrolling behavior. - - - - - Keep scrollbars visible even when they are disabled. - - - - - Scroll by rows and columns (instead of by pixel). - - - - - Do not scroll the control contents until the user releases the scrollbar thumb. - - - - - Fire the event and display a tooltip next to - the vertical scrollbar while scrolling vertically. - - - - - Specifies what parts of the grid should be copied to the clipboard when the - property is set to true. - - - - - Only the selected data is copied. - - - - - Copy the selected data and include the column headers. - - - - - Copy the selected data and include the row headers. - - - - - Copy the selected data and include row and column headers. - - - - - Do not copy any data to the clipboard. - - - - - Specifies the position of the sort glyphs within the column header cells. - - - - - Do not show sort glyphs. - - - - - Show sort glyphs on the right of the column header cells. - - - - - Show sort glyphs on the top of the column header cells. - - - - - Show sort glyphs on the top of the column header cells if filtering - is enabled, and on the right otherwise. - - - - - Specifies how grid columns should be sorted. - - - This enumeration contains flags that can be combined to customize the sorting process. - - - For example, the code below sorts two grid columns ignoring case. - - // C# - SortFlags order = SortFlags.Ascending | SortFlags.IgnoreCase; - _flex.Sort(order, col1, col2); - - ' VB - Dim order As SortFlags = SortFlags.Ascending Or SortFlags.IgnoreCase - _flex.Sort(order, col1, col2) - - - - - Do not sort. This setting is useful for skipping certain columns when sorting column ranges. - - - - - Sort in ascending order. - - - - - Sort in descending order. - - - - - Sort using the string representation of the data. In this mode, "100" appears before "2". - - - - - Ignore case when sorting strings. - - - - - Use the flags stored in the property of individual objects. - - - - - Specifies which elements of the grid should be cleared by the method. - - - This enumeration contains flags that can be combined to customize the sorting process. - - - - - Clear cell content, including data, images, and check boxes if any. - - - - - Clear custom styles assigned to cells. - - - - - Clear user data associated with cells. - - - - - All of the above. - - - - - Specifies the type of checkbox to draw in a cell. - - - There are two types of check boxes: regular and tri-state. - Regular check boxes are used to display simple Boolean values. - They cycle through settings Checked and Unchecked when clicked with the mouse. - Tri-state check boxes are used to display values that may be true, false, or - indeterminate (grayed). They cycle through settings TSChecked, TSGrayed, and - TSUnchecked when clicked with the mouse. - Visually, Checked and Unchecked look the same as TSChecked and TSUnchecked. - - - - - No check box. - - - - - Check box with a check mark in it. - - - - - Empty check box. - - - - - Check box in undefined state. - - - - - Tri-state check box with a check mark in it. - - - - - Tri-state empty check box. - - - - - Tri-state check box in undefined state. - - - - - Specifies the type of aggregate function to calculate with the and - methods. - - - - - No aggregate. This setting is used with the method to create an - outline tree without any numerical aggregates. - - - - - Clear existing aggregates. This setting is used with the method - to clear any existing subtotals, usually before calculating new subtotals. - - - - - Returns the sum of all values in the range. - - - - - Percent of grand total. This setting is used with the method to - calculate the percentage of the grand total represented by each sub group. (This setting can't - be used with the method). - - - - - Returns the count of non-empty cells in a range. - - - - - Returns the average value of the non-empty cells in a range. - - - - - Returns the maximum value in a range. - - - - - Returns the minimum value in a range. - - - - - Returns the sample standard deviation of the values in a range (uses the formula based on n-1). - - - - - Returns the sample variance of the values in a range (uses the formula based on n-1). - - - - - Returns the population standard deviation of the values in a range (uses the formula based on n). - - - - - Returns the population variance of the values in a range (uses the formula based on n). - - - - - Specifies options to use when calculating aggregates with the method. - - - - - Default setting. Include all rows and use numerical values only. - - - - - Exclude node rows from aggregate. This option is useful when the grid contains subtotal rows, - which are marked as nodes and contain values that are subtotals and should thus be excluded - from aggregates. - - - - - Calculate aggregates for dates instead of numerical values. Only a few aggregate functions - are meaningful for dates: count, maximum, and minimum. - - - - - Calculate aggregates for Boolean values. This flag causes the value True to be interpreted as one, - and False as zero. This option is useful for counting the number of checked check boxes in a range. - - - - - Exclude hidden rows and columns from the aggregate. - - - - - Exclude collapsed rows from the aggregate. - - - - - Exclude hidden rows from the aggregate. - - - - - Specifies whether subtotals rows created with the method should be - inserted above or below the data they refer to. - - - - - Subtotal rows are inserted above the data (tree-style). - - - - - Subtotal rows are inserted below the data (spreadsheet-style). - - - - - Specifies the type of change that occurred when the controls fires the - event. - - - - - No action. - - - - - The number of grid rows or columns has changed. - - - - - The number of fixed grid rows or columns has changed. - - - - - A style definition has changed. - - - - - A style has been applied to a range. - - - - - The grid has been invalidated and will be repainted. - - - - - The value in a cell has changed. - - - - - A range has been invalidated and will be repainted. - - - - - The grid will be repainted. - - - - - A tree node is about to be collapsed or expanded. - - - - - A tree node has just been collapsed or expanded. - - - - - A tree node will be scrolled into view. - - - - - A tree node will be selected. - - - - - A row has been moved into a new position. - - - - - A row has been added to the grid. - - - - - A row has been removed from the grid. - - - - - A row has been selected or de-selected. - - - - - A column has been moved into a new position. - - - - - A column has been added to the grid. - - - - - A column has been removed from the grid. - - - - - A column has been selected or de-selected. - - - - - The selection is about to change. - - - - - The selection has just changed. - - - - - Represents the method that will handle the event. - - - - - Provides data for the event handler. - - - - - The type of action that caused the event to fire. - - - - - Range of cells affected by the event. - - - - - Range of cells affected by the event. - - - - - Range of cells affected by the event. - - - - - Range of cells affected by the event. - - - - - Represents cell ranges, allowing the caller to set properties for multiple cells - with a single statement. - - - The structure does not have a public constructor. To create a - object, use the method. - Note that is a structure, not a class. This means the object is used as a value, - not as a reference. If you pass a to a method and change the object within that method, - the original value is not modified. - Ranges are defined by two rows and two columns (, , , and - ). These values do not have to be in order ( may be smaller or greater than - ). To obtain the values in order, use the method or the , - , , and properties. - - - - - Gets or sets the range's first row index. - - - - - Gets or sets the range's first column index. - - - - - Gets or sets the range's last row index. - - - - - Gets or sets the range's last column index. - - - - - Determines whether the range contains a given row. - - Index of the row to check. - True if the range contains the row, False otherwise. - - - - Determines whether the range contains a given column. - - Index of the column to check. - True if the range contains the column, False otherwise. - - - - Determines whether the range contains a given cell. - - Index of the row to check. - Index of the column to check. - True if the range contains the cell, False otherwise. - - - - Normalizes the range so that is the , - is the , - is the , - and is the . - - - - - Clears selected elements from the range. - - - value that specifies which elements - should be cleared. - - - - Gets a string representation for this object. - - A string representation for this object. - - - - Gets a value that indicates if the range contains a single cell. - - - - - Gets a value that indicates if the range contains valid row and column indices. - - - This property returns true if the range coordinates are valid. The range is valid - if both r1 and r2 are between 0 Rows.Count-1, both c1 and c2 are between 0 and - Cols.Count-1. - - - - - Gets the index of the top row in the range. - - - - - Gets the index of the bottom row in the range. - - - - - Gets the index of the left column in the range. - - - - - Gets the index of the right column in the range. - - - - - Gets or sets the data stored in the range. - - - When getting, this property returns the value in the first cell of - the range (r1, c1). When setting, it stores the given value in every - cell within the range. - - - - - Gets the value in cell (, ), formatted as a string. - - - This property is similar to the property, except Clip - returns a tab-delimited string containing data in the entire range, and DataDisplay - returns the contents of the first cell only (r1, c1). - - - - - Gets or sets the style used to display every cell in the range. - - - Getting or setting the range style ensures that every cell in the range has - the same style. If the range does not contain any cells with custom styles, - this property returns null. - - - The code below creates a structure and uses it to - apply a custom style to the entire range. - - // create a style - CellStyle cs = _flex.Styles.Add("red"); - cs.BackColor = Color.Red; - - // create a cell range and assign it a style - CellRange rg = _flex.GetCellRange(1, 1, 5, 5); - rg.Style = cs; - - - - - Gets or sets the style used to display every cell in the range, creating a new style if necessary. - - - This property never returns null. If the range does not have a style assigned to it, a new style - will be created automatically. - - - The code below creates a structure and uses it to apply a custom style to - the entire range. - - // create a cell range - CellRange rg = _flex.GetCellRange(1, 1, 5, 5); - - // make sure range is red - rg.StyleNew.BackColor = Color.Red; - - - - - Gets the style used to render cell (, ). - - - This property never returns null. It will return the custom style assigned to the - first cell in the range, to the cell's row, column, or a built-in style. - - - - - Gets or sets the state of the checkbox in the range. - - - When getting, this property returns the checkbox value that corresponds to cell - (, ). When setting, it applies the new value to all - cells in the range. - - - - - Gets or sets the assigned to cells in the range. - - - When getting, this property returns the assigned to cell - (, ). When setting, it applies the new value to all - cells in the range. - - - - - Gets or sets arbitrary used data assigned to cells in the range. - - - When getting, this property returns the user data assigned to cell - (, ). When setting, it applies the new value to all - cells in the range. - - - - - Gets or sets a string containing the values of all cells in the range. - - - The cell values are delimited by characters specified by the - property. - By default, columns are separated by tabs (\t or vbTab) and rows by line breaks (\n or vbCr). - - - - - Collection of objects. - - - - - Initializes a new instance of a . - - Grid that owns the collection. - - - - Adds a new object to the collection. - - Object to add to the collection. - The index of the object in the collection. - - - - Adds a new object to the collection, optionally - removing other overlapping ranges from the collection. - - Object to add to the collection. - Whether to remove overlapping - ranges from the collection before adding the new range. - The index of the object in the collection. - - - - Removes all objects from the collection. - - - - - Determines whether a object is a member of the collection. - - Object to locate in the collection. - True if the object is a member of the collection, false otherwise. - - - - Gets the index of a object in the collection. - - Object to locate in the collection. - The index of the object in the collection, or -1 if the object is not a member of the collection. - - - - Gets the index of the first object in the collection that contains the specified row and column. - - Index of the row contained in the range. - Index of the column contained in the range. - The index of the object in the collection, or -1 if no range could be found containing the specified row and column. - - - - Inserts a object in the collection at a specified index. - - - - - - - - - Removes a object from the collection. - - Object to remove from the collection. - - - - Removed the object at a specified index from the collection. - - Index of the object to remove from the collection. - - - - Gets or sets the object at a specified index. - - - - - Gets the number of objects in the collection. - - - - - Represents a filter based on one or two logical conditions. - - - - - Initializes a new instance of a . - - - - - Creates a clone of this . - - A clone of this . - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; - False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to modify the filter at run time. - - - - Gets the first filter condition. - - - - - Gets the second filter condition. - - - - - Gets or sets whether the filter conditions should be combined - with an 'And' or with an 'Or' operator. - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Represents operators used in filter conditions. - - - - - Disables the operator. - - - - - Return true if the value equals the operator parameter. - - - - - Return true if the value does not equal the operator parameter. - - - - - Return true if the value is greater than the operator parameter. - - - - - Return true if the value is less than the operator parameter. - - - - - Return true if the value is greater than or equal to the operator parameter. - - - - - Return true if the value is less than or equal to the operator parameter. - - - - - Return true if the string representation of the value contains the operator parameter. - - - - - Return true if the string representation of the value does not contain the operator parameter. - - - - - Return true if the string representation of the value begins with the operator parameter. - - - - - Return true if the string representation of the value ends with the operator parameter. - - - - - Represents a condition within a . - - - Each contains up to two conditions that - can be combined with 'And' or 'Or' operators. - - - - - Clears this condition by setting the to 'None' - and the to null. - - - - - Applies the condition to a given value. - - Value to test. - True if the value satisfies the condition, false otherwise. - - - - Gets a value that indicates whether the condition is active. - - - - - Gets or sets the operator used by this condition. - - - - - Gets or sets the parameter used by this condition. - - - - - Specifies the behavior of the control as an OLE drag-drop target. - - - - - The control can't be used as a drop target. - - - - - The control fires drag-drop events that can be handled to provide drop target functionality. - - - - - The control automatically handles dropping of text or filename data. - - - - - Specifies the behavior of the control as an OLE drag-drop source. - - - - - The control does not provide any drag support. The caller can still initiate drag-drop operations - using the method. - - - - - The control provides automatic dragging of data. If the mouse hovers near the edges of the selected range, - the cursor will change and allow the user to move or copy data (pressing the CTRL key to copy). - - - - - Same as Automatic, except the data is always copied (never moved). - - - - - Same as Automatic, except the data is always moved (never copied). - - - - - Represents the method that will handle the event. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the event. - - - - - Gets which mouse button was pressed. - - - - - Gets the number of times the mouse button was pressed and released. - - - - - Gets the x-coordinate of a mouse click. - - - - - Gets the y-coordinate of a mouse click. - - - - - Gets a signed count of the number of detents the mouse wheel has rotated. A detent is one notch of the mouse wheel. - - - - - Gets or sets a value indicating whether the event should be canceled. - - - - - Initializes a new instance of the BeforeMouseDownEventArgs class. - - - with mouse event information. - - - - Initializes a new instance of the BeforeMouseDownEventArgs class. - - Control that will fire the event. - - value that indicates which button was pressed. - Number of times the button was pressed and released. - - - - Represents the method that will handle the , , and events. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the , , - , and events. - - - - - Gets the original index of the row that was dragged by the user. - - - - - Gets the original index of the column that was dragged by the user. - - - - - Gets the new index of the column or row that was dragged by the user. - - - - - Gets or sets a value indicating whether the drag operation should be canceled. - - - - - Initializes a new instance of the DragRowColEventArgs class. - - The original index of the row that was dragged by the user. - The original index of the column that was dragged by the user. - The new index of the column or row. - - - - Represents the method that will handle the and - events. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the and events. - - - - - Gets the column that is being sorted. - - - - - Gets or sets a value that determines the sorting order. - - - - - Gets or sets a value indicating whether the drag operation should be canceled. - - - Setting this parameter to true cancels the built-in sort operation and leaves the sorting glyph unchanged. - - - - - Gets or sets a value indicating whether the drag operation has been handled by the event handler. - - - Setting this parameter to true cancels the built-in sort but updates the sorting glyph as if the - sort had been performed. This is useful when the event handler performs custom sorting. - - - - - Initializes a new instance of the SortColEventArgs class. - - The column that is being sorted. - - value that determines the sorting order. - - - - Represents the method that will handle the , - , , - , , - , , - , , - , , - , and events. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the , , - , , - , , - , , - , , - , , and - events. - - - - - Gets the index of the row that caused the event. - - - This value may be set to -1 if the event was caused by a column. - - - - - Gets the index of the column that caused the event. - - - This value may be set to -1 if the event was caused by a row. - - - - - Gets or sets a value indicating whether the operation should be canceled. - - - - - Initializes a new instance of the RowColEventArgs class. - - Index of the row that caused the event. - Index of the column that caused the event. - - - - Represents the method that will handle the , - , , - , , and - events. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the , , - , , - , and events. - - - - - Gets the range selected before the event. - - - - - Gets the range that will be selected after the event. - - - - - Gets or sets a value indicating whether the new selection should be canceled. - - - - - Initializes a new instance of the RangeEventArgs class. - - The range selected before the event. - The range that will be selected after the event. - - - - Represents the method that will handle the event. - - Object that fired the event. - - object that contains the event data. - - - - Provides data for the event. - - - - - Gets or sets the text to be displayed in the tooltip. - - - - - Initializes a new instance of the ToolTipEventArgs class. - - Index of the row that caused the event. - Index of the column that caused the event. - Text to display in the ToolTip - - - - Represents the method that will handle the and - events. - - - - - Provides data for the and events. - - - - - Gets the row index of the cell being edited when the key was pressed. - - - - - Gets the column index of the cell being edited when the key was pressed. - - - - - Gets the integer representation of the property. - - - - - Gets the key code for the event, which will be one of the values. - - - - - Gets the key code for the key that was pressed, combined with modifier flags that indicate which - combination of CTRL, SHIFT, and ALT keys were pressed at the same time. - - - - - Gets the modifier flags, as defined in Keys. This indicates which combination of modifier keys - (CTRL, SHIFT, and ALT) were pressed. - - - - - Gets a value indicating whether the ALT key was pressed. - - - - - Gets a value indicating whether the CTRL key was pressed. - - - - - Gets a value indicating whether the SHIFT key was pressed. - - - - - Gets or sets a value indicating whether the event was handled and should be ignored by the control. - - - - - Initializes a new instance of the KeyEditEventArgs class. - - The row index of the cell being edited when the key was pressed. - The column index of the cell being edited when the key was pressed. - A object containing the keyboard data. - - - - Represents the method that will handle the event. - - - - - Provides data for the event. - - - - - Gets the row index of the cell being edited when the key was pressed. - - - - - Gets the column index of the cell being edited when the key was pressed. - - - - - Gets the character corresponding to the key pressed. - - - - - Gets or sets a value indicating whether the event was handled and should be ignored by the control. - - - - - Initializes a new instance of the KeyPressEditEventArgs class. - - The row index of the cell being edited when the key was pressed. - The column index of the cell being edited when the key was pressed. - The character corresponding to the key pressed. - - - - Represents the method that will handle the event. - - - - - Provides data for the event. - - - - - Gets the row index of the cell being edited. - - - - - Gets the column index of the cell being edited. - - - - - If the cell contains a checkbox, the new checkbox state about to be applied to the cell. - - - - - Gets or sets a value indicating whether the edit operation should be canceled. - - - If this parameter is set to true, the edits are considered invalid. The editor will remain open - and the current cell selected until the user provides a valid entry or cancels the edit operation - by pressing the ESC key. - - - - - Initializes a new instance of the ValidateEditEventArgs class. - - The row index of the cell being edited. - The column index of the cell being edited. - The new checkbox state about to be applied to the cell, if any. - - - - Represents the method that will handle the event. - - - - - Provides data for the event. - - - - - Gets the row index of the cell where the error was detected. - - - - - Gets the column index of the cell where the error was detected. - - - - - Gets the object that contains information about the error. - - - - - Gets or sets a value indicating whether the error situation has been handled by the control. - - - If this value is set to False, the grid will throw the exception. - - - - - Initializes a new instance of the GridErrorEventArgs class. - - The row index of the cell where the error was detected. - The column index of the cell where the error was detected. - The object that contains information about the error. - Whether the error was handled internally and no exception should be thrown. - - - - Represents the method that will handle the and - events. - - - - - Provides data for the and - events. - - - - - Gets the index of the row that may contain errors. - - - - - Gets the index of the column that may contain errors (or -1 if checking for row errors). - - - - - Gets or sets a message that describes the error. - - - - - Initializes a new instance of the class. - - The row index when error information is needed for a cell or row. - The column index when error information is needed for a cell or row. - - - - Represents the method that will handle the event. - - - - - Provides data for the event. - - - - - Gets the object used to draw the cell. Use this object to draw custom elements in the cell. - - - - - Get the row index of the cell being painted. - - - - - Get the column index of the cell being painted. - - - - - Get the rectangle where the cell will be painted (in client coordinates). - - - - - Gets a value that determines if the event was fired only to measure the cell. - - - This occurs while auto-sizing rows and columns, since the event handler may change the - value displayed in the cell while handling this event. - - - - - Gets or sets whether the event has finished drawing the cell. - - - If this parameter is set to true, the grid assumes the call has been painted by the event handler. If it - is set to false, the grid will paint the cell when the event returns. - Note that calling the method automatically sets this parameter to true. - - - - - Initializes a new instance of the OwnerDrawCellEventArgs class. - - The control that contains the cell being painted. - The object where the cell will be painted. - The row index of the cell being painted. - The column index of the cell being painted. - The that will be used to paint the cell. - The bounds of the cell being painted. - The text that will be displayed in the cell. - The image that will be displayed in the cell. - - - - Causes the grid to paint parts of the cell (background, foreground, border, etc.) - - - that specifies the parts of the cell. - - This method is typically called in handlers when the code - intends to draw some elements of the cell but not everything. - For example, the code may want to draw a custom border only. In this case, it could call - e.DrawCell(DrawCellFlags.Background | DrawCellFlags.Content) to draw the cell background and content, - and later draw the custom border. - Or the code could want to draw a custom marker in a cell (like a note indicator in Excel). In this case, it - should call e.DrawCell() to draw the entire cell, and later add the note marker (little red triangle - on the top right corner of the cell). - If the owner-draw code draws the entire cell (including the background), then there's no need to call - e.DrawCell at all. - - - - - Causes the grid to paint the whole cell. - - - - - Gets or sets the text that will be displayed in the cell. - - - Changing this value is an easy way to modify the text displayed in a cell without any custom drawing code. - - - - - Gets or sets the image that will be displayed in the cell. - - - Changing this value is an easy way to modify the image displayed in a cell without any custom drawing code. - - - - - Sets or sets the object used to paint the cell. - - - This parameter is often used to provide dynamic formatting based on cell contents. For example, - if the cell contains a value outside a given range, the event handler may assign a new style to - this parameter. - Although it is legal to modify the members of the parameter in this - event, this is not recommended, since the change will affect other cells that may be using this style. - - - The code below uses the event to highlight cells that - indicate low stock levels. - - // create style used to display low-stock items - CellStyle cs = _flex.Styles.Add("Critical"); - cs.BackColor = Color.Red; - - private void _flex_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) - { - // ignore fixed cells - if (e.Row < _flex.Rows.Fixed || e.Col < _flex.Cols.Fixed) - return; - - // apply custom style if reorder level is critical - if (_flex.Cols[e.Col].Name == "UnitsInStock") - { - // change the style by applying the "Critical" style to the Style parameter - // (do not change the e.Style.BackColor property directly since that would - // affect other cells that use this style) - if ((short)_flex[e.Row, "UnitsInStock"] < (short)_flex[e.Row, "ReorderLevel"]) - e.Style = _flex.Styles["Critical"]; - } - } - - - - - Represents the method that will handle the and - events. - - - object that raised the event. - - that contains the event data. - - - - Provides data for the and - events. - - - - - Gets the row index for the cell that has an unbound value. - - - - - Gets the column index for the cell that has an unbound value. - - - - - Gets or sets the unbound value that should be displayed in the cell. - - - - - Initializes a new instance of the UnboundValueEventArgs class. - - Row index for the cell that has an unbound value. - Column index for the cell that has an unbound value. - Unbound value that should be displayed in the cell. - - - - Represents the method that will handle the and - events. - - - object that raised the event. - - that contains the event data. - - - - Provides data for the and events. - - - - - Gets the value that specifies the type of aggregate to calculate.. - - - - - Outline level to assign to the new subtotal rows. - - - - - Gets the index of the first column in the range used to detect group breaks. - - - - - Gets the index of the last column in the range used to detect group breaks. - - - - - Gets the index of the column that contains values being aggregated. - - - - - Gets or sets the text to insert in the new subtotal row. - - - - - Gets the index of the new subtotal row. - - - - - Gets a value that determines whether the subtotal row is a new row or the - subtotal is being added to an existing subtotal row. - - - - - Gets the index of the top row in the group. - - - - - Gets the index of the bottom row in the group. - - - - - Gets or sets the calculated aggregate value for the group. - - - - - Gets or sets the to be applied to the new subotal row. - - - - - Whether to cancel the creation of the new subtotal row. - - - - - Initializes a new instance of a object. - - - value that specifies the type of aggregate to calculate. - Outline level to assign to the new subtotal rows. This parameter allows the creation of multi-level subtotals and affects the display of the outline tree. - First column in the range used to detect group breaks. - Last column in the range used to detect group breaks. - Column that contains values being aggregated. - Text to insert in the new subtotal row. - Index of the new subtotal row. - Whether the subtotal row is a new row or the subtotal is being added to an existing subtotal row. - Index of the top row in the group. - Index of the bottom row in the group. - Calculated aggregate value for the group. - - to be applied to the new subotal row. - - - - Represents the method that will handle the event. - - - object that raised the event. - - that contains the event data. - - - - Provides data for the event. - - - - - Gets or sets the value of the localized string. - - - - - Gets the name of the component being localized. - - - - - Parent of the component being localized. - - - - - Component being localized. - - - - - Initializes a new instance of a . - - Value to be localized. - Name of the component being localized. - Parent of the component being localized. - Component being localized. - - - - Specifies the type of filter to be used for a . - - - - - Filter column using a . - - - - - Filter column by values using a . - - - - - Filter column by conditions using a . - - - - - Filter column using a filter specified by the caller. - - - - - Do not provide a filter for this column. - - - - - Specifies a type of glyph (image) used by the grid to convey information about a row, column, or cell. - - - - - Indicates column sorted in ascending order (default is hollow triangle pointing up). - - - - - Indicates column sorted in descending order (default is hollow triangle pointing down). - - - - - Checkbox in checked state. - - - - - Checkbox in unchecked state. - - - - - Checkbox in gray (undefined) state. - - - - - Collapsed tree node (default is plus sign). - - - - - Expanded tree node (default is minus sign). - - - - - Indicates current record (default is black triangle pointing right). - - - - - Indicates row being added to data source (default is asterisk). - - - - - Indicates row or cell error (default is red exclamation sign). - - - - - Indicates that a column has a drop-down filter editor. - - - - - Indicates that a column has a filter currently active. - - - - - Represents a collection of glyphs (images) indexed by glyph type ( type). - - - The collection contains the images used by the grid to indicate column - sorting direction, collapsed and expanded outline groups, check boxes, cursors, error information, etc. - You can use the property get or set these images. - - - - - Gets or sets the glyph for a particular value. - - - Setting a glyph to null causes the grid to use the default image for the glyph. To suppress - a glyph, assign it a small transparent image. - - - - Specifies where the grid should start searching for cells when using the - property. - - - - - No auto-searching. - - - - - Search from the first scrollable row. - - - - - Search from the current row. - - - - - Specifies the action to perform when the ENTER and TAB keys are pressed. - - - - - No special action (allow system to handle the key). For example, the TAB key is normally - used to cycle through the controls on a form. - - - - - Move to the next row. - - - - - Move to the next column. At the end of the row, wrap to the start of the next row. - - - - - Same as MoveAcross, but move the focus to the next control in the tab order when - the last cell in the grid is reached. - This setting applies only to the property; - when used with it behaves like MoveAcross. - - - - - Type of grid element at a specific point on the control. - - - - - The point is in the grid's empty area. - - - - - The point is on a grid cell. (The cell coordinates are stored in the - and properties). - - - - - The point is on a fixed row, over a column. - - - - - The point is near the right edge of a fixed cell, in the column resizing area. - - - - - The point is near the right edge of the last frozen column, in the column freezing area. - - - - - The point is on a fixed column, next to a row. - - - - - The point is near the bottom edge of a fixed cell, in the row resizing area. - - - - - The point is near the bottom edge of the last frozen row, in the row freezing area. - - - - - The point is on a check box. - - - - - The point is on an edit button (drop down, popup editors). - - - - - The point is on the outline bar (visible when the grid's property - has a that contains the flag). - - - - - The point is on the collapse/expand button on an outline tree (visible when the grid's - property contains the flag). - - - - - The point is on the filter icon on a column header cell. - - - - - Contains information, such as the row and column indexes, about a specific coordinate pair - in the control. - - - Use the method to obtain a value. - - - - - Get the index of the row at the point being tested (if the point does not correspond to a cell, it returns -1). - - - - - Get the index of the column at the point being tested (if the point does not correspond to a cell, it returns -1). - - - - - The point on the control surface, in pixels. - - - - - Gets a that describes the type of element described by a . - - - This property allows you to determine whether the point corresponds to a grid cell or - to special elements such as row and column headers, resizing areas, and so on. - - - - The X coordinate of a point on the control surface, in pixels. - - - - - The Y coordinate of a point on the control surface, in pixels. - - - - - Specifies a node with respect to another given node. - - - This enumeration is used with the method. - - - - - The node's top-level parent. - - - - - The node's immediate parent. - - - - - The node's first child. - - - - - The node's last child. - - - - - The node's first sibling (node with same level and same parent). - - - - - The node's last sibling. - - - - - The node's next sibling. - - - - - The node's previous sibling. - - - - - The node's first visible sibling. - - - - - The node's last visible sibling. - - - - - The node's next visible sibling. - - - - - The node's previous visible sibling. - - - - - The node's first visible child. - - - - - Specifies the destination of nodes when they are moved with the method. - - - - - Move the node one level in, deeper into the outline. - - - - - Move the node one level out, towards the root. - - - - - Move the node to the position before its previous sibling. - - - - - Move the node to the position after its next sibling. - - - - - Move the node to the position before its first sibling. - - - - - Move the node to the position after its last sibling. - - - - - Make the node a child of the specified node. - - - - - The class encapsulates properties and methods used for manipulating node rows - (collapsing, expanding, moving, and sorting them). - - - You can create node rows using the method or by setting the - property to true. - - - - - Returns a CellRange object containing this row and all its child rows. - - A CellRange object containing this row and all its child rows. - - The object returned includes all columns. - - - - - Returns a reference to a node located at a given position relative to this node. - - A value from the enumeration that specifies - the position relative to this node. - A node object. - - If the node requested does not exist, returns null (for example, - the root node does not have a previous sibling). - - - - - Creates a node row at a specified position relative to this node. - - A value from the enumeration that specifies - where the new node will be added with respect to this node (e.g. Child, Sibling). - Value of the property for the new node. - Value of the property for the new node. - Value of the property for the new node. - A reference to the new added to the grid. - - - - Creates a node row at a specified position relative to this node. - - A value from the enumeration that specifies - where the new node will be added with respect to this node (e.g. Child, Sibling). - Value of the property for the new node. - A reference to the new added to the grid. - - - - Removes this node row and all its child rows (nodes and data) from the grid. - - - - - Moves a node to a new position. - - A value from the enumeration that specifies - where the node will be moved with respect to its current position. - - object to use as a target when the - parameter is set to . - Returns true if the method was successful, false otherwise. - - - - Moves a node to a new position. - - A value from the enumeration that specifies where - the node will be moved with respect to its current position. - Returns true if the method was successful, false otherwise. - - - - Ensures that this node is visible, expanding its parent nodes and scrolling it into view if necessary. - - - - - Selects the node. - - - This method sets the control's property. - - - - - Sorts this node's child nodes in the specified order. - - One or more values from the enumeration that specify - the type of sorting to be applied (e.g. ascending, descending, case-sensitive, etc). - Start of a range of columns to sort. - End of a range of columns to sort. - - The grid recognizes two types of row: regular rows which contain data, and node rows which are used - to group data. This method only sorts the row nodes; it does not reorder the data rows within each node. - To sort the data rows, use the grid's method instead. - - - - - Sorts this node's child nodes in the specified order. - - One or more values from the enumeration that specify - the type of sorting to be applied (e.g. ascending, descending, case-sensitive, etc). - - The grid recognizes two types of row: regular rows which contain data, and node rows which are used - to group data. This method only sorts the row nodes; it does not reorder the data rows within each node. - To sort the data rows, use the grid's method instead. - - - - - Sorts this node's child nodes using a given object to determine the node order. - - An object that implements the interface used - to compare objects. This can be used to provide custom sorting. - - The grid recognizes two types of row: regular rows which contain data, and node rows which are used - to group data. This method only sorts the row nodes; it does not reorder the data rows within each node. - To sort the data rows, use the grid's method instead. - - - - - Gets or sets the outline level for this node. - - - Higher levels mean deeper nesting. Set the level to zero to create root nodes, - or set the level to negative values to create nodes that do not appear on the outline tree. - - - - - Gets or sets whether this node is collapsed. - - - - - Gets or sets whether this node is expanded. - - - - - Gets the number of child nodes under this node. - - - Only immediate children are included in the count. Grand-children are not included. - - - - - Gets or sets the image on this node row at the column that contains the outline tree. - - - - - Gets or sets the associated with this node row. - - - - - Gets or sets the data on this node row at the column that contains the outline tree. - - - - - Gets or sets the checkbox value associated with this node. - - - - - Returns a reference to the object that corresponds to this node. - - - - - Gets the parent node of this node. - - - - - Gets the previous sibling node. - - - - - Gets the previous visible sibling node. - - - - - Gets the next sibling node. - - - - - Gets the next visible sibling node. - - - - - Gets the first child node. - - - - - Gets the first visible child node. - - - - - Gets the last child node. - - - - - Gets the first sibling node. - - - - - Gets the last sibling node. - - - - - Gets the index of this node in the collection. - - - - - Gets an array containing the children of this node. - - - - - Contains flags that specify printing options to use with the method. - - - - - Print the grid in actual (screen size). If the grid is too wide to fit on a page, columns spill onto - separate pages. If the grid is too tall to fit on a page, rows spill onto additional pages. - - - - - Scale the grid so its width will fit on a single page. If the grid is too tall to fit on a page, - rows spill onto additional pages. - - - - - Scale the grid so it will fit on a single page (rows and columns). - - - - - Show a page setup dialog before printing so the user can select paper size, orientation, and margins. - - - - - Show a print setup dialog before printing so the user can select the printer to use. - - - - - Show a print preview dialog before printing so the user can inspect the document before printing it. - - - - - Show highlighted selection while printing. - - - - - Extend the last column on each printed page. - - - - - Represents a class that encapsulates the control printing functionality, including page and printer - settings, headers, and footers. - - - See also the method. - - - - - Gets the object that specifies page and printer settings. - - - The class is part of the .NET framework, defined in the - System.Drawing.Printing namespace. It contains properties that specify printer and page settings for the document. - - - - - Specifies the font to use for rendering page headers. - - - See also the property. - - - - - Specifies the font to use for rendering page footers. - - - See also the property. - - - - - Gets the number of the page being printed (the first page is numbered one). - - - Applications typically use this property to provide user feedback while printing grids. - - - - - Gets the total number of the pages in the print document. - - - The value returned is accurate only while the document is printing. Before or after - a document is done printing, this property returns zero. - - - - - Gets a reference to the used to display the grid's print preview. - - - Use this property to customize the size and position of the preview dialog when printing the grid - with the option. - - - The code below uses the PrintPreviewDialog property to display the preview dialog with a - custom caption and in a maximized state: - - Form dlg = _flex.PrintParameters.PrintPreviewDialog as Form; - dlg.Text = "Custom Caption"; - dlg.StartPosition = FormStartPosition.Manual; - dlg.WindowState = FormWindowState.Maximized; - _flex.PrintGrid("test", PrintGridFlags.ShowPreviewDialog); - - - - - Gets or sets the flags that specify printing options to use with the - method. See the enumeration for details. - - - - - Gets or sets a string that contains the page headers. - - - The string may be divided by tab characters into up to three sections. The sections are then - left, center, and right-aligned at the top of each page. - The string may contain placeholders "{0}" and "{1}" which are replaced with the current - page number and total page count. - Use the property to select the font used to render the header. - - - The code below specifies a right-aligned header with a "Page n of m" display using a 10-point Tahoma font. - - _flex.Header = "\t\tPage {0} of {1}"; - _flex.HeaderFont = new Font("Tahoma", 10); - _flex.PrintGrid("Header"); - - - - - Gets or sets a string that contains the page footers. - - - The string may be divided by tab characters into up to three sections. The sections are then - left, center, and right-aligned at the top of each page. - The string may contain placeholders "{0}" and "{1}" which are replaced with the current - page number and total page count. - Use the property to select the font used to render the footer. - - - - - Represents an object that renders a into a - paged . - - - This class may be used to print multiple grids, along with other - custom content, into an existing object. - To use it, create one PrintDocumentGridRenderer for each - grid you want to print. Then handle the document events and call the - event for the renderers until the value of the - property equals . - - The code below renders two grids into a : - - // print two grids into an existing PrintDocument - private void button1_Click(object sender, EventArgs e) - { - using (var dlg = new PrintPreviewDialog()) - { - dlg.Document = this.printDocument1; - dlg.ShowDialog(this); - } - } - - // event handlers for the PrintDocument object on the form - PrintDocumentGridRenderer _g1, _g2; - void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e) - { - // create and configure grid renderer for the first grid - _g1 = new PrintDocumentGridRenderer(c1FlexGrid1); - _g1.Options = PrintGridFlags.FitToPageWidth | PrintGridFlags.ExtendLastCol; - - // create and configure grid renderer for the second grid - _g2 = new PrintDocumentGridRenderer(c1FlexGrid2); - _g2.Options = PrintGridFlags.FitToPageWidth | PrintGridFlags.ExtendLastCol; - } - void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) - { - // render first grid - if (_g1.CurrentPage < _g1.PageCount) - { - _g1.PrintPage(e); - e.HasMorePages = true; - } - - // render second grid - else if (_g2.CurrentPage < _g2.PageCount) - { - _g2.PrintPage(e); - e.HasMorePages = _g2.CurrentPage < _g2.PageCount; - } - } - - - - - - Initializes a new instance of a . - - - that will be painted by - this renderer. - - - - Renders the current page into the document. - - - that provides parameters for rendering the page. - - - - Renders a specific page into the document. - - - that provides parameters for rendering the page. - Index of the page to print. - - This method is used to render specific ranges of pages within the document. - - - - - Calculates the zoom factor and page breaks in the document. - - - that contains the page information. - - - - Gets or sets the flags that specify printing options to use with the - method. See the enumeration for details. - - - - - Gets the index of the page being rendered. - - - - - Gets the total number of pages in the document. - - - - - Gets or sets the Y coordinate of the first block of cells rendered on - the document. - - - - - Base class for grid rows and columns ( and classes). - - - - - Initializes a new instance of the class. - - - - - Clears the contents of the row or column. - - - value specifying which elements of the row or - column should be cleared. - - Use this method to reset column properties to their default values (width, visibility, style, - user data, and so on). This method only clears the column object itself, it does not clear - the contents of the cells in the column. - - - - - Moves this row or column to a new position in the collection. - - An integer specifying the new position. - - - - Invalidates an individual row or column, causing it to be repainted. - - - - - Gets or sets whether a Row or Column is visible. - - - This property returns true even if the row or column has been scrolled out of view. - To determine whether a row is currently within view, check the - and properties. - To determine whether a column is currently within view, check the - and properties. - - - - - Gets whether this row is collapsed. - - - Rows are collapsed when one of their parent nodes is collapsed. - Collapsed rows are not visible to the user even if their - property is set to true. - - - - - Gets whether this row is currently visible to the user. - - - This property returns true if the property - is set to true and the row is collapsed ( - property returns false). - - - - - Gets or sets whether this row or column is selected. - - - Use this property to get or set the selection state for individual rows when the grid's - property is set to . - - - - - Gets or sets user data associated with this row or column. - - - The UserData value is not used internally by the grid. It is reserved for additional data that - the application may associate with rows or columns. - - - - - Gets or sets whether the user can drag this row or column with the mouse. - - - The grid object also has an property. - If dragging is disabled at the grid level, the user will not be able to drag any rows or columns. - If dragging is allowed by the grid's property, then - dragging of individual rows and columns can still be disabled by setting this property to false. - - - - - Gets or sets whether the user can resize this row or column with the mouse. - - - To resize rows or columns, the mouse must be over the fixed area of the grid, and close to a border - between rows or columns. The mouse pointer will then change into a sizing pointer and the user can drag - the row or column to change the row height or column width. - If a group of columns is selected (from first to last row) and the user resizes one of them, all - selected columns are resized. The same applies to rows. - If column sizing is allowed, users may double-click the resizing area to resize a column so it will - automatically fit the longest entry. - Rows with zero height and columns with zero width can't be resized by the user. If you want to make - them very small but still resizable, set their height or width to one pixel, not to zero. - The and - events fire before resizing starts, and may be used to prevent resizing of specific rows and columns. - The and - fire after resizing, and may be used to validate the user's action and to update the display. - - - - - Specifies whether adjacent cells with similar contents will be merged. - - - Merging cells allows you to display data in a clear, appealing way because it highlights groups of identical - information. It also gives you flexibility to build tables similar to the ones you can create in HTML or using - Microsoft Word, both of which support merged cells. - To create tables with merged cells, you must set the property to a value other - than , and then set the property of individual - rows and columns true for the rows and columns you wish to merge. - After these properties are set, the grid will automatically merge adjacent cells that have the same - contents. Whenever the cell contents change, the grid updates the merging state. - - - - - Gets or sets whether cells on this row or column can be edited by the user. - - - The grid object also has an property. - If editing is disabled at the grid level, the user will not be able to edit any cells. - If editing is allowed by the grid's property, then - editing of individual rows and columns can still be disabled by setting this property to false. - - - - - Gets or sets the type of object stored in this row or column. - - - By default, the column's DataType property is set to , which allows you to store - any data values in the column. - If you set a row or column's DataType to a specific type, the grid will try to convert any values assigned - to cells in that column to the specified data type. If the conversion fails, the grid will fire a - event and the cell value will not be changed. - - The DataType property affects how values are stored internally in the grid, how they are sorted, and the - type of control that is used to edit the values in the column. For example, a - control is used to edit values in columns, and check boxes are used to display and edit - values in Boolean columns. - If you want to store times (not dates) in a column, you can still use the DateTime type, but you should - use a that displays only the time, not the date. - - - - - - Gets or sets a string that specifies how to format the data on this column. - - - The Format property affects how values are formatted for display, not the values stored internally. - To retrieve the formatted value of a cell, use the property. - The Format string has the same semantics as the format argument in the .NET - method. For details and a complete set of examples, see the .NET documentation. - - - - - Gets or sets the input mask to use when editing cells on this column. - - - The grid also has an property that applies to the entire grid. - For details and mask syntax, refer to that property. - - - - - Gets the index of this row or column in its parent collection. - - - This property returns -1 if the row or column is not a member of the collection. - - - - - Gets or sets a custom associated with this row or column. - - - If the row or column does not have a custom style, this property returns null. - - - - - Gets or sets a custom associated with this row or column, creating a new - style if necessary. - - - This property never returns null. If this element does not have a custom style, a new one will be - created automatically and returned. - - - The code below sets a column's background color to red. - - // get the style associated with column 1 (create a new one if necessary) - CellStyle cs = _flex.Cols[1].StyleNew.BackColor; - - // set the new style's back color to red - cs.BackColor = Color.Red; - - - - - Gets the style used to display this row or column. - - - This property never returns null. If the row or column has a custom style, this property returns that style. - Otherwise, it returns the stock style used to display the row (e.g., Normal, Alternate, Fixed, Frozen). - - - - - Gets the stock used to paint fixed cells in this row or column. - - - - - Gets the custom style associated with fixed cells on this row or column, creating a new one of necessary. - - - If the row or column has a custom style associated with its fixed cells, this property returns that style. - Otherwise, it creates a new , assigns it to the row or column, and returns a reference - to the new style. - - - - - Gets the style used to display fixed cells on this row or column. - - - If the row or column has a custom style associated with its fixed cells, this property returns that style. - Otherwise, it returns the stock style used to display the column (e.g., Normal, Fixed). - - - - - Gets or sets a value that determines how text is aligned in - scrollable cells on this row or column. - - - This property gets or sets the alignment value specified by the - object associated with the column. - - - - - Gets or sets a value that determines how text is aligned in - fixed cells on this row or column. - - - This property gets or sets the alignment value specified by the - object associated with the fixed cells in the row or column. - - - - - Gets or sets an value that determines how images are aligned in - scrollable cells on this row or column. - - - This property gets or sets the alignment value specified by the - object associated with the column. - - - - - Gets or sets an value that determines how images are aligned in - fixed cells on this row or column. - - - - - Gets or sets an object used to translate data values into images for this row or column. - - - Use this property to associate data values in this row or column with images. For example, if a column contains - country names, you can use this property to display the corresponding flags. - Use the property to determine whether the image is displayed instead of or in - addition to the cell text. - - - - - Gets or sets a value that determines whether images found in this row or column's should - be displayed instead of or in addition to the cell text. - - - - - Gets or sets an object used to translate data values into display values - for this row or column. - - - The DataMap property allows you to implement "translated" rows or columns. In translated rows or columns, - the grid does not display the values stored in the cells. Instead, it looks up those values in the column's - DataMap and displays the mapped value. - The grid also uses the DataMap value to populate drop-down lists when the column is editable. - Note that the DataMap property has no effect when the property is also - set. Using both properties on a single row or column is legal, but it effectively disables the DataMap. - - - - - Gets or sets a list of items to be used by the drop-down editor. - - - The ComboList property specifies the type of editor to be used when editing a cell. You may use a text box, - drop-down list, drop-down combo, or an edit button to pop up custom editor forms. - To use the ComboList property, set the property to True, and - set the ComboList property to a string that describes the type of editing you want to use for that cell. - The options are described below: - 1. To edit the cell using a regular text box, set the ComboList property to an empty string (""). - 2. To edit the cell using a drop-down list, set the ComboList property to a string containing the available - options, separated by pipe characters (for example "option 1| option 2"). - 3. To edit the cell using a drop-down combo, set the ComboList property to a string containing the - available options, separated by pipe characters and starting with a pipe character (for example "|option 1|option 2"). - 4. To display an edit button, set the ComboList property to a string containing an ellipsis ("..."). - Edit buttons look like regular push buttons, aligned to the right of the cell, with an ellipsis as a caption. - When the user clicks on the edit button, the grid fires the event. - In this case, the user can't edit the cell contents directly. - 5. To display an edit button next to an editable cell, set the ComboList property to a string containing a - pipe and an ellipsis ("|..."). In this case, you get a regular edit button but the user can also edit the cell - contents directly. - Note that the ComboList property has precedence over the property. - Using both properties on a single row or column is legal, but it effectively disables the DataMap. - - - - - Gets or sets the custom editor used to edit cells in this column. - - - The grid provides several built-in editors that are automatically selected based on the properties of the - cell being edited. - This property allows you to use external editors when editing values in a given column. Any control - can be used as an external editor, but to achieve complete integration with the grid, the external editor should - implement the interface. - You can associate external editors with columns at design time (using the grid's Column Editor) or at run - time, by setting this property. - - - The code below creates a C1DateEdit control and assigns it to the property of a grid - column. The control will be used to edit cells on this column instead of the default - control. - All controls in the C1Input library implement the interface and can be - used as grid editors without any extra code. - - // create C1DateEdit control (included with C1Input) - C1DateEdit dateEdit = new C1DateEdit(); - - // use the new control as an editor for a grid column - _flex.Cols[1].DataType = typeof(DateTime); - _flex.Cols[1].Editor = c1DateEdit; - - - - - - Gets a reference to the control that owns this row or column. - - - - - Class that represents a grid row. - - - This class does not have a public constructor. You can add and remove rows using methods - in the grid's property, which exposes the row collection. - - - - - Clears this row. - - - value specifying which elements of the row should be cleared. - - Use this method to reset row properties to their default values (height, visibility, style, user data, etc.). - - - - - Moves a row to a new position in the collection. - - An integer specifying the row's new position. - - - - Invalidates this row, causing it to be repainted. - - - - - Gets or sets the cell value specified by the column index in this row. - - - - - Gets or sets the cell value specified by the column name in this row. - - - - - Gets the position of the top of this row, in pixels, relative to the grid. - - - The value returned is the sum of row heights from the top of the grid until this row, and - does not account for the scroll position. To account for the scroll position, this value should - be adjusted using the grid's - property. - To retrieve the size and position of a cell, use the method. - - - - - Gets the position of the bottom of this row, in pixels, relative to the grid. - - - The value returned corresponds to the sum of the and properties. - - - - - Gets or sets the height of this row, in pixels (the value -1 represents the default row height). - - - Setting this property to -1 causes the grid to use the default row height for this row - (see the property). - Height returns the height assigned to the row even if the row is invisible, and returns -1 - if the row has the default height. To obtain the actual display height of a row, use the - property. - - - - - Gets or sets the display height for this row, in pixels. - - - HeightDisplay returns zero if the row is invisible, and returns the actual display height - even if the property is set to -1 (which stands for default row height). - - - - - Gets the index of this row in the collection. - - - This property returns -1 if the is not a member of the collection. - See also the and properties. - - - - - Gets the index of this row in the collection. - - - This property is similar to the property, except it throws an exception - if the is not a member of the collection. - - - - - Gets the index of this row in the collection, excluding fixed and node rows. - - - This property returns -1 if the row is a fixed or node row. - If the grid is bound to a data source, the return value can be used as an indexer into the grid's data - source to obtain a reference to the item bound to the row. - You can also obtain the underlying data object directly using the row's property. - - - - - Gets or sets the text of the first fixed cell in the row. - - - - - Indicates the row is a placeholder for adding new rows to the grid. - - - This property returns true for the last row on the grid when the - property is set to true. This is the row that has an asterisk glyph on the first fixed column. - - - - - Gets the object that provides data for this row. - - - The type of object returned depends on the type of DataSource assigned to the grid. For example, - if the grid is bound to a object, then this property will return the - specific object that is bound to this row. - This property returns null if the grid is unbound, or if the row is a fixed or node row that doesn't - correspond to any objects in the grid's data source. - For an example, see the event. - - - - - Gets or sets whether this row is a node row in an outline. - - - This property determines whether the row behaves as a node in an outline tree. - You can use to create custom outline trees, or use the grid's - method to create outline trees automatically. - - - - - Gets the object associated with this row. - - - If the row is a node (see the property), this property returns a - object that can be used to collapse or expand the node, set its level within - the outline tree, etc. - If the row is not a node, this property gets the row's parent node. - - - - - Gets or sets whether this row is selected. - - - Use this property to get or set the selection status for individual rows when the grid's - property is set to . - - - - - Class that represents a grid column. - - - This class does not have a public constructor. You can add and remove - columns using methods in the grid's - property, which exposes the column collection. - - - - - Invalidates this column, causing it to be repainted. - - - - - Clears this . - - - value specifying which elements of the - should be cleared. - - - - Moves a to a new position in the collection. - - An integer specifying the column's new position. - - - - Gets or sets the cell value specified by the row index in this column. - - - - - Gets the position of the left of this column, in pixels, relative to the grid. - - - The value returned is the sum of column widths from the left of the grid until this column, and - does not account for the scroll position. To account for the scroll position, this value should - be adjusted using the grid's - property. - To retrieve the size and position of a cell, use the method. - - - - - Gets the position of the right of this column, in pixels, relative to the grid. - - - The value returned corresponds to the sum of the and properties. - - - - - Gets or sets the width of this column, in pixels (the value -1 represents the default column width). - - - Setting this property to -1 causes the grid to use the default column width for this column - (see the property). - - Width returns the width assigned to the column even if the row is invisible, and - returns -1 if the row has the default height. To obtain the actual display width of a column, - use the property. - - - - - Gets or sets the display width for this column, in pixels. - - - WidthDisplay returns zero if the column is invisible, and returns the actual display width - even if the property is set to -1 (which stands for default column width). - - - - - Gets the index of this column in the collection. - - - This property is similar to the property, except it throws an exception - if the is not a member of the collection. - - - - - Gets the position of the column in the data source object. - - - This property returns -1 for fixed and unbound columns. - - - - - Gets or sets whether this column can be sorted by clicking on the column header. - - - The grid has an property that determines whether columns can be - sorted with the mouse. The AllowSorting property of the objects can be used to prevent - the user from sorting specific columns. - - - - - Gets or sets this type of filter to use for this column. - - - The grid has an property that determines whether - columns can be filtered by the user. If that property is set to true, then filters are created - automatically for each column based on the setting of the column's - property. - The grid provides condition and value filters. Condition filters allow users to specify - conditions such as 'value > 10'. Value filters allow users to select values that should be displayed - from a list of values present in the data source. All filters can be customized in code as shown - in the examples below. - - - The code below customizes the filters for two columns. The "ShipRegion" column is initialized to - show only two states, AK and CA. The "UnitPrice" column is initialized to show only items with - unit price greater than $30. After the column filters have been initialized, the code calls the - method to apply the filters. - - // initialize "ShipRegion" column filter to show only two values: "AK" and "CA" - var col = _flex.Cols["ShipRegion"]; - col.AllowFiltering = AllowFiltering.ByValue; - var vf = col.Filter as ValueFilter; - vf.ShowValues = new object[] { "AK", "CA" }; - - // initialize "UnitPrice" column filter to show only values greater than $30 - col = _flex.Cols["UnitPrice"]; - col.AllowFiltering = AllowFiltering.ByCondition; - var cf = col.Filter as ConditionFilter; - cf.Condition1.Operator = ConditionOperator.GreaterThan; - cf.Condition1.Parameter = 30; - - // apply both column filters to the data - _flex.ApplyFilters(); - - - - - Gets or sets the responsible for filtering this column. - - - - - Gets the that is currently filtering this column. - - - - - Gets or sets the name of this column. - - - The name can be used as an index in the property indexer. - When the grid is bound to a DataSource, the column names are set automatically to the names - of columns in the data source, and are used for binding. - - - - - Specifies how this column should be sorted when the method is called - with a flag. - - - Use this property when you want to sort multiple columns in different orders. For example, you could - set the Sort property to for columns 1, 2, and 3, and to - for columns 4, 5, and 6. - You would then call the grid's method with the sort parameter - set to to perform the sort using the order specified for each column. - - - - - Gets the index of this column in the collection. - - Returns -1 if the column is not a member of the collection. - - - - Gets or sets whether this column is selected. - - - - - Gets or sets the text of the column's header cell. - - - - - Base class for grid row and column collections ( - and classes). - - - - - Moves a row or column to a new position in the collection. - - Index of row or column to be moved. - New position. - - - - Moves a range of rows or columns to a new position in the collection. - - The index of the first row or column in the range to be moved. - The number of rows or columns that will be moved. - New position. - - - - Determines whether the collection contains a given row or column. - - Row or column items to be detected. - True if the row or column is a member of the collection, False otherwise. - - - - Gets the index of the previous visible row or column. - - Index of the original row or column. - Index of the previous visible row or column. - - - - Gets the index of the next visible row or column. - - Index of the original row or column. - Index of the next visible row or column. - - - - Updates the position of rows or columns. - - - - - Gets or sets the number of rows or columns in the collection. - - - - - Gets or sets the number of fixed rows or columns in the collection. - - - - - Gets or sets the number of frozen rows or columns in the collection. - - - Use the property to determine whether - the user can freeze rows or columns with the mouse. - - - - - Gets or sets the minimum size for rows and columns in the collection. - - - The MinSize property limits the minimum size of rows or columns when they are resized by the user or - adjusted to fit the contents with the or - method. - - - - - Gets or sets the maximum size for rows and columns in the collection. - - - The MaxSize property limits the maximum size of rows or columns when they are resized by the user or - adjusted to fit the contents with the or - method. - Setting this property to zero disables it. - - - - - Gets or sets the default size of the rows or columns in the collection (in pixels). - - - This value is set automatically when the grid's property changes. - The default size is used when the row's Height property or columns Width property is set to -1. - - - - - Gets a reference to the control that owns this collection. - - - - - Collection of grid objects. - - - - - Appends a new object to the collection. - - - The Add method appends a new row to the collection. To insert a row at a specific position, - use the method. - - A reference to the that was added to the collection. - - - - Appends a given number of objects to the collection. - - Number of rows to add to the collection. - - - - Adds a new object to the collection at a specified position. - - The position where the new row will be inserted. - A reference to the that was added to the collection. - - - - Adds a new row to the row collection at a specified position. - - The position where the new node row will be inserted. - Outline level for the new node row. - A reference to the that was added to the collection. - - This method is especially useful when the grid is bound to a data source, because in this - case you can't change the value of the property. When the grid - is unbound, you can add rows and turn them into nodes later using the property. - - - - - Appends a new row to the row collection. - - Outline level for the new node row. - A reference to the that was added to the collection. - - - - Adds a range of rows to the collection at a specified position. - - The position where the new range will be inserted. - The number of rows to add. - - - - Removes a object from the collection. - - The index of the row to remove from the collection. - A reference to the that was removed from the collection. - - - - Removes a object from the collection. - - The row to be removed. - A reference to the that was removed from the collection. - - - - Removes a range of rows from the collection. - - The index of the first row to remove from the collection. - The number of rows to remove from the collection. - - - - Move a object to a new position in the collection. - - Index of row to be moved. - New position for the row. - - - - Moves a range of rows to a new position in the collection. - - The index of the first row in the range that will be moved. - The number of rows that will be moved. - New position for the first row in the range. - - - - Updates the position and data index of each row in this collection. - - - - - Gets the at the specified index. - - - Use the object returned by this method to set attributes such as row - height, visibility, style, selected state, and so on. - - - - - Gets or sets the number of rows in the collection. - - - You can add or remove rows by assigning a new value to this property, or you can use the - , , , and methods. - - - - - Gets or sets the index of the row used to display the sorting and filtering glyphs. - - - The default value is -1, which causes the sorting and filtering glyphs to be shown - on the last fixed row. If you set this property to a value larger than the number - of fixed rows, then the glyphs will not be displayed. - - - - - Gets or sets the number of fixed rows in the collection. - - - - - Gets a collection of objects that are currently selected. - - - This property is especially useful when the grid's property - is set to . - - - The code below removes all selected rows from the grid. - Note that foreach loops can't be used to modify the collections being iterated over. This example - works because the collection is being enumerated while the - collection is being modified. - - // delete all selected rows - foreach (Row r in _flex.Rows.Selected) - { - _flex.Rows.Remove(r); - } - - - - - - Collection of grid objects. - - - - - Gets a value that determines whether the collection contains a with the given name. - - Column name to look for (case-insensitive). - True if the collection contains a column with the given name, False otherwise. - - - - Gets the index of the with the specified name. - - Column name to look for (case-insensitive). - Index of the column that has the given name in this collection, or -1 if the collection - does not contain a column with the given name. - - - - Gets the index of the with the specified name. The search starts at a specified index. - - Column name to look for (case-insensitive). - The search starting index. - Index of the column that has the given name in this collection, or -1 if the collection - does not contain a column with the given name. - - - - Gets the index of the with the specified name, optionally - throwing an exception if the column is not found. - - Column name to look for (case-insensitive). - Whether to throw and exception if the column cannot be found. - Index of the column that has the given name in this collection, or -1 if the collection - does not contain a column with the given name. - If the parameter is set to true and - a column named cannot be found, the control throws - an . This makes it easier to write - compact code that relies on column names. - - The example below uses the IndexOf method to convert column names into - indices. Note that if the column names are invalid, the exception will be thrown - by the IndexOf method (column not found) rather than in the following - method, where it would not be as clear (invalid index). - - int columnIndex = _flex.Cols.IndexOf("total"); - _flex.AutoSizeCol(columnIndex); - - - - - Gets the index of the with the specified name, optionally - throwing an exception if the column is not found. The search starts at a specified index. - - Column name to look for (case-insensitive). - Whether to throw and exception if the column cannot be found. - The search starting index. - Index of the column that has the given name in this collection, or -1 if the collection - does not contain a column with the given name. - If the parameter is set to true and - a column named cannot be found, the control throws - an . This makes it easier to write - compact code that relies on column names. - - The example below uses the IndexOf method to convert column names into - indices. Note that if the column names are invalid, the exception will be thrown - by the IndexOf method (column not found) rather than in the following - method, where it would not be as clear (invalid index). - - int columnIndex = _flex.Cols.IndexOf("total"); - _flex.AutoSizeCol(columnIndex); - - - - - Appends a new object to this collection. - - A reference to the that was added to the collection. - - - - Appends a given number of objects to the collection. - - Number of columns to add to the collection. - - This method adds the new columns to the end of the collection. To insert columns at specific - positions, use the or methods. - - - - - Adds a new object to this collection at a specified position. - - The position where the new column will be inserted. - A reference to the that was inserted to the collection. - - - - Adds a range of objects to the collection at a specified position. - - The position where the new range will be inserted. - The number of columns to add. - - - - Removes a object from the collection. - - The index of the column to remove from the collection. - A reference to the that was removed from the collection. - - - - Removes a object from the collection. - - The column to remove. - A reference to the that was removed from the collection. - - - - Removes a object from the collection. - - Name of the column to remove. - A reference to the that was removed from the collection. - - - - Removes a range of objects from the collection. - - The index of the first column to remove from the collection. - The number of columns to remove from the collection. - - - - Moves a object to a new position in the collection. - - Index of the column to be moved. - New position for the column. - - - - Moves a range of objects to a new position in the collection. - - The index of the first column in the range that will be moved. - The number of columns that will be moved. - New position for the first column in the range. - - - - Gets a string build a string that contains a complete description of - the column collection, suitable for persisting the control state. - - Whether to include default values in the description. - A string that describes the column collection. - - - - Parses a string containg a description of the column collection (usually obtained - by calling the method) and applies it to a grid. - - Grid that receives the column collection. - String that contains the column collection definition. - True if the column definition was applied successfully. - - - - Gets the at the specified index. - - - - - Gets the that has the specified column name. - - - You can use the object returned by this method to set - attributes such as column height, visibility, style, selected state, and so on. - This indexer looks for a column with the specified . - The column name is set automatically for you when the grid is bound to a database, - or it may be set using code. - - - - - Gets or sets the number of objects in this collection. - - - You can add or remove columns by assigning a new value to this property, or you can use the - , , , and methods. - - - - - Gets or sets the number of fixed columns in this collection. - - - - - Gets a collection of objects that are currently selected. - - - - - Specifies the type of file to save or load with the - and methods. - - - - - Text file, cells separated with commas. - - - - - Text file, cells separated with tabs. - - - - - Text file, cells separated with the character specified by the - property. - - - - - Microsoft Excel files (Xls/biff-8 or OpenXml formats). - - - - - Specifies options for use with the and - methods. - - - - - Use default settings. - - - - - Include fixed cells when loading or saving the grid. - - - - - Save only visible rows and columns. - - - - - Save only selected rows. - - - - - Save values as displayed (including formatting and mapping where available). - This flag has no effect when saving text files, which always contain values as displayed. - - - - - Save merged ranges when exporting to Excel with the method. - This flag has no effect when saving text files, it only affects Excel output. - - - - - Load merged ranges when importing from Excel with the method. - This flag has no effect when loading text files, it only affects Excel input. - - - - - Save and load merged ranges when exporting to or importing from Excel with the - and methods. - - - - - Do not freeze rows and columns when exporting to or importing from Excel with the - and methods. - - - - - Load or save file in OpenXml (Office 2007) format. - - - - - Save nodes as Excel groups when exporting to Excel. - - - - - Specifies the type of selection provided by the grid. - - - - - The user can select continuous blocks of cells using the keyboard and the mouse. - Clicking on header cells selects entire rows and columns. - - - - - The user can select only a single cell at a time. - - - - - The user can select continuous blocks of cells using the keyboard and the mouse. - Clicking on header cells does not affect the selection. - - - - - The user can select a single row at a time. - - - - - The user can select a range of contiguous rows at a time. - - - - - The user can select a single column at a time. - - - - - The user can select a range of contiguous columns at a time. - - - - - The user can select non-contiguous rows using control-click. - - - - - This enumeration is for internal use only. - - - - - No movement. - - - - - One cell left, then wrap to previous row. - - - - - One cell right, then wrap to next row. - - - - - One cell up. - - - - - One cell down. - - - - - One cell left. - - - - - One cell right. - - - - - Page up. - - - - - Page down. - - - - - Page left. - - - - - Page right. - - - - - Top cell. - - - - - Bottom cell. - - - - - Leftmost cell. - - - - - Rightmost cell. - - - - - Enumeration used to retrieve objects from the - collection. - - - Cell styles can be retrieved from the collection using the - indexer or the style name. Built-in styles can also be obtained directly through read-only properties. - - - The code below shows three ways to obtain a reference to a grid's default style: - - // s1, s2, and s3 are all references to the grid's Normal style: - CellStyle s1 = _flex.Styles[CellStyleEnum.Normal]; - CellStyle s2 = _flex.Styles["Normal"]; - CellStyle s3 = _flex.Styles.Normal; - - - - - Style used to render scrollable normal cells. - - - This is the parent style for most cells. Setting the control's BackColor, - ForeColor, or Font properties automatically sets the corresponding properties - on the Normal style. - If you change any properties in the Normal style, the changes will be reflected - in all styles that do not explicitly override those properties. - - - - - Style used to render scrollable cells in even-numbered rows. - - - - - Style used to render fixed cells. - - - - - Style used to render cells that are selected and highlighted. - - - - - Style used to render the cell that has the focus. - - - - - Style used to render cells being edited. - - - - - Style used to render cells that are being selected as the user types (see the property). - - - - - Style used to render cells that are frozen (editable and selectable, but not scrollable). - - - - - Style used to render cells that are frozen (editable and selectable, but not scrollable) in even-numbered rows. - - - - - Style used to render the last row on the grid when the property is set to true. - - - - - Style used to render the area of the grid where there are no cells. - - - - - Style used to render selected column headers. - - - - - Style used to render selected row headers. - - - - - Style automatically assigned to grand total nodes created with the method. - - - - - Style automatically assigned to level-0 nodes created with the method. - - - - - Style automatically assigned to level-1 nodes created with the method. - - - - - Style automatically assigned to level-2 nodes created with the method. - - - - - Style automatically assigned to level-3 nodes created with the method. - - - - - Style automatically assigned to level-4 nodes created with the method. - - - - - Style automatically assigned to level-5 nodes created with the method. - - - - - Style used to paint the filter editors. - - - - - Constant that indicates the first custom style. - - - - - Specifies how text is aligned in a grid cell. - - - - - Text is horizontally aligned to the left and vertically aligned to the top of the cell. - - - - - Text is horizontally aligned to the left and vertically aligned to the center of the cell. - - - - - Text is horizontally aligned to the left and vertically aligned to the bottom of the cell. - - - - - Text is horizontally aligned to the center and vertically aligned to the top of the cell. - - - - - Text is horizontally aligned to the center and vertically aligned to the center of the cell. - - - - - Text is horizontally aligned to the center and vertically aligned to the bottom of the cell. - - - - - Text is horizontally aligned to the right and vertically aligned to the top of the cell. - - - - - Text is horizontally aligned to the right and vertically aligned to the center of the cell. - - - - - Text is horizontally aligned to the right and vertically aligned to the bottom of the cell. - - - - - Numbers are aligned to the right, other values to the left, and vertically aligned to the top. - - - - - Numbers are aligned to the right, other values to the left, and vertically aligned to the center. - - - - - Numbers are aligned to the right, other values to the left, and vertically aligned to the bottom. - - - - - Specifies a 3D effect to use when rendering cell text. - - - - - No 3D effect. - - - - - Text is drawn with a shadow offset by one pixel to the right and below the text. - - - - - Text is drawn with a shadow offset by one pixel to the left and above the text. - - - - - Specifies how images are aligns in grid cells. - - - - - Image is horizontally aligned to the left and vertically aligned to the top of the cell. - - - - - Image is horizontally aligned to the left and vertically aligned to the center of the cell. - - - - - Image is horizontally aligned to the left and vertically aligned to the bottom of the cell. - - - - - Image is horizontally aligned to the center and vertically aligned to the top of the cell. - - - - - Image is horizontally aligned to the center and vertically aligned to the center of the cell. - - - - - Image is horizontally aligned to the center and vertically aligned to the bottom of the cell. - - - - - Image is horizontally aligned to the right and vertically aligned to the top of the cell. - - - - - Image is horizontally aligned to the right and vertically aligned to the center of the cell. - - - - - Image is horizontally aligned to the right and vertically aligned to the bottom of the cell. - - - - - Image is scaled to fit the maximum area within the cell while preserving the original aspect ratio. - - - - - Image is stretched to cover the whole cell. - - - - - Image is tiled to cover the whole cell. - - - - - Image is not displayed. - - - - - Image is split into a grid, corner parts are copied and center is stretched to cover the cell. - - - This tiling mode preserves the corners and borders of the source image, and is designed to be - used with the property. - - - - - Specifies whether a style should display the cell text, image, both, or none. - - - - - Display text only (no image). - - - - - Display image only (no text). - - - - - Display the text over the image. - - - - - Display the text next to the image. - - - - - Nothing (cell stays blank). - - - - - Specifies the direction to use when rendering text in a grid cell. - - - - - Text is rendered in the horizontal direction. - - - - - Text is rendered from the bottom of the cell to the top. - - - - - Text is rendered from the top of the cell to the bottom. - - - - - Specifies the type of cell border to display. - - - - - No border. - - - - - Solid flat border. - - - - - Double border. - - - - - Raised border. - - - - - Inset border. - - - - - Groove border. - - - - - Fillet border. - - - - - Dotted border. - - - - - Specifies the direction of cell borders. - - - - - Draw cell borders in both directions. - - - - - Draw cell borders only in the horizontal direction. - - - - - Draw cell borders only in the vertical direction. - - - - - Contains flags that specify which style elements are defined in a object. - - - This enumeration can be used to inspect styles and determine which elements it defines, and it - can also be used to clear specific elements from the style. - Any elements not defined in the style are inherited from the parent style. - - - - - No elements are defined. - - - - - The style defines a font. - - - - - The style defines a background color. - - - - - The style defines a foreground color. - - - - - The style defines margins. - - - - - The style defines borders. - - - - - The style defines the text alignment. - - - - - The style defines a 3D effect for the text. - - - - - The style defines the image alignment. - - - - - The style defines the spacing between images and text. - - - - - The style defines how long strings are trimmed to fit within cells. - - - - - The style defines whether long strings are allowed to wrap within cells. - - - - - The style defines whether to display text and/or images, in the cells. - - - - - The style defines a format string used to convert data into strings. - - - - - The style defines an edit mask used to constrain values entered in the cells. - - - - - The style defines a list of choices used to populate drop down editors. - - - - - The style defines an used to associate cell data with images. - - - - - The style defines the of values contained in the cells. - - - - - The style defines an used to associate cell data with display values. - - - - - The style defines whether text should be rendered horizontally or vertically. - - - - - The style defines an external control to be used as an editor for the cells. - - - - - The style contains arbitrary user data (not used by the control). - - - - - The style specifies a background image. - - - - - The style specifies a background image alignment. - - - - - All style elements. - - - - - Collection of objects defined for a grid. - - - - - Adds a new object to the collection. - - Name of the new style. - Base style, used to initialize the properties of the new style. - The new object. - - If a style with the given name already exists, the existing style is returned and no - exception is thrown. - - - - - Adds new object to the collection. - - Name of the new style. - Name of the base style, used to initialize the properties of the new style. - The new object. - - - - Adds a new empty object to the collection. - - Name of the new style. - The new object. - - - - Removes a custom style from the collection. - - Index of the style to be removed. - - Built-in styles can't be removed. - - - - - Removes a custom style from the collection. - - Name of the style to be removed. - - Built-in styles can't be removed. - - - - - Removes a custom style from the collection. - - Style to be removed from the collection. - - Built-in styles can't be removed. - - - - - Clear all styles (even those in use) and reset the built-in styles. - - - The Clear method also removes any custom styles assigned to rows, columns, - and cells. - - - - - Clear all unused styles. - - - Unused styles are unnamed styles that were created and are no longer assigned to - any grid elements. - - - - - Checks whether the collection contains a given style. - - Name of the style to look for. - True if the collection contains a style called , false otherwise. - - - - Gets the index of a style in the collection. - - Style object to look for. - Index of the style in the collection, or -1 if the style is not a member of the collection. - - - - Builds and returns a compact string representation of the style collection. - - Whether styles with no attributes should be included. - A compact string representation of the style collection. - - This method is used internally to implement design-time persistence. - It can also be used for implementing 'skins', by saving the current styles into - a collection and later applying them to the grid using the method. - - - - - Parses a string containing style definitions. - - String containing style definitions. - True if the string was parsed successfully, false otherwise. - - The style definition string is usually obtained from a call to method. - The new definitions are merged with the current ones. To completely replace the styles, - call the method before parsing the new styles. - - - - - Gets the default style used to paint scrollable cells. - - - - - Gets the style used to paint scrollable cells in alternate rows. - - - This style is empty by default, so all scrollable cells are rendered using the style. - - - - - Gets the style used to paint fixed cells. - - - - - Gets the style used to paint selected column headers. - - - - - Gets the style used to paint selected column headers. - - - - - Gets the style used to paint highlighted selected cells. - - - Use the property to determine whether cells should be - highlighted when the control does not have the focus. - Use the property to determine what types of selection - are allowed. - - - - - Gets the style used to paint the current cell when the control has focus. - - - This style is empty by default, so focused cells are rendered using the style. - - - - - Gets the style used to paint the cell being edited. - - - This style is empty by default, so cells being edited are rendered using the style. - - - - - Gets the style used to paint the cell selected while auto-searching. - - - Use the property to enable auto-searching. - - - - - Gets the style used to paint frozen cells (frozen cells are editable and selectable, but not scrollable). - - - - - Gets the style used to paint frozen cells (frozen cells are editable and selectable, but not scrollable) in alternate rows. - - - This style is empty by default, so frozen cells are rendered using the style. - - - - - Gets the style used to paint cells in the new row template at the bottom of the grid. - - - The new row template is only present when the property is set to true. - - - - - Gets the style used to paint the area of the grid below and to the right of all the cells. - - - Only the and elements of - this style are used. They define the appearance of the space between the last cell and the edges of - the control. - The value defines the color of the lines drawn around the - edge of the sheet and between frozen and scrollable cells. - - - - - Gets the style used to paint the column filter editors. - - - This style is only used if the grid's property - is set to true. - - - - - Gets a by index. - - - - - Gets a built-in by style type. - - - - - Gets a by name. - - - If the specified name doesn't exist, this indexer returns null. - - - - - Gets the number of objects in the collection. - - - - - The class encapsulates properties that control the appearance of grid cells. - This information includes the background and foreground colors, font, text and image alignment, etc. - - - The property exposes a collection of grid styles, and has - methods for creating and removing styles from the grid. - You can create and define styles at design time, but right-clicking the grid and selecting the - "Edit Styles" menu option. - Styles follow a hierarchical model similar to styles in Microsoft Word or in cascading style sheets. - Every property in a object may be left unassigned, in which case the value is - inherited from a parent style. The parent style is usually the built-in - style. - To determine which elements are defined in a particular style, use the - property. - When you modify the properties of a object, all cells that use that style - are automatically repainted to reflect the changes. - Styles may be assigned to , , and - objects, as shown in the example below. - - - The example below creates three objects and assigns them to grid rows, columns, - and cell ranges. - - // create style with red background - CellStyle cs = _flex.Styles.Add("red"); - Style.BackColor = Color.Red; - - // create style with green background - cs = _flex.Styles.Add("green"); - Style.BackColor = Color.Green; - - // create style with bold font - cs = _flex.Styles.Add("bold"); - Style.Font = new Font("Tahoma", 8, FontStyle.Bold); - - // assign red style to a column - _flex.Cols[3].Style = _flex.Styles["red"]; - - // assign green style to a row - _flex.Rows[3].Style = _flex.Styles["green"]; - - // assign bold style to a cell range - CellRange rg = _flex.GetCellRange(2, 2, 4, 4); - rg.Style = _flex.Styles["bold"]; - After running this code, the third column of the grid will be painted with a red background. The - third row will be painted with a green background. The cell at the intersection will be painted - in red, because column styles have priority over row styles. The remaining style elements for these - cells (font, alignment, etc) are not defined in the new styles and are automatically inherited from - the parent style ().The cells around the intersection will have a bold font. The style that defines the bold font - does not specify a background color, so that element is inherited from the parent style, which may be - the "red", "green", or "normal" styles. - - - - Clears selected elements from this style. - - - - - Clears all elements in this style. - - - - - Copies all elements defined in a source style to this style. - - - This method is used to create styles preserving existing style elements - such as or . - - - The code below changes a column so it looks like a fixed column, without - modifying the column's data type, alignment, etc. - - // create a new style - CellStyle cs = _flex.Styles.Add("newStyle"); - - // set data type, alignment - cs.DataType = typeof(int); - cs.TextAlign = TextAlignEnum.CenterCenter; - - // copy remaining elements from "Fixed" style - cs.MergeWith(_flex.Styles.Fixed); - - // assign new style to grid column - _flex.Cols[col].Style = cs; - - - - - Returns a compact string representation of this . - - A string containing the settings of all style elements defined in this CellStyle. - - This method is used to persist grid styles and can be used to define and save 'skins'. - See the and - methods. - The string returned contains definitions only for the style elements that are defined by this - . Elements inherited from other styles are not included. To build a string containing - specific elements, use the method instead. - - - The code below creates a style with a custom font and background color and builds a string that represents - the new style. Then it uses the string to initialize a second style. - - // create style with custom font and back color - CellStyle cs = _flex.Styles.Add("s1"); - cs.Font = new Font("Arial", 12, FontStyle.Bold); - cs.BackColor = Color.Beige; - - // save style definition into a string - string styleDef = cs.BuildString(); - - // use string to initialize another style - CellStyle csNew = _flex.Styles.Add("s2"); - csNew.ParseString(styleDef); - - // compare styles - Debug.Assert(csNew.Font.Equals(cs.Font)); - Debug.Assert(csNew.BackColor.Equals(cs.BackColor)); - - - - - Returns a string representation of this . - - - that specifies which style elements should be included in the string. - A string containing the settings of the specified style elements. - - This method is used to persist grid styles and can be used to define and save 'skins'. - See the and - methods. - - - The code below shows the effect of specifying different values for the parameter. It builds - one compact string containing only the elements actually defined in a style, and another including all style elements. - - // build compact and a long style definition strings - string s1 = _flex.Styles.Fixed.BuildString(); - string s2 = _flex.Styles.Fixed.BuildString(StyleElementFlags.All); - - // show both style definitions - Console.WriteLine("{0}: {1}", s1.Length, s1); - Console.WriteLine("{0}: {1}", s2.Length, s2); - - - - - Rebuilds this style based on a description contained in a string. - - True if the string was successfully parsed, false otherwise. - - This method is used to persist grid styles and can be used to define and save 'skins'. - See the and - methods. - - - - - Renders a string and an image into a object using this style. - - - object to render into. - Area where the element will be displayed. - Text to render. - Image to render. - Combination of that determines which elements will be rendered. - - This method allows using objects to render objects outside the grid. It can be - useful when implementing owner-drawn applications and style editors for example. - - - - - Renders a string and an image into a object using this style. - - - object to render into. - Area where the element will be displayed. - Text to render. - Image to render. - - - - Renders a string and an image into a object using this style. - - - object to render into. - Area where the element will be displayed. - Text to render. - - - - Renders a string and an image into a object using this style. - - - object to render into. - Area where the element will be displayed. - Image to render. - - - - Gets the content portion of a cell's rectangle. - - Cell rectangle. - A rectangle that represents the content portion of a cell, discounting the - area taken up by the cell borders. - - - - Gets the text portion of a cell's rectangle. - - Cell rectangle. - Image that shares the cell space with the text. - A rectangle that represents the text portion of a cell, discounting the - area taken up by the cell borders, padding, and images. - - - - Gets the image portion of a cell's rectangle. - - Cell rectangle. - Image to be displayed on the cell. - A rectangle that represents the image portion of a cell, discounting the - area taken up by the cell borders and padding. - - - - Determines whether two objects are equal. - - Style to compare with this style. - True if the two styles are equal, false otherwise. - - - - Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. - - A hash code for the style instance. - - - - Gets or sets the style name. - - - Style names must be unique. Setting a style name to the name of an already existing - style will throw an exception. - Style names must have one or more characters and may not include curly braces ('{' and '}'). - - - - - Gets or sets the color used to paint the cell background. - - - - - Gets or sets the color of the text in the cell. - - - - - Gets or sets the font used to paint text in the cell. - - - Setting the control's Font property automatically sets the Font - property of the Normal style. - - - - Gets or sets the margins between the edges of the cell and its contents, in pixels. - - - - - Gets or sets whether long strings should automatically wrap within the cell. - - - This property determines whether the grid should automatically break - long strings that contain spaces and display them in multiple lines. - String that contain hard line breaks (vbCrLf or "\n\r") are always - displayed in multiple lines. - - - - - Gets or sets how long strings are trimmed to fit the cell. - - - - - Gets or sets the text alignment. - - - - - Gets or sets the 3D effect used to paint text. - - - - - Gets or sets the text direction. - - - Cells containing vertical text can wrap and be auto sized as usual. - - - - - Gets or sets the image alignment. - - - - - Gets or sets the space between images and text in a cell, in pixels. - - - - - Gets or sets whether to show images, text, or both. - - - - - Gets or sets the format string used to display values. - - - - - Gets or sets the mask string used to edit values. - - - - - Gets or sets a pipe-delimited list of valid values. - - - If the cell is editable, this list of values is used to populate the drop-down - used to edit the cell. - If the list starts with a pipe character, then the list is not exclusive and the - user may type values that are not on the list. - If the list contains three periods ("..."), then a button is displayed in the - cell. When the user presses the button, the grid fires the - event. - If the list contains a pipe followed by three periods ("|..."), then a button is - displayed in the cell as before, and the user may also type into the cell. - See also the property for an alternate way of specifying - valid values for a cell. - - - - - Gets or sets an used to associate cell values with images. - - - - - Gets or sets an used to associate cell values with display values. - - - If the cell is editable, this list of values is used to populate the drop-down - used to edit the cell. In this case, the order of the items in the - combo list is determined by the order of the elements in the dictionary. - The most common dictionary class, , uses arbitrary order. - If you want control over the item order, use a different dictionary class such as - . - The C1FlexGrid assembly also includes a class, - which can be used to create multi-column and data-bound dictionaries. - - - - - Gets or sets the data type for the style. - - - When the grid is bound to a data source, this property is set automatically based on the - data schema. - This property is used to coerce values assigned to cells into the proper type. - - - - - Gets the CellBorder object associated with this style. - - - - - Gets or sets the custom editor used to edit cells that have this style. - - - The grid provides several built-in editors that are automatically - selected based on the properties of the cell being edited. - This property allows you to use external editors when editing values - that have a given . Any control can be used as an - external editor, but to achieve complete integration with the grid, the - external editor should implement the interface. - For details, see the property. - - - - - Gets or sets arbitrary user data associated with this style. - - - This data is not used by the control, and can be used to store any data that is - useful to the application. - - - - - Gets or sets the style's background image. - - - This property works with to determine - whether and how background images are rendered in cells. - - - - - Gets or sets the a value that determines how the style will scale and - position background image. - - - This property works with to determine - whether and how background images are rendered in cells. - - - - - Gets or sets which elements are defined in this style. - - - Elements that are not defined in a particular style are automatically - inherited from the ancestor style (usually the Normal style). - For example, if you create a custom style that defines the - property, all other elements (back color, - alignment, and so on) are inherited from the ancestor style, which may - be the Normal style or another custom style assigned to a row or - column. - - - - - Gets the element used for rendering - strings when the - property is set to true. - - - - - The class encapsulates properties that control the appearance of borders in - objects. - - - - - Gets or sets the border style. - - - - - Gets or sets the border direction. - - - - - Gets or sets the border color (except for 3D borders). - - - 3D borders are always drawn using the system colors defined for highlights and shadows. - - - - - Gets or sets the border width (except for 3D borders). - - - 3D borders are always one or two pixels wide. - - - - - Specifies the appearance of the outline tree. - - - - - Do not show the outline tree. - - - - - Show tree lines next to node rows. - - - - - Show expand/collapse symbols on node rows. - - - - - Show outline buttons across the top fixed row. - - - - - Show tree lines next to all rows (nodes and data). - - - - - Combination of , , and - . - - - - - Combination of and . - - - - - Combination of , , - and . - - - - - Combination of , , and - . - - - - - The GridTree class encapsulates properties that specify the appearance, position, and behavior of the outline tree. - - - Each grid has a single GridTree object, which can be obtained using the property. - - - - - Resets the object. - - - - - Expands all nodes up to the specified level, collapses others. - - The level to show. Any nodes with higher than this - will be collapsed, others will be expanded. - - - - Sorts all nodes at the given level. - - Level of the nodes to sort. - - value that controls sort direction and options. - Start of the range of columns to sort. - End of the range of columns to sort. - - The grid recognizes two types of row: regular rows which contain data, and node rows which are used - to group data. This method only sorts the row nodes; it does not reorder the data rows within each node. - To sort the data rows, use the grid's method instead. - - - - - Sorts all nodes at the given level using the specified comparer. - - Level of the nodes to sort. - An object that compares objects. - - - - Gets or sets the color of the lines in the outline tree. - - - See also the property. - - - - - Gets or sets the line style used to draw the outline tree. - - - By default, this property is set to DashStyle.Dot, which causes the tree - to be drawn with dotted lines. You can change the value of this property to draw the - tree using solid lines instead. - - - - - Gets or sets the style of the outline tree. - - - Use the Style property to determine whether the outline tree should include lines connecting - the nodes and buttons for collapsing and expanding the nodes. See the - enumeration for details. - Use the property to determine where the grid will show the outline tree. - - - - - Gets or sets the index of the column where the outline tree is displayed. - - By default, this property is set to -1, which causes the tree to be hidden. - - - - Gets or sets the indentation, in pixels, of each tree level. - - - If you set the Indent property to a value that is too narrow to fit the and - images, the grid will adjust it to fit the images. - - - - Gets or sets the image displayed next to collapsed nodes. - - - Setting this property to null resets it and causes the grid to use the default image (a plus sign). - To hide the images, use the property. - - - - - Gets or sets the image displayed next to expanded nodes. - - - Setting this property to null resets it and causes the grid to use the default image (a minus sign). - To hide the images, use the property. - - - - - Gets the level of the deepest node in the outline. - - - This property can be used with methods that take an outline level as - a parameter (for example, and ). - - - - - Static class containing UI strings used by the designer. - - - - - Specifies the language to be used for localizing the control. - - - - - Localize the control to the language specified by the CurrentUICulture. - - - - - Localize the control to Arabic. - - - - - Localize the control to Czech. - - - - - Localize the control to Danish. - - - - - Localize the control to Dutch. - - - - - Localize the control to English. - - - - - Localize the control to Finnish. - - - - - Localize the control to French. - - - - - Localize the control to German. - - - - - Localize the control to Greek. - - - - - Localize the control to Hebrew. - - - - - Localize the control to Italian. - - - - - Localize the control to Japanese. - - - - - Localize the control to Norwegian. - - - - - Localize the control to Polish. - - - - - Localize the control to Portuguese. - - - - - Localize the control to Russian. - - - - - Localize the control to Slovak. - - - - - Localize the control to Spanish. - - - - - Localize the control to Swedish. - - - - - Localize the control to Chinese (simplified, PRC and Singapore). - - - - - Localize the control to Turkish. - - - - - Localize the control to Persian (Farsi). - - - - - Localize the control to Korean. - - - - - Localize the control to Chinese (traditional, Taiwan, Hong Kong, and Macao). - - - - - Localize the control to Hungarian. - - - - - Specifies the type of border to be drawn around the control. - - - - - No border. - - - - - A single-line border. - - - - - A three-dimensional border. - - - - - A light sunken border. - - - - - A border drawn using XP themes. - - - - - StyleContext contains a base Style definition and a list of - named Styles. It provides the following services: - - Style management (create, edit, and remove Styles) - - Style inheritance mechanism - - Rendering and measuring methods - - - - - Style contains a collection of arbitrary attributes, - represented by a name/object entry, a reference to a parent - Style, and a reference to the containing StyleContext. - - - - - Specifies a visual style to use when rendering the control. - - - - - Do not use any visual styles. Render the control using the styles and properties only. - - - - - Render the control with an appearance based on the current system settings. - - - - - Render the control with an appearance based on the Office 2007 Blue color scheme. - - - - - Render the control with an appearance based on the Office 2007 Silver color scheme. - - - - - Render the control with an appearance based on the Office 2007 Black color scheme. - - - - - Render the control with an appearance based on the Office 2010 Blue color scheme. - - - - - Render the control with an appearance based on the Office 2010 Silver color scheme. - - - - - Render the control with an appearance based on the Office 2010 Black color scheme. - - - - - Represents an abstract base class for custom grid renderers. - - - To create custom grid renderers, inherit from this class, override the appropriate - virtual methods and properties, and assign an instance of your class to the grid's - property. - - - - - Initializes a new instance of a . - - - - - Draws a grid cell of any type. - - - that contains the cell being drawn. - - that provides information about the cell being drawn. - - This method determines the type of cell being drawn and then calls the - method passing the type of cell to be drawn. - - - - - Draws a single grid cell of a specific type. - - - that contains the cell being drawn. - - that provides information about the cell being drawn. - - value that determines the type of cell being drawn. - - - - Gets a object used to paint the cell background for a specific cell type. - - - that contains the cell being drawn. - - value that determines the type of cell being drawn. - A that represents the bounds of the cell being drawn. - A object used to render the cell background. - - The parameter can be used to create or select complex brushes such as - gradient or tiled image brushes. - - - - - Gets a object used to paint the cell borders. - - - value that determines the type of cell being drawn. - A object used to paint the cell borders. - - - - Gets a value that determines whether this renderer tracks the selection to paint - highlighted column and row headers. - - - - - Gets a value that determines whether this renderer renders hot cells - differently than normal cells. - - - Hot cells are cells currently under the mouse. If a renderer tracks the mouse, - then it will be called as the mouse moves over the grid. - - - - - Gets the foreground color of header cells in the normal state. - - - - - Represents the type of cell being rendered. - - - - - A normal scrollable cell. - - - - - The top left fixed cell. - - - - - A column header cell. - - - - - A selected column header cell. - - - - - A column header cell currently under the mouse. - - - - - A selected column header cell currently under the mouse. - - - - - A row header cell. - - - - - A selected row header cell. - - - - - A row header cell currently under the mouse. - - - - - A selected row header cell currently under the mouse. - - - - - A selected normal cell. - - - - - The cell that contains the cursor. - - - - - Represents the base abstract class for Office2007 style renderers. - - - The easiest way to create a new high-quality renderer is to derive from - this class and provide a constructor that initializes the 25 colors that - define the renderer. - - - - - Initializes a new instance of a . - - Background color for highlighted cells. - Color of the border around the top left fixed cell. - Color of the background for the top left fixed cell. - First color of the gradient background for the image in the top left fixed cell. - Second color of the gradient background for the image in the top left fixed cell. - First color of the gradient background for column headers. - Second color of the gradient background for column headers. - Color of the border around column headers. - First color of the gradient background for selected column headers. - Second color of the gradient background for selected column headers. - Color of the border around selected column headers. - First color of the gradient background for hot column headers. - Second color of the gradient background for hot column headers. - Color of the border around hot column headers. - First color of the gradient background for selected hot column headers. - Second color of the gradient background for selected hot column headers. - Color of the border around hot selected column headers. - Color of the background for row headers. - Color of the border around row headers. - Color of the background for selected row headers. - Color of the border around selected row headers. - Color of the background for hot row headers. - Color of the border around hot row headers. - Color of the background for hot selected row headers. - Color of the border around selected hot row headers. - - - - Initializes a new instance of a using - a specified color palette. - - Array with 25 colors to be used as a palette. - - - - Gets the background brush for a cell. - - - that contains the cell. - - value that describes the type of cell being rendered. - - that defines the cell bounds. - A used to paint the cell. - - - - Gets a pen used to paint the cell borders. - - - that describes the type of cell being rendered. - A used to paint the cell borders. - - - - Draws a single grid cell of a specific type. - - - that contains the cell being drawn. - - that provides information about the cell being drawn. - - value that determines the type of cell being drawn. - - - - Gets or sets the color used to paint the background of highlighted cells. - - - - - Gets a value that determines whether this renderer renders hot cells - differently than normal cells. - - - Hot cells are cells currently under the mouse. If a renderer tracks the mouse, - then it will be called as the mouse moves over the grid. - - - - - Gets a value that determines whether this renderer tracks the selection to paint - highlighted column and row headers. - - - - - that implements the Office2007 Blue visual style. - - - - - Initializes a new instance of a . - - - - - that implements the Office2007 Silver visual style. - - - - - Initializes a new instance of a . - - - - - that implements the Office2007 Black visual style. - - - - - Initializes a new instance of a . - - - - - that implements the Office2010 Blue visual style. - - - - - Initializes a new instance of a . - - - - - that implements the Office2010 Silver visual style. - - - - - Initializes a new instance of a . - - - - - that implements the Office2010 Black visual style. - - - - - Initializes a new instance of a . - - - - - Gets the foreground color of header cells in the normal state. - - - - - that implements the System visual style. - - - - - Draws a single grid cell of a specific type. - - - that contains the cell being drawn. - - that provides information about the cell being drawn. - - value that determines the type of cell being drawn. - - - - Gets a value that determines whether this renderer renders hot cells - differently than normal cells. - - - Hot cells are cells currently under the mouse. If a renderer tracks the mouse, - then it will be called as the mouse moves over the grid. - - - - - Gets a value that determines whether this renderer tracks the selection to paint - highlighted column and row headers. - - - - \ No newline at end of file diff --git a/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll b/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll index d2f4e7c..f054f62 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll and b/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml b/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml index 470e122..9f06eb7 100644 --- a/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml +++ b/SW/AssessmentMgmt/bin/Debug/DevComponents.DotNetBar2.xml @@ -4667,6 +4667,12 @@ Provides event arguments.
+ + + Raises the ValueChanged event. + + Provides event arguments. + Called when Command property value changes. @@ -4768,6 +4774,11 @@ Gets or sets whether control is empty i.e. it does not hold a valid value. + + + Specifies the behavior of ValueChanged event triggering. + + Gets or sets the input field alignment inside the control @@ -8293,6 +8304,12 @@ Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Indicates the position within a tree visible area node is scrolled to + Expands the node. @@ -8568,6 +8585,11 @@ Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + Indicates vertical alignment within the node bounds of expand part of the node, if one is visible. + + Gets or sets the Command part bounds if command part is visible. @@ -9417,6 +9439,12 @@ Node to be made visible. + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + Returns number of visible child nodes for given node. @@ -9637,6 +9665,26 @@ Returned as information about the node or its column header at given coordinates. + + + Defines options for EnsureVisible method which brings node into the view. + + + + + Scrolls the tree so node is displayed at the bottom of the tree, if possible. + + + + + Scrolls the tree so node is displayed in the middle of the tree, if possible. + + + + + Scrolls the tree so node is displayed at the top of the tree, if possible. + + Class that provides predefined styles for the nodes. Styles are defined as static memeber of the class @@ -11549,6 +11597,12 @@ Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + Gets or sets the target gradient background color. @@ -14036,6 +14090,12 @@ Indicates whether SubItems collection is serialized. Default value is true. + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. @@ -17999,31 +18059,11 @@ 0 based index of child object. Reference to child object. - - - Gets accessible role. - - - - - Gets parent accessibility object. - - - - - Returns bounds of the control. - - Returns current accessible state. - - - Gets or sets the value of an accessible object. - - Summary description for ThemedButtonItemPainter. @@ -20743,6 +20783,13 @@ Provides event arguments. + + + Called when MultiColumnControlFont property has changed. + + Old property value + New property value + Called when Command property value changes. @@ -20847,6 +20894,11 @@ Indicates whether ItemHeight property is set automatically based on the current font when DrawMode=OwnerDrawFixed + + + Gets or sets the custom color table used to render combo-box items + + Gets or sets the text color for the text in combo-box when control Enabled property is set to false. @@ -20929,6 +20981,11 @@ Gets the reference to the control which is used to display multi-column data on popup. Control is created just before the popup is opened. + + + Indicates the font used by the multi-column control on the popup. + + Gets or sets the command assigned to the item. Default value is null. @@ -22421,6 +22478,11 @@ New active style. + + + Indicates whether control will delay call to OnResize base DataGridView method when control is running on MDI Child which was introduced as workaround to an issue in control. + + Gets or sets the scroll-bar visual style. @@ -26883,6 +26945,11 @@ Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property. + + + Specifies back color when Enabled=false + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. @@ -30230,6 +30297,11 @@ Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + Gets or sets the symbol set used to represent the Symbol. + + Indicates the size of the symbol in points. @@ -31317,6 +31389,11 @@ Occurs when using data-binding with CheckStateMember specified and it allows you to convert a property value to CheckState. + + + Returns the enumerator with selected values if any + + Gets or sets the value of the member property specified by the ValueMember property. If ValueMember specifies property that cannot be found on selected object this property returns null. @@ -31337,6 +31414,7 @@ Gets collection of checked items in the list. Modifying this collection does not have any effect on actual checked items. Use SetItemCheckState to set checked state of an item or access ListBoxItem directly and set its CheckState property. + Defines selection modes for list control. @@ -31721,16 +31799,6 @@ An instance of ColorScheme object. - - - Represents the extended ListView control with the Office 2007 Style. - - - - - Represents the extended ListView control with the Office 2007 Style. - - Gets or sets the column header font. Default value is null which means controls Font property is used. @@ -33969,6 +34037,11 @@ Should be fired when scroll-bar value on child control changes. + + + Should be fired when control receives WM_MOVE message. + + Gets whether control is in design mode. @@ -33986,6 +34059,12 @@ Provides event arguments. + + + Raises NonClientSizeChanged event. + + Provides event arguments. + Defines arguments for IScrollBarOverrideSupport.ScrollBarValueChanged event. @@ -34561,6 +34640,12 @@ Provides event arguments. + + + Raises NonClientSizeChanged event. + + Provides event arguments. + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if @@ -34680,6 +34765,37 @@ Old property value New property value + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + Occurs when IsOpen property value has changed, i.e. slide-panel is shown or hidden. @@ -34735,6 +34851,31 @@ Gets or sets whether panel centers the Controls inside of it. Default value is false. + + + Gets or sets the color of the Symbol displayed on slideout button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the slideout button. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + Defines the side SlidePanel slides into. @@ -34786,6 +34927,37 @@ Old property value New property value + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + Gets or sets whether slider button automatically checks whether its top-most control on the form, i.e. visible at all times on top of other controls @@ -34811,6 +34983,31 @@ Gets or sets the style associated with the control. + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + Represents the Slider control. @@ -35115,6 +35312,11 @@ Occurs when ButtonCustom2 control is clicked. + + + Indicates whether internal override for IsInputKey returns true for the Enter key. + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. @@ -35354,7 +35556,7 @@ - Indicates tooltip that is displayed when mouse is over the token + Indicates tooltip that is displayed when mouse is over the token and token is selected. @@ -35462,6 +35664,12 @@ Provides event arguments. + + + Raises TokenMouseClick event. + + Provides event arguments. + Raises TokenMouseHover event. @@ -35550,6 +35758,16 @@ Old property value New property value + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + Gets or sets the location of the auto-scroll position. @@ -35595,6 +35813,11 @@ Occurs when mouse clicks one of the SelectedTokens token. + + + Occurs when mouse double clicks one of the SelectedTokens token. + + Occurs when mouse hovers one of the SelectedTokens token. @@ -35746,6 +35969,16 @@ Indicates whether check-boxes are displayed on popup token selection list and used for token selection. + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the selected token when Tooltip property is set. + + Delegate for the ValidateTokenEvent event. @@ -36432,6 +36665,25 @@ Returns reference to the object in collection based on it's name. + + + Provides High DPI support for DotNetBar controls. + + + + + Gets or sets whether scale factor when set is normalized so both Width and Height values are the same. Default value is false. + If using ScaleMode=font the scale factor might not be same for Width and Height so this allows opportunity to keep existing size ratios on the DotNetBar sized controls. + When set to true the scale factor Height will always be set to scale factor Width. + + + + + Indicates whether controls will automatically scale current images based on the current DPI. Depending on scaling this may result in pixalted images. + Best policy is to provide separate images for each DPI level Windows runs on and if you do that you need to set this property to false to disable + automatic size scaling for the images. Default value is true which causes the images to be upscaled. + + Initializes a new instance of the DualButton class. @@ -45068,6 +45320,16 @@ Resets property to its default value. + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + Gets whether property should be serialized. @@ -45154,6 +45416,11 @@ Gets or sets the color of the radial menu item mouse over foreground. + + + Gets or sets the color of the radial menu item foreground when disabled. + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. @@ -50836,6 +51103,26 @@ Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + Specifies trigger types for the value changed events on editor controls. + + + + + ValueChanged event is fired as soon as user types in the value. + + + + + ValueChanged event is fired after control loses input focus. + + + + + ValueChanged event is fired after control loses input focus or user presses the Enter key. + + Creates new instance of the class. @@ -51221,15 +51508,11 @@ Provides event arguments. - + - Represents graphical panel control with support for different visual styles and gradients. - - - - - Represents graphical panel control with support for different visual styles and gradients. + Raises NonClientSizeChanged event. + Provides event arguments. @@ -54193,6 +54476,11 @@ Occurs when Checked property of an button has changed. + + + Gets or sets docking splitter size. + + Indicates whether Ctrl+Tab keys cycles the currently selected dock tab. @@ -63854,6 +64142,12 @@ Opens the Gallery popup menu. + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + Returns whether Gallery can extend the object. @@ -65100,6 +65394,12 @@ Default value is true. + + + Indicates whether auto-sizing for RibbonBar includes ribbon bar title width so in case when ribbon bar title width is wider than ribbon bar width the + width of the ribbon bar will always be at least the title bar width so complete title text can be displayed. + + Gets/Sets the visual style for items and color scheme. @@ -65929,6 +66229,11 @@ no setting is necessary on your part. + + + Indicates Quick Access Toolbar height when positioned below the Ribbon. Default value of 0 indicates auto-height. + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. @@ -74658,6 +74963,11 @@ Gets or sets the type of the tab layout. + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. @@ -75249,6 +75559,11 @@ Gets or sets the image list used by tab items. + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + Gets or sets the type of the tab layout. @@ -75498,6 +75813,11 @@ Cancels the operation. + + + Reference to relevant TabItem, if any, otherwise null/nothing. + + Default Constructor. @@ -78591,6 +78911,21 @@ Returns reference to internal Next button control. + + + Returns reference to internal Cancel button control. + + + + + Returns reference to internal Finish button control. + + + + + Returns reference to internal Help button control. + + Returns reference to internal Back button control. diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.Bars.dll b/SW/AssessmentMgmt/bin/Debug/FastReport.Bars.dll index 9f7c0c2..d98c6c3 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/FastReport.Bars.dll and b/SW/AssessmentMgmt/bin/Debug/FastReport.Bars.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.Compat.dll b/SW/AssessmentMgmt/bin/Debug/FastReport.Compat.dll new file mode 100644 index 0000000..55c574b Binary files /dev/null and b/SW/AssessmentMgmt/bin/Debug/FastReport.Compat.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll b/SW/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll new file mode 100644 index 0000000..29934a2 Binary files /dev/null and b/SW/AssessmentMgmt/bin/Debug/FastReport.DataVisualization.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.Editor.dll b/SW/AssessmentMgmt/bin/Debug/FastReport.Editor.dll index 0b0ab6f..e91d746 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/FastReport.Editor.dll and b/SW/AssessmentMgmt/bin/Debug/FastReport.Editor.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.dll b/SW/AssessmentMgmt/bin/Debug/FastReport.dll index cea9179..29e51d7 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/FastReport.dll and b/SW/AssessmentMgmt/bin/Debug/FastReport.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/FastReport.xml b/SW/AssessmentMgmt/bin/Debug/FastReport.xml new file mode 100644 index 0000000..f1434aa --- /dev/null +++ b/SW/AssessmentMgmt/bin/Debug/FastReport.xml @@ -0,0 +1,53156 @@ + + + + FastReport + + + + + The class for representing visible digital signature in the report. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object, in millimeters + + + + + Gets or sets the dxf objects fill mode + + + + + Initializes a new instance of the class. + + + + + Export all report objects + + + + + + + + + Export of Band + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + + + + + + + + + + Add BandObject. + + + + + Add TextObject. + + + + + Save DXF file. + + + + + Save DXF stream. + + + + + Add Line. + + + + + + + + Double precision 3D point value + + + + + Code range: 0-9 + String (with the introduction of extended symbol names in AutoCAD 2000, the 255-character + limit has been increased to 2049 single-byte characters not including the newline at the end + of the line) + + + + + Sets Name group + + Name (attribute tag, block name, and so on) + + + + Sets Name group + + Name (attribute tag, block name, ENDSEC, and so on) + + + + AutoCAD Color Index -> RGB Color table + + + + + RGB Color table -> AutoCAD Color Index + + + + + Get AutoCAD Color Index + + + AutoCAD Color Index + + + + CT command + + + + + CI command + + + + + EP command + Perimeter of polygon defined as polygon buffer by PM, PA/PR, PU/PD, + AA/AR, CI, and CT command is plotted. Pen position after command and + pen up / down state will be in state before command. + + + + + EA command + Rectangle which makes diagonal coordinates (x, y) specified the present position and + here is plotted. Pen position after command and pen up / down state will be in state before command. + + + + + ER command + Rectangle which makes diagonal relative coordinate (x, y) from the present position + and the present position is plotted. Pen position after command and pen up / down state + will be in state before command. + + + + + FP command + Shading of the inside of polygon defined as polygon buffer by PM, PA/PR, + PU/PD, AA/AR, CI, and CT command is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + RA command + It is used with FT and PT command and shading of the inside of rectangle which makes + diagonal point coordinates (x, y) specified the present position and here is carried out. + Pen position after command and pen up / down state will be in state before command. + + + + + RR command + It is used with FT and PT command and shading of the inside of rectangle which makes diagonal point + relative coordinate (x, y) from the present position and there is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + Model of shading + + + + + Painting out interactive at space specified by PT command (FT command interval and angle are ignored) + + + + + It is painting out (FT command space and angle are ignored) of the single direction at space specified by PT command. + + + + + Hatching which is the single direction at space and angle which were specified by FT command + + + + + It is crossing hatching at space and angle which were specified by FT command. + + + + + None (solid) + + + + + FT command + It is used together with FP, RA, RR, and WG command, and model of shading (painting out and hatching) is specified. + + + + + IN command + Plotter is changed into initial state. + + + + + IP command + Sets origin position of system of coordinates + + + + + Line Type + + + + + Point is plotted at specifying point + + + + + Dotted line of point + + + + + Short dotted line + + + + + Long dotted line + + + + + Short dashed line + + + + + Long dashed line + + + + + Two-point phantom line + + + + + No any patterns needed + + + + + LT command + + + + + PD command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + PU command + + + + + PA command + + + + + PR command + + + + + Polygon Type + + + + + Polygon buffer is cleared and it is made polygon definition mode. + + + + + Polygon under definition is closed. + + + + + Polygon under definition is closed and polygon definition mode is canceled. + + + + + PM command + It is made polygon definition mode. PM command is used with + PA/PR, PU/PD, AA/AR, CI, and CT command, and can define polygon. + + + + + RO command + + + + + SC command + + + + + SP command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object + + + + + Gets or sets the hpgl objects fill mode + + + + + Initializes a new instance of the class. + + + + + Save hpgl file. + + + + + Save hpgl stream. + + + + + Add BandObject. + + + + + Add TextObject. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Export all report objects + + + + + + Add Line. + + + + + + + + Excel 2003 export class + + + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Read and parse Excel document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Related to DRAWING group. Used once + + + + + Provides API to binary stream + + + + + + + + + + Represents the CSV export filter. + + + + + + + + Gets or set the resulting file encoding. + + + + + Gets or set the separator character used in csv format. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets a value that disable quotation marks for text. + + + + + Gets or sets a value that disable escaping quotation marks for text. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the export to DBF. + + + + + + + + Gets or sets the encoding. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets the list of field names. + + + The field names must be separated by ";" symbol, for example: Column1;Column2;Column3 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the record. + + + + + Gets or sets the field with a specified index. + + + + + Gets the count of a fields. + + + + + Gets the size of a fields. + + + + + Initializes a new instance of the class. + + + + + Adds the new item into a list of fields. + + + + + Clears the list of fields. + + + + + Represents the email export. + + + In order to use this class, you need to set up at least the following properties: + , , . Use the + property to choose the format of an attachment. If you leave it empty, the attachment will be + in the .FRP format (FastReport prepared report). When you done with settings, call the + method to send an email. + + + This example demonstrates the bare minimum required to send an email. + + EmailExport export = new EmailExport(); + export.Account.Address = "my@address.net"; + export.Account.Host = "myhost"; + export.Address = "recipient@address.net"; + export.Subject = "Re: analysis report"; + // the report1 report must be prepared at this moment + export.SendEmail(report1); + + + + + + Displays the dialog box in which you can set up all parameters. + + true if user pressed OK button in the dialog. + + + + Gets or sets the recipient's address. + + + This property must contain value in form "john@url.com". + + + + + Gets or sets the carbon copy adresses. + + + This property must contain an array of values in form "john@url.com". + + + + + Gets or sets the subject of the message. + + + + + Gets or sets the message body. + + + + + Gets or sets the export filter which will be used to export a report. + + + Set this property to instance of any export filter. When you send the email, the report + will be exported using that export filter. + By default, this property is set to null. In this case the report will be send + in .FRP format. + + + + + Gets the email account settings such as host, user name, password. + + + + + Gets the parent Report object + + + + + Sends an email. + + Reports that will be sent as attachments. + + Before using this method, set up the following properties (it's a bare minimum): + , , . + The report that you pass in this method must be prepared using the Prepare method. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + + + + Form for . + For internal use only. + + + + + Hides attachment settings. + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allows to send message using MAPI interface. + + + + + Sends a message. + + Parent window handle. + Files to attach. + Email subject. + Email body. + Recipient names. + Recipient addresses. + Error code. 0 if operation was completed succesfully. + + + + Returns a text describing an error. + + The error code. + The text describing an error. + + + + Contains the email account settings such as host, email address, name. + + + You have to set up at least the and properties. If your + host requires authentication, provide the and + properties as well. + Set property to true if you want to use default email client + such as Outlook to send an email. In this case, all other properties will be ignored. + + + + + Gets or sets the sender's email address. + + + This property contains your email address (for example, "john@site.com"). + + + + + Gets or sets the sender's name. + + + This property contains your name (for example, "John Smith"). + + + + + Gets or sets the template that will be used to create a new message. + + + + + Gets or sets the SMTP host name or IP address. + + + + + Gets or sets the SMTP port. + + + The default value for this property is 25. + + + + + Gets or sets the user name. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets the password. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets a value that determines whether to enable the SSL protocol. + + + + + Gets or sets a value that determines whether the account setting page + in the "Send Email" window is enabled. + + + + + Gets or sets a value that determines whether to use MAPI instead of SMTP when sending an email. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all export filters. + + + + + Exports the report to a file. + + Report to export. + true if report was succesfully exported. + + This method displays an export options dialog, then prompts a file name using standard "Open file" + dialog. If both dialogs were closed by OK button, exports the report and returns true. + + + + + Displays a dialog with export options. + + true if dialog was closed with OK button. + + + + Gets a report page with OverlayBand if it is a Demo or Academic. + + The prepared report page + The prepared report page with OverlayBand. + + + + Gets list of generated streams. + + + + + Zoom factor for output file + + + + + File filter that can be used in the "Save file" dialog. + + + + + Range of pages to export. + + + + + Page numbers to export. + + + Use page numbers separated by comma and/or page ranges, for example: "1,3-5,12". Empty string means + that all pages need to be exported. + + + + + Current page number. + + + Page number need to be exported if user selects "Current page" radiobutton in the export options dialog. + This property is typically set to current page number in the preview window. + + + + + Open the document after export. + + + + + Allows or disables the OpenAfterExport feature. + + + + + Gets or sets a value that determines whether to show progress window during export or not. + + + + + Gets a list of files generated by this export. + + + + + Gets a value indicating that the export may produce multiple output files. + + + + + Gets or sets a value indicating that the report bands should be shifted, if page + has any non-exportable bands + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Stream to export to. + + + + + File name to export to. + + + + + Array of page numbers to export. + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + This method is called when the export starts. + + + + + This method is called at the start of exports of each page. + + Page for export may be empty in this method. + + + + This method is called at the end of exports of each page. + + Page for export may be empty in this method. + + + + This method is called for each band on exported page. + + Band, dispose after method compite. + + + + This method is called when the export is finished. + + + + + Gets a report page with specified index. + + Zero-based index of page. + The prepared report page. + + + + + + + + + + Exports the report to a stream. + + Report to export. + Stream to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Exports the report to a file. + + Report to export. + File name to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export filter. + + + + + + + + Draw any custom controls + + + + + Draw any custom controls. + + + + + + Types of html export + + + + + Simple export + + + + + Web preview mode + + + + + Web print mode + + + + + hash:base64Image + + + + + Gets or sets images, embedded in html (hash:base64Image) + + + + + Sets a ID of report + + + + + Sets an onclick template + + + + + Enable or disable layers export mode + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Enable or disable showing of print dialog in browser when html document is opened + + + + + Enable or disable preview in Web settings + + + + + Enable or disable the breaks between pages in print preview when single page mode is enabled + + + + + Specifies the output format + + + + + Specifies the width units in HTML export + + + + + Specifies the height units in HTML export + + + + + Enable or disable the pictures in HTML export + + + + + Enable or disable embedding pictures in HTML export + + + + + Enable or disable the WEB mode in HTML export + + + + + Gets or sets html export mode + + + + + Enable or disable the single HTML page creation + + + + + Enable or disable the page navigator in html export + + + + + Enable or disable the sub-folder for files of export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + Gets print page data + + + + + Enable or disable saving streams in GeneratedStreams collection. + + + + + Enable or disable margins for pages. Works only for Layers-mode. + + + + + Enable or disable export of vector objects such as Barcodes in SVG format. + + + + + + + + + + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + + + + + + For internal use only. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class for WebPreview mode. + + + + + + + + Event arguments for custom drawing of report objects. + + + + + Report object + + + + + ReportObject. + + + + + Resulting successfull drawing flag. + + + + + Resulting HTML string. + + + + + Resulting CSS string. + + + + + Layers mode when true or Table mode when false. + + + + + Zoom value for scale position and sizes. + + + + + Left position. + + + + + Top position. + + + + + Width of object. + + + + + Height of object. + + + + + Represents the HTML export templates. + + + + + Page Template Title + + + + + Page Template Footer + + + + + Navigator Template + + + + + OutlineTemplate + + + + + Index Template + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export format enum + + + + + Represents the message-HTML type + + + + + Represents the HTML type + + + + + Specifies the image format in HTML export. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the units of HTML sizes. + + + + + Specifies the pixel units. + + + + + Specifies the percent units. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Represents the MHT export filter. + + + + + + + + Enable or disable the pictures in MHT export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the image export filter. + + + + + + + + Gets or sets the image format. + + + + + Gets or sets a value that determines whether to generate separate image file + for each exported page. + + + If this property is set to false, the export filter will produce one big image + containing all exported pages. Be careful using this property with a big report + because it may produce out of memory error. + + + + + Gets or sets image resolution, in dpi. + + + By default this property is set to 96 dpi. Use bigger values (300-600 dpi) + if you going to print the exported images. + + + + + Gets or sets horizontal image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets vertical image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets the jpg image quality. + + + This property is used if is set to Jpeg. By default + it is set to 100. Use lesser value to decrease the jpg file size. + + + + + Gets or sets the value determines whether to produce multi-frame tiff file. + + + + + Gets or sets a value that determines whether the Tiff export must produce monochrome image. + + + Monochrome tiff image is compressed using the compression method specified in the + property. + + + + + Gets or sets the compression method for a monochrome TIFF image. + + + This property is used only when exporting to TIFF image, and the property + is set to true. + The valid values for this property are: EncoderValue.CompressionNone, + EncoderValue.CompressionLZW, EncoderValue.CompressionRle, + EncoderValue.CompressionCCITT3, EncoderValue.CompressionCCITT4. + The default compression method is CCITT4. + + + + + Sets padding in non separate pages + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image export format. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the .tif format. + + + + + Specifies the .emf format. + + + + + Represents the JSON export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the LaTeX export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Base class for any ODF exports. + + + + + + + + Enum of OpenOffice formats. + + + + + OpenOffice Spreadsheet format. + + + + + OpenOffice Writer format. + + + + + Standard of ODF format. + + + + + ODF 1.0/1.1 + + + + + ODF 1.2 + + + + + XODF 1.0/1.1 + + + + + XODF 1.2 + + + + + Creator of the document + + + + + Is XODT format + + + + + Switch of page breaks + + + + + Wysiwyg mode, set for better results + + + + + Gets or sets ODF Compliance standard. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Spreadsheet export (Open Office Calc). + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Text export (Open Office Writer). + + + + + Initializes a new instance of the class. + + + + + + + + MS Word 2007 export class + + + + + + + + Types of table rows height + + + + + Exactly height + + + + + Minimum height + + + + + Enable or disable matrix view of document + + + + + Enable or disable Paragraph view of document + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the type of height calculation. + + + + + Gets or sets the type of height calculation. + + + + + Enable or disable a resolution optimization. + + + + + Enable or disable DoNotExpandShiftReturn. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Word2007Export class. + + + + + Represents the PowerPoint 2007 export. + + + + + + + + Gets or sets the image format used when exporting. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the class with the default settings. + + + + + Excel 2007 export class + + + + + + + + Defines Print Scaling Mode. + + + + + Print sheets at thier actual size. + + + + + Shrink the printout so that it fits on one page. + + + + + Shrink the printout so that it is one page wide. + + + + + Shrink the printout so that it is one page high. + + + + + Gets or sets the Print Fit Mode. + + + + + Gets or sets the font scale value. + Default value is 1 + + + + + Enable or disable a resolution optimization. + + + + + Each report page is placed on a new Excel page. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Enable or disable export of page footers and next page headers without table breaks. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Main class of XML export + + + + + + + + PicturesCount + + + + + HumanReadable + + + + + + + + + + + + + + + + + + + + + + + Constructor of XPSExport + + + + + Destructor of XPSExport + + + + + Save + + + + + + + Padding over ridh object + + + + + This prperty keep RTF to DOC translation result, i.e. DOCX XML fragment + + + + + Base class for Microsoft Office 2007 export objects + + + + + Default XML header + + + + + Base class for export Office Open objects + + + + + Core document properties + + + + + Core document properties + + + + + Power point shape + + + + + Power Point Layout Descriptor + + + + + Power Point base class for style element + + + + + Base class for styles group + + + + + Base class for slides, masters, and layouts + + + + + Slide masters object + + + + + Ordinaty slide + + + + + Slide layout object + + + + + Presentation class + + + + + PPt Application Properties class + + + + + Ppt Table styles class + + + + + Ppt Presentation properties class + + + + + Ppt View Properties class + + + + + Specifies the image format in PowerPoint export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing class + + + + + Share all strings in document + + + + + Share all URL in document + + + + + Document styles + + + + + Workbook + + + + + OoXMLSheet class + + + + + Picture container + + + + + List of all document fonts + + + + + Single page export + + + + + Document structure descriptor + + + + + Font container + + + + + Font obfuscation procedure + + + + + PDF export (Adobe Acrobat) + + + + + + + + Embedded File + + + + + Name of embedded file. + + + + + Description of embedded file. + + + + + Modify Date of embedded file. + + + + + Relationship between the embedded document and the PDF part. + + + + + Valid MIME type. + + + + + Stream of embedded file. + + + + + File reference. + + + + + ZUGFeRD Conformance Level. + + + + Initializes a new instance of the class. + + + + Default preview size. + + + + + Actual size + + + + + Fit Page + + + + + Fit Width + + + + + Default + + + + + 10% + + + + + 25% + + + + + 50% + + + + + 75% + + + + + 100% + + + + + 125% + + + + + 150% + + + + + 200% + + + + + 400% + + + + + 800% + + + + + Standard of PDF format. + + + + + PDF 1.5 + + + + + PDF/A-1a + + + + + PDF/A-2a + + + + + PDF/A-2b + + + + + PDF/A-2u + + + + + PDF/A-3a + + + + + PDF/A-3b + + + + + Pdf/X-3 + + + + + Pdf/X-4 + + + + + Color Space. + + + + + RGB color space + + + + + CMYK color space + + + + + Types of pdf export. + + + + + Simple export + + + + + Web print mode + + + + + Relationship between the embedded document and the PDF part. + + + + + The embedded file contains data which is used for the visual representation. + + + + + The embedded file contains the source data for the visual representation derived therefrom in the PDF part. + + + + + This data relationship should be used if the embedded data are an alternative representation of the PDF contents. + + + + + This data relationship is used if the embedded file serves neither as the source nor as the alternative representation, but the file contains additional information. + + + + + If none of the data relationships above apply or there is an unknown data relationship, this data relationship is used. + + + + + ZUGFeRD Conformance Level. + + + + + Basic level. + + + + + Comfort level. + + + + + Extended level. + + + + + Gets or sets PDF Compliance standard. + After set, do not change other settings, it may lead to fail compliance test. + + + + + Enable or disable of embedding the TrueType fonts. + + + + + Enable or disable of exporting the background. + + + + + Enable or disable export text in curves + + + + + Gets or sets PDF color space + + + + + Enables or disables saving images in their original resolution + + + + + Enables or disables optimization of images for printing + + + + + Enable or disable image jpeg compression + + + + + Sets the quality of images in the PDF + + + + + Title of the document. + + + + + Author of the document. + + + + + Subject of the document. + + + + + Keywords of the document. + + + + + Creator of the document. + + + + + Producer of the document. + + + + + Sets the owner password. + + + + + Sets the user password. + + + + + Enable or disable printing in protected document. + + + + + Enable or disable modifying in protected document. + + + + + Enable or disable copying in protected document. + + + + + Enable or disable annotating in protected document. + + + + + Enable or disable the print dialog window after opening + + + + + Enable or disable hide the toolbar. + + + + + Enable or disable hide the menu's bar. + + + + + Enable or disable hide the Windows UI. + + + + + Enable or disable of fitting the window + + + + + Enable or disable of centering the window. + + + + + Enable or disable of scaling the page for shrink to printable area. + + + + + Enable or disable of document's Outline. + + + + + Set default zoom on open document + + + + + Sets the quality of RichText objects in the PDF + + + + + Enable or disable the compression in PDF document. + + + + + Enable or disable of images transparency. + + + + + Enable or disable of displaying document's title. + + + + + Set default page on open document + + + + + Color Profile (ICC file). + If "null" then default profile will be used + + + + + Gets or sets pdf export mode + + + + + Gets pdf AcroForms compatibility, if set then EmbeddingFonts = false and PdfCompliance = PdfStandard.None + + + + + Set pattern for selection of embedding glyphs for Interactive Forms + + + + + Enable or disable digital sign for pdf document + + + Be sure to specify a valid certificate for signing using the DigitalSignCertificate property. + Or using the DigitalSignCertificatePath and DigitalSignCertificatePassword properties. + + + + + Should save and serialize password for digital sign certificate. + Do not save password unless absolutely necessary!!! + + + + + Manualy sets digital sign certificate for exported documents. + + + This property is in priority, i.e. if a certificate is specified, + the DigitalSignCertificatePath and DigitalSignCertificatePassword properties will not be used. + + + + + The path for load digital sign certificate. + + + + + Sets digital sign certificate password. + + + + + Gets or sets the cpu host name or physical location of the signing + + + + + The reason for the signing, such as (I agree ...) + + + + + The information to enable the recipient to contact the signer to verify the signature + + + + + + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + Export of Band + + + + + + + + + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + ZUGFeRD Conformance Level + + + + Add an embedded file (only for PDF/A-3 standard). + + File name + Description + Modification date + Relation type + MIME type + File stream + + + + Initializes a new instance of the class. + + + + + Calculates mask for image. + + + + + Calculates image bounds according to . + + + + + Writes pixels' colors without alpha to stream according to CMYK or RGB color space. + Pixels should be in the format. + + + + + Update stream position for object number, only for int value + + int value + + + + + + The pdf export + size of place for svg + + + + The interpolation of curves (svg) + + + + + The interpolation of curves (text) + + + + + Export svg object as image, not vector + + + + + Gradient interpolation, high value will lead beautiful the gradient, + but the file size will increase and the speed of work will decrease. + + + + + The quality of gradient, export as image or export as gradient grid + + + + + Added graphics path to pdf, + + size of rect for gradient filling + path, with positions in pdf scaling + Any brush + Interpolation value + + matrix for transform to pdf scale + + + + returns true if this gradient is fillable by gradient grid + + + + + + The enum of curves interpolation + + + + + Export as curves, without interpolation + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + The enum of gradient interpolation points + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + Thirty two points + + + + + Sixty four points + + + + + One hundred and twenty eight points + + + + + Two hundred and fifty six points + + + + + The quality of gradient export + + + + + Export as image + + + + + Export as low quality gradient grid, max size of interpolation points is 32 + + + + + Export as medium quality gradient grid, max size of interpolation points is 128 + + + + + Export as high quality gradient grid, max size of interpolation points is 256 + + + + + File name without extentions, for example "MetaDataX" + + + + Represents the PPML export filter. + + + + + + + + Enable or disable the pictures in PPML export + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + + Add image as PPMLObject + + + + + + + + + + Save svg file. + + + + + Save svg stream. + + + + + + + + + + Represents the ps export filter. + + + + + + + + Enable or disable the pictures in PS export + + + + + Enable or disable export text in curves + + + + + Enable or disable export every page in separate file + + + + + Enable or disable saving every image in separate file + + + + + Gets or sets quality of JPEG images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + Add TextLine in curves + + + + Method for add TextObject. + + + + + Method to add rectangle. + + + + + Method for add ellips. + + + + + Method for add triangle. + + + + + Method for add Diamond. + + + + + Method for add line. + + + + + Method for add line with dash. + + + + + Add image + + + + + + + + + + + Add image as hex code + + + + + + + + + + End of each page + + + + + Save file. + + + + + Save stream. + + + + + + + + + Represents the RTF export filter. + + + + + + + + Gets or sets the quality of Jpeg images in RTF file. + + + Default value is 90. This property will be used if you select Jpeg + in the property. + + + + + Gets or sets the image format that will be used to save pictures in RTF file. + + + Default value is Metafile. This format is better for exporting such objects as + MSChartObject and ShapeObject. + + + + + Gets or sets a value indicating that pictures are enabled. + + + + + Gets or sets a value indicating that page breaks are enabled. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting rtf file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the creator of the document. + + + + + Gets or sets a value that determines whether the rows in the resulting table + should calculate its height automatically. + + + Default value for this property is false. In this mode, each row in the + resulting table has fixed height to get maximum wysiwyg. If you set it to true, + the height of resulting table will be calculated automatically by the Word processor. + The document will be more editable, but less wysiwyg. + + + + + Gets or sets a value that determines whether the repot's RichObject will be + translated as picture or joined to generated RTF. + + + Default value for this property is false. In this mode, each RichObject + will be embedded as a picture. This is default behavior. If you set it to true, + the RichObject will be incorporated as a navive part of document. This is experimetal + feature. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image format in RTF export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .emf format. + + + + + Represents the SVG export filter. + + + + + + + + Enable or disable the pictures in SVG export + + + + + Gets or sets the image format used when exporting. + + + + + Embed images into svg + + + + + Gets or sets value indicating whether or not should to force uniform scaling of SVG document + + + + + Gets or sets value indicating whether or not should be added 'viewBox' attribute to the svg tag + + + + + Gets or sets value indicating whether or not should be added 'width' and 'height' attributes to the svg tag + + + + + + + + Begin exporting of page + + + + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the alignment methods + + + + + Do not force uniform scaling. Scale the graphic content of the given element non-uniformly + if necessary such that the element's bounding box exactly matches the viewport rectangle. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint + X value of the viewport. Align the min-y of the element's viewBox with the smallest Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the midpoint Y value of the element's viewBox with the midpoint Y value + of the viewport. + + + + + The default. Force uniform scaling. Align the midpoint X value of the element's viewBox + with the midpoint X value of the viewport. Align the midpoint Y value of the element's + viewBox with the midpoint Y value of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X + value of the viewport. Align the midpoint Y value of the element's viewBox with the midpoint + Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint X + value of the viewport. Align the min-y+height of the element's viewBox with the maximum Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Specifies the svg scale types + + + + + (the default) - Scale the graphic such that: + - aspect ratio is preserved + - the entire viewBox is visible within the viewport + - the viewBox is scaled up as much as possible, while still meeting the other criteria + + + + + Scale the graphic such that: + - aspect ratio is preserved + - the entire viewport is covered by the viewBox + - the viewBox is scaled down as much as possible, while still meeting the other criteria + + + + + Describes scaling of a svg documents + + + + + Gets the align value + + + + + Gets the meetOrSlice value + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + Align value + meetOrSlice value + + + + Represents the text export. + + + + + + + + Enable or disable the Data loss avoiding. + Auto calculation of ScaleX and ScaleY will be launched when dialogue window will be off. + + + + + Gets or sets the count of copies for printing of results. + + + + + Gets or sets the printer name for printing of results. + + + + + Enable or disable the printing results after export. + + + + + Gets or sets the active index of registered printer type. + + + + + Gets or sets the list of printer types. + + + + + Gets or sets the scale by X axis for correct text objects placement. + + + + + Gets or sets the scale by Y axis for correct text objects placement. + + + + + Gets or sets the encoding of resulting document. + + + Windows ANSI encoding + TextExport.Encoding = Encoding.Default; + Unicode UTF-8 encoding + TextExport.Encoding = Encoding.UTF8; + OEM encoding for current system locale sessings + TextExport.Encoding = Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage); + + + + + Enable or disable the data only output without any headers. Default value is false. + + + + + Enable or disable the breaks of pages in resulting document. Default value is true. + + + + + Enable or disable frames in resulting document. Default value is true. + + + + + Enable or disable the text (non graphic) frames in resulting document. Default value is false. + + + + + Enable or disable the output of empty lines in resulting document. Default value is false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Exports the page. + + + + + + + Calculates scale. + + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the printer command class + + + + + Gets or sets the active state of command. Default value is false. + + + + + Gets or sets the command name. + + + + + Gets or sets the list of "on sequence". + + + + + Gets or sets the list of "off sequence". + + + + + Initializes a new instance of the class. + + + + + Represents of the printer type class. + + + + + Gets or sets the printer name. + + + + + Gets or sets the list of printer commands. + + + + + Initializes a new instance of the class. + + + + + Represents supplement class for print of any stream directly in printer. + + + + + Prints a stream. + + Printer name on which should be print. + Document title for printer spooler. + Count of copies. + Stream that will be printed. + This example demonstrates the printing of Stream. + + TextExportPrint.PrintStream("EPSON FX-1000", "My Report", 1, txtStream) + + + + + Represents the XAML export filter. + + + + + + + + Gets or sets the class name of XAML document + + + + + Enable or disable the pictures in XAML export + + + + + Gets or sets the image format used when exporting. + + + + + Get or set scrollbar settings + + + + + Get dictionary of saved images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + Gem MemoryStream what contain image + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + XAML generator + + + + + Create Window. + + + + + Create Grid. + + + + + Create Canvas. + + + + + Create StackPanel + + + + + Create StackPanel + + + + + Create Resources tag + + + + + Add resource for TextObject + + + + + Add resource for TextObject with angle + + + + + Add resource for Line + + + + + Add resource for Rectangle + + + + + Add resource for Ellipse + + + + + Add resource for Polygon + + + + + Add TextObject. + + + + + Method for add TextObject with angle + + + + + Add line. + + + + + Add line with dash. + + + + + Add rectangle. + + + + + Add ellips. + + + + + Add triangle. + + + + + Add Diamond. + + + + + Add image + + + + + + + + + + + + Add image without name + + + + + + + + + + + Add page to StackPanel + + + + + + Save xaml file. + + + + + Save xaml stream. + + + + + + + + + + + + + Specifies the image format in XAML export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Represents the Excel 2003 XML export filter. + + + + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the name of document creator. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Each report page is placed on a new Excel page. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the Zpl export filter. + + + + + + + + Enum of densty types of Zebra printers. + + + + + 6 dpmm(152 dpi) + + + + + 8 dpmm(203 dpi) + + + + + 12 dpmm(300 dpi) + + + + + 24 dpmm(600 dpi) + + + + + Sets the density of printer. + + + + + Sets the init string for sending before printing the document. + + + + + Sets the code page of document. Default is UTF-8 (^CI28). + + + + + Sets the string for sending after printing the document. + + + + + Sets the string for sending before printing each page. + + + + + Sets the scale font size. + + + + + Sets the Printer Font, default value is "A". + + + + + Enable or disable export as bitmap. + + + + + Writes the string value in stream. + + + + + + + Writes the string value in stream with CRLF. + + + + + + + Gets the left position in zpl units. + + + + + + + Gets the top position in zpl units. + + + + + + + Exports the TableObject. + + + + + + Exports the LineObject. + + + + + + Exports the ShapeObject. + + + + + + Exports the TextObject. + + + + + + Gets the position of object in ZPL code. + + + + + + + + Gets the text attributes in ZPL code. + + + + + + + + + + + Gets the text with font width and height in ZPL code. + + + + + + + + + Gets the horiz align in ZPL code. + + + + + + + Gets the rectangle in ZPL code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the export font class. + + + + + These fonts not support Bold or Itailc styles + + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontPanose structure + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of FontTextMetric structure + + + + + Return text metric structure, need to use after FillOutlineTextMetrix() + + + + + Gets or sets internal font name + + + + + Return source font used in constructor + + + + + Returns multiplier for stroke bold emulation + + + + + Gets or sets internal reference + + + + + Gets or sets internal property - save flag + + + + + True if bold style is not supported by font + + + + + True if italic style is not supported by font + + + + + Mark font as editable for InteractiveForms + + + + + Run fill outline text metric structure + + + + + Return glyph width + + + + + + + Return font file + + + + + + Get font data and set NeedSimulateBold and NeedSimulateItalic properties. Call this method after FillOutlineTextMetrix + + + + + Remap str in glyph indexes. Return string with glyph indexes. + + + + + + + + Set pattern for generation of alphabet's subset + + Regular expression with pattern generator + Use left-to-right rules + + + + Return english name of source font + + + + + + Return PANOSE string + + + + + + Create object of ExportTTFFont. + + + + + + Destructor + + + + + This property for internal use only. + + + + + Binary tree class + + + + + Maximal value between child and parent + + + + + Nodes count + + + + + Root node + + + + + Nodes array. Accending sorting by node value. Available after close of tree. + + + + + Accecptable inaccuracy of new values. + + + + + Recursive add value to a node. + + + + + + + + Poll right child node for correct balance. + + + + + + Poll left child for correct balance. + + + + + + Recursive indexation of node and childs. + + + + + + Add new value in tree. All equals are skipped. + + + + + + Close the tree and make index array. + + + + + Seek of value index in the tree. + + + + + + + Find of value index in sub-tree of node. + + + + + + + + Borrow values form List in the tree + + + + + + Borrow values form array in the tree + + + + + + Clear tree + + + + + Tree constructor + + + + + Tree node class + + + + + Link to left child + + + + + Link to right child + + + + + Node value + + + + + Count of nodes in left sub-tree + + + + + Count of nodes in right sub-tree + + + + + Node index + + + + + Node constructor + + + + + + For internal use only. + + + + + Gets current page width. + + + + + + + Gets current page height. + + + + + + + + + + + + + + Class for handling Exports visibility in the Preview control. + + + + + All exports available in the Preview control. + + + + + Gets an instance of ExportOptions. + + + + + + Exports menu node. + + + + + Gets the name. + + + + + Gets nodes. + + + + + Gets type of the export. + + + + + Gets index of the image. + + + + + Gets or sets the tag. + + + + + Gets or sets a value that indicates is node enabled. + + + + + Gets true if node is export, otherwise false. + + + + + Saves current visible exports in config file. + + + + + Restores visible exports from config file. + + + + + + + + + + Sets Export category visibility. + + Export category name. + Visibility state. + + + + Sets Export visibility. + + Export type. + Visibility state. + + + + Default Exports menu + + Tree that contains default Exports menu + + + + All cloud exports available in the preview. + + + + + All messengers exports available in the preview. + + + + + Default cloud exports menu. + + Tree that contains default cloud exports menu. + + + + Default messengers. + + + + + + Register all clouds. + + + + + Register all messengers. + + + + + Contains some configuration properties and settings that will be applied to the FastReport.Net + environment, including Report, Designer and Preview components. + + + + + Gets or sets the main form of application. + + + + + Gets or sets a value indicating that UI library must use high dpi compatible rendering. + + This flag is false by default. Turn it on at the application start if you need + better appearance of custom drawn UI items in high dpi mode. This however may result in + wrong appearance on multi-monitor setup. + /// + + + + Gets or sets the settings for the report designer window. + + + + + Gets or sets the UI style. + + + This property affects both designer and preview windows. + + + + + Gets or sets a value indicating whether the Ribbon UI should be used + + + + + Gets or set the current icon pack index. Default is 0 (classic). + + Set this property at the application start. + + + + Gets or sets a value indicating whether SplashScreen should be displayed while loading designer + + + + + Gets or sets a value indicating whether Welcome window feature enabled. + If false, interface elements associated with the Welcome window will not be visible. + + + + + Gets or sets a value indicating whether Welcome window shoud be displayed on startup + + + + + Gets the folder to store auto save files + + + + + Gets the autosaved report + + + + + Gets the autosaved report path + + + + + Is necessary to process abort and some other events in parallel + + + + + Gets a value indicating that the ASP.NET hosting permission level is set to full trust. + + + + + Gets or sets a value that determines whether to disable some functionality to run in web mode. + + + Use this property if you use FastReport in ASP.Net. Set this property to true before + you access any FastReport.Net objects. + + + + + Restores the form state from the configuration file. + + The form to restore. + + + + Saves the form state to the configuration file. + + The form to save. + + + + Saves the form state to the configuration file. + + The name of the form. + True if the form is in maximized state. + True if the form is in minimized state. + The location of the form. + The size of the form. + + + + Checks the visibility of rectangle area on currently connected screens with small gap. + + Rectanle area for checking. + True for visible rect. + + + + Gets or sets the settings for the preview window. + + + + + Gets a value indicating that the Mono runtime is used. + + + + + Gets or sets a value indicating is it impossible to specify a local data path in Xml and Csv. + + + + + Gets or sets the optimization of strings. Is experimental feature. + + + + + Enable or disable the compression in files with prepared reports (fpx). + + + + + Gets the application folder. + + + + + Gets an english culture information for localization purposes + + + + + Gets or sets the path used to load/save the configuration file. + + + By default, the configuration file is saved to the application local data folder + (C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\). + Set this property to "" if you want to store the configuration file in the application folder. + + + + + Gets or sets the path used to font.list file. + + + By default, the font.list file is saved to the FastReport.config folder + If WebMode enabled (or config file path is null), then file is saved in the application folder. + + + + + Gets or sets the settings for the Report component. + + + + + Gets or sets a value indicating whether RTL layout should be used. + + + + + Gets or sets a value indicating whether hotkeys should be disabled. + + + + + Gets the root item of config xml. + + + + + Gets or sets the path to the temporary folder used to store temporary files. + + + The default value is null, so the system temp folder will be used. + + + + + Gets the path to the system temporary folder used to store temporary files. + + + + + Gets FastReport version. + + + + + Called on script compile + + + + + Gets a PrivateFontCollection instance. + + + + + Enable report script validation. For WebMode only + + + + + Throws when property EnableScriptSecurity has been changed + + + + + Properties of report script validation + + + + + Properties of ScriptSecurity + + + + + Add stubs for the most dangerous classes (in System.IO, System.Reflection etc) + + + + + List of keywords that shouldn't be declared in the report script + + + + + Throws when has changed + + + + + Sets default value for + + + + + Gets or sets the settings for the "Send Email" window. + + + + + Get access to font collection + + + + + Holds the information about the registered object. + + + + + Image index. + + + + + Button index. + + + + + Name of object or category. + + + + + The registered object. + + + + + The registered function. + + + + + Tooltip text. + + + + + Flags that will be used to create an object instance in the designer. + + + + + Indicates whether this object can be inserted several times simultaneously. + + + This is applied to Line object only. + + + + + Gets or sets the enabled flag for the object. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + + + + + + + + + + + + + + + + Contains all registered report items such as objects, export filters, wizards. + + + Use this class to register own components, wizards, export filters or another items that + need to be serialized to/from a report file. + + + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + + + + + + Registers a new cloud storage client. + + Type of cloud storage client. + Text for cloud storage client's menu item. + + The obj must be of type. + + + + // register own cloud storage client + RegisteredObjects.AddCloud(typeof(MyCloud), "My Cloud"); + + + + + + Registers a new messenger. + + Type of messenger. + Text messenger's menu item. + + The obj must be of type. + + + + // register own messenger + RegisteredObjects.AddMessenger(typeof(MyMessenger), "My Messenger"); + + + + + + Registers a new wizard. + + Type of wizard. + Image for wizard item. + Text for wizard item. + true if this wizard creates some items in existing report. + + The obj must be of type. + + This example shows how to register own wizard that is used to create some items in the + current report. If you want to register a wizard that will be used to create a new report, + set the isReportItemWizard to false. + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + + + + + + Root object for all registered objects. + + + + + Root object for all registered functions. + + + + + Checks whether the specified type is registered already. + + Type to check. + true if such type is registered. + + + + Registers a category that may contain several report objects. + + Category name. + Image for category button. + Text for category button. + + Category is a button on the "Objects" toolbar that shows context menu with nested items + when you click it. Consider using categories if you register several report objects. It can + save space on the "Objects" toolbar. For example, FastReport registers one category called "Shapes" + that contains the LineObject and different types of ShapeObject. + The name of category must starts either with "ReportPage," or "DialogPage," depending on + what kind of controls do you need to regiter in this category: report objects or dialog controls. + After the comma, specify the category name. So the full category name that you need to specify + in the name parameter, must be something like this: "ReportPage,Shapes". + + When register an object inside a category, you must specify the full category name in the + category parameter of the Add method. + + + + + Register Export category. + + Category name. + Category text. + + + + Registers a new export filter. + + Type of export filter. + Text for export filter's menu item. + + The obj must be of type. + + + + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + + + + + + Registers custom data connection. + + Type of connection. + Name of connection. + + The obj must be of type. + + + + // register data connection + RegisteredObjects.AddConnection(typeof(MyDataConnection), "My Data Connection"); + + + + + + Registers an object in the specified category. + + Type of object to register. + Name of category to register in. + Index of image for object's button. + Index of object's button in toolbar. + + + + Registers an object in the specified category with button's image, text, object's flags and multi-insert flag. + + Type of object to register. + Name of category to register in. + Image for object's button. + Text for object's button. + Integer value that will be passed to object's OnBeforeInsert method. + Specifies whether the object may be inserted several times until you + select the "arrow" button or insert another object. + + You must specify either the page type name or existing category name in the category parameter. + The report objects must be registered in the "ReportPage" category or custom category that is + registered in the "ReportPage" as well. The dialog controls must be registered in the "DialogPage" + category or custom category that is registered in the "DialogPage" as well. + If you want to register an object that needs to be serialized, but you don't want + to show it on the toolbar, pass empty string in the category parameter. + + To learn about flags, see the method. + + + + // register the report object + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage", myReportObjectBmp, "My Report Object"); + // register the dialog control + RegisteredObjects.Add(typeof(MyDialogControl), "DialogPage", myDialogControlBmp, "My Dialog Control"); + // add a category and register an object inside it + RegisteredObjects.AddCategory("ReportPage,MyCategory", myCategoryBmp, "My Category"); + // register another report object in MyCategory + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage,MyCategory", + anotherReportObjectBmp, "Another Report Object"); + + + + + + Adds a new function category. + + Short name of category. + Display name of category. + + Short name is used to reference the category in the subsequent + method call. It may be any value, for example, "MyFuncs". Display name of category is displayed + in the "Data" window. In may be, for example, "My Functions". + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + + + This example shows how to register a new category: + + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + + + + + Adds a new function into the specified category. + + MethodInfo containing all necessary information about the function. + The name of category to register the function in. + + Your function must be a static, public method of a public class. + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + You may use one of the standard categories, or create a new category by the + method call. + FastReport uses XML comments to display your function's description. + To generate XML comments, enable it in your project's properties + ("Project|Properties..." menu, "Build" tab, enable the "XML documentation file" checkbox). + + + The following example shows how to register own functions: + + public static class MyFunctions + { + /// <summary> + /// Converts a specified string to uppercase. + /// </summary> + /// <param name="s">The string to convert.</param> + /// <returns>A string in uppercase.</returns> + public static string MyUpperCase(string s) + { + return s == null ? "" : s.ToUpper(); + } + + /// <summary> + /// Returns the larger of two 32-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static int MyMaximum(int val1, int val2) + { + return Math.Max(val1, val2); + } + + /// <summary> + /// Returns the larger of two 64-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static long MyMaximum(long val1, long val2) + { + return Math.Max(val1, val2); + } + } + + // register a category + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + // obtain MethodInfo for our functions + Type myType = typeof(MyFunctions); + MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase"); + MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) }); + MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) }); + + // register simple function + RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs"); + + // register overridden functions + RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum"); + RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum"); + + + + + + Finds the registered object's info. + + The type of object to find. + The object's info. + This method can be used to disable some objects, for example: + RegisteredObjects.FindObject(typeof(PDFExport)).Enabled = false; + + + + + Register and override the method with method name in the type. + For property use the property name and _Get or _Set suffix. + + Type for registering method + Name of method fir registering + Method for registering + + + + Gets the method or null if method is not found + + Type for method finding + Name for method finfing + Use True value for inheritance the method from base type, use false for get the method only from the this type + + + + + Used to get localized values from the language resource file. + + + The resource file used by default is english. To load another locale, call + the method. It should be done at application start + before you use any FastReport classes. + + + + + Adds user image to 96 dpi images. + + User image (16x16 pixels). + Image index in the image list. + + + + Gets the standard images used in FastReport as an ImageList. + + ImageList object that contains standard images. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified index. + + Image index (zero-based). + Dpi value (96 for base dpi). + The image with specified index. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified name from resources. + + The name of image resource. + Dpi value (96 for base dpi). + The image. + + + + Gets an image with specified index and converts it to Icon. + + Image index (zero-based). + Dpi value (96 for base dpi). + The Icon object. + + + + Gets or set the folder that contains localization files (*.frl). + + + + + Returns the current UI locale name, for example "en". + + + + + Loads the locale from a file. + + The name of the file that contains localized strings. + + + + Loads and caches the locale from information. + Notes: *.frl the localization file is looked for in + To work correctly, it is recommended to install FastReport.Localization package + + + + + + Loads the locale from a stream. + + The stream that contains localized strings. + + + + Loads the english locale. + + + + + Gets a string with specified ID. + + The resource ID. + The localized string. + + Since the locale file is xml-based, it may contain several xml node levels. For example, + the file contains the following items: + + <Objects> + <Report Text="Report"/> + <Bands Text="Bands"> + <ReportTitle Text="Report Title"/> + </Bands> + </Objects> + + To get the localized "ReportTitle" value, you should pass the following ID + to this method: "Objects,Bands,ReportTitle". + + + + + Get builtin string. + + + + + + + Replaces the specified locale string with the new value. + + Comma-separated path to the existing locale string. + The new string. + + Use this method if you want to replace some existing locale value with the new one. + + + + Res.Set("Messages,SaveChanges", "My text that will appear when you close the designer"); + + + + + + Tries to get a string with specified ID. + + The resource ID. + The localized value, if specified ID exists; otherwise, the ID itself. + + + + Tries to get builtin string with specified ID. + + + + + + + Checks if specified ID exists. + + The resource ID. + true if specified ID exists. + + + + Resource loader class. + + + + + Gets a bitmap from specified assembly resource. + + Assembly name. + Resource name. + Bitmap object. + + + + Gets a bitmap from specified FastReport assembly resource. + + Resource name. + Bitmap object. + + + + Gets a cursor from specified assembly resource. + + Assembly name. + Resource name. + Cursor object. + + + + Gets a cursor from specified FastReport assembly resource. + + Resource name. + Cursor object. + + + + Gets an icon from specified assembly resource. + + Assembly name. + Resource name. + Icon object. + + + + Gets an icon from specified FastReport assembly resource. + + Resource name. + Icon object. + + + + Gets a stream from specified assembly resource. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from FastReport assembly resource. + + Resource name. + Stream object. + + + + Gets a stream from specified assembly resource and unpacks it. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from specified FastReport assembly resource and unpacks it. + + Resource name. + Stream object. + + + + A static class that contains methods to auto-convert rtl layout. + + + + + Changes control's layout to rtl. + + + + + + Draws an image and a text. + + The control which is used to determine RTL and DPI settings. + The draw event args. + The image. + The text. + This method is used to draw items in an owner-drawn listboxes and comboboxes. It respects RTL and DPI settings of a control. + + + + Gets current dpi value for the control. + + The control. + The dpi value. + + + + Gets current dpi multiplier for the control (1.0 for 96dpi). + + The control. + The dpi multiplier. + + + + Gets current font dpi multiplier for the control (1.0 for 96dpi). + + The return value depends on the base resolution of the main screen. + The control. + The font dpi multiplier. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical font to device font. + + The control. + Logical font. + Determines whether to dispose the original font or not. + Device font. + + + + Returns an image from resources using control's dpi value. + + The control. + Image index. + An image with specified index from "buttons.png" resource. + + + + Returns an image from resources using control's dpi value. + + The control. + Image name. + An image with specified index from "buttons.png" resource. + + + + Returns an imagelist from resources using control's dpi value. + + The control. + An imagelist from "buttons.png" resource. + + + + The style of FastReport user interface. + + + + + Specifies the Microsoft Office 2003 style (blue). + + + + + Specifies the Microsoft Office 2007 style (blue). + + + + + Specifies the Microsoft Office 2007 style (silver). + + + + + Specifies the Microsoft Office 2007 style (black). + + + + + Specifies the Office 2010 (Blue) style. + + + + + Specifies the Office 2010 (Silver) style. + + + + + Specifies the Office 2010 (Black) style. + + + + + Specifies the Office 2013 style. + + + + + Specifies the Microsoft Visual Studio 2005 style. + + + + + Specifies the Visual Studio 2010 style. + + + + + Specifies the Visual Studio 2012 (Light) style. + + + + + Specifies the Microsoft Vista style (black). + + + + + Contains conversion methods between FastReport's UIStyle to various enums. + + + + + Contains visual style names. + + + + + Converts FastReport's UIStyle to eDotNetBarStyle. + + Style to convert. + Value of eDotNetBarStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eOffice2007ColorScheme. + + Style to convert. + Value of eOffice2007ColorScheme type. + + + + Converts FastReport's UIStyle to eColorSchemeStyle. + + Style to convert. + Value of eColorSchemeStyle type. + + + + Returns app workspace color for the given style. + + UI style. + The color. + + + + Returns control color for the given style. + + UI style. + The color. + + + + Contains methods to call common editors. + + + Use this class if you are writing a new component for FastReport. + + + + + Invokes the expression editor. + + A reference to the report. + The expression to edit. + The new expression. + + + + Invokes the border editor. + + The Border to edit. + The new border. + + + + Invokes the data band columns editor. + + The data band columns to edit. + + + + + Invokes the fill editor. + + The fill to edit. + The new fill. + + + + Invokes the outline editor. + + The outline to edit. + The new outline. + + + + Provides the message functions. + + + + + Shows the Message Box with error message. + + The message. + + + + Shows Message Box with confirmation. + + The message. + The dialog buttons. + The dialog result. + + + + Shows information Message Box. + + The message. + + + + The profiler. + + + + + Starts the profiler. + + + + + Finishes the profiler and displays results. + + + + + Script security event arguments. + + + + + Gets the report language. + + The report language. + + + + Gets the report. + + The report. + + + + Gets the report script. + + The report script. + + + + Gets the references of script. + + Script references + + + + Gets or sets value if script is allowed to compile + + true if is valid; otherwise, false. + + + + Initializes a new instance of the class. + + Report. + Report's script. + Report's references. + + + + Base class for plugin's assembly initializer. + + + FastReport has an open architecture. That means you can extend it with own classes + such as report objects, wizards, export filters. Usually such classes are + placed in separate dlls (plugins). FastReport has mechanism to load plugin dlls. You can specify + which plugins to load at first start, in the FastReport configuration file (by default it is located in the + C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\FastReport.config file). + To do this, add an xml item with your plugin name inside the <Plugins> item: + + <?xml version="1.0" encoding="utf-8"?> + <Config> + <Plugins> + <Plugin Name="c:\Program Files\MyProgram\MyPlugin.dll"/> + </Plugins> + </Config> + + When you run your application and use the Report object first time, all plugins will be loaded. + To register objects contained in a plugin, FastReport searches for classes of type + AssemblyInitializerBase and instantiates them. + Use this class to register custom report objects, controls, wizards, exports that + are contained in the assembly. To do this, make your own class of the AssemblyInitializerBase + type and override its default constructor. In the constructor, call RegisteredObjects.Add + methods to register all necessary items. + + + + + Registers plugins contained in this assembly. + + + This constructor is called automatically when the assembly is loaded. + + This example show how to create own assembly initializer to register own items. + + public class MyAssemblyInitializer : AssemblyInitializerBase + { + public MyAssemblyInitializer() + { + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + } + } + + + + + + Source of image, only for inline img tag + + + + + Class for ACMYK color conversions + + + + + Alpha transparency 0..255 + + + + + Cyan 0..100 + + + + + Magenta 0..100 + + + + + Yellow 0..100 + + + + + Black 0..100 + + + + + Returns ACMYK as string. + + + + + + Gets CMYKA from string. + + + + + + Converts Color value to ACMYK + + + + + + Converts separate ARGB values in ACMYK + + + + + + + + + Returns ARGB color value + + + + + + Creates CMYKColor from ARGB values + + + + + + + + + Creates CMYKColor from ACMYK values + + + + + + + + + + Creates CMYKColor from string (comma separated values) + + + + + + Creates CMYKColor from Color value + + + + + + Color Utilities + + + + + Return true for CMYK Jpeg image + + + + + + + Contains methods that peform string to object and vice versa conversions. + + + + + Converts an object to a string. + + The object to convert. + The string that contains the converted value. + + + + Converts a value to a string using the specified converter. + + The object to convert. + The type of converter. + The string that contains the converted value. + + + + Converts a string value to the specified data type. + + The data type to convert to. + The string to convert from. + The object of type specified in the type parameter that contains + a converted value. + + + + Converts a string to an object using the specified converter. + + The string to convert. + The type of converter. + The object that contains the converted value. + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + The result string. + + This method replaces some special symbols like <, > into xml-compatible + form: &lt;, &gt;. To convert such string back to original form, use the + method. + + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + Determines whether it is necessary to convert cr-lf symbols to xml form. + The result string. + + + + Converts a value to xml-compatible string. + + The value to convert. + The result string. + + + + Convert the xml-compatible string to the regular one. + + The string to convert. + The result string. + + This is counterpart to the method. + + + + + Decreases the precision of floating-point value. + + The initial value. + The number of decimal digits in the fraction. + The value with lesser precision. + + + + Converts a string value to the float. + + The string value to convert. + The float value. + + Both "." or "," decimal separators are allowed. + + + + + Converts a string value to the float. + + The string value to convert. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts the string containing several text lines to a collection of strings. + + The string to convert. + The collection instance. + + + + Converts a collection of strings to a string. + + The collection to convert. + The string that contains all lines from the collection. + + + + Converts null value to 0, false, empty string, depending on type. + + The data type. + The value of the type data type. + + + + Converts string value to byte[]. + + The string to convert + The value of the byte[] data type. + + + + Converts a string to NameValueCollection. + + The string to convert. + The NameValueCollection that contains the name/value pairs. + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Result of processing + True if successful + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Append result of processing to FastString + True if successful + + + + Calc the Crc32 checksum + + + + + Caclulate Streams checksum. + + + + + + + Calculate byte array checksum. + + + + + + + Calculate string checksum. + + + + + + + Begin the checksum + + + + + + Update the checksum + + + + + + + + + + End the checksum. + + + + + + + Contains methods used to crypt/decrypt a data. + + + + + Sets the password that is used to crypt connection strings stored in a report. + + + See the property for more details. + + + + + Crypts a stream using specified password. + + The destination stream that will receive the crypted data. + The password. + The stream that you need to write to. + + Pass the stream you need to write to, to the dest parameter. Write your data to the + stream that this method returns. When you close this stream, the dest stream will be + closed too and contains the crypted data. + + + + + Decrypts a stream using specified password. + + Stream that contains crypted data. + The password. + The stream that contains decrypted data. + + You should read from the stream that this method returns. + + + + + Checks if the stream contains a crypt signature. + + Stream to check. + true if stream is crypted. + + + + Encrypts the string using the default password. + + String to encrypt. + The encrypted string. + + The password used to encrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Encrypts the string using specified password. + + String to encrypt. + The password. + The encrypted string. + + + + Decrypts the string using the default password. + + String to decrypt. + The decrypted string. + + The password used to decrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Decrypts the string using specified password. + + String to decrypt. + The password. + The decrypted string. + + + + Computes hash of specified stream. Initial position in stream will be saved. + + Initial stream + + + + + Computes hash of specified array. + + Initial array + + + + + Computes hash of specified array. + + Initial array + + + + + MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. + It was created by Austin Appleby in 2008 and is currently hosted on Github along with its test suite named 'SMHasher'. + It also exists in a number of variants, all of which have been released into the public domain. + The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop. + https://en.wikipedia.org/wiki/MurmurHash + Implementation of Murmur3 Hash by Adam Horvath + http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html + + + + + READ_SIZE + + + + + ComputeHash function + + + + + + + Gets the Hash + + + + + Used to draw a text with non-standard angle or justification. + + + + + Draws a string. + + String to draw. + Graphics object to draw on. + Font that used to draw text. + Brush that determines the color and texture of the drawn text. + RectangleF structure that specifies the location of the drawn text. + StringFormat that specifies formatting attributes, such as line spacing and alignment, that are applied to the drawn text. + Horizontal alignment of the text. + Width ratio of the font used to draw a string. + Line height, in pixels. + Angle of the text, in degrees. + Indicates whther to draw string close to the printout. + Force justify for the last line. + + + + Initializes a new instance of the DrawText class with default settings. + + + + + Draws control to a bitmap. + + Control to draw. + Determines whether to draw control's children or not. + The bitmap. + + + + The exception that is thrown when the user tried to set object's name that is already exists. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when loading bad formed xml report file. + + + + + The exception that is thrown when loading an encrypted report with wrong password. + + + + + The exception that is thrown if there is an error in the report's script code. + + + + + The exception that is thrown when trying to set an object's Parent property to + an object that not accepts children of this type. + + + + + The exception that is thrown when trying to load a report file that contains reference to an + unknown object type. + + + + + The exception that is thrown when initializing a table datasource which + TableName or Alias is not set properly. + + + + + The exception that is thrown when trying to access a row of a datasource that is not initialized yet. + + + + + The exception that is thrown if an error occurs in the TableObject.ManualBuild event. + + + + + The exception that is thrown if an error occurs in the MatrixObject.ManualBuild event. + + + + + The exception that is thrown if a report object's Name property is set to wrong value. + + + + + The exception that is thrown if an unknown value is supplied to some methods dealing with totals, variables etc. + + + + + throws this exception if an error occurs in the SaveReport method. + See inner exception for detailed information. + + + + + The exception that is thrown when the Group Header has no group condition. + + + + + The helper class used to create unique component names using the fastest method. + + + Note: you can create unique component's name using its CreateUniqueName method. + However, it is very slow and can't be used in some situations (when you create a report + layout in a code and have a lot of objects on a page). + + This example demonstrates how to use this class. + + FastNameCreator nameCreator = new FastNameCreator(Report.AllObjects); + foreach (Base c in Report.AllObjects) + { + if (c.Name == "") + nameCreator.CreateUniqueName(c); + } + + + + + + Creates the unique name for the given object. + + The object to create name for. + + + + Initializes a new instance of the FastNameCreator class with collection of + existing report objects. + + The collection of existing report objects. + + + + Fast alternative of StringBuilder. + + + + + Gets the Length of string. + + + + + Gets or sets the chars of string. + + + Char value + + + + Gets StringBuilder + + + + + Initialize the new array for chars. + + Length of initial array. + + + + Checks the empty array. + + True if string is empty. + + + + Converts the array in string. + + String value. + + + + Clears the string. + + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Append formatted string. + + + + + + + + Appends new line. + + FastString object. + + + + Appends the string by char value. + + Char value. + FastString object. + + + + Appends the another FastString object. + + FastString object. + FastString object. + + + + Appends the string by object data. + + Object value. + FastString object. + + + + Copies the substring in char array. + + Start index in source. + Destination array. + Destination index. + Count of chars + + + + Removes substring. + + Start index of removed string. + Length of removed string. + FastString object. + + + + Inserts string. + + Start index in existing string. + Value of inserting string. + FastString object. + + + + Replacing the substring on other. + + Old string value. + New string value. + FastString object. + + + + Index of substring. + + Substring for search. + Sarting position for search. + Position of substring. + + + + Compare of substring in position. + + Starting index for comparsion. + Value for compare. + True if substring is identical in position. + + + + Returns the substring. + + Starting index. + Length of substring. + Substring. + + + + Creates the new FastString object with initial capacity. + + Initial capacity. + + + + Creates the new FastString object with default capacity. + + + + + Creates the new FastString object from initial string. + + + + + + Represents a collection of float values. + + + + + Gets or sets the value at the specified index. + + Index of a value. + The value at the specified index. + + + + Adds the specified values to the end of this collection. + + + + + + Adds a value to the end of this collection. + + Value to add. + Index of the added value. + + + + Inserts a value into this collection at the specified index. + + The zero-based index at which value should be inserted. + The value to insert. + + + + Removes the specified value from the collection. + + Value to remove. + + + + Returns the zero-based index of the first occurrence of a value. + + The value to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether a value is in the collection. + + The value to locate in the collection. + true if value is found in the collection; otherwise, false. + + + + Copies values from another collection. + + Collection to copy from. + + + + Represents a collection of FastReport base objects. + + + + + Gets an owner of this collection. + + + + + Adds the specified elements to the end of this collection. + + Range of elements. + + + + Adds the specified elements to the end of this collection. + + Collection of elements. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Returns an array of collection items. + + + + + + Determines whether two collections are equal. + + The collection to compare with. + true if collections are equal; false otherwise. + + + + Copies the content to another collection. + + The collection to copy to. + + + + + + + + + + + + + Initializes a new instance of the FRCollectionBase class with default settings. + + + + + Initializes a new instance of the FRCollectionBase class with specified owner. + + The owner of this collection. + + + + Specifies the main mode of the designer's workspace. + + + + + Specifies selection mode. + + + + + Specifies insertion mode. + + + + + Specifies drag-drop mode. + + + + + Specifies the additional mode of the designer's workspace. + + + + + Specifies default mode. + + + + + Indicates that user moves the selected objects. + + + + + Indicates that user resizes the selected objects. + + + + + Indicates that user draw the selection rectangle. + + + + + Specifies a custom mode handled by the object. + + + + + Provides a data for mouse events. + + + + + The X mouse coordinate. + + + + + The Y mouse coordinate. + + + + + Current state of mouse buttons. + + + + + Current keyboard state. + + + + + Indicates that current object was handled the mouse message. + + + + + The delta of the mouse movement. + + + + + The mouse wheel delta. + + + + + Current cursor shape. + + + + + Additional mode of the designer's workspace. + + + + + Current sizing point if Mode is set to Size. + + + + + Current selection rectangle if mode is set to SelectionRect. + + + + + Active object that handles the mouse event. + + + + + The source object of drag-drop operation. + + + + + Multiple sources objects of drag-drop operation. + + + + + The target object of drag-drop operation. + + + + + The message to show when drag source is over the object. + + + + + Additional data supplied and handled by report objects. + + + + + Specifies the sizing point used to resize an object by mouse. + + + + + No sizing point. + + + + + Specifies left-top sizing point. + + + + + Specifies left-bottom sizing point. + + + + + Specifies right-top sizing point. + + + + + Specifies right-bottom sizing point. + + + + + Specifies top-center sizing point. + + + + + Specifies bottom-center sizing point. + + + + + Specifies left-center sizing point. + + + + + Specifies right-center sizing point. + + + + + Specifies a selection point used to resize an object. + + + + + The X coordinate of the point. + + + + + The Y coordinate of the point. + + + + + The size mode. + + + + + Initializes a new instance of the SelectionPoint class with specified location and size mode. + + The X coordinate. + The Y coordinate. + Size mode. + + + + Provides a data for paint event. + + + + + Gets a Graphics object to draw on. + + + + + Gets the X scale factor. + + + + + Gets the Y scale factor. + + + + + Gets the cache that contains graphics objects. + + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + IGraphicsRenderer object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + Graphics object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + The reader used to deserialize object's properties from a report file. + + + + + Gets a string that contains errors occured during the load. + + + + + Gets the current item name. + + + + + Gets or sets a value indicating whther is necessary to read the object's children. + + + + + Returns Root element for this reader + + + + + Gets or sets target of serialization. + + + + + Reads the specified object. + + The object to read. + + The object must implement the interface. This method + invokes the Deserialize method of the object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads an object from current xml node. + + The object. + + This method creates an instance of object described by the current xml node, then invokes + its Deserialize method. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads properties of specified object. + + The object to read. + + This method reads simple properties like "Text", "Border.Lines" etc. for specified object. + To read nested properties like collections, you should override the + method of an object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Moves the current xml item. + + false if there is no more items to move on; true otherwise. + + This method is used to read child objects. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Checks if current item has specified property. + + The property name to check. + true if current item has specified property. + + + + Reads the string property. + + Name of property. + Property value. + + + + Reads the boolean property. + + Name of property. + Property value. + + + + Reads the integer property. + + Name of property. + Property value. + + + + Reads the float property. + + Name of property. + Property value. + + + + Reads the double property. + + Name of property. + Property value. + + + + Reads the enum property. + + Name of property. + Type of property. + Property value. + + + + Reads the standalone property value. + + Property value. + + + + Disposes the reader, fixups the property references. + + + + + Loads the xml items from a stream. + + The stream to load from. + + + + Initializes a new instance of the FRReader class with specified report. + + Reference to a report. + + + + Initializes a new instance of the FRReader class with specified report and xml item with + contents to read. + + Reference to a report. + Xml item with contents to read. + + + + Specifies the target for the serialize operation. + + + + + Serialize to the report file. + + + + + Serialize to the preview pages. + + + + + Serialize to the source pages of a preview. + + + + + Serialize to the designer's clipboard. + + + + + Serialize to the designer's undo/redo buffer. + + + + + The writer used to serialize object's properties to a report file. + + + + + Gets or sets current xml item name. + + + + + Gets or sets target of serialization. + + + + + Gets the ethalon object to compare with. + + + + + Gets or sets a value that determines whether is necessary to serialize child objects. + + + + + Gets or sets a value that determines whether is necessary to add xml header. + + + + + Serializes the specified object. + + The object to serialize. + + The object must implement the interface. This method + invokes the Serialize method of the object. + + This example demonstrates the use of writer. + + public void Serialize(FRWriter writer) + { + // get the etalon object. It will be used to write changed properties only. + Base c = writer.DiffObject as Base; + + // write the type name + writer.ItemName = ClassName; + + // write properties + if (Name != "") + writer.WriteStr("Name", Name); + if (Restrictions != c.Restrictions) + writer.WriteValue("Restrictions", Restrictions); + + // write child objects if allowed + if (writer.SaveChildren) + { + foreach (Base child in ChildObjects) + { + writer.Write(child); + } + } + } + + + + + + Serializes the object using specified etalon. + + The object to serialize. + The etalon object. + + + + Writes a string property. + + Property name. + Property value. + + + + Writes a boolean property. + + Property name. + Property value. + + + + Writes an integer property. + + Property name. + Property value. + + + + Writes a float property. + + Property name. + Property value. + + + + Writes a double property. + + Property name. + Property value. + + + + Writes an enumeration property. + + Property name. + Property value. + + + + Writes an object reference property. + + Property name. + Property value. + + + + Writes a standalone property value. + + Name of property. + Property value. + + This method produces the following output: + <PropertyName>PropertyValue</PropertyName> + + + + + Determines if two objects are equal. + + The first object. + The second object. + true if objects will be serialized to the same value. + + + + Disposes the writer. + + + + + Saves the writer output to a stream. + + Stream to save to. + + + + Initializes a new instance of the FRWriter class with default settings. + + + + + Initializes a new instance of the FRWriter class with specified xml item that will + receive writer's output. + + The xml item that will receive writer's output. + + + + Returns splited string + + text for splitting + index of first character of second string + second part of string + returns true if ends on enter + first part of string + + + + Check the line, and if last word is able to move next line, move it. + e.g. white space won't move to next line. + If word is not moved return current line. + else return new line + + the paragraph for lines + the line with extra words + the index of start last word in this line + width to place words + ref to current line width + + + + + Represents character placement. + + + + + Be care generates dictionary only one time + + + + + Return true if read char + + + + + + Represents a style used in HtmlTags mode. Color does not affect the equals function. + + + + + returns true if objects realy equals + + + + + + + Converts a PNG image to a icon (ico) + + The input image + The output stream + Preserve the aspect ratio + Wether or not the icon was succesfully generated + + + + Returns an Image format. + + + + + Name of object or category. + + + + + Tooltip text. + + + + + The registered function. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + Used to access to resource IDs inside the specified branch. + + + Using the method, you have to specify the full path to your resource. + Using this class, you can shorten the path: + + // using the Res.Get method + miKeepTogether = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,RepeatOnEveryPage")); + + // using MyRes.Get method + MyRes res = new MyRes("ComponentMenu,HeaderBand"); + miKeepTogether = new ToolStripMenuItem(res.Get("KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(res.Get("ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(res.Get("RepeatOnEveryPage")); + + + + + + + Gets a string with specified ID inside the main branch. + + The resource ID. + The localized value. + + + + Initializes a new instance of the class with spevified branch. + + The main resource branch. + + + + Localized CategoryAttribute class. + + + + + + + + Initializes a new instance of the SRCategory class. + + The category name. + + + + Advanced text renderer is used to perform the following tasks: + - draw justified text, text with custom line height, text containing html tags; + - calculate text height, get part of text that does not fit in the display rectangle; + - get paragraphs, lines, words and char sequence to perform accurate export to such + formats as PDF, TXT, RTF + + Here is how one may operate the renderer items: + + foreach (AdvancedTextRenderer.Paragraph paragraph in renderer.Paragraphs) + { + foreach (AdvancedTextRenderer.Line line in paragraph.Lines) + { + foreach (AdvancedTextRenderer.Word word in line.Words) + { + if (renderer.HtmlTags) + { + foreach (AdvancedTextRenderer.Run run in word.Runs) + { + using (Font f = run.GetFont()) + using (Brush b = run.GetBrush()) + { + g.DrawString(run.Text, f, b, run.Left, run.Top, renderer.Format); + } + } + } + else + { + g.DrawString(word.Text, renderer.Font, renderer.Brush, word.Left, word.Top, renderer.Format); + } + } + } + } + + + + + + The scale for font tag + + + + + Paragraph represents single paragraph. It consists of one or several . + + + + + Line represents single text line. It consists of one or several . + Simple line (that does not contain tabs, html tags, and is not justified) has + single which contains all the text. + + + + + Word represents single word. It may consist of one or several , in case + when HtmlTags are enabled in the main class. + + + + + Represents character placement. + + + + + Represents a style used in HtmlTags mode. + + + + + Represents sequence of characters that have the same . + + + + + Represents inline Image. + + + + + Standard text renderer uses standard DrawString method to draw text. It also supports: + - text rotation; + - fonts with non-standard width ratio. + In case your text is justified, or contains html tags, use the + class instead. + + + + + Cache for rendering img tags in textobject. + You can use only HTTP[s] protocol with absolute urls. + + + + + Is serialized + + + + + Get or set WebClient for downloading imgs by url + + + + + Occurs before image load + + + + + Occurs after image load + + + + + Enumerates all values + + + + + + Return CacheItem by src + + Src attribute from img tag + + + + + + + + + + + + Set CacheItem by src + + Src attribute from img tag + CacheItem + + + + + Validate src attribute from image + + Src attribute from img tag + return true if src is valid + + + + + + + + + + + + Item of image cache Dictionary + + + + + Get Base64 string + + + + + Return true if has some error with Image + + + + + Get Image + + + + + Get byte array + + + + + Return error image and set true to error property + + + + + + Set value for cache item + + Image encoded base64 string + + + + Set value for cache item + + Image + + + + Set value for cache item + + Image + + + + + + + + + + WebClientEventArgs + + + + + Gets a cache + + + + + Gets or sets a value indicating whether the event was handled. + + + + + Gets or sets a url from src attribue of img tag + + + + + + + + + + + The report page units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in hundreths of inch. + + + + + Defines the constants used to convert between report units and screen pixels. + + + To convert pixels to millimeters, use the following code: + valueInMillimeters = valueInPixels / Units.Millimeters; + To convert millimeters to pixels, use the following code: + valueInPixels = valueInMillimeters * Units.Millimeters; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in 1/10 of ich. + + + + + The number of pixels in 1/100 of inch. + + + + + Represents a xml property. + + + + + Represents a property key. + + + + + Represents a property value. + + + + + Creates new property and assigns value + + Property key + Property value + + + + Represents a xml node. + + + + + Gets a number of children in this node. + + + + + Gets a list of children in this node. + + + + + Gets a child node with specified index. + + Index of node. + The node with specified index. + + + + Gets or sets the node name. + + + This property will return "Node" for a node like <Node Text="" Left="0"/> + + + + + Gets or sets a list of properties in this node. + + + + + Gets or sets the parent for this node. + + + + + Gets or sets the node value. + + + This property will return "ABC" for a node like <Node>ABC</Node> + + + + + Gets the root node which owns this node. + + + + + Clears the child nodes of this node. + + + + + Adds a new child node to this node. + + The new child node. + + + + Adds a specified node to this node. + + The node to add. + + + + Inserts a specified node to this node. + + Position to insert. + Node to insert. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; null otherwise. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; the new node otherwise. + + This method adds the node with specified name to the child nodes if it cannot find the node. + Do not dispose items, which has been created by this method + + + + + Gets the index of specified node in the child nodes list. + + The node to find. + Zero-based index of node, if found; -1 otherwise. + + + + Gets a property with specified name. + + The property name. + The value of property, if found; empty string otherwise. + + This property will return "0" when you request the "Left" property for a node + like <Node Text="" Left="0"/> + + + + + Removes all properties. + + + + + Sets the value for a specified property. + + The property name. + Value to set. + + For example, you have a node like <Node Text="" Left="0"/>. When you set the + "Text" property to "test", the node will be <Node Text="test" Left="0"/>. + If property with specified name is not exist, it will be added. + + + + + Removes a property with specified name. + + The property name. + Returns true if property is removed, false otherwise. + + + + Disposes the node and all its children. + + + + + Initializes a new instance of the XmlItem class with default settings. + + + + + Represents a xml document that contains the root xml node. + + + Use Load and Save methods to load/save the document. To access the root node + of the document, use the property. + + + + + Gets or sets a value indicating whether is necessary to indent the document + when saving it to a file/stream. + + + + + Gets or sets a value indicating whether is necessary to add xml header. + + + + + Gets the root node of the document. + + + + + Clears the document. + + + + + Saves the document to a stream. + + Stream to save to. + + + + Saves the document to a string. + + Writer to save to. + + + + Loads the document from a stream. + + Stream to load from. + + + + Saves the document to a file. + + The name of file to save to. + + + + Loads the document from a file. + + The name of file to load from. + + + + Disposes resources used by the document. + + + + + Initializes a new instance of the XmlDocument class with default settings. + + + + + + + + + + + + + Clear all files in archive. + + + + + Check for exisiting file in archive. + + + + + + + Adds the file form disk to the archive. + + + + + + Adds all files from directory (recursive) on the disk to the archive. + + + + + + Adds the stream to the archive. + + + + + + + Creates the zip and writes it to rhe Stream + + + + + + Creates the ZIP archive and writes it to the file. + + + + + + Gets or sets the Root Folder. + + + + + Gets or sets the errors. + + + + + Gets or sets the commentary to the archive. + + + + + Gets count of files in archive. + + + + + Creates the new zip archive. + + + + + Class helper for compile source code with path of assemblies + + + + + Generate a assembly in memory with some source code and several path for additional assemblies + + + + + + + + The components factory. + + + The components factory. + + + + + Creates a RichObject instance with specified name and parent. + + The name of the RichObject instance. + The parent of the RichObject instance. + The RichObject instance. + + + + Creates a MSChartObject instance with specified name and parent. + + The name of the MSChartObject instance. + The parent of the MSChartObject instance. + The MSChartObject instance. + + + + Creates a SparklineObject instance with specified name and parent. + + The name of the SparlineObject instance. + The parent of the SparlineObject instance. + + + + + Creates a MapObject instance with specified name and parent. + + The name of the MapObject instance. + The parent of the MapObject instance. + The MapObject instance. + + + + Creates a ReportPage instance in the specified Report. + + The Report instance. + The ReportPage instance. + + + + Creates a ReportTitleBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportTitleBand instance. + + + + Creates a ReportSummaryBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportSummaryBand instance. + + + + Creates a PageHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The PageHeaderBand instance. + + + + Creates a PageFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The PageFooterBand instance. + + + + Creates a ColumnHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnHeaderBand instance. + + + + Creates a ColumnFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnFooterBand instance. + + + + Creates a DataHeaderBand instance in the specified DataBand. + + The DataBand instance. + The DataHeaderBand instance. + + + + Creates a DataBand instance in the specified ReportPage. + + The ReportPage instance. + The DataBand instance. + + + + Creates a DataFooterBand instance in the specified DataBand. + + The DataBand instance. + The DataFooterBand instance. + + + + Creates a GroupHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The GroupHeaderBand instance. + + + + Creates a GroupFooterBand instance in the cpecified ReportPage. + + The ReportPage instance. + The GroupFooterBand instance. + + + + Creates a ChildBand instance in the specified BandBase. + + The BandBase instance. + The ChildBand instance. + + + + Creates an OverlayBand in the specified ReportPage. + + The ReportPage instance. + The OverlayBand instance. + + + + Creates a Style instance with specified name. + + The name of the Style instance. + The report to add style to. + The Style instance. + + + + Creates a TextObject instance with specified name and parent. + + The name of the TextObject instance. + The parent of the TextObject instance. + The TextObject instance. + + + + Creates a PictureObject instance with specified name and parent. + + The name of the PictureObject instance. + The parent of the PictureObject instance. + The PictureObject instance. + + + + Creates a LineObject instance with specified name and parent. + + The name of the LineObject instance. + The parent of the LineObject instance. + The LineObject instance. + + + + Creates a ShapeObject instance with specified name and parent. + + The name of the ShapeObject instance. + The parent of the ShapeObject instance. + The ShapeObject instance. + + + + Creates a PolyLineObject instance with specified name and parent. + + The name of the PolyLineObject instance. + The parent of the PolyLineObject instance. + The PolyLineObject instance. + + + + Creates a PolygonObject instance with specified name and parent. + + The name of the PolygonObject instance. + The parent of the PolygonObject instance. + The PolygonObject instance. + + + + Creates a SubreportObject instance with specified name and parent. + + The name of the SubreportObject instance. + The parent of the SubreportObject instance. + The SubreportObject instance. + + + + Creates a ContainerObject instance with specified name and parent. + + The name of the ContainerObject instance. + The parent of the ContainerObject instance. + The ContainerObject instance. + + + + Creates a CheckBoxObject instance with specified name and parent. + + The name of the CheckBoxObject instance. + The parent of the CheckBoxObject instance. + The CheckBoxObject instance. + + + + Creates a HtmlObject instance with specified name and parent. + + The name of the HtmlObject instance. + The parent of the HtmlObject instance. + The HtmlObject instance. + + + + Creates a TableObject instance with specified name and parent. + + The name of the TableObject instance. + The parent of the TableObject instance. + The TableObject instance. + + + + Creates a MatrixObject instance with specified name and parent. + + The name of the MatrixObject instance. + The parent of the MatrixObject instance. + The MatrixObject instance. + + + + Creates a BarcodeObject instance with specified name and parent. + + The name of the BarcodeObject instance. + The parent of the BarcodeObject instance. + The BarcodeObject instance. + + + + Creates a ZipCodeObject instance with specified name and parent. + + The name of the ZipCodeObject instance. + The parent of the ZipCodeObject instance. + The ZipCodeObject instance. + + + + Creates a CellularTextObject instance with specified name and parent. + + The name of the CellularTextObject instance. + The parent ot the CellularTextObject instance. + The CellularTextObject instance. + + + + Creates a LinearGauge instance with specified name and parent. + + The name of the LinearGauge instance. + The parent of the LinearGauge instance. + The LinearGauge instance. + + + + Creates a SimpleGauge instance with specified name and parent. + + The name of the SimpleGauge instance. + The parent of the SimpleGauge instance. + The SimpleGauge instance. + + + + Represents the DevExpess import plugin. + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + The DevExpress units converter. + + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + Use this method for fonts, because font size is not stored as multiplied by dpi + + + + + Converts value to Boolean. + + Boolen value as string. + + + + Converts DevExpress Color. + + The DevExpress Color value as string. + The Color value. + + + + Converts DevExpress BackColor. + + The DevExpress BackColor value as string. + The Color value. + + + + Converts the DevExpress BorderDashStyle to LineStyle. + + The DevExpress BorderDashStyle value. + The LineStyle value. + + + + Converts the DevExpress LineStyle to LineStyle. + + The DevExpress LineStyle value. + The LineStyle value. + + + + Converts the DevExpress TextAlignment to HorzAlignment. + + The DevExpress TextAlignment value. + The HorzAlign value. + + + + Converts the DevExpress TextAlignment to VertAlignment. + + The DevExpress TextAlignment value. + The VertAlign value. + + + + Converts the DevExpress ImageSizeMode to PictureBoxSizeMode. + + The ImageSizeMode value as string. + The PictureBoxSizeMode value. + + + + Converts the DevExpress Shape to ShapeKind. + + The DevExpress Shape value as string. + The ShapeKind value. + + + + Converts the DevExpress Barcode.Symbology to Barcode.Barcode. + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Converts the DevExpress border sides to FastReport border sides + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Represents the RDL import plugin. + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + + + + The RDL units converter. + + + The RDL units converter. + + + + + Converts the RDL GradientType to GradientStyle. + + The RDL GradientType value. + The GradientStyle value. + + + + Converts the RDL Chart.Type to SeriesChartType. + + The RDL Chart.Type value. + The SeriesChartType value. + + + + Converts the RDL Chart.Palette to ChartColorPalette. + + The RDL Chart.Palette value. + The RDL ChartColorPalette value. + + + + Converts the RDL Chart.Legend.Position to Legend.Docking and Legend.Alignment. + + The RDL Chart.Legend.Position value. + The Legend instance to convert to. + + + + Converts the RDL Chart.Legend.Layout to LegendStyle. + + The RDL Chart.Legend.Layout value. + The LegendStyle value. + + + + Converts the RDL BorderStyle to ChartDashStyle. + + The RDL BorderStyle value. + The ChartDashStyle value. + + + + Converts the RDL Axis.Visible to AxisEnabled. + + The RDL Axis.Visible value. + The AxisEnabled value. + + + + Converts the RDL TickMarkStyle to TickMarkStyle. + + The RDL TickMarkStyle value. + The TickMarkStyle value. + + + + Converts the RDL Shading to LightStyle. + + The RDL Shading value. + The LightStyle value. + + + + Converts the RDL Boolean to bool value. + + The RDL Boolean value. + The bool value. + + + + Converts the RDL Color to Color. + + The RDL Color value. + The Color value. + + + + Converts the RDL Size to float value. + + The RDL Size value. + The RDL Size units measure. + The float value of RDL Size. + + + + Converts the RDL Size to int value. + + The RDL Size value. + The RDL Size units measure. + The int value of RDL Size. + + + + Converts the RDL Size to millimeters. + + The RDL Size value. + The float value of RDL Size in millimeters. + + + + Converts the RDL Size to pixels. + + The RDL Size value. + The float value of RDL Size in pixels. + + + + Converts the RDL FontStyle to FontStyle. + + The RDL FontStyle value. + The FontStyle value. + + + + Converts the RDL FontSize to float. + + The RDL FontSize value. + The float value of RDL FontSize in points. + + + + Converts the RDL TextAlign to HorzAlign. + + The RDL TextAlign value. + The HorzAlign value. + + + + Converts the RDL TextAlign to VerticalAlign. + + The RDL VerticalAlign value. + The VertAlign value. + + + + Converts the RDL WritingMode to Angle. + + The RDL WritingMode value. + The int value of RDL WritingMode in degree. + + + + Converts the RDL TextAlign to StringAlignment. + + The RDL TextAling value. + The StringAlignment value. + + + + Converts the RDL TextAlign and VerticalAlign to ContentAlignment. + + The RDL TextAlign value. + The RDL VerticalAlign value. + The ContentAlignment value. + + + + Converts the RDL BorderStyle to LineStyle. + + The RDL BorderStyle value. + The LineStyle value. + + + + Converts the RDL Sizing to PictureBoxSizeMode. + + The RDL Sizing value. + The PictureBoxSizeMode value. + + + + The RDL Size units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in points. + + + + + Specifies the units measured in picas. + + + + + Defines the constants used to convert between RDL Size and pixels. + + + To convert pixels to inches, use the code: + inches = pixels / SizeUnitsP.Inch; + To convert inches to pixels, use the code: + pixels = inches * SizeUnitsP.Inch; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in one point. + + + + + The number of pixels in one pica. + + + + + Defines the constants used to convert between RDL Size and millimeters. + + + To convert millimeters to inches, use the code: + inches = millimeters / SizeUnitsM.Inch; + To convert inches to millimeters, use the code: + millimeters = inches * SizeUnitsM.Inch; + + + + + The number of millimeters in one centimeter. + + + + + The number of millimeters in one inch. + + + + + The number of millimeters in one point. + + + + + The number of millimeters in one pica. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the List and Label import plugin. + + + + + Gets the value indicating is the report List and Label template after trying to load it. + + + + + Initializes a new instance of the class. + + + + + + + + The List and Label units converter. + + + + + Converts List and Label units to millimeters. + + The List and Label unit as string. + The value in millimeters. + + + + Converts List and Label units to pixels. + + The List and Label unit as string. + The value in pixels. + + + + Converts List and Label paper orientation. + + The List and Label paper orientation value as string. + Returns true if orientation is landscape. + + + + Converts List and Label bool. + + The List and Label bool value as string. + A bool value. + + + + Converts List and Label text Align. + + The List and Label text Align value as string. + A HorzAlign value. + + + + Convert List and Label LineType to LineStyle. + + The List and Label LineType value as string. + A LineStyle value. + + + + Converts List and Label rounding to float. + + The List and Label rounding value as string. + A float value. + + + + Represents the pages of a prepared report. + + + Prepared page is a page that you can see in the preview window. Prepared pages can be + accessed via property. + The common scenarios of using this object are: + + + Working with prepared pages after the report is finished: load + () or save () pages + from/to a .fpx file, get a page with specified index to work with its objects + (); modify specified page (). + + + + Using the , , + methods while report is generating to produce an output. + + + + + + + + + Gets the number of pages in the prepared report. + + + + + Specifies an action that will be performed on method call. + + + + + Gets or sets a value indicating whether the prepared pages can be uploaded to the file cache. + + + This property is used while report is generating. + Default value for this property is true. That means the prepared pages may be uploaded to + the file cache if needed. To prevent this (for example, if you need to access some objects + on previously generated pages), set the property value to false. + + + + + + + + Adds a source page to the prepared pages dictionary. + + The template page to add. + + Call this method before using AddPage and AddBand methods. This method adds + a page to the dictionary that will be used to decrease size of the prepared report. + + + + + Adds a new page. + + The original (template) page to add. + + Call the method before adding a page. This method creates + a new output page with settings based on page parameter. + + + + + Prints a band with all its child objects. + + The band to print. + true if band was printed; false if it can't be printed + on current page due to its PrintOn property value. + + Call the method before adding a band. + + + + + Gets a page with specified index. + + Zero-based index of page. + The page with specified index. + + + + Gets the size of specified page, in pixels. + + Index of page. + the size of specified page, in pixels. + + + + Replaces the prepared page with specified one. + + The index of prepared page to replace. + The new page to replace with. + + + + Modify the prepared page with new sizes. + + The name of prepared page to reSize. + + + + Removes a page with the specified index. + + The zero-based index of page to remove. + + + + Creates a copy of a page with specified index and inserts it after original one. + + The zero-based index of original page. + + + + Saves prepared pages to a stream. + + The stream to save to. + + + + Saves prepared pages to a .fpx file. + + The name of the file to save to. + + + + Loads prepared pages from a stream. + + The stream to load from. + + + + Loads prepared pages from a .fpx file. + + The name of the file to load from. + + + + Clears the prepared report's pages. + + + + + Creates the pages of a prepared report + + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the OutlineControl class with default settings. + + + + + Represents a Windows Forms control used to preview a report. + + + To use this control, place it on a form and link it to a report using the report's + property. To show a report, call + the Report.Show method: + + report1.Preview = previewControl1; + report1.Show(); + + Use this control's methods such as , etc. to + handle the preview. Call method to clear the preview. + You can specify whether the standard toolbar is visible in the + property. The property allows you to hide/show the statusbar. + + + + + + Occurs when current page number is changed. + + + + + Occurs when Print button clicked. + + + + + Occurs when Export button clicked. + + + + + Gets a reference to the report. + + + + + Obsolete. Gets or sets the color of page border. + + + + + Gets or sets the color of active page border. + + + + + Gets or sets the first page offset from the top left corner of the control. + + + + + Gets or sets a value indicating whether the toolbar is visible. + + + + + Gets or sets a value indicating whether the statusbar is visible. + + + + + Gets or sets a value indicating whether the outline control is visible. + + + + + Specifies the set of buttons available in the toolbar. + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Gets or sets the visual style. + + + + + Gets or sets a value indicating that the BackColor property must be used to draw the background area. + + + By default, the background area is drawn using the color defined in the current UIStyle. + + + + + Gets the preview window's toolbar. + + + + + Gets the preview window's statusbar. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Updates the control appearance and layout on dpi change. + + + + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + If true, makes the new tab active. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Switches to the tab with specified text. + + Text of the tab. + true if the tab with specified text exists, or false if there is no such tab. + + + + Deletes the report tab with specified text. + + The text of the tab. + + + + Checks if the tab with specified text exists. + + The text of the tab. + true if the tab exists. + + + + Displays the text in the status bar. + + Text to display. + + + + Sets the focus to the preview control. + + + + + Prints the current report. + + true if report was printed; false if user cancels the "Print" dialog. + + + + Saves the current report to a .fpx file using the "Save FIle" dialog. + + + + + Saves the current report to a specified .fpx file. + + + + + Saves the current report to a stream. + + + + + Loads the report from a .fpx file using the "Open File" dialog. + + + + + Loads the report from a specified .fpx file. + + + + + Load the report from a stream. + + The stream to load from. + + + + Sends an email. + + + + + Finds the text in the current report using the "Find Text" dialog. + + + + + Finds the specified text in the current report. + + Text to find. + A value indicating whether the search is case-sensitive. + A value indicating whether the search matches whole words only. + true if text found. + + + + Finds the next occurence of text specified in the Find method. + + true if text found. + + + + Navigates to the first page. + + + + + Navigates to the previuos page. + + + + + Navigates to the next page. + + + + + Navigates to the last page. + + + + + Gets or sets the current page number. + + + This value is 1-based. + + + + + Gets the pages count in the current report. + + + + + Gets or sets the zoom factor. + + + 1 corresponds to 100% zoom. + + + + + Zooms in. + + + + + Zooms out. + + + + + Zooms to fit the page width. + + + + + Zooms to fit the whole page. + + + + + Edits the current page in the designer. + + + + + Copies the current page in preview. + + + + + Removes the current page in preview. + + + + + Edits the current report in the designer. + + + + + Edits the watermark. + + + + + Edits the page settings. + + + + + Navigates to the specified position inside a specified page. + + The page number (1-based). + The position inside a page, in pixels. + + + + Clears the preview. + + + + + Refresh the report. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies an action that will be performed on PreparedPages.AddPage method call. + + + + + Do not add the new prepared page if possible, increment the CurPage instead. + + + + + Add the new prepared page. + + + + + Represents a class that contains all parameters of Swiss QR Code. + + + + + IBAN object + + + + + (either EUR or CHF) + + + + + Creditor (payee) information + + + + + Reference information + + + + + Can be null + + + + + Debitor (payer) information + + + + + Amount + + + + + Optional command for alternative processing mode - line 1 + + + + + Optional command for alternative processing mode - line 2 + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR" + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Represents a barcode object. + Represents a barcode object. + + + The instance of this class represents a barcode. Here are some common + actions that can be performed with this object: + + + To select the type of barcode, use the property. + + + + To specify a static barcode data, use the property. + You also may use the or properties + to specify dynamic value for a barcode. + + + + To set a barcode orientation, use the property. + + + + To specify the size of barcode, set the property + to true and use the property to zoom the barcode. + If property is set to false, you need to specify the + size using the Width and + Height properties. + + + + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + + + + + + + + + + + + + + + + Specifies the horizontal alignment of a Barcode object. Works only when autosize is on. + + + + + Specifies that the barcode is aligned to the left of the original layout. + + + + + Specifies that the barcode is aligned to the center of the original layout. + + + + + Specifies that the barcode is aligned to the right of the original layout. + + + + + Gets or sets the barcode type. + + + + + Gets or sets the horizontal alignment of a Barcode object. + + + + + Gets or sets the symbology name. + + + The following symbology names are supported: + + "2/5 Interleaved" + "2/5 Industrial" + "2/5 Matrix" + "Codabar" + "Code128" + "Code39" + "Code39 Extended" + "Code93" + "Code93 Extended" + "EAN8" + "EAN13" + "MSI" + "PostNet" + "UPC-A" + "UPC-E0" + "UPC-E1" + "Supplement 2" + "Supplement 5" + "PDF417" + "Datamatrix" + "QRCode" + + + + + barcode.SymbologyName = "PDF417"; + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + Gets or sets the angle of barcode, in degrees. + + + + + Gets or sets a value that determines whether the barcode should handle its width automatically. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the barcode data. + + + + + Enable or disable of using an expression in Text + + + + + Gets or sets brackets for using in expressions + + + + + Gets or sets a value that indicates if the barcode should display a human-readable text. + + + + + Gets or sets the barcode data. + + + + + Gets or sets padding within the BarcodeObject. + + + + + Gets or sets a zoom of the barcode. + + + + + Gets or sets a value that determines whether it is necessary to hide the object if the + barcode data is empty. + + + + + Gets or sets the text that will be displayed if the barcode data is empty. + + + + + Gets or sets values for forced use of a bitmap image instead of a vector + + + + + Initialize current BarcodeObject as Swiss QR. + + Parameters of swiss qr. + + + + Relocate BarcodeObject based on alignment + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + + Aztec 2D code representation + + Rustam Abdullaev + + + + Compact or full symbol indicator + + + + + Size in pixels (width and height) + + + + + Number of levels + + + + + Number of data codewords + + + + + The symbol image + + + + + The class holds the available options for the AztecWriter + + + + + Representing the minimal percentage of error correction words. + Note: an Aztec symbol should have a minimum of 25% EC words. + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + A simple, fast array of bits, represented compactly by an array of ints internally. + + Sean Owen + + + Flips bit i. + + + bit to set + + + + + Gets the next set. + + first bit to check + index of first bit that is set, starting from the given index, or size if none are set + at or beyond this given index + + + + see getNextSet(int) + + index to start looking for unset bit + index of next unset bit, or if none are unset until the end + + + Sets a block of 32 bits, starting at bit i. + + + first bit to set + + the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + + + Sets a range of bits. + + start of range, inclusive. + end of range, exclusive + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + + start of range, inclusive. + + end of range, exclusive + + if true, checks that bits in range are set, otherwise checks that they are not set + + true iff all bits are set or not set in range, according to value argument + + IllegalArgumentException if end is less than or equal to start + + + + Appends the bit. + + The bit. + + + underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + + + Appends the least-significant bits, from value, in order from most-significant to + least-significant. For example, appending 6 bits from 0x000001E will append the bits + 0, 1, 1, 1, 1, 0 in that order. + + containing bits to append + bits from value to append + + + + Toes the bytes. + + first bit to start writing + array to write into. Bytes are written most-significant byte first. This is the opposite + of the internal representation, which is exposed by BitArray + position in array to start writing + how many bytes to write + + + Reverses all bits in the array. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Erstellt ein neues Objekt, das eine Kopie der aktuellen Instanz darstellt. + + + Ein neues Objekt, das eine Kopie dieser Instanz darstellt. + + + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+
+ Sean Owen + dswitkin@google.com (Daniel Switkin) +
+ + The width of the matrix + + + + The height of the matrix + + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + + row/column dimension of this matrix + + + +

Gets the requested bit, where true means black.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + + value of given bit in matrix + +
+ +

Flips the given bit.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ +
+ The horizontal position to begin at (inclusive) + + The vertical position to begin at (inclusive) + + The width of the region + + The height of the region + +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + + The row to retrieve + + An optional caller-allocated BitArray, will be allocated if null or too small + + The resulting BitArray - this reference should always be used even when passing + your own row + + + + + Sets the row. + + row to set + {@link BitArray} to copy from + + + + Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees + + + + + This is useful in detecting the enclosing rectangle of a 'pure' barcode. + + {left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white + + + + This is useful in detecting a corner of a 'pure' barcode. + + {x,y} coordinate of top-left-most 1 bit, or null if it is all white + + + + These are a set of hints that you may pass to Writers to specify their behavior. + + dswitkin@google.com (Daniel Switkin) + + + + Specifies the width of the barcode image + type: + + + + + Specifies the height of the barcode image + type: + + + + + Don't put the content string into the output image. + type: + + + + + Specifies what character encoding to use where applicable. + type: + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + type: + + + + + Specifies whether to use compact mode for PDF417. + type: + + + + + Don't append ECI segment. + That is against the specification of QR Code but some + readers have problems if the charset is switched from + ISO-8859-1 (default) to UTF-8 with the necessary ECI segment. + If you set the property to true you can use UTF-8 encoding + and the ECI segment is omitted. + type: + + + + + if true, don't switch to codeset C for numbers + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + Generates Aztec 2D barcodes. + + Rustam Abdullaev + + + + Encodes the given binary content as an Aztec symbol + + input data string + Aztec symbol matrix with metadata + + + + Encodes the given binary content as an Aztec symbol + + input data string + minimal percentage of error check words (According to ISO/IEC 24778:2008, + a minimum of 23% + 3 words is recommended) + if non-zero, a user-specified value for the number of layers + + Aztec symbol matrix with metadata + + + + + Defines an container for encoder options + + + + + Gets the data container for all options + + + + + Specifies the height of the barcode image + + + + + Specifies the width of the barcode image + + + + + Don't put the content string into the output image. + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + + + + + Initializes a new instance of the class. + + + + +

This class contains utility methods for performing mathematical operations over + the Galois Fields. Operations use a given primitive polynomial in calculations.

+

Throughout this package, elements of the GF are represented as an {@code int} + for convenience and speed (but at the cost of memory). +

+
+ Sean Owen +
+ + + Create a representation of GF(size) using the given primitive polynomial. + + irreducible polynomial whose coefficients are represented by + * the bits of an int, where the least-significant bit represents the constant + * coefficient + the size of the field + the factor b in the generator polynomial can be 0- or 1-based + * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). + * In most cases it should be 1, but for QR code it is 0. + + + + Builds the monomial. + + The degree. + The coefficient. + the monomial representing coefficient * x^degree + + + + Implements both addition and subtraction -- they are the same in GF(size). + + sum/difference of a and b + + + + Exps the specified a. + + 2 to the power of a in GF(size) + + + + Logs the specified a. + + A. + base 2 log of a in GF(size) + + + + Inverses the specified a. + + multiplicative inverse of a + + + + Multiplies the specified a with b. + + A. + The b. + product of a and b in GF(size) + + + + Gets the size. + + + + + Gets the generator base. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + +

Represents a polynomial whose coefficients are elements of a GF. + Instances of this class are immutable.

+

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+
+ Sean Owen +
+ + + Initializes a new instance of the class. + + the {@link GenericGF} instance representing the field to use + to perform computations + coefficients as ints representing elements of GF(size), arranged + from most significant (highest-power term) coefficient to least significant + if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + + degree of this polynomial + + + + + Gets a value indicating whether this is zero. + + true iff this polynomial is the monomial "0" + + + + coefficient of x^degree term in this polynomial + + The degree. + coefficient of x^degree term in this polynomial + + + + evaluation of this polynomial at a given point + + A. + evaluation of this polynomial at a given point + + + + This produces nearly optimal encodings of text into the first-level of + encoding used by Aztec code. + It uses a dynamic algorithm. For each prefix of the string, it determines + a set of encodings that could lead to this prefix. We repeatedly add a + character and generate a new set of optimal encodings until we have read + through the entire input. + @author Frank Yellin + @author Rustam Abdullaev + + + + + Convert the text represented by this High Level Encoder into a BitArray. + + text represented by this encoder encoded as a + + + + Implements Reed-Solomon encoding, as the name implies. + + Sean Owen + William Rucklidge + + + + State represents all information about a sequence necessary to generate the current output. + Note that a state is immutable. + + + + + Create a new state representing this state with a latch to a (not + necessary different) mode, and then a code. + + + + + Create a new state representing this state, with a temporary shift + to a different mode to output a single value. + + + + + Create a new state representing this state, but an additional character + output in Binary Shift mode. + + + + + Create the state identical to this one, but we are no longer in + Binary Shift mode. + + + + + Returns true if "this" state is better (or equal) to be in than "that" + state under all possible circumstances. + + + + + Contains conversion support elements such as classes, interfaces and static methods. + + + + + Copies an array of chars obtained from a String into a specified array of chars + + The String to get the chars from + Position of the String to start getting the chars + Position of the String to end getting the chars + Array to return the chars + Position of the destination array of chars to start storing the chars + An array of chars + + + + Sets the capacity for the specified List + + The List which capacity will be set + The new capacity value + + + + Converts a string-Collection to an array + + The strings. + + + + + Joins all elements to one string. + + + The separator. + The values. + + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The value. + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The start index. + The end index. + The value. + + + + Generates the Code128 barcode. + + + This barcode supports three code pages: A, B and C. You need to set appropriate code page + in the barcode text, or use the auto encode feature. See the property + for more details. + + This example shows how to configure the BarcodeObject to display Code128 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + + + + + + Gets or sets a value that determines whether the barcode should automatically + use appropriate encoding. + + + You may use this property to encode data automatically. If you set it to false, + you must specify the code page inside the data string. The following control codes are available: + + + Sequence + Code128 control code + + + &A; + START A / CODE A + + + &B; + START B / CODE B + + + &C; + START C / CODE C + + + + &S; + SHIFT + + + &1; + FNC1 + + + &2; + FNC2 + + + &3; + FNC3 + + + &4; + FNC4 + + + The following example shows how to specify control codes: + + BarcodeObject barcode; + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + barcode.Text = "&C;1234&A;ABC"; + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for 2D-barcodes such as PDF417 and Datamatrix. + + + + + Generates the "2/5 Interleaved" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Identcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Leitcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Generates the "ITF-14" barcode. + + + + + Gets or sets the value indicating that vertical bearer bars are needed to draw. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "2/5 Industrial" barcode. + + + + + Generates the "2/5 Matrix" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 extended barcode. + + + + + Generates the Code93 barcode. + + + + + + + + Generates the Code93 extended barcode. + + + + + Generates the 2D Aztec barcode. + + + + + Gets or sets the error correction percent. + + + + + Initializes a new instance of the class with default settings. + + + + + + + + The base class for all barcodes. + + + + + Gets the name of barcode. + + + + + Gets or sets the color of barcode. + + + + + Creates the exact copy of this barcode. + + The copy of this barcode. + + + + Assigns properties from other, similar barcode. + + Barcode object to assign properties from. + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Codabar barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the Datamatrix encoding. + + + + + Specifies the auto encoding. + + + + + Specifies the ASCII encoding. + + + + + Specifies the C40 encoding. + + + + + Specifies the text encoding. + + + + + Specifies the binary encoding. + + + + + Specifies the X12 encoding. + + + + + Specifies the Edifact encoding. + + + + + Specifies the Datamatrix symbol size. + + + + + Specifies the auto size. + + + + + Specifies the 10x10 size. + + + + + Specifies the 12x12 size. + + + + + Specifies the 8x8 size. + + + + + Specifies the 14x14 size. + + + + + Specifies the 8x32 size. + + + + + Specifies the 16x16 size. + + + + + Specifies the 12x26 size. + + + + + Specifies the 18x18 size. + + + + + Specifies the 20x20 size. + + + + + Specifies the 12x36 size. + + + + + Specifies the 22x22 size. + + + + + Specifies the 16x36 size. + + + + + Specifies the 24x24 size. + + + + + Specifies the 26x26 size. + + + + + Specifies the 16x48 size. + + + + + Specifies the 32x32 size. + + + + + Specifies the 36x36 size. + + + + + Specifies the 40x40 size. + + + + + Specifies the 44x44 size. + + + + + Specifies the 48x48 size. + + + + + Specifies the 52x52 size. + + + + + Specifies the 64x64 size. + + + + + Specifies the 72x72 size. + + + + + Specifies the 80x80 size. + + + + + Specifies the 88x88 size. + + + + + Specifies the 96x96 size. + + + + + Specifies the 104x104 size. + + + + + Specifies the 120x120 size. + + + + + Specifies the 132x132 size. + + + + + Specifies the 144x144 size. + + + + + Generates the 2D Data Matrix barcode. + + + + + Gets or sets the symbol size. + + + + + Gets or sets the encoding mode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the size of the pixel. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for EAN barcodes. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the EAN8 barcode. + + + + + Generates the EAN13 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the GS1-128 (formerly known as UCC-128 or EAN-128) barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Intelligent Mail (USPS) barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 2D MaxiCode barcode. + + + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + + + + Initializes a new instance of the class with default settings. + + + + + + + Implements MaxiCode according to ISO 16023:2000. + + MaxiCode employs a pattern of hexagons around a central 'bulls-eye' + finder pattern. Encoding in several modes is supported, but encoding in + Mode 2 and 3 require primary messages to be set. Input characters can be + any from the ISO 8859-1 (Latin-1) character set. + + TODO: Add ECI functionality. + + @author Robin Stuart + @author Daniel Gredler + + + MaxiCode module sequence, from ISO/IEC 16023 Figure 5 (30 x 33 data grid). + + + ASCII character to Code Set mapping, from ISO/IEC 16023 Appendix A. + 1 = Set A, 2 = Set B, 3 = Set C, 4 = Set D, 5 = Set E. + 0 refers to special characters that fit into more than one set (e.g. GS). + + + ASCII character to symbol value, from ISO/IEC 16023 Appendix A. + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + @param mode the MaxiCode mode to use + + + Returns the MaxiCode mode being used. Only modes 2 to 6 are supported. + + @return the MaxiCode mode being used + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the + position of this symbol in the series. Valid values are 1 through 8 inclusive. + + @param position the position of this MaxiCode symbol in the structured append series + + + Returns the position of this MaxiCode symbol in a series of symbols using structured append. If this symbol is not part of + such a series, this method will return 1. + + @return the position of this MaxiCode symbol in a series of symbols using structured append + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the total + number of symbols in the series. Valid values are 1 through 8 inclusive. A value of 1 indicates that this symbol is not + part of a structured append series. + + @param total the total number of MaxiCode symbols in the structured append series + + + Returns the size of the series of MaxiCode symbols using structured append that this symbol is part of. If this symbol is + not part of a structured append series, this method will return 1. + + @return size of the series that this symbol is part of + + + Sets the primary data. Should only be used for modes 2 and 3. Must conform to the following structure: + + + + + + +
CharactersMeaning
1-9Postal code data which can consist of up to 9 digits (for mode 2) or up to 6 + alphanumeric characters (for mode 3). Remaining unused characters should be + filled with the SPACE character (ASCII 32).
10-12Three-digit country code according to ISO-3166.
13-15Three digit service code. This depends on your parcel courier.
+ + @param primary the primary data +
+ + Returns the primary data for this MaxiCode symbol. Should only be used for modes 2 and 3. + + @return the primary data for this MaxiCode symbol + + + {@inheritDoc} + + + Extracts the postal code, country code and service code from the primary data and returns the corresponding primary message + codewords. + + @return the primary message codewords + + + Returns the primary message codewords for mode 2. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Returns the primary message codewords for mode 3. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Formats text according to Appendix A, populating the {@link #set} and {@link #character} arrays. + + @return true if the content fits in this symbol and was formatted; false otherwise + + + Guesses the best set to use at the specified index by looking at the surrounding sets. In general, characters in + lower-numbered sets are more common, so we choose them if we can. If no good surrounding sets can be found, the default + value returned is the first value from the valid set. + + @param index the current index + @param Length the maximum Length to look at + @param valid the valid sets for this index + @return the best set to use at the specified index + + + Moves everything up so that the specified shift or latch character can be inserted. + + @param position the position beyond which everything needs to be shifted + @param c the latch or shift character to insert at the specified position, after everything has been shifted + + + Returns the error correction codewords for the specified data codewords. + + @param codewords the codewords that we need error correction codewords for + @param ecclen the number of error correction codewords needed + @return the error correction codewords for the specified data codewords + + + {@inheritDoc} + + + {@inheritDoc} + + + + Generates the MSI barcode. + + + + + Specifies the error correction level used for PDF417 barcode. + + + + + Indicates that correction level should be calculated automatically. + + + + + Specifies level 0. + + + + + Specifies level 1. + + + + + Specifies level 2. + + + + + Specifies level 3. + + + + + Specifies level 4. + + + + + Specifies level 5. + + + + + Specifies level 6. + + + + + Specifies level 7. + + + + + Specifies level 8. + + + + + Specifies the compaction mode used for PDF417 barcode. + + + + + Indicates that compaction mode should be calculated automatically. + + + + + Specifies the text compaction mode. + + + + + Specifies the numeric compaction mode. + + + + + Specifies the binary compaction mode. + + + + + Generates the 2D PDF417 barcode. + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = PDF417CompactionMode.Text; + + + + + + Gets or sets the barcode aspect ratio. + + + A ratio or 0.5 will make the barcode width twice as large as the height. + + + + + Gets or sets the number of barcode data columns. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the number of barcode data rows. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the error level correction used for the barcode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the compaction mode. + + + + + Gets or sets the size of the pixel. + + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Pharmacode barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + Generates the Plessey barcode. + + + + + Appends the given pattern to the target array starting at pos. + + encode black/white pattern into this array + position to start encoding at in target + lengths of black/white runs to encode + starting color - false for white, true for black + the number of elements added to target. + + + + Generates the PostNet barcode. + + + + + Specifies the QR code error correction level. + + + + + L = ~7% correction. + + + + + M = ~15% correction. + + + + + Q = ~25% correction. + + + + + H = ~30% correction. + + + + + Specifies the QR Code encoding. + + + + + UTF-8 encoding. + + + + + ISO 8859-1 encoding. + + + + + Shift_JIS encoding. + + + + + Windows-1251 encoding. + + + + + cp866 encoding. + + + + + Generates the 2D QR code barcode. + + + + + Gets or sets the error correction. + + + + + Gets or sets the encoding used for text conversion. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E0 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E1 barcode. + + + + + Generates the UPC A barcode. + + + + + Generates the 2-digit supplement barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 5-digit supplement barcode. + + + + + The base class for linear (1D) barcodes. + + + + + Gets or sets a value that determines if the barcode object should calculate + the check digit automatically. + + + + + Gets or sets a relative width of wide bars in the barcode. + + + + + Gets the value indicating that the barcode is numeric. + + + + + Gets or sets a value indicating that leading/trailing whitespaces must be trimmed. + + + true if trim; otherwise, false. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Container object that may contain child objects. + + + + + Gets the collection of child objects. + + + + + This event occurs before the container layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a script event name that will be fired before the container layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + + + + + + + + + + Initializes a new instance of the ContainerObject class with default settings. + + + + + + + + + + + + + + + + + The default field name. + + + + + FastReport json connection + + + + + Name of json object table + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the JsonDataConnection connection string builder. + + + Use this class to parse connection string returned by the JsonDataConnection class. + + + + + Gets or sets json data + + + + + Gets or sets json schema + + + + + Gets or sets json url encoding + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + JsonTableDataSource present a json array object + + + + + Gets or sets value for force update schema on init schema + + + + + + + + + + + + + + + + + + + + + + + This class represents a single data column in a . + + + + + + + + Gets or sets the business object property name which this column is bound to. + + + + + Gets or sets the business object property descriptor which this column is bound to. + + + + + Gets or sets the type of data supplied by this column. + + + + + Gets or sets a value that specifies the type of a control that will be created + when you drop this column on a report page. + + + If you need to specify the custom type, use the property instead. + + + + + Gets or sets a name of custom bindable control. + + + Use this property if you want to bind a column to custom object type. You need to + specify the type name of your object; that object must be registered in FastReport using the + RegisteredObjects.Add method. + + + + + Gets or sets the format of this column. + + + This property is used when you drag a column from the Data window to the report page. + FastReport will create a "Text" object and set its "Format" property to the corresponding format. + By default, this property is set to Auto. It means that the format will be determined + automatically depending on the property. + + + + + Gets or sets expression of the calculated column. + + + This property is used if the property is true. + + + + + Gets or sets a value that indicates whether this column is calculated. + + + You should specify the property for calculated columns. + + + + + Gets the collection of child columns. + + + + + Gets or sets the tag value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Column class with default settings. + + + + + + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all connection editors. This control is used when you edit + the connection in the Data Wizard. + + + + + Gets or sets a connection string. + + + + + This method should construct the connection string from values entered by user. + + The connection string. + + + + This method should parse the connection string and fill the user interface elements. + + The connection string. + + + + Updates the component layout on dpi change. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a connection to xml file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + XmlDataConnection conn = new XmlDataConnection(); + conn.XmlFile = @"c:\data.xml"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .xsd file. + + + + + Gets or sets the path to .xml file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a total that is used to calculate aggregates such as Sum, Min, Max, Avg, Count. + + + + + + + + Gets or sets the total type. + + + + + Gets or sets the expression used to calculate the total. + + + + + Gets or sets the evaluator databand. + + + The total will be calculated for each row of this band. + + + + + This property is kept for compatibility only. + + + + + Gets or sets the band to print the total on. + + + The total will be resetted after the specified band has been printed. + + + + + Gets or sets a value that determines whether the total should be resetted after print. + + + + + Gets or sets a value that determines whether the total should be resetted if printed + on repeated band (i.e. band with "RepeatOnEveryPage" flag). + + + + + Gets or sets the condition which tells the total to evaluate. + + + + + Gets or sets a value that determines if invisible rows of the Evaluator should + be included into the total's value. + + + + + This property is not relevant to this class. + + + + + Gets the value of total. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a datasource based on DataTable class. + + This example shows how to add a new table to the existing connection: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = "Table1"; + conn.Tables.Add(table); + + + + + + + + + Gets or sets the underlying DataTable object. + + + + + Gets or sets the table name. + + + + + Gets or sets SQL "select" command. + + + If this command contains parameters, you should specify them in the + property. + + + + + Gets a collection of parameters used by "select" command. + + + You must set up this property if the SQL query that you've specified in the + property contains parameters. + You can pass a value to the SQL parameter in two ways. + The right way is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the SQL parameter. To do this, set the SQL parameter's Expression property + to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + The other way (unrecommended) is to find a datasource object and set its parameter from a code: + + TableDataSource ds = report.GetDataSource("My DataSource Name") as TableDataSource; + ds.Parameters[0].Value = 10; + + This way is not good because you hardcode the report object's name. + + + + + Gets or sets the parent object. + + + + + Gets or sets a value that determines whether it is necessary to store table data in a report file. + + + + + Gets or sets the table data. + + + This property is for internal use only. + + + + + If set, ignores the Connection (always returns null). Needed when we replace the + existing connection-based datasource with datatable defined in an application. + + + + + Gets or sets the query builder schema. + + + This property is for internal use only. + + + + + + + + + + + + + + + + + Refresh the table schema. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a master-detail relation between two data sources. + + + To setup a relation, you must specify parent and child datasources. For a parent datasource, + you must specify set of key columns; for child datasource, you must specify set of columns that + relate to the parent key columns. + This example shows how to create relation between Customers and Orders tables: + + Report report1; + DataSourceBase customersTable = report1.Dictionary.DataSources.FindByAlias("Customers"); + DataSourceBase ordersTable = report1.Dictionary.DataSources.FindByAlias("Orders"); + Relation rel = new Relation(); + rel.Name = "customersOrders"; + rel.ParentDataSource = customersTable; + rel.ChildDataSource = ordersTable; + rel.ParentColumns = new string[] { "CustomerID" }; + rel.ChildColumns = new string[] { "CustomerID" }; + report1.Dictionary.Relations.Add(rel); + + + + + + + + + + Gets or sets the parent datasource. + + + + + Gets or sets the child datasource. + + + + + Gets or sets an array of parent datasource columns. + + + Note: both and must have the + same number of elements. + + + + + Gets or sets an array of child datasource columns. + + + Note: both and must have the + same number of elements. + + + + + + + + Compares this relation with another one. + + Another relation to compare with. + true if both relations are equal; false otherwise. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to any OLE DB database. + + This example shows how to add a new connection to the report. + + Report report1; + OleDbDataConnection conn = new OleDbDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to any database through ODBC. + + This example shows how to add a new connection to the report. + + Report report1; + OdbcDataConnection conn = new OdbcDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS SQL database. + + This example shows how to add a new connection to the report. + + Report report1; + MsSqlDataConnection conn = new MsSqlDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS Access database (.mdb file). + + This example shows how to add a new connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + Gets or sets the datasource file name. + + + + + Gets or sets the user name. + + + + + Gets or sets the password. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data connection components such as . + + This example shows how to add a new MS Access connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + Gets a string that will identify a connection in the Data Wizard. + + The string that contains the connection type and some meaningful information. + + + + Gets the default type for a new parameter. + + The integer representation of a parameter type. + + + + Gets a control that will be used to edit the connection properties. + + The editor's control. + + + + + + + Tests the connection. + + + If test connection is not successful, this method throws an exception. Catch this exception to + show an error message. + + + + + Gets an internal DataSet object that contains all data tables. + + + + + Gets a collection of data tables in this connection. + + + To add a table to the connection, you must either create a new TableDataSource and add it + to this collection or call the method which will add + all tables available in the database. + + + + + Gets or sets a connection string that contains all connection parameters. + + + To modify some parameter of the connection, use respective + ConnectionStringBuilder class. + Security note: the connection string may contain a user name/password. + This information is stored in a report file. By default, it is crypted using the standard + FastReport's password. Since FastReport's source code is available to anyone who paid for it, + it may be insecure to use the standard password. For more security, you should use own + password. To do this, specify it in the Crypter.DefaultPassword property. + + This example demonstrates how to change a connection string: + + OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(oleDbConnection1.ConnectionString); + builder.PersistSecurityInfo = false; + oleDbConnection1.ConnectionString = builder.ToString(); + + + + + + Gets or sets an expression that returns a connection string. + + + Use this property to set the connection string dynamically. + The recommended way to do this is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the connection. Set the ConnectionStringExpression property of the + connection object to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + + Once you set value for this property, the property will be ignored + when report is run. + + + + + + Gets or sets a value indicates if this connection is SQL-based. + + + + + Gets or sets a value indicating whether a login dialog appears immediately before opening a connection. + + + Set LoginPrompt to true to provide login dialog when establishing a connection. If this + property is false (by default), you should provide login information (user name and password) + in the property. Though that property is stored in a crypted form, + this may be insecure. + Another way to pass login information to the connection is to use + property that is bound to the report parameter. In that + case you supply the entire connection string from your application. + + + + + Gets or sets the command timeout, in seconds. + + + + + + + + Initializes a DataSet instance. + + The DataSet object. + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Disposes a DataSet. + + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Sets the connection string. + + New connection string. + + Use this method if you need to perform some actions when the connection string is set. + + + + + Gets a connection string that contains username and password specified. + + User name. + Password. + + Override this method to pass login information to the connection. Typical implementation + must get the existing , merge specified login information into it + and return the new value. + + + + + + + + + + + + + + + + + + + + + + + + + + Fills the collection with all tables available in the database. + + + This method does not read the table data; to do this, call the + method of each table. + + + + + Fills the collection with all tables available in the database. + + Set to true to initialize each table's schema. + + + + Creates the relations between tables. Applies to XmlDataConnection only. + + + + + Gets an array of table names available in the database. + + An array of strings. + + + + Returns a type of connection. + + Type instance. + + You should override this method if you developing a new connection component. + If your connection component does not use data connection, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override Type GetConnectionType() + { + return typeof(OleDbConnection); + } + + + + + + Returns a connection object. + + The DbConnection instance. + Either creates a new DbConnection instance of type provided by the + method, or returns the application connection if set + in the Config.DesignerSettings.ApplicationConnection. + + + + Opens a specified connection object. + + Connection to open. + + Use this method to open a connection returned by the method. + This method displays a login dialog if your connection has the + property set to true. Once you have entered an user name and password in + this dialog, it will remeber the entered values and will not used anymore in this report session. + + + + + Disposes a connection. + + The connection to dispose. + + + + Returns a object that is specific to this connection. + + The SQL command used to fetch a table data rows. + The connection object. + The select command parameters. + The DbDataAdapter object. + + You should override this method if you are developing a new connection component. In this method, + you need to create the adapter and set its SelectCommand's parameters. + If your connection does not use data adapter, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, + CommandParameterCollection parameters) + { + OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection as OleDbConnection); + foreach (CommandParameter p in parameters) + { + OleDbParameter parameter = adapter.SelectCommand.Parameters.Add(p.Name, (OleDbType)p.DataType, p.Size); + parameter.Value = p.Value; + } + return adapter; + } + + + + + + Gets the type of parameter that is specific to this connection. + + The parameter's type. + + This property is used in the report designer to display available data types when you edit the + connection parameters. For example, the type of OleDbConnection parameter is a OleDbType. + + + + + Quotes the specified DB identifier such as table name or column name. + + Identifier to quote. + The opened DB connection. + The quoted identifier. + + + + Fills the table schema. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table schema. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Fills the table data. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table data. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Creates table. + For internal use only. + + + + + Deletes table. + For internal use only. + + + + + Clone table. + For internal use only. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data components such as data sources, columns. + + + + + + + + Gets or sets alias of this object. + + + Alias is a human-friendly name of this object. It may contain any symbols (including + spaces and national symbols). + + + + + Gets or sets a value indicates that object is enabled and thus can be used in a report. + + + This property is used to hide an object from the Data Dictionary window. Hidden + objects are still accessible in the "Data|Choose Data Source..." menu. + + + + + Gets or sets a name of the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets or sets a reference to the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a value indicates that this object has an alias. + + + + + + + + + + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to csv file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + CsvDataConnection conn = new CsvDataConnection(); + conn.CsvFile = @"c:\data.csv"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of the .csv file. + + + + + Gets or sets the separator of the .csv file. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types fhould be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Obsolete. Specifies a set of flags used to convert business objects into datasources. + + + + + Specifies no actions. + + + + + Allows using the fields of a business object. + + + + + Allows using properties of a business object with BrowsableAttribute only. + + + + + Specifies a kind of property. + + + + + Specifies the property of a simple type (such as integer). + + + + + Specifies the complex property such as class with own properties. + + + + + Specifies the property which is a list of objects (is of IEnumerable type). + + + + + Represents a datasource based on business object of IEnumerable type. + + + Do not use this class directly. To register a business object, use the + Report.RegisterData method. + + + + + Occurs when FastReport engine loads data source with data from a business object. + + + Use this event if you want to implement load-on-demand. Event handler must load the data into + your business object. + + + + + + + + + + + + + + + + + + + + Represents the method that will handle the LoadBusinessObject event. + + The source of the event. + The event data. + + + + Provides data for event. + + + + + Parent object for this data source. + + + + + Specifies the format for the column value. + + + + + The format will be determined automatically depending on the column's DataType. + + + + + Specifies the General format (no formatting). + + + + + Specifies the Number format. + + + + + Specifies the Currency format. + + + + + Specifies the Date format. + + + + + Specifies the Time format. + + + + + Specifies the Percent format. + + + + + Specifies the Boolean format. + + + + + Specifies the type of an object that will be created when you drop the + data column on a report page. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the custom object, specified in the + property. + + + + + Represents the collection of objects. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + Finds a column by its name. + + The name of a column. + The object if found; otherwise null. + + + + Finds a column by its alias. + + The alias of a column. + The object if found; otherwise null. + + + + Returns an unique column name based on given name. + + The base name. + The unique name. + + + + Returns an unique column alias based on given alias. + + The base alias. + The unique alias. + + + + Sorts the collection of columns. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of columns. + + + + + + + + This class represents a single parameter to use in the "select" command. + + + + + Gets or sets the parameter's data type. + + + + + Gets or sets the size of parameter's data. + + + This property is used if the property is set to String. + + + + + Gets or sets an expression that returns the parameter's value. + + + If this property is not set, the property will be used + to obtain a parameter's value. + + + + + Gets or sets a default value for this parameter. + + + This value is used when you designing a report. Also it is used when report is running + in case if you don't provide a value for the property. + + + + + Gets or sets the parameter's value. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + This class is used to store the list of parameters defined in the datasource. See the + property for more details. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a data connection. + + The index of a data connection in this collection. + The data connection with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the CsvDataConnection connection string builder. + + + Use this class to parse connection string returned by the CsvDataConnection class. + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of .csv file. + + + + + Gets or sets the separator. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types should be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified connection string. + + The connection string. + + + + Base class for all CubeSources such as . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a CubeSource by its name. + + The name of a CubeSource. + The object if found; otherwise null. + + + + Finds a CubeSource by its alias. + + The alias of a CubeSource. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Base class for all datasources such as . + + + + + Occurs when the FastReport engine loads data source with data. + + + Use this event if you want to implement load-on-demand. Event handler must load the data + into the data object which this datasource is bound to (for example, the + TableDataSource uses data from the DataTable object bound to + the Table property). + + + + + Gets a number of data rows in this datasource. + + + You should initialize the datasource by the Init method before using this property. + + + + + Gets a value indicating that datasource has more rows, that is the + is less than the . + + + You should initialize the datasource by the Init method before using this property. + Usually this property is used with the following code block: + + dataSource.Init(); + while (dataSource.HasMoreRows) + { + // do something... + dataSource.Next(); + } + + + + + + Gets the current data row. + + + This property is updated when you call the method. + + + + + Gets an index of current data row. + + + You should initialize the datasource by the Init method before using this property. + This property is updated when you call the method. + + + + + Gets data stored in a specified column. + + Alias of a column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Gets data stored in a specified column. + + The column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Forces loading of data for this datasource. + + + This property is false by default. Set it to true if you need to reload data + each time when the datasource initialized. Note that this may slow down the performance. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the additional filter settings. + + + + + Gets data stored in a specified column. + + The column alias. + An object that contains the data. + + + + Gets data stored in a specified column. + + The column. + An object that contains the data. + + + + Initializes the datasource schema. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + + + + Loads the datasource with data. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + Rows to fill with data. + + + + Initializes this datasource. + + + This method fills the table with data. You should always call it before using most of + datasource properties. + + + + + Initializes this datasource and applies the specified filter. + + The filter expression. + + + + Initializes this datasource, applies the specified filter and sorts the rows. + + The filter expression. + The collection of sort descriptors. + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. + + Parent datasource. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. Also applies the specified filter and sorts the rows. + + Parent datasource. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation. + Also applies the specified filter and sorts the rows. + + The master-detail relation. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes the data source if it is not initialized yet. + + + + + Navigates to the first row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the next row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the prior row. + + + You should initialize the datasource by the Init method before using this method. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a datasource by its name. + + The name of a datasource. + The object if found; otherwise null. + + + + Finds a datasource by its alias. + + The alias of a datasource. + The object if found; otherwise null. + + + + Sorts data sources by theirs names. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of data sources. + + + + + + + + Determines how to filter the data value. + + + The "Data value" is a value contained in the datasource which you filter. + The "Selected value" is a value you have entered or selected in the dialog control. + + + + + Data value is equal to selected value. + + + + + Data value is not equal to selected value. + + + + + Data value is less than selected value. + + + + + Data value is less than or equal to selected value. + + + + + Data value is greater than selected value. + + + + + Data value is greater than or equal to selected value. + + + + + Data string contains selected value. + + + + + Data string does not contain selected value. + + + + + Data string starts with selected value. + + + + + Data string does not start with selected value. + + + + + Data string ends with selected value. + + + + + Data string does not end with selected value. + + + + + This class stores all report data items such as datasources, connections, relations, parameters, + system variables. + + + You can access the report dictionary via Report.Dictionary property. + + + + + Gets a collection of connection objects available in a report. + + + + + Gets a collection of datasources available in a report. + + + Usually you don't need to use this property. It contains only datasources + registered using the RegisterData method. All other datasources are contained + in connection objects and may be accessed via property. + + + + + Gets a collection of relations. + + + + + Gets a collection of parameters. + + + Another way to access parameters is to use the Report.Parameters property + which is actually a shortcut to this property. You also may use the Report.GetParameter + and Report.GetParameterValue methods. + + + + + Gets a collection of system variables like Date, PageNofM etc. + + + Another way to access a system variable is to use the Report.GetVariableValue method. + + + + + Gets a collection of totals. + + + Another way to get a total value is to use the Report.GetTotalValue method. + + + + + Gets a collection of cubesources available in a report. + + + Usually you don't need to use this property. It contains only cubesources + registered using the RegisterData method. + + + + + Gets a list of registered items. + + + This property is for internal use only. + + + + + + + + Registers a DataView. + + The DataView to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a business object. + + The business object. + The name of the object. + Maximum level of data nesting. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a CubeLink. + + The CubeLink to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a data object. + + The object to register. + The name of the object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Unregisters the previously registered data. + + The application data. + + + + Unregisters the previously registered data. + + The application data. + The name of the data. + + You must specify the same data and name as when you call RegisterData. + + + + + Re-registers the data registered before. + + + This method is for internal use only. + + + + + Re-registers the data registered before. + + + + + + Clears all registered data. + + + + + Enables or disables relations between data tables. + + + Call this method if you create master-detail report from code. This method enables + relation between two data tables which Enabled flag is set to true. Relations + whose parent and child tables are disabled, gets disabled too. + + + + + Creates unique name for data item such as connection, datasource, relation, parameter or total. + + The base name. + The new unique name. + + Use this method to create unique name of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new parameter: + + Report report1; + Parameter par = new Parameter(); + par.Name = report1.Dictionary.CreateUniqueName("Parameter"); + report1.Parameters.Add(par); + + + + + + + Creates unique alias for data item such as connection, datasource or relation. + + The base alias. + The new unique alias. + + Use this method to create unique alias of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new table: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = report1.Dictionary.CreateUniqueName("EmployeesTable"); + table.Alias = report1.Dictionary.CreateUniqueAlias("Employees"); + conn.Tables.Add(table); + + + + + + + Finds a data item such as connection, datasource, relation, parameter or total by its name. + + The item's name. + The data item if found; otherwise, null. + + + + Finds a data item such as connection, datasource or relation by its alias. + + The item's alias. + The data item if found; otherwise, null. + + + + Finds a datasource that matches the specified DataTable. + + The DataTable object to check. + The DataSourceBase object if found. + + This method is for internal use only. + + + + + Finds a data component that matches the specified reference name. + + The name to check. + The DataComponentBase object if found. + + This method is for internal use only. + + + + + + + + + + + Saves the dictionary to a stream. + + Stream to save to. + + + + Saves the dictionary to a file. + + The name of a file to save to. + + + + Loads the dictionary from a stream. + + The stream to load from. + + + + Loads the dictionary from a file. + + The name of a file to load from. + + + + Merges this dictionary with another Dictionary. + + Another dictionary to merge the data from. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the item registered in a dictionary. + + + + + Gets the item data. + + + + + Gets the item name. + + + + + Represents a report parameter that is used to pass user data to a report. + + + See for details about using parameters. + + + + + Gets or sets the name of parameter. + + + + + Gets or sets the type of parameter. + + + + + Gets or sets the value of parameter. + + + You may specify the static value in this property. Note: if the + property is not empty, it will be calculated and its value will be returned. + + + + + Gets or sets value of the parameter as a string. + + + + + Gets or sets an expression of the parameter. + + + This expression will be calculated each time you access a parameter's Value. + + + + + Gets or sets the description of a parameter. + + + + + Gets a collection of nested parameters. + + + Parameters can have child (nested) parameters. To get or set a nested + parameter's value, use the method. + + + + + Gets the full name of the parameter. This is useful to get the nested parameter's full name. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified name. + + + + + Represents the collection of objects. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Copies the parameters from other collection. + + Parameters to copy from. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a relation. + + The index of a relation in this collection. + The relation with specified index. + + + + Finds a relation by its name. + + The name of a relation. + The object if found; otherwise null. + + + + Finds a relation by its alias. + + The alias of a relation. + The object if found; otherwise null. + + + + Finds a relation that is equal to specified one. + + Another relation to compare with. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Represents the collection of system variables. + + + + + Represents the base class for system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Returns date and time of the report's start. + + + + + + + + Returns current page number. + + + + + + + + Returns total number of pages in the report. To use this variable, you need + to enable the report's double pass. + + + + + + + + Returns a string containing the current page number in a form "Page N". + + + + + + + + Returns a string containing the current page number and total pages in a form "Page N of M". + To use this variable, you need to enable the report's double pass. + + + + + + + + Returns data row number inside the group. This value is reset at the start of a new group. + + + + + + + + Returns absolute number of data row. This value is never reset at the start of a new group. + + + + + + + + Returns current page number. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the number of total pages in the report. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the name of the printed copy. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns a level of hierarchy in the hierarchical report. + + + + + + + + Returns the row number like "1.2.1" in the hierarchical report. + + + + + + + + Represents the collection of objects. + + + + + Gets or sets a data table. + + The index of a data table in this collection. + The data table with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Specifies the total type. + + + + + The total returns sum of values. + + + + + The total returns minimal value. + + + + + The total returns maximal value. + + + + + The total returns average value. + + + + + The total returns number of values. + + + + + The total returns number of distinct values. + + + + + Represents the collection of objects. + + + + + Gets or sets a total. + + The index of a total in this collection. + The total with specified index. + + + + Finds a total by its name. + + The name of a total. + The object if found; otherwise null. + + + + Returns an unique total name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Gets the underlying DataView object. + + + + + + + + + + + + + + + + + Represents the XmlDataConnection connection string builder. + + + Use this class to parse connection string returned by the XmlDataConnection class. + + + + + Gets or sets the path to .xml file. + + + + + Gets or sets the path to .xsd file. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + Allows working with JsonObject + + + + + Returns child object for JsonArray + + + + + + + Returns child object for JsonObject + + + + + + + Returns count of child object + + + + + Returns true if this object is JsonArray + + + + + Returns true if this object is JsonObject + + + + + Returns list of JsonObject keys + + + + + Pars json text string and return a new JsonBase Object + + + + + + + returns true + + + + + + + Serialize this object to sb + + + + indent in space, 0 = without indent + + + + Based on code of Stefan Bцther, xprocs@hotmail.de + + + + + Contains standard functions registered in the "Data" window. + + + + + Returns the larger of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the smaller of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns an integer value representing the character code corresponding to a character. + + Character to convert. + The character code. + + + + Returns the character associated with the specified character code. + + Character code to convert. + The character. + + + + Inserts a specified string at a specified index position in the original string. + + The original string. + The index position of the insertion. + The string to insert. + A new string. + + + + Gets the number of characters in a string. + + The original string. + The number of characters. + + + + Converts a specified string to lowercase. + + The string to convert. + A string in lowercase. + + + + Right-aligns the characters in a string, padding with spaces on the left for a specified total length. + + The original string. + The number of characters in the resulting string. + Right-aligned string, padded on the left with spaces. + + + + Right-aligns the characters in a string, padding on the left with a specified character + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Right-aligned string, padded on the left with padding characters. + + + + Left-aligns the characters in a string, padding with spaces on the right, for a specified total length. + + The original string. + The number of characters in the resulting string. + Left-aligned string, padded on the right with spaces. + + + + Left-aligns the characters in a string, padding on the right with a specified character, + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Left-aligned string, padded on the right with padding characters. + + + + Converts the specified string to titlecase. + + The string to convert. + A new string. + + + + Deletes all the characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + A new string. + + + + Deletes a specified number of characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + The number of characters to delete. + A new string. + + + + Replaces all occurrences of a specified string in the original string, with another specified string. + + The original string. + A string to be replaced. + A string to replace all occurrences of oldValue. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position. + + The original string. + The starting character position of a substring. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position, + with a specified length. + + The original string. + The starting character position of a substring. + The number of characters in the substring. + A new string. + + + + Removes all occurrences of white space characters from the beginning and end of the original string. + + The original string. + A new string. + + + + Converts a specified string to uppercase. + + The string to convert. + A string in uppercase. + + + + Adds the specified number of days to the original date. + + The original date. + A number of whole and fractional days. + A new DateTime value. + + + + Adds the specified number of hours to the original date. + + The original date. + A number of whole and fractional hours. + A new DateTime value. + + + + Adds the specified number of minutes to the original date. + + The original date. + A number of whole and fractional minutes. + A new DateTime value. + + + + Adds the specified number of months to the original date. + + The original date. + A number of months. + A new DateTime value. + + + + Adds the specified number of seconds to the original date. + + The original date. + A number of whole and fractional seconds. + A new DateTime value. + + + + Adds the specified number of years to the original date. + + The original date. + A number of years. + A new DateTime value. + + + + Subtracts the specified date and time from the original date. + + The original date. + The date and time to subtract. + A TimeSpan interval between two dates. + + + + Initializes a new instance of the DateTime. + + The year. + The month. + The day. + A new DateTime value. + + + + Gets the day of the month. + + The date value. + The day component. + + + + Gets the localized name of the day of the week. + + The date value. + The name of the day of the week. + + + + Gets the day of the year. + + The date value. + The day of the year. + + + + Returns the number of days in the specified month and year. + + The year. + The month. + The number of days in month for the specified year. + + + + Gets the hour component of the date. + + The date. + The hour component. + + + + Gets the minute component of the date. + + The date. + The minute component. + + + + Gets the month component of the date. + + The date. + The month component. + + + + Gets the localized month name. + + The month number. + The month name. + + + + Gets the seconds component of the date. + + The date. + The seconds component. + + + + Gets the week of the year. + + The date value. + The week of the year. + + + + Gets the year component of the date. + + The date. + The year component. + + + + Replaces the format item in a specified String with the text equivalent of the value of a + corresponding Object instance in a specified array. + + A String containing zero or more format items. + An Object array containing zero or more objects to format. + A copy of format in which the format items have been replaced by the String equivalent of the corresponding instances of Object in args. + + + + Returns a string formatted as a currency value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a currency value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The format specifier, one of the + "Long Date", "Short Date", "Long Time", "Short Time" values. + The formatted string. + + + + Returns a string formatted as a numeric value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a numeric value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a percent value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a percent value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Converts a numeric value to Roman string representation. + + Integer value in range 0-3998. + The string in Roman form. + + + + Converts a currency value to an english (US) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (US) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (US) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (GB) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a russian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "страница". + The name in plural form, for example "страницы". + The name in plural form, for example "страниц". + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a german string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a french string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a dutch string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + the currency value to convert + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "INR". + + + + + Converts a numeric value to a indian numbering system string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a currency value to a ukrainian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "UAH". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "сторінка". + The name in plural form, for example "сторінки". + The name in plural form, for example "сторінок". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a spanish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a persian representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a polish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Selects and returns a value from a list of arguments. + + A value between 1 and the number of elements passed in the "choice" argument. + Object parameter array. + One of the values in the "choice" argument. + + + + Returns one of two objects, depending on the evaluation of an expression. + + The expression you want to evaluate. + Returned if Expression evaluates to True. + Returned if Expression evaluates to False. + Either truePart os falsePart. + + + + Evaluates a list of expressions and returns a value corresponding to the first + expression in the list that is True. + + Parameter array consists of paired expressions and values. + The value corresponding to an expression which returns true. + + + + Checks if the specified object is null. + + The report instance. + Either a name of DB column, or a parameter name, or a total name to check. + true if the object's value is null. + + + + The FastReport.dll assembly initializer. + + + + + Registers all standard objects, wizards, export filters. + + + + + Base class for all bands. + + + + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This event occurs before the band layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a value indicating that the band should be printed from a new page. + + + New page is not generated when printing very first group or data row. This is made to avoid empty + first page. + + + + + Gets or sets a value that determines the number of repetitions of the same band. + + + + + Gets or sets a value indicating that the first row can start a new report page. + + + Use this property if is set to true. Normally the new page + is not started when printing the first data row, to avoid empty first page. + + + + + Gets or sets a value indicating that the band should be printed on the page bottom. + + + + + Gets or sets a value indicating that the band should be printed together with its child band. + + + + + Gets or sets an outline expression. + + + + Outline is a tree control displayed in the preview window. It represents the prepared report structure. + Each outline node can be clicked to navigate to the item in the prepared report. + + + To create the outline, set this property to any valid expression that represents the outline node text. + This expression will be calculated when band is about to print, and its value will be added to the + outline. Thus, nodes' hierarchy in the outline is similar to the bands' hierarchy + in a report. That means there will be the main and subordinate outline nodes, corresponding + to the main and subordinate bands in a report (a report with two levels of data or with groups can + exemplify the point). + + + + + + Gets or sets a child band that will be printed right after this band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + Gets a collection of report objects belongs to this band. + + + + + Gets a value indicating that band is reprinted on a new page. + + + This property is applicable to the DataHeaderBand and GroupHeaderBand only. + It returns true if its RepeatOnAllPages property is true and band is + reprinted on a new page. + + + + + Gets or sets a script event name that will be fired before the band layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + Gets or sets collection of guide lines for this band. + + + + + Gets a row number (the same value returned by the "Row#" system variable). + + + This property can be used when running a report. It may be useful to print hierarchical + row numbers in a master-detail report, like this: + 1.1 + 1.2 + 2.1 + 2.2 + To do this, put the Text object on a detail data band with the following text in it: + [Data1.RowNo].[Data2.RowNo] + + + + + Gets an absolute row number (the same value returned by the "AbsRow#" system variable). + + + + + Gets a value indicating that this is the first data row. + + + + + Gets a value indicating that this is the last data row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Specifies an origin where the new objects inserted from. + + + + + Specifies that a new object was inserted from the "Objects" toolbar or "Insert" menu. + + + + + Specifies that a new object was dragged from the "Dictionary" window. + + + + + Specifies that a new object was pasted from the clipboard. + + + + + Represents the root class of the FastReport object's hierarhy. + + + + + Gets a value indicating whether the object is selected in the designer. + + + + + Gets a value indicating whether one of the object's parent is selected in the designer. + + + + + Deletes the object in the designer. + + + This method is called when you delete the object in the designer. + Typically this method calls the method to delete the object and all + its children. You may override it to delete the object only, and keep children. + + + + + Called before inserting a new object in the designer. + + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + Some objects are registered in the designer several times with the same object + type, but different flags. For example, the + represents different shapes: rectangle, roundrect, ellipse and so on. All these + shapes are registered in the designer using flags (the last parameter in this + code): + + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 108, "Objects,Shapes,Rectangle", 0); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 109, "Objects,Shapes,RoundRectangle", 1); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 110, "Objects,Shapes,Ellipse", 2); + + When we put the "Ellipse" object on a band, the designer creates the + ShapeObject instance and calls its OnBeforeInsert method with + flags value set to 2. In turn, the OnBeforeInsert method converts the + int value of the flags to the shape kind: + + public override void OnBeforeInsert(int flags) + { + FShape = (ShapeKind)flags; + } + + + + Object's flags. + + + + Called after the new object was inserted in the designer. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + This method is called when new object is inserted, pasted from clipboard or dragged from + "Dictionary" window. You may override this method if you need to perform some actions when object + is inserted. Typical implementation invokes the object's editor if "Edit after insert" flag is set + in the designer options. + + The insertion source. + + + + Called when the user selects another object in the designer. + + + This method is typically used by the in-place object's editor to check if selection was changed and close + the editor. + + + + + Gets the object's context menu. + + Null reference if object does not have a menu. + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + You may use base menu classes such as , + to create own context menus. + + + + + Gets or sets the name of the object. + + + Name of the report object must contain alpha, digit, underscore symbols only. + Data objects such as Variable, TableDataSource + etc. can have any characters in they names. Each component must have unique + name. + + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + + + Another object with such name exists. + Rename an object that was introduced in the ancestor report. + + + + Gets or sets the flags that restrict some actions in the designer. + + + Use this property to restrict some user actions like move, resize, edit, delete. For example, if + Restriction.DontMove flag is set, user cannot move the object in the designer. + + + + + Gets the flags that allow some functionality in the designer. + + + Use this property only if you developing a new FastReport object. + + + + + Gets or sets the parent of the object. + + + Each report object must have a parent in order to appear in the report. Parent must be able to + contain objects of such type. + Another way (preferred) to set a parent is to use specific properties of the parent object. + For example, the object has the collection. + To add a new page to the report, use the following code: report1.Pages.Add(new ReportPage()); + + + + Report report1; + ReportPage page = new ReportPage(); + page.Parent = report1; + + Parent object cannot contain this object. + + + + The base part of the object's name. + + + This property is used to automatically create unique object's name. See + + + + + Gets the short type name. + + + Returns the short type name, such as "TextObject". + + + + + Gets reference to the parent object. + + + + + Gets reference to the parent object. + + + + + Gets the collection of this object's child objects. + + + This property returns child objects that belongs to this object. For example, Report.ChildObjects + will return only pages that contains in the report, but not page childs such as bands. To return all + child objects, use property. + + + + + Gets the collection of all child objects. + + + This property returns child objects that belongs to this object and to child objects of this object. + For example, Report.AllObjects will return all objects that contains in the report - such as + pages, bands, text objects. + + + + + Gets or sets the Z-order of the object. + + + The Z-order is also called "creation order". It is the index of an object in the parent's objects list. + For example, put two text objects on a band. First object will have ZOrder = 0, second = 1. Setting the + second object's ZOrder to 0 will move it to the back of the first text object. + + + + + Gets a value indicating whether the object was introduced in the ancestor report. + + + + + Gets a value indicating whether the object is in the design state. + + + + + Gets a value indicating whether the object is currently printing. + + + + + Gets a value indicating whether the object is currently processed by the report engine. + + + + + Gets an original component for this object. + + + This property is used in the preview mode. Each object in the prepared report is bound to its + original (from the report template). This technique is used to minimize the prepared report's size. + + + + + Helper method, helps to set a reference-type value to the property. + + Old property value. + New property value. + + This method is used widely to set a new value to the property that references another FastReport object. + Method deals with the property. + + This is example of the DataBand.Header property: + public DataHeaderBand Header + { + get { return FHeader; } + set + { + SetProp(FHeader, value); + FHeader = value; + } + } + + + + + Checks if two float values are different. + + First value. + Second value. + true if values are not equal. + + This method is needed to compare two float values using some precision (0.001). It is useful + to compare objects' locations and sizes for equality. + + + + + Deserializes nested object properties. + + Reader object. + + Typically the object serializes all properties to the single xml item: + + <TextObject Name="Text2" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + + Some objects like have child objects that serialized in subitems: + + <DataBand Name="Data1" Top="163" Width="718.2" Height="18.9"> + <TextObject Name="Text3" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + </DataBand> + + To read such subitems, the DeserializeSubItems method is used. Base + implementation reads the child objects. You may override it to read some specific subitems. + + The following code is used to read report's styles: + + protected override void DeserializeSubItems(FRReader reader) + { + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else + base.DeserializeSubItems(reader); + } + + + + + + Replaces the macros in the given string and returns the new string. + + The text containing macros. + The text with macros replaced with its values. + + + + + + + Set object's flags. + + Flag to set. + true to set the flag, false to reset. + + + + Sets the reference to a Report. + + Report to set. + + + + Sets the object's name. + + + This method is for internal use only. It just sets a new name without any checks + (unlike the property setter). + + Name Property + New name. + + + + Sets the object's parent. + + + This method is for internal use only. You can use it if you are developing a new + component for FastReport. Override it to perform some actions when the parent of an + object is changing. This method checks that parent can contain a child. + + Parent object cannot contain this object. + New parent. + + + + Sets the object's parent. + + New parent. + + This method is for internal use only. You can use it if you are developing a new component for FastReport. + This method does not perform any checks, it just sets the new parent. + + + + + Searches for an object with given name. + + Name of the object to find. + Returns a null reference if object is not found + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + if (text1 != null) + { + // object found + } + + + + + + Creates the unique object's name. + + + Note: you have to set object's parent before calling this method. Method uses the + property to create a name. + Note: this method may be very slow on a report that contains lots of objects. Consider + using own naming logic in this case. + + + + TextObject textObj = new TextObject(); + dataBand1.Objects.Add(textObj); + textObj.CreateUniqueName(); + + + + + + Clears the object's state. + + + This method also disposes all object's children. + + + + + Serializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to save the state. It may happen + when: + + + saving the report to the file or stream; + + + saving the report to the designer's undo buffer; + + + + assigning the object to another object using the + or AssignAll methods; + + + + saving the object to the designer's clipboard; + + + saving the object to the preview (when run a + report). + + + + Writer object. + + + + Deserializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to restore the state. It may + happen when: + + + loading the report from a file or stream; + + + loading the report from the designer's undo + buffer; + + + assigning another object to this object using the + or AssignAll methods; + + + loading the object from the designer's + clipboard; + + loading the object from the preview pages. + + + Reader object. + + + + Assigns values from another source. + + + Note: this method is relatively slow because it serializes + an object to the xml and then deserializes it. + + Source to assign from. + + + Copies the contents of another, similar object. + + Call Assign to copy the properties from another object of the same type. + The standard form of a call to Assign is + destination.Assign(source); + + which tells the destination object to copy the contents of the + source object to itself. In this method, all child objects are + ignored. If you want to copy child objects, use the + AssignAll method. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings, do not copy report objects + report2.Assign(report1); + + AssignAll Method + Source object to copy the contents from. + + + Copies the contents (including children) of another, similar object. + + + This method is similar to method. It copies child + objects as well. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings and objects + report2.AssignAll(report1); + + + Source object to copy the state from. + + + + Gets a value indicating whether the object has the specified parent in its parent hierarhy. + + Parent object to check. + Returns true if the object has given parent in its parent hierarhy. + + + + Gets a value indicating whether the object has a specified flag in its property. + + Flag to check. + true if Flags property contains specified flag. + + + + Gets a value indicating whether the object has a specified restriction + in its property. + + Restriction to check. + true if Restrictions property contains specified restriction. + + + + Invokes script event. + + Name of the event to invoke. + Event parameters. + + Do not call this method directly. You should use it if you are developing a new component + for FastReport. + Use this method to call an event handler that is located in the report's script. + + Example of the OnBeforePrint method: + public void OnBeforePrint(EventArgs e) + { + if (BeforePrint != null) + BeforePrint(this, e); + InvokeEvent(BeforePrintEvent, e); + } + + + + + Called after all report objects were loaded. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + + + + + Gets all expressions contained in the object. + + Array of expressions or null if object contains no expressions. + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + This method is called by FastReport each time before run a report. FastReport + do this to collect all expressions and compile them. For example, + GetExpressions method of the class + parses the text and returns all expressions found in the text. + + + + + + Returns a custom code that will be added to the report script before report is run. + + A custom script text, if any. Otherwise returns null. + + This method may return any valid code that may be inserted into the report script. Currently it is + used in the TableObject to define the following script methods: Sum, Min, Max, Avg, Count. + + + Note: you must take into account the current script language - C# or VB.Net. You may check it via + Report.ScriptLanguage property. + + + + + + Used to extract macros such as "TotalPages#" in the preview mode. + + + This method is used mainly by the TextObject to extract macros and replace it with + actual values passed in the pageIndex and totalPages parameters. This method + is called automatically when the object is being previewed. + + + + + Used to get information of the need to convertation if the function returns true, then the GetConvertedObjects function is called + + The export or the object, that call this method + By default returns false + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Used to get an enumeration of the objects to which this object will be converted, before calling this function, the IsHaveToConvert function will be called + + By default returns this object + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Gets the collection of all child objects, converts objects if necessary + + the object or export, that call this convertation + + + + Initializes a new instance of the Base class with default settings. + + + + + This class represents the context menu of the . + + + This class adds the "Can Break" menu item to the component context menu. + + + + + The "Can Break" menu item. + + + + + Initializes a new instance of the BreakableComponentMenu class with default settings. + + + + + Represents a text object which draws each symbol of text in its own cell. + + + The text may be aligned to left or right side, or centered. Use the + property to do this. The "justify" align is not supported now, as well as vertical alignment. + The cell size is defined in the and properties. + These properties are 0 by default, in this case the size of cell is calculated automatically based + on the object's Font. + To define a spacing (gap) between cells, use the and + properties. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets or sets the width of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the height of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the horizontal spacing between cells, in pixels. + + + + + Gets or sets the vertical spacing between cells, in pixels. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents a check box object. + + + + + + + + + + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the unchecked state. + + + + + Gets or sets a color of the check symbol. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "[Datasource.Column]". + + + + + Gets or sets an expression that determines whether to show a check. + + + + + Gets or sets the check symbol width ratio. + + + Valid values are from 0.2 to 2. + + + + + Gets or sets a value determines whether to hide the checkbox if it is in the unchecked state. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the CheckBoxObject class with default settings. + + + + + This class represents a child band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + + + + + + + Gets or sets a value indicating that band will be used to fill unused space on a page. + + + If you set this property to true, the band will be printed several times to fill + unused space on a report page. + + + + + Gets or sets a value that determines the overall number of data rows printed by the data band. + + + Using this property, you may complete the data band upto N data rows. + If the data band has less number of rows, this band will be used to print empty rows. + + + + + Gets or sets a value indicating that the band will be printed if its parent databand is empty. + + + The child band with this property set to true, connected to a databand can be used to print "No data" + text if the databand has no rows. + + + + + + + + + + + Returns true, if compilation is successful + + + + + Handle compile errors + + Returns true if all errors were handled + + + + Returns true, if recompilation is successful + + + + + This class is used to pass find arguments to some methods of the CodeUtils class. + + + + + The start position of the search. After the search, this property points to + the begin of an expression. + + + + + After the search, this property points to the end of an expression. + + + + + The char sequence used to find the expression's begin. + + + + + The char sequence used to find the expression's end. + + + + + The text with embedded expressions. + + + + + The last found expression. + + + + + This static class contains methods that may be used to find expressions embedded + in the object's text. + + + + + Returns expressions found in the text. + + Text that may contain expressions. + The char sequence used to find the start of expression. + The char sequence used to find the end of expression. + Array of expressions if found; otherwise return an empty array. + + + + Gets first expression found in the text. + + Object with find arguments. + Indicates whether to skip strings. + The expression if found; otherwise, returns an empty string. + + + + Class that implements some object's properties such as location, size and visibility. + + + + + Corrects the object's size and sizing point if the size becomes negative. + + Current mouse state. + Typically you don't need to use or override this method. + This method is called by the FastReport designer to check if the object's size becomes negative + when resizing the object by the mouse. Method must correct the object's size and/or position to + make it positive, also change the sizing point if needed. + + + + Checks if the object is inside its parent. + + if true, check now independent of any conditions. + + Typically you don't need to use or override this method. + When you move an object with the mouse, it may be moved outside its parent. If so, this method + must find a new parent for the object and correct it's Left, Top and Parent + properties. If immediately parameter is false, you can optimize the method + to search for new parent only if the object's bounds are outside parent. If this parameter is + true, you must skip any optimizations and search for a parent immediately. + + + + + Draws the object. + + Paint event args. + + This method is widely used in the FastReport. It is called each time when the object needs to draw + or print itself. + In order to draw the object correctly, you should multiply the object's bounds by the scale + parameter. + cache parameter is used to optimize the drawing speed. It holds all items such as + pens, fonts, brushes, string formats that was used before. If the item with requested parameters + exists in the cache, it will be returned (instead of create new item and then dispose it). + + + + + Draw the frame around the object to indicate that it accepts the drag&drop operation. + + Paint event args. + The color of frame. + + + + Draw the selection points. + + Paint event args. + + This method draws a set of selection points returned by the method. + + + + + + + + Gets the preferred size of an object. + + Preferred size. + + This method is called by the FastReport designer when you insert a new object. + + + + + Returns a "smart tag" menu. + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + + + Handles double click event in the designer. + + + This method is called when the user doubleclicks the object in the designer. Typical implementation + invokes the object's editor (calls the InvokeEditor method) and sets the designer's + Modified flag. + + + + + Handles the DragDrop event in the designer. + + Current mouse state. + + This method is called when the user drops an item from the Data Tree window into this object. + This method should copy the information from the e.DraggedObject object and set the + e.Handled flag to true to complete the drag operation. + + + + + Handles the DragOver event in the designer. + + Current mouse state. + + This method is called when the user drags an item from the Data Tree window. This method should + check that the mouse (e.X, e.Y) is inside the object, then set the e.Handled flag + to true if an item can be dragged into this object. + + + + + Handles KeyDown event in the designer. + + The designer's workspace. + Keyboard event parameters. + + This method is called when the user presses any key in the designer. Typical implementation + does nothing. + + + + + Handles MouseDown event that occurs when the user clicks the mouse in the designer. + + + This method is called when the user press the mouse button in the designer. + The standard implementation does the following: + + checks if the mouse pointer is inside the object; + add an object to the selected objects list of the designer; + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. Typical + use of this method is to change the mouse cursor to SizeAll when it is over + an object. The standard implementation does the following: + + checks if the mouse pointer is inside the object; + changes the cursor shape (e.Cursor property); + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. The + standard implementation does the following: + + + if mouse button is not pressed, check that mouse pointer is inside one of + the selection points returned by the + method and set the e.SizingPoint member to the corresponding sizing + point; + + if mouse button is pressed, and e.SizingPoint member is not + SizingPoint.None, resize the object. + + + Current mouse state. + + + + Handles MouseUp event that occurs when the user releases the mouse button in the designer. + + + This method is called when the user releases the mouse button in the + designer. The standard implementation does the following: + + if e.Mode is WorkspaceMode2.SelectionRect, checks if object + is inside the selection rectangle and sets e.Handled flag if so; + + checks that object is inside its parent (calls the + method). + + + + Current mouse state. + + + + Handles mouse wheel event. + + Current mouse state. + + + + Checks if given point is inside the object's bounds. + + point to check. + true if point is inside the object's bounds. + + You can override this method if your objectis not of rectangular form. + + + + + Draws the selection point. + + Paint event args. + object. + object. + Left coordinate. + Top coordinate. + + + + Gets the object's selection points. + + Array of objects. + + Selection point is a small square displayed at the object's sides when object is selected + in the designer. You can drag this square by the mouse to change the object's size. For example, + the TextObject has eight selection points to change its width and height by the mouse. + If you are developing a new component for FastReport, you may override this method + if your object has non-standard set of selection points. For example, if an object has something like + "AutoSize" property, it would be good to disable all selection points if that property is true, + to disable resizing of the object by the mouse. + + + + + Gets a value indicating that given point is inside selection point. + + point's x coordinate. + point's y coordinate. + selection point. + true if (x,y) is inside the point + + + + Gets the absolute bottom coordinate of the object. + + + + + Gets the absolute bounding rectangle of the object. + + + + + Gets the absolute left coordinate of the object. + + + + + Gets the absolute right coordinate of the object. + + + + + Gets the absolute top coordinate of the object. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control + is resized with its parent. + + + Use the Anchor property to define how a control is automatically resized as its parent control + is resized. Anchoring a control to its parent control ensures that the anchored edges remain in the + same position relative to the edges of the parent control when the parent control is resized. + You can anchor a control to one or more edges of its container. For example, if you have a band + with a TextObject whose Anchor property value is set to Top, Bottom, the TextObject is stretched to + maintain the anchored distance to the top and bottom edges of the band as the height of the band + is increased. + + + + + Gets the bottom coordinate of the object in relation to its container. + + + To change the bottom coordinate, change the and/or properties. + + + + + Gets or sets the bounding rectangle of the object. + + + Assigning a value to this property is equal to assigning values to the , + , , properties. + + + + + Gets or sets the size of client area of the object. + + + This property is used in the class. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control + is resized with its parent. + + + Use the Dock property to define how a control is automatically resized as its parent control is + resized. For example, setting Dock to DockStyle.Left causes the control to align itself with the + left edges of its parent control and to resize as the parent control is resized. + A control can be docked to one edge of its parent container or can be docked to all edges and + fill the parent container. + + + + + Gets or sets a group index. + + + Group index is used to group objects in the designer (using "Group" button). When you select + any object in a group, entire group becomes selected. To reset a group, set the GroupIndex + to 0 (default value). + + + + + Gets or sets the height of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Height to 10mm + text1.Height = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Height = " + (text1.Height / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets the left coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Left to 10mm + text1.Left = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Left = " + (text1.Left / Units.Millimeters).ToString() + "mm"); + + + + + Gets the right coordinate of the object in relation to its container. + + + To change the right coordinate, change the and/or properties. + + + + + Gets or sets the Tag string for this component. + + + + + Gets or sets the top coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Top to 10mm + text1.Top = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Top = " + (text1.Top / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets a value indicating whether the object is displayed in the preview window. + + + Setting this property to false will hide the object in the preview window. + + The following report script will control the Text1 visibility depending on the value of the + data column: + private void Data1_BeforePrint(object sender, EventArgs e) + { + Text1.Visible = [Orders.Shipped] == true; + } + + + + + Gets or sets a string containing expression that determines should be object displayed in the preview window. + + + + + Gets or sets a value that determines if the object can be printed on the printer. + + + Object with Printable = false is still visible in the preview window, but not on the printout. + If you want to hide an object in the preview, set the property to false. + + + + + Gets or sets a string containing expression that determines should be object printed on the printer. + + + + + Gets or sets the width of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Width to 10mm + text1.Width = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Width = " + (text1.Width / Units.Millimeters).ToString() + "mm"); + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. This class implements the following actions: Edit, Cut, Copy, + Paste, Delete, Bring to Front, Send to Back. + + + + + The "Name" menu item. + + + + + The "Edit" menu item. + + + + + The "Cut" menu item. + + + + + The "Copy" menu item. + + + + + The "Paste" menu item. + + + + + The "Delete" menu item. + + + + + The "BringToFront" menu item. + + + + + The "SendToBack" menu item. + + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Represents a combobox that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Gets or sets value indicating whether it is necessary to show a color name in a combobox. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a drop-down control that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the control that owns this dropdown. + + Set the Owner to onscreen control that initiates dropdown. This control will + be used to calculate dpi-dependent sizes. + + + + Gets or sets the selected color. + + + + + Sets the UI style. + + The style to set. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a popup window that alows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup control. + + + + Represents the combobox used to select a data column. + + + + + Occurs when the text portion of the combobox is changed. + + + + + + + + Gets or sets the data source. + + + + + Gets or sets the Report. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + This is an internal enum that represents the selected datatree item type. + + + + + Nothing selected. + + + + + Data column selected. + + + + + Total selected. + + + + + Parameter selected. + + + + + Function selected. + + + + + Dialog control selected. + + + + + This is an internal control that represents the data tree. + + + This control is for internal use only. + + + + + DataSource property + + + + + SelectedItem property + + + + + SelectedItemType property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the DataTreeView control. + + + + + Split Container Control + + + + + Constructor + + + + + Represents the label with line. + + + + + + + + Initializes a new instance of the class. + + + + + Represents a control that may contain several pages. It is similar to the TabControl + but contains no tabs. This control is widely used in wizards. + + + + + Occurs when page is selected. + + + + + Gets or sets a value that determines whether the selector area is visible or not. + + + + + Gets or sets the height of selector tab. + + + + + This property is not relevant to this class + + + + + Gets or sets the active page. + + + + + Gets or sets the index of active page. + + + + + Gets or sets the highlighted page index. + + + + + Gets the collection of pages. + + + + + + + + + + + + + + + + + + + + Gets tab at specified mouse point. + + The mouse point. + Index of tab under mouse; -1 if mouse is outside tab area. + + + + Selects the next page. + + + + + Selects the previous page. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a single page of the control. + + + + + Gets or sets the image associated with this page. + + + + + Gets or sets the page caption text. + + + + + + + + + + + + + + Represents a popup form. + + + Use this form if you want to show some controls in non-modal borderless form that + behaves like other standard popup controls such as context menu. This form does not + move a focus from the parent form. + + + + + Shows the form. + + The control which location is used as a reference for pt parameter. + The location relative to the ctl control. + + + + Shows the form. + + The control which location is used as a reference for x, y parameters. + The x position relative to the ctl control. + The y position relative to the ctl control. + + + + Shows the form. + + The absolute screen location. + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup form. + + + + Handler which allows to prevent canceling of popup window + + Popup helper + Event arguments + + + + Contains event information for a PopupClosed event. + + + + + The popup form. + + + + + Gets the popup form which is being closed. + + + + + Constructs a new instance of this class for the specified + popup form. + + Popup Form which is being closed. + + + + Arguments to a PopupCancelEvent. Provides a + reference to the popup form that is to be closed and + allows the operation to be cancelled. + + + + + Whether to cancel the operation + + + + + Mouse down location + + + + + Popup form. + + + + + Constructs a new instance of this class. + + The popup form + The mouse location, if any, where the + mouse event that would cancel the popup occured. + + + + Gets the popup form + + + + + Gets the location that the mouse down which would cancel this + popup occurred + + + + + Gets/sets whether to cancel closing the form. Set to + true to prevent the popup from being closed. + + + + + Represents the method which responds to a PopupClosed event. + + + + + Represents the method which responds to a PopupCancel event. + + + + + A class to assist in creating popup windows like Combo Box drop-downs and Menus. + This class includes functionality to keep the title bar of the popup owner form + active whilst the popup is displayed, and to automatically cancel the popup + whenever the user clicks outside the popup window or shifts focus to another + application. + + + + + Event Handler to detect when the popup window is closed + + + + + Message filter to detect mouse clicks anywhere in the application + whilst the popup window is being displayed. + + + + + The popup form that is being shown. + + + + + The owner of the popup form that is being shown: + + + + + Whether the popup is showing or not. + + + + + Whether the popup has been cancelled, notified by PopupCancel, + rather than closed. + + + + + Raised when the popup form is closed. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + Shows the specified Form as a popup window, keeping the + Owner's title bar active and preparing to cancel the popup + should the user click anywhere outside the popup window. + Typical code to use this message is as follows: + + frmPopup popup = new frmPopup(); + Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom)); + popupHelper.ShowPopup(this, popup, location); + + Put as much initialisation code as possible + into the popup form's constructor, rather than the System.Windows.Forms.Load + event as this will improve visual appearance. + + Main form which owns the popup + Window to show as a popup + Location relative to the screen to show the popup at. + + + + Responds to the + event from the popup form. + + Popup form that has been closed. + Not used. + + + + Subclasses the owning form's existing Window Procedure to enables the + title bar to remain active when a popup is show, and to detect if + the user clicks onto another application whilst the popup is visible. + + Window Procedure Message + + + + Called when the popup is being hidden. + + + + + Raises the event. + + describing the + popup form that is being closed. + + + + Raises the event. + + describing the + popup form that about to be cancelled. + + + + Default constructor. + + Use the + method to attach this class to the form you want to show popups from. + + + + A Message Loop filter which detect mouse events whilst the popup form is shown + and notifies the owning class when a mouse + click outside the popup occurs. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + The popup form + + + + + The owning object. + + + + + Constructs a new instance of this class and sets the owning + object. + + The object + which owns this class. + + + + Gets/sets the popup form which is being displayed. + + + + + Checks the message loop for mouse messages whilst the popup + window is displayed. If one is detected the position is + checked to see if it is outside the form, and the owner + is notified if so. + + Windows Message about to be processed by the + message loop + true to filter the message, false otherwise. + This implementation always returns false. + + + + Checks the mouse location and calls the OnCancelPopup method + if the mouse is outside the popup form. + + + + + Raises the event. + + The associated + with the cancel event. + + + + Represents the control that combines a textbox and a button. + + + + + Occurs when the button is clicked. + + + + + Occurs when the text is changed. + + + + + + + + Gets or sets the button's image. + + + + + Gets or sets the button's text. + + + + + + + + + + + + + + Set focus on text box. + + + + + + Initializes a new instance of the class. + + + + + TreeView control with multiselect support. + + + This control is for internal use only. + + + + + Creates a new instance of the TreeViewMultiSelect control. + + + + + Gets a copy of list of selected nodes. + + + + + + + + + + + + + + + + + + + + Specifies how text in a is horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + Gets or sets the alignment to apply to the current + selection or insertion point. + + + Replaces the SelectionAlignment from . + + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in screen pixels + Value in twips + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in twips + Value in screen pixels + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + (Index of last character that fitted on the page) + 1 + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + The calculated text height + (Index of last character that fitted on the page) + 1 + + + + The base class for the context menu item. + + + + + Gets a collection of menu items. + + + + + Gets or sets "Check on click" property. + + + + + Sets bold font. + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. + + + + + The reference to the report designer. + + + + + Gets a collection of menu items. + + + You should add new items to this collection. + + + + + This method is called to reflect changes in the designer. + + + + + Creates a new menu item. + + Item's text. + New item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New item. + + + + Displays context menu. + + Parent control. + Location. + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Specifies the shape of the CrossBandObject. + + + + + Specifies the vertical line shape. + + + + + Specifies the rectangle shape. + + + + + Represents an object that can be printed across several bands. + + + + + Gets or sets the object's shape. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + This class represents the Data band. + + + Use the property to connect the band to a datasource. Set the + property if you want to filter data rows. The + property can be used to sort data rows. + + + + + + + + + + + + + + + + + Invokes column editor + + + + + Gets or sets a header band. + + + + + Gets a collection of detail bands. + + + + + Gets or sets a footer band. + + + + + Gets or sets a data source. + Please note: data source have to be enabled. + + + + + Gets or sets a number of rows in the virtual data source. + + + Use this property if your data band is not connected to any data source. In this case + the virtual data source with the specified number of rows will be used. + + + + + Limits the maximum number of rows in a datasource. 0 means no limit. + + + + + Gets or sets a relation used to establish a master-detail relationship between + this band and its parent. + + + Use this property if there are several relations exist between two data sources. + If there is only one relation (in most cases it is), you can leave this property empty. + + + + + Gets the collection of sort conditions. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will not be printed. + + + + + Gets the band columns. + + + + + Gets or sets a value that determines whether to print a band if all its detail rows are empty. + + + + + Gets or sets a value that determines whether to print a band if its datasource is empty. + + + + + Gets or sets a value indicating that all band rows should be printed together on one page. + + + + + Gets or sets a value indicating that the band should be printed together with all its detail rows. + + + + + Gets or sets the key column that identifies the data row. + + + This property is used when printing a hierarchic list. + To print the hierarchic list, you have to setup three properties: IdColumn, + ParentIdColumn and Indent. First two properties are used to identify the data + row and its parent; the Indent property specifies the indent that will be used to shift + the databand according to its hierarchy level. + When printing hierarchy, FastReport shifts the band to the right + (by value specified in the property), and also decreases the + width of the band by the same value. You may use the Anchor property of the + objects on a band to indicate whether the object should move with the band, or stay + on its original position, or shrink. + + + + + Gets or sets the column that identifies the parent data row. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets the indent that will be used to shift the databand according to its hierarchy level. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets a value indicating that the databand should collect child data rows. + + + This property determines how the master-detail report is printed. Default behavior is: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + MasterData row2 + -- DetailData row1 + -- DetailData row2 + When you set this property to true, the master databand will collect all child data rows + under a single master data row: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + -- DetailData row4 + -- DetailData row5 + + + + + Gets or sets a value that determines whether to reset the page numbers when this band starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the data source connected to this band. + + + + + + + + Initializes a new instance of the class. + + + + + Class represent a smart tag that is used to choose a data column. + + + + + Gets or sets the data column name. + + + + + + + + Gets a root datasource for the object currently edited. + + The DataSourceBase object if found; null otherwise. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents a smart tag that is used to choose a data source. + + + + + Gets or sets a data source. + + + + + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the report's designer control. + + + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + This control represents pure designer surface + Objects toolbar. If you need + standard menu, statusbar, toolbars and tool windows, use the + control instead. Also you may + decide to use a designer's form () + instead of a control. + To run a designer, you need to attach a Report instance to it. This can be done via + the property. + To call the designer in MDI (Multi-Document Interface) mode, use the + property. + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + + Occurs when designer's UI state changed. + + + + + Gets or sets the edited report. + + + To initialize the designer, you need to pass a Report instance to this property. + This will create the designer's surface associated with the report. + + Designer designer = new Designer(); + designer.Parent = form1; + designer.Report = report1; + + + + + + Gets active report object. + + + May be null if Start Page selected, or no reports opened. + + + + + Gets a collection of global plugins such as menu, properties window, etc. + + + + + Gets a collection of objects on the active page of the active report. + + + + + Gets a collection of selected objects on the active page of the active report. + + + + + Gets a collection of selected objects of the ComponentBase type. + + + + + Gets a collection of selected objects of the ReportComponentBase type. + + + + + Gets a collection of selected objects of the TextObject type. + + + + + Gets or sets a value indicating that the report was modified. + + + + + Gets or sets a value that determines whether to ask user to save changes when closing the designer. + + + + + Gets the designer restrictions. + + + + + Gets or sets a value indicating that designer is run in MDI mode. + + + To call the designer in MDI (Multi-Document Interface) mode, use the following code: + + DesignerControl designer = new DesignerControl(); + designer.MdiMode = true; + designer.ShowDialog(); + + + + + + Gets or sets the visual style. + + + + + Gets a value indicating that designer is used to edit a preview page. + + + + + Gets or sets the zoom factor. + + + + + Gets the zoom factor with respect of designer's dpi value. + + + + + The "File|New" command. + + + + + The "New Page" toolbar command. + + + + + The "New Dialog" toolbar command. + + + + + The "File|Open..." command. + + + + + The "File|Save" command. + + + + + The "File|Save As..." command. + + + + + The "File|Save All" command. + + + + + The "File|Close" command. + + + + + The "Window|Close All" command. + + + + + The "File|Preview..." command. + + + + + The "File|Printer Setup..." command. + + + + + The "File|Page Setup..." command. + + + + + The "Data|Add New Data Source..." command. + + + + + The "Data|Sort Data Sources" command. + + + + + The "Data|Choose Report Data..." command. + + + + + The "Edit|Undo" command. + + + + + The "Edit|Redo" command. + + + + + The "Edit|Cut" command. + + + + + The "Edit|Copy" command. + + + + + The "Edit|Paste" command. + + + + + The "Format Painter" toolbar command. + + + + + The "Edit|Delete" command. + + + + + The "Edit|Copy Page" command. + + + + + The "Edit|Delete Page" command. + + + + + The "Edit|Select All" command. + + + + + The "Edit|Group" command. + + + + + The "Edit|Ungroup" command. + + + + + The "Edit" command. + + + + + The "Edit|Find..." command. + + + + + The "Polygon move command" command. + + + + + The "Polygon point move" command. + + + + + The "Polygon add new point" command. + + + + + The "Polygon berier" command. + + + + + The "Polygon remove point" command. + + + + + The "Edit|Replace..." command. + + + + + The "Bring To Front" command. + + + + + The "Send To Back" command. + + + + + The "Insert" command. + + + + + The "Insert Band" command. + + + + + The "Recent Files" command. + + + + + The "File|Select Language..." command. + + + + + The "View|Start Page" command. + + + + + The "Report|Options..." command. + + + + + The "View|Options..." command. + + + + + The "Report|Styles..." command. + + + + + The "Help|Help Contents..." command. + + + + + The "Help|About..." command. + + + + + The "Show welcome window..." command. + + + + + Gets or sets the layout state of the designer. + + + This property is used to store layout in Visual Studio design time. You may also use + it to save and restore the designer's layout in your code. However, consider using the + and methods that use FastReport + configuration file. + + + + + Fires when the layout is changed. + + + This event is for internal use only. + + + + + Updates UI style of the designer. + + + + + Initializes designer plugins such as toolbars and toolwindows. + + + + + + + + Zooms the report to page width. + + + + + Zooms the report to whole page. + + + + + Cancels paste mode. + + + + + AutoSave system initialization. + + + + + Stops the AutoSave system. + + + + + Call this method if you change something in the report. + + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + The name of modified object. + + + + Call this method to tell the designer that current selection is changed. + + The plugin that changes the selection (may be null). + + + + Locks all plugins. + + + This method is usually called when we destroy the report to prevent unexpected + errors - such as trying to draw destroyed objects. + + + + + Unlocks all plugins. + + + Call this method after the Lock. + + + + + Call this method to refresh all plugins' content. + + The plugin that we don't need to refresh. + + + + Updates localization of the designer. + + + + + Updates layout and images on dpi change. + + The sender object. + + + + Saves config to a FastReport configuration file. + + + + + Restores config from a FastReport configuration file. + + + Call this method to restore the designer's layout. You need to do this after the + designer's control is placed on a form. + + + + + Refresh the designer's toolbars and toolwindows layout. + + + Call this method if you use + DesignerControl. To restore + the layout that you've created in VS design time, you need to call this method in the form's + Load event handler. If you don't do this, tool windows like Properties, Data, Report Tree + will not be available. + + + + + + + + + + + Initializes the workspace after the new report is loaded. + + + + + Tries to create a new empty report. + + true if report was created successfully; false if user cancels the action. + + + + Displays a message in the "Messages" window. + + Message text. + + + + Clears the "Messages" window. + + + + + Shows the selected object's information in the designer's statusbar. + + Object's location. + Object's size. + Textual information about the selected object. + + + + Close all opened reports, ask to save changes. + + true if all tabs closed succesfully. + + Use this method to close all opened documents and save changes when you closing the main form + that contains the designer control. To do this, create an event handler for your form's FormClosing + event and call this method inside the handler. If it returns false, set e.Cancel to true. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all designer commands. + + + + + Gets a value indicating that the command is enabled. + + + If you use own controls that invoke designer commands, use this property to refresh + the Enabled state of a control that is bound to this command. + + + + + Defines a custom action for this command. + + + Using custom action, you can override the standard behavior of this designer's command. + + + This example demonstrates how to override the "New..." command behavior. + + // add an event handler that will be fired when the designer is run + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + // override "New..." command behavior + (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); + } + + void cmdNew_CustomAction(object sender, EventArgs e) + { + // show the "Label" wizard instead of standard "Add New Item" dialog + Designer designer = sender as Designer; + LabelWizard wizard = new LabelWizard(); + wizard.Run(designer); + } + + + + + + Gets a value for the Enabled property. + + true if command is enabled. + + + + Invokes the command. + + + + + Invokes the command with specified sender and event args. + + Sender. + Event args. + + This method is compatible with standard and can be passed + to the event handler constructor directly. + + + + + Represents the "File|New" command. + + + + + + + + + + + Represents the "New Page" toolbar command. + + + + + + + + + + + Represents the "New Dialog" toolbar command. + + + + + + + + + + + Represents the "File|Open..." command. Also can be used for loading a file + from the recent files list. + + + + + + + + + + + Loads a specified report file. + + File to load. + + + + Represents the "File|Save" command. + + + + + + + + + + + Represents the "File|Save As..." command. + + + + + + + + + + + Represents the "File|Save All" command. + + + + + + + + + + + Represents the "File|Close" command. + + + + + + + + + + + Represents the "Window|Close All" command. + + + + + + + + Represents the "File|Preview..." command. + + + + + + + + + + + Represents the "File|Page Setup..." command. + + + + + + + + + + + Represents the "Report|Options..." command. + + + + + + + + + + + Represents the "File|Printer Setup..." command. + + + + + + + + + + + Represents the "Edit|Undo" command. + + + + + + + + + + + Undo several actions. + + Number of actions to undo. + + + + Represents the "Edit|Redo" command. + + + + + + + + + + + Redo several actions. + + Number of actions to redo. + + + + Represents the "Edit|Cut" command. + + + + + + + + + + + Represents the "Edit|Copy" command. + + + + + + + + Represents the "Edit|Copy Page" command. + + + + + + + + + + + Represents the "Edit|Paste" command. + + + + + + + + + + + Represents the "Format Painter" toolbar command. + + + + + + + + + + + Represents the "Edit|Delete" command. + + + + + + + + + + + Represents the "Edit|Delete Page" command. + + + + + + + + + + + Represents the "Edit|Select All" command. + + + + + + + + + + + Represents the "Edit|Group" command. + + + + + + + + + + + Represents the "Edit|Ungroup" command. + + + + + + + + Represents the "Edit" command. + + + + + + + + + + + Represents the "Edit|Find..." command. + + + + + + + + + + + Represents the "Edit|Replace..." command. + + + + + Represents the "Bring To Front" context menu command. + + + + + + + + + + + Represents the "Send To Back" context menu command. + + + + + + + + Represents the "Insert" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Insert Band" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Data|Add Data Source..." command. + + + + + + + + + + + Represents the "Data|Sort Data Sources" command. + + + + + + + + + + + Represents the "Data|Choose Report Data..." command. + + + + + + + + + + + Represents the "Recent Files" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the recent files list is enabled. + + + + + + + + Represents the "File|Select Language..." command. + + + + + + + + Represents the "View|Options..." command. + + + + + + + + Represents the "View|Start Page" command. + + + + + + + + + + + Represents the "Select polygon move" command. + + + + + + + + + + + Represents the "Report|Styles..." command. + + + + + + + + + + + Represents the "Help|Help Contents..." command. + + + + + + + + + + + Represents the "Help|About..." command. + + + + + + + + Represents the "Show welcome window..." command. + + + + + + + + + + + Provides a data for the designer ReportLoaded event. + + + + + The current report. + + + + + Represents the method that will handle the designer ReportLoaded event. + + The source of the event. + The event data. + + + + Provides a data for the designer ObjectInserted event. + + + + + Gets the inserted object. + + + + + Gets the source where the object is inserted from. + + + + + Represents the method that will handle the designer ObjectInserted event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets or sets a file name. + + + This property contains the location of a report. If you work with files (like the + standard "Open" and "Save" dialogs do), treat this property as a file name. + + + + + Gets or sets a value indicating that the dialog was cancelled. + + + This property is used to tell the designer that the user was cancelled the dialog. + + + + + Gets or sets the custom data that is shared across events. + + + You may set the Data in the OpenDialog event and use it later in the OpenReport event. + + + + + Gets a report designer. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets a report. + + + Use this report in the load/save operations. + + + + + Gets a file name. + + + This property contains the location of a report that was selected by the user in the + open/save dialogs. If you work with files (like the standard "Open" and "Save" dialogs do), + treat this property as a file name. + + + + + Gets the custom data that was set in the OpenDialog event. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides data for the FilterConnectionTables event. + + + + + Gets the Connection object. + + + + + Gets the table name. + + + + + Gets or sets a value that indicates whether this table should be skipped. + + + + + Represents the method that will handle the FilterConnectionTables event. + + The source of the event. + The event data. + + + + Provides data for the CustomQueryBuilder event. + + + + + Gets the Connection object. + + + + + Gets or sets the query text. + + + + + Gets or sets the query parameters. + + + + + Represents the method that will handle the CustomQueryBuilder event. + + The source of the event. + The event data. + + + + Represents list of registered design plugins. + + + + + Adds a new plugin's type. + + The type of a plugin. + + + + Represents a set of designer's restrictions. + + + + + Gets or sets a value that enables or disables the "Open" action. + + + + + Gets or sets a value that enables or disables the "Save/Save as" actions. + + + + + Gets or sets a value that enables or disables the "New..." action. + + + + + Gets or sets a value that enables or disables the "Preview" action. + + + + + Gets or sets a value that enables or disables the recent files list. + + + + + Gets or sets a value that enables or disables the "Code" tab. + + + + + Gets or sets a value that enables or disables the "Data" menu. + + + + + Gets or sets a value that enables or disables the "Data|Add New Data Source..." menu. + + + + + Gets or sets a value that enables or disables the "Data|Sort Data Sources" menu. + + + + + Gets or sets a value that enables or disables the "Report|Options..." menu. + + + + + Gets or sets a value that enables or disables insertion of objects. + + + + + Gets or sets a value that enables or disables the insertion of bands. + + + + + Gets or sets a value that enables or disables the "Delete Page" action. + + + + + Gets or sets a value that enables or disables the creation of report/dialog pages. + + + + + Gets or set a value that enables or disbles the "Copy Page" action. + + + + + Gets or sets a value that enables or disables the "Page Setup" action. + + + + + Copies the contents of another, similar object. + + Source object to copy the contents from. + + + + Creates exact copy of this object. + + The copy of this object. + + + + This class contains settings that will be applied to the report designer. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when the designer is closed. + + + + + Occurs when the report is loaded. + + + + + Occurs when a report page or a dialog form is added to the report. + + + Use this event if you want to customize the page properties. + + + This example demonstrates how to change the default page margins. + + Config.DesignerSettings.PageAdded += new EventHandler(DesignerSettings_PageAdded); + + void DesignerSettings_PageAdded(object sender, EventArgs e) + { + if (sender is ReportPage) + (sender as ReportPage).TopMargin = 0; + } + + + + + + Occurs when object is inserted. + + + + + + + + + + + + + + + + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + Config.DesignerSettings.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + Config.DesignerSettings.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Occurs when the query builder is called. + + + Subscribe to this event if you want to replace the embedded query builder with your own one. + + + + + Gets or sets the icon for the designer window. + + + + + Gets or sets the default font used in a report. + + + + + Gets or sets a value indicating whether the designer window is displayed in the Windows taskbar. + + + + + Gets the designer restrictions flags. + + + + + Gets or sets the title text for the designer window. + + + If no text is set, the default text "FastReport -" will be used. + + + + + Gets or sets application-defined DbConnection object that will be used in the designer + to create a new datasource. + + + The application connection object is used in the "Data Wizard" to create new datasources. + In this mode, you can't create any other connections in the wizard; only application + connection is available. You still able to choose tables or create a new queries inside + this connection. The connection information (ConnectionString) is not stored in the report file. + + + + + Gets the toolstrip renderer. + + + + + Adds a custom connection used in the "Data Wizard" window. + + + Use this method to provide own connection strings for the "Data Wizard" dialog. To do this, you need + to pass the type of connection object and connection string associated with it. You must use one of the + connection objects registered in FastReport that inherit from the + class. + To clear the custom connections, use the method. + + + This example shows how to add own connection string. + + Config.DesignerSettings.AddCustomConnection(typeof(MsAccessDataConnection), @"Data Source=c:\data.mdb"); + + + + + + Clears the custom connections added by the AddCustomConnection method. + + + + + Initializes a new instance of the class. + + + + + Base class for all export plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Save File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Saves the specified report into specified file. + + Report object. + File name. + + + + Represents the FR3 export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR3 units converter. + + + + + Converts Color to TColor. + + Color value. + String that contains TColor value. + + + + Converts font style. + + FontStyle value. + String that contains converted value. + + + + Converts horizontal alignment of text. + + HorzAlign value. + String that contains converted value. + + + + Converts vertical alignment of text. + + VertAlign value. + String that contains coverted value. + + + + Converts font size to delphi font height. + + Font size value. + String that contains font height value. + + + + Convert line style to frame style. + + Line style value. + String that contains converted value. + + + + Converts barcode type. + + BarcodeBase instance. + String that contains converted value. + + + + Converts BorderLines value. + + BorderLines instance. + String that contains converted value. + + + + Converts CheckedSymbol value. + + CheckeSymbol instance. + String that contains converted value. + + + + Converts ScaleDock value. + + ScaleDock instance. + String that contains converted value. + + + + Converts DashStyle value. + + DashStyle instance. + String that contains converted value. + + + + Converts TotalType value. + + TotalType instance. + String that contains converted value. + + + + Converts MapLabelKind value. + + MapLabelKind instance. + String that contains converted value. + + + + Converts MapPalette value. + + MapPalette instance. + String that contains converted value. + + + + Converts ShapeKind value. + + ShapeKind instance. + String that contains coverted value. + + + + Represents the RDL export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR units converter. + + + + + Converts the float size in pixels to string value in millimeters. + + The float value in pixels. + The string value in millimeters. + + + + Converts the float size in millimeters to string value in millimeters. + + The float value in millimeters. + The string value in millimeters. + + + + Converts the bool value to string. + + The bool value. + The string value. + + + + Converts the int size in pixels to string value in pt. + + The int value in pixels. + The string value in pt. + + + + Converts the Color value to string. + + The Color value. + The string representation of Color value. + + + + Converts the LineStyle value to RDL BorderStyle value. + + The LineStyle value. + The string with RDL BorderStyle value. + + + + Converts the GradientStyle value to RDL GradientType value. + + The GradientStyle value. + The string with RDL GradientType value. + + + + Converts the FontStyle value to RDL FontStyle value. + + The FontStyle value. + The string with RDL FontStyle value. + + + + Converts the FontFamily value to RDL FontFamily value. + + The FontFamily value. + The string with RDL FontFamily value. + + + + Converts the HorzAlign value to RDL TextAlign value. + + The HorzAlign value. + The string with RDL TextAling value. + + + + Converts the VertAling value to RDL VerticalAling value. + + The VertAling value. + The string with RDL VerticalAlign value. + + + + Converts the Angle value to RDL WritingMode value. + + The Angle value. + The string with RDL WritingMode value. + + + + Converts the FontSize value to RDL FontSize value. + + The FontSize value. + The string with RDL FontSize value. + + + + Converts the PictureBoxSizeMode value to RDL Sizing value. + + The PictureBoxSizeMode value. + The string with RDL Sizing value. + + + + Converts the SeriesChartType value to RDL Chart.Type value. + + The SeriesChartType value. + The string with RDL Chart.Type value. + + + + Converts the ChartColorPalette value to RDL Chart.Palette value. + + The ChartColorPalette value. + The string with RDL Chart.Palette value. + + + + Converts the Legend.Docking and Legend.Alignment values to RDL Chart.Legend.Position value. + + The Legend.Docking value. + The Legend.Alignment value. + The string with RDL Chart.Legend.Position value. + + + + Converts the LegendStyle value to Chart.Legend.Layout value. + + The LegendStyle value. + The string with RDL Chart.Legend.Layout value. + + + + Converts the LightStyle value to RDL Shading value. + + The LightStyle value. + The string with RDL Shading value. + + + + Converts the ChartDashStyle value to RDL BorderStyle value. + + The ChartDashStyle value. + The string with RDL ChartDahsStyle value. + + + + Converts the ContentAlignment value to RDL TextAlign value. + + The ContentAlignment value. + The string with RDL TextAlign value. + + + + Converts the ContentAlignment value to RDL VerticalAlign value. + + The ContentAlignment value. + The string with RDL VerticalAlign value. + + + + Converts the AxisEnabled value to RDL Axis.Visible value. + + The AxisEnabled value. + The string with RDL Axis.Visible value. + + + + Converts the TickMarkStyle value to RDL TickMarkStyle value. + + The TickMarkStyle value. + The string with RDL TickMarkStyle value. + + + + Converts the StringAlignment value to RDL TextAlign value. + + The StringAlignment value. + The string with RDL TextAlign value. + + + + Provides functionality required for report designer plugins such as toolbars and toolwindows. + + + + + Gets the plugin name. + + + + + Saves the plugin state. + + This example shows how to save the state: + + public void SaveState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + xi.SetProp("ShowGrid", DialogWorkspace.ShowGrid ? "1" : "0"); + } + + + + + + Restores the plugin state. + + This example shows how to restore the state: + + public void RestoreState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + DialogWorkspace.ShowGrid = xi.GetProp("ShowGrid") != "0"; + } + + + + + + Updates plugin state when current selection was changed. + + + Typically you need to do the same work in the and + methods. + + + + + Updates plugin state when the report was modified. + + + Typically you need to do the same work in the and + methods. + + + + + Locks the plugin. + + + This method is called by the designer when report is loading. It may be needed to disable + some operations (like painting) that use the report. + + + + + Unlocks the plugin. + + This method is called by the designer when report is loaded. It follows the Lock + method call and must reset the lock. + + + + Localizes the plugin. + + + This method is called by the designer when current localization is changed. + + + + + Gets an options page that will be used in the Designer Options dialog to edit the plugin options. + + The options page, if implemented; otherwise, null. + + + + Updates UI style of the plugin. + + + The plugin should update its style according to the designer's UIStyle property. + + + + + Updates layout on dpi change. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Open File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + + + + Gets or sets reference to the import. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a open dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + Represents the List and Label import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Import RichTextFile to a report + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents collection of designer plugins. + + + This class is used in the Designer.Plugins property. + To register own plugin, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Finds a plugin by its name. + + The plugin's name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.Find("MessagesWindow") as MessagesWindow; + + + + + + Finds a plugin by its type name. + + The plugin's type name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + Base class for all designer toolbars. + + + Use this class to write own designer's toolbar. To do this: + - in the constructor, set the Name property and create toolbar buttons. + The Name will be used to restore toolbar's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolbar, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Gets the report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new button. + + Button's name. + Button's image index. + Click handler. + New button. + + + + Creates a new button. + + Button's name. + Button's image index. + Button's tooltip text. + Click handler. + New button. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the "Data Dictionary" window. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Describes an item dragged from the "Data Dictionary" window. + + + + + The dragged object. + + + + + The text of dragged object. + + + + + Collection of dragged items. + + + + + Represents the "Messages" window. + + + To get this window, use the following code: + + Designer designer; + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + + + + Clears the message list. + + + + + Adds a new message. + + The message text. + The name of object related to a message. + + + + Adds a new script-related message. + + The message text. + The line of the script. + The column of the script. + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Properties" window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Report Tree" window. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Extend the class for window with TreeView. + + + + + + + + This method puts data to TreeView. + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + + + + + + + + + + Base class for all tool windows such as "Properties", "Data Dictionary" etc. + + + Use this class to create own tool window. To do this: + - in the constructor, set the Name and Image properties and create necessary controls. + The Name will be used to restore window's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolwindow, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolWindow)); + + + + + + + Gets the report designer. + + + + + Gets a value indicating that window is locked. + + + + + + + + Gets or sets shortcut keys used to show this toolwindow. + + + + + Gets or sets a value indicating that the toolwindow can be closed by the x button. + + + + + Gets a parent control that contains all controls. + + + Add your control to the parent control Controls collection. + + + + + Shows the toolwindow. + + + + + Hides the toolwindow. + + + + + + + + + + + + + + + + + + + + + + + + + + Implements method. + + The options page, if implemented; otherwise, null. + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the standard report designer. + + + This control extends the control with + standard menu, status bar, and toolbars. + To choose toolbars and tool windows in design-time, click the "View" menu + in this control and select what you want to see. Toolbars can be reordered using the mouse. + To restore the designer layout at runtime, you need to call the + RefreshLayout method in your + form's Load event handler. + + + + + Gets the main menu. + + + + + Gets or sets a value indicating whether the main menu should be displayed or not. + + + + + Gets or sets a value indicating whether the status bar should be displayed or not. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents standard designer's form. + + + This form contains the . Use the + property to get access to this control. + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + If you decided to use this class, you need: + + + create an instance of this class; + + + set the Designer.Report property to report that you need to design; + + + call either ShowModal or Show methods to display a form. + + + + + + + Gets a reference to the control which is actually a designer. + + + + + Gets a list of File menu buttons + + + + + Creates a new instance of the class with default settings. + + + + + Creates a new instance of the class with default settings. + + enables welcome window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the designer's main menu. + + + To get this menu, use the following code: + + Designer designer; + DesignerMenu menu = designer.Plugins.FindType("DesignerMenu") as DesignerMenu; + + + + + + The "File" menu. + + + + + The "File|New..." menu. + + + + + The "File|Open..." menu. + + + + + The "File|Close" menu. + + + + + The "File|Save" menu. + + + + + The "File|Save as..." menu. + + + + + The "File|Save All" menu. + + + + + The "File|Page Setup..." menu. + + + + + The "File|Printer Setup..." menu. + + + + + The "File|Preview..." menu. + + + + + The "File|Select Language" menu. + + + + + The "File|Exit" menu. + + + + + The "Edit" menu. + + + + + The "Edit|Undo" menu. + + + + + The "Edit|Redo" menu. + + + + + The "Edit|Cut" menu. + + + + + The "Edit|Copy" menu. + + + + + The "Edit|Paste" menu. + + + + + The "Edit|Delete" menu. + + + + + The "Edit|NewPage" menu. + + + + + The "Edit|Copy Page" menu. + + + + + The "Edit|Delete Page" menu. + + + + + The "Edit|Select All" menu. + + + + + The "Edit|Group" menu. + + + + + The "Edit|Ungroup" menu. + + + + + The "Edit|Find..." menu. + + + + + The "Edit|Replace..." menu. + + + + + The "View" menu. + + + + + The "View|Toolbars" menu. + + + + + The "View|Start Page" menu. + + + + + The "View|Options..." menu. + + + + + The "Insert" menu. + + + + + The "Report" menu. + + + + + The "Report|Options..." menu. + + + + + The "Data" menu. + + + + + The "Data|Choose Report Data..." menu. + + + + + The "Data|Add Data Source..." menu. + + + + + The "Data|Show Data Dictionary" menu. + + + + + The "Window" menu. + + + + + The "Window|Close All" menu. + + + + + The "Help" menu. + + + + + The "Help|Help Contents..." menu. + + + + + The "Help|About..." menu. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new menu item. + + New menu item. + + + + Creates a new menu item. + + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New menu item. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the designer's statusbar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Updates the information about location and size. + + The location. + The size. + + + + Updates the name and text information. + + The text. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Contains the email settings such as recipient(s) address, name, subject, message body. + + + + + + + Gets or sets the recipient(s) email addresses. + + + This property contains one or several email addresses in the following form: "john@url.com". + + + + + Gets or sets the message subject. + + + + + Gets or sets the message body. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains some global settings that used in the FastReport.Net. + + + This component is intended for use in the Visual Studio IDE to quickly configure + FastReport global settings. To use it, drop the component on your Form and set up + its properties and events. + Here are some common actions that can be performed with this object: + + + To define own open/save dialogs that will be used in the report designer, + use the , , + , events; + + + + To pass connection string to the connection object defined in a report, + or to define own database login dialog, use the event; + + + + To adjust the connection object after it is opened, + use the event; + + + + To define own progress window, use the , + and events; + + + + To setup some common properties of the report, designer and preview, + use properties defined in this class; + + + + To set UI style of the designer and preview window, + use property. + + + + This component actually uses the static class which + contains , and + properties. You can use Config class as well. + + + + + Gets or sets the UI style of the designer and preview windows. + + + This property affects both designer and preview windows. + + + + + Indicates whether the Ribbon-style window should be used. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs when progress state is changed. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Gets or sets the report settings. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + environmentSettings1.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when report is loaded in the designer. + + + Use this event handler to register application data in a report. + + + + + Occurs when object is inserted in the designer. + + + Use this event handler to set some object's properties when it is inserted. + + + + + Occurs when the report designer is about to show the "Open" dialog. + + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will open the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to show the "Save" dialog. + + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will save the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to load the report. + + This event is used together with the event. + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + load the e.Report from the location specified in the e.FileName property. + For example, if you work with files: e.Report.Load(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to save the report. + + This event is used together with the event. + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + save the e.Report to the location specified in the e.FileName property. + For example, if you work with files: e.Report.Save(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + environmentSettings1.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + environmentSettings1.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Gets or sets the designer settings. + + + + + Gets or sets the preview settings. + + + + + Gets or sets the email settings. + + + + + Represents a group header band. + + + A simple group consists of one GroupHeaderBand and the DataBand that is set + to the property. To create the nested groups, use the property. + + Only the last nested group can have data band. + + Use the property to set the group condition. The + property can be used to set the sort order for group's data rows. You can also use the Sort + property of the group's DataBand to specify additional sort. + + This example shows how to create nested groups. + + ReportPage page = report.Pages[0] as ReportPage; + + // create the main group + GroupHeaderBand mainGroup = new GroupHeaderBand(); + mainGroup.Height = Units.Millimeters * 10; + mainGroup.Name = "MainGroup"; + mainGroup.Condition = "[Orders.CustomerName]"; + // add a group to the page + page.Bands.Add(mainGroup); + + // create the nested group + GroupHeaderBand nestedGroup = new GroupHeaderBand(); + nestedGroup.Height = Units.Millimeters * 10; + nestedGroup.Name = "NestedGroup"; + nestedGroup.Condition = "[Orders.OrderDate]"; + // add it to the main group + mainGroup.NestedGroup = nestedGroup; + + // create a data band + DataBand dataBand = new DataBand(); + dataBand.Height = Units.Millimeters * 10; + dataBand.Name = "GroupData"; + dataBand.DataSource = report.GetDataSource("Orders"); + // connect the databand to the nested group + nestedGroup.Data = dataBand; + + + + + + + + + + + + + + + Gets or sets a nested group. + + + Use this property to create nested groups. + + Only the last nested group can have data band. + + + + This example demonstrates how to create a group with nested group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.NestedGroup = new GroupHeaderBand(); + group.NestedGroup.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets the group data band. + + + Use this property to add a data band to a group. Note: only the last nested group can have Data band. + + + This example demonstrates how to add a data band to a group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets a group footer. + + + + + Gets or sets a header band. + + + + + Gets or sets a footer band. + + + To access a group footer band, use the property. + + + + + Gets or sets the group condition. + + + This property can contain any valid expression. When running a report, this expression is calculated + for each data row. When the value of this condition is changed, FastReport starts a new group. + + + + + Gets or sets the sort order. + + + FastReport can sort data rows automatically using the value. + + + + + Gets or sets a value indicating that the group should be printed together on one page. + + + + + Gets or sets a value that determines whether to reset the page numbers when this group starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for headers and footers which support the "Keep With Data" and "Repeat on Every Page" features. + + + + + + + + Gets or sets a value indicating that the band should be printed together with data band. + + + + + Gets or sets a value that determines whether to repeat this band on every page. + + + When band is repeated, its property is set to true. You can use + it to show any additional information on the band. To do this, + use the property which + can be set to "Rpeeated". In that case the object will be printed + only on the repeated band. + + + + + + + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObject. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Implements the object's editor. + + + + + Invokes the object's editor. + + true if object was succesfully edited. + + This method is called by FastReport when the object is doubleclicked in the designer. + + + + + Provides the "search" functionality in the preview and designer. + + + + + Finds the specified text inside the object. + + Text to find. + true to perform case-sensitive search. + true to find whole words only. + Array of character ranges that describes the occurences of text found; + null if text not found. + + + + Draws the highlight to show the text found. + + Draw event arguments. + Range of characters to highlight. + + + + Represents a line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. Set the property to true + if you want to show a diagonal line. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating that the line is diagonal. + + + If this property is false, the line can be only horizontal or vertical. + + + + + Gets or sets the start cap settings. + + + + + Gets or sets the end cap settings. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report pages and dialog forms. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the snap size for this page. + + + + + Gets a page designer for this page type. + + The page designer. + + + + This method is called by the designer when you create a new page. + + + You may create the default page layout (add default bands, set default page size, etc). + + + + + Causes the page to refresh in the preview window. + + + Call this method when you handle object's MouseMove, MouseDown, MouseUp, MouseEnter, MouseLeave events + and want to refresh the preview window. + + If you have changed some objects on a page, the Refresh method will not save the changes. + This means when you print or export the page, you will see original (unmodified) page content. + If you want to save the changes, you have to use the method instead. + + + + + + Modifies the page content and refresh it in the preview window. + + + Call this method when you handle object's Click, MouseDown or MouseUp events + and want to modify an object and refresh the preview window. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Picture object that can display pictures. + + + The Picture object can display the following kind of pictures: + + + picture that is embedded in the report file. Use the + property to do this; + + + picture that is stored in the database BLOb field. Use the + property to specify the name of data column you want to show; + + + picture that is stored in the local disk file. Use the + property to specify the name of the file; + + + picture that is stored in the Web. Use the + property to specify the picture's URL. + + + Use the property to specify a size mode. The + and properties can be used to restrict the image size if SizeMode + is set to AutoSize. + The property can be used to display an image with + transparent background. Use the property if you want to display + semi-transparent image. + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image. + + + By default, image that you assign to this property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set the property to true right after you assign an image: + + myPictureObject.Image = new Bitmap("file.bmp"); + myPictureObject.ShouldDisposeImage = true; + + + + + + Gets or sets the expansion of image. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Gets or sets a hash of grayscale svg image + + + + + Gets or sets the color of the image that will be treated as transparent. + + + + + Gets or sets the transparency of the PictureObject. + + + Valid range of values is 0..1. Default value is 0. + + + + + Gets or sets a value indicating that the image should be tiled. + + + + + Gets or sets a value indicating that the image stored in the + property should be disposed when this object is disposed. + + + By default, image assigned to the property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set this property to true right after you assign an image to the property. + + + + + Gets or sets a bitmap transparent image + + + + + + + + + + + + + + + + + Draws the image. + + Paint event args. + + + + Sets image data to FImageData + + + + + + + + + + + + Loads image + + + + + Disposes image + + + + + + + + + + + + + + Forces loading the image from a data column. + + + Call this method in the AfterData event handler to force loading an image + into the property. Normally, the image is stored internally as byte[] array + and never loaded into the Image property, to save the time. The side effect is that you + can't analyze the image properties such as width and height. If you need this, call this method + before you access the Image property. Note that this will significantly slow down the report. + + + + + Initializes a new instance of the class with default settings. + + + + + the base class for all picture objects + + + + + Draw an error image to Graphics g, when the image is designing + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image rotation angle, in degrees. Possible values are 0, 90, 180, 270. + + + + + Gets or sets the data column name to get the image from. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + + + + Gets or sets the path for the image to display in the PictureObject. + + + This property may contain the path to the image file as well as external URL. + + + + + Gets or sets the expression that determines the source for the image to display in the PictureObject. + + + The result of the expression should be data column name or path to the image file. + The data column name will be saved to the property. + The path will be savetd to the property. + + + + + Gets a value indicating that the image stored in the databases column + + + + + Gets a value indicating that the image stored in the separate file + + + + + Gets a value indicating that the image stored in the Web + + + + + Gets or sets the maximum height of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets the maximum width of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets padding within the PictureObject. + + + + + Gets or sets a value indicating whether the PictureObject should display + the error indicator if there is no image in it. + + + + + Gets or sets a value that specifies how an image is positioned within a PictureObject. + + + + + + + + Gets or sets the alignment of a image in the border. + + + + + Return base size of image, internal use only + + + + + Return base size of image, internal use only + + + + + + + + + + + Calculates URI from ImageLocation + + + + + + + + + gets points for transform this image + + the box where to draw image + image width + image height + scale horizontal + scale vertical + offset of left + offset of top + out start of vectors + out end of frist vector + out end of second vector + + + + Loads image + + + + + Moves the point on specified angle + + + + + + + + + + + + Rotates vector on specified angle + + + + + + + + + + + Draws not tiled image + + + + + + + + Reset index of image + + + + + When auto size was updated, internal use only + + + + + + + + Represents a polygon object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + scale by width + scale by height + Always returns a non-empty path + + + + Draw polyline path to graphics + + Event arguments + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a poly line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + + + Add point to end of polyline and recalculate bounds after add. + Can be first point. + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + Add point to start of polyline and recalculate bounds after add + Can be first point + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + + + + + + + Replace points with star + + Minimum value is 3 + + + + + + + + + + + + + + + + + + + Insert point to desired place of polyline + Recalculate bounds after insert + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + + + + Insert point to near line + Recalculate bounds after insert + + local x - relative to left-top point + local y - relative to left-top point + depricated + Index of inserted point + + + + + + + + + + + + + + + + Delete point from polyline by index + Recalculate bounds after remove + + Index of point in polyline + + + + + + + Delete point from polyline by index. + Recalculate bounds. + + Index of point in polyline + + + + + + + + + + Returns best new point position based on mouse + + + + + + do not set this value, internal use only + + + + + Return points collection. + You can modify the collection for change this object. + + + + + Returns origin of coordinates relative to the top left corner + + + + + Returns origin of coordinates relative to the top left corner + + + + + Return points array of line + deprecated + + + + + Return point types array. 0 - Start of line, 1 - Keep on line + deprecated + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + Left boundary + Top boundary + Right boundary + Bottom boundary + scale by width + scale by height + Always returns a non-empty path + + + + Recalculate position and size of element + + + + + + + + Add point to end of polyline, need to recalculate bounds after add + First point must have zero coordinate and zero type. + Recalculate bounds. + Method is slow do not use this. + + local x - relative to left-top point + local y - relative to left-top point + depreceted + + + + Delete point from polyline by index. + Recalculate bounds. + Method is slow do not use this. + + Index of point in polyline + + + + Draw polyline path to graphics + + Event arguments + + + + Insert point to desired place of polyline + recalculateBounds(); + Method is slow do not use this + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + deprecated + + + + Represent a point for polygon object + + + + + Specifies the set of buttons available in the preview. + + + + + No buttons visible. + + + + + The "Print" button is visible. + + + + + The "Open" button is visible. + + + + + The "Save" button is visible. + + + + + The "Email" button is visible. + + + + + The "Find" button is visible. + + + + + The zoom buttons are visible. + + + + + The "Outline" button is visible. + + + + + The "Page setup" button is visible. + + + + + The "Edit" button is visible. + + + + + The "Watermark" button is visible. + + + + + The page navigator buttons are visible. + + + + + The "Close" button is visible. + + + + + The "Design" button is visible. + + + + + The "Copy Page" button is visible. + + + + + The "Delete Page" button is visible. + + + + + The "About" button is visible. + + + + + All buttons are visible. + + + + + Specifies the set of export buttons available in the preview. + + + + + No exports visible. + + + + + The "Prepared" button is visible. + + + + + The "PDFExport" button is visible. + + + + + The "RTFExport" button is visible. + + + + + The "HTMLExport" button is visible. + + + + + The "MHTExport" button is visible. + + + + + The "XMLExport" export button is visible. + + + + + The "Excel2007Export" button is visible. + + + + + The "Excel2003Document" button is visible. + + + + + The "Word2007Export" button is visible. + + + + + The "PowerPoint2007Export" button is visible. + + + + + The "ODSExport" button is visible. + + + + + The "ODTExport" button is visible. + + + + + The "XPSExport" export button is visible. + + + + + The "CSVExport" button is visible. + + + + + The "DBFExport" button is visible. + + + + + The "TextExport" button is visible. + + + + + The "ZplExport" button is visible. + + + + + The "ImageExport" button is visible. + + + + + The "XAMLExport" button is visible. + + + + + The "SVGExport" button is visible. + + + + + The "PPMLExport" button is visible. + + + + + The "PSExport" button is visible. + + + + + The "JsonExport" button is visible. + + + + + The "LaTeXExport" button is visible. + + + + + The "HpglExport" button is visible. + + + + + The All export buttons is visible. + + + + + Specifies the set of export in clouds buttons available in the preview. + + + + + No exports in clouds visible. + + + + + The "Box" button is visible. + + + + + The "Dropbox" button is visible. + + + + + The "FastCloud" button is visible. + + + + + The "Ftp" button is visible. + + + + + The "GoogleDrive" button is visible. + + + + + The "SkyDrive" button is visible. + + + + + The All export in clouds buttons is visible. + + + + + Specifies the set of export by messenger buttons available in the preview. + + + + + No exports by messengers visible. + + + + + The "Xmpp" button is visible. + + + + + The All export my messengers buttons is visible. + + + + + Contains some settings of the preview window. + + + + + Occurs when the standard preview window opened. + + + You may use this event to change the standard preview window, for example, add an own button to it. + The sender parameter in this event is the PreviewControl. + + + + + Gets or sets a set of buttons that will be visible in the preview's toolbar. + + + Here is an example how you can disable the "Print" and "EMail" buttons: + + Config.PreviewSettings.Buttons = PreviewButtons.Open | + PreviewButtons.Save | + PreviewButtons.Find | + PreviewButtons.Zoom | + PreviewButtons.Outline | + PreviewButtons.PageSetup | + PreviewButtons.Edit | + PreviewButtons.Watermark | + PreviewButtons.Navigator | + PreviewButtons.Close; + + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Specifies the set of exports by messengers that will be available in the preview's "save" menu. + + + + + Gets or sets the number of prepared pages that can be stored in the memory cache during preview. + + + Decrease this value if your prepared report contains a lot of pictures. This will + save the RAM memory. + + + + + Gets or sets a value indicating whether the preview window is displayed in the Windows taskbar. + + + + + Gets or sets a value indicating whether the preview window should be displayed as a topmost form. + + + + + Gets or sets the icon for the preview window. + + + + + Gets or sets the text for the preview window. + + + If no text is set, the default text "Preview" will be used. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Enables or disables the "Print to file" feature in the print dialog. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the PreviewSettings class with default settings. + + + + + Specifies the report printing mode. + + + + + Specifies the default printing mode. One report page produces + one printed paper sheet of the same size. + + + + + Specifies the split mode. Big report page produces several smaller paper sheets. + Use this mode to print A3 report on A4 printer. + + + + + Specifies the scale mode. One or several report pages produce one bigger paper sheet. + Use this mode to print A5 report on A4 printer. + + + + + Specifies the number of report pages printed on one paper sheet. + + + + + Specifies one report page per sheet. + + + + + Specifies two report pages per sheet. + + + + + Specifies four report pages per sheet. + + + + + Specifies eight report pages per sheet. + + + + + Specifies the pages to print. + + + + + Print all report pages. + + + + + Print odd pages only. + + + + + Print even pages only. + + + + + This class contains the printer settings. + It is used in the property. + + + Typical use of this class is to setup a printer properties without using the "Print" + dialog. In this case, setup necessary properties and turn off the dialog via the + property. + + + + + Gets or sets the printer name. + + + + + Gets or sets a value indicating that the printer name should be saved in a report file. + + + If this property is set to true, the printer name will be saved in a report file. + Next time when you open the report, the printer will be automatically selected. + + + + + Gets or sets a value indicating that the printing output should be send + to a file instead of a printer. + + + Also set the property. + + + + + The name of a file to print the report to. + + + This property is used if property is true. + + + + + Gets or sets a value specifies the page range to print. + + + + + Gets or sets the page number(s) to print. + + + This property is used if property is set to PageNumbers. + You can specify the page numbers, separated by commas, or the page ranges. + For example: "1,3,5-12". + + + + + Gets or sets the number of copies to print. + + + + + Gets or sets a value indicating whether the printed document should be collated. + + + + + Gets or sets a value specifies the pages to print. + + + + + Gets or sets a value determines whether to print pages in reverse order. + + + + + Gets or sets the duplex mode. + + + + + Gets or sets the paper source. + + + This property corresponds to the RAW source number. Default value is 7 which + corresponds to DMBIN_AUTO. + + + + + Gets or sets the print mode. + + + See the enumeration for details. If you use + the mode other than Default, you must specify the sheet size in the + , properties. + + + + + Gets or sets the width of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper width in millimeters. + + + + + Gets or sets the height of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper height in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + + + Gets or sets the number of pages per printed sheet. + + + This property is used if the property is set to Scale. + + + + + Gets or sets an array of printed copy names, such as "Original", "Copy", etc. + + + + + Specifies whether to display the "Print" dialog. + + + + + + + + Assigns values from another source. + + Source to assign from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a report object. + + + The instance of this class contains a report. Here are some common + actions that can be performed with this object: + + + To load a report, use the + method or call static method. + + + To save a report, call the method. + + + To register application dataset for use it in a report, call one of the + RegisterData methods. + + + To pass some parameter to a report, use the + method. + + + To design a report, call the method. + + + To run a report and preview it, call the method. + Another way is to call the method, then call the + method. + + + To run a report and print it, call the method. + Another way is to call the method, then call the + method. + + + To load/save prepared report, use one of the LoadPrepared and + SavePrepared methods. + + + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + The report consists of one or several report pages (pages of the + type) and/or dialog forms (pages of the type). + They are stored in the collection. In turn, each page may contain report + objects. See the example below how to create a simple report in code. + + This example shows how to create a report instance, load it from a file, + register the application data, run and preview. + + Report report = new Report(); + report.Load("reportfile.frx"); + report.RegisterData(application_dataset); + report.Show(); + + This example shows how to create simple report in code. + + Report report = new Report(); + // create the report page + ReportPage page = new ReportPage(); + page.Name = "ReportPage1"; + // set paper width and height. Note: these properties are measured in millimeters. + page.PaperWidth = 210; + page.PaperHeight = 297; + // add a page to the report + report.Pages.Add(page); + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create Text object and put it to the title + TextObject text = new TextObject(); + text.Name = "Text1"; + text.Bounds = new RectangleF(0, 0, Units.Millimeters * 100, Units.Millimeters * 5); + page.ReportTitle.Objects.Add(text); + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to a page + page.Bands.Add(data); + + + + + + Gets a reference to the report designer. + + + This property can be used when report is designing. In other cases it returns null. + + + + + Runs the report designer. + + true if report was modified, otherwise false. + + + + Runs the report designer. + + A value indicates whether the designer should run modally. + true if report was modified, otherwise false. + + + + Runs the report designer. + + The main MDI form which will be a parent for the designer. + true if report was modified, otherwise false. + + + + Gets the email settings such as recipients, subject, message body. + + + + + Gets or sets the report preview control. + + + Use this property to attach a custom preview to your report. To do this, place the PreviewControl + control to your form and set the report's Preview property to this control. + + + + + Gets the print settings such as printer name, copies, pages to print etc. + + + + + + + + + + Prepares the report and prints it. + + + + + Prints the report with the "Print" dialog. + Report should be prepared using the method. + + + + + Prints the report without the "Print" dialog. + Report should be prepared using the method. + + Printer-specific settings. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Prepares the report and shows it in the preview window. + + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Prepares the report and shows it in the preview window. + + The main MDI form which will be a parent for the preview window. + + + + Previews the report. The report should be prepared using the method. + + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Previews the prepared report. + + The main MDI form which will be a parent for the preview window. + + + + Shows the "Print" dialog. + + Printer-specific settings. + true if the dialog was closed by "Print" button. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Occurs when calc execution is started. + + + + + Occurs when report is inherited and trying to load a base report. + + + Typical use of this event is to load the base report from a database instead of a file. + + + + + Occurs when report execution is started. + + + + + Occurs when report execution is finished. + + + + + Occurs before export to set custom export parameters. + + + + + Gets the pages contained in this report. + + + This property contains pages of all types (report and dialog). Use the is/as operators + if you want to work with pages of ReportPage type. + + The following code demonstrates how to access the first report page: + + ReportPage page1 = report1.Pages[0] as ReportPage; + + + + + + Gets the report's data. + + + The dictionary contains all data items such as connections, data sources, parameters, + system variables. + + + + + Gets the collection of report parameters. + + + Parameters are displayed in the "Data" window under the "Parameters" node. + Typical use of parameters is to pass some static data from the application to the report. + You can print such data, use it in the data row filter, script etc. + Another way to use parameters is to define some reusable piece of code, for example, + to define an expression that will return the concatenation of first and second employee name. + In this case, you set the parameter's Expression property to something like this: + [Employees.FirstName] + " " + [Employees.LastName]. Now this parameter may be used in the report + to print full employee name. Each time you access such parameter, it will calculate the expression + and return its value. + You can create nested parameters. To do this, add the new Parameter to the + Parameters collection of the root parameter. To access the nested parameter, you may use the + method. + To get or set the parameter's value, use the and + methods. To set the parameter's expression, use the + method that returns a Parameter object and set its + Expression property. + + + + + Gets or sets the report information such as report name, author, description etc. + + + + + Gets or sets the base report file name. + + + This property contains the name of a report file this report is inherited from. + Note: setting this property to non-empty value will clear the report and + load the base file into it. + + + + + Gets or sets the absolute path to the parent report. + + + This property contains the absolute path to the parent report. + + + + + Gets or sets the name of a file the report was loaded from. + + + This property is used to support the FastReport.Net infrastructure; + typically you don't need to use it. + + + + + Gets or sets the report script. + + + The script contains the ReportScript class that contains all report objects' + event handlers and own items such as private fields, properties, methods etc. The script + contains only items written by you. Unlike other report generators, the script does not + contain report objects declarations, initialization code. It is added automatically when + you run the report. + By default this property contains an empty script text. You may see it in the designer + when you switch to the Code window. + If you set this property programmatically, you have to declare the FastReport + namespace and the ReportScript class in it. Do not declare report items (such as bands, + objects, etc) in the ReportScript class: the report engine does this automatically when + you run the report. + Security note: since the report script is compiled into .NET assembly, it allows + you to do ANYTHING. For example, you may create a script that will read/write files from/to a disk. + To restrict such operations, use the property. + + + + + Gets or sets the script language of this report. + + + Note: changing this property will reset the report script to default empty script. + + + + + Gets or sets a value indicating whether the null DB value must be converted to zero, false or + empty string depending on the data column type. + + + This property is true by default. If you set it to false, you should check + the DB value before you do something with it (for example, typecast it to any type, use it + in a expression etc.) + + + + + Gets or sets a value that specifies whether the report engine should perform the second pass. + + + Typically the second pass is necessary to print the number of total pages. It also + may be used to perform some calculations on the first pass and print its results on the + second pass. + Use the Engine.FirstPass, Engine.FinalPass properties to determine which + pass the engine is performing now. + + + + + Gets or sets a value that specifies whether to compress the report file. + + + The report file is compressed using the Gzip algorithm. So you can open the + compressed report in any zip-compatible archiver. + + + + + Gets or sets a value that specifies whether to use the file cache rather than memory + to store the prepared report pages. + + + + + Gets or sets a value that specifies the quality of text rendering. + + + Note: the default property value is TextQuality.Default. That means the report + may look different depending on OS settings. This property does not affect the printout. + + + + + Gets or sets a value that specifies if the graphic objects such as bitmaps + and shapes should be displayed smoothly. + + + + + Gets or sets the report password. + + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in this property before loading + the report. In this case the report will load silently. + Password-protected report file is crypted using Rijndael algorithm. + Do not forget your password! It will be hard or even impossible to open + the protected file in this case. + + + + + Gets or sets a value indicating whether it is necessary to automatically fill + DataSet registered with RegisterData call. + + + If this property is true (by default), FastReport will automatically fill + the DataSet with data when you trying to run a report. Set it to false if + you want to fill the DataSet by yourself. + + + + + Gets or sets the maximum number of generated pages in a prepared report. + + + Use this property to limit the number of pages in a prepared report. + + + + + Gets or sets the collection of styles used in this report. + + + + + Gets or sets an array of assembly names that will be used to compile the report script. + + + By default this property contains the following assemblies: "System.dll", "System.Drawing.dll", + "System.Windows.Forms.dll", "System.Data.dll", "System.Xml.dll". If your script uses some types + from another assemblies, you have to add them to this property. + + + + + Gets or sets a script event name that will be fired when the report starts. + + + + + Gets or sets a script event name that will be fired when the report is finished. + + + + + Gets a value indicating that report execution was aborted. + + + + + Gets or sets a value that determines whether to store the report in the application resources. + Use this property in the MS Visual Studio IDE only. + + + By default this property is true. When set to false, you should store your report + in a file. + + + + + Gets or sets the resource string that contains the report. + + + This property is used by the MS Visual Studio to store the report. Do not use it directly. + + + + + Gets a value indicating that this report contains dialog forms. + + + + + Gets or sets a set of permissions that will be restricted for the script code. + + + Since the report script is compiled into .NET assembly, it allows you to do ANYTHING. + For example, you may create a script that will read/write files from/to a disk. This property + is used to restrict such operations. + This example shows how to restrict the file IO operations in a script: + + using System.Security; + using System.Security.Permissions; + ... + PermissionSet ps = new PermissionSet(PermissionState.None); + ps.AddPermission(new FileIOPermission(PermissionState.Unrestricted)); + report1.ScriptRestrictions = ps; + report1.Prepare(); + + + + + + + Gets a reference to the graphics cache for this report. + + + This property is used to support the FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a pages of the prepared report. + + + + + Gets a reference to the report engine. + + + This property can be used when report is running. In other cases it returns null. + + + + + Gets or sets the initial page number for PageN/PageNofM system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the report operation that is currently performed. + + + + + Gets or sets the Tag object of the report. + + + + + Gets or sets the flag for refresh. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the report's fields. + + + This method is for internal use only. + + + + + Generates the file (.cs or .vb) that contains the report source code. + + Name of the file. + + Use this method to generate the report source code. This code can be attached to your project. + In this case, you will need to call the following code to run a report: + + SimpleListReport report = new SimpleListReport(); + report.RegisterData(your_dataset); + report.Show(); + + + + + + Calculates an expression and returns the result. + + The expression to calculate. + If report is running, returns the result of calculation. + Otherwise returns null. + + The expression may be any valid expression such as "1 + 2". The expression + is calculated in the report script's ReportScript class instance context, + so you may refer to any objects available in this context: private fields, + methods, report objects. + + + + + Calculates an expression and returns the result. + + The expression to calculate. + The value of currently printing object. + If report is running, returns the result of calculation. + Otherwise returns null. + + Do not call this method directly. Use the Calc(string expression) method instead. + + + + + Returns an expression value. + + The expression. + The value of currently printing object. + Returns the result of calculation. + + This method is for internal use only, do not call it directly. + + + + + Invokes the script event handler with given name. + + The name of the script method. + The method parameters. + + + + Gets the data column's value. Automatically converts null value to 0, false or "" + depending on the column type. + + The name of the data column including the datasource name. + If report is running, returns the column value. Otherwise returns null. + + The return value of this method does not depend on the property. + + + + string employeeName = (string)report.GetColumnValue("Employees.FirstName"); + + + + + + Gets the data column's value. This method does not convert null values. + + The name of the data column including the datasource name. + If report is running, returns the column value. + Otherwise returns null. + + + + Gets the report parameter with given name. + + The name of the parameter. + The object if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Gets a value of the parameter with given name. + + The name of the parameter. + The parameter's value if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Sets the parameter's value. + + The name of the parameter. + Value to set. + + Use this method to pass a value to the parameter that you've created in the "Data" window. + Such parameter may be used everythere in a report; for example, you can print its value + or use it in expressions. + You should call this method after the report was loaded and before you run it. + To access a nested parameter, use the "." separator: "MainParameter.NestedParameter" + + This method will create the parameter if it does not exist. + + + This example shows how to pass a value to the parameter with "MyParam" name: + + // load the report + report1.Load("report.frx"); + // setup the parameter + report1.SetParameterValue("MyParam", 10); + // show the report + report1.Show(); + + + + + + Gets a value of the system variable with specified name. + + Name of a variable. + The variable's value if found, otherwise null. + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise 0. + This method converts null values to 0 if the property is set to true. + Use the method if you don't want the null conversion. + + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise null. + + + + Gets the datasource with specified name. + + Alias name of a datasource. + The datasource object if found, otherwise null. + + + + + + + Aborts the report execution. + + + + + + + + + + + Updates the report component's styles. + + + Call this method if you change the collection. + + + + + Sets prepared pages. + + + + + + This method fires the StartReport event and the script code connected + to the StartReportEvent. + + + + + This method fires the FinishReport event and the script code connected + to the FinishReportEvent. + + + + + Runs the Export event. + + ExportReportEventArgs object. + + + + Add the name of the assembly (in addition to the default) that will be used to compile the report script + + Assembly name + + For example: report.AddReferencedAssembly("Newtonsoft.Json.dll") + + + + + Add the names of the assembly (in addition to the default) that will be used to compile the report script + + Assembly's names + + + + + + + + + + Saves the report to a stream. + + The stream to save to. + + + + Saves the report to a file. + + The name of the file to save to. + + + + Loads report from a stream. + + The stream to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a file. + + The name of the file to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a string. + + The string that contains a stream in UTF8 or Base64 encoding. + + + + Saves the report to a string. + + The string that contains a stream. + + + + Saves the report to a string using the Base64 encoding. + + The string that contains a stream. + + + + Creates the report instance and loads the report from a stream. + + The stream to load from. + The new report instance. + + + + Creates the report instance and loads the report from a file. + + The name of the file to load from. + The new report instance. + + + + Creates the report instance and loads the report from a string. + + The string that contains a stream in UTF8 encoding. + The new report instance. + + + + Registers the application dataset with all its tables and relations to use it in the report. + + The application data. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1); + + + + + + Registers the application dataset with all its tables and relations to use it in the report and enables all its tables. + + The application data. + The boolean value indicating whether all tables should be enabled. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, true); + + + + + + Registers the application dataset with specified name. + + The application data. + The name of the data. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind"); + + + + + + Registers the application dataset with specified name and enables all its tables. + + The application data. + The name of the data. + The boolean value indicating whether all tables should be enabled. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind", true); + + + + + + Registers the application data table to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1.Tables["Orders"], "Orders"); + + + + + + Registers the application data view to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myDataView, "OrdersView"); + + + + + + Registers the application data relation to use it in the report. + + The application data. + The name of the data. + + You may specify any value for the name parameter: it is not displayed anywhere + in the designer and used only to load/save a report. The name must be persistent + and unique for each registered relation. + + + + report1.Load("report.frx"); + report1.RegisterData(myDataRelation, "myRelation"); + + + + + + Obsolete. Registers the application business object to use it in the report. + + Application data. + Name of the data. + Not used. + Maximum nesting level of business objects. + + This method is obsolete. Use the method instead. + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myBusinessObject, "Customers"); + + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + Maximum nesting level of business objects. + + This method creates initial datasource with specified nesting level. It is useful if + you create a report in code. In most cases, you don't need to specify the nesting level + because it may be selected in the designer's "Choose Report Data" dialog. + + + + + Registers the application cube link to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myCubeLink, "Orders"); + + + + + + Prepares the report. + + true if report was prepared succesfully. + + + + Prepares the report. + + Specifies whether the new report should be added to a + report that was prepared before. + true if report was prepared succesfully. + + Use this method to merge prepared reports. + + This example shows how to merge two reports and preview the result: + + Report report = new Report(); + report.Load("report1.frx"); + report.Prepare(); + report.Load("report2.frx"); + report.Prepare(true); + report.ShowPrepared(); + + + + + + Prepares the report with pages limit. + + Pages limit. The number of pages equal or less will be prepared. + true if report was prepared succesfully. + + + + For internal use only. + + + + + For internal use only. + + + + + Refresh the current report. + + + Call this method in the Click or MouseUp event handler of a report object to refresh + the currently previewed report. Report will be generated again, but without dialog forms. + + + + + Refresh prepared report after intercative actions. + + + + + Prepare page + + + + + + Exports a report. Report should be prepared using the method. + + The export filter. + Stream to save export result to. + + + + Exports a report. Report should be prepared using the method. + + The export filter. + File name to save export result to. + + + + Saves the prepared report. Report should be prepared using the method. + + File name to save to. + + + + Saves the prepared report. Report should be prepared using the method. + + Stream to save to. + + + + Loads the prepared report from a .fpx file. + + File name to load form. + + + + Loads the prepared report from a .fpx file. + + Stream to load from. + + + + Initializes a new instance of the class with default settings. + + + + + Ensure that static constructor is called. + + + + + Create name for all unnamed elements with prefix and start with number + + Prefix for name + Number from which to start + + + + The style of the report object markers. + + + + + Rectangle marker. + + + + + Small markers at the object's corners. + + + + + Base class for all report objects. + + + + + + + + + + + + + + + + + Assigns a format from another, similar object. + + Source object to assign a format from. + + + + + + + + + + Draws the object's markers. + + Draw event arguments. + + + + Draws the object's markers. + + Draw event arguments. + Marker style + + + + + + + + + + + + + This event occurs when the user moves the mouse over the object in the preview window. + + + + + This event occurs when the user releases the mouse button in the preview window. + + + + + This event occurs when the user clicks the mouse button in the preview window. + + + + + This event occurs when the mouse enters the object's bounds in the preview window. + + + + + This event occurs when the mouse leaves the object's bounds in the preview window. + + + + + Copies event handlers from another similar object. + + The object to copy handlers from. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method is fired when the user scrolls the mouse in the preview window. + + Event data. + + + + This event occurs before the object is added to the preview pages. + + + + + This event occurs after the object was added to the preview pages. + + + + + This event occurs after the object was filled with data. + + + + + This event occurs when the user clicks the object in the preview window. + + + + + Gets or sets a value that determines if the object can be exported. + + + + + Gets or sets a string containing expression that determines should be object exported. + + + + + Gets or sets an object's border. + + + + + Gets or sets an object's fill. + + + The fill can be one of the following types: , , + , . + To set the solid fill color, use the simpler property. + + This example shows how to set the new fill and change its properties: + + textObject1.Fill = new SolidFill(Color.Green); + (textObject1.Fill as SolidFill).Color = Color.Red; + + + + + + Gets or sets the fill color in a simple manner. + + + This property can be used in a report script to change the fill color of the object. It is + equivalent to: reportComponent1.Fill = new SolidFill(color); + + + + + Gets or sets a bookmark expression. + + + This property can contain any valid expression that returns a bookmark name. This can be, for example, + a data column. To navigate to a bookmark, you have to use the property. + + + + + Gets or sets a hyperlink. + + + The hyperlink is used to define clickable objects in the preview. + When you click such object, you may navigate to the external url, the page number, + the bookmark defined by other report object, or display the external report. + Set the Kind property of the hyperlink to select appropriate behavior. + Usually you should set the Expression property of the hyperlink to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to + something fixed (URL or page number, for example) you also may set the Value + property instead of Expression. + + + + + Determines if the object can grow. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object will grow to display all the information that it contains. + + + + + Determines if the object can shrink. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object can shrink to remove the unused space. + + + + + Determines if the object must grow to the band's bottom side. + + + If the property is set to true, object grows to the bottom side of its parent. This is useful if + you have several objects on a band, and some of them can grow or shrink. + + + + + Gets or sets a shift mode of the object. + + + See enumeration for details. + + + + + Gets or sets the style name. + + + Style is a set of common properties such as border, fill, font, text color. The Report + has a set of styles in the property. + + + + + Gets or sets a style name that will be applied to even band rows. + + + Style with this name must exist in the collection. + + + + + Gets or sets a style name that will be applied to this object when the mouse pointer is over it. + + + Style with this name must exist in the collection. + + + + + Gets or sets a value that determines which properties of the even style to use. + + + Usually you will need only the Fill property of the even style to be applied. If you want to + apply all style settings, set this property to StylePriority.UseAll. + + + + + Gets or sets a value that determines where to print the object. + + + See the enumeration for details. + + + + + Gets or sets a script event name that will be fired before the object will be printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was filled with data. + + + + + Gets or sets a script event name that will be fired when the user click the object in the preview window. + + + + + Determines if the object has custom border and use only Border.Width, Border.Style and + Border.Color properties. + + + This flag is used to disable some toolbar buttons when such object is selected. Applicable to the + ShapeObject and LineObject. + + + + + Determines if the object uses the Border. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Determines if the object uses the fill. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Gets or sets a value indicates that object should not be added to the preview. + + + + + Determines if serializing the Style property is needed. + + + The Style property must be serialized last. Some ancestor classes may turn off the standard Style + serialization and serialize it by themselves. + + + + + Determines if an object can provide the hyperlink value automatically. + + + This flag is used in complex objects such as Matrix or Chart. These objects can provide + a hyperlink value automatically, depending on where you click. + + + + + Gets an object's parent band. + + + + + Gets an object's parent data band. + + + + + Gets or sets an object's cursor shape. + + + This property is used in the preview mode. + + + + + Gets or sets a script event name that will be fired when the user + moves the mouse over the object in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + releases the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + clicks the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse enters the object's bounds in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse leaves the object's bounds in the preview window. + + + + + + + + Applies the style settings. + + Style to apply. + + + + Saves the current style. + + + + + Restores the current style. + + + + + Draws the object's background. + + Draw event arguments. + + + + + + + Determines if the object is visible on current drawing surface. + + Draw event arguments. + + + + + + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + + + + Checks if there are any listeners to the Click event. + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Performs a finalization after the report is finished. + + + This method is used by the report engine, do not call it directly. + + + + + Saves the object's state before printing it. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should save any object properties that may be changed during the object printing. + The standard implementation saves the object's bounds, visibility, bookmark and hyperlink. + + + + + Restores the object's state after printing it. + + + This method is called by the report engine after processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should restore the object properties that were saved by the method. + + + + + Calculates the object's height. + + Actual object's height, in pixels. + + Applicable to objects that contain several text lines, such as TextObject. Returns the height needed + to display all the text lines. + + + + + Gets the data from a datasource that the object is connected to. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should get the data from a datasource that the object is connected to. + + + + + + + + This method fires the BeforePrint event and the script code connected to the BeforePrintEvent. + + Event data. + + + + This method fires the AfterPrint event and the script code connected to the AfterPrintEvent. + + Event data. + + + + This method fires the AfterData event and the script code connected to the AfterDataEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific + to the ReportComponentBase. + + + + + The "Can Grow" menu item. + + + + + The "Can Shrink" menu item. + + + + + The "Grow to Bottom" menu item. + + + + + The "Hyperlink" menu item. + + + + + The "Style" menu item. + + + + + Initializes a new instance of the ReportComponentBaseMenu + class with default settings. + + The reference to a report designer. + + + + Represents a report page. + + + To get/set a paper size and orientation, use the , + and properties. Note that paper size is measured in millimeters. + Report page can contain one or several bands with report objects. Use the , + , , , + , , properties + to get/set the page bands. The property holds the list of data bands or groups. + Thus you may add several databands to this property to create master-master reports, for example. + + Report page can contain bands only. You cannot place report objects such as TextObject on a page. + + + + This example shows how to create a page with one ReportTitleBand and DataBand bands and add + it to the report. + + ReportPage page = new ReportPage(); + // set the paper in millimeters + page.PaperWidth = 210; + page.PaperHeight = 297; + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to the page + page.Bands.Add(data); + // add page to the report + report.Pages.Add(page); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets a value indicating that imperial units (inches, hundreths of inches) are used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + + + + Gets or sets the paper source for the first printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the first page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for all printed pages except the first one. + + + + This property represents the paper source (printer tray) that will be used when printing + all pages except the first one and the last one. To set source for first and last pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for the last printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the last page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the printer duplex mode that will be used when printing this page. + + + + + This event occurs when the report engine starts this page. + + + + + This event occurs when the report engine finished this page. + + + + + This event occurs when the report engine is about to print databands in this page. + + + + + Gets or sets a width of the paper, in millimeters. + + + + + Gets or sets the page name on export + + + + + Gets or sets a height of the paper, in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + This property stores the RawKind value of a selected papersize. It is used to distiguish + between several papers with the same size (for ex. "A3" and "A3 with no margins") used in some + printer drivers. + It is not obligatory to set this property. FastReport will select the + necessary paper using the PaperWidth and PaperHeight values. + + + + + Gets or sets a value indicating whether the page has unlimited height. + + + + + Gets or sets the value indicating whether the unlimited page should be printed on roll paper. + + + + + Gets or sets a value indicating whether the page has unlimited width. + + + + + Get or set the current height of unlimited page. + + + + + Get or set the current width of unlimited page. + + + + + Gets the current page height in pixels. + + + + + Gets the current page width in pixels. + + + + + Gets or sets a value indicating that page should be in landscape orientation. + + + When you change this property, it will automatically swap paper width and height, as well as paper margins. + + + + + Gets or sets the left page margin, in millimeters. + + + + + Gets or sets the top page margin, in millimeters. + + + + + Gets or sets the right page margin, in millimeters. + + + + + Gets or sets the bottom page margin, in millimeters. + + + + + Gets or sets a value indicating that even pages should swap its left and right margins when + previewed or printed. + + + + + Gets the page columns settings. + + + + + Gets or sets the page border that will be printed inside the page printing area. + + + + + Gets or sets the page background fill. + + + + + Gets or sets the page watermark. + + + To enabled watermark, set its Enabled property to true. + + + + + Gets or sets a value indicating that ReportTitle band should be printed before the + PageHeader band. + + + + + Gets or sets an outline expression. + + + For more information, see property. + + + + + Gets or sets a value indicating whether to start to print this page on a free space of the previous page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating that FastReport engine must reset page numbers before printing this page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating whether the page has extra width in the report designer. + + + This property may be useful if you work with such objects as Matrix and Table. + + + + + Gets or sets a value indicating whether this page will start on an odd page only. + + + This property is useful to print booklet-type reports. Setting this property to true + means that this page will start to print on an odd page only. If necessary, an empty page + will be added to the prepared report before this page will be printed. + + + + + Uses this page as a back page for previously printed pages. + + + + + Gets or sets a report title band. + + + + + Gets or sets a report summary band. + + + + + Gets or sets a page header band. + + + + + Gets or sets a page footer band. + + + + + Gets or sets a column header band. + + + + + Gets or sets a column footer band. + + + + + Gets or sets an overlay band. + + + + + Gets the collection of data bands or group header bands. + + + The Bands property holds the list of data bands or group headers. + Thus you may add several databands to this property to create master-master reports, for example. + + + + + Gets or sets the page guidelines. + + + This property hold all vertical guidelines. The horizontal guidelines are owned by the bands (see + property). + + + + + Gets or sets the reference to a parent SubreportObject that owns this page. + + + This property is null for regular report pages. See the for details. + + + + + Gets or sets a script event name that will be fired when the report engine starts this page. + + + + + Gets or sets a script event name that will be fired when the report engine finished this page. + + + + + Gets or sets a script event name that will be fired when the report engine is about + to print databands in this page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the StartPage event and the script code connected to the StartPageEvent. + + + + + This method fires the FinishPage event and the script code connected to the FinishPageEvent. + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains settings that will be applied to the Report component. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs after printing a report. + + + + + Occurs when progress state is changed. + + + + + Gets or sets a value that determines whether to show the progress window + when perform time-consuming operations such as run, print, export. + + + + + Gets or sets a value that determines whether to show the information about + the report performance (report generation time, memory consumed) in the + lower right corner of the preview window. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Occurs when discovering the structure of business object of ICustomTypeDescriptor type + with no instance specified. + + + The event handler must return an instance of that type. + + + + + Gets or sets the default script language. + + + + + Gets or sets the default paper size used when creating a new report. + + + + + Gets or sets a value indicating that the business object engine will use property values + when possible to discover the BO structure. + + + + + Gets or sets the default path for root of PictureObject.ImageLocation path. + + + + + Initializes a new instance of the class. + + + + + Represents a report summary band. + + + + + This property is not relevant to this class. + + + + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Alignment" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Aligns left edges of the selected objects. + + + + + Aligns right edges of the selected objects. + + + + + Aligns centers of the selected objects. + + + + + Aligns top edges of the selected objects. + + + + + Aligns bottom edges of the selected objects. + + + + + Aligns middles of the selected objects. + + + + + Makes the selected objects the same width as the first object. + + + + + Makes the selected objects the same height as the first object. + + + + + Makes the selected objects the same size as the first object. + + + + + Centers the selected objects horizontally. + + + + + Centers the selected objects vertically. + + + + + Aligns the selected objects to the grid. + + + + + Adjusts the size of selected objects to the grid. + + + + + Spaces the selected objects horizontally. + + + + + Increases horizontal spacing between the selected objects. + + + + + Decreases horizontal spacing between the selected objects. + + + + + Removes horizontal spacing between the selected objects. + + + + + Spaces the selected objects vertically. + + + + + Increases vertical spacing between the selected objects. + + + + + Decreases vertical spacing between the selected objects. + + + + + Removes vertical spacing between the selected objects. + + + + + Holds the list of selected objects of type. Used by the + . + + + + + Gets a value indicating that report page is selected. + + + + + Gets a value indicating that report is selected. + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Border and Fill" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. + If you want to access all selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Gets a value indicating whether the object with simple border is selected. + + + When the object has a simple border, you cannot change individual border lines. + Example of such an object is the "Shape" and "Line" objects. + + + + + Gets a value indicating whether the border operations are enabled. + + + + + Gets a value indicating whether the fill operations are enabled. + + + + + Sets the solid fill color for the selected objects. + + Fill color. + + + + Sets the fill for the selected objects. + + Fill. + + + + Sets the style for the selected objects. + + Style name. + + + + Sets the hyperlink for the selected objects. + + Hyperlink. + Indicates whether to modify the object's appearance. + Indicates whether it is necessary to change designer's modified state. + + + + Sets the CanGrow flag for the selected objects. + + Flag value. + + + + Sets the CanShrink flag for the selected objects. + + Flag value. + + + + Sets the GrowToBottom flag for the selected objects. + + Flag value. + + + + Toggles the specified border line for the selected objects. + + Border line. + Toggle value. + + + + Sets the border color for the selected objects. + + Border color. + + + + Sets the border width for the selected objects. + + Border width. + + + + Sets the border style for the selected objects. + + Border style. + + + + Sets the border for the selected objects. + + Border. + + + + Invokes the fill editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the border editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the hyperlink editor for the selected objects. + + true if editor was closed by the OK button. + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Text" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Sets the font name for the selected objects. + + Font name. + + + + Sets the font size for the selected objects. + + Font size. + + + + Toggles the specified font style for the selected objects. + + Font style. + Toggle value. + + + + Sets the horizontal text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the vertical text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the text color for the selected objects. + + Text color. + + + + Sets the angle for the selected objects. + + Angle to set. + + + + Sets the AutoWidth property value for the selected objects. + + Value to set. + + + + Sets the WordWrap property value for the selected objects. + + Value to set. + + + + Sets the highlight conditions for the selected objects. + + Highlight conditions. + + + + Clears the text of the selected objects. + + + + + Invokes the highlight editor for the selected objects. + + true if editor was closed with the OK button. + + + + Represents a shape object. + + + Use the property to specify a shape. To set the width, style and color of the + shape's border, use the Border.Width, Border.Style and Border.Color properties. + + + + + + + + + + + Gets or sets a shape kind. + + + + + Gets or sets a shape curvature if is RoundRectangle. + + + 0 value means automatic curvature. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for smart tags. + + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + Smart tag is internally a ContextMenuStrip. + + + + + + Gets the underlying context menu. + + + + + Gets the report object that invokes this smart tag. + + + + + Gets the report designer. + + + + + Called when the menu item is clicked. + + + Override this method to define a reaction on the menu item click. + + + + + Creates the smart tag menu items. + + + Override this method to create the smart tag menu. + + + + + Displays a smart tag at the specified screen location. + + + Do not call this method directly. It is called automatically when click on smart tag button. + + Screen location. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the base class for the report style or the highlight condition. + + + + + Gets or sets a value determines that the border must be applied. + + + + + Gets or sets a value determines that the fill must be applied. + + + + + Gets or sets a value determines that the font must be applied. + + + + + Gets or sets a value determines that the text fill must be applied. + + + + + Gets or sets a border. + + + + + Gets or sets a fill. + + + + + Gets or sets a font. + + + + + Gets or sets a text fill. + + + + + Initializes a new instance of the class with default settings. + + + + + Assigns values from another source. + + Source to assign from. + + + + Deserializes the style. + + Reader object. + + This method is for internal use only. + + + + + Serializes the style. + + Writer object. + + This method is for internal use only. + + + + + Represents a subreport object. + + + To create a subreport in code, you should create the report page first and + connect it to the subreport using the property. + + The following example shows how to create a subreport object in code. + + // create the main report page + ReportPage reportPage = new ReportPage(); + reportPage.Name = "Page1"; + report.Pages.Add(reportPage); + // create report title band + reportPage.ReportTitle = new ReportTitleBand(); + reportPage.ReportTitle.Name = "ReportTitle1"; + reportPage.ReportTitle.Height = Units.Millimeters * 10; + // add subreport on it + SubreportObject subreport = new SubreportObject(); + subreport.Name = "Subreport1"; + subreport.Bounds = new RectangleF(0, 0, Units.Millimeters * 25, Units.Millimeters * 5); + reportPage.ReportTitle.Objects.Add(subreport); + // create subreport page + ReportPage subreportPage = new ReportPage(); + subreportPage.Name = "SubreportPage1"; + report.Pages.Add(subreportPage); + // connect the subreport to the subreport page + subreport.ReportPage = subreportPage; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a report page that contains the subreport bands and objects. + + + + + Gets or sets a value indicating that subreport must print its objects on a parent band to which it belongs. + + + Default behavior of the subreport is to print subreport objects they own separate bands. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a paragraph format for a new html rendering type, not for others rendering + + + + + Gets or sets a value that determines if the text object should handle its width automatically. + + + + + Gets or sets a value that indicates whether the font size should shrink to + display the longest text line without word wrap. + + + To limit the minimum size, use the property. + + + + + Gets or sets the minimum size of font (or minimum width ratio) if the + mode is on. + + + This property determines the minimum font size (in case the property is set to + FontSize), or the minimum font width ratio (if AutoShrink is set to FontWidth). + The default value is 0, that means no limits. + + + + + Gets or sets the horizontal alignment of a text in the TextObject object. + + + + + Gets or sets the vertical alignment of a text in the TextObject object. + + + + + Gets or sets the text angle, in degrees. + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + Gets or sets a value that indicates if lines are automatically word-wrapped. + + + + + Gets or sets a value that determines if the text object will underline each text line. + + + + + Gets or sets the font settings for this object. + + + + + Gets or sets a collection of TAB symbol positions, in pixels. + + Use collection methods to add or remove TAB positions. + + + + Gets or sets the fill color used to draw a text. + + + Default fill is . You may specify other fill types, for example: + + text1.TextFill = new HatchFill(Color.Black, Color.White, HatchStyle.Cross); + + Use the property to set the solid text color. + + + + + Gets or sets the text outline. + + + + + Gets or sets the text color in a simple manner. + + + This property can be used in a report script to change the text color of the object. It is + equivalent to: textObject1.TextFill = new SolidFill(color); + + + + + Gets or sets the string trimming options. + + + + + Gets or sets the width ratio of the font. + + + Default value is 1. To make a font wider, set a value grether than 1; to make a font narrower, + set a value less than 1. + + + + + Gets or sets the height of single text line, in pixels. + + + + + Gets or sets the offset of the first TAB symbol. + + + + + Gets or sets the width of TAB symbol, in pixels. + + + + + Gets or sets a value that indicates if text should be clipped inside the object's bounds. + + + + + Gets the collection of conditional highlight attributes. + + + Conditional highlight is used to change the visual appearance of the Text object + depending on some condition(s). For example, you may highlight negative values displayed by + the Text object with red color. To do this, add the highlight condition: + + TextObject text1; + HighlightCondition highlight = new HighlightCondition(); + highlight.Expression = "Value < 0"; + highlight.Fill = new SolidFill(Color.Red); + highlight.ApplyFill = true; + text1.Highlight.Add(highlight); + + + + + + Gets or sets a value that indicates if the text object should display its contents similar to the printout. + + + + + Forces justify for the last text line. + + + + + Allows handling html tags in the text. + + + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Indicates handling html tags in the text. + + To set the value use the TextRenderer property. + + + + The type of text render + + /// + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Gets or sets the paragraph offset, in pixels. For HtmlParagraph use ParagraphFormat.FirstLineIndent. + + + + + Cache for inline images + + + + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + Base class for text objects such as and . + + + This class implements common functionality of the text objects. + + + + + + + + + + + + + + Gets or sets a value indicating that the object's text may contain expressions. + + + + + Gets or sets the symbols that will be used to find expressions in the object's text. + + + The default property value is "[,]". As you can see, the open and close symbols are + separated by the comma. You may use another symbols, for example: "<,>" or "<%,%>". + You should use different open and close symbols. + + + + + Gets or sets the object's text. + + + Text may contain expressions and data items, for example: "Today is [Date]". + When report is running, all expressions are calculated and replaced with actual + values, so the text would be "Today is 01.01.2008". + + + + + Gets or sets padding within the text object. + + + + + Gets or sets a value indicating that zero values must be hidden. + + + + + Gets or sets a value that will be hidden. + + + Use this property to specify a value that you would like to hide. For example, specify "0" + if you want to hide zero values, or use property to do this. + You also may use this property to hide default DateTime values (such as 1/1/1900). + In this case you need to specify a string containing both date and time, for example: + "1/1/1900 0:00:00". + + FastReport uses the ToString conversion to compare the expression value with this property. + This conversion depends on regional settings selected in the Control Panel, so be aware of this + if you going to distribute your report worldwide. + + + + + + Gets or sets a string that will be displayed instead of a null value. + + + + + Gets or sets the formatter that will be used to format data in the Text object. + + + The default formatter does nothing, i.e. it shows expression values with no formatting. + To set another formatting, create a new formatter and assign it to this property. + If there are several expressions in the text, use the property + to format each expression value. + + This example shows how to set currency formatter. + + TextObject text1; + text1.Format = new CurrencyFormat(); + + + + + + Gets or sets a value that specifies how the report engine processes this text object. + + + Use this property to perform such task as "print a total value in the group header". Normally, + all total values are calculated in the footers (for example, in a group footer). If you try to print + a total value in the group header, you will get 0. If you set this property to + ProcessAt.DataFinished, FastReport will do the following: + + + print the object (with wrong value); + + + print all related data rows; + + + calculate the correct object's value and replace old (wrong) value with the new one. + + + + This option will not work if you set the to true. + + + + + + Gets the collection of formatters. + + + This property is used to set format for each expression contained in the text. + For example, if the TextObject contains two expressions: + Today is [Date]; Page [PageN] + you can use the following code to format these expressions separately: + + text1.Formats.Clear(); + text1.Formats.Add(new DateFormat()); + text1.Formats.Add(new NumberFormat()); + + + + + + Gets or sets a value that determines how to display duplicate values. + + + + + Gets a value of expression contained in the object's text. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObjectBase. + + + + + The "Format" menu item. + + + + + The "Allow Expressions" menu item. + + + + + The "Hide Zeros" menu item. + + + + + Initializes a new instance of the TextObjectBaseMenu + class with default settings. + + The reference to a report designer. + + + + The class introduces some menu items specific to the TextObject. + + + + + The "Clear" menu item. + + + + + The "Auto Width" menu item. + + + + + The "Word Wrap" menu item. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Represents a zip code object. + + + This object is mainly used in Russia to print postal index on envelopes. It complies with the + GOST R 51506-99. + + + + + + + + + + + + + + + + + + + + Gets or sets the width of a single zipcode segment, in pixels. + + + + + Gets or sets the height of a single zipcode segment, in pixels. + + + + + Gets or sets the spacing between origins of segments, in pixels. + + + + + Gets or sets the number of segments in zipcode. + + + + + Gets or sets a value indicating whether the reference markers should be drawn. + + + Reference markers are used by postal service to automatically read the zipcode. + + + + + Gets or sets a value indicating whether the segment grid should be drawn. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the zip code. + + + + + Gets or sets the zip code. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with the default settings. + + + + + Box cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Box storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Box client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FastCloud storage client. + + + + + Gets or sets the access token. + + + + + Gets the report URL that can be used to download report from cloud. + + + + + Initializes a new instance of the class. + + + + + + + + Gets the access token. + + The access token string. + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Gets the proxy settings. + + The proxy settings. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FTP storage client. + + + + + Gets or sets the FTP server. + + + + + Gets or sets the username. + + + + + Gets or sets the password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + + + + + + + Represents form of the FTP storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all cloud storage clients. + + + + + Gets or sets the filename. + + + + + Gets or set the information is user authorized or not. + + + + + Gets or sets the proxy settings of a client. + + + + + Initializes a new instance of the class. + + + + + Prepares report before it will be saved to cloud storage. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Creates a MemoryStream instance using a Stream instance. + + The Stream instance that should be converted. + The MemoryStream instance. + + + + Saves a memory stream to cloud. + + The memory stream that should be saved. + + + + Saves the report to cloud storage. + + The report template that should be saved. + The export filter that should export template before. + + + + + Saves the stream to cloud storage. + + The stream that contains report. + The filename in which stream will be saved in cloud. + + + + Represents form of Dropbox storage client. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + Shows a dialog window. + + Modal result. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl. + + + + + Represents the Application Info diabolg form. + + + + + Gets the access token. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Dropbox cloud storage client. + + + + + The base URL for files_put command. + + + + + Gets or sets the application access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Dropbox application access token. + + + + + + + Represents form of Dropbox storage client. + + + + + Initializes a new instance of the class. + + The Dropbox access token. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Gets the client Auth key. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Google Drive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Google Drive storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Google Drive client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the information about SkyDrive application. + + + + + Gets or sets the client name. + + + + + Gets or sets the client ID. + + + + + Gets or sets the client secret. + + + + + Initializes a new instance of the class. + + The client name. + The client ID. + The client secret. + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of SkyDrive storage client. + + + + + Initializes a new instance of the class. + + The SkyDrive client info. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SkyDrive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL string. + + + + Gets the access token. + + The access token value. + + + + Represents the base form for cloud storage web browsers. + + + + + Gets or sets the url string. + + + + + Initizlizes a new instance of the class. + + + + + Initializes a new instance of the class. + + The url string. + + + + Handle the web browser form shown event. + + The event sender. + The event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The web browser component. + + + + + Represents an HTTP request method. + + + + + GET request method. + + + + + POST request method. + + + + + PUT request method. + + + + + Static class that contains HTTP utilities. + + + + + Encodes the URL string. + + The URL string. + The encoded URL string. + + + + Encodes the dictionary with URL parameters. + + The dictionary with parameters. + The encoded string. + + + + Decodes the URL string. + + The URL string. + The decoded URL string. + + + + Represents the consumer. + + + + + Gets the consumer key. + + + + + Gest the consumer secret. + + + + + Gets the consumer's signature method. + + + + + Initializes a new instance of the class. + + The consumer key. + The consumer secret. + + + + Represents parser for parse OAuth responses. + + + + + Parses token information in stream. + + The stream for parse. + The OAuth token. + + + + Parses token information in stream for SkyDrive. + + The stream for parse. + The SkyDrive access token. + + + + Parses token information in stream for Google Drive. + + The stream for parse. + The Google Drive access token. + + + + Parses token information in stream for FastCloud. + + The stream for parse. + The FastCloud access token. + + + + Represents the service provider. + + + + + Gets the request token URL. + + + + + Gets the user authorization URL. + + + + + Gets the callback URL. + + + + + Gets the access token URL. + + + + + Initializes a new instance of the class with a specified parameters. + + The request token URL. + The user authorization URL. + The callback URL. + The access token URL. + + + + Represents the OAuth token credentials. + + + + + Gets the token key. + + + + + Gets the token secret. + + + + + Initializes a new instance of the class. + + The token key. + The token secret. + + + + API for OAuth protocol. + + + + + Builds signed URL. + + The base token URL. + The HTTP method. + The consumer context. + The request token. + Signed URL. + + + + Represents the signature method. + + + + + Signature method PLAINTEXT. + + + + + Signature method HMAC-SHA1. + + + + + Signature method RSA-SHA1. + + + + + Represents proxy settings of the cloud storage. + + + + + Gets or sets the type of proxy. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + The type of proxy. + The proxy server. + The port number of server. + The username. + The user's password. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Provides utils for the web request. + + + + + Sets proxy settings for web request. + + The web request. + The cloud proxy settings. + + + + Represents the parameter of http request. + + + + + Gets the name of a request parameter. + + + + + Gets the value of a request parameter. + + + + + Initializes a naw instance of the class with a specified parameters. + + The name of a request parameter. + The value of a request paramter. + + + + Comparer class for comparing request parameters. + + + + + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Represents the crossview object that is used to print cube slice or slicegrid. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a value indicating whether to show a X Axis fields Caption. + + + + + Gets or sets a value indicating whether to show a Y Axis fields Caption. + + + + + Gets or sets a matrix style. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a cube source. + + + + + Gets the object that holds data of Cube + + + See the class for more details. + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents interface of the source for object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The descriptor that is used to describe one CrossView data cell. + + + The class is used to define one data cell of the CrossView. + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the CrossView data cells is stored + in the CrossViewObject.Data.Cells property. + + + + + Gets a value indicating that this is the "GrandTotal" element on X axis. + + + + + Gets a value indicating that this is the "GrandTotal" element on Y axis. + + + + + Gets a value indicating that this is the "Total" element on X axis. + + + + + Gets a value indicating that this is the "Total" element on Y axis. + + + + + Gets the name of field in X axis. + + + + + Gets the name of field in Y axis. + + + + + Gets the name of measure in cube. + + + + + Gets the x coordinate. + + + + + Gets the y coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name in X axis. + The Field Name in Y axis. + The Measure Name. + Indicates the "XTotal" element. + Indicates the "YTotal" element. + Indicates the "XGrandTotal" element. + Indicates the "YGrandTotal" element. + + + + Initializes a new instance of the class + + + + + Represents a collection of CrossView data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the CrossView descriptors. + + + This class contains three collections of descriptors such as , + and . Descriptors are filled from FastCube Slice. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + CrossViewObject crossView; + // change the fill color of the first matrix cell + crossView.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of CrossView header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + The descriptor that is used to describe one element of the CrossView header. + + + The class is used to define one header element of the CrossView + (either the column element or row element). + To set visual appearance of the element, use the + property. + The collection of descriptors used to represent the CrossView header is stored + in the CrossViewObject.Data.Columns and CrossViewObject.Data.Rows properties. + + + + + Gets a value indicating that this is the "GrandTotal" element. + + + + + Gets a value indicating that this is the "Total" element. + + + + + Gets a value indicating that this is the "Measure" element. + + + + + Gets the name of field in cube. + + + + + Gets the name of measure in cube. + + + + + Gets the cell coordinate. + + + + + Gets the size in cell coordinate. + + + + + Gets the level coordinate. + + + + + Gets the size in level coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name. + The Measure Name. + Indicates the "Total" element. + Indicates the "GrandTotal" element. + Indicates the "Measure" element. + + + + Initializes a new instance of the class + + + + + Represents a Windows CheckBox. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal CheckBox. + + + + + Gets or sets the value that determines the appearance of a CheckBox control. + Wraps the property. + + + + + Gets or sets the horizontal and vertical alignment of the check mark on a CheckBox control. + Wraps the property. + + + + + Gets or set a value indicating whether the CheckBox is in the checked state. + Wraps the property. + + + + + Gets or sets the state of the CheckBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the CheckBoxControl class with default settings. + + + + + Represents a Windows combo box control. + Wraps the control. + + + + + + + + + + + + + + Occurs after the selection has been changed. + Wraps the event. + + + + + Occurs each time an owner-drawn ComboBox item needs to be drawn and + when the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes. + Wraps the event. + + + + + Gets an internal ComboBox. + + + + + Gets or sets a value indicating whether your code or the operating system will handle drawing of elements in the list. + Wraps the property. + + + + + Gets or sets a value specifying the style of the combo box. + Wraps the property. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + Wraps the property. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets the height of an item in the combo box. + Wraps the property. + + + + + Gets a collection of the items contained in this ComboBox. + Wraps the property. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the combo box are sorted. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the index specifying the currently selected item. + Wraps the property. + + + + + Gets or sets currently selected item in the ComboBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Initializes a new instance of the ComboBoxControl class with default settings. + + + + + Implements base behavior of button controls. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value that indicates whether the control resizes based on its contents. + Wraps the property. + + + + + Gets or sets the image that is displayed on a button control. + Wraps the property. + + + + + Gets or sets the alignment of the image on the button control. + Wraps the property. + + + + + Gets or sets the alignment of the text on the button control. + Wraps the property. + + + + + Gets or sets the position of text and image relative to each other. + Wraps the property. + + + + + + + + + + + Represents a Windows button control. + Wraps the control. + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal Button. + + + + + Gets or sets a value that is returned to the parent form when the button is clicked. + Wraps the property. + + + + + + + + Initializes a new instance of the ButtonControl class with default settings. + + + + + Displays a ListBox in which a check box is displayed to the left of each item. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Occurs after item's check state was changed. + Wraps the event. + + + + + Gets an internal CheckedListBox. + + + + + Gets or sets a value indicating whether the check box should be toggled when an item is selected. + Wraps the property. + + + + + Collection of checked indexes in this CheckedListBox. + Wraps the property. + + + + + Collection of checked items in this CheckedListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ItemCheck event and the script code connected to the ItemCheckEvent. + + Event data. + + + + Initializes a new instance of the CheckedListBoxControl class with default settings. + + + + + Displays a hierarchical collection of labeled items, each represented by a TreeNode. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs after the tree node is selected. + Wraps the event. + + + + + Gets an internal TreeView. + + + + + Gets or sets a value indicating whether check boxes are displayed next to the tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between the tree nodes that are at the root of the tree view. + Wraps the property. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + Wraps the property. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + Wraps the property. + + + + + Gets or sets the tree node that is currently selected in the tree view control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + This method fires the AfterSelect event and the script code connected to the AfterSelectEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Windows text box control. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal TextBox. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + Wraps the property. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box control types a TAB character in the control instead of moving the focus to the next control in the tab order. + Wraps the property. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + Wraps the property. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + Wraps the property. + + + + + Gets or sets a value indicating whether this is a multiline TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + Wraps the property. + + + + + Gets or sets which scroll bars should appear in a multiline TextBox control. + Wraps the property. + + + + + Gets or sets how text is aligned in a TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + Wraps the property. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the TextBoxControl class with default settings. + + + + + Enables the user to select a single option from a group of choices when paired with other RadioButton controls. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal RadioButton. + + + + + Gets or sets the location of the check box portion of the RadioButton. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is checked. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the RadioButtonControl class with default settings. + + + + + Represents a Windows picture box control for displaying an image. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal PictureBox. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + Gets or sets the image that the PictureBox displays. + Wraps the property. + + + + + Indicates how the image is displayed. + Wraps the property. + + + + + + + + Initializes a new instance of the PictureBoxControl class with default settings. + + + + + Base class for controls that may contain child controls. + + + + + + + + + + + + + + + + + Gets the collection of child controls. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the ParentControl class with default settings. + + + + + Used to group collections of controls. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + Gets an internal Panel. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + + + + + + + Initializes a new instance of the PanelControl class with default settings. + + + + + Represents a Windows spin box (also known as an up-down control) that displays numeric values. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs when the Value property has been changed in some way. + Wraps the event. + + + + + Gets an internal NumericUpDown. + + + + + Gets or sets the number of decimal places to display in the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether the up-down control should display the value it contains in hexadecimal format. + Wraps the property. + + + + + Gets or sets the value to increment or decrement the up-down control when the up or down buttons are clicked. + Wraps the property. + + + + + Gets or sets the maximum value for the up-down control. + Wraps the property. + + + + + Gets or sets the minimum value for the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the up-down control when appropriate. + Wraps the property. + + + + + Gets or sets the value assigned to the up-down control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the NumericUpDownControl class with default settings. + + + + + Represents a Windows control that enables the user to select a date using a visual monthly calendar display. + Wraps the control. + + + + + + + + + + + + + + + + + Occurs when the date selected in the MonthCalendar changes. + Wraps the event. + + + + + Gets an internal MonthCalendar. + + + + + Gets or sets the number of columns and rows of months displayed. + Wraps the property. + + + + + Gets or sets the first day of the week as displayed in the month calendar. + Wraps the property. + + + + + Gets or sets the maximum allowable date. + Wraps the property. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + Wraps the property. + + + + + Gets or sets the minimum allowable date. + Wraps the property. + + + + + Gets or sets a value indicating whether the date represented by the TodayDate property is displayed at the bottom of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether today's date is circled. + Wraps the property. + + + + + Gets or sets a value indicating whether the month calendar control displays week numbers (1-52) to the left of each row of days. + Wraps the property. + + + + + Gets or sets the value that is used by MonthCalendar as today's date. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which annual days are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to bold. + Wraps the property. + + + + + Gets or sets the end date of the selected range of dates. + Wraps the property. + + + + + Gets or sets the selected range of dates for a month calendar control. + Wraps the property. + + + + + Gets or sets the start date of the selected range of dates. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the DateChanged event and the script code connected to the DateChangedEvent. + + Event data. + + + + Initializes a new instance of the MonthCalendarControl class with default settings. + + + + + Uses a mask to distinguish between proper and improper user input. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal MaskedTextBox. + + + + + Gets or sets the input mask to use at run time. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to reenter literal values. + Wraps the property. + + + + + Gets or sets how text is aligned in a masked text box control. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the MaskedTextBoxControl class with default settings. + + + + + Represents a Windows list view control, which displays a collection of items that can be displayed using one of four different views. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the checked state of an item changes. + Wraps the event. + + + + + Occurs when the index of the selected item in the list view control changes. + Wraps the event. + + + + + Gets an internal ListView. + + + + + Gets or sets a value indicating whether a check box appears next to each item in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether multiple items can be selected. + Wraps the property. + + + + + Gets or sets a value indicating whether items are displayed in groups. + Wraps the property. + + + + + Gets or sets how items are displayed in the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the indexes of the currently checked items in the control. + Wraps the property. + + + + + Gets the currently checked items in the control. + Wraps the property. + + + + + Gets the collection of all column headers that appear in the control. + Wraps the property. + + + + + Gets the collection of ListViewGroup objects assigned to the control. + Wraps the property. + + + + + Gets a collection containing all items in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as large icons in the control. + Wraps the property. + + + + + Gets the indexes of the selected items in the control. + Wraps the property. + + + + + Gets the items that are selected in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as small icons in the control. + Wraps the property. + + + + + + + + + + + + + + This method fires the ItemChecked event and the script code connected to the ItemCheckedEvent. + + Event data. + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + Initializes a new instance of the ListViewControl class with default settings. + + + + + Base class for list box controls such as ListBoxControl, CheckedListBoxControl. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the SelectedIndex property has changed. + Wraps the event. + + + + + Occurs when an owner-drawn ListBox is created and the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ListBox changes. + Wraps the event. + + + + + Gets or sets the width of columns in a multicolumn ListBox. + Wraps the property. + + + + + Gets or sets the drawing mode for the control. + Wraps the property. + + + + + Gets or sets the height of an item in the ListBox. + Wraps the property. + + + + + Gets the items of the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox supports multiple columns. + Wraps the property. + + + + + Gets or sets the method in which items are selected in the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the ListBox are sorted alphabetically. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox can recognize and expand tab characters when drawing its strings. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBox. + Wraps the property. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets the currently selected item in the ListBox. + Wraps the property. + + + + + Gets a collection containing the currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Represents a standard Windows label. + Wraps the control. + + + + + + + + Gets an internal Label. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. + Wraps the property. + + + + + Gets or sets the alignment of text in the label. + Wraps the property. + + + + + + + + Initializes a new instance of the LabelControl class with default settings. + + + + + Displays data in a customizable grid. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal DataGridView. + + + + + Gets or sets the data source that the DataGridView is displaying data for. + + + + + Gets or sets a value indicating whether the option to add rows is displayed to the user. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to delete rows from the DataGridView. + Wraps the property. + + + + + Gets or sets the default cell style applied to odd-numbered rows of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating how column widths are determined. + Wraps the property. + + + + + Gets or sets a value indicating how row heights are determined. + Wraps the property. + + + + + Gets or sets the background color of the DataGridView. + Wraps the property. + + + + + Gets or sets the border style for the DataGridView. + Wraps the property. + + + + + Gets the cell border style for the DataGridView. + Wraps the property. + + + + + Gets the border style applied to the column headers. + Wraps the property. + + + + + Gets or sets the default column header style. + Wraps the property. + + + + + Gets or sets the height, in pixels, of the column headers row. + Wraps the property. + + + + + Gets or sets a value indicating whether the height of the column headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the column header row is displayed. + Wraps the property. + + + + + Gets the collection of objects that represents the grid columns. + + + + + Gets or sets the default cell style to be applied to the cells in the DataGridView if no other cell style properties are set. + Wraps the property. + + + + + Gets or sets the color of the grid lines separating the cells of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the DataGridView at a time. + Wraps the property. + + + + + Gets a value indicating whether the user can edit the cells of the DataGridView control. + Wraps the property. + + + + + Gets or sets the border style of the row header cells. + Wraps the property. + + + + + Gets or sets the default style applied to the row header cells. + Wraps the property. + + + + + Gets or sets a value indicating whether the column that contains row headers is displayed. + Wraps the property. + + + + + Gets or sets the width, in pixels, of the column that contains the row headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the width of the row headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets the default style applied to the row cells of the DataGridView. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display for the DataGridView control. + Wraps the property. + + + + + Gets or sets a value indicating how the cells of the DataGridView can be selected. + Wraps the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the GridControl class with default settings. + + + + + Represents the special kind of report page that wraps the + and used to display dialog forms. + + + Use the property to add/remove controls to/from a dialog form. + If you set the Visible property to false, this dialog form will be + skippen when you run a report. + + This example shows how to create a dialog form with one button in code. + + DialogPage form = new DialogPage(); + // set the width and height in pixels + form.Width = 200; + form.Height = 200; + form.Name = "Form1"; + // create a button + ButtonControl button = new ButtonControl(); + button.Location = new Point(20, 20); + button.Size = new Size(75, 25); + button.Text = "The button"; + // add the button to the form + form.Controls.Add(button); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs before a form is displayed for the first time. + Wraps the event. + + + + + Occurs after the form is closed. + Wraps the event. + + + + + Occurs before the form is closed. + Wraps the event. + + + + + Occurs whenever the form is first displayed. + Wraps the event. + + + + + Occurs when the form is resized. + Wraps the event. + + + + + Occurs when the form is redrawn. + Wraps the event. + + + + + Gets an internal Form. + + + + + Gets or sets an active state in Web application. + + + + + Gets or sets the button on the form that is clicked when the user presses the ENTER key. + Wraps the property. + + + + + Gets or sets the button control that is clicked when the user presses the ESC key. + Wraps the property. + + + + + Gets the auto scale dimensions for this form. + + + + + Gets or sets the background color for the form. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the border style of the form. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the text associated with this form. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the collection of controls contained within the form. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shows the form as a modal dialog box with the currently active window set as its owner. + Wraps the method. + + One of the DialogResult values. + + + + This method fires the Load event and the script code connected to the LoadEvent. + + Event data. + + + + This method fires the FormClosed event and the script code connected to the FormClosedEvent. + + Event data. + + + + This method fires the FormClosing event and the script code connected to the FormClosingEvent. + + Event data. + + + + This method fires the Shown event and the script code connected to the ShownEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Initializes a new instance of the DialogPage class. + + + + + Base class for all dialog controls such as ButtonControl, TextBoxControl. + + + + + Determines whether is necessary to serialize the BackColor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Cursor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Font property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the ForeColor property. + + true if serialization is necessary. + + + + + + + Draws the selection point. + + Graphics object to draw on. + object. + object. + Left coordinate. + Top coordinate. + + + + + + + + + + Creates the empty event handler for the ClickEvent event in the report's script. + + true if event handler was created successfully. + + + + + + + Occurs when the control is clicked. + Wraps the event. + + + + + Occurs when the control is double-clicked. + Wraps the event. + + + + + Occurs when the control is entered. + Wraps the event. + + + + + Occurs when the input focus leaves the control. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is released while the control has focus. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is pressed. + Wraps the event. + + + + + Occurs when the mouse pointer is moved over the control. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is released. + Wraps the event. + + + + + Occurs when the mouse pointer enters the control. + Wraps the event. + + + + + Occurs when the mouse pointer leaves the control. + Wraps the event. + + + + + Occurs when the control is resized. + Wraps the event. + + + + + Occurs when the Text property value changes. + Wraps the event. + + + + + Occurs when the control is redrawn. + Wraps the event. + + + + + Gets an internal Control. + + + + + Gets or sets the background color for the control. + Wraps the property. + + + + + Gets or sets the cursor that is displayed when the mouse pointer is over the control. + Wraps the property. + + + + + Gets or sets a value indicating whether the control can respond to user interaction. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the foreground color of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the tab order of the control within its container. + Wraps the property. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + Wraps the property. + + + + + Gets or sets the text associated with this control. + Wraps the property. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is displayed. + Wraps the property. + + + + + Gets or sets a property that returns actual data contained in a control. This value is used + in the "Data" window. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + Called when the control's Enabled state changed. + + + + + Attaches Control events to its event handlers. + + + Override this method if your custom control has own events. + + See the example of AttachEvents implementation used in the CheckBoxControl: + + protected override void AttachEvents() + { + base.AttachEvents(); + CheckBox.CheckedChanged += new EventHandler(CheckBox_CheckedChanged); + } + + private void CheckBox_CheckedChanged(object sender, EventArgs e) + { + if (CheckedChanged != null) + CheckedChanged(this, e); + InvokeEvent(CheckedChangedEvent, e); + } + + + + + + Detaches Control events from its event handlers. + + + Override this method if your custom control has own events. In this method, you should + detach control's events that were attached in the method. + + See the example of DetachEvents implementation used in the CheckBoxControl: + + protected override void DetachEvents() + { + base.DetachEvents(); + CheckBox.CheckedChanged -= new EventHandler(CheckBox_CheckedChanged); + } + + + + + + + + + + + + Initializes the control before display it in the dialog form. + + + This method is called when report is run. + + + + + Finalizes the control after its parent form is closed. + + + This method is called when report is run. + + + + + Sets input focus to the control. + + + + + Conceals the control from the user. + + + + + Displays the control to the user. + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + This method fires the DoubleClick event and the script code connected to the DoubleClickEvent. + + Event data. + + + + This method fires the Enter event and the script code connected to the EnterEvent. + + Event data. + + + + This method fires the Leave event and the script code connected to the LeaveEvent. + + Event data. + + + + This method fires the KeyDown event and the script code connected to the KeyDownEvent. + + Event data. + + + + This method fires the KeyPress event and the script code connected to the KeyPressEvent. + + Event data. + + + + This method fires the KeyUp event and the script code connected to the KeyUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the TextChanged event and the script code connected to the TextChangedEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Base class for all dialog components. + + + + + + + + + + + + + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets the height and width of the control. + + + + + + + + Initializes a new instance of the DialogComponentBase class with default settings. + + + + + Represents the control with two lists (available items and selected items). + + + The control allows to select one or several items and then filter the datasource which it is connected to. + All you need is to setup the DataColumn property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value indicating that the items must be sorted. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the DataSelectorControl class with default settings. + + + + + Represents a Windows control that allows the user to select a date and a time and to display the date and time with a specified format. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs after the date has been changed. + Wraps the event. + + + + + Gets an internal DateTimePicker. + + + + + Gets or sets a value indicating whether the Value property has been set with a valid date/time value and the displayed value is able to be updated. + Wraps the property. + + + + + Gets or sets the custom date/time format string. + Wraps the property. + + + + + Gets or sets the alignment of the drop-down calendar on the DateTimePicker control. + Wraps the property. + + + + + Gets or sets the format of the date and time displayed in the control. + Wraps the property. + + + + + Gets or sets the maximum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets the minimum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Wraps the property. + + + + + Gets or sets a value indicating whether a spin button control (also known as an up-down control) is used to adjust the date/time value. + Wraps the property. + + + + + Gets or sets the date/time value assigned to the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the DateTimePickerControl class with default settings. + + + + + Represents the 's column. + Wraps the class. + + + + + Gets or sets the mode by which the column automatically adjusts its width. + Wraps the property. + + + + + Gets or sets the data column attached to this column. + + + + + Gets or sets the caption text on the column's header cell. + Wraps the property. + + + + + Gets or sets the column's default cell style. + Wraps the property. + + + + + Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control. + Wraps the property. + + + + + Gets or sets the current width of the column. + Wraps the property. + + + + + Gets or sets a value indicating whether the column is visible. + Wraps the property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the GridControlColumn class with default settings. + + + + + Represents the collection of GridControl columns. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + + + + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows rich text box control. + Wraps the control. + + + + + Gets an internal RichTextBox. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display in the RichTextBox control. + Wraps the property. + + + + + + + + Loads rtf from a file. + + File to load from. + + + + Loads rtf from a stream using specified stream type. + + Stream to load from. + Type of a stream. + + + + Loads rtf from a file using specified stream type. + + File to load from. + Type of a stream. + + + + Initializes a new instance of the RichTextBoxControl class with default settings. + + + + + Represents a Windows control that displays a frame around a group of controls with an optional caption. + Wraps the control. + + + + + Gets an internal GroupBox. + + + + + Initializes a new instance of the GroupBoxControl class with default settings. + + + + + The base class for all controls that support the data filtering feature. + + + The data filtering allows you to bind the control to a . + It will be automatically filled by data from the datasource's column. When you select/check + item(s) and close the dialog with OK button, it will filter the datasource according to your selection. + You can set the filter operation using the property. + + + + + Occurs after the control is filled with data. + + + + + Gets or sets a value that determines whether to fill the control with data automatically. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a value that determines whether to filter the datasource automatically + when you close the dialog by OK button. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a data column name that will be used to fill this control with data. + + + This property must contain both datasource name and column name, for example: + Orders.OrderID. You also may use relations, for example: Orders.Customers.CompanyName. + + + + + Gets or sets name of report parameter which value will be set to value contained + in this control when you close the dialog. + + + + + Gets or sets a value that specifies the filter operation. + + + + + Gets or sets the detail control used in cascaded filtering. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Fills the control with data. + + The data source. + The data column. + Here is the example of FillData method implementation: + + protected override void FillData(DataSourceBase dataSource, Column column) + { + Items.Clear(); + dataSource.First(); + while (dataSource.HasMoreRows) + { + Items.Add(dataSource[column].ToString()); + dataSource.Next(); + } + } + + + + + + Returns list of values that can be used to fill control with data. + + The data source. + The data column. + List of string values. + + This method is used by the FillData method to fill list-type controls + such as ListBox with data. The result list contains distinct values. + + + + + Returns value entered in the control. + + The value of type supported by this control. + + This method must return a value entered by the user. For example, TextBox + control must return its Text property value. If this control supports multi-selection, + return selected values in an array, for example string[] array for CheckedListBox. + + + + + Handles the cascaded filter internal logic. + + + This method should be called in your custom dialog control that supports data filtering. + Call it when the value in your control is changed. + + + + + + + + + + + + + + Fills the control with data from a datasource. + + + Call this method if you set the property to false. + + + + + Fills the control with data from a datasource. + + Parent data source + + Call this method if you need to implement cascaded filter. In the parentData parameter, + pass the parent data source that will be used to set up master-detail relationship with + data source in this control. + + + + + Fills the control with data from a datasource. + + Parent control + + Call this method if you need to implement cascaded filter. In the parentControl parameter, + pass the parent control which performs filtering on a parent data source. + + + + + Applies the filter to a datasource. + + + Call this method if you set the property to false. + + + + + Resets the filter set by this control. + + + + + This method fires the DataLoaded event and the script code connected to the DataLoadedEvent. + + Event data. + + + + Initializes a new instance of the DataFilterBaseControl class with default settings. + + + + + Represents the collection of dialog components. + + + + + Gets or sets a component. + + The index of a component in this collection. + The component with specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows control to display a list of items. + Wraps the control. + + + + + Gets an internal ListBox. + + + + + + + + + + + Initializes a new instance of the ListBoxControl class with default settings. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all forms. + + + + + The event occurs on form's dpi change. + + + + + Convenience method returns an image with specified index for this form's dpi. + + Image index. + The image. + + + + Convenience method returns an image with specified name for this form's dpi. + + Image resource name. + The image. + + + + Convenience method returns an imagelist for this form's dpi. + + The imagelist. + + + + Localizes the dialog controls. + + + Use this method to set control's captions specific to the current locale. + + + + + + + + Update controls on dpi change. + + This method is called when the form's dpi is changed. Write custom logic to update + some controls (such as ListBox.ItemHeight) here. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Editor for rearrangement Exports Menu elements + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The form for message box with text editor + + + + + Gets or sets text + + + + + Defualt constructor + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base form for all export options dialog forms. + + + + + Represents the "Open after export" button visibility. + + + + + Gets a reference to the currently editing export filter. + + + + + + + + + + + Called when editing is done. + + + Override this method to pass edited values from the dialog controls to the export filter. + + See the example of this method implementation that is used in the ImageExport. + + protected override void Done() + { + base.Done(); + ImageExport imageExport = Export as ImageExport; + imageExport.ImageFormat = (ImageExportFormat)cbxImageFormat.SelectedIndex; + imageExport.Resolution = (int)udResolution.Value; + imageExport.JpegQuality = (int)udQuality.Value; + imageExport.SeparateFiles = cbSeparateFiles.Checked; + } + + + + + + + + + Initializes controls with initial values. + + The export filter to edit. + + Override this method to pass values from the export filter to the dialog controls. + + See the example of this method implementation that is used in the ImageExport. + + public override void Init(ExportBase export) + { + base.Init(export); + ImageExport imageExport = Export as ImageExport; + cbxImageFormat.SelectedIndex = (int)imageExport.ImageFormat; + udResolution.Value = imageExport.Resolution; + udQuality.Value = imageExport.JpegQuality; + cbSeparateFiles.Checked = imageExport.SeparateFiles; + } + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + "Page Range" groupbox. + + + + + "Page Numbers" label. + + + + + "Page Numbers" textbox. + + + + + "Page Numbers" radiobutton. + + + + + "Current Page" radiobutton. + + + + + "All Pages" radiobutton. + + + + + PageControl. + + + + + Pages panel. + + + + + "Open after export" checkbox. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Splash Screen showing during loading designer + + + + + Initializes a new instance of the class. + + + + + Filters mouse events. + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Welcome window displayed on the designer startup + + + + + Initializes a new instance of the class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The "Advanced Connection Properties" form. + + + + + Gets or sets the connection string builder which contains the connection properties. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the FastReport exception form. + + + + + + + + Creates a new instance ofthe form. + + The exception object which data to display in the form. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + Gets Aborted state + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for barcode editor + + + + + Generated text for barcode object + + + + + Initializes a new instance of the class. + + Text data for parsing + Report object for nodes + Brackets symbols + Editor for rich barcode? + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all dialog forms with two buttons, OK and Cancel. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The OK button. + + + + + The Cancel button. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for designer plugin's options page. + + + Use this class if you develop a designer plugin that may be configured in the + "View|Options..." menu. You need to implement an options page for your + plugin and return it in the IDesignerPlugin.GetOptionsPage method. + + + + + The TabControl control. + + + + + The TabPage control. + + + + + Initializes controls on this options page. + + + Override this method to fill options page's controls with initial values. + + + + + Finalizes the options page. + + The dialog result. + + Override this method to pass controls' values to the plugin. Do this if result is + DialogResult.OK. + + + + + Updates images used in the control. + + + + + Initializes a new instance of the DesignerOptionsPage class with default settings. + + + Usually you need to define another contructor which takes one parameter - the plugin. + + This example shows how to define own constructor which takes a plugin: + + public DialogPageOptions(DialogPageDesigner pd) : base() + { + FPageDesigner = pd; + InitializeComponent(); + } + + + + + + read current token, returns next + + + + + + + + read current token, returns next + + + + + + + + ignore current token, read from next, returns current i.e not next + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the report engine. + + + + + Shows band at the current position. + + Band to show. + + After the band is shown, the current position is advanced by the band's height. + + + + + Gets or sets the current X offset. + + + This property specifies the X offset where the current band will be printed. + + + + + Gets or sets the current Y offset. + + + This property specifies the Y offset where the current band will be printed. + After the band is printed, this value is incremented by the band's height. + + + + + Gets the index of currently printing column in the multi-column report. + + + This value is 0-based. + + + + + Gets or sets index of current prepared page the current band will print on. + + + Note: the page with specified index must exists. This property is used to print side-by-side + subreports and Table object. Usually you don't need to use it. + + + + + Gets the current page width, in pixels. + + + This property returns a paper width minus left and right margins. + + + + + Gets the current page height, in pixels. + + + This property returns a paper height minus top and bottom margins. + + + + + Gets the value indicating whether the page has unlimited height. + + + + + Gets the value indicating whether the page has unlimited width. + + + + + Gets or sets the current height of unlimited page. + + + + + Gets or sets the current width of unlimited page. + + + + + Gets the height of page footer (including all its child bands), in pixels. + + + + + Gets the height of column footer (including all its child bands), in pixels. + + + + + Gets the free space on the current page, in pixels. + + + This property returns the page height minus footers height minus CurY value. + + + + + Gets the current prepared page number. + + + This value is 1-based. The initial value (usually 1) is set in the Report.InitialPageNumber property. + + + + + Gets the number of total pages in a prepared report. + + + To use this property, your report must be two-pass. Set the + property to true. + + + + + Gets the string that represents the current page number. + + + This property returns a locale-based value, for example: "Page 1". + + + + + Gets the string that represents the "Page N of M" number. + + + This property returns a locale-based value, for example: "Page 1 of 10". + + + + + Gets the current row number of currently printing band. + + + This value is 1-based. It resets to 1 on each new group. + + + + + Gets the running current row number of currently printing band. + + + This value is 1-based. + + + + + Gets the date of report start. + + + + + Gets a value indicating whether the report is executing the final pass. + + + This property is true if report is one-pass, or if report is two-pass and + the second pass is executing. + + + + + Gets a value indicating whether the report is executing the first pass. + + + This property is true if report is one-pass, or if report is two-pass and + the first pass is executing. + + + + + Gets a level of hierarchy when printing hierarchical bands. + + + The first level of hierarchy has 0 index. + + + + + Gets the row number like "1.2.1" when printing hierarchical bands. + + + + + Returns true of keeping is enabled + + + + + Returns keeping position + + + + + Starts the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Ends the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Gets xml containing outline nodes. + + + + + Creates a new outline element with specified text. + + Text of element. + + After you call this method, the element will be added to the current position in the outline. + The next call to AddOutline will add new element as a child of this element. + To shift the position, use the or + OutlineUp methods. + + + + + Sets the current outline position to root. + + + + + Shifts the current outline position one level up. + + + + + Creates a new bookmark with specified name at current position. + + + + + + Gets a page number for the specified bookmark name. + + Name of bookmark. + Page number if bookmark with such name found; 0 otherwise. + + Use this method to print the table of contents in your report. Normally it can be done + using bookmarks. + + You must set your report to double pass to use this method. + + + + + + Resets the logical page numbers. + + + + + Called when the number of pages increased during DoublePass + + + + + Starts a new page. + + + + + Starts a new column. + + + + + Processes the specified text object which ProcessAt property is set to Custom. + + The text object to process. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents a linear gauge. + + + + + + + + + + + Gets or sets the value that specifies inverted gauge or not. + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a linear pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Initializes a new instance of the + + The parent gauge object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a linear gauge. + + + + + + + + + + + + + + + + + Returns centr of the gauge + + + + + The number of radians in one degree + + + + + Gets or sets the Radial Gauge type + + + + + Gats or sets the Radial Gauge position. Doesn't work for Full Radial Gauge. + + + + + Gets or sets the semicircles offset + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Radial Gauge types + + + + + Full sized gauge + + + + + Half of the radial gauge + + + + + Quarter of the radial gauge + + + + + Radial Gauge position types + + + + + None + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + Represents a linear pointer. + + + + + Gets or sets the value, indicating that gradient should be rotated automatically + + + + + Initializes a new instance of the + + The parent gauge object. + The scale object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple progress gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Gets scale. Should be disabled for SimpleProgressGauge + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Gets or sets the number of fractional digits + + + + + + + + + + + + + + SimpleProgressGauge pointer types + + + + + Full sized pointer + + + + + Small pointer + + + + + + + + Gets or sets the pointer type + + + + + Gets or sets the small pointer width ratio + + + + + + + + + + + + + + Represents a simple gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a simple pointer. + + + + + Gets o sets the Left offset of gauge pointer. + + + + + Gets o sets the Top offset of gauge pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Gets or sets the pointer ratio. + + + + + Gets or sets the pointer horizontal offset (cm). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple scale. + + + + + Gets or sets the first subscale (top or left). + + + + + Gets or sets the second subscale (right or bottom). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represent the subscale of simple scale. + + + + + Gets or sets a value that specifies enabled subscale or not. + + + + + Gets or sets a value that specifies show caption or not. + + + + + Initializes a new instance of the class. + + + + + Copies the contents of another SimpleSubScale. + + The SimpleSubScale instance to copy the contents from. + + + + Serializes the SimpleSubScale. + + Writer object. + SimpleSubScale property name. + Another SimpleSubScale to compare with. + + This method is for internal use only. + + + + + Represents a gauge object. + + + + + + + + + + + + + + Gets or sets the minimal value of gauge. + + + + + Gets or sets the maximal value of gauge. + + + + + Gets or sets the currenta value of gauge. + + + + + Gets or sets scale of gauge. + + + + + Gets or sets pointer of gauge. + + + + + Gets or sets gauge label. + + + + + Gets or sets an expression that determines the value of gauge object. + + + + + Gets a value that specifies is gauge vertical or not. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + Scale of gauge. + Pointer of gauge. + + + + + + + + + + + + + Draws the gauge. + + Draw event arguments. + + + + + + + Clone Gauge Object + + clone of this object + + + + Represents a label of a gauge. + + + + + Gets or sets the label text + + + + + Gets or sets the label font + + + + + Gets or sets the label color + + + + + Gets or sets the label parent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Label text + Label font + Label color + Label parent + + + + Copies the contents of another GaugeLabel. + + The GaugeLabel instance to copy the contents from. + + + + Draws the gauge label. + + Draw event arguments. + + + + Serializes the gauge label. + + Writer object. + Gauge label property name. + Another GaugeLabel to compare with. + + This method is for internal use only. + + + + + Represents a pointer of gauge. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the color of a pointer. + + + + + Gets or sets the border width of a pointer. + + + + + Gets or sets the border color of a pointer. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugePointer. + + The GaugePointer instance to copy the contents from. + + + + Draws the gauge pointer. + + Draw event arguments. + + + + Serializes the gauge pointer. + + Writer object. + Gauge pointer property name. + Another GaugePointer to compare with. + + This method is for internal use only. + + + + + Represents a scale of a gauge. + + + + + Gets or sets major ticks of scale. + + + + + Gets or sets minor ticks of scale. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the font of scale. + + + + + Gets or sets the scale font color + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugeScale. + + The GaugeScale instance to copy the contents from. + + + + Draws the scale of gauge. + + Draw event arguments. + + + + Serializes the gauge scale. + + Writer object. + Scale property name. + Another GaugeScale to compare with. + + This method is for internal use only. + + + + + Represents a scale ticks. + + + + + Gets or sets the length of ticks. + + + + + Gets or sets the width of ticks. + + + + + Gets or sets the color of ticks. + + + + + Gets or sets the count of ticks + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + Ticks count. + + + + Copies the contents of another ScaleTicks. + + The ScaleTicks instance to copy the contents from. + + + + Serializes the scale ticks. + + Writer object. + Scale ticks property name. + Another ScaleTicks to compare with. + + This method is for internal use only. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + + + + + + + Provides a user interface for editing a text outline. + + + + + + + + + + + Provides a user interface for choosing a relation. + + + + + Provides a user interface for selecting a component inside the report. + + + + + + + + + + + + + + Provides a user interface for selecting a component inside the same band. + + + + + + + + + + + + + + Provides a user interface for editing a flags enumeration. + + + + + + + + + + + Provides a user interface for choosing a data type. + + + + + + + + + + + Provides a user interface for choosing a data column. + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + Provides a user interface for editing an angle in degrees. + + + + + + + + + + + Provides a user interface for editing a component's border. + + + + + + + + + + + Provides a user interface for selecting a component inside the same page. + + + + + + + + + + + + + + Provides a user interface for choosing a color. + + + + + + + + + + + + + + + + + Provides a user interface for editing a fill. + + + + + + + + + + + Provides a user interface for editing a string collection. + + + + + + + + + + + Represents a map object. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the path to folder containing shapefiles. + + + This property is used by the map editor when selecting a shapefile. + + + + + Gets or sets the map zoom. + + + + + Gets or sets minimum zoom value. + + + + + Gets or sets maximum zoom value. + + + + + Gets or sets the X offset of the map. + + + + + Gets or sets the Y offset of the map. + + + + + Gets or sets the value indicating that mercator projection must be used to view the map. + + + + + Gets the color scale settings. + + + + + Gets or sets a collection of map layers. + + + + + Gets or sets padding within the map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loads a map from file. + + Name of file that contains a map. + + + + Creates unique names for all contained objects such as layers, shapes, etc. + + + + + Initializes a new instance of the class. + + + + + Represents a map point. + + + + + Gets or sets the X-coordinate of the point. + + + + + Gets or sets the Y-coordinate of the point. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a polygon shape. + + + + + Holds the largest bounding rectangle of this shape. + + + + + Gets or sets a bounding box of this shape. + + + + + Gets or sets a list of polygons in this shape. + + + + + Gets or sets the shape data in binary format. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents four coordinates that define a bounding box. + + + + + Gets or sets the minimum X-coordinate of a bounding box. + + + + + Gets or sets the minimum Y-coordinate of a bounding box. + + + + + Gets or sets the maximum X-coordinate of a bounding box. + + + + + Gets or sets the maximum Y-coordinate of a bounding box. + + + + + Copies the contents of another instance. + + Source box to copy the contents from. + + + + Defines the palette used to display map shapes. + + + + + No palette used. + + + + + Light palette. + + + + + Pastel palette. + + + + + Grayscale palette. + + + + + Earth tones palette. + + + + + Sea green palette. + + + + + Bright pastel palette. + + + + + Represents a set of color ranges used to highlight polygons based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start color. + + + + + Gets or sets the middle color. + + + + + Gets or sets the end color. + + + + + Gets or sets a value indicating that the map's color scale must display data from this color ranges. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another ColorRanges. + + The ColorRanges instance to copy the contents from. + + + + Gets a color associated with given analytical value. + + The analytical value. + The color associated with this value, or Color.Transparent if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single color range. + + + + + Gets or sets color of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another ColorRange. + + The ColorRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The color of the range. + The start value of the range. + The end value of the range. + + + + Represents the color scale. + + + + + Gets or sets that must be displayed in this color scale. + + + + + Gets or sets the format string used to format data values. + + + + + Gets or sets a value indicating whether the color scale must be hidden if there is no data in it. + + + + + Gets or sets the text displayed in the color scale if there is no data in it. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a distance scale. + + + + + Initializes a new instance of the class. + + + + + Represents loading map data from dbf-file. + + + + + Gets or sets the filter string used in an open file dialog. + + + + + Initializes a new instance of the class. + + + + + Returns a file filter for an open file dialog. + + String that contains a file filter. + + + + Imports the map data from a specified file into a specfied layer. + + The MapObject for an importing map. + The name of a file that contains map. + + + + Represents the description of dBase field. + + + + + Gets the field name. + + + + + Gets the field type. + + + + + Gets the field length. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + The type of dBase field. + + + + + Character field. + + + + + Date field. + + + + + Numeric field. + + + + + Logical field. + + + + + Memo field. + + + + + Represents a collection of objects. + + + + + Gets a layer with specified index. + + Index of a layer. + The layer with specified index. + + + + Specifies the type of objects that layer contains. + + + + + The layer contains points. + + + + + The layer contains lines. + + + + + The layer contains polygons. + + + + + Specifies the spatial source for the layer. + + + + + Source is ESRI shapefile. + + + + + Source is a latitude/longitude/name provided by an application. + + + + + Determines how map labels are displayed. + + + + + No label displayed. + + + + + The shape name is displayed. + + + + + The value is displayed. + + + + + Both name and value displayed. + + + + + Represents a map layer. + + + + + Gets or sets a type of layer. + + + + + Gets or sets the spatial source for the layer. + + + + + Gets or sets the name of ESRI shapefile. + + + + + Gets or sets the data source. + + + + + Gets or sets the datasource filter expression. + + + + + Gets or sets spatial column name. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns spatial value. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns latitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns longitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns label value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns analytical value. + + + + + Gets or sets label's column name. + + + + + Gets or sets a value that determines how map labels are displayed. + + + + + Gets or sets the format of label's value. + + + + + Gets or sets the map accuracy. Lower value is better, but slower. + + + + + Gets or sets the value that determines the labels visiblity at a certain zoom value. + + + + + Gets or sets the aggregate function. + + + + + Gets or sets a value indicating that the layer is visible. + + + + + Gets or sets a bounding box of layer. + + + + + Gets a collection of map objects. + + + + + Gets the default style of shapes in this layer. + + + + + Gets or sets the palette used to highlight shapes. + + + + + Gets the color ranges used to highlight shapes based on analytical value. + + + + + Gets the size ranges used to draw points based on analytical value. + + + + + Gets or sets the expression that returns the name of polygon to zoom. + + + + + Gets or sets the bounding box as a string. + + + + + Gets a reference to the Map object. + + + + + + + + Draws the layer. + + The drawing parameters. + + + + Finds the shape under cursor. + + The cursor coordinates. + The ShapeBase object if found. + + + + + + + Creates unique names for all contained objects such as points, lines, polygons, etc. + + + + + Reduces the number of points in the shapes in this layer. + + The accuracy value. + + + + Loads the layer contents from ESRI shapefile (*.shp/*.dbf). + + The file name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds application provided data. + + Latitude value. + Longitude value. + The name displayed as a label. + Analytical value. + + Use this method if the is set to ApplicationData. + + + + + Adds a spatial/analytical value pair to the list. + + The spatial value. + The analytical value. + + Use this method if the is set to ShpFile. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a pair of double coordinates that defines a constituent point. + + + + + Gets or sets the X-coordinate of a point. + + + + + Gets or sets the Y-coordinate of a point. + + + + + Creates a new instance of the class with specified coordinates. + + X coordinate. + Y coordinate. + + + + Specifies the position of a scale control inside the map. + + + + + The scale is displayed at top left corner. + + + + + The scale is displayed at top center side. + + + + + The scale is displayed at top right corner. + + + + + The scale is displayed at middle left side. + + + + + The scale is displayed at middle right side. + + + + + The scale is displayed at bottom left corner. + + + + + The scale is displayed at bottom center side. + + + + + The scale is displayed at bottom right corner. + + + + + The base class for scale-type controls such as and . + + + + + Gets or sets the border. + + + + + Gets or sets the fill. + + + + + Gets or sets the title font. + + + + + Gets or sets the title text color. + + + + + Gets or sets the title text. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color. + + + + + Gets or sets the location of the scale. + + + + + Gets or sets the visibility of a scale. + + + + + Copies the contents of another ScaleBase. + + The ScaleBase instance to copy the contents from. + + + + Serializes the scale. + + Writer object. + Scale property name. + Another ScaleBase to compare with. + + This method is for internal use only. + + + + + Gets the size of the scale, in pixels. + + The SizeF structure containing the size of the object. + + + + Draws the object. + + Draw parameters. + Parent map object. + + + + Initializes a new instance of the class. + + + + + The base class for shape objects such as , and . + + + + + Gets or sets the shape visibility. + + + + + Gets or sets a value indicating that custom shape style is used. + + + If this property is false, the layer's DefaultShapeStyle is used. + + + + + Gets a custom shape style. + + + To use this property, first set the property to true. + + + + + Gets or sets the center point X offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the center point Y offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the shape X offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the shape Y offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the scale factor for this shape. + + + Use this property to adjust the shape size. + + + + + Gets or sets the spatial data associated with this shape. + + + + + Gets or sets the value. + + + + + Gets a reference to the parent Map object. + + + + + Gets a reference to the parent Layer object. + + + + + + + + Draws the shape. + + Object that provides a data for paint event. + + + + Draws the label. + + Object that provides a data for paint event. + + + + Checks if the shape is under cursor. + + The cursor coordinates. + true if the cursor is over the shape. + + + + Reduces the number of points in the shape. + + The accuracy value. + + + + + + + Initializes a component before running a report. + + + + + Finalizes a component before running a report. + + + + + Saves the state of this component. + + + + + Restores the state of this component. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents a line shape. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the spatial data of a shape. + + + + + Copies contents from another spatial data object. + + The object to copy contents from. + + + + Compares two spatial data objects. + + The spatial object to compare with. + true if spatial objects are identical. + + + + Gets a value by its key. + + The key of value. + The value. + + + + Sets a value by its key. + + The key of value. + The value. + + + + Gets a list of keys. + + The list of keys. + + + + Creates a new instance of the class. + + + + + Represents the style of a shape. + + + + + Gets or sets the border color. + + + + + Gets or sets the border style. + + + + + Gets or sets the border width. + + + + + Gets or sets the fill color. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the point size, in pixels. + + + + + Copies contents from another similar object. + + The object to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Represents a set of size ranges used to draw points based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start size. + + + + + Gets or sets the end size. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another SizeRanges. + + The SizeRanges instance to copy the contents from. + + + + Gets a size associated with given analytical value. + + The analytical value. + The size associated with this value, or 0 if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single size range. + + + + + Gets or sets size of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another SizeRange. + + The SizeRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The size of the range. + The start value of the range. + The end value of the range. + + + + Represents the matrix object that is used to print pivot table (also known as cross-tab). + + + The matrix consists of the following elements: columns, rows and data cells. Each element is + represented by the descriptor. The class is used + for columns and rows; the is used for data cells. + The property holds three collections of descriptors - Columns, + Rows and Cells. + To create the matrix in a code, you should perform the following actions: + + + create an instance of the MatrixObject and add it to the report; + + + create descriptors for columns, rows and cells and add it to the + collections inside the property; + + + call the method to create the matrix template + that will be used to create a result; + + + modify the matrix template (change captions, set the visual appearance). + + + To connect the matrix to a datasource, use the property. If + this property is not set, the result matrix will be empty. In this case you may use + the event handler to fill the matrix. + + This example demonstrates how to create a matrix in a code. + + // create an instance of MatrixObject + MatrixObject matrix = new MatrixObject(); + matrix.Name = "Matrix1"; + // add it to the report title band of the first report page + matrix.Parent = (report.Pages[0] as ReportPage).ReportTitle; + + // create two column descriptors + MatrixHeaderDescriptor column = new MatrixHeaderDescriptor("[MatrixDemo.Year]"); + matrix.Data.Columns.Add(column); + column = new MatrixHeaderDescriptor("[MatrixDemo.Month]"); + matrix.Data.Columns.Add(column); + + // create one row descriptor + MatrixHeaderDescriptor row = new MatrixHeaderDescriptor("[MatrixDemo.Name]"); + matrix.Data.Rows.Add(row); + + // create one data cell + MatrixCellDescriptor cell = new MatrixCellDescriptor("[MatrixDemo.Revenue]", MatrixAggregateFunction.Sum); + matrix.Data.Cells.Add(cell); + + // connect matrix to a datasource + matrix.DataSource = Report.GetDataSource("MatrixDemo"); + + // create the matrix template + matrix.BuildTemplate(); + + // change the style + matrix.Style = "Green"; + + // change the column and row total's text to "Grand Total" + matrix.Data.Columns[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allows to fill the matrix in code. + + + In most cases the matrix is connected to a datasource via the + property. When you run a report, the matrix is filled with datasource values automatically. + Using this event, you can put additional values to the matrix or even completely fill it + with own values (if is set to null. To do this, call the + Data.AddValue method. See the + method for more details. + + This example shows how to fill a matrix with own values. + + // suppose we have a matrix with one column, row and data cell. + // provide 3 one-dimensional arrays with one element in each to the AddValue method + Matrix1.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Andrew Fuller" }, + new object[] { 21.35f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Nancy Davolio" }, + new object[] { 421.5f }); + + // this code will produce the following matrix: + // | 1996 | 1997 | + // --------------+--------+--------+ + // Andrew Fuller | 123.45| 21.35| + // --------------+--------+--------+ + // Nancy Davolio | | 421.50| + // --------------+--------+--------+ + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value that determines whether the matrix must calculate column/row sizes automatically. + + + + + Gets or sets a value that determines how to print multiple data cells. + + + This property can be used if matrix has two or more data cells. Default property value + is false - that means the data cells will be stacked. + + + + + Gets or sets a value indicating that the side-by-side cells must be kept together on the same page. + + + + + Gets or sets a data source. + + + When you create the matrix in the designer by drag-drop data columns into it, + this property will be set automatically. However you need to set it if you create + the matrix in code. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will be skipped. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a matrix style. + + + + + Gets or sets even style priority for matrix cells. + + + + + Gets or sets need split rows. + + + + + Gets or sets a value indicating that empty matrix should be printed. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets the object that holds the collection of descriptors used + to build a matrix. + + + See the class for more details. + + + + + Gets or sets array of values that describes the currently printing column. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing column. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.ColumnValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (int)Matrix1.ColumnValues[0] == 2000. + + + + + + + + Gets or sets array of values that describes the currently printing row. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing row. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.RowValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (string)Matrix1.RowValues[0] == "Andrew Fuller". + + + + + + + + Gets or sets the index of currently printing column. + + + This property may be used to print even columns with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.ColumnIndex, + for example: Matrix1.ColumnIndex % 2 == 1. + + + + + + + + Gets or sets the index of currently printing row. + + + This property may be used to print even rows with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.RowIndex, + for example: Matrix1.RowIndex % 2 == 1. + + + + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + This method fires the AfterTotals event and the script code connected to the AfterTotalsEvent. + + Event data. + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + This is a shortcut method to call the matrix Data.AddValue. + See the method for more details. + + + + + Gets the value of the data cell with the specified index. + + Zero-based index of the data cell. + The cell's value. + + Use this method in the cell's expression if the cell has custom totals + (the total function is set to "Custom"). The example: + Matrix1.Value(0) / Matrix1.Value(1) + will return the result of dividing the first data cell's value by the second one. + + + + + Initializes a new instance of the class. + + + + + Specifies the aggregate function used in the . + + + + + No aggregates are used. + + + + + Specifies the sum of values. + + + + + Specifies the minimum of values. + + + + + Specifies the maximum of values. + + + + + Specifies the average of values. + + + + + Specifies the count of values. + + + + + Specifies the count of distinct values. + + + + + Specifies the custom function. + + + + + Determines how matrix percents are calculated. + + + + + Do not calculate percent value. + + + + + Calculate percent of the column total value. + + + + + Calculate percent of the row total value. + + + + + Calculate percent of the grand total value. + + + + + The descriptor that is used to describe one matrix data cell. + + + The class is used to define one data cell of the matrix. + The key properties are and . + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the matrix data cells is stored + in the MatrixObject.Data.Cells property. + + + + + Gets or sets an aggregate function used to calculate totals for this cell. + + + + + Gets or sets a value that determines how to calculate the percent value for this cell. + + + + + + + + + + + Initializes a new instance of the class + with default settings. + + + + + Initializes a new instance of the class + with specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class + with specified expression and aggregate function. + + The descriptor's expression. + The aggregate function. + + + + Initializes a new instance of the class + with specified expression, aggregate function, and a percent. + + The descriptor's expression. + The aggregate function. + The percent setting. + + + + Represents a collection of matrix data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the matrix descriptors. + + + This class contains three collections of descriptors such as , + and . Use collections' methods to add/remove + descriptors. When you are done, call the + method to refresh the matrix. + To fill a matrix in code, use the AddValue method. + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Clears all descriptors. + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + The number of elements in an array passed to this method must be the same as + a number of descriptors in the appropriate collection. That is, if your matrix + has one column, two row and one cell descriptors (in Columns, Rows and + Cells collections respectively), you have to pass one-element array for the + columnValues param, two-element array for the rowValues and one-element + array for the cellValues. + + This example demonstrates how to fill a simple matrix that contains one column, + row and cell. + + MatrixObject matrix; + matrix.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + + // this will produce the following result: + // | 1996 | + // --------------+----------+ + // Andrew Fuller | 123.45| + // --------------+----------+ + + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + Datasource row index. + + See the method for more details. + + + + + Gets a value with specified column, row and cell indicies. + + Index of a column. + Index of a row. + Index of a cell. + The value of a cell. + + + + Sets the cell's value. + + Index of a column. + Index of a row. + The new value. + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + MatrixObject matrix; + // change the fill color of the first matrix cell + matrix.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of matrix header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + Gets the list of indices of terminal items of this header. + + The list of indices. + + + + Gets the list of indices of terminal items of the header with specified address. + + The address of a header. + The list of indices. + + + + Removes a header item with the address specified. + + The address of a header. + + + + Gets an index of header with the address specified. + + The address of a header. + The index of header. + + + + Gets an index of header with the address specified. If there is no such header item, it will be created. + + The address of a header. + The index of header. + + + + + + + + + + The descriptor that is used to describe one element of the matrix header. + + + The class is used to define one header element of the matrix + (either the column element or row element). The key properties are + , and . + To set visual appearance of the element, use the + property. To set visual appearance of the "total" element, use the + property. + The collection of descriptors used to represent the matrix header is stored + in the MatrixObject.Data.Columns and MatrixObject.Data.Rows properties. + + + + + Gets or sets the sort order of header values. + + + This property determines how the values displayed in this element are sorted. The default sort + is ascending. + + + + + Gets or sets a value indicating that this element has associated "total" element. + + + To access the matrix cell that is bound to the "Total" element, use the + property. It may be useful to change the + "Total" text by something else. + + This example shows how to change the "Total" text of the total element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + Gets or sets the value indicating whether the total values must be printed before the data. + + + + + Gets or sets a value indicating that the page break must be printed before this element. + + + Page break is not printed before the very first element. + + + + + Gets or sets a value that determines whether it is necessary to suppress totals + if there is only one value in a group. + + + + + Gets or sets the template column bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to the "total" element of this descriptor. + + + This property may be useful to change the "Total" text by something else. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + This example shows how to change the "Total" element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Fill = new SolidFill(Color.Green); + + + + + + + + + + + + Initializes a new instance of the class with + default settings. + + + + + Initializes a new instance of the class with + specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class with + specified expression and totals. + + The descriptor's expression. + Indicates whether to show the "total" element. + + + + Initializes a new instance of the class with + specified expression, sort order and totals. + + The descriptor's expression. + Sort order used to sort header values. + Indicates whether to show the "total" element. + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Describes how the even style is applied to a matrix. + + + + + The even style is applied to matrix rows. + + + + + The even style is applied to matrix columns. + + + + + Represents the chart object based on Microsoft Chart control. + + + FastReport uses Microsoft Chart library to display charts. This library is included + in .Net Framework 4.0. For .Net 3.5 it is available as a separate download here: + http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c + This library requires .Net Framework 3.5 SP1. + To access Microsoft Chart object, use the property. It allows you + to set up chart appearance. For more information on available properties, refer to the + MS Chart documentation. + Chart object may contain one or several series. Each series is represented by two objects: + + + the Series that is handled by MS Chart. It is stored in the + Chart.Series collection; + + + the object that provides data for MS Chart series. + It is stored in the collection. + + + Do not operate series objects directly. To add or remove series, use + the and methods. These methods + handle Series and MSChartSeries in sync. + If you have a chart object on your Form and want to print it in FastReport, use + the method. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of objects. + + + + + Gets a reference to the MS Chart object. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the data source. + + + + + Gets or sets the filter expression. + + + This filter will be applied to all series in chart. You may also use the series' + property to filter each series individually. + + + + + Gets or sets a value indicating that all series' data point should be aligned by its X value. + + + Using this property is necessary to print stacked type series. These series must have + equal number of data points, and the order of data points must be the same for all series. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or set the color for auto-series. + + + If no color is specified, the new series will use the palette defined in the chart. + + + + + Gets or sets sort order for auto-series. + + + + + + + + Adds a new series. + + The type of series. + The new MSChartSeries object. + + + + Deletes a series at a specified index. + + Index of series. + + + + Assigns chart appearance, series and data from the + System.Windows.Forms.DataVisualization.Charting.Chart object. + + Chart object to assign data from. + + Use this method if you have a chart in your application and want to print it in FastReport. + To do this, put an empty MSChartObject in your report and execute the following code: + + report.Load("..."); + MSChartObject reportChart = report.FindObject("MSChart1") as MSChartObject; + reportChart.AssignChart(applicationChart); + report.Show(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Represents the small chart object (called sparkline) fully based on MSChartObject. + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies how the series points are sorted. + + + + + Points are not sorted. + + + + + Points are sorted by X value. + + + + + Points are sorted by Y value. + + + + + Specifies the direction in which the series points are sorted. + + + + + Points are sorted in ascending order. + + + + + Points are sorted in descending order. + + + + + Specifies how the series points are grouped. + + + + + Points are not grouped. + + + + + Points are grouped by X value. + + + + + Points are grouped by number specified in the . + + + + + Points are grouped by Years. + + + + + Points are grouped by Months. + + + + + Points are grouped by Weeks. + + + + + Points are grouped by Days. + + + + + Points are grouped by Hours. + + + + + Points are grouped by Minutes. + + + + + Points are grouped by Seconds. + + + + + Points are grouped by Milliseconds. + + + + + Specifies which pie value to explode. + + + + + Do not explode pie values. + + + + + Explode the biggest value. + + + + + Explode the lowest value. + + + + + Explode the value specified in the property. + + + + + Specifies which data points to collect into one point. + + + + + Do not collect points. + + + + + Show top N points (N value is specified in the + property), collect other points into one. + + + + + Show bottom N points (N value is specified in the + property), collect other points into one. + + + + + Collect points which have Y value less than specified + in the property. + + + + + Collect points which have Y value less than percent specified + in the property. + + + + + Collect points which have Y value greater than specified + in the property. + + + + + Collect points which have Y value greater than percent specified + in the property. + + + + + Represents a MS Chart series wrapper. + + + This class provides a data for MS Chart series. The series itself is stored inside the + MS Chart and is accessible via the property. + You don't need to create an instance of this class directly. Instead, use the + method. + + + + + Gets os sets the data filter expression. + + + The filter is applied for this series only. You can also use the + property to set a filter that will be applied to all + series in a chart. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or sets the sort method used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the sort order used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or sets the group method used to group data points. + + + This property is mainly used when series is filled with data with several identical X values. + In this case, you need to set the property to XValue. All identical data points will be + grouped into one point, their Y values will be summarized. You can choose the summary function + using the property. + + + + + Gets or sets the group interval. + + + This value is used if property is set to Number. + + + + + Gets or sets the function used to group data points. + + + + + Gets or sets the collect method used to collect several data points into one. + + + This instrument for data processing allows to collect several series points into one point. + The collected point will be displaed using the text specified in the + property and color specified in the property. + For example, to display top 5 values, set this property to TopN and specify + N value (5) in the property. + + + + + Gets or sets the collect value used to collect several data points into one. + + + This property is used if the property is set to any value other than None. + + + + + Gets or sets the text for the collected value. + + + + + Gets or sets the color for the collected value. + + + If this property is set to Transparent (by default), the default palette color + will be used to display a collected point. + + + + + Gets or sets the method used to explode values in pie-type series. + + + + + Gets or sets the value that must be exploded. + + + This property is used if property is set + to SpecificValue. + + + + + Gets or sets the data column or expression that returns the X value of data point. + + + + + Gets or sets the data column or expression that returns the first Y value of data point. + + + + + Gets or sets the data column or expression returns the second Y value of data point. + + + + + Gets or sets the data column or expression returns the third Y value of data point. + + + + + Gets or sets the data column or expression returns the fourth Y value of data point. + + + + + Gets or sets the data column or expression that returns the color of data point. + + + + + Gets or sets the data column or expression returns the label value of data point. + + + + + Gets a reference to MS Chart Series object. + + + Use this property to set many options available for the Series object. These options + include: visual appearance, labels, marks, value types. Refer to the Microsoft Chart control + documentation to learn more. + + + + + Gets a number of Y value per data point. + + + Number of Y values depends on series type. Most of series have only one Y value. Financial + series such as Stock and Candlestick, use four Y values. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Clears all data points in this series. + + + + + Adds a data point with specified X and Y values. + + X value. + Array of Y values. + + Note: number of values in the yValues parameter must be the same as value returned + by the property. + + + + + + + + Creates a new instance of the class with default settings. + + + + + Represents a collection of objects. + + + + + Gets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Resets series data. + + + + + Processes the current data row. + + + + + Finishes the series data. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SVG object + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets svg document + + + + + Gets or sets ViewBox value + + + + + Gets or sets AspectRatio value + + + + + + + + Gets or sets grayscale svg document + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Returns SVG string + + + + + + + + + + + + + + + + + + + + + + + Returns clone of this object + + + + + + Sets svg object by SvgDocument + + SVG document + + + + Sets svg object from specified path + + path to SVG file + + + + Sets svg object from svg string + + SVG string + + + + Initializes a new instance of the class with default settings. + + + + + Represents a table row. + + + Use the property to set the height of a row. If + property is true, the row will calculate its height automatically. + You can also set the and properties + to restrict the row's height. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a height of the row, in pixels. + + + The row height cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal height for this row, in pixels. + + + + + Gets or sets the maximal height for this row, in pixels. + + + + + Gets or sets a value determines if the row should calculate its height automatically. + + + The row height cannot exceed the range defined by the + and properties. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets the index of this row. + + + + + + + + Gets or sets the cell with specified index. + + Column index. + The TableCell object. + + + + Gets or sets the page break flag for this row. + + + + + Gets or sets the number of rows to keep on the same page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table object that consists of several rows and columns. + + + To add/remove columns, use the collection. To add/remove + rows, use the collection. To initialize a table with specified number of + columns and rows, use and properties. + To print a table in code, use the event. In the manual build + mode, you can use aggregate functions. The following functions available: + + + Aggregate function + Description + + + Sum(cell) + Calculates the sum of values in specified table cell. + + + Min(cell) + Calculates the minimum of values in specified table cell. + + + Max(cell) + Calculates the maximum of values in specified table cell. + + + Avg(cell) + Calculates the average of values in specified table cell. + + + Count(cell) + Calculates the number of repeats of a specified table cell. + + + To print aggregate value, place the aggregate function call in the table cell: + [Count(Cell2)]. + + + + + + + + + + + + + + + + + + + + + + + Allows to print table rows/columns dynamically. + + + This event is used to handle the table print process in a code. Using special methods + like , you can print specified rows/columns. + + First way is to repeat specified row(s) to get a table that will grow downwards. + To do this, you have to call the PrintRow method followed by the PrintColumns method. + + Another way is to repeat the specified column(s) to get a table that grows sidewards. + To do this, call the PrintColumn method followed by the PrintRows method. + + Finally, the third way is to repeat rows and columns. The table will grow downwards and + sidewards. To do this, call the PrintRow method followed by the PrintColumn + method (or vice versa). + + + + When you print a table row-by-row, you must call one of the PrintColumn, + PrintColumns methods right after the PrintRow method. + In the same manner, when you print a table column-by-column, call one of the + PrintRow, PrintRows methods right after the PrintColumn method. + If you ignore this rule you will get an exception. + + + + In this example, we will consider all three ways to print a table which has 3 rows and 3 columns. + Case 1: print a table downwards. + + // print table header (the first row) + Table1.PrintRow(0); + Table1.PrintColumns(); + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + Table1.PrintRow(1); + Table1.PrintColumns(); + } + // print table footer (the third row) + Table1.PrintRow(2); + Table1.PrintColumns(); + + + Case 2: print a table sidewards. + + // print table header (the first column) + Table1.PrintColumn(0); + Table1.PrintRows(); + // print table body (the second column) + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + Table1.PrintRows(); + } + // print table footer (the third column) + Table1.PrintColumn(2); + Table1.PrintRows(); + + + Case 3: print a table downwards and sidewards. + + // print the first row with all its columns + Table1.PrintRow(0); + // print header column + Table1.PrintColumn(0); + // print 10 data columns + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + // print footer column + Table1.PrintColumn(2); + + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + // print data row with all its columns + Table1.PrintRow(1); + Table1.PrintColumn(0); + for (int j = 0; j < 10; j++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + } + + // print table footer (the third row) + Table1.PrintRow(2); + // again print all columns in the table footer + Table1.PrintColumn(0); + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + + + + + + Gets or sets a script method name that will be used to handle the + event. + + + If you use this event, you must handle the table print process manually. + See the event for details. + + + + + Determines whether to manage cell spans automatically during manual build. + + + The default value for this property is true. If you set it to false, you need to manage + spans in your ManualBuild event handler. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + Prints a row with specified index. + + Index of a row to print. + + See the event for more details. + + + + + Prints rows with specified indices. + + Indices of rows to print. + + See the event for more details. + + + + + Prints all rows. + + + See the event for more details. + + + + + Prints a column with specified index. + + Index of a column to print. + + See the event for more details. + + + + + Prints columns with specified indices. + + Indices of columns to print. + + See the event for more details. + + + + + Prints all columns. + + + See the event for more details. + + + + + Adds a page before rows or columns. + + + Call this method to insert a page break before the next row or column that you intend to print + using PrintRow(s) or PrintColumn(s) methods. + See the event for more details. + + + + + Initializes a new instance of the class. + + + + + Represents a table column. + + + Use the property to set the width of a column. If + property is true, the column will calculate its width automatically. + You can also set the and properties + to restrict the column's width. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a width of the column, in pixels. + + + The column width cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal width for this column, in pixels. + + + + + Gets or sets the maximal width for this column, in pixels. + + + + + Gets or sets a value determines if the column should calculate its width automatically. + + + The column width cannot exceed the range defined by the + and properties. + + + + + Gets the index of this column. + + + + + + + + Gets or sets the page break flag for this column. + + + + + Gets or sets the number of columns to keep on the same page. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table cell. + + + Use , properties to set the cell's + column and row spans. To put an object inside the cell, use its property: + + TableCell cell1; + PictureObject picture1 = new PictureObject(); + picture1.Bounds = new RectangleF(0, 0, 32, 32); + picture1.Name = "Picture1"; + cell1.Objects.Add(picture1); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of objects contained in this cell. + + + + + Gets or sets the column span for this cell. + + + + + Gets or sets the row span for this cell. + + + + + + + + Gets the address of this cell. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets the TableBase object which this cell belongs to. + + + + + + + + Creates the exact copy of this cell. + + The copy of this cell. + + + + Determines if two cells have identical settings. + + Cell to compare with. + true if cells are equal. + + + + + + + Changes the cell's style. + + The new style. + + Each cell in a dynamic table object (or in a matrix) has associated style. + Several cells may share one style. If you try to change the cell's appearance directly + (like setting cell.TextColor), it may affect other cells in the table. + To change the single cell, use this method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + The base class for table-type controls such as and + . + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of table rows. + + + + + Gets a collection of table columns. + + + + + Gets or sets the number of fixed rows that will be repeated on each page. + + + + + Gets or sets the number of fixed columns that will be repeated on each page. + + + + + Gets or sets a value that determines whether is necessary to repeat table header on each page. + + + To define a table header, set the and + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Row header on each page. + + + To define a table Row header, set the + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Column header on each page. + + + To define a table Column header, set the + properties. + + + + + Gets or sets the table layout. + + + This property affects printing the big table that breaks across pages. + + + + + Gets or sets gap between parts of the table in wrapped layout mode. + + + This property is used if you set the property to Wrapped. + + + + + Gets or sets a value that determines whether to adjust the spanned cell's width when breaking the table across pages. + + + If set to true, the spanned cell's width will be adjusted to accomodate all contained text. + + + + + Gets or sets the table cell. + + Column index. + Row index. + The TableCell object that represents a cell. + + + + Gets or sets a number of columns in the table. + + + + + Gets or sets a number of rows in the table. + + + + + Gets a table which contains the result of rendering dynamic table. + + + Use this property to access the result of rendering your table in dynamic mode. + It may be useful if you want to center or right-align the result table on a page. + In this case, you need to add the following code at the end of your ManualBuild event handler: + + // right-align the table + Table1.ResultTable.Left = Engine.PageWidth - Table1.ResultTable.CalcWidth() - 1; + + + + + + + + + + + + + + + Gets data of the table cell with specified column and row numbers. + + The column number. + The row number. + TableCellData instance containing data of the table cell. + + + + Creates unique names for all table elements such as rows, columns, cells. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates and returns the table width, in pixels. + + + + + + + + + + + Calculates a sum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a minimum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a maximum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates an average of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates number of repeats of a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Initializes a new instance of the class. + + + + + Specifies the layout that will be used when printing a big table. + + + + + The table is printed across a pages then down. + + + + + The table is printed down then across a pages. + + + + + The table is wrapped. + + + + + Represents data of the table cell. + + + + + Gets or sets parent table of the cell. + + + + + Gets or sets objects collection of the cell. + + + + + Gets or sets text of the table cell. + + + + + Gets or sets value of the table cell. + + + + + Gets or sets hyperlink value of the table cell. + + + + + Gets or sets column span of the table cell. + + + + + Gets or sets row span of the table cell. + + + + + Gets or sets the address of the table cell. + + + + + Gets the table cell. + + + + + Gets style of table cell. + + + + + Gets original the table cell. + + + + + Gets width of the table cell. + + + + + Gets height of the table cell. + + + + + Initializes a new instance of the class. + + + + + Attaches the specified table cell. + + The table cell instance. + This method is called when we load the table. + + + + Assigns another instance. + + The table cell data that used as a source. + This method is called when we copy cells or clone columns/rows in a designer. + + + + Assigns another instance at run time. + + The table cell data that used as a source. + This flag shows should children be copied or not. + This method is called when we print a table. We should create a copy of the cell and set the style. + + + + Sets style of the table cell. + + The new style of the table cell. + + + + Disposes the instance. + + + + + Calculates width of the table cell. + + The value of the table cell width. + + + + Calculates height of the table cell. + + The width of the table cell. + The value of the table cell height. + + + + Updates layout of the table cell. + + The width of the table cell. + The height of the table cell. + The new value of x coordinate. + The new value of y coordinate. + + + + Represents a collection of objects. + + + + + Gets a column with specified index. + + Index of a column. + The column with specified index. + + + + + + + + + + Represents a result table. + + + Do not use this class directly. It is used by the and + objects to render a result. + + + + + Occurs after calculation of table bounds. + + + You may use this event to change automatically calculated rows/column sizes. It may be useful + if you need to fit dynamically printed table on a page. + + + + + + + + + + + Creates a new instance of the class. + + + + + Represents a collection of objects. + + + + + Gets a row with specified index. + + Index of a row. + The row with specified index. + + + + + + + + + + Represents the "Blank Report" wizard. + + + + + + + + Represents the "Inherited Report" wizard. + + + + + + + + Represents the "Label" wizard. + + + + + Gets a selected label manufacturer. + + + + + Gets a selected label name. + + + + + Gets the XML item containing a selected label parameters. + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents the "New Data Source" wizard. + + + + + + + + Represents the "Standard Report" wizard. + + + + + + + + The base class for all report wizards. + + + To create own wizard, use this class as a base. All you need is to override + the method. To register a wizard, use the + method. + + + + + Runs the wizard. + + Report designer. + true if wizard was executed succesfully. + + This method is called when you select a wizard in the "Add New Item" window and + click "Add" button. You should do the work in this method. + + + + + Represents the "New Dialog" wizard. + + + + + + + + Represents the "New Page" wizard. + + + + + + + + Represents a RichText object that can display formatted text. + + + Use the property to set the object's text. The text may include + the RTF formatting tags. + + + + + + + + + + + + + + Gets or sets the object's text. + + + This property returns the formatted text with rtf tags. + + + + + Gets or sets a name of the data column bound to this control. + + + Value must contain the datasource name, for example: "Datasource.Column". + + + + + Gets the actual text start. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets the actual text length. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets or sets the break style. + + + Set this property to true if you want editable rich text when you edit the prepared report page. + + + + + Experimental feature for translation of RichText into report objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The DIGEST-MD5 SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + + + + The PLAIN SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + Computes the client response for server challenge. + + The challenge from server. Usually empty for PLAIN mechanism. + The response from client. + + + + The base abstarct class for all SASL mechanisms. + + + + + Gets or sets the name of mechanism. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + The username. + The user's password. + + + + Computes client response for server challenge. + + The server challenge. + The client response. + + + + Gets the base64-encoded client response fo the server challenge. + + The base64-string containing server challenge. + The base64-string containing client response. + + + + Gets the client response for the server challenge. + + Byte array containing server challenge. + Byte array containing client response. + + + + The base class for all messengers. + + + + + Gets the filename. + + + + + Gets or sets the proxy settings. + + + + + Initializes a new instance of the class. + + + + + Authorizes the user. + + True if user has been successfully authorized. + + + + Prepares the report before it will be send. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Sends the report. + + The report template that should be sent. + The export filter that should export template before. + True if report has been successfully sent. + + + + Represents form of messenger. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl pageControl1. + + + + + Represents proxy settings of the messenger. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the type of proxy. + + + + + Initializes a new instance of the class. + + The proxy server. + The port number of server. + The username. + The user's password. + The type of proxy. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Represents the IQ stanza. + + + + + Gets or sets the type of iq. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the iq. + The type of iq. + The JID of the sender. + The JID of the recipient. + The ID of the iq. + The language of the iq. + The data of the iq. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP message. + + + + + Gets or sets the type of message. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the message. + The type of message. + The JID of the sender. + The JID of the recipient. + The ID of the message. + The language of the message. + The data of the message. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP Presence. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the presence. + The JID of the sender. + The JID of the recipient. + The ID of the presence. + The language of the presence. + The data of the presence. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the base class for XML stanzas used in XMPP. + + + + + Gets the data of the stanza. + + + + + Gets or sets the JID of the sender. + + + + + Gets or sets the JID of the recipient. + + + + + Gets or sets the ID of the stanza. + + + + + Gets or sets the language of the stanza. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the stanza. + The JID of the sender. + The JID of the recipient. + The ID of the stanza. + The language of the stanza. + The data of the stanza. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Converts stanza to string. + + String containing stanza value. + + + + The parser for XMPP XML-streams. + + + + + Initializes a new instance of the class. + + The stream for parsing. + True to leave the stream opened after closing the StreamReader instance. + + + + Read the XML stream up to opening "stream:stream" tag. + + + + + Reads the next XML element from the stream. + + The list of XML elements that are expected. + The XML element. + + + + Closes the stream parser. + + + + + Releases all resources used by the current instance of the class. + + + + + Represents a static class to simplify the work with XmlElement instance. + + + + + Creates a new XmlElement instance. + + The name of the element. + The namespace of the element. + A new instance of the class. + + + + Adds the specified child to the end of child nodes of element. + + The element for add the child to. + The child node to add. + A XmlElement instance. + + + + Adds the attribute to XmlElement with spefied name and value. + + The element for add the attribute to. + The name of attribute. + The value of attribute. + A XmlElement instance. + + + + Adds the specified text to the end of child nodes of element. + + The element for add the text to. + The text for add. + A XmlElement instance. + + + + Converts the XmlElement instance to a string. + + The element to convert to. + True if needed to include XML declaration. + True if needed to leave the tag of an empty element open. + The XmlElement instance as string. + + + + Represents the XMPP messenger. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the hostname of XMPP server. + + + + + Gets or sets the port number of the XMPP service of the server. + + + + + Gets or sets the username to send file to. + + + + + Gets or sets the JID to send from. + + + + + Gets or set the JID to send to. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + Username. + Password. + Hostname. + Port. + Username to send file to. + Send to user's resource. + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + JID to send to with resource. + + + + Sends the specified string to the server. + + The string to send. + + + + Initiates the stream to the server. + + The hostname. + The features response of the server. + + + + Validates the server certificate. + + The sender object. + X509 certificate. + The X509 chain. + The SSL policy errors. + True if successfull. + + + + Secures the stream by TLS. + + The hostname. + The features response of the server. + + + + Selects the SASL authentication mechanism. + + List of mechanisms. + The string containing mechanism name. + + + + Authenticates the user on the server using Plain mechanism. + + + + + Authenticates the user on the server using Digest-MD5 mechanism. + + + + + Authenticates the user on the server. + + The SASL mechanisms list. + + + + Setups the connection with the server. + + + + + Binds resource and gets the full JID that will be associated with current session. + + The full session JID. + + + + Opens session between client and server. + + The id of the opened session. + + + + Connects to the server. + + + + + Sends the message. + + The text of the message. + True if message has been successfully sent. + + + + Sends the presence. + + The text of the presence. + True if presence has been successfully sent. + + + + Initiates the In Band Bytestream for sending the file (XEP-0047). + + True if bytestream has been successfully initiated. + + + + Sends the chunk to the XMPP server. + + The data of the chunk. + The number of the chunk. + + + + Sends the file using In Band Bytestream. + + The memory stream containing data of the file. + True if file has been successfully sent. + + + + Sends the file using FastReport Cloud as a proxy server. + + The report template. + The export filter to export report before sending. + True if file has been successfully sent. + + + + Disconnects from the server. + + + + + + + + + + + Closes the connection. + + + + + Releases all the resources used by the XMPP messenger. + + + + + Represents the form of the XMPP messenger. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + Send to user's JID. + Report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Provides a type converter for a property representing a reference to another component in a report. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a value measured in the current report units. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing an expandable object. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a data type. + + + + + + + + + + + + + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + Represents a collection of bands. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + Owner that owns this collection. + + + + The layout of the data band columns. + + + + + Print columns across then down. + + + + + Print columns down then across. + + + + + This class holds the band columns settings. It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + The column width, in pixels. + + + + + Gets or sets the layout of the columns. + + + + + Gets or sets the minimum row count that must be printed. + + + This property is used if the Layout property is set to DownThenAcross. 0 means that + FastReport should calculate the optimal number of rows. + + + + + Assigns values from another source. + + Source to assign from. + + + + Initializes a new instance of the BandColumns class with default settings. + + + + + Specifies a set of actions that cannot be performed on the object in the design mode. + + + + + Specifies no restrictions. + + + + + Restricts moving the object. + + + + + Restricts resizing the object. + + + + + Restricts modifying the object's properties. + + + + + Restricts editing the object. + + + + + Restricts deleting the object. + + + + + Hides all properties of the object. + + + + + Specifies a set of actions that can be performed on the object in the design mode. + + + + + Specifies no actions. + + + + + Allows moving the object. + + + + + Allows resizing the object. + + + + + Allows deleting the object. + + + + + Allows editing the object. + + + + + Allows changing the Z-order of an object. + + + + + Allows moving the object to another parent. + + + + + Allows copying the object to the clipboard. + + + + + Allows drawing the object. + + + + + Allows grouping the object. + + + + + Allows write children in the preview mode by itself. + + + + + Allows write object's bounds into the report stream. + + + + + Allows the "smart tag" functionality. + + + + + Specifies that the object's name is global (this is true for all report objects + such as Text, Picture and so on). + + + + + Specifies that the object can display children in the designer's Report Tree window. + + + + + Specifies that the object supports mouse wheel in the preview window. + + + + + Specifies the style of a border line. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a double line. + + + + + Specifies the sides of a border. + + + + + Specifies no border lines. + + + + + Specifies the left border line. + + + + + Specifies the right border line. + + + + + Specifies the top border line. + + + + + Specifies the bottom border line. + + + + + Specifies all border lines. + + + + + Represents a single border line. + + + + + Gets or sets a color of the line. + + + + + Gets or sets a style of the line. + + + + + Gets or sets a width of the line, in pixels. + + + + + + + + + + + Represents a border around the report object. + + + Border consists of four lines. Each line has own color, style and width. Lines are accessible through + , , , properties. + + To turn on and off the lines, use the property. To set the same color, style or width + for each line, use , , properties of the Border. + + + + + Gets or sets a color of the border. + + + This property actually returns a color of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a value determines whether to draw a shadow. + + + + + Gets or sets a shadow width, in pixels. + + + + + Gets or sets a shadow color. + + + + + Gets or sets a style of the border. + + + This property actually returns a style of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a visible lines of a border. + + + + + Gets or sets a width of the border, in pixels. + + + This property actually returns a width of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets the left line of the border. + + + + + Gets or sets the top line of the border. + + + + + Gets or sets the right line of the border. + + + + + Gets or sets the bottom line of the border. + + + + + Gets or sets a value determines that Border must serialize only one line. + + + This property is for internal use only. + + + + + Creates the exact copy of this Border. + + A copy of this border. + + + + + + + + + + Serializes the border. + + Writer object. + Border property name. + Another Border to compare with. + + This method is for internal use only. + + + + + Draw the border using draw event arguments and specified bounding rectangle. + + Draw event arguments. + Bounding rectangle. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report components that can break across pages. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets or sets a reference to another similar object that will be used for displaying the + text that not fit in this object. + + + + + + + + + + + Breaks the contents of the object. + + Object to put the part of content to that does not fit in this object. These two + objects must have the same type. + true if there is enough space in this object to display at least one text line. + + + Do not call this method directly, it is used by the report engine. You should override it if + you are writing a new FastReport object. + + + This method must break the contents of the object. The part of content that fit in current object's + bounds should remain in this object, the part that does not fit should be transferred to breakTo + object. + + + + + + Initializes a new instance of the BreakableComponent class with default settings. + + + + + Specifies a line cap style. + + + + + Specifies a line without a cap. + + + + + Specifies a line with a circle cap. + + + + + Specifies a line with a square cap. + + + + + Specifies a line with a diamond cap. + + + + + Specifies a line with an arrow cap. + + + + + Specifies a start and end line caps. + + + + + Gets or sets a width of the cap. + + + + + Gets or sets a height of the cap. + + + + + Gets or sets a cap style. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this object. + + Copy of this object. + + + + + + + + + + Serializes the cap settings. + + Name of the cap property. + Writer object. + Another cap to compare with. + + This method is for internal use only. + + + + + Initializes a new instance of the CapSettings class with default settings. + + + + + Specifies a symbol that will be displayed when a is in the checked state. + + + + + Specifies a check symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a plus symbol. + + + + + Specifies a filled rectangle. + + + + + Specifies a symbol that will be displayed when a is in the unchecked state. + + + + + Specifies no symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a minus symbol. + + + + + Specifies a slash symbol. + + + + + Specifies a back slash symbol. + + + + + This class represents a column footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a column header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of highlight conditions used in the property + of the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies conditions from another collection. + + Collection to copy from. + + + + + + + + + + This class represents a data band footer. + + + + + This class represents a header of the data band. + + + + + Specifies the image format in SVG export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing objects to a svg + + + + + For setting namespace, clear all attributes on setting, therefore use this property before setting other svg options + + + + + Initialize a new Graphics for SVG, it's rendered to xml, layer by layer, not one image, + set the Size of this graphics in Size property + + + + + Base class for all fills. + + + + + Returned true if Color = Transparent + + + + + Creates exact copy of this fill. + + Copy of this object. + + + + Creates the GDI+ Brush object. + + Drawing rectangle. + Brush object. + + + + Creates the GDI+ Brush object with scaling. + + Drawing rectangle. + X scaling coefficient. + Y scaling coefficient. + Brush object. + + + + Serializes the fill. + + Writer object. + Name of the fill property. + Fill object to compare with. + + This method is for internal use only. + + + + + Fills the specified rectangle. + + Draw event arguments. + Drawing rectangle. + + + + Class represents the solid fill. + + + + + Gets or sets the fill color. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with Transparent color. + + + + + Initializes the class with specified color. + + + + + + Class represents the linear gradient fill. + + + + + Gets or sets the start color of the gradient. + + + + + Gets or sets the end color of the gradient. + + + + + Gets or sets the angle of the gradient. + + + + + Gets or sets the focus point of the gradient. + + + Value is a floating point value from 0 to 1. + + + + + Gets or sets the gradient contrast. + + + Value is a floating point value from 0 to 1. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with start and end colors. + + Start color. + End color. + + + + Initializes the class with start, end colors and angle. + + Start color. + End color. + Angle. + + + + Initializes the class with start and end colors, angle, focus and contrast. + + Start color. + End color. + Angle. + Focus. + Contrast. + + + + The style of the path gradient. + + + + + Elliptic gradient. + + + + + Rectangular gradient. + + + + + Class represents the path gradient fill. + + + + + Gets or sets the center color of the gradient. + + + + + Gets or sets the edge color of the gradient. + + + + + Gets or sets the style of the gradient. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with center, edge colors and style. + + Center color. + Edge color. + Gradient style. + + + + Class represents the hatch fill. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the background color. + + + + + Gets or sets the hatch style. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with foreground, background colors and hatch style. + + Foreground color. + Background color. + Hatch style. + + + + Class represents the glass fill. + + + + + Gets or sets the fill color. + + + + + Gets or sets the blend value. + + Value must be between 0 and 1. + + + + + Gets or sets a value determines whether to draw a hatch or not. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with given color, blend ratio and hatch style. + + Color. + Blend ratio (0..1). + Display the hatch. + + + + Class represents the Texture fill. + + + + + Gets or sets value, indicating that image should preserve aspect ratio + + + + + Gets or sets the image width + + + + + Gets or sets the image height + + + + + Gets or sets the texture wrap mode + + + + + Gets or sets the image index + + + + + Gets or sets the image data + + + + + Image left offset + + + + + Image top offset + + + + + Sets image data to imageData + + input image data + + + + Set image + + input image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default texture. + + + + + Initializes the class with specified image. + + + + + + Initializes the class with specified image. + + + + + + Font header + + + + + TrueTypeFont object + + + + + Create outline for group of characters + + text as array of glyph's indexes + position of text + font size + text in form of outline vectors + + + + Create outline for text string + + text which will be transformed to outline + position of text + font size in px + text in form of outline vectors + + + + + + + Expected default behaviour as version 2020.3 + + + + + We use dictionary and pack "Index To Location" table (reorder glyph indexes) + + + + + Get or set current script + + + + + Get or set current Language + + + + + Get available scripts + + + + + Get available languages for script + + + + + + + Get available features for language and script + + + + + + + + Prepare tables for drawing, subsetting and so on + + always true + + + + Return raw image of the font + + Array of font bytes + + + + + Parse font supplement tables which store properties of the font + + + + + Create glyph outline assigned to specific position + + unicode character which will be drawn + size of the character + position of outline + outline of character + + + + Get glyph's outline + + unicode charter + outline image size + + + + + Constructor of TrueTypeFont object + + The start of RAW image of font or font collection + Actual address of font within RAW image + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of OutlineTextMetric structure + + + + + Emulation of Uniscribe GetOutlineTextMetrics + + Reference to metric structure + + + + Translate text to positions of glyphs in glyph tables and glyphs width + + + size in px + + + + + + + + + Destructor of TrueTypeFont object + + + + + Font descriptor + + + + + Indicates that the point is the start of a figure. + + + + + Indicates that the point is one of the two endpoints of a line. + + + + + Indicates that the point is an endpoint or control point of a cubic Bézier spline. + + + + + Masks all bits except for the three low-order bits, which indicate the point type. + + + + + Specifies that the point is a marker. + + + + + Specifies that the point is the last point in a closed subpath (figure). + + + + + FontHeader table + + + + + Define type of font file + + + + + Classic TrueType font + + + + + Collection of TrueType fonts + + + + + OpenType font format + + + + + + + + GlyphSubstitution table + + + + + Return true if was applied + + + + + + + + + Return coverageIndex for ApplyForce or if fail then return -1 + + + + + + + + Apply this Substitution with specified coverageIndex, cant be called only after IsApply + + + + + + + + + Table with encoded glyphs' outline + + + + + HorizontalMetrix table + + + + + IndexToLocation table + + + + + Kerning table + + + + + MaximumProfile table + + + + + Name table keep human friendly description about font properties, including font names, author and copyright notes + + + + + OS/2 and Windows Metrics table + + + + + Description of FontTextMetric structure + + + + + Description of FontPanose structure + + + + + Request font file + + System.Drawing.Font object + System/IO.Stream object + + + + Get full path to a font file by it's identifier + + font name with attributes + path to a font file + + + + assign full path to a font file to it's identifier + + font name with attributes + path to a font file + + + + Request font file location + + + + + Request font file location + + + + + Register font file + + + + + Will be removed soon + + + + + Different caching strategies + + + + + Progress callback type definition + + Progress information + + + + Progress callback event + + + + + Open and parse TrueType file + + + + + + + + Find all fonts files in directory and it's subdirectories + + Directory where find fond files + Defines file which collect found fonts + + + + Get TrueType font from static collection + + String which identifies font - family name + "-B" for bold and "-I" for italic + + + + + Get font by its name and bold/italic attributes + + + TrueType font object + + + + Workaround function for avoid font duplicates + + if true then font append to collection, if false then font append to hash + Internal font structure + This parameter defines path to font file if file append to hash. Not used otherwise + + + + Parse raw image of font data and create TrueTypeFont objects from this image + + Defines font or collections + Pointer to memory of raw font data + + + + + Build list of fonts + + Optional path to font.list folder. + + + + Enumerate available fonts + + + + + Base class which is parent of any table in TrueType font or collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines how boolean values are formatted and displayed. + + + + + Gets or sets a string that will be displayed if value is false. + + + + + Gets or sets a string that will be displayed if value is true. + + + + + + + + + + + + + + + + + Initializes a new instance of the BooleanFormat class with default settings. + + + + + Defines how currency values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in currency values. + + + + + Gets or sets the string to use as the decimal separator in currency values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in currency values. + + + + + Gets or sets the string to use as the currency symbol. + + + + + Gets or sets the format pattern for positive currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0$n + 1n$ + 2$ n + 3n $ + + + + + + Gets or sets the format pattern for negative currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0 ($n) + 1 -$n + 2 $-n + 3 $n- + 4 (n$) + 5 -n$ + 6 n-$ + 7 n$- + 8 -n $ + 9 -$ n + 10n $- + 11$ n- + 12$ -n + 13n- $ + 14($ n) + 15(n $) + + + + + + + + + + + + + + + + + + Initializes a new instance of the CurrencyFormat class with default settings. + + + + + Represents a format that uses the Format string to display values. + + + + + Gets or sets a format string. + + + Default format is "G". For example, if you want to format a date, use the following + format string: "MM/dd/yyyy". See the System.String.Format method for list + of possible format strings. + + + + + + + + + + + + + + + + + Initializes a new instance of the CustomFormat class with default settings. + + + + + Defines how date values are formatted and displayed. + + + + + + + + Initializes a new instance of the DateFormat class with default settings. + + + + + Base class for all formats. + + + The format is used to format expression value in a object. + + + + + Gets the short format name (e.g. without a "Format" suffix). + + + + + Creates exact copy of this format. + + The copy of this format. + + + + Formats the specified value. + + The value to format. + The string that represents the formatted value. + + + + + + + + + + Represents a collection of formats used by the and + objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies formats from another collection. + + Collection to copy from. + + + + + + + + + + Represents a format used to display values with no formatting. + + + + + + + + + + + + + + + + + Defines how numeric values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in numeric values. + + + + + Gets or sets the string to use as the decimal separator in numeric values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in numeric values. + + + + + Gets or sets the format pattern for negative numeric values. + + This property can have one of the values in the following table. + The symbol n is a number. + + ValueAssociated Pattern + 0(n) + 1-n + 2- n + 3n- + 4n - + + + + + + + + + + + + + + + + + + Initializes a new instance of the NumberFormat class with default settings. + + + + + Defines how percent values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in percent values. + + + + + Gets or sets the string to use as the decimal separator in percent values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in percent values. + + + + + Gets or sets the string to use as the percent symbol. + + + + + Gets or sets the format pattern for positive percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0n % + 1n% + 2%n + 3% n + + + + + + Gets or sets the format pattern for negative percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0 -n % + 1 -n% + 2 -%n + 3 %-n + 4 %n- + 5 n-% + 6 n%- + 7 -%n + 8 n %- + 9 % n- + 10% -n + 11n- % + + + + + + + + + + + + + + + + + + Initializes a new instance of the PercentFormat class with default settings. + + + + + Defines how time values are formatted and displayed. + + + + + + + + Initializes a new instance of the TimeFormat class with default settings. + + + + + Represents a group footer band. + + + + + Specifies a sort order. + + + This enumeration is used in the group header and in the "Matrix" object. + + + + + Specifies no sort (natural order). + + + + + Specifies an ascending sort order. + + + + + Specifies a descending sort order. + + + + + Represents a single highlight condition used by the property + of the . + + + + + Gets or sets a highlight expression. + + + This property can contain any valid boolean expression. If value of this expression is true, + the fill and font settings will be applied to the TextObject. + + + + + Gets or sets the visibility flag. + + + If this property is set to false, the Text object will be hidden if the + condition is met. + + + + + + + + + + + Creates exact copy of this condition. + + A copy of this condition. + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the hyperlink type. + + + + + Specifies the hyperlink to external URL such as "http://www.fast-report.com", "mailto:" + or any other system command. + + + + + Specifies hyperlink to a given page number. + + + + + Specifies hyperlink to a bookmark. + + + + + Specifies hyperlink to external report. This report will be run when you follow the hyperlink. + + + + + Specifies hyperlink to this report's page. The page will be run when you follow the hyperlink. + + + + + Specifies a custom hyperlink. No actions performed when you click it, you should handle it + in the object's Click event handler. + + + + + This class contains a hyperlink settings. + + + + + Gets or sets the kind of hyperlink. + + + Use the Kind property to define hyperlink's behavior. + The hyperlink may be used to navigate to the external url, the page number, + the bookmark defined by other report object, the external report, the other page of this report, + and custom hyperlink. + + + + + Gets or sets the expression which value will be used for navigation. + + + Normally you should set the Expression property to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to some fixed data (URL or page number, for example), + use the property instead. + + + + + Gets or sets a value that will be used for navigation. + + + Use this property to specify the fixed data (such as URL, page number etc). If you want to + navigate to some dynamically calculated value, use the property instead. + + + + + Gets or sets a value that indicate should be links open in new tab or not. + + + It works for HTML-export only! + + + + + Gets or sets an external report file name. + + + Use this property if is set to DetailReport. + When you follow the hyperlink, this report will be loaded and run. + You also may specify the report's parameter in the property. + + + + + Gets or sets the name of this report's page. + + + Use this property if is set to DetailPage. + When you follow the hyperlink, the specified page will be executed. It may contain the + detailed report. You also may specify the report's parameter in the + property. + + + + + Gets or sets a parameter's name that will be set to hyperlink's value. + + + Use this property if is set to DetailReport or DetailPage. + If you want to pass the hyperlink's value to the report's parameter, specify the + parameter name in this property. This parameter will be set to the hyperlink's value + before running a report. It may be used to display detailed information about clicked item. + It is also possible to pass multiple values to several parameters. If hyperlink's value + contains separators (the separator string can be set in the + property), it will be splitted to several values. That values will be passed to nested parameters + of the ReportParameter (you should create nested parameters by youself). For example, you have + the ReportParameter called "SelectedValue" which has two nested parameters: the first one is + "Employee" and the second is "Category". The hyperlink's value is "Andrew Fuller;Beverages". + It will be splitted to two values: "Andrew Fuller" and "Beverages". The first nested parameter + of the ReportParameter that is "Employee" in our case will be set to "Andrew Fuller"; + the second nested parameter ("Category") will be set to "Beverages". + Note: when you create a parameter in the detailed report, don't forget to set + its DataType property. It is used to convert string values to actual data type. + + + + + + Gets or sets a string that will be used as a separator to pass several values + to the external report parameters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Provides the serialize/deserialize functionality. + + + + + Serializes the object. + + Writer object. + + + + Deserializes the object. + + Reader object. + + + + Implement this interface if your object can contain list of child objects. + + + + + Gets a value indicating that this object can contain the specified child object. + + Child object. + true if this object can contain the specified child object; otherwise, false. + + + + Gets a list of child objects. + + List to fill with values. + + + + Adds a child object to this object's childs. + + Object to add. + + + + Removes a specified object from this object's childs. + + + + + + Returns z-order of the specified child object. + + Child object. + Z-order of the specified object. + + This method must return the index of a specified child object in the internal child list. + + + + + Sets the z-order of the specified object. + + Child object. + New Z-order. + + This method must place the specified child object at the specified position in the internal child list. + + + + + Updates the children layout when the size of this object is changed by dx, dy values. + + X delta. + Y delta. + + This method must update positions/sizes of child objects whose Dock or Anchor properties + are set to non-default values. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents an overlay band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + This class contains the page columns settings. + It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + Gets or sets the column width. + + + + + Gets or sets a list of column starting positions. + + + Each value represents a column starting position measured in the millimeters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Represents a page footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a page header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the alignment of a image in the border. + + + + + Specifies that image is not aligned in the layout rectangle. + + + + + Specifies that image is aligned in the top-left of the layout rectangle. + + + + + Specifies that image is aligned in the top-center of the layout rectangle. + + + + + Specifies that image is aligned in the top-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies the language of the report's script. + + + + + The C# language. + + + + + The VisualBasic.Net language. + + + + + Specifies the quality of text rendering. + + + + + The default text quality, depends on system settings. + + + + + The regular quality. + + + + + The "ClearType" quality. + + + + + The AntiAlias quality. This mode may be used to produce the WYSIWYG text. + + + + + The "SingleBitPerPixel" quality. + + + + + The "SingleBitPerPixelGridFit" quality. + + + + + Specifies the report operation. + + + + + Specifies no operation. + + + + + The report is running. + + + + + The report is printing. + + + + + The report is exporting. + + + + + Specifies the page range to print/export. + + + + + Print all pages. + + + + + Print current page. + + + + + Print pages specified in the PageNumbers property of the PrintSettings. + + + + + The automatic shift mode. + + + + + Do not shift the object. + + + + + Shift the object up or down if any object above it shrinks or grows. + + + + + Shift the object up or down if any object above it shrinks or grows. + Objects must have overlapped x-coordinates. + + + + + Specifies where to print an object. + + + + + Do not print the object. + + + + + Print the object on the first page. If this flag is not set, the object will not + be printed on the first page. + + + + + Print the object on the last page. If this flag is not set, the object will not + be printed on the last page. You should set the report's double pass option to make + it work correctly. + + + + + Print the object on odd pages only. + + + + + Print the object on even pages only. + + + + + Print the object on band with "Repeat on Every Page" flag when that band is repeated. + + + + + Print the object if the report has single page only. + + + + + Specifies the style properties to use when style is applied. + + + + + Use the fill property of the style. + + + + + Use all style properties. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Provides data for the event. + + + + + Gets a name of the file to load the report from. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The name of the file to load the report from. + The report. + + + + Provides data for the event. + + + + + Gets an expression. + + + + + Gets or sets a object. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The text of expression. + The name of the file to load the report from. + The report. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Provides data for the Progress event. + + + + + Gets a progress message. + + + + + Gets the current page number. + + + + + Gets the number of total pages. + + + + + Initializes a new instance of the class using the specified + message, page number and total number of pages. + + The progress message. + Current page number. + Number of total pages. + + + + Represents the method that will handle the Progress event. + + The source of the event. + The event data. + + + + Provides data for the DatabaseLogin event. + + + + + Gets or sets the connection string. + + + + + Gets or sets an user name. + + + + + Gets or sets a password. + + + + + Initializes a new instance of the class using the specified + connection string. + + The connection string. + + + + Represents the method that will handle the DatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the AfterDatabaseLogin event. + + + + + Gets the DbConnection object. + + + + + Initializes a new instance of the class using + the specified connection. + + The connection object. + + + + Represents the method that will handle the AfterDatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the FilterProperties event. + + + + + Gets the property descriptor. + + + + + Gets or sets a value that indicates whether this property should be skipped. + + + + + Represents the method that will handle the FilterProperties event. + + The source of the event. + The event data. + + + + Provides data for the GetPropertyKind event. + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets or sets the kind of property. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Provides data for the GetTypeInstance event. + + + + + Gets the type. + + + + + Gets or sets the instance of type. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Event arguments for custom Export parameters + + + + + Used to set custom export parameters + + + + + Specifies the Save Mode of designed report. + + + + + The saving allowed to all. + + + + + The saving in original place. + + + + + The saving allowed to current user. + + + + + The saving allowed to current role/group. + + + + + The saving allowed with other security permissions. + + + + + The saving not allowed. + + + + + Custom saving rules. + + + + + This class represents the report information such as name, author, description etc. + + + + + Gets or sets the name of a report. + + + + + Gets or sets the author of a report. + + + + + Gets or sets the report version. + + + + + Gets or sets the report description. + + + + + Gets or sets the picture associated with a report. + + + + + Gets or sets the report creation date and time. + + + + + Gets or sets a value indicating that report was modified in the designer. + + + + + Gets or sets a value that determines whether to fill the property + automatically. + + + + + Gets or sets the ratio that will be used when generating a preview picture. + + + + + Gets the version of FastReport that was created this report file. + + + + + Gets or sets the Tag string object for this report file. + + + + + Gets or sets SaveMode property. + + + + + Resets all properties to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the default paper size used when creating a new report. + + + + + A4 paper (210 x 297 mm). + + + + + Letter paper (8.5 x 11 inches, 216 x 279 mm). + + + + + Represents a report title band. + + + + + Internal representation of RichText document + + + + + This class represents a RTF run. + + + + + Insert paragraph into list of paragraphs + + + + + Insert row into list of paragraphs + + + + + This class represents a RTF properies. + + + + + This class parses an entiry RTF document. + + + + + + + + + + + + + + + + + Get RTF structure based on range of elements + + + + + + Save RTF document to text stream + + + + + This class represents a RTF document header. + + + Refer to RTF-1.7 spec for detail description + + + + + Parser of RTF header. + + + Return false on finish of header + + + + + This class represents a RTF text paragraph. + + + + + This class detect a RTF control sequences and text. + + + + + This class represents a RTF column description. + + + + + + Create RTF row + + + + + + + Save RTF document to plain text stream + + + + + Specifies a kind of the shape. + + + + + Specifies a rectangle shape. + + + + + Specifies a round rectangle shape. + + + + + Specifies an ellipse shape. + + + + + Specifies a triangle shape. + + + + + Specifies a diamond shape. + + + + + Represents a sort condition used in the . + + + + + Gets or sets an expression used to sort data band rows. + + + This property can contain any valid expression. + + + + + Gets or sets a value indicating that sort must be performed in descending order. + + + + + Serializes the class. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the class. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified expression. + + + + + Initializes a new instance of the class with specified expression and sort order. + + + + + Represents a collection of sort conditions used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Assigns values from another collection. + + Collection to assign from. + + + + Represents a style. + + + + Style class holds border, fill, text fill and font settings. It can be applied to any report object of + type. + + + The Report object holds list of styles in its property. Each style has + unique name. To apply a style to the report component, set its + property to the style name. + + + + + + Gets or sets a name of the style. + + + The name must be unique. + + + + + + + + + + + Creates exact copy of this Style. + + Copy of this style. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of styles used in the . + + + + + Gets or sets the name of the style. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style with specified name. + + The name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style with specified name is in the collection. + + The style name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file. + + The name of the file. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file. + + The name of the file. + + + + Creates exact copy of this collection. + + The copy of this collection. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of the objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style collection with specified name. + + The style collection name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style collection with specified name is in the collection. + + The style collection name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Gets an array containing all collection items. + + An array containing all collection items. + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file with specified name. + + File name to save to. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file with specified name. + + Name of a file. + + + + Specifies the horizontal alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the left of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the right of the layout rectangle. + + + + + Specifies that text is aligned in the left and right sides of the layout rectangle. + + + + + Specifies the vertical alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the top of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the bottom of the layout rectangle. + + + + + The type of text renderer + + + + + The default render + + + + + Render with some html tags and stable logic + + + + + Render with img tags, span etc. Experimental and unstable logic + + + + + The format of paragraph + + + + + The first line on each paragraph, not effect if value less then 0 + + + + + The distance between lines, not effect if value less then 0 + + + + + The spacing type for distance between line calculation + + + + + The value for a multiplication line height for adding spacing + + + + + Skip the line indent in the first paragraph, for broken paragraphs + + + + + clone with new scale; + + + + + + + The spacing type between lines + + + + + Single spacing, not effect from LineSpacing + + + + + Minimal spacing in exactly size + + + + + The specific distance between the lines, for some exports, does not work if the distance value is too small. + + + + + The calculated distance between lines, for some exports, does not work if the distance value is too small. + + + + + Specifies the behavior of the AutoShrink feature of TextObject. + + + + + AutoShrink is disabled. + + + + + AutoShrink decreases the Font.Size property of the TextObject. + + + + + AutoShrink decreases the FontWidthRatio property of the TextObject. + + + + + Specifies how to display the duplicate values. + + + + + The TextObject can show duplicate values. + + + + + The TextObject with duplicate value will be hidden. + + + + + The TextObject with duplicate value will be shown but with no text. + + + + + Several TextObject objects with the same value will be merged into one TextObject object. + + + + + Specifies how the report engine processes the text objects. + + + + + Specifies the default process mode. The text object is processed just-in-time. + + + + + Specifies that the text object must be processed when the entire report is finished. This mode + can be used to print grand total value (which is normally calculated at the end of report) in the + report title band. + + + + + Specifies that the text object must be processed when the entire report page is finished. This mode + can be used if the report template consists of several report pages. + + + + + Specifies that the text object must be processed when any report page is finished. This mode + can be used to print the page total (which is normally calculated at the page footer) in the + page header band. + + + + + Specifies that the text object must be processed when the column is finished. This mode + can be used to print the column total (which is normally calculated at the column footer) in the + column header band. + + + + + Specifies that the text object must be processed when the data block is finished. This mode can be + used to print a total value in the data header (which is normally available + in the data footer only). + + + + + Specifies that the text object must be processed when the group is finished. This mode can be + used to print a total value in the group header (which is normally available + in the group footer only). + + + + + Specifies that the text object is processed manually when you call the Engine.ProcessObject + method in the report script. + + + + + Represents text outline. + + + + + Gets or sets a value indicating that outline is enabled. + + + + + Enable or disable draw the outline behind of text. + + + + + Gets or sets the outline color. + + + + + Gets or sets the outline width. + + + + + Specifies the style of an outline. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + True if outline enabled. + Outline color. + Outline width. + Outline style. + True if outline should be drawn behind text. + + + + Copies the content of another TextOutline. + + The TextOutline instance to copy the contents from. + + + + Creates the exact copy of this outline. + + Copy of this outline. + + + + Serializes the TextOutline. + + Writer object. + TextOutline property name. + Another TextOutline to compare with. + + + + Represents a cache of graphics objects such as pens, brushes, fonts and text formats. + + + Cache holds all used graphics objects. There is no need to dispose objects returned + by GetXXX calls. + + This example demonstrates how to use graphic cache. + + public void Draw(FRPaintEventArgs e) + { + Brush brush = e.Cache.GetBrush(BackColor); + Pen pen = e.Cache.GetPen(BorderColor, 1, BorderStyle); + e.Graphics.FillRectangle(brush, Bounds); + e.Graphics.DrawRectangle(pen, Bounds); + } + + + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + The Pen object. + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + Line join of a pen. + The Pen object. + + + + Gets a brush with specified color. + + Color of a brush. + The SolidBrush object. + + + + Gets a font with specified settings. + + Name of a font. + Size of a font. + Style of a font. + The Font object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + The StringFormat object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + Default distance between default tabs stops. + The StringFormat object. + + + + Disposes resources used by this object. + + + + + Initializes a new instance of the GraphicCache class with default settings. + + + + + A strongly typed object that readily casts an intrinsic + object to the other intrinsic types when possible. + + + The Variant class is an intrinsic object container structure + inspired by Visual Basic 6.0's Variant. The key features + of a Variant class include the ability to perform typecasts and + arithmetic between types that are not normally considered compatible. + For example, if a Variant class contains a string describing a + number, such as "1.1", then floating point arithmetic can be + performed on it. + Variants are normally considered dangerous because they + strip away the effectiveness of type safety, which is the + reason why the Visual Basic 6.0 Variant was left out of + Visual Basic .NET. However, this implementation restores the + Variant structure, both as a proof of concept and as a + restoration of the utility and positive merits of the Variant + where it can be used responsibly. + + + + + Creates a strongly typed object that readily casts a primitive + object to the other primitive types when possible. + + + + + The actual value being stored in its original , + returned as an . + + + + + The of the property. + + + + + Returns the for this instance. + + The enumerated constant that is the + of the class or value type that implements this interface. + + + + Returns the string equivalent of the property. + + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + The object after typecasting. + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + An + interface implementation that supplies culture-specific formatting information. + The object after typecasting. + + + + Returns true if the property implements + + + + + Returns true if the property + is a numeric intrinsic value. + + + + + Returns true if the property + is a numeric intrinsic value or else can be parsed into + a numeric intrinsic value. + + + + + Returns true if the value is a date or can be parsed into a date. + + + + + Returns true if the value is a TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent 16-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + Addition operator. + + + If the value on the right is a + or a , + the Variant is converted to a string and appended. + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Subtraction operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Unary minus operator. + + + + + Greater than operator. + + + + + Greater than or equal operator. + + + + + Less than operator. + + + + + Less than or equal operator. + + + + + Multiplication operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Division operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Modulus operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise And operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise Or operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Inequality operator. + + + + + The opposite of == + + + + + Equality operator. + First attempts to compare the left value after + temporarily converting it to the type of the right value. + If the conversion cannot occur, such as if the value is not an + intrinsic value type, the comparison occurs at the + level using Object.Equals. + + + + + + + + Equality operator. + + + + + + + + Equality operator. + + + + + + + + Returns property unless the value on the right + is null. If the value on the right is null, returns "". + + + + + + Converts the value of this instance to an equivalent + using the specified culture-specific formatting information. + + + + + + + See . + + + + + + See . + + + + + + + Converts an object to a boolean. + For any type, if null, returns false. + For Boolean: true/false. + For String: "", "false", "0", etc. == false; + "1", "true", etc. == true, else true. + For numeric intrinsics: 0 == false, else true. + For any other non-null object, returns true. + + The string to be converted + The boolean value of this string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the watermark image size mode. + + + + + Specifies the normal (original) size. + + + + + Specifies the centered image. + + + + + Specifies the stretched image. + + + + + Specifies the stretched image that keeps its aspect ratio. + + + + + Specifies the tiled image. + + + + + Specifies the watermark text rotation. + + + + + Specifies a horizontal text. + + + + + Specifies a vertical text. + + + + + Specifies a diagonal text. + + + + + Specifies a backward diagonal text. + + + + + Represents the report page watermark. + + + Watermark can draw text and/or image behind the page objects on in front of them. To enable + watermark, set its Enabled property to true. + + + + + Gets or sets avalue indicating that watermark is enabled. + + + + + Gets or sets the watermark image. + + + + + Gets or sets the watermark image size mode. + + + + + Gets or sets an image transparency. + + + Valid values are 0..1. 1 means totally transparent image. + + + + + Gets or sets the watermark text. + + + + + Gets or sets a font of the watermark text. + + + + + Gets or sets a text fill. + + + + + Gets or sets a text rotation. + + + + + Gets or sets a value indicates that the text should be displayed on top of all page objects. + + + + + Gets or sets a value indicates that the image should be displayed on top of all page objects. + + + + + + + + + + Draws watermark image. + + + + + + + + + Draws watermark text. + + + + + + + + + Serializes the watermark. + + Writer object. + The watermark property name. + Another Watermark object to compare with. + + This method is for internal use only. + + + + + Disposes resources used by the watermark. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this Watermark. + + Copy of this watermark. + + + + Initializes a new instance of the class with default settings. + + + + + An SVG element to render circles to the document. + + + + + Gets the center point of the circle. + + The center. + + + + Gets the representing this element. + + + + + Renders the circle to the specified object. + + The graphics object. + + + + Initializes a new instance of the class. + + + + + Represents and SVG ellipse element. + + + + + Gets the for this element. + + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Initializes a new instance of the class. + + + + + Represents and SVG image + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + Represents and SVG line element. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an element that is using a GraphicsPath as rendering base. + + + + + SvgPolygon defines a closed shape consisting of a set of connected straight line segments. + + + + + The points that make up the SvgPolygon + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + SvgPolyline defines a set of connected straight line segments. Typically, defines open shapes. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an SVG rectangle that could also have rounded edges. + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the position where the left point of the rectangle should start. + + + + + Gets or sets the position where the top point of the rectangle should start. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets or sets the X-radius of the rounded edges of this rectangle. + + + + + Gets or sets the Y-radius of the rounded edges of this rectangle. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + The class that all SVG elements should derive from when they are to be rendered. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the associated if one has been specified. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets the algorithm which is to be used to determine the clipping region. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the fill of the to the specified + + The object to render to. + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Gets or sets a value to determine whether the element will be rendered. + + + + + Gets or sets a value to determine whether the element will be rendered. + Needed to support SVG attribute display="none" + + + + + Gets or sets the fill of this element. + + + + + Defines the methods and properties that an must implement to support clipping. + + + + + Gets or sets the ID of the associated if one has been specified. + + + + + Specifies the rule used to define the clipping region when the element is within a . + + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Defines a path that can be used by other elements. + + + + + Specifies the coordinate system for the clipping path. + + + + + Initializes a new instance of the class. + + + + + Gets this 's region to be used as a clipping region. + + A new containing the to be used for clipping. + + + + + + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Indicates the algorithm which is to be used to determine the clipping region. + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from + that point to infinity in any direction and then examining the places where a segment of the + shape crosses the ray. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside. + + + + + Provides properties and methods to be implemented by view port elements. + + + + + Gets or sets the viewport of the element. + + + + + Description of SvgAspectRatio. + + + + Specifies the color space for gradient interpolations, color animations and alpha compositing. + When a child element is blended into a background, the value of the ‘color-interpolation’ property on the child determines the type of blending, not the value of the ‘color-interpolation’ on the parent. For gradients which make use of the ‘xlink:href’ attribute to reference another gradient, the gradient uses the ‘color-interpolation’ property value from the gradient element which is directly referenced by the ‘fill’ or ‘stroke’ property. When animating colors, color interpolation is performed according to the value of the ‘color-interpolation’ property on the element being animated. + + + Indicates that the user agent can choose either the sRGB or linearRGB spaces for color interpolation. This option indicates that the author doesn't require that color interpolation occur in a particular color space. + + + Indicates that color interpolation should occur in the sRGB color space. + + + Indicates that color interpolation should occur in the linearized RGB color space as described above. + + + The value is inherited from the parent element. + + + Defines the coordinate system for attributes ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’. + + + If markerUnits="strokeWidth", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in a coordinate system which has a single unit equal the size in user units of the current stroke width (see the ‘stroke-width’ property) in place for the graphic object referencing the marker. + + + If markerUnits="userSpaceOnUse", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in the current user coordinate system in place for the graphic object referencing the marker (i.e., the user coordinate system for the element referencing the ‘marker’ element via a ‘marker’, ‘marker-start’, ‘marker-mid’ or ‘marker-end’ property). + + + + Defines the various coordinate units certain SVG elements may use. + + + + + Indicates that the coordinate system of the owner element is to be used. + + + + + Indicates that the coordinate system of the entire document is to be used. + + + + This is the descriptor for the style of a font and takes the same values as the 'font-style' property, except that a comma-separated list is permitted. + + + Indicates that the font-face supplies all styles (normal, oblique and italic). + + + Specifies a font that is classified as 'normal' in the UA's font database. + + + Specifies a font that is classified as 'oblique' in the UA's font database. Fonts with Oblique, Slanted, or Incline in their names will typically be labeled 'oblique' in the font database. A font that is labeled 'oblique' in the UA's font database may actually have been generated by electronically slanting a normal font. + + + Specifies a font that is classified as 'italic' in the UA's font database, or, if that is not available, one labeled 'oblique'. Fonts with Italic, Cursive, or Kursiv in their names will typically be labeled 'italic' + + + The weight of a face relative to others in the same font family. + + + All font weights. + + + The value is inherited from the parent element. + + + Same as . + + + Same as . + + + One font weight darker than the parent element. + + + One font weight lighter than the parent element. + + + + + + + + + + + + Same as . + + + + + + + + + Same as . + + + + + + + + + + Represents an orientation in an Scalable Vector Graphics document. + + + + + Gets the value of the unit. + + + + + Gets the value of the unit. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Overflow is not rendered. + + + The value is inherited from the parent element. + + + The overflow is rendered - same as "visible". + + + Overflow is rendered. + + + Overflow causes a scrollbar to appear (horizontal, vertical or both). + + + + Represents a list of used with the and . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + This property describes decorations that are added to the text of an element. Conforming SVG Viewers are not required to support the blink value. + + + The value is inherited from the parent element. + + + The text is not decorated + + + The text is underlined. + + + The text is overlined. + + + The text is struck through. + + + The text will blink. + + + Indicates the type of adjustments which the user agent shall make to make the rendered length of the text match the value specified on the ‘textLength’ attribute. + + The user agent is required to achieve correct start and end positions for the text strings, but the locations of intermediate glyphs are not predictable because user agents might employ advanced algorithms to stretch or compress text strings in order to balance correct start and end positioning with optimal typography. + Note that, for a text string that contains n characters, the adjustments to the advance values often occur only for n−1 characters (see description of attribute ‘textLength’), whereas stretching or compressing of the glyphs will be applied to all n characters. + + + + Indicates that only the advance values are adjusted. The glyphs themselves are not stretched or compressed. + + + Indicates that the advance values are adjusted and the glyphs themselves stretched or compressed in one axis (i.e., a direction parallel to the inline-progression-direction). + + + Indicates the method by which text should be rendered along the path. + + + Indicates that the glyphs should be rendered using simple 2x3 transformations such that there is no stretching/warping of the glyphs. Typically, supplemental rotation, scaling and translation transformations are done for each glyph to be rendered. As a result, with align, fonts where the glyphs are designed to be connected (e.g., cursive fonts), the connections may not align properly when text is rendered along a path. + + + Indicates that the glyph outlines will be converted into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. + + + Indicates how the user agent should determine the spacing between glyphs that are to be rendered along a path. + + + Indicates that the glyphs should be rendered exactly according to the spacing rules as specified in Text on a path layout rules. + + + Indicates that the user agent should use text-on-a-path layout algorithms to adjust the spacing between glyphs in order to achieve visually appealing results. + + + + Represents a unit in an Scalable Vector Graphics document. + + + + + Gets and empty . + + + + + Gets an with a value of none. + + + + + Gets a value to determine whether the unit is empty. + + + + + Gets whether this unit is none. + + + + + Gets the value of the unit. + + + + + Gets the of unit. + + + + + Converts the current unit to one that can be used at render time. + + The container element used as the basis for calculations + The representation of the current unit in a device value (usually pixels). + + + + Converts the current unit to a percentage, if applicable. + + An of type . + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The type. + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Defines the various types of unit an can be. + + + + + Indicates that the unit holds no value. + + + + + Indicates that the unit is in pixels. + + + + + Indicates that the unit is equal to the pt size of the current font. + + + + + Indicates that the unit is equal to the x-height of the current font. + + + + + Indicates that the unit is a percentage. + + + + + Indicates that the unit has no unit identifier and is a value in the current user coordinate system. + + + + + Indicates the the unit is in inches. + + + + + Indicates that the unit is in centimeters. + + + + + Indicates that the unit is in millimeters. + + + + + Indicates that the unit is in picas. + + + + + Indicates that the unit is in points, the smallest unit of measure, being a subdivision of the larger . There are 12 points in the . + + + + + Represents a list of . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + It is often desirable to specify that a given set of graphics stretch to fit a particular container element. The viewBox attribute provides this capability. + + + + + Gets or sets the position where the viewport starts horizontally. + + + + + Gets or sets the position where the viewport starts vertically. + + + + + Gets or sets the width of the viewport. + + + + + Gets or sets the height of the viewport. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The min X. + The min Y. + The width. + The height. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An represents an SVG fragment that can be the root element or an embedded fragment of an SVG document. + + + + + Gets the SVG namespace string. + + + + + Gets or sets the position where the left point of the svg should start. + + + + + Gets or sets the position where the top point of the svg should start. + + + + + Gets or sets the width of the fragment. + + The width. + + + + Gets or sets the height of the fragment. + + The height. + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Indicates which font family is to be used to render the text. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Gets the for this element. + + + + + + Gets the bounds of the svg element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + An element used to group SVG shapes. + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + The �switch� element evaluates the �requiredFeatures�, �requiredExtensions� and �systemLanguage� attributes on its direct child elements in order, and then processes and renders the first child for which these attributes evaluate to true + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An element used to group SVG shapes. + + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Applies the required transforms to . + + The to be transformed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Initializes a new instance of the class. + + + + + The �foreignObject� element allows for inclusion of a foreign namespace which has its graphical content drawn by a different user agent + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + matrix | saturate | hueRotate | luminanceToAlpha + Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix. If attribute �type� is not specified, then the effect is as if a value of matrix were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + + Gets or sets the radius of the blur (only allows for one value - not the two specified in the SVG Spec) + + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the x-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the y-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + A filter effect consists of a series of graphics operations that are applied to a given source graphic to produce a modified graphical result. + + + + + Gets or sets the position where the left point of the filter. + + + + + Gets or sets the position where the top point of the filter. + + + + + Gets or sets the width of the resulting filter graphic. + + + + + Gets or sets the height of the resulting filter graphic. + + + + + Gets or sets the color-interpolation-filters of the resulting filter graphic. + NOT currently mapped through to bitmap + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Publish the element name to be able to differentiate non-svg elements. + + + + If specified, upon conversion, the default value will result in 'null'. + + + Creates a new instance. + + + Creates a new instance. + Specified the default value of the enum. + + + Attempts to convert the provided value to . + + + Attempts to convert the value to the destination type. + + + + Defines the methods and properties required for an SVG element to be styled. + + + + + Converts string representations of colours into objects. + + + + + Converts the given object to the converter's native type. + + A that provides a format context. You can use this object to get additional information about the environment from which this converter is being invoked. + A that specifies the culture to represent the color. + The object to convert. + + An representing the converted value. + + The conversion cannot be performed. + + + + + + + Converts HSL color (with HSL specified from 0 to 1) to RGB color. + Taken from http://www.geekymonkey.com/Programming/CSharp/RGB2HSL_HSL2RGB.htm + + + + + + + + + An unspecified . + + + + + A that should inherit from its parent. + + + + + A wrapper for a paint server which isn't defined currently in the parse process, but + should be defined by the time the image needs to render. + + + + + A wrapper for a paint server has a fallback if the primary server doesn't work. + + + + + Provides the base class for all paint servers that wish to render a gradient. + + + + + Initializes a new instance of the class. + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Gets the ramp of colors to use on a gradient. + + + + + Specifies what happens if the gradient starts or ends inside the bounds of the target rectangle. + + + + + Gets or sets the coordinate system of the gradient. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Gets a representing the 's gradient stops. + + The parent . + The opacity of the colour blend. + + + Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle. + + Possible values are: 'pad', which says to use the terminal colors of the gradient to fill the remainder of the target region, 'reflect', which says to reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled, and repeat, which says to repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + If the attribute is not specified, the effect is as if a value of 'pad' were specified. + + + + Use the terminal colors of the gradient to fill the remainder of the target region. + + + Reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled. + + + Repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + + + + Represents a colour stop in a gradient. + + + + + Gets or sets the offset, i.e. where the stop begins from the beginning, of the gradient stop. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the gradient stop (0-1). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The offset. + The colour. + + + + + Render this marker using the slope of the given line segment + + + + + + + + + Render this marker using the average of the slopes of the two given line segments + + + + + + + + + + Common code for rendering a marker once the orientation angle has been calculated + + + + + + + + + Create a pen that can be used to render this marker + + + + + + + Get a clone of the current path, scaled for the stroke width + + + + + + Adjust the given value to account for the width of the viewbox in the viewport + + + + + + + Adjust the given value to account for the height of the viewbox in the viewport + + + + + + + Represents the base class for all paint servers that are intended to be used as a fill or stroke. + + + + + An unspecified . + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + A pattern is used to fill or stroke an object using a pre-defined graphic object which can be replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. + + + + + Specifies a supplemental transformation which is applied on top of any + transformations necessary to create a new pattern coordinate system. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the height of the pattern. + + + + + Gets or sets the X-axis location of the pattern. + + + + + Gets or sets the Y-axis location of the pattern. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Initializes a new instance of the class. + + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Determine how much (approximately) the path must be scaled to contain the rectangle + + Bounds that the path must contain + Path of the gradient + Scale factor + + This method continually transforms the rectangle (fewer points) until it is contained by the path + and returns the result of the search. The scale factor is set to a constant 95% + + + + Specifies the shape to be used at the end of open subpaths when they are stroked. + + + The value is inherited from the parent element. + + + The ends of the subpaths are square but do not extend past the end of the subpath. + + + The ends of the subpaths are rounded. + + + The ends of the subpaths are square. + + + Specifies the shape to be used at the corners of paths or basic shapes when they are stroked. + + + The value is inherited from the parent element. + + + The corners of the paths are joined sharply. + + + The corners of the paths are rounded off. + + + The corners of the paths are "flattened". + + + + Represents an SVG path element. + + + + + Gets or sets a of path data. + + + + + Gets or sets the length of the path. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Parses the specified string into a collection of path segments. + + A containing path data. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if and contains relative coordinate values, otherwise false. + that contains absolute coordinates. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if contains relative coordinate value, otherwise false. + true if contains relative coordinate value, otherwise false. + that contains absolute coordinates. + + + + Convenience wrapper around a graphics object + + + + + Initializes a new instance of the class. + + + + + Creates a new from the specified . + + from which to create the new . + + + + Creates a new from the specified . + + The to create the renderer from. + + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + Based of parent. If parents are also not set, then + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed, crisp edges and geometric precision, but with geometric precision given more importance than speed and crisp edges. + + true + + + + Indicates that the user agent shall emphasize rendering speed over geometric precision and crisp edges. This option will sometimes cause the user agent to turn off shape anti-aliasing. + + false + + + + Indicates that the user agent shall attempt to emphasize the contrast between clean edges of artwork over rendering speed and geometric precision. To achieve crisp edges, the user agent might turn off anti-aliasing for all lines and curves or possibly just for straight lines which are close to vertical or horizontal. Also, the user agent might adjust line positions and line widths to align edges with device pixels. + + false + + + + Indicates that the user agent shall emphasize geometric precision over speed and crisp edges. + + false + + + + The creator of SVG content might want to provide a hint about what tradeoffs to make as the browser renders text. The text-rendering attribute provides these hints. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/text-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the browser shall make appropriate tradeoffs to balance speed, legibility and geometric precision, but with legibility given more importance than speed and geometric precision. + + + + + Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision. This option will sometimes cause some browsers to turn off text anti-aliasing. + + + + + Indicates that the browser shall emphasize legibility over rendering speed and geometric precision. The user agent will often choose whether to apply anti-aliasing techniques, built-in font hinting or both to produce the most legible text. + + + + + Indicates that the browser shall emphasize geometric precision over legibility and rendering speed. This option will usually cause the user agent to suspend the use of hinting so that glyph outlines are drawn with comparable geometric precision to the rendering of path data. + + + + + The image-rendering attribute provides a hint to the browser about how to make speed vs. quality tradeoffs as it performs image processing. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/image-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed and quality, but quality shall be given more importance than speed. + + + + + Indicates that the user agent shall emphasize rendering speed over quality. + + + + + Indicates that the user agent shall emphasize quality over rendering speed. + + + + + Specifies the SVG attribute name of the associated property. + + + + + Gets a containing the XLink namespace (http://www.w3.org/1999/xlink). + + + + + When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. + + An to compare with this instance of . + + true if this instance equals ; otherwise, false. + + + + + Gets the name of the SVG attribute. + + + + + Gets the name of the SVG attribute. + + + + + Gets the namespace of the SVG attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified attribute name. + + The name of the SVG attribute. + + + + Initializes a new instance of the class with the specified SVG attribute name and namespace. + + The name of the SVG attribute. + The namespace of the SVG attribute (e.g. http://www.w3.org/2000/svg). + + + + A collection of Scalable Vector Attributes that can be inherited from the owner elements ancestors. + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The value to return if a value hasn't already been specified. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name and inherits from ancestors if there is no attribute set. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the ancestors value for the same attribute; otherwise the default value of . + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + A collection of Custom Attributes + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + Create a deep copy of this . + + A deep copy of this + + + + Holds a dictionary of the default values of the SVG specification + + + + + Checks whether the property value is the default value of the svg definition. + + Name of the svg attribute + .NET value of the attribute + + + + The class used to create and load SVG documents. + + + + + Initializes a new instance of the class. + + + + + Gets an for this document. + + + + + Overwrites the current IdManager with a custom implementation. + Be careful with this: If elements have been inserted into the document before, + you have to take care that the new IdManager also knows of them. + + + + + + Gets or sets the Pixels Per Inch of the rendered image. + + + + + Gets or sets an external Cascading Style Sheet (CSS) + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + A dictionary of custom entity definitions to be used when resolving XML entities within the document. + An with the contents loaded. + The document at the specified cannot be found. + + + + Attempts to open an SVG document from the specified . + + The containing the SVG document to open. + + + + Attempts to create an SVG document from the specified string data. + + The SVG data. + + + + Opens an SVG document from the specified and adds the specified entities. + + The containing the SVG document to open. + Custom entity definitions. + The parameter cannot be null. + + + + Opens an SVG document from the specified . + + The containing the SVG document XML. + The parameter cannot be null. + + + + Renders the to the specified . + + The to render the document with. + The parameter cannot be null. + + + + Renders the to the specified . + + The to be rendered to. + The parameter cannot be null. + + + + Renders the and returns the image as a . + + A containing the rendered document. + + + + Renders the into a given Bitmap . + + + + + Renders the in given size and returns the image as a . + + A containing the rendered document. + + + + If both or one of raster height and width is not given (0), calculate that missing value from original SVG size + while keeping original SVG size ratio + + + + + + + + Maps a URI to an object containing the actual resource. + + The URI returned from + The current implementation does not use this parameter when resolving URIs. This is provided for future extensibility purposes. For example, this can be mapped to the xlink:role and used as an implementation specific argument in other scenarios. + The type of object to return. The current implementation only returns System.IO.Stream objects. + + A System.IO.Stream object or null if a type other than stream is specified. + + + is neither null nor a Stream type. + The specified URI is not an absolute URI. + + is null. + There is a runtime error (for example, an interrupted server connection). + + + + The base class of which all SVG elements are derived from. + + + + + Gets the name of the element. + + + + + Gets or sets the color of this element which drives the currentColor property. + + + + + Gets or sets the content of the element. + + + + + Gets an of all events belonging to the element. + + + + + Occurs when the element is loaded. + + + + + Gets a collection of all child . + + + + + Gets a value to determine whether the element has children. + + + + + Gets the parent . + + An if one exists; otherwise null. + + + + Gets the owner . + + + + + Gets a collection of element attributes. + + + + + Gets a collection of custom attributes + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Gets or sets the element transforms. + + The transforms. + + + + Gets or sets the ID of the element. + + The ID is already used within the . + + + + Gets or sets the space handling. + + The space handling. + + + + Only used by the ID Manager + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Fired when an Element was added to the children of this Element + + + + + Calls the method with the specified parameters. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Calls the method with the specified as the parameter. + + The that has been removed. + + + + Initializes a new instance of the class. + + + + + Renders this element to the . + + The that the element should use to render itself. + + + Derrived classes may decide that the element should not be written. For example, the text element shouldn't be written if it's empty. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the children of this . + + The to render the child s to. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Recursive method to add up the paths of all children + + + + + + + Recursive method to add up the paths of all children + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Fired when an Atrribute of this Element has changed + + + + + Fired when an Atrribute of this Element has changed + + + + + Gets or sets a value indicating whether this element's is dirty. + + + true if the path is dirty; otherwise, false. + + + + + Force recreation of the paths for the element and it's children. + + + + + Gets or sets the fill of this element. + + + + + Gets or sets the to be used when rendering a stroke around this element. + + + + + Gets or sets the opacity of this element's . + + + + + Gets or sets the width of the stroke (if the property has a valid value specified. + + + + + Gets or sets the opacity of the stroke, if the property has been specified. 1.0 is fully opaque; 0.0 is transparent. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the element. 1.0 is fully opaque; 0.0 is transparent. + + + + + Refers to the AnitAlias rendering of shapes. + + + + + Gets or sets the text anchor. + + + + + Specifies dominant-baseline positioning of text. + + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Refers to the boldness of the font. + + + + + Set all font information. + + + + + Get the font information based on data stored with the text object or inherited from the parent. + + + + + + Describes the Attribute which was set + + + + + Content of this whas was set + + + + + Describes the Attribute which was set + + + + + Represents the state of the mouse at the moment the event occured. + + + + + 1 = left, 2 = middle, 3 = right + + + + + Amount of mouse clicks, e.g. 2 for double click + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Represents a string argument + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Create a deep copy of this . + + A deep copy of this + + + This interface mostly indicates that a node is not to be drawn when rendering the SVG. + + + + Specifies the SVG name of an . + + + + + Gets the name of the SVG element. + + + + + Initializes a new instance of the class with the specified element name; + + The name of the SVG element. + + + + Represents a collection of s. + + + + + Initialises a new instance of an class. + + The owner of the collection. + + + + Returns the index of the specified in the collection. + + The to search for. + The index of the element if it is present; otherwise -1. + + + + Inserts the given to the collection at the specified index. + + The index that the should be added at. + The to be added. + + + + expensive recursive search for nodes of type T + + + + + + + expensive recursive search for first node of type T + + + + + + + Provides the methods required in order to parse and create instances from XML. + + + + + Gets a list of available types that can be used when creating an . + + + + + Creates an from the current node in the specified . + + The containing the node to parse into an . + The parameter cannot be null. + The CreateDocument method can only be used to parse root <svg> elements. + + + + Creates an from the current node in the specified . + + The containing the node to parse into a subclass of . + The that the created element belongs to. + The and parameters cannot be null. + + + + Contains information about a type inheriting from . + + + + + Gets the SVG name of the . + + + + + Gets the of the subclass. + + + + + Initializes a new instance of the struct. + + Name of the element. + Type of the element. + + + + Initializes a new instance of the class. + + + + + Provides methods to ensure element ID's are valid and unique. + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Adds the specified for ID management. + + The to be managed. + + + + Adds the specified for ID management. + And can auto fix the ID if it already exists or it starts with a number. + + The to be managed. + Pass true here, if you want the ID to be fixed + If not null, the action is called before the id is fixed + true, if ID was altered + + + + Removed the specified from ID management. + + The to be removed from ID management. + + + + Ensures that the specified ID is valid within the containing . + + A containing the ID to validate. + Creates a new unique id . + + The ID cannot start with a digit. + An element with the same ID already exists within the containing . + + + + + Initialises a new instance of an . + + The containing the s to manage. + + + + Svg helpers + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + http://stackoverflow.com/questions/3633000/net-enumerate-winforms-font-styles + + + + + Evaluates the integral of the function over the integral using the specified number of points + + + + + + + + http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + + http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Gets or sets a of path data. + + + + + Gets the for this element. + + + + + Initializes a new instance of the class. + + + + + The element defines a graphics element consisting of text. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Text anchor is used to align (start-, middle- or end-alignment) a string of text relative to a given point. + + + + The value is inherited from the parent element. + + + + The rendered characters are aligned such that the start of the text string is at the initial current text position. + + + + + The rendered characters are aligned such that the middle of the text string is at the current text position. + + + + + The rendered characters are aligned such that the end of the text string is at the initial current text position. + + + + + Gets or sets the text to be rendered. + + + + + Gets or sets the X. + + The X. + + + + Gets or sets the dX. + + The dX. + + + + Gets or sets the Y. + + The Y. + + + + Gets or sets the dY. + + The dY. + + + + Gets or sets the rotate. + + The rotate. + + + + The pre-calculated length of the text + + + + + Gets or sets the text anchor. + + The text anchor. + + + + Specifies spacing behavior between text characters. + + + + + Specifies spacing behavior between words. + + + + + Gets or sets the fill. + + + Unlike other s, has a default fill of black rather than transparent. + + The fill. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + Necessary to make sure that any internal tspan elements get rendered as well + + + + Gets the for this element. + + + + + + Sets the path on this element and all child elements. Uses the state + object to track the state of the drawing + + State of the drawing operation + + + + Prepare the text according to the whitespace handling rules. SVG Spec. + + Text to be prepared + Prepared text + + + Empty text elements are not legal - only write this element if it has children. + + + + The element defines a graphics element consisting of text. + + + + + Represents and element that may be transformed. + + + + + Gets or sets an of element transforms. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + The class which applies custom transform to this Matrix (Required for projects created by the Inkscape). + + + + + The class which applies the specified shear vector to this Matrix. + + + + + The class which applies the specified skew vector to this Matrix. + + + + + Multiplies all matrices + + The result of all transforms + + + + Fired when an SvgTransform has changed + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + The maximum allowed codepoint (defined in Unicode). + + + + Return the shortest form possible + + + + + exposed enumeration for the adding of separators into term lists + + + + + An implementation that generates + human-readable description of the selector. + + + + + Initializes the text. + + + + + Gets the generated human-readable description text. + + + + + Generates human-readable for a selector in a group. + + + + + Concludes the text. + + + + + Adds to the generated human-readable text. + + + + + Generates human-readable text of this type selector. + + + + + Generates human-readable text of this universal selector. + + + + + Generates human-readable text of this ID selector. + + + + + Generates human-readable text of this class selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates human-readable text of this combinator. + + + + + Represents a selectors implementation for an arbitrary document/node system. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent an implementation that is responsible for generating + an implementation for a selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits the closing/conclusion of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent a type or attribute name. + + + + + Represents a name from either the default or any namespace + in a target document, depending on whether a default namespace is + in effect or not. + + + + + Represents an empty namespace. + + + + + Represents any namespace. + + + + + Initializes an instance with a namespace prefix specification. + + + + + Gets the raw text value of this instance. + + + + + Indicates whether this instance represents a name + from either the default or any namespace in a target + document, depending on whether a default namespace is + in effect or not. + + + + + Indicates whether this instance represents a name + from any namespace (including one without one) + in a target document. + + + + + Indicates whether this instance represents a name + without a namespace in a target document. + + + + + Indicates whether this instance represents a name from a + specific namespace or not. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and another are equal. + + + + + Returns the hash code for this instance. + + + + + Returns a string representation of this instance. + + + + + Formats this namespace together with a name. + + + + + Semantic parser for CSS selector grammar. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Adds reading semantics to a base with the + option to un-read and insert new elements while consuming the source. + + + + + Initialize a new with a base + object. + + + + + Initialize a new with a base + object. + + + + + Indicates whether there is, at least, one value waiting to be read or not. + + + + + Pushes back a new value that will be returned on the next read. + + + + + Reads and returns the next value. + + + + + Peeks the next value waiting to be read. + + + Thrown if there is no value waiting to be read. + + + + + Returns an enumerator that iterates through the remaining + values to be read. + + + + + Disposes the enumerator used to initialize this object + if that enumerator supports . + + + + + Represents a selector implementation over an arbitrary type of elements. + + + + + A selector generator implementation for an arbitrary document/element system. + + + + + Initializes a new instance of this object with an instance + of and the default equality + comparer that is used for determining if two elements are equal. + + + + + Initializes a new instance of this object with an instance + of and an equality comparer + used for determining if two elements are equal. + + + + + Gets the selector implementation. + + + If the generation is not complete, this property returns the + last generated selector. + + + + + Gets the instance that this object + was initialized with. + + + + + Returns the collection of selector implementations representing + a group. + + + If the generation is not complete, this method return the + selectors generated so far in a group. + + + + + Adds a generated selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Delimits the closing/conclusion of a generation. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + An implementation that delegates + to two other objects, which + can be useful for doing work in a single pass. + + + + + Gets the first generator used to initialize this generator. + + + + + Gets the second generator used to initialize this generator. + + + + + Initializes a new instance of + with the two other objects + it delegates to. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Implementation for a selectors compiler that supports caching. + + + This class is primarily targeted for developers of selection + over an arbitrary document model. + + + + + Creates a caching selectors compiler on top on an existing compiler. + + + + + Creates a caching selectors compiler on top on an existing compiler. + An addition parameter specified a dictionary to use as the cache. + + + If is null then this method uses a + the implementation with an + ordinally case-insensitive selectors text comparer. + + + + + Represent a token and optionally any text associated with it. + + + + + Gets the kind/type/class of the token. + + + + + Gets text, if any, associated with the token. + + + + + Creates an end-of-input token. + + + + + Creates a star token. + + + + + Creates a dot token. + + + + + Creates a colon token. + + + + + Creates a comma token. + + + + + Creates a right parenthesis token. + + + + + Creates an equals token. + + + + + Creates a left bracket token. + + + + + Creates a right bracket token. + + + + + Creates a pipe (vertical line) token. + + + + + Creates a plus token. + + + + + Creates a greater token. + + + + + Creates an includes token. + + + + + Creates a dash-match token. + + + + + Creates a prefix-match token. + + + + + Creates a suffix-match token. + + + + + Creates a substring-match token. + + + + + Creates a general sibling token. + + + + + Creates an identifier token. + + + + + Creates an integer token. + + + + + Creates a hash-name token. + + + + + Creates a white-space token. + + + + + Creates a string token. + + + + + Creates a function token. + + + + + Creates an arbitrary character token. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Indicates whether the current object is equal to another object of the same type. + + + + + Gets a string representation of the token. + + + + + Performs a logical comparison of the two tokens to determine + whether they are equal. + + + + + Performs a logical comparison of the two tokens to determine + whether they are inequal. + + + + + Lexer for tokens in CSS selector grammar. + + + + + Parses tokens from a given text source. + + + + + Parses tokens from a given string. + + + + + Represents the classification of a token. + + + + + Represents end of input/file/stream + + + + + Represents {ident} + + + + + Represents "#" {name} + + + + + Represents "~=" + + + + + Represents "|=" + + + + + Represents "^=" + + + + + Represents "$=" + + + + + Represents "*=" + + + + + Represents {string} + + + + + Represents S* "+" + + + + + Represents S* ">" + + + + + Represents [ \t\r\n\f]+ + + + + + Represents {ident} ")" + + + + + Represents [0-9]+ + + + + + Represents S* "~" + + + + + Represents an arbitrary character + + +
+
diff --git a/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.dll b/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.dll index d6a181c..686165c 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.dll and b/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb b/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb index 32f6d6a..9b3eecf 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb and b/SW/AssessmentMgmt/bin/Debug/ThemenDokumente.pdb differ diff --git a/SW/AssessmentMgmt/bin/Debug/_FRReporting.dll b/SW/AssessmentMgmt/bin/Debug/_FRReporting.dll index 3357e75..6d192e5 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/_FRReporting.dll and b/SW/AssessmentMgmt/bin/Debug/_FRReporting.dll differ diff --git a/SW/AssessmentMgmt/bin/Debug/_FRReporting.pdb b/SW/AssessmentMgmt/bin/Debug/_FRReporting.pdb index fd7d9bc..da8d5e9 100644 Binary files a/SW/AssessmentMgmt/bin/Debug/_FRReporting.pdb and b/SW/AssessmentMgmt/bin/Debug/_FRReporting.pdb differ diff --git a/SW/AssessmentMgmt/bin/Debug/_FRReporting.xml b/SW/AssessmentMgmt/bin/Debug/_FRReporting.xml index 44c3ea8..064c1c8 100644 --- a/SW/AssessmentMgmt/bin/Debug/_FRReporting.xml +++ b/SW/AssessmentMgmt/bin/Debug/_FRReporting.xml @@ -6,6 +6,22 @@ _FRReporting + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + Purpose: Data Access class for the table 'Auswertung'. @@ -1307,21 +1323,5 @@ Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - diff --git a/SW/AssessmentMgmt/frmMain.Designer.vb b/SW/AssessmentMgmt/frmMain.Designer.vb index ca3cb88..ab539d2 100644 --- a/SW/AssessmentMgmt/frmMain.Designer.vb +++ b/SW/AssessmentMgmt/frmMain.Designer.vb @@ -40,6 +40,7 @@ Partial Class frmMain Me.SystemAdministrationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ObjektListerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DemoAssessmentGenerierungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DemoMailGenerierungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ErinnerungsmailsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.AuswertungenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() @@ -47,14 +48,13 @@ Partial Class frmMain Me.TSBtnPruefschritt = New System.Windows.Forms.ToolStripButton() Me.TSBtnAssessmentuebersicht = New System.Windows.Forms.ToolStripButton() Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) - Me.DemoMailGenerierungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.MenuStrip1.SuspendLayout() Me.ToolStrip1.SuspendLayout() Me.SuspendLayout() ' 'MenuStrip1 ' - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem, Me.VorgabenToolStripMenuItem, Me.PrüfplanToolStripMenuItem, Me.PrüfschrittToolStripMenuItem, Me.AssessmentsIsiToolStripMenuItem, Me.MassnahmenPlanToolStripMenuItem, Me.MassnahmenToolStripMenuItem, Me.StammdatenToolStripMenuItem, Me.ExtrasToolStripMenuItem, Me.AuswertungenToolStripMenuItem}) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem, Me.VorgabenToolStripMenuItem, Me.PrüfplanToolStripMenuItem, Me.PrüfschrittToolStripMenuItem, Me.AssessmentsIsiToolStripMenuItem, Me.MassnahmenPlanToolStripMenuItem, Me.MassnahmenToolStripMenuItem, Me.ExtrasToolStripMenuItem, Me.StammdatenToolStripMenuItem, Me.AuswertungenToolStripMenuItem}) Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" Me.MenuStrip1.Size = New System.Drawing.Size(990, 24) @@ -134,7 +134,7 @@ Partial Class frmMain ' Me.ExtrasToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SystemAdministrationToolStripMenuItem, Me.ObjektListerToolStripMenuItem, Me.DemoAssessmentGenerierungToolStripMenuItem, Me.DemoMailGenerierungToolStripMenuItem, Me.ErinnerungsmailsToolStripMenuItem}) Me.ExtrasToolStripMenuItem.Name = "ExtrasToolStripMenuItem" - Me.ExtrasToolStripMenuItem.Size = New System.Drawing.Size(49, 20) + Me.ExtrasToolStripMenuItem.Size = New System.Drawing.Size(50, 20) Me.ExtrasToolStripMenuItem.Text = "&Extras" ' 'SystemAdministrationToolStripMenuItem @@ -155,6 +155,12 @@ Partial Class frmMain Me.DemoAssessmentGenerierungToolStripMenuItem.Size = New System.Drawing.Size(241, 22) Me.DemoAssessmentGenerierungToolStripMenuItem.Text = "Demo Assessment-Generierung" ' + 'DemoMailGenerierungToolStripMenuItem + ' + Me.DemoMailGenerierungToolStripMenuItem.Name = "DemoMailGenerierungToolStripMenuItem" + Me.DemoMailGenerierungToolStripMenuItem.Size = New System.Drawing.Size(241, 22) + Me.DemoMailGenerierungToolStripMenuItem.Text = "Demo Mail-Generierung" + ' 'ErinnerungsmailsToolStripMenuItem ' Me.ErinnerungsmailsToolStripMenuItem.Name = "ErinnerungsmailsToolStripMenuItem" @@ -214,12 +220,6 @@ Partial Class frmMain Me.ImageList1.Images.SetKeyName(2, "Stop.png") Me.ImageList1.Images.SetKeyName(3, "OK1.png") ' - 'DemoMailGenerierungToolStripMenuItem - ' - Me.DemoMailGenerierungToolStripMenuItem.Name = "DemoMailGenerierungToolStripMenuItem" - Me.DemoMailGenerierungToolStripMenuItem.Size = New System.Drawing.Size(241, 22) - Me.DemoMailGenerierungToolStripMenuItem.Text = "Demo Mail-Generierung" - ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) diff --git a/SW/AssessmentMgmt/frmMain.resx b/SW/AssessmentMgmt/frmMain.resx index eaaf508..0a91586 100644 --- a/SW/AssessmentMgmt/frmMain.resx +++ b/SW/AssessmentMgmt/frmMain.resx @@ -168,7 +168,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABM - CwAAAk1TRnQBSQFMAgEBBAEAAeABAAHgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CwAAAk1TRnQBSQFMAgEBBAEAAegBAAHoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/SW/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb b/SW/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb new file mode 100644 index 0000000..6ffebde --- /dev/null +++ b/SW/AssessmentMgmt/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb @@ -0,0 +1,7 @@ +' + Option Strict Off + Option Explicit On + + Imports System + Imports System.Reflection + diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe index 7d66ca0..245795f 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe and b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.exe differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb index 46b5f3d..ca96931 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb and b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.pdb differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..893eaec Binary files /dev/null and b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.AssemblyReference.cache differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache index 4cc0176..ebc23f8 100644 --- a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache +++ b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.CoreCompileInputs.cache @@ -1 +1 @@ -826b220a698321f8b7b5bba74f571bbbd995a15f +8aac4706af97a674f6e827cc268e3e29d773c8ab diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt index 402a8c4..64a1b7f 100644 --- a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt +++ b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.FileListAbsolute.txt @@ -42,8 +42,6 @@ E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debu E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\AssessmentMgmt.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Data.2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1FlexGrid.2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DevComponents.DotNetBar2.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.dll @@ -53,18 +51,19 @@ E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debu E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Bars.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Editor.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Data.2.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1FlexGrid.2.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DevComponents.DotNetBar2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\DropDownControls.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\ThemenDokumente.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\_FRReporting.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\_FRReporting.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\C1.Win.C1Command.2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.exe E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssetMgmt.Demo_Mailgenerierung.resources -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbprojAssemblyReference.cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.CoreCompileInputs.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\obj\x86\Debug\AssessmentMgmt.vbproj.AssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.Compat.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.DataVisualization.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\AssessmentMgmt\bin\Debug\FastReport.xml diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache index 914a506..3814015 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache and b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbproj.GenerateResource.cache differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbprojAssemblyReference.cache b/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbprojAssemblyReference.cache deleted file mode 100644 index 6a8e276..0000000 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssessmentMgmt.vbprojAssemblyReference.cache and /dev/null differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources new file mode 100644 index 0000000..4a28f13 Binary files /dev/null and b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.Form2.resources differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources index 3abac4c..cabfd11 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources and b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmISI.resources differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources index 38aef0a..15017be 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources and b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmMain.resources differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources index 416e290..683b39e 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources and b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmPPlan.resources differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources index 42dd4ed..2fbd41e 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources and b/SW/AssessmentMgmt/obj/x86/Debug/AssetMgmt.frmVorgabe.resources differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache index 24fa260..56a95f7 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache and b/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache index f9be851..953f084 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/SW/AssessmentMgmt/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses b/SW/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses index 4c8a550..f8265cb 100644 Binary files a/SW/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses and b/SW/AssessmentMgmt/obj/x86/Debug/assessmentmgmt.exe.licenses differ diff --git a/SW/Dokumente/DB/Form1.Designer.vb b/SW/Dokumente/DB/Form1.Designer.vb new file mode 100644 index 0000000..af1749e --- /dev/null +++ b/SW/Dokumente/DB/Form1.Designer.vb @@ -0,0 +1,60 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.C1TrueDBGrid1 = New C1.Win.C1TrueDBGrid.C1TrueDBGrid() + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'C1TrueDBGrid1 + ' + Me.C1TrueDBGrid1.BorderColor = System.Drawing.SystemColors.WindowFrame + Me.C1TrueDBGrid1.GroupByCaption = "Drag a column header here to group by that column" + Me.C1TrueDBGrid1.Images.Add(CType(resources.GetObject("C1TrueDBGrid1.Images"), System.Drawing.Image)) + Me.C1TrueDBGrid1.Location = New System.Drawing.Point(403, 186) + Me.C1TrueDBGrid1.Name = "C1TrueDBGrid1" + Me.C1TrueDBGrid1.PreviewInfo.Location = New System.Drawing.Point(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.Size = New System.Drawing.Size(0, 0) + Me.C1TrueDBGrid1.PreviewInfo.ZoomFactor = 75.0R + Me.C1TrueDBGrid1.PrintInfo.PageSettings = CType(resources.GetObject("C1TrueDBGrid1.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) + Me.C1TrueDBGrid1.Size = New System.Drawing.Size(240, 150) + Me.C1TrueDBGrid1.TabIndex = 0 + Me.C1TrueDBGrid1.UseCompatibleTextRendering = False + Me.C1TrueDBGrid1.PropBag = resources.GetString("C1TrueDBGrid1.PropBag") + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.C1TrueDBGrid1) + Me.Name = "Form1" + Me.Text = "Form1" + CType(Me.C1TrueDBGrid1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents C1TrueDBGrid1 As C1.Win.C1TrueDBGrid.C1TrueDBGrid +End Class diff --git a/SW/Dokumente/DB/Form1.resx b/SW/Dokumente/DB/Form1.resx new file mode 100644 index 0000000..eca6c46 --- /dev/null +++ b/SW/Dokumente/DB/Form1.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA0SURBVChTdYkBCgAgDAL9/6eLIsd0eSCKhw/r9aCLtC88 + vAdHMEIXKUIUhMK76EfagglgA6CqHOQpL6GyAAAAAElFTkSuQmCC + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACRTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5QYWdlU2V0dGluZ3MHAAAAD3ByaW50ZXJTZXR0aW5ncwVjb2xvcglwYXBlclNp + emULcGFwZXJTb3VyY2URcHJpbnRlclJlc29sdXRpb24JbGFuZHNjYXBlB21hcmdpbnMEBAQEBAQEJ1N5 + c3RlbS5EcmF3aW5nLlByaW50aW5nLlByaW50ZXJTZXR0aW5ncwIAAAAgU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuVHJpU3RhdGUCAAAAIVN5c3RlbS5EcmF3aW5nLlByaW50aW5nLlBhcGVyU2l6ZQIAAAAjU3lz + dGVtLkRyYXdpbmcuUHJpbnRpbmcuUGFwZXJTb3VyY2UCAAAAKVN5c3RlbS5EcmF3aW5nLlByaW50aW5n + LlByaW50ZXJSZXNvbHV0aW9uAgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAf + U3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuTWFyZ2lucwIAAAACAAAACQMAAAAF/P///yBTeXN0ZW0uRHJh + d2luZy5QcmludGluZy5UcmlTdGF0ZQEAAAAFdmFsdWUAAgIAAAAACgoKAfv////8////AAkGAAAABQMA + AAAnU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRlclNldHRpbmdzEgAAAAtwcmludGVyTmFtZQpk + cml2ZXJOYW1lCm91dHB1dFBvcnQLcHJpbnRUb0ZpbGUUcHJpbnREaWFsb2dEaXNwbGF5ZWQKZXh0cmFi + eXRlcwlleHRyYWluZm8GY29waWVzBmR1cGxleAdjb2xsYXRlE2RlZmF1bHRQYWdlU2V0dGluZ3MIZnJv + bVBhZ2UGdG9QYWdlB21heFBhZ2UHbWluUGFnZQpwcmludFJhbmdlDGRldm1vZGVieXRlcw1jYWNoZWRE + ZXZtb2RlAQEBAAAABwAEBAQAAAAABAAHAQEHAgceU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuRHVwbGV4 + AgAAACBTeXN0ZW0uRHJhd2luZy5QcmludGluZy5UcmlTdGF0ZQIAAAAkU3lzdGVtLkRyYXdpbmcuUHJp + bnRpbmcuUGFnZVNldHRpbmdzAgAAAAgICAgiU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcuUHJpbnRSYW5n + ZQIAAAAHAgIAAAAKBgcAAAAACQcAAAAAAAAACv//Bfj///8eU3lzdGVtLkRyYXdpbmcuUHJpbnRpbmcu + RHVwbGV4AQAAAAd2YWx1ZV9fAAgCAAAA/////wH3/////P///wAJCgAAAAAAAAAAAAAADycAAAAAAAAF + 9f///yJTeXN0ZW0uRHJhd2luZy5QcmludGluZy5QcmludFJhbmdlAQAAAAd2YWx1ZV9fAAgCAAAAAAAA + AAAACgUGAAAAH1N5c3RlbS5EcmF3aW5nLlByaW50aW5nLk1hcmdpbnMIAAAABGxlZnQFcmlnaHQDdG9w + BmJvdHRvbQpkb3VibGVMZWZ0C2RvdWJsZVJpZ2h0CWRvdWJsZVRvcAxkb3VibGVCb3R0b20AAAAAAAAA + AAgICAgGBgYGAgAAAGQAAABkAAAAZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZ + QAEKAAAAAQAAAAkDAAAAAfP////8////AAoKCgHy/////P///wAJDwAAAAEPAAAABgAAAGQAAABkAAAA + ZAAAAGQAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAs= + + + + <?xml version="1.0"?><Blob><Styles type="C1.Win.C1TrueDBGrid.Design.ContextWrapper"><Data>Style16{}HighlightRow{ForeColor:HighlightText;BackColor:Highlight;}Style8{}Style7{}EvenRow{BackColor:Aqua;}Normal{}RecordSelector{AlignImage:Center;}OddRow{}Style6{}Footer{}Style14{}FilterBar{}Heading{AlignVert:Center;Border:Flat,ControlDark,0, 1, 0, 1;ForeColor:ControlText;BackColor:Control;Wrap:True;}Style5{}Editor{}Style10{}Style3{}Selected{ForeColor:HighlightText;BackColor:Highlight;}Style15{}Style13{}Style12{}Style11{}Style4{}Style9{}FilterWatermark{ForeColor:InfoText;BackColor:Info;}Group{Border:None,,0, 0, 0, 0;AlignVert:Center;BackColor:ControlDark;}Style1{}Caption{AlignHorz:Center;}Style2{}Inactive{ForeColor:InactiveCaptionText;BackColor:InactiveCaption;}</Data></Styles><Splits><C1.Win.C1TrueDBGrid.MergeView Name="" CaptionHeight="17" ColumnCaptionHeight="17" ColumnFooterHeight="17" MarqueeStyle="DottedCellBorder" RecordSelectorWidth="17" DefRecSelWidth="17" VerticalScrollGroup="1" HorizontalScrollGroup="1"><CaptionStyle parent="Style2" me="Style10" /><EditorStyle parent="Editor" me="Style5" /><EvenRowStyle parent="EvenRow" me="Style8" /><FilterBarStyle parent="FilterBar" me="Style13" /><FilterWatermarkStyle parent="FilterWatermark" me="Style14" /><FooterStyle parent="Footer" me="Style3" /><GroupStyle parent="Group" me="Style12" /><HeadingStyle parent="Heading" me="Style2" /><HighLightRowStyle parent="HighlightRow" me="Style7" /><InactiveStyle parent="Inactive" me="Style4" /><OddRowStyle parent="OddRow" me="Style9" /><RecordSelectorStyle parent="RecordSelector" me="Style11" /><SelectedStyle parent="Selected" me="Style6" /><Style parent="Normal" me="Style1" /><ClientRect>0, 0, 238, 148</ClientRect><BorderSide>0</BorderSide></C1.Win.C1TrueDBGrid.MergeView></Splits><NamedStyles><Style parent="" me="Normal" /><Style parent="Normal" me="Heading" /><Style parent="Heading" me="Footer" /><Style parent="Heading" me="Caption" /><Style parent="Heading" me="Inactive" /><Style parent="Normal" me="Selected" /><Style parent="Normal" me="Editor" /><Style parent="Normal" me="HighlightRow" /><Style parent="Normal" me="EvenRow" /><Style parent="Normal" me="OddRow" /><Style parent="Heading" me="RecordSelector" /><Style parent="Normal" me="FilterBar" /><Style parent="FilterBar" me="FilterWatermark" /><Style parent="Caption" me="Group" /></NamedStyles><vertSplits>1</vertSplits><horzSplits>1</horzSplits><Layout>None</Layout><DefaultRecSelWidth>17</DefaultRecSelWidth><ClientArea>0, 0, 238, 148</ClientArea><PrintPageHeaderStyle parent="" me="Style15" /><PrintPageFooterStyle parent="" me="Style16" /></Blob> + + \ No newline at end of file diff --git a/SW/Dokumente/DB/Form1.vb b/SW/Dokumente/DB/Form1.vb new file mode 100644 index 0000000..10d55d4 --- /dev/null +++ b/SW/Dokumente/DB/Form1.vb @@ -0,0 +1,3 @@ +Public Class Form1 + +End Class \ No newline at end of file diff --git a/SW/Dokumente/Dokumente.vb b/SW/Dokumente/Dokumente.vb index a727232..c0c6764 100644 --- a/SW/Dokumente/Dokumente.vb +++ b/SW/Dokumente/Dokumente.vb @@ -470,6 +470,7 @@ Public Class Dokumente f.ShowDialog() Me.Refresh_Dokumente() Catch ex As Exception + MsgBox(ex.Message) End Try End Sub diff --git a/SW/Dokumente/ThemenDokumente.vbproj b/SW/Dokumente/ThemenDokumente.vbproj index 41bffe7..ac99857 100644 --- a/SW/Dokumente/ThemenDokumente.vbproj +++ b/SW/Dokumente/ThemenDokumente.vbproj @@ -51,7 +51,10 @@ False ..\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll - + + False + ..\AssessmentMgmt\bin\Debug\DevComponents.DotNetBar2.dll + diff --git a/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll b/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll index d2f4e7c..f054f62 100644 Binary files a/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll and b/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.dll differ diff --git a/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml b/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml index 470e122..9f06eb7 100644 --- a/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml +++ b/SW/Dokumente/bin/Debug/DevComponents.DotNetBar2.xml @@ -4667,6 +4667,12 @@ Provides event arguments. + + + Raises the ValueChanged event. + + Provides event arguments. + Called when Command property value changes. @@ -4768,6 +4774,11 @@ Gets or sets whether control is empty i.e. it does not hold a valid value. + + + Specifies the behavior of ValueChanged event triggering. + + Gets or sets the input field alignment inside the control @@ -8293,6 +8304,12 @@ Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Indicates the position within a tree visible area node is scrolled to + Expands the node. @@ -8568,6 +8585,11 @@ Gets the expand part rectangle. Expand part is used to expand/collapse node. + + + Indicates vertical alignment within the node bounds of expand part of the node, if one is visible. + + Gets or sets the Command part bounds if command part is visible. @@ -9417,6 +9439,12 @@ Node to be made visible. + + + Ensures that the node is visible, expanding nodes and scrolling the control as necessary. + + Node to be made visible. + Returns number of visible child nodes for given node. @@ -9637,6 +9665,26 @@ Returned as information about the node or its column header at given coordinates. + + + Defines options for EnsureVisible method which brings node into the view. + + + + + Scrolls the tree so node is displayed at the bottom of the tree, if possible. + + + + + Scrolls the tree so node is displayed in the middle of the tree, if possible. + + + + + Scrolls the tree so node is displayed at the top of the tree, if possible. + + Class that provides predefined styles for the nodes. Styles are defined as static memeber of the class @@ -11549,6 +11597,12 @@ Gets or sets the minimum balloon width when auto sizing balloon. Default value is 180. + + + Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example: + Markup link + + Gets or sets the target gradient background color. @@ -14036,6 +14090,12 @@ Indicates whether SubItems collection is serialized. Default value is true. + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + Called when item container has changed. If you override this method you must call the base implementation to allow default processing to occur. @@ -17999,31 +18059,11 @@ 0 based index of child object. Reference to child object. - - - Gets accessible role. - - - - - Gets parent accessibility object. - - - - - Returns bounds of the control. - - Returns current accessible state. - - - Gets or sets the value of an accessible object. - - Summary description for ThemedButtonItemPainter. @@ -20743,6 +20783,13 @@ Provides event arguments. + + + Called when MultiColumnControlFont property has changed. + + Old property value + New property value + Called when Command property value changes. @@ -20847,6 +20894,11 @@ Indicates whether ItemHeight property is set automatically based on the current font when DrawMode=OwnerDrawFixed + + + Gets or sets the custom color table used to render combo-box items + + Gets or sets the text color for the text in combo-box when control Enabled property is set to false. @@ -20929,6 +20981,11 @@ Gets the reference to the control which is used to display multi-column data on popup. Control is created just before the popup is opened. + + + Indicates the font used by the multi-column control on the popup. + + Gets or sets the command assigned to the item. Default value is null. @@ -22421,6 +22478,11 @@ New active style. + + + Indicates whether control will delay call to OnResize base DataGridView method when control is running on MDI Child which was introduced as workaround to an issue in control. + + Gets or sets the scroll-bar visual style. @@ -26883,6 +26945,11 @@ Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property. + + + Specifies back color when Enabled=false + + Gets or sets whether FocusHighlightColor is used as background color to highlight text box when it has input focus. Default value is false. @@ -30230,6 +30297,11 @@ Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting. + + + Gets or sets the symbol set used to represent the Symbol. + + Indicates the size of the symbol in points. @@ -31317,6 +31389,11 @@ Occurs when using data-binding with CheckStateMember specified and it allows you to convert a property value to CheckState. + + + Returns the enumerator with selected values if any + + Gets or sets the value of the member property specified by the ValueMember property. If ValueMember specifies property that cannot be found on selected object this property returns null. @@ -31337,6 +31414,7 @@ Gets collection of checked items in the list. Modifying this collection does not have any effect on actual checked items. Use SetItemCheckState to set checked state of an item or access ListBoxItem directly and set its CheckState property. + Defines selection modes for list control. @@ -31721,16 +31799,6 @@ An instance of ColorScheme object. - - - Represents the extended ListView control with the Office 2007 Style. - - - - - Represents the extended ListView control with the Office 2007 Style. - - Gets or sets the column header font. Default value is null which means controls Font property is used. @@ -33969,6 +34037,11 @@ Should be fired when scroll-bar value on child control changes. + + + Should be fired when control receives WM_MOVE message. + + Gets whether control is in design mode. @@ -33986,6 +34059,12 @@ Provides event arguments. + + + Raises NonClientSizeChanged event. + + Provides event arguments. + Defines arguments for IScrollBarOverrideSupport.ScrollBarValueChanged event. @@ -34561,6 +34640,12 @@ Provides event arguments. + + + Raises NonClientSizeChanged event. + + Provides event arguments. + Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if @@ -34680,6 +34765,37 @@ Old property value New property value + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + Occurs when IsOpen property value has changed, i.e. slide-panel is shown or hidden. @@ -34735,6 +34851,31 @@ Gets or sets whether panel centers the Controls inside of it. Default value is false. + + + Gets or sets the color of the Symbol displayed on slideout button. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the slideout button. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + Defines the side SlidePanel slides into. @@ -34786,6 +34927,37 @@ Old property value New property value + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + + + + Called when Symbol property has changed. + + Old property value + New property value + + + + Called when SymbolSet property value changes. + + Indciates old value + Indicates new value + + + + Called when SymbolSize property has changed. + + Old property value + New property value + Gets or sets whether slider button automatically checks whether its top-most control on the form, i.e. visible at all times on top of other controls @@ -34811,6 +34983,31 @@ Gets or sets the style associated with the control. + + + Gets or sets the color of the Symbol. + + + + + Gets the realized symbol string. + + + + + Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. + + + + + Gets or sets the symbol set used to represent the Symbol. + + + + + Indicates the size of the symbol in points. + + Represents the Slider control. @@ -35115,6 +35312,11 @@ Occurs when ButtonCustom2 control is clicked. + + + Indicates whether internal override for IsInputKey returns true for the Enter key. + + Indicates whether all text is auto-selected when control gets input focus. Default value is false. @@ -35354,7 +35556,7 @@ - Indicates tooltip that is displayed when mouse is over the token + Indicates tooltip that is displayed when mouse is over the token and token is selected. @@ -35462,6 +35664,12 @@ Provides event arguments. + + + Raises TokenMouseClick event. + + Provides event arguments. + Raises TokenMouseHover event. @@ -35550,6 +35758,16 @@ Old property value New property value + + + Shows tooltip for this item. + + + + + Destroys tooltip window. + + Gets or sets the location of the auto-scroll position. @@ -35595,6 +35813,11 @@ Occurs when mouse clicks one of the SelectedTokens token. + + + Occurs when mouse double clicks one of the SelectedTokens token. + + Occurs when mouse hovers one of the SelectedTokens token. @@ -35746,6 +35969,16 @@ Indicates whether check-boxes are displayed on popup token selection list and used for token selection. + + + Occurs when item's tooltip visibility has changed. + + + + + Gets or sets whether tooltips are shown when mouse is over the selected token when Tooltip property is set. + + Delegate for the ValidateTokenEvent event. @@ -36432,6 +36665,25 @@ Returns reference to the object in collection based on it's name. + + + Provides High DPI support for DotNetBar controls. + + + + + Gets or sets whether scale factor when set is normalized so both Width and Height values are the same. Default value is false. + If using ScaleMode=font the scale factor might not be same for Width and Height so this allows opportunity to keep existing size ratios on the DotNetBar sized controls. + When set to true the scale factor Height will always be set to scale factor Width. + + + + + Indicates whether controls will automatically scale current images based on the current DPI. Depending on scaling this may result in pixalted images. + Best policy is to provide separate images for each DPI level Windows runs on and if you do that you need to set this property to false to disable + automatic size scaling for the images. Default value is true which causes the images to be upscaled. + + Initializes a new instance of the DualButton class. @@ -45068,6 +45320,16 @@ Resets property to its default value. + + + Gets whether property should be serialized. + + + + + Resets property to its default value. + + Gets whether property should be serialized. @@ -45154,6 +45416,11 @@ Gets or sets the color of the radial menu item mouse over foreground. + + + Gets or sets the color of the radial menu item foreground when disabled. + + Gets or sets background color of the circular menu item type. Applies only to circular menu types. @@ -50836,6 +51103,26 @@ Gets or sets the Numeric String Format that is used to format the numeric value entered for display purpose. + + + Specifies trigger types for the value changed events on editor controls. + + + + + ValueChanged event is fired as soon as user types in the value. + + + + + ValueChanged event is fired after control loses input focus. + + + + + ValueChanged event is fired after control loses input focus or user presses the Enter key. + + Creates new instance of the class. @@ -51221,15 +51508,11 @@ Provides event arguments. - + - Represents graphical panel control with support for different visual styles and gradients. - - - - - Represents graphical panel control with support for different visual styles and gradients. + Raises NonClientSizeChanged event. + Provides event arguments. @@ -54193,6 +54476,11 @@ Occurs when Checked property of an button has changed. + + + Gets or sets docking splitter size. + + Indicates whether Ctrl+Tab keys cycles the currently selected dock tab. @@ -63854,6 +64142,12 @@ Opens the Gallery popup menu. + + + Called on each item when ScaleControl method of parent control is called and gives opportunity to item to adjust its displayed based on current scaling. + + Scale factor. + Returns whether Gallery can extend the object. @@ -65100,6 +65394,12 @@ Default value is true. + + + Indicates whether auto-sizing for RibbonBar includes ribbon bar title width so in case when ribbon bar title width is wider than ribbon bar width the + width of the ribbon bar will always be at least the title bar width so complete title text can be displayed. + + Gets/Sets the visual style for items and color scheme. @@ -65929,6 +66229,11 @@ no setting is necessary on your part. + + + Indicates Quick Access Toolbar height when positioned below the Ribbon. Default value of 0 indicates auto-height. + + Gets or sets whether control can be customized and items added by end-user using context menu to the quick access toolbar. @@ -74658,6 +74963,11 @@ Gets or sets the type of the tab layout. + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + Gets or sets the fixed tab size in pixels. Either Height or Width can be set or both. @@ -75249,6 +75559,11 @@ Gets or sets the image list used by tab items. + + + Indicates whether selected tab is aligned with the panel in multiple lines use case. + + Gets or sets the type of the tab layout. @@ -75498,6 +75813,11 @@ Cancels the operation. + + + Reference to relevant TabItem, if any, otherwise null/nothing. + + Default Constructor. @@ -78591,6 +78911,21 @@ Returns reference to internal Next button control. + + + Returns reference to internal Cancel button control. + + + + + Returns reference to internal Finish button control. + + + + + Returns reference to internal Help button control. + + Returns reference to internal Back button control. diff --git a/SW/Dokumente/bin/Debug/ThemenDokumente.dll b/SW/Dokumente/bin/Debug/ThemenDokumente.dll index d6a181c..686165c 100644 Binary files a/SW/Dokumente/bin/Debug/ThemenDokumente.dll and b/SW/Dokumente/bin/Debug/ThemenDokumente.dll differ diff --git a/SW/Dokumente/bin/Debug/ThemenDokumente.pdb b/SW/Dokumente/bin/Debug/ThemenDokumente.pdb index 32f6d6a..9b3eecf 100644 Binary files a/SW/Dokumente/bin/Debug/ThemenDokumente.pdb and b/SW/Dokumente/bin/Debug/ThemenDokumente.pdb differ diff --git a/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache index d57ee86..5e485eb 100644 Binary files a/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 54110a6..a3f08ab 100644 Binary files a/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/SW/Dokumente/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.Form1.resources b/SW/Dokumente/obj/Debug/ThemenDokumente.Form1.resources new file mode 100644 index 0000000..80ff225 Binary files /dev/null and b/SW/Dokumente/obj/Debug/ThemenDokumente.Form1.resources differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.dll b/SW/Dokumente/obj/Debug/ThemenDokumente.dll index d6a181c..686165c 100644 Binary files a/SW/Dokumente/obj/Debug/ThemenDokumente.dll and b/SW/Dokumente/obj/Debug/ThemenDokumente.dll differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.pdb b/SW/Dokumente/obj/Debug/ThemenDokumente.pdb index 32f6d6a..9b3eecf 100644 Binary files a/SW/Dokumente/obj/Debug/ThemenDokumente.pdb and b/SW/Dokumente/obj/Debug/ThemenDokumente.pdb differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..5e07076 Binary files /dev/null and b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.AssemblyReference.cache differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache index 81a4753..074c691 100644 --- a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache +++ b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.CoreCompileInputs.cache @@ -1 +1 @@ -ec2318c755a468be1228f3cad0e49c858b0038bc +1ff431e8488916768ad7fdb3d544df78e0a4af25 diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt index 0e086a2..113d31d 100644 --- a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt +++ b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.FileListAbsolute.txt @@ -12,9 +12,6 @@ E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\Theme E:\Software-Projekte\TKBDiverse\Themenmanagement\ThemenDokumente\obj\Debug\ThemenDokumente.vbprojResolveAssemblyReference.cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1TrueDBGrid.2.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.frmDokument.resources E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.Resources.resources E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.Dokumente.resources @@ -25,8 +22,8 @@ E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\The E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.pdb E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\ThemenDokumente.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1Command.2.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\C1.Win.C1Command.2.xml -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbprojResolveAssemblyReference.cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.CoreCompileInputs.cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\obj\Debug\ThemenDokumente.vbproj.AssemblyReference.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\Dokumente\bin\Debug\DevComponents.DotNetBar2.xml diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache index 75c3a39..937a2e3 100644 Binary files a/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache and b/SW/Dokumente/obj/Debug/ThemenDokumente.vbproj.GenerateResource.cache differ diff --git a/SW/Dokumente/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache b/SW/Dokumente/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache deleted file mode 100644 index 5b936c7..0000000 Binary files a/SW/Dokumente/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache and /dev/null differ diff --git a/SW/Dokumente/obj/Debug/themendokumente.dll.licenses b/SW/Dokumente/obj/Debug/themendokumente.dll.licenses index 2dc3cfd..2f7f9ad 100644 Binary files a/SW/Dokumente/obj/Debug/themendokumente.dll.licenses and b/SW/Dokumente/obj/Debug/themendokumente.dll.licenses differ diff --git a/SW/Dokumente_sik/My Project/licenses.licx b/SW/Dokumente_sik/My Project/licenses.licx deleted file mode 100644 index ed2047b..0000000 --- a/SW/Dokumente_sik/My Project/licenses.licx +++ /dev/null @@ -1,3 +0,0 @@ -Telerik.WinControls.UI.RadBindingNavigator, Telerik.WinControls.UI, Version=2015.3.1104.20, Culture=neutral, PublicKeyToken=5bb2a467cbec794e -C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20141.61347, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da -C1.Win.C1TrueDBGrid.C1TrueDBGrid, C1.Win.C1TrueDBGrid.2, Version=2.0.20123.61277, Culture=neutral, PublicKeyToken=75ae3fb0e2b1e0da diff --git a/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.dll b/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.dll deleted file mode 100644 index a9c4303..0000000 Binary files a/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.dll and /dev/null differ diff --git a/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.xml b/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.xml deleted file mode 100644 index 22c06b2..0000000 --- a/SW/Dokumente_sik/bin/Debug/C1.Win.C1TrueDBGrid.2.xml +++ /dev/null @@ -1,31720 +0,0 @@ - - - - C1.Win.C1TrueDBGrid.2 - - - - - C1TrueDBGrid control object. - - - - - Summary description for BaseGridFrame. - - - - - - For internal use. - - - - - Ctor for the split container class. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - Raised when the Binding Context changes. - - - - - - ISupportInitialize interface. - - - - - ISupportInitialize interface. - - - - - Called after the control has been added to another container. - - - - - Inherited from Control. - - - - - - Raises the VisibleChanged event when the Visible property value of the control's container changes. - - An that contains the event data. - - - - Initializes root and named styles. - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - - Inherited from Control. - - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Processes Windows messages. - - - - - - Helper method for serializing images. - - - - - Recomputes the sizes of the splits based on the client size of the control. - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - Inherited from Control. - - - - - - painting - - - - - - Inherited from Control. - - - - - - Style listeners - - - - - - - Creates the view. - - - - - - Creates the view. - - The other. - - - - - Called when the datasource changes. - - The new datasource. - The new datamember. - True to force a new binding. - - - - - - - - - - - - - - - - - - - notifications from the datasource - - - - - Handle the Disposed event from the data source - typically used at design time - so the we know that the data source has been removed from the design surface - - - - - Handle the Item Changed Event on the CurrencyManager - - - - - - Handle the Position Changed Event on the CurrencyManager - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Provides ambient behavior for the VisualStyle property. - - - - - Resets to the default value. - - - - - Tests whether should be serialized. - - True if should be serialized, false otherwise. - - - - Raises the event. - - The instance containing the event data. - - - - Raised after the datasource has been updated for a column. - - - - - - Raised after a row has been deleted. - - - - - - Raised after a row has been inserted. - - - - - - Raised after a row has been updated. - - - - - - Raised before a column has been updated. - - - - - - Raised before a row is deleted. - - - - - - Raised before a row is inserted. - - - - - - Raised before a row is updated. - - - - - - Raised when a column has been resized. - - - - - - Raised when a column header has been clicked. - - - - - - Raised when a column footer has been clicked. - - - - - - Raised when a cell has to be rendered. - - - - - - Raised when a cell has to be printed. - - - - - - Raised when Page header needs to be printed. - - - - - - Raised when a Page footer needs to be printed. - - - - - - Raised before a row or column currency is changed. - - - - - - Raised after a row or column currency has been changed. - - - - - - Raised before a row is resized. - - - - - - Raised when the grid scrolls. - - - - - - Raised when a selection has changed. - - - - - - Raised when split currency has changed. - - - - - - Raised when a split has been added. - - - - - - Raised when a split has been removed. - - - - - - Raised when the grids cell content has been modified. - - - - - - Raised to fetch data for an unbound column. - - - - - - Raised when an unbound column has been updated. - - - - - - Raised after a column has been edited. - - - - - - Raised before a column edit. - - - - - - Raised when a column has been edited. - - - - - - Raised when the top row has changed. - - - - - - Raised when the left column has changed. - - - - - - Raised when a cell value needs custom formatting. - - - - - - Raised when a button in a cell has been clicked. - - - - - - Raised when a value in the combobox has been selected. - - - - - - Raised when a value item is selected that's not in the ValueItems collection. - - - - - - Raised when a custom style is to be used for rendering a cell. - - - - - - Raised when a custom style is to be used for renderind a grouped cell. - - - - - - Raised when a custom style is to be used for a row. - - - - - - Raised when a new row is added. - - - - - - Raised when a column is dragged. - - - - - - Raised when a cell tip is to be displayed. - - - - - - Raised when the grid is initialized. - - - - - - Raised when the datasource is changed. - - - - - - Raised when a band is collasped in a hierarchical grid. - - - - - - Raised when a band is expanded in a hierarchical grid. - - - - - - Raised when a grouped column is moved. - - - - - - Raised when a column header in the grouping area is clicked. - - - - - - Raised when scroll tips are to be displayed. - - - - - - Raised when a filter condition has changed. - - - - - - Raised when a button in the filter bar is clicked. - - - - - - Raised before a child grid is displayed. - - - - - - Rasied before a child grid is closed. - - - - - - Raised when the datasource is sorted by clicking the column header. - - - - - - Raised when AllowFilter is false. - - - - - - Raised after the datasource has been filtered. - - - - - - Raised after the datasource has been sorted. - - - - - - Raised when the grid encounters an error through the UI. - - - - - - Raised when custom values are to be used for the group text. - - - - - - Raised when custom aggregates are used for a grouped grid. - - - - - - Raised when custom group intervals are used for a grouped grid. - - - - - - Binds the grid at runtime - - Source of the data - The table to bind to within the object returned by the DataSource property - True to preserve design time layout - /// True to keep previously expanded groups in GroupBy mode. - - - - Binds the grid at runtime - - Source of the data - The table to bind to within the object returned by the DataSource property - True to preserve design time layout - - - - Binds the grid at runtime - - Source of the data - The table to bind to within the object returned by the DataSource property - The call to SetDataBinding(object dataSource, string dataMember) assumes false for the holdFields arguments. - - - - Configures the grid for use without a datasource. - - - - - Adds a row to an unbound grid. - - The data used to populate the new row. Column data is delimited by ';' char. - The index of the row that was added. - - - - Adds a row to an unbound grid. - - The data used to populate the new row. - Character used to separate the data fields. - The index of the row that was added. - - - - Adds the number of given rows to an unbound grid. - - The number of rows to add. - The index of the first row that was added. - - - - Deletes the given row from an unbound grid. - - The index of the row to remove. - - - - Deletes a range of rows from an unbound grid. - - The starting index of the row to remove. - The number of rows to remove. - - - - Creates a new System.Data.DataRow with the same schema as the unbound grid. - - - - - - Gets the default size of the control. - - - - The default of the control. - - - - - Allows us to set the borderstyle. - - - - - Gets the current position from the currency manager. - - - - - Gets or sets the border for the control. - - - - - Gets or sets a value indicating whether the InactiveStyle is applied to the grid when it loses focus. - - - - - Gets or sets a value indicating the ability of the grid to automatically sort data when a column header is clicked. - - - If True, and if the property is set to GroupBy, the grid will automatically filter column data upon grouping action. - If False, the grid will fire the event. - If the property is set to Group By and the user attempts to drag a column header into the grouping area, the grid will automatically sort the column data. - If False, the event allows the application to sort the data. - - - - - Gets or sets a value indicating the ability of the grid to automatically filter data. - - - If True, and if the Filter Bar is active, the grid will automatically filter data. - If False, the grid will fire the event. - If the property is true and the user attempts to filter column data, the grid will automatically filter the column data according to the value in the Filter Bar. - If False, the event allows the application to filter the data. - - - - - Gets or sets the grid's caption. - - - For a control, this property determines the text displayed in the caption bar at the top of the grid. - Setting the Caption property to an empty string for a control hides its caption bar. - For a object, this property determines the text displayed in the object's heading area. - Setting the Caption property to an empty string for a object clears the text in the column's heading area but does not hide the heading. Column captions are only displayed if the grid's property is set to True. - Setting the Caption property to an empty string for a object hides the heading area, even if other splits have non-empty captions. - - - - - Gets or sets the height of the grid's caption. - - This property requires that the property of the grid has a value. - - - - Gets or sets the height of grid rows. - - - - - Gets or sets the specific data member in a multimember data source that the grid binds to. - - - This property returns or sets the name of the data member used to populate the grid. Typically, a data member represents a database table or query. - A bound can expose multiple sets of data that consumers can bind to. Each set of data is called a data member, and is identified by a unique string. - - - - - Gets or sets the source containing a list of values used to populate the items within the control. - - The DataSource property specifies the list of values used to bind a or control. - - - - Gets or sets a value indicating whether the control should use an off-screen buffer when painting to redue flicker. - - - Setting this value to False may cause the grid to flicker when the control is painting. - You may want to set DoubleBuffer to False to increase performance when deploying applications that run on terminal servers. - - - - - Gets or sets the general appearance of 3D elements for the entire grid. - - - - - Gets the DataRowCollection for an unbound grid. - - - - - Gets or sets a value that controls how the grid scrolls when the scroll thumb is moved. - - - - - - - - - - - - - - - - - The size of the split divider. - - - - Gets the number of rows in an unbound grid. - - - - - Gets or sets a value indicating whether Style information is applied from the datasource. - - - - - Occurs when visual style property has been changed. - - - - - Gets or sets a value that determines the overall appearance of the control. - - - This property allows you to quickly customize the appearance of the grid so - it matches the appearance of your application. - The settings available include System, various Microsoft Office color - schemes, and Custom, which relies on the controls standard styles and appearance - properties. - - - - - Gets or sets the renderer used to render visual styles. - - The renderer. - - - - For internal use. - - - - - - Called then application theme is changed. - - The theme object - - - - The C1TrueDBGrid control. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - Creates a new accessibility object for the control. - - A new for the control. - - - - Creates the view. - - - - - - Creates the view. - - The other view. - - - - - - - - - - End initialization. - - - - - - - - - - - notifications - - - - - - - - - - - - - - - - - - - - - - - Gets a top-level object bound to the specified view row. - - Returns null if the specified view row is not a data row. - - - - Shoulds the width of the record selector be serialized. - - - - - - Should the row divider be serialized. - - - - - - - - - - - - Adds a row to an unbound grid. - - The data used to populate the new row. Column data is delimited by ';' char. - The index of the row that was added. - - - - Adds a row to an unbound grid. - - The data used to populate the new row. - Character used to separate the data fields. - The index of the row that was added. - - - - Adds the number of given rows to an unbound grid. - - The number of rows to add. - The index of the first row that was added. - - - - Instructs the grid to temporarily ignore IBindingList.ListChange notifications from the data source. - - - - - Resumes IBindingList.ListChange notifications from the data source to the grid. - - - - - Controls the used to change the appearance for cells meeting the specified condition. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - - - Controls the used to change the appearance of cells according to their contents. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - A regular expression string. - - - - - Returns the row index of the DataSource for a display row index. - - - The row index of the grid. - - - The underlying row index of the DataSource. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - A regular expression string. - - - - - Restores the default grid layout. - - - - - Returns the column index for the column containing the specified X coordinate. - - - The horizontal coordinate (X value) in pixels. - - - The index of the column in the collection beneath the specified X coordinate. - - - - - Returns the column index for the column containing the specified point. - - - The point. - - - The index of the column in the collection beneath the specified point. - - [C1Description("Identifies the index of the DisplayColumn under a point")] - - - - Returns the zero-based index of the display row containing the Y specified coordinate. - - - The vertical coordinate (Y value) in pixels. - - - The display row index beneath the specified Y coordinate. - - - - - Returns the Y coordinate of the top of a visible row. - - - The displayed row index. - - - The Y coordinate of the specified display row, based on the client coordinates of the grid. - - - - - Scrolls the grid data area by the specified number of rows and columns. - - - Number of columns to scroll. - - - Number of rows to scroll. - - - - - - - - - - Returns one of the enumerations, which indicates the kind of grid element beneath the specified coordinate. - - - The Point in client coordinates. - - - The enumerations under the given coordinate. - - - - - Returns one of the constants, which indicates the kind of grid element beneath the specified coordinate. - - - The x-coordinate. - - - The y-coordinate. - - - The enumerations under the given coordinate. - - - - - Reinitializes grid with data from its data source. - - - True to preserves current column layout. False retrieves the schema from the datasource. - - - - - - - - - - Returns the of the split containing the specified coordinate. - - - The x-coordinate. - - - The y-coordinate. - - - The beneath the specified coordinate pair. - - - - - Updates any changes on the current row to the data source. - - - - - Moves the current row positions of the grid by the given offset. - - - The number of records to move. A positive value indicates forward movement; a negative value indicates backward movement. - - - - - Moves the current row positions of the grid by the given offset from the given row. - - - The number of records to move. A positive value indicates forward movement; a negative value indicates backward movement. - - - The origin of the relative movement. - - - - - Positions to the last row of the datasource. - - - - - Positions to the first row of the datasource. - - - - - Positions to the next row of the datasource. - - - - - Positions to the previous row of the datasource. - - - - - Deletes the current row. - - - - - Loads a saved layout from the given file. - - - The file containing a saved layout. - - - - - Loads a saved layout from the given stream. - - - The Stream containing a saved layout. - - - - - Saves the grid's layout. - - - File to contain the grid layout. - - - - - Saves the grid's layout. - - - The Stream to contain the grid layout. - - - - - Saves the grid's layout. - - - File to contain the grid layout. - - - Specifies whether default values are serialized. - - - - - Saves the grid's layout. - - - The Stream to contain the grid layout. - - - Specifies whether default values are serialized. - - - - - Returns the cell position for a set of coordinates. - - - The x-coordinate. - - - The y-coordinate. - - - The row under the coordinate pair. - - - The column index under the coordinate pair. - - - A value indicating whether a data cell is beneath the specified coordinate pair. - - - The CellContaining method combines the and methods into one call. If the coordinate pair specified by x and y points to a data cell, this method returns True, and the rowindex and colindex arguments receive zero-based indexes that identify the cell. - This method is useful when working with mouse and drag events when trying to determine where the user clicked or dropped another control in terms of a grid cell. - If the specified coordinate is outside of the grid's data area, this method returns False. Use the method to determine what kind of grid element, if any, is beneath the specified coordinate. - - - - - Invalidates the current row. - - - The RefreshRow method causes a repaint of the entire row in the grid. Normally, the grid repaints automatically as needed. However, if handlers have been written for the event, use this method to force a row to be repainted and hence cause the appropriate events to fire. - - - - - Invalidates the current row. - - - The row to refresh. - - - The RefreshRow method causes a repaint of the entire row in the grid. Normally, the grid repaints automatically as needed. However, if handlers have been written for the event, use this method to force a row to be repainted and hence cause the appropriate events to fire. - - - - - Invalidates the current column. - - - The RefreshCol method causes a repaint of the entire column in the grid. Normally, the grid repaints automatically as needed. However, if handlers have been written for the event, use this method to force a column to be repainted and hence cause the appropriate events to fire. - - - - - Invalidates the specified column. - - - The split column index to repaint. - - - The RefreshCol method causes a repaint of the entire column in the grid. Normally, the grid repaints automatically as needed. However, if handlers have been written for the event, use this method to force a column to be repainted and hence cause the appropriate events to fire. - - - - - Retreives data from the datasource for the current row and refreshes the row. - - - The RefetchRow method repopulates the specified row from a data source. It also repaints the row, firing all events necessary for redisplay. - By default, the grid retrieves data automatically as needed. In some circumstances, the underlying datasource may change without the grid receiving notification that a change has occurred. The RefetchRow method is provided for this purpose. - - - - - Retreives data from the datasource for the specified row and refreshes the row. - - - The row to refetch. - - - The RefetchRow method repopulates the specified row from a data source. It also repaints the row, firing all events necessary for redisplay. - By default, the grid retrieves data automatically as needed. In some circumstances, the underlying datasource may change without the grid receiving notification that a change has occurred. The RefetchRow method is provided for this purpose. - - - - - Expands the given row in GroupBy DataView. - - - The row to expand. - - - Expanding/collapsing a row in a GroupBy grid also expands/collapses the row in a split that shares the same vertical scroll group. - - - - - - Expands the given row in GroupBy DataView and optionally exapands the subrows. - - The row to expand. - True to expand subrows. - - - - Collapses a grouped row. - - - - - Obtains the band given a column index. - - - - - Obtains the underlying row object for the given band and row. - - - - - Obtains the expanded state of a band for a hierarchical grid. - - - - - Collapses a gvien band in a hierarchical grid. - - - - - Expand the given band in a hierarchical grid. - - - - - Closes the Child Grid. - - - - - Displays the Child grid. - - - - - Exports the grid to an HTML file. - - - - - Exports the grid to a PDF file. - - - - - Exports the grid to an RTF file. - - - - - Exports the grid to a XLS file. - - - - - Exports the grid to a XLS file. - - - - - Opens a dialog in which the user can select the export format. - - - - - Exports the grid based upon the file extension. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Exports the specified rows from the grid to the specified file as delimited text. - - - - - Inserts vertical splits at the given position. - - - - - Removes all vertical splits at the given index. - - - - - - - - - - Inserts new horizontal splits at the given position. - - - - - Removes all the horizontal splits at the given index. - - - - - Clears any cached styles and forces the grid to repaint. - - - - - Sets the focus to the given cell. - - The zero based index of the row. - The zero based index of the column. - - - - Extends the last column in each subrow so that all rows have the same width. - - - - - Raises the AfterColUpdate event. - - - - - - Raises the AfterDelete event. - - - - - - Raises the AfterInsert event. - - - - - - Raises the AfterUpdate event. - - - - - - Raises the BeforeColUpdate event. - - - - - - Raises the BeforeDelete event. - - - - - - Raises the BeforeInsert event. - - - - - - Raises the BeforeUpdate event. - - - - - - Raises the ColResize event. - - - - - - Raises the HeadClick event. - - - - - - Raises the FootClick event. - - - - - - Raises the OwnerDrawCell event. - - - - - - Raises the OwnerDrawCellPrint event. - - - - - - Raises the OwnerDrawPageHeader event. - - - - - - Raises the OwnerDrawPageFooter event. - - - - - - Raises the BeforeRowColChange event. - - - - - - Raises the RowColChange event. - - - - - - Raises the RowResize event. - - - - - - Raises the Scroll event. - - - - - - Raises the SelChange event. - - - - - - - - - - - Raises the SplitChange event. - - - - - - Raises the SplitRemoved event. - - - - - - Raises the SplitRemoved event. - - - - - - Raises the Change event. - - - - - - Raises the UnboundColumnFetch event. - - - - - - Raises the UnboundColumnUpdated event. - - - - - - Raises the AfterColEdit event. - - - - - - Raises the BeforeColEdit event. - - - - - - Raises the ColEdit event. - - - - - - Raises the FirstRowChange event. - - - - - - Raises the LeftColChange event. - - - - - - Raises the FromatText event. - - - - - - Raises the ButtonClick event. - - - - - - Raises the ComboSelect event. - - - - - - Raises the ValueItemError event. - - - - - - Raises the FetchCellStyle event. - - - - - - Raises the FetchGroupCellStyle event. - - - - - - Raises the FetchRowStyle event. - - - - - - Raises the OnAddNew event. - - - - - - Raises the ColMove event. - - - - - - Raises the FetchCellTips event. - - - - - - Raises the OnInit event. - - - - - - Raises the DataSourceChanged event. - - - - - - Raises the Collapse event. - - - - - - Raises the Expand event. - - - - - - Raises the GroupColMove event. - - - - - - Raises the GroupText event. - - - - - - Raises the GroupAggregate event. - - - - - - Raises the GroupHeadClick event. - - - - - - Raises the GroupInterval event. - - - - - - Raises the FetchScrollTips event. - - - - - - Raises the FilterChange event. - - - - - - Raises the FilterButtonClick event. - - - - - - Raises the BeforeOpen event. - - - - - - Raises the BeforeClose event. - - - - - - Raises the Sort event. - - - - - - Raises the Filter event. - - - - - - Raises the AfterFilter event. - - - - - - Raises the AfterSort event. - - - - - - Raises the Error event - - - - - - - - - - - - Gets a top-level object bound to a current data row. - - Returns null if no data row is selected. - - - - Gets or sets the language to use when localizing the column filters. - - - - - Gets the row object associated with the given row. - - - - - Gets or sets the cell value at the given row and column. - - - - - Gets or sets the cell value at the given row and column. - - - - - Gets a value that describes the current AddNew state. - - - - - Gets or sets a value indicating the ability to delete records from the grid. - - - - - Gets or sets a value indicating the ability to add new rows. - - - - - Gets or sets a value indicating whether arrow keys can be used to navigate around the grid. - - - - - Gets or sets a value indicating the ability to move columns in the grid. - - - - - Gets or sets a value indicating the ability to select columns in the grid. - - - - - Gets or sets a value indicating the ability to drag from the grid. - - - - - Gets or sets a value indicating the ability to select rows in the grid. - - - - - Gets or sets a value indicating the ability of a user to modify data. - - - - - Gets or sets a value indicating how the grid updates modifed data when the grid loses focus. - - - - - Gets the number of levels within a hierarchical grid. - - - - - Gets or sets the current row position of the underlying CurrencyManager. - - - - - Gets or sets whether the grid displays a pop-up text window when the cursor is idle. - - - - - Gets or sets the amount of time in milliseconds before the cell tip window is displayed. - - - - - Gets or sets the width of the cell tip window. - - - - The CellTipsWidth property returns or sets the width of the cell tip window in pixels. - - - By default, this property is set to zero, which causes the cell tip window to grow or shrink to accommodate the cell tip text. Override this behavior and give the cell tip window a fixed width by specifying a non-zero value for this property. - - - - - - Gets or sets the column position of the current cell in the current split. - - - - - Gets or sets the color of the collapse icon. - - - - - Gets a reference to the cell editor that is currently active. - - - - - Gets the Split that has focus. - - - - - Gets or sets the default width for all grid columns. - - - - - Gets or sets the color of the expand icon in hierarchical grids. - - - - - Gets or sets a value indicating the visibility of column headers. - - - - - Gets or sets a value indicating the visibility of column footers. - - - - - Gets the collection of C1DataColumn objects. - - - - - Gets or sets a value indicating the visibility of the current cell in a split. - - - - - Gets or sets a value indicating the modification status of the current row. - - - - - Gets the split index which will be current after cell movement. - - - - - Gets the row which will be current after cell movement. - - - - - Gets the column which will be current after cell movement. - - - - - Gets or sets a value indicating the editing status of the current cell. - - - - - Gets or sets a value indicating whether editing will take place in a popup window or within cell boundaries. - - - - - Gets or sets a value that determines how the grid displays rows below the last data row. - - - - - Gets or sets the image used for ErrorProvider. - - - - - Gets or sets a value that determines how the last column will extend to fill the dead area of the grid. - - - - - Gets or sets how the rightmost column reacts when clicked by the user. - - - - - Gets or sets a value indicating whether the event will be raised. - - - - - Gets or sets a value indicating whether the filter bar has focus. - - - - - Gets or sets a value indicating the visibility of the FilterBar. - - - - - Gets or sets the row index for the first visible row in a grid or split. - - - - - Gets or sets the zero-based index of the leftmost column in a grid or split. - - - - - Gets or sets the MarqueeStyle for a grid. - - - - - Gets or sets the time (milliseconds) in which the incremental search string will reset for a dropdown when the property is True. - - - - - Gets or sets the selection state of the grid. - - - - - Gets or sets the Image used in the record selector to indicate the Current row. - - - - - Gets or sets the Image used in the record selector to indicate the Modified row. - - - - - Gets or sets the Image used in the record selector to indicate the AddNew row. - - - - - Gets or sets the Image used in the record selector to indicate the FilterBar row. - - - - - Gets or sets the Image used in the record selector to indicate the Standard row. - - - - - Gets or sets the Image used in the record selector to indicate the Header row. - - - - - Gets or sets the Image used in the record selector to indicate the Footer row. - - - - - Gets the object. - - - - - Gets the object. - - - - - Gets or sets a value indicating the visibility of row headers for a grid or split. - - - - - Gets or sets the width of the row headers. - - - - - Gets or sets the the current row. - - - - - Gets or sets a value that determines whether the grid displays a pop-up text window when the scrollbar thumb is dragged. - - - - - Gets the collection of rows that are currently selected. - - - - - Gets the collection of columns that are currently selected. - - - - - Gets or sets the number of characters selected within the grid's editing window. - - - - - Gets or sets the starting point of the text selection within the grid's editing window. - - - - - Gets or sets the string containing the currently selected text within the grid's editing window. - - - - - Gets a value indicating whether a range of cells has been selected. - - - - - Gets or sets the index of the current within the . - - - - - Gets or sets a value that determines how columns will resize when the grid is resized. - - - - - Gets or sets a value indicating the behavior of the tab and arrow keys at split borders. - - - - - Gets or sets the behavior of the tab key. - - - - - Gets the number of visible columns in the current Split. - - - - - Gets the number of visible rows in the current Split. - - - - - Gets or sets a value indicating the behavior of Tab and arrow keys at row boundaries. - - - - - Gets the object that controls the appearance of the vertical scrollbar. - - - - - Gets the object that controls the appearance of the horizontal scrollbar. - - - - - Gets or sets the layout by which the grid will display data. - - - - - Gets or sets a value that determines the relative position of the next cell when the user presses the Enter key. - - - - - Gets or sets the text displayed in the grouping area when no columns have been grouped. - - - - - Gets the collection of columns that are grouped. - - - - - Gets or sets a value indicating the visibility of the Grouping area of the grid when the property is set to GroupBy. - - - - - Gets the rectangle occupied by the grouping area. - - - - - - - - - - Gets or sets the number of subrows of the grid when the property is set to MutlipleLinesFixed. - - - - - Gets or sets a value indicating the behavior of the grid and row currency when the grid's datasource is sorted. - - - - - Gets or sets the style of the border drawn between grid rows. - - - - - Gets or sets the color of the subrow divider in a multi-line grid. - - - - - Gets or sets the C1TrueDBGrid control used as a child grid in a hierarchical presentation. - - - - - Gets or sets the object that controls the appearance of the caption area. - - - - - Gets or sets the object that controls the appearance of the cell editor within a grid. - - - - - Gets or sets the object that controls the appearance of an even-numbered row when using . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of column footers. - - - - - Gets or sets the object that controls the appearance of grouping area. - - - - - Gets or sets the object that controls the appearance of the grids column headers. - - - - - Gets or sets the object that controls the current row/cell when the is set to Highlight Row/Cell. - - - - - Gets or sets the object that controls the grids caption when it doesn't have focus. - - - - - Gets or sets the object that controls the appearance of an odd-numbered row when using . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of selected rows and columns. - - - - - Gets or sets the root object. - - - - - Gets the collection of named objects. - - - - - Gets or sets a value indicating whether the grid or split uses the for odd-numbered rows and for even-numbered rows. - - - - - Gets or sets how interactive row resizing is performed. - - - - - Gets or sets a value indicating whether a user is allowed to create horizontal splits. - - - - - Gets or sets a value indicating whether a user is allowed to create vertical splits. - - - - - Gets the collection of objects. - - - - - Gets or sets the width of a column when the is set to Inverted or Form. - - - - - Gets or sets the width of the column caption when the is set to Inverted or Form. - - - - - Occurs after a cell has been updated. - - - - - Occurs after a row has been deleted. - - - - - Occurs after a row has been added. - - - - - Occurs after a row has been updated. - - - - - Occurs before a cell is updated to the datasource. - - - - - Occurs before a row is deleted. - - - - - Occurs before a new row is added to the datasource. - - - - - Occurs before a row is updated to the datasource. - - - - - Occurs whenever a column is resized. - - - - - Occurs whenever a column header is clicked. - - - - - Occurs whenever a column footer is clicked. - - - - - Occurs before a cell is rendered and the is true. - - - - - Occurs before a cell is to be printed and the is true. - - - - - Occurs before the page header is to be printed. - - - - - Occurs before the page footer is to be printed. - - - - - Occurs prior to focus moving to another cell. - - - - - Occurs when the focus moves to a different cell. - - - - - Occurs whenever the user resizes a row. - - - - - Occurs whenever the user scrolls the grid. - - - - - Occurs whenever the user selected a different range of rows or columns. - - - - - Occurs whenever a Split changes focus. - - - - - Occurs when a split is removed. - - - - - Occurs when a split is added. - - - - - Occurs whenever the user changes the value of a cell. - - - - - Occurs when the grid needs to access the value of an unbound column. - - - - - Occurs when the value of an unbound column has been updated. - - - - - Occurs after editing is completed. - - - - - Occurs before a cell enters edit mode. - - - - - Occurs whenever a cell first enters edit mode. - - - - - Occurs whenever the first row changes. - - - - - Occurs whenever the left column changes. - - - - - Occurs whenever a cell is about to be rendered and whose property has been set to FormatTextEvent. - - - - - Occurs whenever a button is clicked in a cell. - - - - - Occurs whenever a selection has been made to the built-in combo or TrueDBDropdown. - - - - - Occurs whenever a user attempts to enter invalid data into a column that is using valueitems. - - - - - Occurs whenever a cell is to be rendered and the is true. - - - - - Occurs whenever a grouped cell that contains an aggregate is to be rendered and is true. - - - - - Occurs whenever the grid renders a row and the property has been set. - - - - - Occurs whenever an AddNew operation has been initiated. - - - - - Occurs whenever the user has finished moving a column. - - - - - Occurs when the grid needs to display CellTips. - - - - - Occurs after the grid has been initialized. - - - - - Occurs whenever the datasource changes. - - - - - - - - - - Occurs whenever a hierarchical row is collapsed. - - - - - Occurs whenever a hierarchical row is expanded. - - - - - Occurs whenever a column is moved into or out of the grouping area. - - - - - Occurs when the property is set to custom. - - - - - Occurs when the is set to Custom for a grouped row. - - - - - Occurs whenever a column in the grouping area is clicked. - - - - - Occurs whenever a row is being grouped and a custom interval has been specified. - - - - - Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. - - - - - Occurs when the contents of a cell in the filterbar changes. - - - - - Occurs when a button is clicked in the filterbar. - - - - - Occurs when the user attempts to open a child grid. - - - - - Occurs when the user attempts to close a child grid. - - - - - Occurs when the user drags a column into the grouping area. - - - - - Occurs when the user types in the filterbar and the property is false. - - - - - Occurs after the datasource has been filtered. - - - - - Occurs after a column has been sorted. - - - - - Occurs whenever an exception is thrown during end user interaction. - - - - - C1TrueDBDropdown control. - - - - - Called then application theme is changed. - - The theme object - - - - Creates a new instance of the object. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - Creates the view. - - - - - - Creates the view. - - The other. - - - - - - - - - - - - - - - - notifications - - - - - Controls the used to change the appearance for cells meeting the specified condition. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - - - Controls the used to change the appearance of cells according to their contents. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - A regular expression string. - - - - - Restores the default layout. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Restores the default layout. - - - - - Returns the column index for the column containing the specified X coordinate. - - - The horizontal coordinate (X value) in pixels. - - - The index of the column in the collection beneath the specified X coordinate. - - - - - Returns the zero-based index of the display row containing the Y specified coordinate. - - - The vertical coordinate (Y value) in pixels. - - - The display row index beneath the specified Y coordinate. - - - - - - - - - - Reinitializes grid with data from its data source. - - - True to preserves current column layout. False retrieves the schema from the datasource. - - - - - - - - - - Scrolls the data area by the specified number of rows and columns - - - - - - - Occurs when the user has moved a column. - - - - - Occurs when the user has resized a column. - - - - - Occurs when the grids DataSource has changed. - - - - - Occurs when the dropdown is opened. - - - - - Occurs when the dropdown closes. - - - - - Occurs whenever the grid is about to display a row of data and the FetchRowStyles property is True. - - - - - Occurs when the first displayed row of a control or split is changed. - - - - - Occurs when the user clicks on the column footer. - - - - - Occurs when the grid is about to display cell data in a column whose NumberFormat property is set to the string FormatText Event. - - - - - Occurs when the user clicks on the column header. - - - - - Occurs when the first visible column of a grid or split is changed. - - - - - Occurs when the focus moves to a different row. - - - - - Occurs when the user has finished resizing a grid row. - - - - - Occurs when the user scrolls the grid. - - - - - Occurs when the user selects a different range of rows or columns. - - - - - Occurs when the grid needs to display the value of a cell in an unbound column. - - - - - Occurs when the user attempts to enter invalid data into a column that is using value lists. - - - - - Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. - - - - - Gets the current selected index. - - - - - - - - - - - - - - - - - - Raises the MouseUp event. - - A MouseEventArgs that contains the event data. - - - - Raises event. - - A that contains the event data. - - - - Inherited from control. - - A that contains the event data. - - - - - - - - - - Gets the default size of the control. - - - - The default of the control. - - - - - Gets or sets a value indicating the ability to move columns. - - - - - Gets or sets a value indicating the ability to select columns. - - - - - Gets or sets how interactive row resizing is performed. - - - - - Gets or sets a value indicating whether the dropdown uses the for odd-numbered rows and for even-numbered rows. - - - - - Gets or sets the current row position of the underlying CurrencyManager. - - - - - Gets or sets the column position. - - - - - Gets or sets a value indicating the visibility of column footers. - - - - - Gets or sets the height of column captions. - - - - - Gets or sets the height of column footers. - - - - - Gets or sets a value indicating the visibility of column headers. - - - - - Gets the collection of C1DataColumn objects. - - - - - Gets the collection of C1DisplayColumn objects. - - - - - Gets or sets a value indicating the visibility of the current cell. - - - - - Gets or sets the name of the column used to update the associated grid column. - - - - - Gets or sets the property used to update the associated grid column. - - - - - - - - - - Gets or sets the default width for all grid columns. - - - - - Gets or sets the width of the dropdown. - - - - - Gets or sets a value that determines how the grid displays rows below the last data row. - - - - - Gets or sets the object that controls the appearance of an even-numbered row when using . - - - - - Gets or sets a value that determines how the last column will extend to fill the dead area of the dropdown. - - - - - Gets or sets a value indicating whether the event will be raised. - - - - - Gets or sets the row index for the first visible row. - - - - - Gets or sets the object that controls the appearance of column footers. - - - - - Gets or sets the object that controls the appearance of the grids column headers. - - - - - Gets or sets the object that controls the appearance of a highlighted row. - - - - - Gets or sets a value indicating whether the control should resize to avoid showing partial items. - - - - - - - - - - - - - - - - - - - - Gets or sets the zero-based index of the leftmost column. - - - - - Gets or sets the name of the column used for incremental search. - - - - - Gets or sets the property used for incremental search. - - - - - Gets or sets the object that controls the appearance of an odd-numbered row when using . - - - - - Gets or sets the the current row. - - - - - Gets or sets the style of the border drawn between rows. - - - - - Gets or sets the color of the subrow divider in a multi-line dropdown. - - - - - Gets or sets a value that determines if rows are highlighted under the mouse. - - - - - Gets the object that controls the appearance of the vertical scrollbar. - - - - - Gets the object that controls the appearance of the horizontal scrollbar. - - - - - Gets or sets a value that determines whether the grid displays a pop-up text window when the scrollbar thumb is dragged. - - - - - Gets or sets the root object. - - - - - Gets the collection of named objects. - - - - - Gets or sets a value that determines how the grid display values in a column. - - - - - Gets the number of visible columns in the dropdown. - - - - - Gets the number of visible rows in the dropdown. - - - - - Occurs when the user has moved a column. - - - - - Occurs when the user has resized a column. - - - - - Occurs when the grids DataSource has changed. - - - - - Occurs when the dropdown is opened. - - - - - Occurs when the dropdown closes. - - - - - Occurs whenever the grid is about to display a row of data and the FetchRowStyles property is True. - - - - - Occurs when the first displayed row of a control or split is changed. - - - - - Occurs when the user clicks on the column footer. - - - - - Occurs when the grid is about to display cell data in a column whose NumberFormat property is set to the string FormatText Event. - - - - - Occurs when the user clicks on the column header. - - - - - Occurs when the first visible column of a grid or split is changed. - - - - - Occurs when the focus moves to a different row. - - - - - Occurs when the user has finished resizing a grid row. - - - - - Occurs when the user scrolls the grid. - - - - - Occurs when the user selects a different range of rows or columns. - - - - - Occurs when the grid needs to display the value of a cell in an unbound column. - - - - - Occurs when the user attempts to enter invalid data into a column that is using value lists. - - - - - Occurs whenever the grid has focus and the scrollbar thumb is moved using the mouse. - - - - - Gets or sets the object that controls the appearance of the caption area. - - - - - Gets or sets the object that controls the appearance of the RecordSelectors. - - - - - Represents a ListBox with checkable items and advanced auto-search. - - - - - Internal delegate and parameters for C1ItemCheck event. - - - - - - - Represents a filter that contains a and a - . - - - - - Interface implemented by column filter objects. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; - False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A to be used to modify the filter at - run time. - The control returned must implement the - interface. - - - - Gets a value that determines whether the filter is active. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to edit the filter - at run time. - - - - Gets the contained in this . - - - - - Gets the contained in this . - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Represents a control used to edit a object. - - - - - Interface implemented by column filter editor controls. - - - - - Initializes the editor with parameters from a filter to be edited. - - that contains the column to be filtered. - Index of the column that contains the values to be filtered. - being edited. - - - - Applies changes to the filter being edited. - - - - - Gets a value that determines whether the containing form should remain - open even when it is deactivated. - - - This property allows custom editors to display modal dialogs. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Represents a filter based on one or two logical conditions. - - - - - Initializes a new instance of a . - - - - - Creates a clone of this . - - A clone of this . - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; - False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to modify the filter at run time. - - - - Gets the first filter condition. - - - - - Gets the second filter condition. - - - - - Gets or sets whether the filter conditions should be combined - with an 'And' or with an 'Or' operator. - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Represents operators used in filter conditions. - - - - - Disables the operator. - - - - - Return true if the value equals the operator parameter. - - - - - Return true if the value does not equal the operator parameter. - - - - - Return true if the value is greater than the operator parameter. - - - - - Return true if the value is less than the operator parameter. - - - - - Return true if the value is greater than or equal to the operator parameter. - - - - - Return true if the value is less than or equal to the operator parameter. - - - - - Return true if the string representation of the value contains the operator parameter. - - - - - Return true if the string representation of the value does not contain the operator parameter. - - - - - Return true if the string representation of the value begins with the operator parameter. - - - - - Return true if the string representation of the value ends with the operator parameter. - - - - - Represents a condition within a . - - - Each contains up to two conditions that - can be combined with 'And' or 'Or' operators. - - - - - Clears this condition by setting the to 'None' - and the to null. - - - - - Applies the condition to a given value. - - Value to test. - True if the value satisfies the condition, false otherwise. - - - - Gets a value that indicates whether the condition is active. - - - - - Gets or sets the operator used by this condition. - - - - - Gets or sets the parameter used by this condition. - - - - - Gets or sets the parameter as a string used by this condition. - - - - - Represents a control used to edit a . - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Represents a form that contains filter editor controls. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Specifies the type of filter to be used for a . - - - - - Filter column using a . - - - - - Filter column by values using a . - - - - - Filter column by conditions using a . - - - - - Filter column using a filter specified by the caller. - - - - - Do not provide a filter for this column. - - - - - GridFilterHandler - Handles cell/range selection for the FlexGridBase class - - - - - Represents a filter based on a set of values. - - - - - Resets the filter making it inactive. - - - - - Applies the filter to a value. - - Value to be filtered. - True if the satisfies the filter; False otherwise. - - - - Gets the editor used to modify the filter at run time. - - A that is used to edit the filter at run time. - - - - Gets or sets an array with the values that should be included in the output. - - - Setting this property to null causes the filter to include all values in the output. - - - - - Gets or sets a value that determines whether the filter is active. - - - - - Represents a control used to edit a . - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Represents a collection of unique values of type T. - - - - - Initializes a new instance of a . - - - - - Initializes a new instance of a . - - The comparer to use when comparing keys. - - - - Adds a value to the collection if not already present. - - Value to add to the collection. - If checked - - - - Determines whether the collection contains a specific value. - - Value to look for. - True if the collection contains the value. - - - - Removes all objects from the collection. - - - - - Sorts the elements in the collection. - - - This method assumes the elements support the interface. - - - - - Creates a from this collection. - - A that contains the objects in this collection. - - - - Gets an that iterates though the collection. - - An that iterates though the collection. - - - - Gets an that iterates though the collection. - - An that iterates though the collection. - - - - Compare two elements (for use in sorting; nulls appear last) - - - - - Gets the number of objects in the collection. - - - - - - - - - - - - - - - - - - - - - - Specifies the language to be used for localizing the control. - - - - - Localize the control to the language specified by the CurrentUICulture. - - - - - Localize the control to Arabic. - - - - - Localize the control to Czech. - - - - - Localize the control to Danish. - - - - - Localize the control to Dutch. - - - - - Localize the control to English. - - - - - Localize the control to Finnish. - - - - - Localize the control to French. - - - - - Localize the control to German. - - - - - Localize the control to Greek. - - - - - Localize the control to Hebrew. - - - - - Localize the control to Italian. - - - - - Localize the control to Japanese. - - - - - Localize the control to Norwegian. - - - - - Localize the control to Polish. - - - - - Localize the control to Portuguese. - - - - - Localize the control to Russian. - - - - - Localize the control to Slovak. - - - - - Localize the control to Spanish. - - - - - Localize the control to Swedish. - - - - - Localize the control to Chinese (simplified). - - - - - Localize the control to Turkish. - - - - - Localizes a given using resources stored in an xml resource file. - - Control to localize. - to use for localization. - True if the resources for the given culture were found and the form was localized; false otherwise. - - This method expects the localized strings to be stored in an embedded resource. - The resource name should end with "[form-class-name].Localize.xml", and the schema is as follows: - - <form> - <culture id="en"> - <control name="C1SpellDialog" text="Spelling" /> - <control name="_btnAdd" text="&Add" /> - ... - </culture> - <culture id="es"> - <control name="C1SpellDialog" text="Ortografia" /> - <control name="_btnAdd" text="&Anadir" /> - ... - </culture> - ... - <form name="C1SpellDialog"> - - - - - - Localizes a given using resources stored in an xml resource file. - - Control to localize. - Two-letter ISO culture name (en, es, de, etc). - True if the resources for the given culture were found and the form was localized; false otherwise. - - - - Localizes a given using resources stored in an xml resource file. - - Control to localize. - True if the resources for the given culture were found and the form was localized; false otherwise. - - - - Summary description for MaskedTextBox. - - - - - Returns true if the current control content is valid - - - - - Returns the character nearest the given point. - - - X,Y coordinate in client space - - - - - Content property: - Gets the non-literal characters in the control. - - - - - PlaceHolder property: - Gets or sets the characters used to show spaces where user is supposed to type. - - - - - CurrentLine property: - Gets the number of the line where the cursor is. - - - - - LineCount property: - Gets the number of lines in the control. - - - - - Summary description for WinUser. - - CAUTION: Use this attribute with extreme care. Incorrect use can create security weaknesses. - This attribute can be applied to methods that want to call into native code without incurring - the performance loss of a run-time security check in doing so. The assertion and subsequent - demands performed when calling unmanaged code is omitted at run time, resulting in substantial - performance savings. Only code that has been granted the UnmanagedCode permission can do this - (see SecurityPermissionFlag). Using this attribute in a class or module applies to - all contained methods. - - - - Base class for splits. - - - - - - - - - - moving sizing info - - - - - editor - - - - - - creates a View from another view - - - - - - Releases the resources used by the view. - - - - - Releases the resources used by the view. - - - - - - Returns the string that represents the current object. - - - - - - Returns the style associated with a given cell. - - Row to fetch the style for. - Column to fetch the style for. - The text of the cell. - - - - - Returns a value indicating whether a line should be rendered for a given row and column. - - The row index. - The column index. - - - - - scrollbar helpers - - - - - Raised when the scrollbar visibility changes. - - The scrollbar object. - The new visible state. - - - - - - - - - - - - - - - - - - Notifies what curent row or column is changed. - - - - - - - mouse handlers - - - - - - - - - - - - - - - - - - Scrolls the view either right or left during column move operations. - - - - - - - - - returns true if we displaying the insertion point on the leftside of the rect - - - - - - - - - - - - - autosizes the height of the given row - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Performs internal reset. - - - - - - - - - - - - - - - - - checks to see if the mouse is over a 3d element - - - - - - Style listeners - - - - - - - Called when C1DisplayColumn properties have been changed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - creates a datasource from the valueitems so for the internal combobox. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets or sets an XML string containing the current filter state. - - - - - potential properties - - - - - - - - - - - Gets or sets the type of border rendered for a split. - - - - - Base class for typeconverter. - - - - - Returns an object from it's string representation. - - - - - - - Returns a string representation from a given object. - - - - - - - Returns true if the source type is string. - - - - - - - - Returns true of the type of string. - - - - - - - - Overloaded. Returns whether this converter can convert an object of one type to the type of this converter. - - - - - - - - - Overloaded. Converts the given value object to the specified type. - - - - - - - - - - Typeconverter for bitmaps. Used for serialization. - - - - - Override. Returns the object given a string. - - - - - - - Override. Returns a string given an object. - - - - - - - Expandable object converter that doesn't handle strings. - - - - - Overloaded. Returns whether this converter can convert an object of one type to the type of this converter. - - - - - - - - Overloaded. Returns whether this converter can convert the object to the specified type. - - - - - - - - GridDataTypeConverter - Uses a drop-down list box to select values of type Type - (e.g. Column.DataType property). - - - - - - - - - - Initializes a new instance of the class. - - - - - Converts from. - - The CTX. - The ci. - The obj. - - - - - Helper class to manage FlatMode = Popup. Where 3D elements, - col headings, buttons, record selectors are drawn flat except when - the mouse is over them. Then they take on a 3D appearance - - - - - Defined the relationship of a column. - - - - - Column is not related. - - - - - Column is the parent. - - - - - Column is the child. - - - - - Represents a column that defines binding information for the datasource. - - - - - Creates a new instance of this object. - - - - - Creates a new instance of this object. - - The column caption. - The data type. - - - - Creates a new instance of this object. - - The column caption. - The field from the data source. - The data type. - - - - - - - - - - Resets ButtonPicture to its default value. - - - - - Resets FilterButtonPicture to its default value. - - - - - Gets the display value for a cell in a given row. - - The row to fetch. - The display value. - - - - Gets the cell value for a given row. - - The row to fetch. - The underlying data from the data source. - - - - Invalidate the current column in all visible rows. - - - - - Invalidates the current cell. - - - - - Invalidates the cell at the given row. - - Row to invalidate. - - - - Repopulate the entire grid from the data source. - - - - - Repopulates the current cell from the data source. - - - - - Repopulates the specified data from the data source. - - The row to refetch. - - - - Gets or sets the level of this column in a hierarchical data source. - - - - - - - - - - - - - - - Gets or sets the type of aggregate computed for a grouped row. - - - - - Gets or sets the image shown in a drop-down button in a column. - - - - - Index of button picture. - - - - - Tag of button picture. - - - - - Gets or sets the text in the column header. - - - - - Gets or sets a value indicating whether data in this column has been modified. - - - - - Gets or sets the database field name for a column. - - - - - Gets or sets the type of object stored for a column. - - - - - - - - - - Gets or sets the maximum number of characters which may be entered for cells in this column. - - - - - Gets or sets the default value for a column when a new row is added by the grid. - - - - - Gets or sets the edit mask for a column. - - - The property allows an input mask to be specified for automatic input formatting and validation. The mask syntax is similar to the one used by Microsoft Access. Setting the input mask for a column will prevent the user from entering any information in the cell that is not in the format of the string. - The must be a string composed of the following symbols: - Wildcards - - 0Digit. - 9Digit or space. - #Digit or sign. - LLetter. - ?Letter or space. - ALetter or digit. - aLetter, digit or space. - &Any character. - - Localized characters - - .Localized decimal separator. - ,Localized thousand separator. - :Localized time separator. - /Localized date separator. - - Command characters - - \Next character is taken as a literal. - >Translate letters to uppercase. - <Translate letters to lowercase. - - - - - - Gets or sets a value indicating whether literal characters in the edit mask are stored to the underlying data source. - - - - - Gets or sets the editor that is used to edit cell data. - - - - - Gets or sets a value indicating whether a DateTime picker is used to edit this column. - - - - - Gets or sets the image shown as the column's filter button. - - - - - - - - - - Gets or sets the key used to initiate the filtering operation as the user types in the filterbar. - - - - - Gets or sets the text displayed in the column footer. - - - - - Gets or sets the characters that should be ignored when applying the filter criteria to the datasource. - - - - - Gets or sets the operator that is used for a filter expression. - - - - - Gets or sets the data associated with the value of the filter for a column. - - - - - Specifies the text that is rendered in an empty cell in the Filterbar. - - - - - Gets or sets a value indicating whether a drop-down list is displayed in the filter cell that lists all the values of the field. - - - - - Gets or sets the value indicating All when the FilterDropdown property is True. - - The filter dropdown text. - - - - Gets or sets a value indicating whether multiple values can be selected in the filter drop-down list. - - If FilterMultiSelect is true then the user is able to enter several values using comma separator. - - - - Gets or sets a character used to separate values in the filter drop-down list when multiple values are selected. - - - - - Gets or sets the text of Apply button in the filter drop-down list when the FilterMultiSelect property is True. - - - - - Gets or sets the text of Cancel button in the filter drop-down list when the FilterMultiSelect property is True. - - - - - Gets or sets the text of Clear button in the filter drop-down list when the FilterMultiSelect property is True. - - - - - Specifies the ImeMode used to edit this column. - - - - - Gets or sets the formatting string for a column. - - - - - Gets the object for this column. - - - - - Gets or sets the display value for the current cell. - - - - - Gets or sets the value of the current cell. - - - - - Gets or sets a user defined objects associated with this column. - - - - - Gets or sets a user defined object associated with this column. - - - - - Gets or sets the state of the sorting glyph in the column caption bar. - - - - - Gets or sets the associated with this column. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Summary description for GridEditor. - - - - - Represents an object used to render grid elements. - - - - - Creates a new instance of this object. - - - - - Called when the class is being disposed. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - - - - - - - Renders the given string using the style properties. - - Graphics object to render too. - Rectangle to render in. - String to render. - - - - Renders the given string using the style properties. - - Graphics object to render too. - Rectangle to render in. - String to render. - The draw flags. - - - - Reset BackColor to its default value. - - - - - Resets ForeColor to its default value. - - - - - Resets Font to its default value. - - - - - Resets HorizontalAlignment to its default value. - - - - - Resets VerticalAlignment to its default value. - - - - - Resets BackgroundPictureDrawMode to its default value. - - - - - Resets the BackgroundImage to its default value. - - - - - Resets ForGroundImagePosition to its default value. - - - - - Resets ForegroundImage to its default value. - - - - - Resets Locked to its default value. - - - - - Resets WrapText to its default value. - - - - - Resets Trimming to its default value. - - - - - Resets all specialized attributes. - - - - - Gets the associated with this Style. - - - - - Gets or sets the background color associated with a Style. - - - - - Gets or sets the background color associated with a Style. - - - - - Gets or sets a value indicating whether gamma correction is enabled when a linear gradient style is rendered. - - true if gamma correction is enabled; otherwise, false. - - - - Gets or sets the direction of a linear gradient. - - The gradient mode. - - - - Gets or sets the alpha component when the style is rendered. - - - - - Gets or sets the foreground color associated with a Style. - - - - - Gets or sets the Font associated with a Style. - - - - - Gets or sets the horizontal text alignment. - - - - - Gets or sets the vertical text alignment. - - - - - Gets or sets the rendering method for a . - - - - - Gets or sets the background image associated with a Style. - - - - - Gets or sets the position that the ForGroupImage is rendered. - - - - - Gets or sets the foreground image associated with a style. - - - - - Gets or sets a value indicating whether data entry is permitted for the assocated object. - - - - - Gets or sets a value indicating whether text is word-wrapped when it does not fit into a layout shape. - - - - - Gets or sets the name of the Style. - - - - - Gets or sets the trim characters for a string that does not completely fit into a layout shape. - - - - - Gets or sets the spacing between cell content and its edges. - - - - - - - - - - - - - - - - - - - - - - - - - Represents the border in a - - - - - Gets or sets the type of border. - - - - - Gets or sets the width of the left border. - - - - - Gets or sets the width of the right border. - - - - - Gets or sets the width of the top border. - - - - - Gets or sets the width of the bottom border. - - - - - Gets or sets the color of the border. - - - - - Summary description for GridEditorLateBind. - - - - - Represents an object that defines how cells are rendered. - - - - - Returns a that represents the current . - - - A that represents the current . - - - - - Gets or sets a value indicating whether both Value and Display Value are rendenered when Display value is an image. - - - - - Gets or sets a value indicating whether users can cycle through by clicking on a cell. - - - - - Gets or sets the index of the default or -1 for no default. - - - - - Gets or sets the maximum number of visible rows in the combobox. - - - - - Gets or sets the method in which cells are rendered. - - - - - Gets or sets a value indicating whether data values are translated using matching . - - - - - Gets or sets a value indicating whether values entered by the user must match on of the objects. - - - - - Gets the collection of Value/Display Value pairs. - - - - - - - - - - Represents a collection of objects. - - - - - Initializes a new instance of the class. - - - - - Adds a to the end of the collection. - - The ValueItem to add. - The index at which the ValueItem has been added. - - - - - - - - - - - Inserts a at the specified index. - - The zero-based index at which the ValueItem should be inserted. - The ValueItem to insert. - - - - Gets the index of the specified . - - The ValueItem to search. - The index of the ValueItem. - - - - Gets or sets the specified from the collection at the specified index. - - - - - Represents an object that defines a value/display value pair. - - - - - Initializes a new instance of the ValueItem class. - - - - - Initializes a new instance of the ValueItem class. - - Underlying data value. - Translated value. - - - - Returns a string that represents the current object. - - - - - - Gets or sets the raw (untranslated) value of this item. - - - - - Gets or sets the display value of this item. - - - - - - - - - - - - - - - Represents the columns in a split. - - - - - Releases the resources used by the component. - - - - - Returns a that represents the current . - - - A that represents the current . - - - - - Releases the resources used by the component. - - - - - - - - - - - Gets the filter expression for the column. - - The filter expression for the column - Use this method in your implementations of custom filtering. - Example shows how to build a row filter using method. - - "" Then - If sb.ToString() <> "" Then - sb.Append(" AND ") - End If - sb.Append(cond) - End If - - Next dc - ' filter the data - Me.DataSet11.Tables(0).DefaultView.RowFilter = sb.ToString() - End Sub]]> - - - - - - Controls the used to change the appearance for cells meeting the specified condition. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - - - Controls the used to change the appearance of cells according to their contents. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - A regular expression string. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - A regular expression string. - - - - - Adjusts the width of a column to accommodate the longest visible field within that column. - - - - - Gets or sets a value indicating whether the dropdown opens automatically when a key is typed. - - - - - Gets or sets a value indicating whether the dropdown auto fills the edit portion with the matched entry. - - - - - Gets the vertical offset of the top of the cell for the current row. - - - - - Gets or sets a value indicating whether the dropdown acts like a dropdown list (text portion is not editable). - - - - - Gets or sets the that controls the appearance of the column headers. - - - - - Gets or sets the root for this column. - - - - - Gets or sets the object that controls the appearance of column footers. - - - - - Gets or sets the used for the cell editor. - - - - - Gets or sets the used to render the cell in the grouped header row. - - - - - Gets or sets the used to render the cell in the grouped footer row. - - - - - Gets or sets a value indicating the visibility of a column. - - - - - Gets or sets the style of the border drawn between columns. - - - - - Gets or sets the width of a column. - - - - - Gets or sets the height of the column. - - - - - Gets or sets a value indicating the ability of a column to receive focus. - - - - - Gets or sets a value indicating whether editing is permitted in a column. - - - - - Gets or sets a value indicating whether contiguous like-value cells of this column are merged into one large cell. - - - - - Gets or sets a value indicating whether this is frozen. - - true if frozen; otherwise, false. - - - - - - - - - Gets or sets a value indicating whether column resizing is allowed. - - - - - Gets or sets a value indicating whether cells in this column look like buttons. - - - - - Gets or sets a value indicating whether buttons will be displayed when the cell does not contain focus. - - - - - Gets or sets a value indicating whether a dropdown button will be displayed in this column. - - - - - Gets or sets a value indicating whether a dropdown button will be displayed in this column. - - - - - Gets or sets the minimum width a column can be resized to when in . - - - - - Gets or sets a value indicating whether to display the column divider in the header area. - - - - - Gets or sets a value indicating whether to display the column divider in the footer area. - - - - - Gets or sets a value indicating whether the FetchCellStyle event will be raised for a column. - - - - - Gets or sets a value indicating whether a column header will act like a button. - - - - - Gets or sets a value indicating whether a column footer will act like a button. - - - - - Gets or sets a value indicating whether cells in this column are drawn by the user in the OwnerDrawCell event. - - - - - Gets the associted associated with this object. - - - - - - - - - - Gets the caption of the associated objects. - - - - - Enumerates the type of changes made to a display column for event listeners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TypeConverter for the GridLines object. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Froms the STR. - - The STR. - - - - - - - - - - - - - Represents the line used for row and column dividers. - - - - - Creates a new instance of this object. - - - - - Gets or sets the color of lines used for row and column dividers. - - - - - Gets or sets the style of lines used for row and column dividers. - - - - - - - - - - Initializes a new instance of the class. - - - - - Gets or sets the width. - - The width. - - - - Gets or sets the border3D style. - - The border3D style. - - - - Class to manage all the views - - TODO: mechanism for persistence - - - - - Sets the column index to the first visible column. - - - - - Sets the column index to the first visible column. - - - - - Inserts a new horizontal view - - - index of new view position - - - - computes the size of all views based upong width and height of views - - Area in which all the views live - - TODO: add fixed view sizes, we now assume everything is scalable - TODO: add different types of view divider widths - - - - Adjust the views width and heights - - Old frames client area - New frames client area - - TODO: fixed horizontal views need to be accounted for - TODO: account for different view sizing borders - - - - Returns the view that is in the scroll group that has the smallest - number of visible lines - - - - - - - Represents a collection of ViewRow objects. - - - - - Performs additional custom processes when clearing the contents of the instance. - - - - - Performs additional custom processes when removing an element from the instance. - - The zero-based index at which value can be found. - The value of the element to remove from index. - - - - Owner of the row list. - - - - - Gets or sets the at the specified index. - - - - - Represents a row in a split. - - - - - Adjust the size of the row to fully display cell data. - - - - - Gets or sets the visiblity of a row. - - - - - Gets the type of row. - - - - - Gets or sets the height of a row. - - - - - Gets or sets the width of a row. - - - - - Gets index of the row in data source. - - - - Returns -1 if there is not corresponding data row. - For example, for a group row. - - - Use DataRowIndex property to translate view row index to data row index. - - - - - private void c1TrueDBGrid1_FetchCellStyle(object sender, C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs e) - { - ViewRow row = this.c1TrueDBGrid1.Splits[0].Rows[e.Row]; - if (row.RowType == RowTypeEnum.DataRow) - { - bool val = (bool)this.c1TrueDBGrid1[row.DataRowIndex, 3]; - if (val == true) - e.CellStyle.BackColor = Color.Red; - } - } - - - - - - Represents a horizontal or vertical pane to display and edit data. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The f. - - - - Initializes a new instance of the class. - - The other. - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - - - - - - - - - - - - - - - Draws the filter cell. - - The instance containing the event data. - The col. - - - - - - - - - - - - - - - - returns true if the data at the given row is the same as the passed in string - - - absolute row number - - - - - - - Called when C1DisplayColumn properties have been changed. - - - - - Returns the upper and lower bounds for a merged column. - - Starting row - Starting colum. - The CellRange object that defines the rows and columns for a merged cell. - - - - finds the upper and lower bounds for a merged column - - row number, relative - - - - - - Exits editing mode. - - - - - - short circuits exiting the editor on row change when actively filtering - - - - - - - - - - - - - - - - - - - - - - - - - Adds the row. - - The newrow. - - - - Deletes the rows. - - - - - Gets the drop down for the current column if one exists. - - - - - - Determines whether we have an internal combo. - - - true if combo is not a valueitem otherwise, false. - - - - - Determines whether this instance has combo. - - - true if this instance has combo; otherwise, false. - - - - - Creates the internal dropdown for use in the filterbar. - - - - - - Sets the flat mode. - - The mode. - - - - - - - - - - - - - - - Controls the used to change the appearance for cells meeting the specified condition. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - - - Controls the used to change the appearance of cells according to their contents. - - - Combination of one or more enumerations. - - - object that specifies appearance attributes. - - - A regular expression string. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - - - Removes a cell condition established with a previous call to the method. - - - Combination of one or more enumerations. - - - A regular expression string. - - - - - Returns the Rectangle for the given Row and Column - - Visible row number - Visible column index - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets or sets a value indicating whether the split can recive focus. - - - - - Gets or sets a value indicating the ability to move columns. - - - - - Gets or sets a value indicating the ability to select columns. - - - - - Gets or sets a value indicating the ability to select rows. - - - - - Gets or sets the name of a split. - - - - - Gets or sets how interactive row resizing is performed. - - - - - Gets or sets a value indicating whether a user is allowed to resize horizontal splits. - - - - - Gets or sets a value indicating whether a user is allowed to resize vertical splits. - - - - - Gets or sets a value indicating whether the split uses the for odd-numbered rows and for even-numbered rows. - - - - - Gets or sets the caption. - - - - - Gets or sets the height of the caption. - - - - - Gets or sets a value indicating the visibility of column headers. - - - - - Gets or sets the height of the column captions. - - - - - Gets or sets the height of column footers. - - - - - Gets or sets a value indicating the visibility of the current cell in a split. - - - - - Gets or sets a value that determines how the last column will extend to fill the dead area of the split. - - - - - Gets or sets a value indicating whether the event will be raised. - - - - - Gets or sets a value indicating whether the filter bar has focus. - - - - - Gets or sets a value indicating the visibility of the FilterBar. - - - - - Gets or sets the filter border style. - - The filter border style. - - - - Gets or sets the row index for the first visible row in a split. - - - - - - - - - - Gets or sets the left most visible column for a split. - - - - - Gets or sets the MarqueeStyle for a Split. - - - - - Gets or sets a value indicating if the cells of a split can be edited. - - - - - Gets or sets the width of the row headers. - - - - - - - - - - Gets or sets a value indicating the visibility of row headers for Split. - - - - - Gets the collection of Rows displayed in the Split. - - - - - Gets or sets the group which synchronizes verticall scrolling between splits. - - - - - Gets or sets the minimum width that a split can be interactively resized. - - - - - Gets or sets the minimum height that a split can be interactively resized. - - - - - Gets or sets the group which synchronizes horizontal scrolling between splits. - - - - - Gets or sets the position of the Horizontal scrollbar. - - - - - Gets or sets the position of the Vertical scrollbar. - - - - - Gets or sets a value that determines how columns will resize when the grid is resized. - - - - - Gets the object that controls the appearance of the vertical scrollbar. - - - - - Gets the object that controls the appearance of the horizontal scrollbar. - - - - - Gets or sets the size of a split. - - - - - Gets or sets the height of a split. - - - - - Gets or sets a value indicating how the property is used to determine the actual size of a split. - - - - - Gets or sets the object that controls the appearance of the caption area. - - - - - Gets or sets the object that controls the appearance of the cell editor within a grid. - - - - - Gets or sets the object that controls the appearance of an even-numbered row when using . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of column footers. - - - - - - - - - - Gets or sets the object that controls the appearance of the grids column headers. - - - - - Gets or sets the object that controls the current row/cell when the is set to Highlight Row/Cell. - - - - - Gets or sets the object that controls the grids caption when it doesn't have focus. - - - - - Gets or sets the object that controls the appearance of an odd-numbered row when using . - - - - - Gets or sets the object that controls the appearance of the . - - - - - Gets or sets the object that controls the appearance of selected rows and columns. - - - - - Gets or sets the root object for the Split. - - - - - Gets a collection of objects. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Initializes a new instance of the struct. - - The row. - The col. - - - - Initializes a new instance of the struct. - - The row1. - The col1. - The row2. - The col2. - - - - Determines whether the range is a single cell. - - - true if [is single cell]; otherwise, false. - - - - - Removes the child row and all its children - - - - - - Represents a collection of named . - - - - - - - - - - - - - - - - - - Adds a to the end of the collection. - - The Style to add. - The index at which the has been added. - - - - Inserts a at the specified index. - - The zero-based index at which the Style should be inserted. - The Style to insert. - - - - Gets the index of the specified . - - - The index of the Style. - - - - Removes the at the specified index. - - Teh zero-based index of the Style to remove. - - - - Gets the specified Style from the collection given its index. - - - - - Gets the specified Style from the collection given its name. - - - - - Represents a collection of in a . - - - - - Inserts a at the specified index. - - The zero-based index at which the C1DisplayColumn should be inserted. - The C1DataColumn to insert. - - - - Gets the index of the . - - - The index of the C1DisplayColumn. - - - - Gets the index of the specified by the . - - - The index of the C1DisplayColumn. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets the specified from the collection at the specified index. - - - - - Gets the specified from the collection wich contains the specified . - - - - - Gets the specified from the collection with the specified name. - - - - - Contains a collection of objects. - - - - - - - - - - - - Removes all elements from the collection. - - - - - Adds a C1DataColumn to the end of the collection. - - The C1DataColumn to add. - The index at which the C1DataColumn has been added. - - - - Removes the C1DataColumn at the specified index. - - The zero-based index of the row to remove. - - - - Inserts a at the specified index. - - The zero-based index at which the C1DataColumn should be inserted. - The C1DataColumn to insert. - - - - Gets the index of the specified . - - - The index of the the C1DataColumn. - - - - Gets the index of a with the specified DataField. - - - The index of the the C1DataColumn. - - - - Gets the specified C1DataColumn from the collection at the specified index. - - - - - Gets the specified C1DataColumn from the collection with the specified name. - - - - - Contains a collection of objects that represent columns that are selected. - - - - - Removes all elements from the collection. - - - - - Removes the C1DataColumn at the specified index. - - The zero-based index of the row to remove. - - - - Adds a C1DataColumn to the end of the collection. - - The C1DataColumn to add. - The index at which the C1DataColumn has been added. - - - - Inserts a at the specified index. - - The zero-based index at which the C1DataColumn should be inserted. - The C1DataColumn to insert. - - - - Contains a collection of objects that represent columns that are grouped. - - - - - Removes all elements from the collection. - - - - - Exchanges the C1DataColumn objects at the specified index. - - The zero-based index of the first C1DataColumn. - The zero-based index of the second C1DataColumn. - - - - Removes the C1DataColumn at the specified index. - - The zero-based index of the row to remove. - - - - Adds a C1DataColumn to the end of the collection. - - The C1DataColumn to add. - The index at which the C1DataColumn has been added. - - - - Inserts a at the specified index. - - The zero-based index at which the C1DataColumn should be inserted. - The C1DataColumn to insert. - - - - Represents a collection of Selected rows. - - - - - Removes all elements from the collection. - - - - - Removes the row at the specified index. - - The zero-based index of the row to remove. - - - - Adds a row to the end of the collection. - - Row number to add. - The index at which the row has been added. - - - - Inserts a row at the specified index. - - The zero-based index at which row should be inserted. - The row to insert. - - - - Gets the index of the specified row. - - - The index of the row. - - - - Gets or sets the specified Row index from the collection. - - - - - Represents a collection of Split objects. - - - - - This interface is used to allow objects and collection to serialize - types of their members in a custom way. - If a collection implements this interface, TypeToString is invoked during - serialization of collection items, and for all items for which it returns a - non-null string, that string is used as the element name of the item. - If a class implements this interface, AND a member of that class has - attribute TypeNameSerialization.Custom, AND does not have attribute - XmlAttribute (i.e. is serialized as an element), TypeToString is invoked - on the owner when that member is serialized, and if that returns a non-null - string, that string is used as the value of TypeName attribute. - When deserializing a collection which implements this interface, - StringToType is invoked for each new item in the collection, and if that - returns a non-null type, that type is used to create the item. Otherwise, - TypeNameSerialization attribute is used. - When deserializing a class which implements this interface, StringToType - is invoked on that class for members with TypeNameSerialization.Custom - attribute set. - - - - - Returns a string representing the type of the object - - - - - Returns the type restored from the serialized string - - - - - - - - - - - - - - - - - - - - - - Gets the index if the specified Split. - - - - - - - Gets the specified Split object from the collection. - - - - - Gets the specified Split object from the collection. - - - - - Gets the specified Split object from the collection. - - - - - Gets the number of vertical splits in the collection. - - - - - Gets the number of horizontal splits in the collection. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - splits properties - - - - - Specifies the glyph used to denote a sort direction in the column header. - - - - - Column is not sorted. - - - - - Column is sorted in ascending order. - - - - - Column is sorted in descending order. - - - - - Specifies the UI behavior for selecting rows and columns. - - - - - Multiple selection is disabled but single selection is permitted. When the user clicks a record selector, the current selection is cleared, and the clicked row is then selected and added to either the SelectedRows or SelectedCols collections. The Ctrl and Shift keys are ignored, and the user can only select one row at a time. - - - - - Multiple selection is enabled using the mouse. When the user clicks a record selector, the selection is cleared and the clicked row is selected and added to either the SelectedRows or Selected Cols collections. However, if the user holds down the Ctrl key while clicking, the clicked row is added to the current selection. The user can also select a range of rows by selecting the first row in the range, then selecting the last row in the range while holding down the Shift key. - - - - - Multiple selection is enabled using the mouse. The user can also select records with the following key combinations: Shift + Up Arrow, Shift + Down Arrow, Shift + PgUp, and Shift + PgDn. NOTE: The user will not be able to select a single cell, instead the entire corresponding row will be selected. - - - - - Specifies how 3D elements are rendered. - - - - - The grid’s column headers and recordselectors are rendered with an inset three-dimensional look - - - - - Three-dimensional elements appear flat - - - - - Three-dimensional elements are flat, but when the user drags the cursor over a column heading or recordselector, they become three-dimensional and appear to pop up. - - - - - Three-dimensional elements uses XP Themes if available. - - - - - Specifies the sizing mode for splits. - - - - - The indicates the relative size of the split with respect to other scalable splits. - - - - - The indicates the size of the split in pixels. - - - - - The indicates the number of columns displayed in the split. - - - - - Specifies the vertical alignment of text or images in a cell. - - - - - Text is rendered at the top of the cell. - - - - - Text is rendered at the center of the cell. - - - - - Text is rendered at the bottom of the cell. - - - - - Specifies the horizontal alignment of text or images in a cell. - - - - - Text is aligned Near and numeric values Far - - - - - Text is aligned to the left. - - - - - Text is aligned centered. - - - - - Text is aligned to the right. - - - - - Text is aligned with respect to the cells boundries. - - - - - Specifies the visibility of ScrollBars. - - - - - ScrollBars are never displayed. - - - - - ScrollBars are always displayed. - - - - - ScrollBars are displayed only if the object's contents extend beyond its borders. - - - - - Specifies the line style for row and column dividers. - - - - - No line. - - - - - Single line. - - - - - Double line. - - - - - Line with 3D raised appearance. - - - - - Line with 3D inset appearance. - - - - - Specifies how the grid displays its data. - - - - - The grid will only display flat files and will not support a hierarchical view. If the data source is a hierarchical dataset, the grid will only display data from the master table. - - - - - Rows will be represented horizontally and columns vertically. - - - - - The data will be displayed in a convenient data entry form. - - - - - A grouping area is created at the top of the grid; any columns that are placed into this area become part of the GroupedColumn collection. When in group mode, grid columns can be moved into or out of the grouping area with the Add and RemoveAt methods, respectively. Users can also perform this action by selecting and dragging a column into or out of the grouping. Users can customize the display of the grouped row with styles and automatically compute aggregates for columns that are grouped. The expanded/collapsed state of the grouping can also be specified. - - - - - The grid will display all the fields in the current grid area with multiple lines. - - - - - The grid will display DataSets in a hierarchical format. At run time, users can expand and collapse hierarchical recordset Bands using a treeview-like interface. - - - - - The grid will display all the fields in the current grid area with multiple lines. The number of subrows does not change once set. The number of subrows can be set using the LinesPerRow property. - - - - - Provides a description of the current addnew state with respect to the current cell. - - - - - The current cell is not on the addnew row. - - - - - The current cell is on the addnew row. - - - - - There is an Add New operation pending. - - - - - Specifies the behavior of the pop-up window when the cursor is idle over the grid. - - - - - No cell tips will be displayed. - - - - - Cell tips will be displayed in the bounding rectable of the cell. - - - - - Cell tips will be displayed under the mouse cursor. - - - - - Specifies how the grid exposes the rightmost column when it gets focus. - - - - - The grid will scroll to the left to display the rightmost column in its entirety. - - - - - The grid will not move when the rightmost column is clicked initially. However, if the user attempts to edit the cell, then the grid will scroll to the left to display the rightmost column in its entirety. - - - - - The grid will always leave the rightmost column clipped. - - - - - Specifies the location of the foreground image in a cell. - - - - - Image is rendered in the near side of the cell. - - - - - Image is rendered in the far side of the cell. - - - - - Image is rendered to the left of any text in the cell. - - - - - Image is rendered to the right of any text in the cell. - - - - - Image is rendered on top of any text in the cell. - - - - - Image is rendered below any text in the cell. - - - - - Text is not displayed. - - - - - Image is not displayed. - - - - - Specifies how the background image is rendered. - - - - - The image is rendered in the center of the cell. - - - - - The image is tiled in the cell. - - - - - The image is stretched to fit within the cell. - - - - - Specifies how rows can be resized. - - - - - Row can not be resized. - - - - - All rows will be sized to the same height or width. - - - - - Rows can be sized indepentently. - - - - - Specifies which rows are to be previewed/printed. - - - - - All rows are to be previewed/printed. - - - - - Only selected rows will be previewed/printed. - - - - - Only the current row will be previewed/printed. - - - - - Specifies the type of ui-element for a coordinate. - - - - - Coordinates are not in the grid. - - - - - Coordinates are in the caption area - - - - - Coordinates are in the split's header - - - - - Coordinates are in the split's resizing box - - - - - Coordinates are in the row selector. - - - - - Coordinates are in the row resizing box. - - - - - Coordinates are in the column headers. - - - - - Coordinates are in the column footers. - - - - - Coordinates are in the column resizing box. - - - - - Coordinates are in the data area. - - - - - Coordinates are in the grouping area. - - - - - Coordinates are in the group header. - - - - - Coordinates are in the empty row area. - - - - - Coordinates are in the addnew row. - - - - - Coordinates are in the empty column area. - - - - - Coordinates are in the filter bar. - - - - - Specifies how ValueItems are rendered. - - - - - Values are displayed as text or graphics. - - - - - Values are displayed as a group of Radio Buttons. - - - - - Values are displayed as a dropdown combobox. - - - - - Values are displayed as a dropdown combobox in sorted order. - - - - - Values are displayed as a checkbox. - - - - - Specifies how focus is handled when the Tab key is entered. - - - - - The tab key moves to the next or previous control on the form. - - - - - The tab key moves the current cell to the next or previous column. However, if this action would cause the current row to change, then the next or previous control on the form receives focus. - - - - - The tab key moves the current cell to the next or previous column. The behavior of the tab key at row boundaries is determined by the property. When this setting is used, the tab key never results in movement to another control. - - - - - Specifies the borders for a . - - - - - No borders. - - - - - Borders have a Flat appearance. - - - - - Borders have a 3D raised appearance. - - - - - Borders have a 3D inset appearance. - - - - - A line around the inside of the border. - - - - - A fillet type border. - - - - - Borders have a 3D raised with a bevel. - - - - - Borders have a 3D inset with a bevel. - - - - - Specifies which cell gets focus when the enter key is pressed. - - - - - Cell currency doesn't change. - - - - - The next cell will be the cell to the right of the current cell. - - - - - The next cell will be the cell below the current cell. - - - - - The next cell will be the cell to the left of the current cell. - - - - - The next cell will be the cell above the current cell. - - - - - Describes the disposition of a cell. - This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values. - - - - - The cell satisfies none of the conditions. For grouped rows, this is the only applicable cell style. - - - - - The cell is the that currently has focus. At any given time, only one cell can have this status. When the MarqueeStyle property is set to Floating Editor, this condition is ignored. - - - - - The cell is part of a highlighted row marquee. When the MarqueeStyle property indicates that the entire current row is to be highlighted, all visible cells in the current row have this additional condition set. - - - - - The cell contents have been modified by the user but not yet written to the datasource. This condition is also set when cell contents have been modified in code with the Text or Value properties. - - - - - The cell is part of a row selected by the user or in code. The SelectedRowCollection contains the index for each selected row. - - - - - All cells. - - - - - Specifies how the current cell is highlighted. - - - - - The current cell within the current row will be highlighted by drawing a dotted border around the cell. In Microsoft Windows terminology, this is usually called a focus rectangle. - - - - - The current cell within the current row will be highlighted by drawing a solid box around the current cell. This is more visible than the dotted cell border, especially when 3D divider properties are used for the grid. - - - - - The entire current cell will be drawn using the attributes of the HighlightRowStyle property. This provides a very distinctive block-style highlight for the current cell. - - - - - The entire row containing the current cell will be drawn using the attributes of the HighlightRowStyle property. In this mode, it is not possible to visually determine which cell is the current cell, only the current row. When the grid or split is not editable, this setting is often preferred, since cell position is then irrelevant. - - - - - The entire row will be highlighted as in setting 3, but the current cell within the row will be "raised" so that it appears distinctive. This setting does not appear clearly with all background color and divider settings. The best effect is achieved by using 3D dividers and a light gray background. - - - - - The marquee will not be shown. This setting is useful for cases where the current row is irrelevant, or when not wanting to draw the user's attention to the grid until necessary. - - - - - The current cell will be highlighted by a floating text editor window with a blinking caret (as in Microsoft Access). - - - - - The entire current row will be highlighted by drawing a dotted border around it. This effect is similar to setting 0. - - - - - Identifies the type of scrollbar. - - - - - The Horizontal scrollbar. - - - - - The Vertical scrollbar. - - - - - Identifies the type of row. - - - - - Row is a datarow. - - - - - Row is a collapsed group row. - - - - - Row is an expanded group row. - - - - - Row is a footerrow. - - - - - Row is a childrow. - - - - - Specifies the initial expanded or collapsed state of a grouped row. - - - - - Grouped rows initial display is collapsed (default). - - - - - Grouped rows initial display is expanded. - - - - - Specifies how the grouped column should be displayed. - - - - - Grouped columns contain just a header row (default). - - - - - Grouped columns contain a header and footer row. - - - - - Specifies the type of aggregate that is computed for a grouped row. - - - - - No aggregate is calculated or displayed. - - - - - Count of non-empty values. - - - - - Sum of numerical values. - - - - - Average of the numerical values. - - - - - Minimum value (numerical, string, or date). - - - - - Maximum value (numerical, string, or date). - - - - - Standard deviation (using formula for Sample, n-1). - - - - - Standard deviation (using formula for Population, n). - - - - - Variance (using formula for Sample, n-1). - - - - - Variance (using formula for Population, n). - - - - - Causes the GroupAggregate event to be raised. - - - - - Specifies the width of a C1TrueDBDropdown for a cell. - - - - - The width of the dropdown is the control width. - - - - - The width of the dropdown is the column width. - - - - - Specifies how columns are merged. - - - - - - - - - - - - - - - - - - - - Specifies the type of gradient. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies how rows are grouped. - - - - - Rows are grouped by their values. - - - - - Rows are grouped by the date portion of their values. - - - - - Rows are grouped by the month portion of their values. - - - - - Rows are grouped by the year portion of their values. - - - - - Rows are grouped by the first character of their values. - - - - - Rows are grouped according to their date values. - - - - - Rows are grouped by raising the event. - - - - - Raised before an action is performed on the grid and the action can be canceled. - - - - - Provides data for the , , , , , , , , and events. - - - - - Gets or sets a value indicating that the action should not be performed. - - - - - Provides data for the event. - - - - - Gets the current scroll position. - - - - - Gets the new scroll position. - - - - - Raised before a column enters edit mode. - - - - - Provides data for the BeforeColEdit event. - - - - - Gets or sets a value indicating that editing should be disallowed. - - If event procedure sets the Cancel argument to True, the cell will not enter edit mode. Otherwise, the ColEdit event is raised immediately, followed by the Change event for the KeyChar property, if non-zero. - - - - Indicates the character that initiated the editing operation. - - The BeforeColEdit event occurs just before the user enters edit mode by typing a character. If a floating editor marquee is not in use, this event also occurs when the user clicks the current cell or double clicks another cell. - - - - Indicates the position in the DisplayColumns collection. - - - - - Gets the C1DisplayColumn for the column being edited. - - - - - Raised after editing is completed in a cell. - - The BeforeColUpdate event occurs after editing is completed in a cell, but before data is moved from the cell to the grid's internal copy buffer. - The data specified by the OldValue argument moves from the cell to the grid's copy buffer when the user completes editing within a cell, as when tabbing to another column in the same row, pressing the Enter key, or clicking on another cell. Before the data has been moved from the cell into the grid's copy buffer, the BeforeColUpdate event is triggered. This event gives the application an opportunity to check the individual grid cells before they are committed to the grid's copy buffer. - If your event procedure sets the Cancel argument to True, the previous value is restored in the cell, the grid retains focus, and the AfterColUpdate event is not triggered. Change the current cell text by setting OldValue to the value wanted to display (other than the previous value). - To restore OldValue in the cell and permit the user to move focus off of the cell, set Cancel to False and set the cell to OldValue as follows: - - - - Provides data for the BeforeColUpdate event. - - - - - Gets or sets a value that prevents the user from moving focus to another cell. - - - - - Gets or sets the value of the original cell data. - - - - - Indicates the position in the DisplayColumns collection. - - - - - Gets the C1DisplayColumn for the column being edited. - - - - - Raised after a column has been resized. - - - - - Provides data for the ColReisize event. - - - - - Indicates the position in the DisplayColumns collection. - - - - - Gets or sets a value indicating that sizing should be ignored. - - - - - Gets the C1DisplayColumn for the column being sized. - - - - - Raised when an action is perfored on a column. - - - - - Provides data for the , , , , , , , , and events. - - - - - Indicates the position in the DisplayColumns collection. - - - - - Gets the C1DisplayColumn. - - - - - Raised when grouping columns. - - - - - Provides data for the event. - - - - - Indicates the position in the DisplayColumns collection. - - - - - The C1DataColumn that was clicked. - - - - - Raised when a cell is to rendered by the event code. - - - - - Provides data for the and events. - - - - - The bounding rectangle for the cell that needs to be rendered. - - - - - The index of the row for the cell being rendered. - - - - - The index of the split for the cell being rendered. - - - - - The index of the column in the DisplayColumns collection. - - - - - The GDI+ graphics object to render on. - - - - - The text of the cell. - - - - - The Style used to render the cell. - - - - - Indicates whether the event code rendered the cell. - - - - - The C1DisplayColumn being rendered. - - - - - Indicates whether the custom renderer handles the background, border or content. - - - - - Raised when custom page headers and footers need to be rendered. - - - - - Provides data for the and events. - - - - - The object used to render the custom header or footer - - - - - Raised after the current Row or Column changes. - - - - - Provides data for the event. - - - - - The previous row index. - - - - - The previous column index of the DisplayColumns collection. - - - - - Raised when an unbound column needs to be rendered. - - - - - Provides data for the event. - - - - - The index of the row. - - - - - Indicates the position in the Columns collection. - - - - - The object. - - - - - Gets or sets the value of the Column. - - - - - Raised when Split specific actions are performed. - - - - - Provides data for the and events. - - - - - Indicates the position of the Split in the Splits collection. - - - - - Raised when a cell needs custom formatting. - - - - - Provides data for the FromatText event. - - - - - Indicates the position in the Columns collection. - - - - - The row index for the cell to be formatted. - - - - - The value to format. - - - - - The object. - - - - - Raised when the used to render a cell needs customization. - - - - - Provides data for the event. - - - - - The sum of one or more constants describing the disposition of the cell being rendered. - - - - - Indicates the position in the Splits collection. - - - - - The index of the row for the cell being rendered. - - - - - The index of the column in the DisplayColumns collection. - - - - - The Style used to render the cell. - - - - - The C1DisplayColumn being rendered. - - - - - Provides data for the event. - - - - - Value that the data is being grouped on. - - - - - First row index that is being grouped. - - - - - Last row index that is being grouped. - - - - - Raised when the used to render a row needs customization. - - - - - Provides data for the event. - - - - - Indicates the position in the Splits collection. - - - - - The index of the row for the cell being rendered. - - - - - The Style used to render the row. - - - - - Raised when a column is being repositioned. - - - - - Provides data for the event. - - - - - Indicates the target index of the column being moved. - - - - - Indicates the starting position in the DisplayColumns collection. - - - - - Gets or sets a value indicating that the action should not be performed. - - - - - Gets the C1DisplayColumn that is being moved. - - - - - Raised when a column is moved into or out of the grouping area. - - - - - Provides data for the event. - - - - - The C1DataColumn for the column being moved. - - - - - Raised when cell tips are to be displayed. - - - - - Provides data for the event. - - - - - Indicates the position of the Split in the Splits collection. - - - - - Indicates the position in the DisplayColumns collection. - - - - - The index of the row for the cell tip. - - - - - The text to be displayed in the cell tip. - - - - - Indicates if the contents of the cell is fully displayed. - - - - - The Style used to render the cell tip. - - - - - The C1DisplayColumn that this tip is associated with. - - - - - Raised when a hierarchical node is expanded or collapsed. - - - - - Provides data for the and events. - - - - - Indicates the recordset level that holds the current row within a master-detail hierarchy. - - - - - Gets or sets a value indicating that the action should not be performed. - - - - - Raised when scroll tips are to be displayed. - - - - - Provides data for the event. - - - - - Indicates the position of the Split in the Splits collection. - - - - - Indicates the position in the DisplayColumns collection. - - - - - The index of the topmost row for the scroll tip. - - - - - Indicates the scrollbar that was moved. - - - - - The text to be displayed in the scroll tip. - - - - - The Style used to render the scroll tip. - - - - - The current C1DisplayColumn. - - - - - Raised when the grid is sorted or filtered. - - - - - Provides data for the , , , and - - - - - The filter or sort condition. - - - - - Raised when an excpetion is thrown via the UI. - - - - - Provides data for the event. - - - - - The exception which caused the Event to be raised. - - - - - True if the exception has been handled. - - - - - True to continue as if no exception was raised. - - - - - Raised when text is grouped. - - - - - Provides data for the event. - - - - - Custom text for the grouped row. - - - - - Value that the data is being grouped on. - - - - - Column that is being grouped. - - - - - Type of row being grouped. - - - - - First row index that is being grouped. - - - - - Last row index that is being grouped. - - - - - Raised when text is grouped. - - - - - Provides data for the event. - - - - - Underlying value of the row being grouped. - - - - - Column that is being grouped. - - - - - Row index that is being grouped. - - - - - Root accessible object exposed by C1TrueDBGrid control - - - - - Accessible object for group bar - - - - - Accessible object for view - - - - - Accessible object for grid row - - - - - Accessible object for grid cell - - - - - Object that represents a groupby split. - - - - - Gets the type of row. - - - - - Gets the text that is being grouped. - - - - - Gets the level of the grouping. - - - - - Gets the starting row index of the datasource that belong to this group. - - - - - Gets the ending row index of the datasource that belong to this group. - - - - - Gets the number of rows that belong to this group. - - - - - Processes grouped data. - - The row index containg the data. - The that is being grouped. - A string that the data will be grouped on. - - - - - - - - - - - Splits the columns so they exist on two sublines and evens out the - right edge. - - - - - Makes each line of a multi line grid the same width - - - - - Returns the number of columns for the given subline. - - Index of subline. - Number of columns in subline. - - - - Returns the subline in the header for the given point. - - Point to check. - The subline that the point is on. - - - - - - - - - - Adjust column widths so they all fit within the data area - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Summary description for MyControlActionList. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Interface used to provide feedback and the ability to cancel potentially long operations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple stack with indexed access, based on System.Collections.ArrayList - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - General purpose pair class. (Should be moved to gp utils.) - - - - - - - - - - - - - - - - - - - - - - - - - - - Attribute used to specify which properties get serialized when saving layouts. - - - - - Attribute used to specify which properties get serialized when saving layouts. - - - - - Determines how item types are serialized - - - - - Item type is not serialized (this is the default) - - - - - Item type is serialized as a fully qualified name - - - - - Item type is serialized as a fully qualified name and assembly name - - - - - Use owner's IMemberTypeEncoder for members - (for collection items, this is done automatically). - - - - - Helper class for implementors of IMemberTypeEncoder - - - - - - - - - - - - - - - - - - - - - - - - - Forces the serializer to serialize the type name of a property or field - - - - - - - - - - - - - - - - - - - - - - This attribute allows to specify collection's element type name - (in that case there is no need to store it). - - - - - - - - - - - - - - - - Serializes and deserializes objects into and from XML. - - - All the methods in this class are static (Shared in Visual Basic). - You cannot create an instance of this class. - - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - DOES NOT close the underlying stream. Useful for copying objects. - Caller is responsible to call out writer.Close() to close writer and underlying stream. - - The Stream used to write the XML-document instance - The Object to serialize - The XmlSerializerNamespaces referenced by the object - The XmlWriter object reference. Call writer.Close after working with stream/writer. - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - - The Stream used to write the XML-document instance - The Object to serialize - The XmlSerializerNamespaces referenced by the object - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified XmlWriter - - The XmlWriter used to write the XML-document instance - The Object to serialize - The XmlSerializerNamespaces referenced by the object - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - DOES NOT close the underlying stream. Useful for copying objects. - Caller is responsible to call out writer.Close() to close writer and underlying stream. - - The Stream used to write the XML-document instance - The Object to serialize - The FieldInfo or MemberInfo object context for the object to serialize - The XmlSerializerNamespaces referenced by the object - The XmlWriter object reference. Call writer.Close after working with stream/writer. - - - - - - - - - - - - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - - The Stream used to write the XML-document instance - The Object to serialize - The FieldInfo or MemberInfo object context for the object to serialize - The XmlSerializerNamespaces referenced by the object - - - - Serializes the specified Object and writes the XML-document instance to a file using the specified XmlWriter - - The XmlWriter used to write the XML-document instance - The Object to serialize - The FieldInfo or MemberInfo object context for the object to serialize - The XmlSerializerNamespaces referenced by the object - Array of attributes that specify what to serialize - - - - Serializes the specified object to an XML formatted string. - - - - - - - - - Used to write the namespaces as attributes for the initial object - - - - - - - Given a list of Field or Property attributes returns visibility - - - - - - - Enumerates and serializes all public fields and properties - - The XmlWriter used to write the XML-document instance - The Object to serialize - Array of attributes that specify what to serialize - - - - Deserializes an XML-document instance - - The Stream containing the XML-document instance to deserialize - The type of object being deserialized - The Object being deserialized - - - - Deserializes an XML-document instance - - The XmlReader containing the XML-document instance to deserialize - The type of object being deserialized - The Object being deserialized - - - - Deserializes object - - The XmlReader containing the XML-document instance to deserialize - The Object being deserialized - The type of object being deserialized - The type of array elements (in case the object is an array) - The Object being deserialized - - - - Deserializes an XML document string - - - - - - - - Deserializes text of element or attribute into object of appropriate type - - The XmlReader containing the XML-document instance to deserialize - The type of object being deserialized - The Object being deserialized - - - - Recognizes type of object serialized in element - - The XmlReader containing the XML-document instance to deserialize - The default type of object being deserialized - Custom serialization - The type of object being deserialized - - - - Deserializes array or collection - - The XmlReader containing the XML-document instance to deserialize - Collection item type - The array or collection being deserialized - - - - Returns the "almost" fully qualified type name - i.e. with assembly name, - but without version, culture, and public key. - - Type - Type name, assembly name - - - - Sets or returns the object implementing IOnLongOpInProgressProvider interface - (can be used to provide visual feedback to the user during serialization). - - - - - Gets or sets a value indicating whether all the values are to be persistent. - - - - - Sets or returns formatting used by the XML writer. - - - - - Sets or returns indentation used by the XML writer. - - - - - Sets or returns serialization of non-public properties. If true non-public properties - are included, but are hidden by default. Public properties are always visible by default. - - - - - - - - - - Initializes a new instance of the class. - - - - - Raises the event. - - - - - Raises the event. - - - true if this object can be changed; otherwise, false. - - - - - Gets the service object of the specified type. - - An object that specifies the type of service object to get. - - A service object of type . - -or- - null if there is no service object of type . - - - - - Gets the container representing this request. - - - - - Gets the object that is connected with this type descriptor request. - - - - - Gets the that is associated with the given context item. - - - - The that describes the given context item; otherwise, null if there is no responsible for the call. - - - - - GridColumnEditor - Displays an ellipsis button next to the Columns collection - and pops up the grid column editor form to allow users to edit column - names, types, alignment, etc. - - - - - GridDataTypeEditor - Uses a drop-down list box to select values of type Type - (e.g. Column.DataType property). - - - - - Summary description for GridStyleEditor. - - - - - Summary description for GridStyleEditorForm. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Summary description for MyControlActionList. - - - - - Summary description for GridDesigner. - - - - - Summary description for GridDesigner. - - - - - Summary description for StyleEditor. - - - - - Summary description for StyleEditorUIControl. - - - - - Clean up any resources being used. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Summary description for TestForm. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Summary C1Description for Tally. - - - - - GroupInfo - Property of the C1DataColumn object, used to control grouping and - rendering of group headers and footers - - - - - Creates a new instance of the object. - - The column this object is associated with. - - - - Override. The string representation of the object. - - - - - - Gets or sets the position of the grouped row. - - - - - Gets or sets the initial expanded/collapsed state of the grouped row. - - - - - Gets or sets the text that is displayed in the group header row. - - - - - Gets or sets the text that is displayed in the group footer row. - - - - - Gets or sets the way rows are grouped. - - - - - Gets or set a value indicating the visibility of a column when it's grouped. - - - - - StringTables - this class contains a single static method InitTables that populates the - tables used by the Localizer class. - - - - - Represents print/export options form. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Creates a new instance of the PrintOptionsFrom class. - - - - - Called when the class is being disposed. - - - True to cleanup. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets or sets the output file name. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a new instance of the ActionItem class. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets the editor style used by the method. - - An that can be used to gain additional context information. - - A value that indicates the style of editor used by the method. If the does not support this method, then will return . - - - - - Edits the specified object's value using the editor style indicated by the method. - - An that can be used to gain additional context information. - An that this editor can use to obtain services. - The object to edit. - - The new value of the object. If the value of the object has not changed, this should return the same object it was passed. - - - - - Gets the name of the base form class. - - The name of the base form class. - - - - Gets the none string. - - The none string. - - - - Gets a value indicating whether [include none in list]. - - true if [include none in list]; otherwise, false. - - - - Gets a value indicating whether [include base form class in list]. - - - true if [include base form class in list]; otherwise, false. - - - - - - - - - - Object to manage custom page headers and footers when printing and previewing. - - - - - Set the height of printing area (in inches) - - - - - - Renders text for the document. - - X-coordinate to start the rendering. - Y-coordinate to start the rendering. - The text to render. - The width for the rendered text. - The font to use. - The color of the text. - The alignment to render the text. - - - - Renders an image for the document. - - X-coordinate. - Y-coordinate. - Image to render. - Width to render. - Height to render. - Alignment options. - - - - Renders a line for the document. - - Start x-coordinate. - Start y-coordinate. - End x-coordinate. - End y-coordinate. - Color of the line. - Width of the line. - - - - The height of drawing area in inches - - - - - Specifies how a should be printed - or exported when using such methods as - , - etc. - - - - - This ctor is only used to create a copy of PrintInfo to compare user-modifiable - options against. - - PrintInfo to copy user-modifiable options from. - - - - Creates page header and footer styles. - - - - - Attaches page header and footer styles to the grid - (invokes Style.Attach(grid)). - - - - - - Exports the grid to the specified file. - Export format is determined by the file extension. - - Output file name. - - - - Exports the grid to HTML. - - Output file name. - - - - Exports the grid to PDF. - - Output file name. - - - - Exports the grid to RTF. - - Output file name. - - - - Exports the grid to XLS. - - Output file name. - - - - Exports the grid to XLS. - - Output file name. - Whether to export each page as a separate sheet. - - - - Sets text on the progress dialog if it exists. - - - - - - Closes and disposes the progress dialog if it exists. - - - - - Shows the export options dialog, allows the user to - exports the grid to one of the supported formats. - - - - - Exports the grid to the specified file. - Export format is determined by the file extension. - - - - - - Shows the "save file" dialog, allowing the user to specify an output file. - - - - - - - - - - - - - - - - Compares the user modfiable options in the current print info - against those in the other one, returns true if any of the user - options changed (so the document must be re-generated). - - The PrintInfo to compare against. - True if any of the user options have changed, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Resets the property to its default value. - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Resets the property to its default value. - - - - - Opens a separate modal window in which end users can preview the output - that would be generated by the print operation. - - - allows to specify a custom form for - the preview dialog. - - - - - Prints the grid. - - - - - Prints the grid. - - Specifies the printer settings (including the printer) to use. - - - - Saves the current grid to a stream in C1D - (native C1PrintDocument) format. - - Note that unlike most other print/export methods, this method - does not require C1Report assemblies. - - - The output stream. - - - The stream's Position is set to 0 when the method returns. - - This method does not show progress dialog - (ignoring property). - - - - - - Saves the current grid to a memory stream in C1D - (native C1PrintDocument) format. - - The stream's Position is set to 0 when the method returns. - - - The stream containing the saved grid. - - - - Saves the current grid as a C1D file, which can later be loaded - into a C1PrintDocument (provided by C1Report product). - - Note that unlike most other print/export methods, this method - does not require C1Report assemblies. - - - The name of the output file. - true if the file was successfully saved, - false otherwise. - - - - Saves the current grid to a stream in C1D - (native C1PrintDocument) format. - - Note that unlike most other print/export methods, this method - does not require C1Report assemblies. - - - The output stream. - true if the stream was successfully written, - false otherwise. - - Unlike the method, - this method does not reset the stream's position after saving. - - - - - Gets or sets a value indicating whether the grid rows can split between pages. - - - This new property helps to print very long text in columns on multiple pages. - - - - - Gets or sets a value indicating whether the grid's color scheme is translated to the print page. - - - - - Gets or sets a value indicating whether the page header is owner-drawn. - - - - - Gets or sets a value indicating whether the page footer is owner-drawn. - - - - - Gets or sets the style used to render the page header. - - - - - Gets or sets the string to be printed at the top of each page. - - - - - Gets or sets the height of the Page header. - - - - - Gets or sets the style used to render the page footer. - - - - - Gets or sets the page footer height in hundredths of an inch. - - - - - Gets or sets a string to be printed at the bottom of each page. - - - - - Gets or sets a value indicating whether column footers should appear on each page. - - - - - Gets or sets a value indicating whether the grid caption should appear on each page. - - - - - Gets or sets a value inidcating whether split captions should appear on each page. - - - - - Gets or sets a value indicating whether horizontal splits are previewed and printed. - - - - - Gets or sets a value indicating whether column headers should appear on each page. - - - - - Gets or sets a value indicating how empty space left on a printed page is handled. - - - - - Gets or sets the horizontal page break mode. - - - - - Gets or sets a value that controls how text is wrapped in a cell. - - - - - Gets or sets a value whether to print a grid if it has no data rows. - - - - - Gets or sets the maximum row height in hundredths of an inch - (used if is ). - - - - - Gets or sets a value indicating how row height of the printed grid is determined. - - - - - Gets or sets a value indicating how grid lines are rendered. - - - - - Gets or sets a value indicating whether the options dialog is displayed - when the grid is printed or exported. - - - - - Gets or sets a value indicating whether the progress dialog is displayed when the grid is printed or exported. - - - - - Gets or sets a value indicating whether the grid in Form view style is printed each record per page. - - - - - Gets or sets a value indicating whether selected cells will be highlighted when previewing or printing. - - - - - Gets or sets the PageSettings for printing. - - - - - Gets or sets the caption of the print progress dialog. - - - - - Gets or sets the class name of the form used as the print options dialog. - - - - - Gets or sets the class name of the form used as the preview form. - - - - - Specifies how empty space left on a printed page is handled (filled or otherwise). - - - - - All columns are extended proportionally to fill the page. - - - - - Empty space on the right of the page is left as is. - - - - - Rightmost column on the page is extended to fill the empty space. - - - - - Specifies how grid is broken into extension (horizontal) pages - when it is too wide to fit into one page. - - - - - All columns are made narrow enough to fit into one page. - - - - - Columns that do not fit into one page are clipped. - - - - - Horizontal page breaks can be inserted on grid splits as necessary. - - - - - Horizontal page breaks can be inserted on any column as necessary. - - - - - Specifies how cell text is wrapped. - - - - - Text can wrap in any cell as needed. - - - - - Text in cells never wraps. - - - - - Use column's property. - - - - - Specifies how grid lines are rendered. - - - - - Grid lines are rendered. - - - - - Grid lines are not rendered. - - - - - Specifies how rows' heights are determined. - - - - - Stretch rows vertically to fit all data. - - - - - Use the grid's row height. - - - - - Stretch rows vertically but not greater than . - - - - - Specify allowed print options. - - - - - No print/export operations are allowed. - - - - - Printing is allowed. - - - - - Preview is allowed. - - - - - Export is allowed. - - - - - All print/export operations are allowed. - - - - - Property value. MUST BE EXACTLY THE SAME AS PROPERTY NAME IN EXPORTER! - - - - - The print preview form. - - - - - Creates a new instance of the PrintFrom class. - - - - - Additional initialization of the form. - - - To override properties like FormBorderStyle, MaximizeBox, MinimizeBox, ControlBox etc. of a Form, - inherited from "C1.Win.C1TrueDBGrid.PrintForm", override the Init method of the PrintForm. - First call the base.Init(), then set the properties you want. - - - The example is a custom PrintForm which has sizable border, control box is on, and minimize and maximize boxes are off. - - public class CustPrintForm : C1.Win.C1TrueDBGrid.PrintForm - { - public CustPrintForm(): base() - { - } - - protected override void Init() - { - base.Init(); - FormBorderStyle = FormBorderStyle.Sizable; - this.ControlBox = true; - this.MinimizeBox = false; - this.MaximizeBox = false; - } - } - - - - - - Overloaded. Overridden. Releases all resources used by the Control. - - - - - - - - - - - - - - - - Represents exception that is thrown if printing or exporting - a is cancelled by the user. - - - - - Initializes a new instance of the class. - - - - - The object that handles printing and previewing for the grid. - - - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class. - - - - - - - Performs initialization - - - - - Replaces the old TrueGrid printing \p, \P etc. tags with corresponding C1PrintDocument's tags. - - The document. - The text to process. - The text with tags replaced. - - - - Applies the specified grid style to the target object. - Does not explicitlly set style attributes if the parent style has them already. - Checks/sets the following style attributes: TextColor, BackColor, Font, - BackgroundImage, BackgroundImageAlign, Borders, Padding. - - The target style owner. - The grid style to apply. - The style of the parent object (used to avoid explicit setting of - style attributes if they are already inherited from the parent). - - - - Converts a pixel value to a Unit (using "document" 1/300th of an inch units). - - The pixel value to convert. - The converted Unit value. - - - - Convert screen pixels to Document units (1/300 of inch) - - Length in screen pixels - - - - - Convert hundreds of inch to Document uints (1/300 of inch) - - Length in hundreds of inch - - - - - This function deals with the general cell drawing. - If it has only text, just draw the text. - If it has image (background or forground etc.), then we need to draw an area, then the image and text. - Because we only have text most of the time, this process will speed things up. - - The grid style to use. - The cell text. - Width of the cell, in %%. - The parent object. - The name of the image to use. - The render object representing the cell's content. - - - - Gets or sets the current row which is displayed in the progress dialog. - - - - - Gets the number of rows to be printed. - - - - - Specifies the characteristics of the print preview window - shown by the method. - - - - - - - - - - - - - - - - - Resets the array of UIStrings back to the default locale. - - - - - Gets or sets the caption of the preview window. - - - - - Gets or sets the position and manner in which the control is docked in the navigation page. - - - - - Gets or sets the location of the preview window. - - - - - Gets or sets a value indicating whether the end user has the ability to size the preview window. - - - - - Gets or sets the zoom factor for print preview. - - - - - Gets or sets the size of the form. - - - - - Gets or sets a value indicating the visibiity of toolbars. - - - - - Gets the array of user interface strings. - - - - - Print progress window. - - - - - Required designer variable. - - - - - Initializes a new instance of the C1PrintProgress class. - - - - - Initializes a new instance of the C1PrintProgress class with a language. - - UI Language - - - - Overloaded. Releases the resources used by the component. - - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Gets or sets the text used to display the current progress when the grid is printed/previewed. - - - - - Gets or sets the text for the Cancel button. - - - - - Gets or sets the text for the Windows caption. - - - - - Gets a value indicating if the print/preview was cancelled. - - - - - Encapsulates dynamically loaded report/preview assemblies. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - - - - - - Gets the data source. - - - - - - Gets the data view. - - - - - - - - - - - Sets the bound control. - - The bound control. - The name. - - - - Gets the size of the virtual segment. - - - - - - Sets the visible row count. - - The value. - The name. - - - - Bounds the control scrolled. - - - - - - - - - - Gets the first visible row. - - - - - - Gets the visible row count. - - - - - - Scrolls to row. - - The first visible row. - The row count. - - - - - - - - - Requests the modification. - - - - - - - - - - Sets the row filter. - - The value. - - - - Sets the sort. - - The value. - - - - Refreshes this instance. - - - - - Interfaces used by bound controls and other C1Data consumers: - Dynamic, late bound access to the interfaces, via reflection - - - - - Gets the data source. - - The obj. - - - - - - - - - - News the late binding I c1 complex bound control. - - The obj. - - - - - - - - - - Gets the data view. - - The obj. - - - - - Represents an anchor within a document. - One or more anchors can be associated with a - via the property on the object. - An anchor (and thus the render object associated with it) can be the - target of a if that hyperlink's - is a and that anchor's - is set to that anchor's . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The anchor's name. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - Arbitrary user data. - - - - Gets the name of the current anchor (must be unique within the document). - - - - - Gets the description of the current anchor. - - - - - Gets the custom user data associated with the current anchor. - - - - - Represents an anchor within a text object - (a , a or a ). - Based on , adds the ability to reference a specific position within the text - (see ). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The anchor's name. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - Arbitrary user data. - - - - Initializes a new instance of the class. - - The anchor's name. - The position within the text. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - The position within the text. - - - - Initializes a new instance of the class. - - The anchor's name. - The anchor's description. - Arbitrary user data. - The position within the text. - - - - Gets the position of anchor withint text, zero based. - - - - - Represents a collection of objects. - - - - - Adds a to the current collection. - - The anchor to add. - Index of the newly added anchor in the current collection. - - - - Inserts a into the current collection. - - The position at which to insert the anchor. - The anchor to insert. - - - - Removes a from the current collection. - - The anchor to remove. - - - - Returns the index of a in the current collection. - - The anchor to search for. - The index of the specified anchor in the current collection, or -1. - - - - Searches for an anchor with the specified name in the current collection. - - The name to search for. - The anchor with the specified name, or null if the anchor was not found. - - - - Gets or sets the at the specified index. - - - - - - - Represents the state of a . - - - - - An unvisited hyperlink. - - - - - A hyperlink that has been visited. - - - - - A hyperlink under the mouse pointer. - - - - - A hyperlink that has been clicked, but not yet visited. - - - - - Represents a hyperlink in a document. - A hyperlink may be assigned to a 's , - or a 's property. - In that case clicking on that object in a viewer will jump to the hyperlink's . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning its to a - associated with the specified . - - The to set as the target of the current hyperlink. - - - - Initializes a new instance of the class, - assigning its to a - associated with the specified . - - The to set as the target of the current hyperlink. - - - - Initializes a new instance of the class, - assigning its to the specified . - - The to set as the target of the current hyperlink. - - - - Initializes a new instance of the class, - assigning its to the specified . - - The to set as the target of the current hyperlink. - The string to assign to of the current hyperlink. - - - - Initializes a new instance of the class, - assigning its to the specified . - - The to set as the target of the current hyperlink. - The string to assign to of the current hyperlink. - Arbitrary value to assign to of the current hyperlink. - - - - Initializes a new instance of the class, - assigning its to a - associated with the specified anchor name. - - The name of the to set as the target of the current hyperlink. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Creates a copy of the current object. - - The newly created object. - - - - Text shown in the status line when the mouse is over the link - (when the document is viewed in a C1PrintPreview). - - - - - Determines the target of the current hyperlink. - - - The hyperlink target is described by an instance of a class derived from , - and can be of one of the following types: - - - An anchor defined within the current document. - - A location within the current document. - - An anchor defined within a previously saved C1D document. - - An external document, program or URL. The ShellExecute API is used to invoke the link. - - A page within the current document. - - The hyperlink target is determined by a user event handler. - - - - - - Gets or sets arbitrary data associated with the current hyperlink. - - - - - Gets or sets the state of the current hyperlink. - - - - - Describes the target of a . - This is an abstract base class for the following derived classes: - , - , - , - , - , - . - - - - - Initializes a new instance of the class. - - - - - Describes a determined by a user event handler. - When using C1.Win.C1Preview.C1PreviewPane, attach a handler of the type - C1.Win.C1Preview.HyperlinkEventHandler to the C1PreviewPane's UserHyperlinkJump - event. That event will be fired when a hyperlink with the link target - of this type is clicked. - - - - - Initializes a new instance of the class. - - - - - Describes a pointing to a - within the current document. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name () of the target . - - - - Gets the name () of the target object. - - - - - Describes a pointing to a - in a different object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the file (C1D or C1DX) containing the target document. - The name () of the target . - - - - Gets the filename with the target object. - - - - - Describes a pointing to an external document, file or URL. - The hyperlink jump is performed using the ShellExecute OS shell API, so the result - depends on the operating system and installed programs. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the file to execute on hyperlink jump (can be a document, URL etc.). - - - - Initializes a new instance of the class. - - The name of the file to execute on hyperlink jump (can be a document, URL etc.). - The shell command to execute (see for details). - - - - Initializes a new instance of the class. - - The name of the file to execute on hyperlink jump (can be a document, URL etc.). - The shell command to execute (see for details). - The command parameters. - The directory where the command is executed. - - - - Specifies the file or object on which to execute the specified verb. - - - To specify a Shell namespace object, pass the fully qualified parse name. - Note that not all verbs are supported on all objects. - For example, not all document types support the "print" verb. - - - - - Gets the command (verb) specifying the action to perform when the link is clicked. - - - The set of available verbs depends on the particular file or folder. - Generally, the actions available from an object's shortcut menu are - available verbs. - For more information about verbs and their availability, see Object Verbs. - See Extending Shortcut Menus for further discussion of shortcut menus. - The following verbs are commonly used. - - edit - Launches an editor and opens the document for editing. If FileName is not a document file, the function will fail. - - explore - Explores the folder specified by FileName. - - find - Initiates a search starting from the specified directory. - - open - Opens the file specified by the FileName parameter. - The file can be an executable file, a document file, or a folder. - - print - Prints the document file specified by FileName. - If FileName is not a document file, the function will fail. - - Empty string - For systems prior to Microsoft? Windows? 2000, the default verb is used - if it is valid and available in the registry. If not, the "open" verb is used. - For Windows 2000 and later systems, the default verb is used if available. - If not, the "open" verb is used. If neither verb is available, - the system uses the first verb listed in the registry. - - - - - - - If the parameter specifies an executable file, this is a string - specifying the parameters to be passed to the application. - The format of this string is determined by the verb that is to be invoked. - If specifies a document file, this should be an empty string. - - - - - Gets the default directory. - - - - - Describes the supported modes of moving between pages in a viewer. - - - - - Move to the first page. - - - - - Move to the previous page. - - - - - Move to the next page. - - - - - Move to the last page. - - - - - Move directly to the specified page. - - - - - Move to the page specified relative to the current page. - - - - - Describes a pointing to another page in the current document. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The absolute 1-based target page number. - - - - Initializes a new instance of the class. - - The type of the page jump. - - - - Initializes a new instance of the class. - - The type of the page jump. - The absolute 1-based target page number. - - - - Gets the type of page jump. - - - - - Gets the page number to jump to. - Depending on the value of , specifies - an absolute (1-based) or a relative page number. - - - - - Describes a pointing to an object within the current document - that supports the interface. - Types supporting that interface include , - , , and table elements (rows, columns, etc.). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The target object (must support the interface). - - - - Gets the target object supporting the interface. - - - - - Represents the page settings of a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - from another object. - - The object to initialize the current one from. - - - - Initializes a new instance of the class - from another object. - - The object to initialize the current one from. - A value indicating whether the current page settings should have landscape orientation. - - - - Initializes a new instance of the class - from a object. - - The object to initialize the current page settings from. - - - - For internal use. - - - - - - - - - - - For internal use. - - - - - - - - - - - For internal use. - - - - - - - - - - - - For internal use. - - - - - - - - - - - - Compares the current with another object. - - The object to compare the current one to. - True if the two objects contain identical properties, false otherwise. - - - - Creates a copy of the current object. - - The newly created object. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Assigns (copies) properties from a to the current object. - - The source object to copy properties from. - - - - Creates an instance of the class, - and initializes it with the properties of the current object. - - The object providing the default units - (needed if some sizes in the current object are specified in ) and DPI - (needed if some sizes in the current object are specified in ). - Can be null, but in that case the current object must not contain sizes - specified in document default units or pixels. - A object - used to create the resulting . - If null, the default printer is used. - The newly created object. - - - - Creates an instance of the class, - and initializes it with the properties of the current object. - - The object providing the default units - (needed if some sizes in the current object are specified in ) and DPI - (needed if some sizes in the current object are specified in ). - Can be null, but in that case the current object must not contain sizes - specified in document default units or pixels. - The newly created object. - - - - Creates an instance of the class, - and initializes it with the properties of the current object. - - The newly created object. - - - - Compares the properties of two objects. - - The first object to compare. - The second object to compare. - True if the two objects' properties are identical, false otherwise. - - - - Retrieves the locale-specific default paper size for the current locale. - - OUT: The width of the default paper. - OUT: The height of the default paper. - OUT: The width of default margins. - OUT: Unit of measurement used to express the sizes (width, height and margin). - - - - Creates a new instance of the class. - If is true, - initializes the newly created object with settings based on the current - printer (specified by ). - Otherwise, initializes the newly created object with default system locale settings. - - The newly created object. - - - - Gets or sets a value indicating whether to use the printer paper size - when generating the document. - This property does not affect the values of - , - , - and - properties. - - - - - Gets the object containing the current . - Null is returned if the current object does not belong to a . - - - - - Gets or sets a value indicating whether the page is printed in landscape or portrait orientation. - Changing this property swaps the page height and width. - - - - - Gets or sets the width of the paper. - - - - - Gets or sets the height of the paper. - - - - - Gets or sets the paper kind. - Changing of this property may change and/or . - - - - - Gets or sets a value indicating whether the page should be printed in color. - - - - - Gets or sets the left margin. - - - - - Gets or sets the top margin. - - - - - Gets or sets the right margin. - - - - - Gets or sets the bottom margin. - - - - - Gets or sets the desired paper source kind. - - - - - Gets or sets the name of the paper source. - - - - - Gets or sets the desired printer resolution kind. - - - - - Provides for the class. - - - - - Tests whether an object of the specified type can be converted to the type of this converter. - - An that provides a format context. - A that represents the type to convert from. - True if this converter can perform the conversion, false otherwise. - - - - Converts the given value object to the specified type. - - An that provides a format context. - A . If a null reference (Nothing in Visual Basic) is passed, the current culture is assumed. - The object to convert. - The to convert the value parameter to. - An Object that represents the converted value. - - - - Specifies the persistence format. - - - - - Specifies the original C1Preview for .NET 2.0 format - (a document is represented by a single XML file). - - - - - Represents a ComponentOne Document. - - - - - Defines a class that can expose a Style property (of the type ). - - - - - Retrieves the value of an ambient property. - - The property key. - to use for evaluation of calculated properties. - The property value. - - - - Retrieves the value of a non-ambient property. - - The property key. - to use for evaluation of calculated properties. - The property value. - - - - Gets the value of a style property existing on the current object - (does not attempt to resolve properties not explicitly defined on the current object). - - The property key (any of the Style.c_propXXX constants). - that should be used to get calculated properties. - The property value. - - - - Gets the parent for ambient properties. - - - - - Gets the style of the current . - - - - - Gets the dictionary object used to store images. - - - - - For internal use only. - Describes an interface allowing an object that implements it to receive - notifications about changes from . - - - - - Called when the owned collection is being cleared. - - The that is being cleared. - - - - Called after the owned collection has been cleared. - - The that has been cleared. - - - - Called when an item is about to be inserted into the owned collection. - - The into which the item is about to be inserted. - The index of the item that is being inserted. - The item that is being inserted. - - - - Called after an item has been inserted into the owned collection. - - The into which the item has been inserted. - The index of the item that has been inserted. - The item that has been inserted. - - - - Called when an item is about to be removed from the owned collection. - - The from which the item is about to be removed. - The index of the item that is being removed. - The item that is being removed. - - - - Called after an item has been removed from the owned collection. - - The from which the item has been removed. - The index of the item that has been removed. - The item that has been removed. - - - - Called when an item is about to be set in the owned collection. - - The in which the item is about to be set. - The index of the item that is being set. - The old value of the item that is being set. - The new value for the item that is being set. - - - - Called after an item has been set in the owned collection. - - The in which the item has been set. - The index of the item that has been set. - The old value of the item that has been set. - The new value for the item that has been set. - - - - Describes a location within a - (used e.g. as the target of a hyperlink etc.). - The location is identified by a page and a rectangle on that page. - The rectangle's unit of measurement is determined by the document's - property. - Classes that implement this interface are - , and . - - - - - For internal use. - - - - - For internal use. - - - - - - Increment this constant (minor version) every time when you change the - serializable properties / objects of C1PrintDocument or nested objects. - - - - - Holds the AssemblyVersion of all preview/reports product dlls. - Used to get access to the assembly version of this dll from "client" code. - - - - - Initializes a new instance of the class. - - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Resets all document's properties to default values. - - - - - Called when the property value has changed. - - - - - Called when the property value has changed. - - - - - Called when the property value has changed. - - - - - Called to indicate the progress of document generating. - - How much is complete (from 0 to 1). - Whether the generating can be cancelled. - Returns true if generation is *not* aborted. - - - - Performs some initializations: creates the sub-objects (PageHeader, PageFooter etc) - initializes DefaultPageSettings and so on. - - - - - Returns the array of fonts used in document. - - Returns the array of Font objects. - - - - Returns the object with all fonts - used in this document. - - The object. - - - - Creates the Graphics object with specified dpi. - - The requested dpi. - OUT: Created graphics object or null if it can't be created for specified dpi. - OUT: Device context handle used to create Graphics object, it can be IntPtr.Zero if Graphics was created with FromHwnd method. - - - - Clears the current document, sets all properties to their default values. - - - - - Saves the current document to a disk file. The persistense format - ( or ) - is determined by the specified file extension. The save format defaults - to if the format cannot be determined from the extension. - - The target file name. - - - - - Saves the current document to a disk file using the specified format. - - The target file name. - The document persistence format to use. - - - - Saves the current document to a stream using the format. - - The target stream. - - - - Saves the current document to a stream using the specified format. - - The target stream. - The document persistence format to use. - - - - Selects a device to use for . - - This method looks for a printer with a "square" resolution - (i.e. with the same horizontal and vertical DPI) equal to or larger than 300 DPI. - If such a printer is found, it is assigned to , - and is set to . - Otherwise, is set to . - - The selected device's resolution is returned by . - - - - - Gets or sets the value limiting the maximum number of pages - in the generated document. - - The default value is -1, indicating that the number of pages - in the document is unlimited. - - - This property is only taken into account when the document is - created using the method. - - - - - - Gets the document creation mode. - - - - - Gets or sets the resolution (DPI) used during document creation. - Note that if is , - this is also the resolution of ResolvedUnit pixels. - - - - - Gets or sets the object used when the document is created. - That Graphics is used to calculate text sizes, measure RTF text, and so on. - - - - - Gets the current busy state of the current document. - - - - - Gets or sets the type of metafiles created by the current document. - The default is . - - - - - Gets or sets the object containing the information - about the current document (such as author, company, and so on). - - - - - Gets or sets the value that will be used - to specify the resolved sizes of objects within the current document - (e.g. the sizes of objects representing the - render objects in the document). - - This property cannot be changed when the document is generating - (i.e. while returns true). - - - - - - Gets or sets the default page layout for the current document. - This property is a shortcut for . - (A page layout includes page settings, page headers and footers, and column definitions.) - - - - - Gets the page layouts used in the current document. - In addition to the default layout which is always present, special layouts - may be defined for first, last, even and odd pages of the document. - The effective layout for each page is then produced by merging all applicable layouts. - - - - - Gets or sets the stacking rules for the current document. - The default value is . - - - - - Gets or sets the default unit of measurement for the current document. - This unit is used when sizes or coordinates of objects within the document - are set without specifying the unit of measurement explicitly. - The default value is . - - - - - Gets the object representing the body of the current document. - - - - - Gets the representing the collection - of user-defined objects in the current document. - - - - - Gets or sets the string used as the opening parentheses when including references to objects - in the current document's texts (e.g. in or ). - To include a TagOpenParen string itself in a text, prepend it with the string. - The default value is "[". - - - - - Gets or sets the string used as the closing parentheses when including references to objects - in the current document's texts (e.g. in or ). - To include a TagCloseParen string itself in a text, prepend it with the string. - The default value is "]". - - - - - Gets or sets the string that can be used to escape and . - To include a TagEscapeString string itself in a text, duplicate it. - The default value is "\". - - - - - Gets or sets a value indicating whether an exception should be raised if an error occurs - while the current document generates. - If this property is false, the method will return false - if errors occurred while generating, otherwise an exception will be thrown - on the first error. - The default value is false. - - - - - Gets or sets a value indicating whether methods can be called on the current document - that would result in the document becoming non-reflowable (such as ). - If this property is false, calling such methods will result in an exception. - If this property is true, calling such methods will set the - flag to false on the current document. - The default value is false. - - - - - Gets or sets a value indicating whether to clip the content - of the current document to page margins. - The default value is false. - - - - - Gets or sets a value indicating whether the end user should be allowed - to reflow the document with different page settings. This value is only a hint - to the document viewer, it is the viewer's responsibility to respect that hint. - The default value is false. - - - - - Gets or sets a value indicating whether all text in the current document - should be rendered using the GDI+ text API. - The default value is false. - - - - - Gets or sets a value indicating whether the current - should handle Windows messages while generating. - The default value is false. - - - Setting this property to true allows users to resize forms, click buttons, etc. while documents are - being generated. This makes applications more responsive, and is necessary if you want to provide a - "Cancel" button to stop the document generation (otherwise the user wouldn't be able to click the - button until the generation is complete). - Setting this property to false will cause documents to generate slightly faster. - - - The code below implements "Generate" and "Cancel" buttons attached to a . - The "Generate" button checks whether the document is busy before starting to generate it. - This is necessary because the user could click the "Generate" button several times in a row, before the document got a - chance to finish generating. (Calling the method while the component is busy throws an - exception.) - The "Cancel" button checks whether the document is currently generating, and sets the - property to true if it is. - - _doc.DoEvents = true; - - private void Generate_Click(object sender, EventArgs e) - { - if (_doc.BusyState != BusyStateEnum.Ready) - Console.WriteLine("Cannot generate now, document is busy"); - else - _doc.Generate(); - } - private void Cancel_Click(object sender, EventArgs e) - { - if (_doc.BusyState != BusyStateEnum.Ready) - _doc.Cancel = true; - else - Console.WriteLine("Document is not generating, nothing to cancel"); - } - - - - - - Gets the main (root) of the current document. - - - - - Gets the representing the collection of - objects of the current document. - - - - - Gets the current document's . - The Dictionary can be used to contain reused resources - (e.g. images used in multiple places in the document). - - - - - Gets or sets a value indicating whether to add messages to the - current document's collection - when script errors are found. - The default value is false. - - - - - Gets or sets a value indicating whether a dialog allowing to input values for some or all - of the user defined tags (elements of the collection) should be shown - to the user before the document generates. To include or exclude tags from the dialog, - use . - The default value is false. - - - - - Gets or sets the type of form that is to be used to input tag values - (the form will be shown if is true). - The form type must be derived from . - - - - - Gets or sets the type name of form that is to be used to input tag values - (the form will be shown if is true). - The form type must be derived from . - - - - - Gets or sets a value indicating whether the default page settings are - retrieved from the default printer (may slow things down if the printer - is a network one) or calculated based on the current locale. - - - - - Gets a string representing the version of the document persistence format - supported by the current assembly. - This version is used to check persisted documents' compatibility. - Versions are backwards-compatible, but not vice versa - (i.e. a document persisted using a newer version of - may be unreadable by an older version). - - - - - Gets a object representing the version of the document persistence format - supported by the current assembly. - This version is used to check persisted documents' compatibility. - Versions are backwards-compatible, but not vice versa - (i.e. a document persisted using a newer version of - may be unreadable by an older version). - - - - - Gets the resolution (DPI) of the object. - - - - - Gets or sets the name of the printer used to provide - used to measure/calculate layouts of objects. - This property is only used if is set to . - - - - - Gets or sets the type of device used to provide - used to measure/calculate layouts of objects. - If this property is set to , - specifies the printer. - - - - - Gets the object - used to measure/calculate layouts of objects. - - - - - Occurs when the property value has changed. - - - - - Occurs when the property value has changed. - - - - - Occurs periodically during document generation. - Allows to provide progress indication and the ability to cancel generation to the user. - - - - - Occurs when the property value has changed. - - - - - For internal use. - - - - - For internal use. - - - - - - For internal use. - - - - - - - The base class for types of objects that can be inserted in a 's . - Derived classes include and . - - - - - - For internal use only. - Elements of an must implement this interface. - - - - - Gets or sets the owner of the collection item. - - - - - Initializes a new instance of the class. - - The name of the . - - - - - Gets the object that is the owner of the current item. - - - - - Gets or sets the name of the current item. - The name must be unique within the containing the item. - - - - - Represents a dictionary within a . - The dictionary allows to store an object such as an image or an icon once, - and reuse it throughout the document. - Items contained in the dictionary must have types derived from - (e.g. or ). - - - - - Describes a collection with an owner. - Base class for and . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The collection owner. - - - - Called when the collection is about to be cleared. - - - - - Called after the collection has been cleared. - - - - - Called when an item is about to be iserted. - - The item index. - The item. - - - - Called after an item has been inserted. - - The item index. - The item. - - - - Called when an item is about to be removed. - - The item index. - The item. - - - - Called after an item has been removed. - - The item index. - The item. - - - - Called when an item is about to be set. - - The item index. - The old item. - The new item. - - - - Called after an item has been set. - - The item index. - The old item. - The new item. - - - - Gets the type of items in the collection. - If this method returns null, items of different types can be added to the collection. - Otherwise, only items of the type this method returns can be added. - - - - - For internal use. - - - - - - - For internal use. - - - - - - - For internal use. - - - - - - For internal use. - - - - - - - For internal use. - - - - - - - Clears the current collection, and copies the items from another one. - The items are copied by cloning, and must support the - interface (if an item that does not support is encountered, an exception occurs). - - The to copy items from. - - - - Searches for the specified Object and returns the zero-based index - of the first occurrence within the entire collection. - - The Object to locate in the collection. The value can be a null reference. - The zero-based index of the first occurrence of value within the entire collection, if found; otherwise, -1. - - - - Swap two items in collection. - - Index of first item. - Index of second item. - - - - Gets the owner of collection. - - - - - Called when the dictionary has been cleared. - - - - - Called when an item has been removed from the dictionary. - - The index of the removed item. - The removed item. - - - - Called when an item in the dictionary has been set. - - The index of the item. - The old value. - The new value. - - - - Called when an item in the dictionary is about to be set. - - The index of the item. - The old value. - The new value. - - - - Called when an item is about to be inserted into the dictionary. - - The index where the item is to be inserted. - The item value. - - - - Gets the type of items that can be added to this dictionary. - - The type. - - - - Adds an item to the current dictionary. - - The to add. - The index of the newly added item in the current dictionary. - - - - Removes an item from the current dictionary. - - The to remove. - - - - Searches for a with the specified in the current dictionary. - - The name to search for. - The index of the item that was found, or -1. - - - - Gets the object that is the owner of the current dictionary. - - - - - Gets the with the specified name. - - - - - Gets or sets the at the specified index. - - - - - Represents an stored in a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the current item. - - - - Initializes a new instance of the class. - - The name of the current item. - The image to store in the current item. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the OpenXmlImage property should be serialized. - - True if OpenXmlImage should be serialized, false otherwise. - - - - Gets or sets the stored by the current . - - - - - Represents an stored in a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the current item. - - - - Initializes a new instance of the class. - - The name of the current item. - The icon to store in the current item. - - - - Indicates whether the property should be serialized. - - True if should be serialized, false otherwise. - - - - Indicates whether the OpenXmlIcon property should be serialized. - - True if OpenXmlIcon should be serialized, false otherwise. - - - - Gets or sets the stored by the current . - - - - - For internal use only. - This interface should be implemented by a class if it needs to hold a link (reference) - to an object in a . - - - - - Gets the where the is stored. - - - - - The base class describing a link (reference) to a . - Provides the base functionality, derived classes such as and - represent links to specific type of dictionary items. - - - - - Initializes a new instance of the class. - - The owner of this instance. - - - - Gets the data representing the item. - - The data representing the item. - - - - Assigns (copies) properties from another to the current object. - - - - - - For internal use. - - - - - Gets the owner of the current dictionary item. - - - - - Gets or sets data representing the object stored in the dictionary. - - - - - Gets or sets the name of the item in the dictionary. - - - - - Specializes the class to represent a link to an . - - - - - Initializes a new instance of the class. - - The owner of this instance. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Gets the data representing the item. - - The data representing the item. - - - - Gets or sets the associated with the current item. - - - - - Specializes the class to represent a link to an . - - - - - Initializes a new instance of the class. - - The owner of this instance. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - For internal use. - - - - - - Gets the data representing the item. - - The data representing the item. - - - - Gets or sets the associated with the current item. - - - - - Represents the body of a . - The body is the main part of a document presenting visible content, - and can be accessed via the property on the document. - (The only other parts presenting visible document content are page headers and footers.) - - - - - Gets the object containing this . - - - - - Gets the stacking rules for the current . - Use to set the stacking rules. - - - - - Gets a value indicating whether the current contains any render objects - (i.e. whether the collection exists and is not empty). - - - - - Gets the collection of elements contained within the current . - - - - - Enumerates the fields stored by the class. - - - - - No fields. - - - - - The title of the document. - - - - - The author of the document. - - - - - The person who last made changes to the document. - - - - - The manager of the author. - - - - - The company of the author. - - - - - The subject of the document. - - - - - The document comments. - - - - - The date and time when the document was created. - - - - - The date and time when the document was last modified. - - - - - The application that created the original document. - - - - - The keywords for the document. - - - - - The application that created the document. - - - - - All fields. - - - - - Represents general information about a , - such as author, subject, creation date and time, and so on. - Can be accessed via the property on a document. - - - - - Initializes a new instance of the class. - - - - - Indicates whether the current object should be serialized. - - true if the current object should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Creates a copy of the current object. - - The newly created object. - - - - Returns the collection of the current object - as a single space-delimited string. - - - - - - Assigns the collection on the current object - from a single string containing the space-delimited list of keywords. - (Note that the collection is cleared by this method prior to assignment.) - - The space-delimited list of keywords. - - - - Gets or sets the title of a document. - - - - - Gets or sets the author of a document. - - - - - Gets or sets the person who last made changes to a document. - - - - - Gets or sets the date and time when a document was created. - - - - - Gets or sets the date and time when a document was last modified. - - - - - Gets or sets the subject of a document. - - - - - Gets or sets the application that created a document. - - - - - Gets or sets the application that created the original document. - - - - - Gets or sets the company of a document's author. - - - - - Gets or sets the keywords for a document. - - - - - Gets or sets the manager of the author. - - - - - Gets or sets the comment. - - - - - Gets the of custom user defined string keys and strings associated with a document. - - - - - Represents an providing a fast search for the contained elements. - - - - - Performs a fast search for the specified object within the current . - - The object to search for. - OUT: the index of within the current list, or 0 if the object was not found. - true if was found, false otherwise. - - - - Adds an object implementing the interface to the current list. - - The object to add (if the current list already contains this object, an exception is thrown). - The index of the added object in the current list. - - - - Removes the element at the specified index from the current list. - - The index of the element to remove. - - - - Removes the specified element from the current list. - - The element to remove. - - - - Clears the current . - - - - - Returns the index of the specified object in the current . - (Performs a fast search using the method.) - - The object to search for. - The index of the specified object within the current list, or -1 if none was found. - - - - Gets the used internally to store the elements of the current . - - - - - Represents an that fires events when changing. - - - - - Initializes a new instance of the . - - - - - - Called when the collection is about to be cleared. - Fires the event. - - - - - Called after the collection has been cleared. - Fires the event. - - - - - Called when an item is about to be iserted. - Fires the event. - - The item index. - The item. - - - - Called after an item has been inserted. - Fires the event. - - The item index. - The item. - - - - Called when an item is about to be removed. - Fires the event. - - The item index. - The item. - - - - Called after an item has been removed. - Fires the event. - - The item index. - The item. - - - - Called when an item is about to be set. - Fires the event. - - The item index. - The old item. - The new item. - - - - Called after an item has been set. - Fires the event. - - The item index. - The old item. - The new item. - - - - Occurs when a change is about to be made to the current collection. - - - - - Occurs after a change has been made to the current collection. - - - - - Describes the type of a change to a collection. - - - - - Item is inserted. - - - - - Item is set (changed). - - - - - Item is deleted. - - - - - Collection is cleared. - - - - - Represents the method that will handler an event occuring when - collection changing. - - The source of event. - The parameters of event. - - - - Contains data about change events. - - - - - Initializes a new instance of the class. - - The collection change type. - The old item, or null. - The new item, or null. - The item index, or -1. - - - - Initializes a new instance of the class. - - - - - Gets the type of collection's changing. - - - - - Gets the old object at specified index. - - - - - Gets the new object at specified index. - - - - - Gets the index within collection where changing occurs. - - - - - Represents an absolute or relative page numbering change in a . - - - - - Initializes a new instance of the class. - - The page numbering mode. - The page numbering value (semantics depend on ). - - - - Gets the page number changed by the current object. - - The current page number. - The page number after the change. - - - - Converts the current object to a string. - - The string representing the current object. - - - - Converts a string to a object. - - The string to convert. - Indicates whether an exception should be thrown if the specified string cannot be converted. - The created object, - or null if the string could not be converted and is false. - - - - Gets or sets a value determining the page numbering change - represented by the current object. - - - - - Gets or sets the absolute page number or increment. - The semantics of this property depend on the value of the property. - - - - - Represents a type converter for . - - - - - The abstract base class for type converters that can convert to/from strings. - - - - - Converts a string to an object. - - An that provides a format context. - The string to convert. - The converted object. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - - Converts a string to a object. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - Defines the stacking rules: block or inline flow, - top to bottom or left to right for block flow. - - - - - Objects are placed one beneath another within the container. - When the bottom edge of the current page is reached, a new page is added. - This is the default. - - - - - Objects are placed one next to another, from left to right. - When the right edge of the current page is reached, a new horizontal page is added - (a horizontal page logically extends the preceding page to the right; - C1PreviewPane respects this location by default, showing such pages in a row). - - - - - Objects are placed inline, one next to another, from left to right. - When the right edge of the current page is reached, the sequence wraps to the next line. - A new page is added when the bottom of the current page is reached. - - - - - Defines the device (printer or screen) used to measure the elements of a . - - - - - Use printer device to measure document elements. - - - - - Use system screen device to measure document elements. - - - - - Defines the generation mode of a . - - - - - The document was not generated, its creation mode is unknown at this time. - - - - - The document was created by a call to the method. - - - - - The document was created by calls to the and - methods. - - - - - Describes the type of a page numbering change in a . - - - - - Set page number to absolute value. - - - - - Change the page number on specified value. - - - - - Describes the busy state of a . - - - - - The document is not busy. - - - - - The document is currently generating. - - - - - The document is currently saving. - - - - - The document is currently loading. - - - - - For internal use only. - Provides graphics-related static helper methods and properties. - - - - - Reads a from a byte array. - - The byte array containing the data. - The newly created . - - - - - Writes a to a byte array. - - The to write. - The byte array containing the data. - - - - - Serializes a to a . - - The to serialize. - The target . - - - - - - Serializes a to a disk file. - - The to serialize. - The target file name. - - - - - Saves an to a . - - The to save. - The to use for saving the image - (ignored if the image is a ). - The object containing image data, or null if an error occurred while saving. - - Unlike the standard method, - this method saves objects as metafiles, without any conversions - (the standard method converts metafiles to PNG format prior to saving). - - - - - - Saves an to a . - - The to save. - The to use for saving the image - (ignored if is a , and is true). - If true, metafiles are saved without conversion, ignoring . - Otherwise, the image is saved in the specified format. - The object containing image data, or null if an error occurred while saving. - - Unlike the standard method, - this method is able to save objects as metafiles, without any conversions - (the standard method converts metafiles to PNG format prior to saving even if such conversion is not requested). - - - - - - Returns for the specified image format, - or null. - - The image format (e.g. as returned by ). - The corresponding or null if none was found. - - - - Tests whether the specified color is invisible - (i.e. equals or ). - - The color to test. - true if the specified color is invisible, false otherwise. - - - - Returns the logical and physical screen resolution. - - OUT: the logical horizontal resolution. - OUT: the logical vertical resolution. - OUT: the physical horizontal resolution. - OUT: the physical vertical resolution. - - - - For internal use. - - - - - Gets the physical horizontal resolution of the screen. - - - - - Gets the physical vertical resolution of the screen. - - - - - Gets the logical horizontal resolution of the screen. - - - - - Gets the logical vertical resolution of the screen. - - - - - If an object implements this interface, it can be seamlessly rendered - in a via a . - - - - - Gets the content of control as Image. - - The Image object representing a control content. - - - - Gets the content of control as C1 document - that is serialized in stream. - This document can be built with using C1PrintDocumentClient. - - The stream object containing the document tree. - - - - Describes the direction in which the new page should be started. - - - - - Type of page (vertical or horizontal) - is determinated on the basis of the current stacking rules. - Vertical page is added if Stacking is StackingRulesEnum.BlockTopToBottom. - - - - - Vertical page direction - i.e. logically the next page is below the current one. - - - - - Horizontal page direction - i.e. logically the next page is to the right of the current one. - - - - - The base type for classes describing layout-releated - changes that are applied to a before or after a - if assigned to or - on that object. - - Derived classes include - , - , - and - . - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Creates a copy of the current object. - - The newly created object. - - - - Describes layout-related changes associated with a . - When an instance of this class is assigned to - or on that object, - a page break is inserted before of after that object, - and layout changes described by the instance are applied to the new page. - - - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The to assign to the property of the current instance. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or set the to apply to the new page. - - - - - Gets or sets the of the new page. - - - - - Gets or sets a value indicating whether the currently active page layout - should be saved in a stack before applying this , - to be restored after the associated has been fully rendered. - - - - - Describes layout-related changes associated with a . - When an instance of this class is assigned to - or on that object, - a column break is inserted before of after that object, - and layout changes described by the instance are applied. - - - - - - - - - Describes layout-related changes associated with a . - When an instance of this class is assigned to - or on that object, - and the current is , - a line break is inserted before of after that object, - and layout changes described by the instance are applied. - - - - - - - - - Describes layout-related changes associated with a . - When an instance of this class is assigned to - or on that object, - layout changes described by the instance are applied - to the next new page (but no immediate page break is caused by this class). - - - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The to assign to the property of the current instance. - - - - Assigns (copies) properties from another to the current object. - - - - - - Gets or set the to apply to the next page. - - - - - Describes arguments for the event fired periodically by a potentially - long operation. Allows to provide feedback to the user and may also - allow to cancel the operation. - - - - - Creates a new instance of LongOperationEventArgs with default - properties (Complete=0, CanCancel=false). - - - - - Creates a new instance of LongOperationEventArgs with the - specified complete value and CanCancel=false. - - How much is complete (from 0 to 1). - - - - Creates a new instance of LongOperationEventArgs with the - specified complete and CanCancel values. - - How much is complete (from 0 to 1). - Whether the operation can be cancelled. - - - - Creates a new instance of LongOperationEventArgs with the - specified CanCancel value and Complete=0. - - Whether the operation can be cancelled. - - - - Gets the approximate completed ratio, from 0 (0% complete) to 1 (100% complete). - - - - - Gets the value indicating whether the event handler can cancel the current long operation - by setting the property to true. - - - - - Gets or sets a value indicating whether the current long operation - should be cancelled. (This property is ignored if is false.) - - - - - Represents a method that can handle a long operation event. - - The source of the event. - A that contains event data. - - - - Represents an of uniquely-named elements. - - - - - Initializes a new instance of the class. - - The collection owner. - - - - Gets the type of collection elements. - - The type. - - - - Called after the collection has been cleared. - - - - - Called after an item has been removed. - - The item index. - The item. - - - - Called after an item has been set. - - The item index. - The old item. - The new item. - - - - Called when an item is about to be set. - - The item index. - The old item. - The new item. - - - - Called when an item is about to be iserted. - - The item index. - The item. - - - - Returns the 0-based index of a - with specified name in the current . - - The name of the item to locate. - The 0-based index of the specified item, or -1 if the item was not found. - - - - Represents an element of a . - - - - - For internal use. - - - - - - Sets the name of the current item. - - The new name of the item. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Creates a copy of the current object. - Note that the property is not copied to the new object. - - The newly created object. - - - - Gets the containing the current object. - - - - - Gets or sets the unique name of the current object. - If an item with the specified name already exists in the collection, - an exception is thrown. - - - - - Represents an outline node within a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The node caption. - The location within a document associated with the current node. - - - - Initializes a new instance of the class. - - The node caption. - The location within a document associated with the current node. - The icon associated with the current node. - - - - Gets the containing the current node. - - - - - Gets the which is the parent of the current node. - - - - - Gets the nesting level of the current node within the nodes' tree - (top-level nodes have level 0). - - - - - Gets or sets the associated with the current node. - - - - - Gets or sets the UI string used to represent the current node. - - - - - Gets or sets the icon used to represent the current node. - - - - - Gets or sets the name in the of the icon used to represent the current node. - - - - - Gets the collection of child nodes of the current node. - Note that accessing this property initializes the collection if it has not been initialized yet. - To test whether there are child nodes without this side effect, use the property. - - - - - Gets a value indicating whether the collection of the current node - has been initialized and contains at least one element. - - - - - Gets the that is the root of the current node tree. - - - - - Gets the containing the current node tree. - - - - - Represents a collection of elements. - - - - - Gets the type of elements in this collection. - - The type. - - - - Adds a node to the current collection. - - The node to add. - The index of the newly added node in the current collection. - - - - Adds a node with the specified caption and location to the current collection. - - The caption of the node to add. - The location associated with the node. - The index of the newly added node in the current collection. - - - - Adds a node with the specified caption, location and icon to the current collection. - - The caption of the node to add. - The location associated with the node. - The icon associated with the node. - The index of the newly added node in the current collection. - - - - Removes a node from the current collection. - - The node to remove. - - - - Gets or sets the element at the specified index. - - The index in the current collection. - The element at the specified index. - - - - Represents the properties of a page column. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - A string that is converted to a value representing the of the current column. - A string that is converted to a value representing the of the current column. - - - - Initializes a new instance of the class. - - A value representing the of the current column. - A a value representing the of the current column. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Creates a copy of the current object. - - The newly created object. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Compares the properties on the current object to another . - - The to compare the current object with. - true if the properties of the two objects are equal, false otherwise. - - - - Gets or sets the width of the current column. - The default column width is "auto". - - - - - Gets or sets the spacing between the current and next columns. - The default column spacing is 5mm. - - - - - Represents a type converter for . - - - - - Tests whether the current converter can convert this object to the specified type. - - The converter context. - The target type. - true if the object can be converted, false otherwise. - - - - Converts the object to the specified type. - - The converter context. - The culture. - The value to convert. - The target type. - The converted object. - - - - Represents a collection of objects. - - - - - Adds a to the current collection. - - The to add. - The index of the added in the current collection. - - - - Adds a new initialized with the specified width and spacing to the current collection. - - The of the new column definition. - The of the new column definition. - The index of the added in the current collection. - - - - Adds a new initialized with the - default and to the current collection. - - The index of the added in the current collection. - - - - Inserts a into the current collection. - - The index at which to insert the specified . - The column definition to insert. - - - - Removes a from the current collection. - - The column definition to remove. - - - - Returns the index of the specified in the current collection. - - The to search for. - The index of the specified column definition in the current collection. - - - - Compares the current collection to another. - Uses the to compare elements - elements at the corresponding positions by their properties' values. - - The to compare the current with. - true if the two collections have the same elements at the same positions, false otherwise. - - - - Gets or sets the element at the specified index. - - The index in the current collection. - The element at the specified index. - - - - Identifies the set of pages to which a page layout is applied in a . - - - - - The current page layout is not a member of any document's PageLayouts collection. - - - - - The current page layout is the default for a document. - - - - - The current page layout is to be used for the first page of a document. - - - - - The current page layout is to be used for the last page of a document. - - - - - The current page layout is to be used for even pages of a document. - - - - - The current page layout is to be used for odd pages of a document. - - - - - Represents the page layout of a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The page settings to use. - - - - Initializes a new instance of the class. - - The page settings to use for the current page layout. - The column defitions to use for the current page layout. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Copies properties from another PageLayout object. - This method used internally within C1PrintDocument - during report generation. - - - - - Mix this PageLayout object with specified PageLayout object. - - The PageLayout object that should be mixed with this object. - - - - Returns true if PageLayout has no redefined fields. - - - - - Compares this PageLayout with other PageLayout object. - - PageLayout object to compare to. - Returns true if this PageLayout object equals other PageLayout object. - - - - Calculates the count of render objects used in this PageLayout object. - - Returns the count of render objects used in this PageLayout object. - - - - Creates a copy of the current object. - All nested objects (render objects, page settings etc.) are cloned on the new object. - - The newly created object. - - - - Assigns (copies) properties from another to the current object. - All nested objects (render objects, page settings etc.) are cloned. - - The source object to copy properties from. - - - - Clears the current object. - - - - - Gets the containing the current object. - - - - - Gets the associated with the current - in the document. - If is null, is returned. - - - - - Gets or sets the object associated with the current page layout. - - - - - Gets or sets the page header associated with the current page layout. - - - - - Gets or sets the page footer associated with the current page layout. - - - - - Gets or sets the watermark associated with the current page layout. - - - - - Gets or sets the overlay associated with the current page layout. - - - - - Gets or sets a value indicating whether the collection - on the current page layout has been initialized and is not empty. - - - - - Gets the collection of objects for the current page layout. - Note that accessing this property initializes the collection of column definitions - if it has not been initialized yet. - Use to test whether any columns have been defined on this layout. - - - - - Represents the standard page layouts used in a - (such as the default page layout, page layout used for first and last pages, - and so on). - - - - - Initializes a new instance of the class. - - The that is the owner of the current instance. - - - - Clears the current object. - - - - - Gets the object that owns the current object. - - - - - Gets the of the specified . - Returns null if the specified kind of page layout has not been specified - for the current . - - The kind of page layout to return. - The page layout with specified kind, or null if it does not exist. - - - - Gets or sets the to use for the first page of the current document. - - - - - Gets or sets the to use for the last page of the current document. - - - - - Gets or sets the to use for even pages of the current document. - - - - - Gets or sets the to use for odd pages of the current document. - - - - - Gets or sets the default for the current document. - The effective page layout for each page is determined by merging this layout - with all other applicable layouts. - The effective layout can be accessed via the property - on the . - - - - - Gets or sets a value indicating whether the page header should - print on the first page of the document. - This property overrides other related properties when set to false. - The default value is true. - - - - - Gets or sets a value indicating whether the page footer should - print on the first page of the document. - This property overrides other related properties when set to false. - The default value is true. - - - - - Gets or sets a value indicating whether the page header should - print on the last page of the document. - This property overrides other related properties when set to false. - The default value is true. - - - - - Gets or sets a value indicating whether the page footer should - print on the last page of the document. - This property overrides other related properties when set to false. - The default value is true. - - - - - Gets or sets a value indicating whether to suppress adding an empty page - at the end of a document if the last object in the document contains - a page break after itself. - The default value is false. - - - - - For internal use only. - A static class providing printer-related utilities. - - - - - Creates the information context for specified printer. - That context can be used for measurement operations, but must NOT be used for drawing. - - The printer name. - The context handle, or IntPtr.Zero if an error occurs. - - - - Gets the resolution of the specified printer. - - The printer name. - A structure where - represents the horizontal, and vertical DPI. - is returned if an error occurs. - - - - Gets the resolution for the specified device context. - - The device context to test. - A structure where - represents the horizontal, and vertical DPI. - is returned if an error occurs. - - - - Tests whether the specified printer name is valid. - - The printer name. - true if the specified printer name is valid, false otherwise. - - - - Searches for a printer with the specified minimal resolution, - and the same horizontal and vertical resolutions. - - The minimum acceptable DPI. - If this parameter is 0, the first available printer with the same horizontal and vertical resolutions is returned. - OUT: The resolution of the found printer, or 0 if a printer was not found. - The name of the found printer, or null if a printer was not found. - - - - - Searches for a printer with the specified minimal resolution, - and the same horizontal and vertical resolutions. - - The minimum acceptable DPI. - If this parameter is 0, the first available printer with the same horizontal and vertical resolutions is returned. - The name of the found printer, or null if a printer was not found. - - - - - For internal use only. - Represents a hashtable of properties and their values. - - - - - Clears the current instance. - - - - - Gets the index of a property in the and arrays. - - The property key. - The 0-based index of the specified property in the and arrays. - - - - Sets the value of a property. - - The property key. - The property value to set. - - - - Deletes a property value from the current . - - The property key to remove. - - - - Gets a value indicating whether the current is empty. - - - - - Tests whether a property is set in the current . - - The property key. - true if the specified property has been set on the current , false otherwise. - - - - Gets the number of properties set on the current . - This value is equal to the number of elements in the and collections. - - - - - Gets the array of property keys set in the current . - - - - - Gets the array of property values set on the current . - - - - - Represents a general-purpose container for other objects. - - - - - The abstract base class for all render objects representing content of a . - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the Flags property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Tests whether the property should be serialized. - - True if the property should be serialized, false otherwise. - - - - Performs some initializations. - - - - - Gets the default value for the property. - - True. - - - - Gets the default value for the property. - - . - - - - Gets the default value for the property. - - . - - - - Gets the default value for the Flags property. - - 0. - - - - Gets the default value for the property. - - SplitBehaviorEnum.Never - - - - Gets the default value for the property. - - SplitBehaviorEnum.Never - - - - Returns the value of flag. The object has private field: - - private int _flags; - - This field can be used for storing various boolean properties - (CanSplitHorz, CanSplitVert etc), for example CanSplitHorz property defined as: - - public bool CanSplitHorz - { - get { return GetFlag(c_flgCanSplitVert); } - set { SetFlag(c_flgCanSplitVert, value); } - } - - - Mask of flag. - Returns true if specified flag is set. - - - - Sets value of flag. - - - Mask of flag. - Value of flag. - - - - Called after adding new child RenderObject object to the Children collection. - User can throw exception if this object can't be added as the child for this object. - - Child RenderObject object. - - - - Called after removing child RenderObject object from the Children collection. - User can throw exception if this object can't be removed. - - Child RenderObject object. - - - - Called after adding this object to the Children collection - of another object. - User can throw exception if this object can't be added as the child for this object. - - The new parent object for this object. - - - - Called after removing this object from the Children collection - of another object. - - The parent object of this object. - - - - Override this method to perform additional actions when value of the Width property of object is being read. - - - - - Override this method to perform additional actions when value of the Width property of object is being defined. - - - - - Override this method to perform additional actions when value of the Height property of object is being read. - - - - - Override this method to perform additional actions when value of the Height property of object is being defined. - - - - - Override this method to perform additional actions when value of the SplitVertBehavior property of object is being defined. - - - - - Override this method to perform additional actions when value of the SplitHorzBehavior property of object is being defined. - - - - - Gets the value of a child's ambient style property. - - The child . - The style property key. - to use for evaluation of calculated properties. - The style property value. - - - - Gets the value of a child's non-ambient style property. - - The child . - The style property key. - to use for evaluation of calculated properties. - The style property value. - - - - Override this method and return false if you want manually copy of children - objects for this object. This method returns true by default. - - Boolean value indicating that the children objects must be copied in the AssignFrom method. - - - - Override this method to return actual width of object that is used - when document resolved. - - - - - Override this method to return actual height of object that is used - when document resolved. - - - - - Assigns (copies) properties from another to the current object. - The list of fragments (the property) is neither copied nor changed. - Properties , are copied by reference. - The property is not copied. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - - - - Assigns (copies) properties from another to the current object. - The list of fragments (the property) is neither copied nor changed. - Properties , are copied by reference. - The property is not copied. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - - - - Assigns (copies) properties from another to the current object. - The list of fragments (the property) is neither copied nor changed. - Properties , are copied by reference. - The property is not copied. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Assigns (copies) properties from another to the current object. - The list of fragments (the property) is neither copied nor changed. - Properties , are copied by reference. - The property is not copied. - - The source object to copy properties from. - - - - Clones the current . - - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - The newly created object. - - - - Clones the current . - - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - The newly created object. - - - - Clones the current . - - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - Indicates whether the property should be cloned. - The newly created object. - - - - Clones the current . - - The newly created object. - - - - Calculates the number of objects which are owned by the current object. - - - This method takes into account: - - Child objects and their children; - Objects which are specified in page layouts (such as PageHeader, PageFooter etc.). - - - The number of owned objects. - - - - Calculates the count of objects which are nested within this object. - This method takes into account child objects and their children. - - Returns the count of nested objects. - - - - For internal use. - - - - - Gets the actual width of object used when document resolved. - This property may differ from Width for example if object is placed - in the table's column with auto-with and Width is "parent.width" then - this property returns auto. - - - - - Gets the actual height of object used when document resolved. - This property may differs from Height for example if object is placed - in the table's row with auto-height and Height is "parent.height" then - this property returns auto. - - - - - The cell of RenderTable containing this object. - - - - - Gets or sets a value indicating how borders are drawn - if the object is too high and is split between pages. - - - - - Gets or sets a value indicating how borders are drawn - if the object is too wide and is split between horizontal pages. - - - - - Gets the most nested containing the current render object, - or null if the current object is not contained in a table. - - - - - - - Gets the 0-based index of the row in the most nested - containing the current render object, or -1 if the current object - is not contained in a table. - - - - - - - Gets the 0-based index of the column in the most nested - containing the current render object, or -1 if the current object - is not contained in a table. - - - - - - - Gets or sets the value indicating whether the object should be clipped. - - - - - Gets the object containing the current . - - - - - Gets the containing the current object, - or null if the current object has no or the owner is not a . - - - - - Gets the index of the current object within the , or -1 if there is no owner. - - - - - Gets the parent containing the current object. - - - - - Gets or sets the name of the current object. - The name can be an empty string. If it is not empty, the name must be unique - among the current object's siblings (i.e. objects with the same ). - - - - - Gets or sets arbitrary data associated with the current object. - - - - - Gets a value indicating whether the current object has children - (i.e. its collection contains at least one element). - - - - - Gets the collection of child render objects. - - - - - Gets or sets the stacking rules used to arrange the children of the current object. - - - For block flow, the alignment of child objects within the flow is determined by the - value of property on the current object, - and the values of properties on the children. - - - - - Gets or sets the value determining how the object is treated - when it is too high to fit in the vertical space available on the current page. - - - - - - Gets or sets the value determining how the object is treated - when it is too wide to fit in the horizontal space available on the current page. - - - - - - Indicates whether the object can be split horizontally if it falls on a page break. - - - - - Indicates whether the object can be split vertically if it falls on a page break. - - - - - Gets or sets the Z-order of the current object. - Objects with smaller Z-order values are drawn under objects with larger Z-order values. - By default, this property is zero. - - - - - Gets or sets the X coordinate of the current object. - - May be specified as auto (), - an absolute value (using ), - an absolute value with unit of measurement (e.g. "12mm"), - or an expression referencing this and other objects (e.g. "prev.right+2mm"). - - - - - - Gets or sets the Y coordinate of the current object. - - May be specified as auto (), - an absolute value (using ), - an absolute value with unit of measurement (e.g. "12mm"), - or an expression referencing this and other objects (e.g. "prev.height/2-self.height/2"). - - - - - - Gets or sets the width of the current object. - - May be specified as auto (), - a percentage of the parent's width (e.g. "50%"), - an absolute value (using ), - an absolute value with unit of measurement (e.g. "12mm"), - or an expression referencing this and other objects (e.g. "Max(prev.width,6cm)"). - - - - - - Gets or sets the height of the current object. - - May be specified as auto (), - a percentage of the parent's height (e.g. "50%"), - an absolute value (using ), - an absolute value with unit of measurement (e.g. "12mm"), - or an expression referencing this and other objects (e.g. "150%prev.height+1in"). - - - - - - Gets or sets the type of break (none, line, column, or page) to insert before the current object. - - - - - Gets or sets the type of break (none, line, column, or page) to insert after the current object. - - - - - Gets or sets the object - defining the change of page layout that will occur before the current object. - - - is an abstract class. - Instances of the following non-abstract classes derived from it can be assigned to this property: - - - Does not insert a break. Provides the ability to change page layout for the next page without interrupting the current flow. - - Inserts a line break in the inline flow. Does not break the block flow. - - Starts a new column in a multi-column layout, or a new page otherwise. - - Starts a new page. - - - - - - Gets or sets the object - defining the change of page layout that will occur after the current object. - - - is an abstract class. - Instances of the following non-abstract classes derived from it can be assigned to this property: - - - Does not insert a break. Provides the ability to change page layout for the next page without interrupting the current flow. - - Inserts a line break in the inline flow. Does not break the block flow. - - Starts a new column in a multi-column layout, or a new page otherwise. - - Starts a new page. - - - - - - Gets the of the current object. - This property cannot be assigned to. To use another style as the base - for the current object's style, set the to that other style. - - - - - Gets or sets a value indicating whether the horizontal borders of the current object - will repeat on all generated fragments when the object is split horizontally. - - - - - Gets or sets a value indicating whether the vertical borders of the current object - will repeat on all generated fragments when the object is split vertically. - - - - - Gets or sets the object - defining the page numbering change that will occur when the current object is rendered. - - - - - Gets or sets the hyperlink (see ) associated with the current object. - - - - - Gets the collection of anchors (elements of the type ) associated with the current object. - - - - - Gets a value indicating whether the current object has any anchors associated with it - (i.e. whether the collection exists and is not empty). - - - - - Gets the object containing the current object, - or null if the current object is not contained in a cell of a . - - - - - Gets or sets a render object which should be printed on the same page - as the current object. The specified object must have the same - as the current object. - - - - - Gets or sets a value indicating the visibility of the current object. - - - - - Initializes a new instance of the class. - - - - - For internal use. - - - - - - Gets the default value for the Flags property. - - Default flags plus CanSplitHorz and CanSplitVert. - - - - Gets the default horizontal split behavior (area is too wide). - - . - - - - Gets the default vertical split behavior (area is too high). - - . - - - - Gets the default area width. - - Parent width. - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Gets or sets a that is repeated on all pages (or columns) - if the current render area is split vertically when it is too high to fit on - a single page. - - - The specified render object should not be a child of another render object. - It can be a child of the current render area; if it is not, it will be - added to the current render area's collection. - - - - - Gets or sets a that will be repeated on all "horizontal" pages - if the current render area is split horizontally when it is too wide to fit on - a single page. - - - The specified render object should not be a child of another render object. - It can be a child of the current render area; if it is not, it will be - added to the current render area's collection. - - - - - Represents an empty . - Provides a convenient placeholder for things like page breaks and so on, - where no content needs to be rendered. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with specified width and height. - - The width of the current object. - The height of the current object. - - - - Initializes a new instance of the class - with a specified height. - - The height of the current object. - - - - For internal use. - - - - - - Initializes a new instance of the class - with a zero height and a specified value. - - They type of break that is to be inserted after this object. - - - - Represents a drawing on a .NET object - in a . - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - Indicates whether the content of the current object - should be serialized (i.e. is not empty). - - - - - - For internal use. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Clears the current object. - - - - - Gets or sets the type of metafile created by the current object. - - - - - Gets the object to draw on. - - - - - Gets the reference used to create the underlying metafile. - This property is simply a shortcut to the property, - and returns null if the current object has not been added - to a yet. - - - - - Represents an image in a . - Can also be used to show an image of a System.Windows.Forms.Control. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the property. - - An that is assigned to the property. - - - - Initializes a new instance of the class, - assigning the property. - - A string that is assigned to the property. - - - - Initializes a new instance of the class, - assigning the property, - and specifying a to use. - - An that is assigned to the property. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - assigning the property, - and specifying a to use. - - A string that is assigned to the property. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - assigning the property, - and specifying a to use. - - An that is assigned to the property. - An that is assigned to - of the current object's . - - - - Initializes a new instance of the class, - assigning the property, - and specifying a to use. - - A string that is assigned to the property. - An that is assigned to - of the current object's . - - - - For internal use only. - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Gets or sets an that is - rendered by the current object. - - - - - Gets or sets the name of an image that is - rendered by the current object. - When the current object renders, the actual image is retrieved by this name - from the of the containing . - - - - - Specifies how borders are drawn when the object is split between pages. - - - - - Borders are not drawn where the object is split. - - - - - Square borders are drawn where the object is split. - - - - - Borders are drawn where the object is split. - If the border is round (see , - ), - round borders are drawn where the object is split. - - - - - Defines the splitting behavior of a render object. - - - - - The object should not be split between pages - (i.e. should always be kept together on a single page). - - - - - The object can be split if it does not fit onto the current page. - - - - - The object can be split only if it is too large to fit on an empty - page. In that case, the object is split immediately. Otherwise, a - new page is started and the object is placed on it without - splitting. - - - - - If the object does not fit on the current page (column), - a new page (column) is started; if the object does not fit - on that page (column), it is split as needed after that. - - - - - Defines the various breaks which can be forced before or after render object. - - - - - No break. - - - - - New page should be started. - - - - - New column should be started. - - - - - New line on inline flow should be started. - - - - - Specifies the visibility of an object. - - - - - Object is visible. - - - - - Object is not visible, but takes up space and affects the layout of other objects as if it were visible. - - - - - Object is not visible, its size is zero and it does not affect the layout of other objects. - - - - - This interface must be implemented by object which works as owner - for the RenderObject objects. - - - - - Represents the collection of RenderObject objects. - - - - - Called after the collection has been cleared. - - - - - Called after an item has been removed. - - The item index. - The item. - - - - Called after an item has been set. - - The item index. - The old item. - The new item. - - - - Called when an item is about to be set. - - The item index. - The old item. - The new item. - - - - Called when an item is about to be iserted. - - The item index. - The item. - - - - Returns typeof(). - - typeof(). - - - - Adds the specified to the current collection. - - The object to add. - The index of the newly added object in the current collection. - - - - Removes the specified from the current collection. - - The object to remove. - - - - Inserts the specified into the current collection. - - The index where to insert the object. - The object to insert. - - - - Searches the current collection for an object with the specified . - - The name to search for. - Index of the object in the current collection, or -1 if no object was found. - - - - Searches the current collection for an object that contains an anchor - with the specified name in its collection. - - The name of the anchor to search for. - OUT: contains the object with the specified name. - Returns the found render object or null if not found. - The object containing the specified anchor, or null if no object was found. - - - - Gets the with the specified . - - - - - Gets or sets the at the specified index. - - - - - Represents a paragraph in a . - Paragraphs can contain inline text and images, possibly rendered using different styles. - The content of a paragraph is accessible via the property. - - - - - The abstract base class for render object types representing text - ( and ) in a . - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Gets a value indicating whether the current object represents a non-empty text. - - - - - Gets the lenght of text represented by the current object. - (Do not use this property to test whether a non-empty text is assigned to the current object, - use instead.) - - - - - Gets the collection of objects representing tab stops - associated with the current text. - - - This method always returns a non-null , - initializing it if it did not exist. - To test whether the current object has any tab stops defined - without creating the collection, - use the property. - - - - - Gets a value indicating whether the collection - has been initialized and contains one or more elements. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - specifying a to use. - - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - specifying a to use. - - The default font for the current paragraph. - - - - Initializes a new instance of the class, - specifying the default font and text color. - - The default font for the current paragraph. - The default text color for the current paragraph. - - - - Initializes a new instance of the class, - specifying the default font, text color and horizontal alignment. - - The default font for the current paragraph. - The default text color for the current paragraph. - The horizontal alignment for the current paragraph. - - - - Initializes a new instance of the class, - specifying the default font and horizontal alignment. - - The default font for the current paragraph. - The horizontal alignment for the current paragraph. - - - - Initializes a new instance of the class, - specifying the horizontal alignment. - - The horizontal alignment for the current paragraph. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Gets the representing - the content (text and images) of the current paragraph. - - - This method always returns a non-null , - initializing it if it did not exist. - To test whether a paragraph already contains content - without creating the collection, - use the property. - - - - - Gets a value indicating whether the collection - has been initialized and contains one or more elements. - - - - - Gets a value indicating whether the collection - has been initialized and contains one or more elements. - - This property is an alias for the property. - - - - - - Gets the count of characters in the current paragraph. - Each non-text object (such as ) - counts as one character. - - - - - Gets or sets the text of the current paragraph. - - - - The getter for this property concatenates and returns - the texts of all objects - in the current paragraph. - - - The setter clears the of the current paragraph, - and then adds the specified - as a single . - - - - - - The abstract base class for inline text and images, rendered using a single style, - in the of a object. - - - - - - - Initializes a new instance of the class. - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - For internal use. - - - - - - Assigns (copies) properties from another to the current object. - - The object to copy the properties from. - - - - Creates a copy of the current object. - - The newly created object. - - - - Gets or sets the associated with the current paragraph object. - - - - - Gets the associated with the current paragraph object. - - - - - Gets the containing - the current paragraph object. - - - - - Gets the containing - the current paragraph object. - - - - - Gets the containing - the current paragraph object. - - - - - Gets the index of the current paragraph object - in the containing . - - - - - Gets the character 0-based position of the current paragraph object - in the text of the paragraph. - - Each non-text paragraph object () - counts as one character. - - - - - - - Gets the length of the current paragraph object in characters. - For non-text objects (), this - property returns 1. - - - - - Gets or sets arbitrary data associated with the current paragraph object. - - - - - Represents a run of text, rendered using a single style, - in the of a . - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the property, - and specifying the . - - A string assigned to the property of the current object. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - assigning the property, - and specifying the . - - A string assigned to the property of the current object. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the font. - - A string assigned to the property of the current object. - The font to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the text color. - - A string assigned to the property of the current object. - The text color to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the text position. - - A string assigned to the property of the current object. - The text position to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the font and text color. - - A string assigned to the property of the current object. - The font to use. - The text color to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the font and text position. - - A string assigned to the property of the current object. - The font to use. - The text position to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the text color and position. - - A string assigned to the property of the current object. - The text color to use. - The text position to use. - - - - Initializes a new instance of the class, - assigning the property, - and specifying the font, text color and position. - - A string assigned to the property of the current object. - The font to use. - The text color to use. - The text position to use. - - - - Returns the length of this ParagraphText object. - - The text length. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the text of the current . - - - - - Represents an inline image - in the of a . - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the property, - and specifying the . - - An image assigned to the property of the current object. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - assigning the property. - - An image assigned to the property of the current object. - - - - Initializes a new instance of the class, - assigning the property. - - A string that is assigned to the property. - - - - Returns the length of the current paragraph object. - - 1. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets an that is - rendered by the current object. - - - - - Gets or sets the name of an image that is - rendered by the current object. - When the current object renders, the actual image is retrieved by this name - from the of the containing . - - - - - Gets the dictionary associated with this ParagraphImage object. - - - - - Represents a collection of objects - that is the - of a . - - - - - For internal use. - - - - - - Adds a to the current paragraph content. - - The to add. - The index of the added object in the current collection. - - - - Removes a from the current paragraph content. - - The object to remove. - - - - Adds a text string to the current paragraph content. - - The text string to add. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text, and adds it - to the current collection. - - - - - Adds a text string with the specified style to the current paragraph content. - - The text string to add. - The style to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text and style, and adds it - to the current collection. - - - - - Adds a text string with the specified font to the current paragraph content. - - The text string to add. - The font to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text and font, and adds it - to the current collection. - - - - - Adds a text string with the specified text color to the current paragraph content. - - The text string to add. - The text color to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text and text color, and adds it - to the current collection. - - - - - Adds a text string with the specified text position to the current paragraph content. - - The text string to add. - The text position to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text and text position, and adds it - to the current collection. - - - - - Adds a text string with the specified font and text color to the current paragraph content. - - The text string to add. - The font to use to render the string. - The text color to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text, font and text color, and adds it - to the current collection. - - - - - Adds a text string with the specified font and text position to the current paragraph content. - - The text string to add. - The font to use to render the string. - The text position to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text, font and text position, and adds it - to the current collection. - - - - - Adds a text string with the specified text color and position to the current paragraph content. - - The text string to add. - The text color to use to render the string. - The text position to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text, text color and position, and adds it - to the current collection. - - - - - Adds a text string with the specified font, text color and position to the current paragraph content. - - The text string to add. - The font to use to render the string. - The text color to use to render the string. - The text position to use to render the string. - A object representing the specified text string. - - This method creates a , - initializes it with the specified text, font, text color and position, and adds it - to the current collection. - - - - - Adds a text hyperlink to the current paragraph content. - - The text string to add. - The name of the anchor which is the target of the hyperlink. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds a text hyperlink with a specified style to the current paragraph content. - - The text string to add. - The name of the anchor which is the target of the hyperlink. - A style used to render the string. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text and style, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds a text hyperlink to the current paragraph content. - - The text string to add. - A which is the target of the hyperlink. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds a text hyperlink with a specified style to the current paragraph content. - - The text string to add. - A which is the target of the hyperlink. - A style used to render the string. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text and style, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds a text hyperlink to the current paragraph content. - - The text string to add. - A which is the target of the hyperlink. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds a text hyperlink to the current paragraph content. - - The text string to add. - A which is the target of the hyperlink. - A object representing the specified text string, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified text, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds an image hyperlink to the current paragraph content. - - The image to add. - The name of the anchor which is the target of the hyperlink. - A object representing the specified image, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified image, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds an image hyperlink to the current paragraph content. - - The image to add. - A which is the target of the hyperlink. - A object representing the specified image, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified image, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds an image hyperlink to the current paragraph content. - - The image to add. - A which is the target of the hyperlink. - A object representing the specified image, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified image, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds an image hyperlink to the current paragraph content. - - The image to add. - A which is the target of the hyperlink. - A object representing the specified image, - associated with the specified hyperlink. - - This method creates a , - initializes it with the specified image, - sets the on that object to a - initialized with , - and adds it to the current collection. - - - - - Adds an image to the current paragraph content. - - The image to add. - A object representing the specified image. - - This method creates a , - initializes it with the specified image, - and adds it to the current collection. - - - - - Adds an image to the current paragraph content. - - A string that is assigned to the property. - A object representing the specified named image. - - This method creates a , - initializes it with the specified image name, - and adds it to the current collection. - - - - - Adds an image with a specified style to the current paragraph content. - - The image to add. - A style used to render the image. - A object representing the specified image. - - This method creates a , - initializes it with the specified image and style, - and adds it to the current collection. - - - - - Gets the containing object. - - - - - Gets or sets the at the specified index. - - The index in the current collection. - The at the specified index. - - - - Represents an RTF text in a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - using the specified RTF string and style. - - A RTF-formatted string assigned to the property. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - using the specified RTF string and style. - - A RTF-formatted string assigned to the property. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - For internal use. - - - - - - For internal use. - - - - - - For internal use. - - - - - - For internal use. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Loads the content of the current from a disk file - containing RTF-formatted data. - - The name of the file to load. - - - - Loads the content of the current from a disk file - containing data in a specified format. - - The name of the file to load. - The type of data in the file. - - - - Loads the content of the current from a stream - containing RTF-formatted data. - - The stream to load data from. - - - - Loads the content of the current from a stream - containing data in a specified format. - - The stream to load data from. - The type of data in the stream. - - - - Gets a value indicating whether the property - has been initialized and has non-zero length. - - - - - Gets or sets the RTF-formatted text represented by the current object. - - - - - Gets or sets a value indicating whether or not the current - will automatically format Uniform Resource Locators (URLs) - when those are found in text assigned to the property. - - - - - The abstract base class representing the geometric properties of a shape. - Used by and derived classes. - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - The abstract base class for classes representing geometric shapes (lines, polygons and so on) - in a . - - - - - - - - - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - For internal use only. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Gets the object describing the geometric shape - represented by the current object. - - - - - The abstract base class representing the geometric properties of a line shape. - Used by and derived classes. - - - - - Initializes a new instance of the class. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - The abstract base class for classes representing line-based shapes (lines and polygons) - in a . - - - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - Gets the object describing the geometric line - represented by the current object. - - - - - Represents the geometric properties of a object. - - - - - Initializes a new instance of the class. - The points that this line connects are set to the left top and right bottom - corners of the containing object. - - - - - Gets or sets the X coordinate of the first of the two points that the line connects. - - - - - Gets or sets the Y coordinate of the first of the two points that the line connects. - - - - - Gets or sets the X coordinate of the second of the two points that the line connects. - - - - - Gets or sets the Y coordinate of the second of the two points that the line connects. - - - - - Represents a line shape in a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the coordinates of the two points that the line connects. - - The X coordinate of the first of the two points that the line connects. - The Y coordinate of the first of the two points that the line connects. - The X coordinate of the second of the two points that the line connects. - The Y coordinate of the second of the two points that the line connects. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - Gets the object describing the geometric line - represented by the current object. - The coordinates of the line are relative to the left top corner - of the current object. - - - - - Represents the geometric properties of a object. - - - - - Initializes a new instance of the class. - The property is set to null. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the array of points - defining the polygon. - - - - - Gets or sets a value indicating whether the polygon is closed - (i.e. the last point in the array is automatically connected to the first one) - or not. - - - - - Represents an open or closed polygon shape in a . - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - Gets the object describing the geometric polygon - represented by the current object. - The points' coordinates are relative to the left top corner - of the current object. - - - - - Represents the geometric properties of a rectangle, - also serves as the base for classes describing - certain other shapes (such as round rectangle, arc and pie). - Used by and derived classes. - - - - - For internal use only. - - - - - Initializes a new instance of the class. - The location and size of the rectangle are set to those of the containing - object. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the X coordinate of the current rectangle. - - - - - Gets or sets the Y coordinate of the current rectangle. - - - - - Gets or sets the width of the current rectangle. - - - - - Gets or sets the height of the current rectangle. - - - - - Represents a rectangle in a . - This is also the base class for and classes. - - - - - Initializes a new instance of the class. - The location and size of the rectangle are set to those of the current object. - - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle. - The location of the rectangle is set to the location of the current . - - The width of the rectangle. - The height of the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, and the used to draw it. - The location of the rectangle is set to the location of the current . - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, the used to draw it, and the fill color. - The location of the rectangle is set to the location of the current . - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The color used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, the used to draw it, and the fill brush. - The location of the rectangle is set to the location of the current . - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The brush used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - and the used to draw it. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - the used to draw it, and the fill color. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The color used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - the used to draw it, and the fill brush. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The brush used to fill the rectangle. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - Gets the object describing the geometric rectangle - represented by the current object. - The coordinates of the rectangle are relative to the left top corner - of the current object. - - - - - Represents an ellipse in a . - - - - - Initializes a new instance of the class. - The location and size of the ellipse are set to those of the current object. - - - - - Initializes a new instance of the class, - assigning the width and height of the ellipse. - The location of the ellipse is set to the location of the current . - - The width of the ellipse. - The height of the ellipse. - - - - Initializes a new instance of the class, - assigning the width and height of the ellipse, and the used to draw it. - The location of the ellipse is set to the location of the current . - - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - - - - Initializes a new instance of the class, - assigning the width and height of the ellipse, the used to draw it, and the fill color. - The location of the ellipse is set to the location of the current . - - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - The fill color. - - - - Initializes a new instance of the class, - assigning the width and height of the ellipse, the used to draw it, and the fill brush. - The location of the ellipse is set to the location of the current . - - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - The fill brush. - - - - Initializes a new instance of the class, - assigning the location and the size of the ellipse. - - The X coordinate of the ellipse. - The Y coordinate of the ellipse. - The width of the ellipse. - The height of the ellipse. - - - - Initializes a new instance of the class, - assigning the location and the size of the ellipse, and the used to draw it. - - The X coordinate of the ellipse. - The Y coordinate of the ellipse. - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - - - - Initializes a new instance of the class, - assigning the location and the size of the ellipse, the used to draw it, and the fill color. - - The X coordinate of the ellipse. - The Y coordinate of the ellipse. - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - The fill color. - - - - Initializes a new instance of the class, - assigning the location and the size of the ellipse, the used to draw it, and the fill brush. - - The X coordinate of the ellipse. - The Y coordinate of the ellipse. - The width of the ellipse. - The height of the ellipse. - The used to draw the ellipse. - The fill brush. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - Gets the object describing the geometric ellipse - represented by the current object. - The coordinates of the ellipse are relative to the left top corner - of the current object. - - - - - Represents the geometric properties of a pie. - Used by class. - - - - - Initializes a new instance of the class. - is set to 0, while is set to 360 degrees, - thus making this a complete ellipse. - The location and size of the ellipse are set to those of the containing object. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the angle, measured in degrees, clockwise from the X axis - to the first side of the sector defining the current shape. - - - - - Gets or sets the angle, measured in degrees, clockwise from - to the second side of the sector defining the current shape. - - - - - Represents a pie shape (a closed shape consisting of an arc of an ellipse, - with lines going from the start and end points of the arc to the ellipse's center) - in a . - - - - - Initializes a new instance of the class. - The start angle of the pie is set to 0, while the sweep angle is set to 360 degrees, - thus making it a complete ellipse. - The location and size of the ellipse are set to those of the current object. - - - - - Initializes a new instance of the class, - assigning the width, height, and start and sweep angles of the pie shape. - The location of the shape is set to the location of the current . - - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the pie shape, - and the used to draw the shape. - The location of the shape is set to the location of the current . - - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the pie shape, - the used to draw the shape, and the fill color. - The location of the shape is set to the location of the current . - - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - The shape fill color. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the pie shape, - the used to draw the shape, and the fill brush. - The location of the shape is set to the location of the current . - - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - The shape fill brush. - - - - Initializes a new instance of the class, - assigning the location, size, and start and sweep angles of the pie shape. - - The X coordinate of the ellipse containing the pie shape. - The Y coordinate of the ellipse containing the pie shape. - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - - - - Initializes a new instance of the class, - assigning the location, size, start and sweep angles of the pie shape, - and the used to draw the shape. - - The X coordinate of the ellipse containing the pie shape. - The Y coordinate of the ellipse containing the pie shape. - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - - - - Initializes a new instance of the class, - assigning the location, size, start and sweep angles of the pie shape, - the used to draw the shape, and the fill color. - - The X coordinate of the ellipse containing the pie shape. - The Y coordinate of the ellipse containing the pie shape. - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - The shape fill color. - - - - Initializes a new instance of the class, - assigning the location, size, start and sweep angles of the pie shape, - the used to draw the shape, and the fill brush. - - The X coordinate of the ellipse containing the pie shape. - The Y coordinate of the ellipse containing the pie shape. - The width of the ellipse containing the pie shape. - The height of the ellipse containing the pie shape. - The angle, in degrees, clockwise from the X axis - to the start of the pie's arc. - The angle, measured in degrees, clockwise from - to the end of the pie's arc. - The used to draw the pie shape. - The shape fill brush. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - Gets the object describing the pie shape - represented by the current object. - The coordinates of the ellipse containing the pie shape are relative to the left top corner - of the current object. - - - - - Represents the geometric properties of an arc. - Used by class. - - - - - Initializes a new instance of the class. - is set to false. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets a value indicating whether the current arc should be closed - (i.e. the start and end points of the arc should be connected by a straight line) - or not. - - - The default value of this property is false. - - - - - Represents an arc of an ellipse in a . - - - - - Initializes a new instance of the class. - The start angle of the arc is set to 0, while the sweep angle is set to 360 degrees, - thus making it a complete ellipse. - The location and size of the arc's ellipse are set to those of the current object. - - - - - Initializes a new instance of the class, - assigning the width, height, and start and sweep angles of the arc. - The location of the arc's ellipse is set to the location of the current . - - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the arc, - and the used to draw the arc. - The location of the arc's ellipse is set to the location of the current . - - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the arc, - the used to draw the arc, - and the color used to fill the segment formed by the arc and a line connecting its ends. - The location of the arc's ellipse is set to the location of the current . - - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - The fill color. - - - - Initializes a new instance of the class, - assigning the width, height, start and sweep angles of the arc, - the used to draw the arc, - and the brush used to fill the segment formed by the arc and a line connecting its ends. - The location of the arc's ellipse is set to the location of the current . - - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - The fill brush. - - - - Initializes a new instance of the class, - assigning the location, size, and start and sweep angles of the arc. - - The X coordinate of the ellipse containing the arc. - The Y coordinate of the ellipse containing the arc. - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - - - - Initializes a new instance of the class, - assigning the location, size, and start and sweep angles of the arc, - and the used to draw the arc. - - The X coordinate of the ellipse containing the arc. - The Y coordinate of the ellipse containing the arc. - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - - - - Initializes a new instance of the class, - assigning the location, size, and start and sweep angles of the arc, - the used to draw the arc, - and the color used to fill the segment formed by the arc and a line connecting its ends. - - The X coordinate of the ellipse containing the arc. - The Y coordinate of the ellipse containing the arc. - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - The fill color. - - - - Initializes a new instance of the class, - assigning the location, size, and start and sweep angles of the arc, - the used to draw the arc, - and the brush used to fill the segment formed by the arc and a line connecting its ends. - - The X coordinate of the ellipse containing the arc. - The Y coordinate of the ellipse containing the arc. - The width of the ellipse containing the arc. - The height of the ellipse containing the arc. - The angle, in degrees, clockwise from the X axis - to the start of the arc. - The angle, measured in degrees, clockwise from - to the end of the arc. - The used to draw the arc. - The fill brush. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - Gets the object describing the arc - represented by the current object. - The coordinates of the ellipse containing the arc are relative to the left top corner - of the current object. - - - - - Represents the geometric properties of a rectangle with rounded corners. - Used by the class. - - - - - Initializes a new instance of the class. - The location and size of the rectangle are set to those of the containing - object. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the width of the ellipse used to draw the rounded corners of the rectangle. - The default value of this property is calculated as 5% of the width of the rectangle. - - - - - Gets or sets the height of the ellipse used to draw the rounded corners of the rectangle. - The default value of this property is calculated as 5% of the height of the rectangle. - - - - - Represents a rectangle with rounded corners in a . - - - - - Initializes a new instance of the class. - The location and size of the rectangle are set to those of the current object. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle. - The location of the rectangle is set to the location of the current . - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The width of the rectangle. - The height of the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, and the used to draw it. - The location of the rectangle is set to the location of the current . - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, the used to draw it, and the fill color. - The location of the rectangle is set to the location of the current . - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The color used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the width and height of the rectangle, the used to draw it, and the fill brush. - The location of the rectangle is set to the location of the current . - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The brush used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - and the used to draw it. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - the used to draw it, and the fill color. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The color used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location and the size of the rectangle, - the used to draw it, and the fill brush. - The dimensions of the ellipse used to draw the rounded corners are set - to 5% of the corresponding rectangle's dimensions. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The used to draw the rectangle. - The brush used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location, size and roundness of the rectangle, - the used to draw it, and the fill color. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The width of the ellipse used to draw the rounded corners (may be specified as "5%width" for example). - The height of the ellipse used to draw the rounded corners (may be specified as "5%height" for example). - The used to draw the rectangle. - The color used to fill the rectangle. - - - - Initializes a new instance of the class, - assigning the location, size and roundness of the rectangle, - the used to draw it, and the fill brush. - - The X coordinate of the rectangle, relative to the current object's location. - The Y coordinate of the rectangle, relative to the current object's location. - The width of the rectangle. - The height of the rectangle. - The width of the ellipse used to draw the rounded corners (may be specified as "5%width" for example). - The height of the ellipse used to draw the rounded corners (may be specified as "5%height" for example). - The used to draw the rectangle. - The brush used to fill the rectangle. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - - - - - - - - - For internal use only. - - - - - - Gets the object describing the geometric rectangle - represented by the current object. - The coordinates of the rectangle are relative to the left top corner - of the current object. - - - - - Defines a value which can be in one of three states: undefined, true or false. - - - - - The value is undefined. - - - - - The value is true. - - - - - The value is false. - - - - - Enumerates the sizing modes of a . - - - - - At table level, default is for rows, - and for columns; - at row/column level, default inherits from the table. - - - - - Size (height for rows, width for columns) should be explicitly - specified (if omitted, it is determined by the available space - and row/column count). - - - - - Size (height for rows, width for columns) is calculated - automatically based on the content. - - - - - Enumerates the possible handling of a cell's content - when the cell is split between pages. - - - - - The content of a cell should be split if the cell is split. - - - - - The content of a cell should be copied each time the cell is split. - - - - - The content of a cell should be printed just once, - and cut if the cell is split and not all content fits. - - - - - Enumerates page break options available for elements of a . - - - - - A page break may be inserted if needed. - - - - - A page break is always inserted. - - - - - If a page break is needed, it should be inserted here. - - - - - Obsolete (spelling error), use instead. - - - - - A page break can not be inserted. - - - - - The abstract base class for rows and columns of a . - - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - (The property is not copied.) - - The source object to copy properties from. - - - - Gets the object containing the current vector. - - - - - Gets the object containing the current vector. - - - - - Gets the 0-based index of the current vector in the containing - (i.e. the row index for rows, the column index for columns). - - - In tables, elements (cells, rows and columns) - are physically created only if they contain data, or if their style differs from default. - Hence the physical position of a object (i.e. a row or a column) - in the containing (accessible via the vector's - property) is not the same as the logical index of that row or column - in the table. The Ordinal property allows to retrieve that logical position. - - - - - Obsolete, use instead. - - - - - Gets or sets the size of the current vector - (height if the vector is a , - width if the vector is a ). - - - - - Gets or sets a value determining how page breaks are inserted before - the current vector - (regular, horizontal page breaks if the vector is a , - vertical page breaks if the vector is a ). - - - - - Gets or sets a value indicating whether the current vector - (row or column) can split between pages. - The default value is false. - - - - - Gets or sets a value indicating whether the current vector - (row or column) is visible. - - - - - Gets the of the current vector (row or column). - - - - - Gets the of objects contained in the cells - of the current vector (row or column). - See for details. - - - - - Gets or sets a value determining - how the size of the current vector (height for rows, width for columns) - is calculated. - - - - - Describes how the height of a row in a - can be adjusted if required by adjustments to the height of the - containing table. - - - - - The behavior depends on the property - of the containing . - - - - - The row can be stretched as needed. - - - - - The row can not be stretched. - - - - - The row can be stretched if it is the last row on the page. - - - - - Represents a row of a . - - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets the containing the current row. - - - - - Gets or sets the height of the current row. - - - - - Gets or sets the mode of the current row. - - - - - Gets the at the specified column index. - This property always returns a non-null object. - - The index of the cell in the current row (i.e. the column index). - The cell at the specified index. - - - - Describes how the width of a column in a - can be adjusted if required by adjustments to the width of the - containing table. - - - - - The behavior depends on the property - of the containing . - - - - - The column can be stretched as needed. - - - - - The column can not be stretched. - - - - - The column can be stretched if it is the last row on the page. - - - - - Represents a column of a . - - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets the containing the current column. - - - - - Gets or sets the width of the current column. - - - - - Gets or sets the mode of the current column. - - - - - Gets the at the specified row index. - This property always returns a non-null object. - - The index of the cell in the current column (i.e. the row index). - The cell at the specified index. - - - - The abstract base class representing a collection of objects. - This is the base class for collections of table rows and columns, - accessible as and - on a . - - - - - - - - Deletes the contents of all cells in a range of rows or columns in the current collection. - - The of the first row or column in the range. - The number of rows or columns in the range. - - This method physically removes all cell data and custom styles in the specified range. - - - - - Deletes any user cell groups in a range of rows or columns in the current collection. - - The of the first row or column in the range. - The number of rows or columns in the range. - - - - For internal use. - - - - - - - For internal use. - - - - - - - For internal use only. - - - - - - For internal use. - - - - - - For internal use. - - - - - - - For internal use. - - - - - - Returns the vector with maximum ordinal or -1 if collection does not contains vectors. - - - - - For internal use. - Returns the specified vector if it has been accessed (and hence initialized) already, - or null. - - The ordinal of the vector to get. - The specified vector, or null if it has not been initialized. - - - - Returns the size (height for rows, width for columns) of a - (row or column) identified by its index in a . - This method does not create the specified vector if it has not been initialized - (see remarks for details). - - The 0-based index () of the row or column. - The height or width of the row or column. - - - Because elements of a 's collections (cells, rows and columns) - are physically created "on demand" only when they are accessed via collections' - indexer properties, using this method is more efficient when you only need - to test the height/width of a row/column without creating it. - - - For instance, the following code physically creates a object - before testing its height: - - - RenderTable rt = new RenderTable(); - if (rt.Rows[10].Height == Unit.Auto) - doSomething(); - - At the same time, the following code does not cause a physical row object to be created, - while being functionally identical to the code above: - - RenderTable rt = new RenderTable(); - if (rt.Rows.GetVectorSize(10) == Unit.Auto) - doSomething(); - - - - - - Returns the value of the property of a - (row or column) identified by its index in a . - This method does not create the specified vector if it has not been initialized yet - (see remarks in for details). - - The 0-based index () of the row or column. - The value of the specified vector's property, - or false if the vector has not been initialized. - - - - Returns the value of the property of a - (row or column) identified by its index in a . - This method does not create the specified vector if it has not been initialized yet - (see remarks in for details). - - The 0-based index () of the row or column. - The value of the specified vector's property, - or true if the vector has not been initialized. - - - - Returns the value of the property of a - (row or column) identified by its index in a . - This method does not create the specified vector if it has not been initialized yet - (see remarks in for details). - - The 0-based index () of the row or column. - The value of the specified vector's property, - or if the vector has not been initialized. - - - - Returns the effective of a - (row or column) identified by its index in a . - This method does not create the specified vector if it has not been initialized yet - (see remarks in for details). - - The 0-based index () of the row or column. - The effective sizing mode of the specified vector (row or column). - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Inserts a range of rows or columns into the containing . - - The position where to insert rows or columns. - The number of rows or columns to insert. - - - - Deletes a range of rows or columns from the containing . - - The index of the first row or column to delete. - The number of rows or columns to delete. - - - - Deletes a row or column from the containing . - - The index of the row or column to delete. - - - - Inserts a row or column into the containing . - - The position where to insert the row or column. - - - - Gets the containing table's collection. - - - - - Gets the containing table's collection. - - - - - Gets the object containing the current collection. - - - - - Gets the object representing - the groups of vectors (rows or columns) defined on the current collection. - - - - - Gets or sets the logical count of vectors (rows or columns) in the current collection. - Setting this property to -1 (which is the default) ensures that Count - is calculated automatically. - - - tables are logically infinite. Simply accessing an element - at any position expands the table to include that position. Hence by default the Count - property returns the maximum row or column number that has been accessed so far. - Assigning a non-negative value to this property allows to increase or decrease the number of rows or columns - (if the number of vectors is decreased, elements with greater indices are cleared). - - - - - Gets the physical count of vectors (rows or columns) - currently stored in this . - - - - - Represents a collection of rows (objects of the type) - in a . - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - Returns the with the specified index - (the of the row), - or null if that object - has not been initialized. - - The 0-based index of the row in the containing table. - The object or null. - - Physically, rows in a are created - when they are accessed using the indexer property on the - collection. This method may be used - to test whether a physical object exists - for a particular row index. - - - - - Gets the collection of row groups defined on the containing . - - - - - Gets the object corresponding to the row - at the specified index in the containing . - Note that a will be created if it has not been - initialized for that row index yet. - Use to get a row without creating it. - - The row index in the containing table. - The at the specified index in the table. - - - - Represents a collection of columns (objects of the type) - in a . - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - Returns the with the specified index - (the of the column), - or null if that object - has not been initialized. - - The 0-based index of the column in the containing table. - The object or null. - - Physically, columns in a are created - when they are accessed using the indexer property on the - collection. This method may be used - to test whether a physical object exists - for a particular column index. - - - - - Gets the collection of column groups defined on the containing . - - - - - Gets the object corresponding to the column - at the specified index in the containing . - Note that a will be created if it has not been - initialized for that column index yet. - Use to get a column without creating it. - - The column index in the containing table. - The at the specified index in the table. - - - - Represents a cell in a . - - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - The and properties - are not copied. - A "deep" copy of the is made, i.e. a copy - of the is created and assigned to the - newly created cell's property. - - The source object to copy properties from. - - - - Determines whether the current cell is visible in the containing table. - A cell is visible if it spans at least one visible row and column - (see ). - - true if the current cell is visible, false otherwise. - - - - Gets or sets arbitrary data associated with the current cell. - - - - - Gets the containing the current cell. - - - - - Gets the containing the current cell. - - - - - Gets the 0-based index in the table of the row containing the current cell. - - - - - - - Gets the 0-based index in the table of the column containing the current cell. - - - - - - - Obsolete, use Row instead. - - - - - Obsolete, use Col instead. - - - - - Gets or sets the number of columns spanned by the current cell. - Cannot be less than 1, which is the default. - - - - - Gets or sets the number of rows spanned by the current cell. - Cannot be less than 1, which is the default. - - - - - Gets the index of the last column spanned by the current cell. - If is 1, the value of this property is equal to . - - - - - Gets the index of the last row spanned by the current cell. - If is 1, the value of this property is equal to . - - - - - Gets or sets the contained in the current cell. - - - - - - - Gets or sets the text contained in the current cell. - - - - Setting this property checks the current value of the property. - If it is a , the is assigned to that object's - . - - - Otherwise, a new initialized with - is created and assigned to . - Note that properties from the old are copied - to the newly created using the - method. - In particular, this copies the style from the old object to the new one. - - - Getting this property returns of - assigned to the on the current cell, or an empty string - if the current value of is not a . - - - - - - - - - Gets or sets the image contained in the current cell. - - - - Setting this property checks the current value of the property. - If it is a , the is assigned to that object's - . - - - Otherwise, a new initialized with - is created and assigned to . - Note that properties from the old are copied - to the newly created using the - method. - In particular, this copies the style from the old object to the new one. - - - Getting this property returns of - assigned to the on the current cell, or null - if the current value of is not a . - - - - - - - - - Gets the contained in the current cell. - - - - Getting this property checks the current value of the property. - If it is a , it is returned. - - - Otherwise, a new is created, assigned to , - and returned. - - - Note that properties from the old are copied - to the newly created using the - method. - In particular, this copies the style from the old object to the new one. - - - - - - - - - Gets the of the current cell. - - - - The value of this property affects both ambient and non-ambient - style attributes of the cell itself and, through object containment, - ambient attributes of the cell's content. - - - For example, because is ignored - for table cells, the following code does not affect the look of a table: - - RenderTable rt = new RenderTable(); - rt.Cells[1, 2].Text = "My text."; - rt.Cells[1, 2].Style.Spacing.All = "3mm"; - - while the following code adds 3mm of whie space around the text in the - cell: - - RenderTable rt = new RenderTable(); - rt.Cells[1, 2].Text = "My text."; - rt.Cells[1, 2].CellStyle.Spacing.All = "3mm"; - - - - - - - - Gets the that is used to render the content of the current cell. - - - This style is not applied to the current cell itself, - rather it is applied to the cell's content (), - affecting both ambient and non-ambient style attributes of that object. - For an example, see remarks in . - - - - - - Gets a describing the geometry of the current cell in the table. - - The location of the returned rectangle defines the location (column and row) of the current cell, - while its size defines the number of columns and rows spanned by the current cell. - - - - - - - - - - Gets or sets a value indicating how the content of the current cell is treated - when the cell is split vertically between two horizontal (extension, - created when the document is too wide) pages. - ( should be true for this to happen). - - - - - - - Gets or sets a value indicating how the content of the current cell is treated - when the cell is split horizontally between two vertical (regular) pages - ( should be true for this to happen). - - - - - - - Gets or sets a value indicating whether horizontal gridlines should - be drawn when the cell is split between two vertical (regular) pages. - - - - - - Gets or sets a value indicating whether vertical gridlines should - be drawn when the cell is split between two horizontal (extension, - created when the document is too wide) pages. - - - - - - Represents a collection of cells - (objects of the type ). - A collection of this type is returned by the property - of a table. - - - - - For internal use. - This interface is used to allow objects to receive notifications from Serializer. - - - - - For internal use. - - - - - - For internal use. - - - - - Returns the object at the specified row and column in the containing , - or null if that object has not been initialized. - - The 0-based row index of the cell. - The 0-based column index of the cell. - The object at the specified row and column, or null. - - The cells of a table are not initialized unless they are accessed via the indexer property - on the cells collection. Unlike the indexer, this method can be used to test whether - a object has been created for a cell, without initializing it. - - - - - Gets the bounds of the initialized cells area. - The returned structure's - contains the column index of the rightmost initialized cell + 1, - while - contains the row index of the bottommost initialized cell + 1. - - The size of the initialized cells area. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets the count of cells in the current collection. - - - - - Gets the object at the specified index. - - - - - Contains the number of rightmost column. - - - - - Contains the number of bottommost row. - - - - - Gets the containing the current collection of cells. - - - - - - Gets the at the intersection of the specified row and column. - This property always returns a non-null object. - - The 0-based row index. - The 0-based column index. - The cell at the intersection of the specified row and column. - - - - - Flags specifying how a table header is repeated in a . - This is the type of . - - - - - The header is printed once at the top of the table. - - - - - The header is repeated at the top of each page. If there are multiple columns - per page, the header is repeated only at the top of the first column on the page. - - - - - The header is repeated only if there are multiple columns per page, at the top - of each column except the first on the page. If there is only one column, - the header is not printed at all. - - - - - The header is repeated at the top of all pages. If there are multiple columns per page, - the header is repeated at the top of each column. - - - - - Flags specifying how a table footer is repeated in a . - This is the type of . - - - - - The footer is printed once at the end of the table. - - - - - The footer is repeated at the bottom of each page. If there are multiple columns - per page, the footer is repeated only at the bottom of the last column on the page. - - - - - The footer is repeated only if there are multiple columns per page, at the bottom - of each column except the last on the page. If there is only one column, - the footer is not printed at all. - - - - - The footer is repeated at the bottom of all pages. If there are multiple columns per page, - the footer is repeated at the bottom of each column. - - - - - Represents a group of rows or columns - (see and ). - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets the containing the current group. - - - - - Gets the containing the current group. - - - - - Gets the 0-based index in the containing - of the first row or column in the current group. - - - - - Gets the number of rows or columns in the current group. - - - - - Gets the 0-based index in the containing - of the last row or column in the current group. - - - - - Gets or sets a value indicating whether the current group can split between pages. - The default is true. - - - - - Gets or sets a value indicating whether the current group - should be repeated as a table header on each page where - the containing table is printed. - - Only one row and column group in a table can has this property set to true. - - - - - - Gets or sets a value indicating whether the current group - should be repeated as a table footer on each page where - the containing table is printed. - - Only one row and column group in a table can has this property set to true. - - - - - - Gets or sets a value indicating whether the current group - should be repeated as a table header on each column where - the containing table is printed. - - Only one row and column group in a table can has this property set to true. - - - - - - Gets or sets a value indicating whether the current group - should be repeated as a table footer on each column where - the containing table is printed. - - Only one row and column group in a table can has this property set to true. - - - - - - Gets or sets flags indicating whether the current group - should be treated as a table header repeated on each - page and/or column. - - - - - - - Gets or sets flags indicating whether the current group - should be treated as a table footer repeated on each - page and/or column. - - - - - - - Gets or sets the minimum number of rows or columns that must be printed - on the same page before the current group, to allow a page break to be inserted. - - - - - Gets or sets the minimum number of rows or columns that must be printed - on the same page after the current group, to allow a page break to be inserted. - - - - - Gets the associated with the current group. - This style affects ambient and non-ambient attributes of the group as a whole, - and ambient properties of the elements contained in the group. - - - - - - Gets the that is used to initialize - of cells in the current group. - - - - - - Obsolete. Use Position instead. - - - - - Obsolete. Use LastPosition instead. - - - - - Represents a collection of row or column groups in a . - This is the type of and - collections. - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets the group of rows or columns which has the - property set to true. - - The which is a table header repeated on each page, - or null if such group does not exist. - - - - Gets the group of rows or columns which has the - property set to true. - - The which is a table footer repeated on each page, - or null if such group does not exist. - - - - Gets the group of rows or columns which has the - property set to true. - - The which is a table header repeated on each column, - or null if such group does not exist. - - - - Gets the group of rows or columns which has the - property set to true. - - The which is a table footer repeated on each column, - or null if such group does not exist. - - - - Gets the bound of the current group collection, - i.e. the index of the last row or column in the contained groups plus 1. - - The bound of the current group collection. - - - - Searches the current collection for a group with the specified - position (row or column index) in the containing table, and count of elements. - - The starting position (row or column index) of the group in the containing table. - The count of rows or columns in the group. - The group matching the search criteria, or null if such group does not exist. - - - - Searches the current collection for all groups that contain - the row or column with the specified index in the containing table, - returns the array of all groups that were found. - - The row or column index. - The array of objects that were found. - - - - Gets the containing the current collection of row or column groups. - - - - - Gets the row or column group that has the specified position in the containing table and element count. - This property always returns a object. If the group with the specified - parameters did not exist, it is created and added to the current collection. - - The index in the containing table of the first row or column in the group. - The number of rows or columns in the group. - The with the specified criteria. - - - - Represents a (possibly sparse) user-defined group of cells - (objects of type ) in a . - - - - - Initializes a new instance of the class, - includes a range of cells identified by a rectangular area, in the group. - - Identifies a rectangluar range of cells as follows: - - is the column index of the top left cell; - is the row index of the top left cell; - is the number of columns; - is the number of rows. - - - - - - Initializes a new instance of the class, - includes a single cell identified by its coordinates, in the group. - - Identifies a cell as follows: - - is the column index of the cell; - is the row index of the cell. - - - - - - Initializes a new instance of the class, - includes a range of cells identified by a list of rectangular areas, in the group. - - The list of rectangular areas to include in the group, - each area is identified by a structure as follows: - - is the column index of the top left cell; - is the row index of the top left cell; - is the number of columns; - is the number of rows. - - - - - - Initializes a new instance of the class, - includes a range of cells identified by a list of cell coordinates, in the group. - - The list of cell coordinates to include in the group, - each cell is identified by a structure as follows: - - is the column index of the cell; - is the row index of the cell. - - - - - - Initializes a new instance of the class, - includes a range of cells identified by a list of rectangular areas or individual cell coordnates, in the group. - - - - The list of rectangular areas or individual cell coordnates to include in the group, - each item in the list may be either a or a structure. - - If the item is a , it identifies an area to include as follows: - - is the column index of the top left cell; - is the row index of the top left cell; - is the number of columns; - is the number of rows. - - If the item is a , it identifies a cell to include as follows: - - is the column index of the cell; - is the row index of the cell. - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Tests whether the current cell group contains a cell with the specified row and column indices. - - The row index of the cell. - The column index of the cell. - true if the current group contains the specified cell, false otherwise. - - - - Gets the containing the current cell group. - - - - - Gets the containing the current cell group. - - - - - Gets the of the current cell group. - - - - - Gets the of objects contained in the cells - of the current cell group. - See for details. - - - - - Gets an array of structures identifying all cells - included in the current group. - For details, - (lone cells are represented by rectangles with both dimensions set to 1). - - - - - Represents a collection of objects. - This is the type of the property of a . - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Adds a to the current collection. - - The user cell group to add. - The index of the newly added group in the current collection. - - - - Finds all user cell groups (objects of type ) - that contain the cell at the specified row and column indices. - - The row index of the cell. - The column index of the cell. - A containing all objects from the current collection - that contain the cell at the specified position in the table. - - - - Gets the bounding rectangle that includes all cells in all groups in the current collection. - - - A structure, the of which contains the column index + 1 - of the rightmost cell, while the contains the row index + 1 - of the bottommost cell. - - - - Gets the object containing the current collection of user cell groups. - - - - - Gets the at the specified index in the current collection. - - The index in the current collection. - The at the specified index. - - - - Enumerates the modes of stretching the rows or columns of a - when filling an empty space below or on the right of the table. - - - - - Rows or columns of a table do no stretch. - - - - - All rows or columns of a table are stretched equally to fill the page. - - - - - All columns of a table are stretched equally to fill the page. - - - - - Only the last row or column on a page is stretched to fill it. - - - - - Only the last column on a page is stretched to fill it. - - - - - Represents a table in a . - - - - - - - - - - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the row and column counts - (see ). - - The count assigned to on the collection. - The count assigned to on the collection. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - For internal use only. - - - - - - For internal use only. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether rows, columns, cells, row, column and user cell groups should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - For internal use only. - - - - - For internal use only. - - - - - Gets or sets a value determining how the heights of table rows are - calculated. The default is . - - - - - Gets or sets a value determining how the widths of table columns are - calculated. The default is . - - - To make a table with automatically calculated columns' widths, - set this property to , - and the on the - to , e.g.: - - RenderTable rt = new RenderTable(); - rt.ColumnSizingMode = TableSizingModeEnum.Auto; - rt.Width = Unit.Auto; - - - - - - Gets the collection of rows of the current . - Getting a row with an arbitrary index on this collection - always returns a object, initializing it if necessary. - - - - - Gets the collection of columns of the current . - Getting a column with an arbitrary index on this collection - always returns a object, initializing it if necessary. - - - - - Gets the collection of row groups defined on the current . - - - - - Gets the collection of column groups defined on the current . - - - - - Gets the collection of cells of the current . - Getting a cell with arbitrary row and column indices on this collection - always returns a object, initializing it if necessary. - - - - - Gets the collection of objects defined on the current table. - - - - - Obsolete. Use instead. - - - - - Gets or sets the mode of stretching the columns of the current table - when filling an empty space on the right of the table. - - - - - Gets or sets the mode of stretching the rows of the current table - when filling an empty space below the table. - - - - - Gets the of objects contained in the cells - of the current table. - See for details. - - - - - Gets or sets a value indicating whether a vertical page header, if defined (see remarks), - should be printed on the first of the horizontal pages spanned by the current table. - - - To define a vertical page header, create a column group on the current table, - and mark it as a page or column header, e.g. like this: - - RenderTable rt = new RenderTable(); - rt.ColGroups[0, 2].Header = TableHeaderEnum.All; - - - - - - - - - Gets or sets a value indicating whether a horizontal page header, if defined (see remarks), - should be printed on the first of the pages spanned by the current table. - - - To define a horizontal page header, create a row group on the current table, - and mark it as a page or column header, e.g. like this: - - RenderTable rt = new RenderTable(); - rt.RowGroups[0, 2].Header = TableHeaderEnum.All; - - - - - - - - - Gets or sets a value indicating whether a vertical page footer, if defined (see remarks), - should be printed on the last of the horizontal pages spanned by the current table. - - - To define a vertical page footer, create a column group on the current table, - and mark it as a page or column footer, e.g. like this: - - RenderTable rt = new RenderTable(); - rt.ColGroups[10, 2].Footer = TableFooterEnum.All; - - - - - - - - - Gets or sets a value indicating whether a horizontal page footer, if defined (see remarks), - should be printed on the last of the pages spanned by the current table. - - - To define a horizontal page footer, create a row group on the current table, - and mark it as a page or column footer, e.g. like this: - - RenderTable rt = new RenderTable(); - rt.RowGroups[10, 2].Footer = TableFooterEnum.All; - - - - - - - - - Gets or sets a value indicating whether vertical gridlines (see ) - should be drawn when the current table is split between two or more horizontal (extender) pages. - - - - - Gets or sets a value indicating whether horizontal gridlines (see ) - should be drawn when the current table is split between two or more pages. - - - - - Represents a run of text in a . - Text is drawn using a single style (see for multi-style text). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning the property. - - A string assigned to the property. - - - - Initializes a new instance of the class, - assigning the property and style. - - A string assigned to the property. - A to use - (the method - is used to copy the specified style to the current object's ). - - - - Initializes a new instance of the class, - assigning the property and font. - - A string assigned to the property. - The font used to render the text. - - - - Initializes a new instance of the class, - assigning the property, - font and text color. - - A string assigned to the property. - The font used to render the text. - The text color used to render the text. - - - - Initializes a new instance of the class, - assigning the property, - font, text color and alignment. - - A string assigned to the property. - The font used to render the text. - The text color used to render the text. - The horizontal text alignment. - - - - Initializes a new instance of the class, - assigning the property, - font and text alignment. - - A string assigned to the property. - The font used to render the text. - The horizontal text alignment. - - - - Initializes a new instance of the class, - assigning the property, - and text alignment. - - A string assigned to the property. - The horizontal text alignment. - - - - Initializes a new instance of the class, - assigning the property, - and the parent styles. - - A string assigned to the property. - The style assigned to the property of the current object's style. - The style assigned to the property of the current object's style. - - - - For internal use only. - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - - - For internal use only. - - - - - - - - - For internal use only. - - - - - - - - For internal use only. - - - - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - - - - - - - - - - - Gets or sets the text of the current object. - - - - - Gets a value indicating whether the property of the current object is - not null and has a greater than zero length. - - - - - Gets the length of the string returned by the property. - - - - - Specifies the text alignment on a tab position. - See for details. - - - - - Text is left-aligned on the tab position (text starts at the tab stop). - - - - - Text is centered around the tab position. - - - - - Text is right-aligned on the tab position (text ends at the tab stop). - - - - - Represents a tab stop in a text in a . - To set a tab stop, add it to the - collection on the text or paragraph. - - - - - Initializes a new instance of the class, - at the specified position, with the default () text alignment. - - The tab position, relative to the left edge of the text area. - - - - Initializes a new instance of the class, - at the specified position and with the specified text alignment. - - The tab position, relative to the left edge of the text area. - The text alignment at this tab position. - - - - Initializes a new instance of the class, - at the specified position and with the specified text alignment and fill character. - - The tab position, relative to the left edge of the text area. - The text alignment at this tab position. - The character used to fill the area between the preceding and the current tab stops. - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets the tab stop position, relative to the left of the text area. - - - The tab stop position is relative to the left edge of the text area. - That area does not include any padding or borders, so for example - if a has a 1 inch left padding, - and the first is set to 1 inch, - any text after the first tab char will be positioned 2 inches - to the right of the 's X coordinate. - - - - - Gets or sets the text alignment at the current tab. - - - - - Gets or sets the char used to fill the space between the current and the preceding tabs. - - - This feature's main use is in , where it fills the space - between left-aligned TOC entries and right-aligned page numbers. - - - - - Represents a collection of objects. - This is the type of property. - - - - - Creates a new object, - initializes it with the specified tab stop position, - and adds it to the current collection. - - The position of the tab stop relative to the left edge of the text area. - The index of the added object in the current collection. - - - - Creates a new object, - initializes it with the specified tab stop position and text alignment, - and adds it to the current collection. - - The position of the tab stop relative to the left edge of the text area. - The text alignment at the specified tab stop. - The index of the added object in the current collection. - - - - Creates a new object, - initializes it with the specified tab stop position, text alignment and fill char, - and adds it to the current collection. - - The position of the tab stop relative to the left edge of the text area. - The text alignment at the specified tab stop. - The fill char between the preceding and the added tab stop. - The index of the added object in the current collection. - - - - Adds a object to the current collection. - - The object to add. - The index of in the current collection. - - - - Inserts a object at the specified position into the current collection. - - The index at which to insert . - The object to insert. - - - - Removes a object from the current collection. - - The object to remove. - - - - Gets the index of a object in the current collection. - - The object to get the index of. - The index of in the current collection. - - - - Gets or sets the at the specified index. - - The index in the current collection. - The TabPosition at the specified index. - - - - Represents a single entry in the table of contents (TOC; ) in a . - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - Gets a string containing the page number tag enclosed in tag parentheses - ("[LPN]" by default). - - - - - Gets the object containing the current TOC entry. - - - - - Gets a value indicating whether the current TOC entry will produce visible - output in the generated document. - - - - - Gets the count of characters in the current TOC entry. - - - - - Gets or sets the level of the current entry in the TOC. - This value is 1-based, and determines the indentation of the current item in the generated TOC. - The default value is 1, which does not indent the entry. - Nested levels are indented by the amount. - - - - - Represents a table of contents (TOC) in a . - Individual TOC entries are represented by objects. - This object may also contain other types of render objects - (this may be used e.g. to show a TOC header). - - - - - For internal use only. - - - - - For internal use only. - - - - - Initializes a new instance of the class. - - - - - For internal use only. - - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - For internal use only. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - Assigns (copies) properties from another to the current object. - Calls the base method. - If is a , also copies -specific properties. - - The source object to copy properties from. - Indicates whether the property should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the elements of the collection should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - Indicates whether the property should be copied. - - - - Creates a new initialized with the specified - text and hyperlink, and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text, hyperlink and level, and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text and target page number, and adds it to the current TOC. - - A text representing the TOC item that is being added. - The page number which is the target of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text, target page number and level, and adds it to the current TOC. - - A text representing the TOC item that is being added. - The page number which is the target of the TOC item. - The of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text and target , and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text, target and level, and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text and target , and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The that was created and added to the current TOC. - - - - Creates a new initialized with the specified - text, target and level, and adds it to the current TOC. - - A text representing the TOC item that is being added. - A which is the target of the TOC item. - The of the TOC item. - The that was created and added to the current TOC. - - - - Gets or sets a value indicating whether page numbers should be displayed in the current TOC. - - - - - Gets or sets a value indicating whether page numbers should be right-aligned within the current TOC. - - - - - Gets or sets a value indicating whether only the page numbers in the - rendered TOC represent clickable hyperlinks (otherwise, the entire - area between an entry's caption and page number can be clicked). - The default value is false. - - - - - Gets or sets a character used to fill empty spaces between TOC items and corresponding page numbers. - - - - - Gets or sets the indentation step of TOC items. - Items with equal to 1 are not indented, - each next level is indented by this value. - The default value is 10mm. - - - - - For internal use only. - - - - - For internal use. - Determines how item types are serialized - - - - - Name of type will NOT be serialized. - On deserialization object will be created and assigned to the field or property, - Type of created object will be determinated by the type of field or property. - - - - - Item type is serialized with using of aliases, - if alias is not found type will be serialized with assembly name. - On deserialization object will be created and assigned to the field or property. - - - - - Indicates that: - Item's type should not be serialized and on deserialization - value of property should be read from object. - - - - - For internal use. - Forces the serializer to serialize the type name of a property or field. - - - - - For internal use. - - - - - - For internal use. - - - - - - For internal use. - Defines how the type name of a property of field will be serialized. - - - - - For internal use. - This attribute defines additional properties for collections properties or fields. - - - - - For internal use. - - - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - For internal use. - Collection's items are references. - - - - - For internal use. - Collection's items can be referenced by other properties. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - Allows to mark field or property as "parent reference". - - - - - For internal use. - - - - - For internal use. - Allows to define additional properties for class. - - - - - For internal use. - - - - - - For internal use. - - - - - - - For internal use. - Indicates that by default the public fields or properties are not serialized. - - - - - For internal use. - Indicates that the type converter specified for class should be ignored - and not used during serialization. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - Indicates that the object should be serialized only if it supports deserialization. - - - - - For internal use. - - - - - For internal use. - Indicates that the error occurs on deserialization value of this property should be ignored. - - - - - For internal use. - - - - - For internal use. - Indicates that the property or field is serializable only in C1D format. - - - - - For internal use. - - - - - For internal use. - Defines options for serialization in Open Xml format. - - - - - For internal use. - - - - - For internal use. - - - - - - For internal use. - - - - - - - For internal use. - Gets the name of part in open xml file. - - - - - For internal use. - Gets the value indicating that the name of part - should be autogenerated in the path defined by Path property. - - - - - For internal use. - Gets the path where part name shoulbe auto generated. - - - - - For internal use. - - - - - For internal use only. - - - - - For internal use. - - - - - For internal use. - - - - - - - For internal use. - - - - - - For internal use. - Converts a string to the C1FormatVersion object. - - The string to convert. - Indicates the exception should be thrown if string can not be converted to C1FormatVersion. - Returns instance of C1FormatVersion object or null. - - - - For internal use. - Gets the version of C1D document format. - - - - - For internal use. - Gets the AssemblyVersion of C1.C1Preview.2.dll assemly - that supports this FormatVersion. - - - - - For internal use. - - - - - For internal use. - - An that provides a format context. - - - - - - For internal use. - - An that provides a format context. - - - - - - For internal use. - - - - - Checks is passed string a reference on some object or not. - - The string to check. - Contains the reference value if string is a reference. - - - - - For internal use. - - - - - - For internal use only. - - - - - - - - Returns the "almost" fully qualified type name - i.e. with assembly name, - but without version, culture, and public key. - - Type - Type name, assembly name - - - - For internal use. - Checks the type's alias can be registered the or not. - - Type object. - Alias for type. - Returns true if alias is valid and can be registered. - - - - For internal use. - Registers new type's alias. - - Type object. - Alias for type. - - - - For internal use. - Serializes an object to a file, the format (C1D or C1DX) - is determinated by the file extension. If the file does not have an - extension or the extension is not C1D/C1DX, the C1D format is used. - - The target file name. - The object to serialize. - - - - For internal use. - Serializes an object to a stream in C1D format. - - The target stream. - The object to serialize. - - - - For internal use. - Serializes an object to a file. - - The target file name. - The object to serialize. - The document persistence format to use. - - - - For internal use. - Serializes an object to a stream. - - The target stream. - The object to serialize. - The document persistence format to use. - - - - For internal use. - Serializes the specified Object and writes the XML-document instance to a file. - - Name of destination file. - The Object to serialize. - The XmlSerializerNamespaces referenced by the object. - - - - For internal use. - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - DOES NOT close the underlying stream. Useful for copying objects. - Caller is responsible to call out writer.Close() to close writer and underlying stream. - - The Stream used to write the XML-document instance - The Object to serialize - The XmlSerializerNamespaces referenced by the object - The XmlWriter object reference. Call writer.Close after working with stream/writer. - - - - For internal use. - Serializes the specified Object and writes the XML-document instance to a file using the specified Stream. - - The Stream used to write the XML-document instance - The Object to serialize - The XmlSerializerNamespaces referenced by the object - - - - For internal use. - Serializes the specified Object and writes the XML-document instance to a file using the specified XmlWriter - - The XmlWriter used to write the XML-document instance - The Object to serialize. - The XmlSerializerNamespaces referenced by the object. - - - - For internal use. - Serializes the specified object to an XML formatted string. - - The Object to serialize. - The XmlSerializerNamespaces referenced by the object. - String with results of serialization. - - - - For internal use. - Creates a Serializer class instances that formats the output XML. - - The created Serializer object. - - - - For internal use. - - - - - For internal use. - Sets or returns formatting used by the XML writer. - - - - - For internal use. - Sets or returns indentation used by the XML writer. - - - - - For internal use. - - - - - For internal use. - - - - - Gets information about a type, if type does not exist in cache - then the new TypeInfo object is created for it. - - - - - Indicates that the property/field is a collection. - - - - - Indicates that the property/field is an array. - - - - - Indicates that the property/field must be serialized as attribute. - - - - - Indicates that the property/field should be serialized as reference. - This field can be true only for *non* value properties/fields. - - - - - Indicates that the property/field contains an object - on which can reference properties/fields of other objects. - This field can be true only for non value fields/properties, - also these properties / fields should be serialized as XML elements (IsAttribute = false). - - - - - Like IsReference but for items in collection. - - - - - Like IsReferenceDest but for items in collection. - - - - - Indicates that the property should be serialized only if sit supports deserialzation. - - - - - Indicates that the error occurs during deserialization value of this property should be ignored. - - - - - Defines how the type name of property/field should be serialized. - - - - - Checks is serialization of the field/property needed or not. - Serialization is needed if: - 2. ShouldSerializeXXX method is not defined in obj for member described by this TypeInfoItem object - or this method returns true for value specified by propValue parameter. - 1. propValue does not equal DefaultValue for member described by this TypeInfoItem object. - - Object containing property or field described by this TypeInfoItem object. - Contains value of property on exit. - Returns true if property of obj must be serialized. - - - - Returns the value of the field/property described by this TypeInfoItem class. - - Object property/field of that is described by this TypeInfoItem object. - - - - For internal use only. - Serializes the Brush class as XmlElement. - - - - - For internal use only. - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - - - - - - For internal use only. - Class with the only purpose in life - serialize images. - - - - - For internal use only. - - - - - - For internal use only. - - - - - For internal use only. - - - - - Converts a string to a object. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - For internal use only. - Class with the only purpose in life - serialize icons. - - - - - For internal use only. - - - - - - For internal use only. - - - - - For internal use only. - - - - - Converts a string to a object. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - For internal use only. - Class with the only purpose in life - serialize images. - - - - - For internal use only. - - - - - - For internal use only. - - - - - For internal use only. - - - - - Converts a string to a object. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - Specifies the alignment within their container of objects in the block flow - (see ). - This is the type of and - properties. - - - - - - If specified for a child object's , - indicates that the parent's value is used. - - - If specified for a , equivalent to - . - - - - - - Objects are left-aligned for top to bottom flow (), - and top-aligned for left to right flow (). - - - - - Objects are centered horizontally for top to bottom flow (), - and vertically for left to right flow (). - - - - - Objects are right-aligned for top to bottom flow (), - and bottom-aligned for left to right flow (). - - - - - Specifies how text is split when wrapping long lines. - For internal use only. - - - - - Words are not split. - - - - - Words can be split at any pos. - - - - - Specifies the horizontal alignment of text within a containing object. - - This is the type of property. - - - - - The text is left-aligned. - - - - - The text is centered horizontally. - - - - - The text is right-aligned. - - - - - The text is justified horizontally by widening the white spaces existing in the text. - - - - - The text is justified horizontally by adding white spaces between all characters in the text. - - (Note that if is false, - this mode is not supported, and is used instead.) - - - - - Specifies the vertical alignment of text within a containing object. - - This is the type of property. - - - - - The text is top-aligned. - - - - - The text is centered vertically. - - - - - The text is bottom-aligned. - - - - - The text is justified vertically. - - - - - When applied to vertical text (, ), - justifies text vertically by adding white spaces between all characters. - - (Note that if is false, - this mode is not supported, and is used instead.) - - - - - Specifies the horizontal alignment of foreground and background images. - - This is the type of property - on and . - - - - - The image is left-aligned. - - - - - The image is centered horizontally. - - - - - The image is right-aligned. - - - - - Specifies the vertical alignment of foreground and background images. - - This is the type of property - on and . - - - - - The image is top-aligned. - - - - - The image is centered vertically. - - - - - The image is bottom-aligned. - - - - - Specifies the subscript and superscript properties of text. - - This is the type of property. - - - - - The text is positioned and sized normally. - - - - - The text is positioned and sized as subscript. - - - - - The text is positioned and sized as superscript. - - - - - Defines image alignment properties. - - - - - Gets or sets the horizontal alignment of an image within a container. - - - - - Gets or sets the vertical alignment of an image within a container. - - - - - Gets or sets a value indicating whether an image is stretched horizontally to fill its container. - - - - - Gets or sets a value indicating whether an image is stretched vertically to fill its container. - - - - - Gets or sets a value indicating whether the original aspect ratio is preserved when rendering an image. - - - - - Gets or sets a value indicating whether an image is tiled horizontally within its container. - - - - - Gets or sets a value indicating whether an image is tiled vertically within its container. - - - - - Gets or sets a value indicating whether an image should be resized to best fit within its container. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Represents the alignment of an image within its container. - - - - - Initializes a new instance of the class. - - A value assigned to . - A value assigned to . - A value assigned to . - A value assigned to . - A value assigned to . - A value assigned to . - A value assigned to . - - - - Returns a string that represents the current . - - A string that represents the current . - - - - Gets or sets the horizontal alignment of an image within a container. - - - - - Gets or sets the vertical alignment of an image within a container. - - - - - Gets or sets a value indicating whether an image is stretched horizontally to fill its container. - - - - - Gets or sets a value indicating whether an image is stretched vertically to fill its container. - - - - - Gets or sets a value indicating whether the original aspect ratio is preserved when rendering an image. - Used when or is true. - - - - - Gets or sets a value indicating whether an image is tiled horizontally within its container. - Ignored if is true. - - - - - Gets or sets a value indicating whether an image is tiled vertically within its container. - Ignored if is true. - - - - - Gets or sets a value indicating whether an image should be resized to best fit within its container. - See remarks for details. - - - - Getting this property returns a Boolean conjunction (AND) of the - , and values. - - - Setting this property to a true value sets - , and to true. - - - Setting this property to a false value sets - only to false. - - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets the default image alignment. - - - - - A structure representing four values - corresponding to the four sides of a rectangluar area. - Used by and properties. - - - - - Describes four values - corresponding to the four sides of a rectangluar area. - - - - - Gets or sets the left offset value. - - - - - Gets or sets the top offset value. - - - - - Gets or sets the right offset value. - - - - - Gets or sets the bottom offset value. - - - - - Sets all four offset values. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Initializes a new instance of the structure, - assigning the , , and - values. - - A string representing the value assigned to the property. - A string representing the value assigned to the property. - A string representing the value assigned to the property. - A string representing the value assigned to the property. - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Initializes a new instance of the structure, - assigning a single value to all four offset properties. - - A string representing the value assigned to all four offsets. - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Initializes a new instance of the structure, - assigning a single value to all four offset properties. - - A value assigned to all four offsets. - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Gets or sets the left offset value. - - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Gets or sets the top offset value. - - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Gets or sets the right offset value. - - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Gets or sets the bottom offset value. - - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Sets all four offset values. - - - Only absolute values (such as "1mm" or "8in") are allowed. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Represents a set of attributes used to draw lines. - This class is immutable. - - - - - Initializes a new instance of the class - with default values (1pt wide black line). - - - - - Initializes a new instance of the class, - assigning line color. - - A value assigned to the property. - - - - Initializes a new instance of the class, - assigning line width and color. - - A value assigned to the property. - A value assigned to the property. - - - - Initializes a new instance of the class, - assigning line width, color and dash style. - - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - - - - Initializes a new instance of the class, - assigning line width, color and dash pattern. - is set to . - - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - - - - Initializes a new instance of the class, - assigning line width, color, dash background color and dash style. - - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - - - - Initializes a new instance of the class, - assigning line width, color, dash background color and dash pattern. - is set to . - - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - A value assigned to the property. - - - - Tests whether the current and another objects define - same line styles - i.e. whether the values of , - , and - properties are the same. - Note that this method does NOT compare the lines' widths. - - A to compare to the current one. - true if the two lines have same styles, false otherwise. - - - - Determines whether the specified object is equal to the current object. - This method compares the property values on the objects. - - The object to compare with the current object. - true if the specified object's properties are equal to the current one's, false otherwise. - - - - Serves as a hash function for the type. - - A hash code for the current object. - - - - Returns a string that represents the current object. - - A string that represents the current object. - - - - Creates a object, and initialises it with values - acquired by parsing a string representation of a . - - A string representing a (see ). - If true, an exception is thrown if an error occurs while parsing; otherwise, errors are ignored. - The new object. - - - - For internal use only. - - - - - - - - - Gets the line color. - - - - - Gets the line width (thickness). - - - - - Gets the the background color of spaces between the dashes of a dashed line. - Not used if is . - - - - - Gets the of the current . - - - - - Gets an array of custom dashes and spaces. - - - This property is used only if - is set to . - - - - - Represents an empty line (with emtpy color and zero width). - - - - - Represents the default regular line (solid black, 1pt wide). - - - - - Represents the default bold line (solid black, 2pt wide). - - - - - Used to convert objects of type. - - - - - Converts a string to a . - - An that provides a format context. - The string to convert. - The converted object. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - A structure defining the four borders around a rectangular area. - Each border is represented by a object. - - - - - Describes four borders around a rectangular area. - Each border is represented by a object. - - - - - Gets or sets the left border. - - - - - Gets or sets the top border. - - - - - Gets or sets the right border. - - - - - Gets or sets the bottom border. - - - - - Sets all four borders. - - - - - Gets or sets the width of the ellipse used to draw the rounded corners of the border. - - - - - Gets or sets the height of the ellipse used to draw the rounded corners of the border. - - - - - Gets a value indicating whether the current borders is rounded - (i.e. whether both and have non-zero values). - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the left border. - - - - - Gets or sets the top border. - - - - - Gets or sets the right border. - - - - - Gets or sets the bottom border. - - - - - Sets all four borders to a single value. - - - - - Gets or sets the x-radius of the ellipse used to draw the rounded corners of the border. - - - If both this and are non-zero, all borders are drawn using the - same () border thickness. - - If this value is less than the border thickness, border thickness is used as the radius. - - - - - - Gets or sets the y-radius of the ellipse used to draw the rounded corners of the border. - - - If both this and are non-zero, all borders are drawn using the - same () border thickness. - - If this value is less than the border thickness, border thickness is used as the radius. - - - - - - Gets a value indicating whether the current structure - defines rounded borders (i.e. whether both and - have non-zero values). - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - A structure defining the grid lines (four borders and two internal lines) - used to draw a . - Each line is represented by a object. - - - - - Describes the grid lines used to draw a . - Each line is represented by a object. - - - - - Gets or sets the left outer border of a table. - - - - - Gets or sets the top outer border of a table. - - - - - Gets or sets the right outer border of a table. - - - - - Gets or sets the bottom outer border of a table. - - - - - Gets or sets the vertical inner lines in a table. - - - - - Gets or sets the horizontal inner lines in a table. - - - - - Sets all six lines to a single value. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the left outer border of a table. - - - - - Gets or sets the top outer border of a table. - - - - - Gets or sets the right outer border of a table. - - - - - Gets or sets the bottom outer border of a table. - - - - - Gets or sets the vertical inner lines in a table. - - - - - Gets or sets the horizontal inner lines in a table. - - - - - Sets all six lines to a single value. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Represents the visual attributes of a hyperlink in a certain state. - - - - - Initializes a new instance of the class. - - - - - Checks whether the current has all default values. - - true if all properties on the current object have default values, false otherwise. - - - - Represents the visual attributes of a text hyperlink in a certain state. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - assigning background and foreground colors and property. - - The background color of the hyperlink text. - The foreground color of the hyperlink text. - A value indicating whether the hyperlink text should be underlined. - - - - Initializes a new instance of the class, - assigning property. - - A value indicating whether the hyperlink text should be underlined. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Checks whether the current has all default values. - - true if all properties on the current object have default values, false otherwise. - - - - Determines whether the specified object is equal to the current object. - This method compares properties on the two objects. - - The object to compare with the current object. - true if the specified Object is equal to the current object; otherwise, false. - - - - Serves as a hash function for . - - A hash code for the current object. - - - - Gets the background color. - If this value indicates an empty or transparent color, - the background color of a hyperlink is not changed. - - - - - Gets the foreground (text) color. - If this value indicates an empty or transparent color, - the text color of a hyperlink is not changed. - - - - - Gets a value indicating whether the text of a hyperlink is underlined. - - - - - Gets the default attributes of visited hyperlinks. - - - - - Gets the default attributes of "normal" (neither visited nor highlighted) hyperlinks. - - - - - Gets the default attributes of highlighted hyperlinks. - - - - - Represents the shadow cast by a . - - - - - Represents the shadow cast by a . - This interface is implemented by structure. - - - - - Gets or sets the transparency of the shadow, in percent. - A value of 0 defines a solid (non-transparent) shadow, - a value of 100 (which is the default) defines a fully transparent (invisible) shadow. - - - - - Gets or sets the size of the shadow relative to the size of the object, in percent. - A value of 100 (which is the default) indicates that the shadow has the same size - as the object. - - - - - Gets or sets the distance that the shadow's center is offset from the the object's center. - Note that only absolute values (such as "0.5in" or "4mm") can - be assigned to this property. - The default is 2mm. - - - - - Gets or sets the angle, in degrees, of the shadow. The angle is measured relative - to the three o'clock position clockwise. The default is 45. - - - - - Gets or sets the color of the shadow. The default is Black. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Initializes a new instance of the structure, - assigning , , and - values. - - A value assigned to the property. - A value assigned to the property. - An absolute value assigned to the property. - A value assigned to the property. - A value assigned to the property. - - - - Gets or sets the transparency of the shadow, in percent. - A value of 0 defines a solid (non-transparent) shadow, - a value of 100 defines a fully transparent (invisible) shadow. - - - - - Gets or sets the size of the shadow relative to the size of the object, in percent. - A value of 100 indicates that the shadow has the same size - as the object. - - - - - Gets or sets the distance that the shadow's center is offset from the the object's center. - Note that only absolute values (such as "0.5in" or "4mm") can - be assigned to this property. - - - - - Gets or sets the angle, in degrees, of the shadow. The angle is measured relative - to the three o'clock position clockwise. - - - - - Gets or sets the color of the shadow. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Represents the style of an object. - - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the left spacing should be serialized. - - true if left spacing should be serialized, false otherwise. - - - - Indicates whether the right spacing should be serialized. - - true if right spacing should be serialized, false otherwise. - - - - Indicates whether the top spacing should be serialized. - - true if top spacing should be serialized, false otherwise. - - - - Indicates whether the bottom spacing should be serialized. - - true if bottom spacing should be serialized, false otherwise. - - - - Indicates whether the left padding should be serialized. - - true if left padding should be serialized, false otherwise. - - - - Indicates whether the right padding should be serialized. - - true if right padding should be serialized, false otherwise. - - - - Indicates whether the top padding should be serialized. - - true if top padding should be serialized, false otherwise. - - - - Indicates whether the bottom padding should be serialized. - - true if bottom padding should be serialized, false otherwise. - - - - Indicates whether the left border should be serialized. - - true if left border should be serialized, false otherwise. - - - - Indicates whether the right border should be serialized. - - true if right border should be serialized, false otherwise. - - - - Indicates whether the top border should be serialized. - - true if top border should be serialized, false otherwise. - - - - Indicates whether the bottom border should be serialized. - - true if bottom border should be serialized, false otherwise. - - - - Indicates whether BorderRadiusX should be serialized. - - true if BorderRadiusX should be serialized, false otherwise. - - - - Indicates whether BorderRadiusY should be serialized. - - true if BorderRadiusY should be serialized, false otherwise. - - - - Indicates whether the horizontal image alignment should be serialized. - - true if horizontal image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical image alignment should be serialized. - - true if vertical image alignment should be serialized, false otherwise. - - - - Indicates whether the horizontal stretch image alignment should be serialized. - - true if horizontal stretch image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical stretch image alignment should be serialized. - - true if vertical stretch image alignment should be serialized, false otherwise. - - - - Indicates whether the keep aspect image alignment should be serialized. - - true if keep aspect image alignment should be serialized, false otherwise. - - - - Indicates whether the horizontal tile image alignment should be serialized. - - true if horizontal tile image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical tile image alignment should be serialized. - - true if vertical tile image alignment should be serialized, false otherwise. - - - - Indicates whether the horizontal background image alignment should be serialized. - - true if horizontal background image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical background image alignment should be serialized. - - true if vertical background image alignment should be serialized, false otherwise. - - - - Indicates whether the horizontal stretch background image alignment should be serialized. - - true if horizontal stretch background image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical stretch background image alignment should be serialized. - - true if vertical stretch background image alignment should be serialized, false otherwise. - - - - Indicates whether the keep aspect background image alignment should be serialized. - - true if keep aspect background image alignment should be serialized, false otherwise. - - - - Indicates whether the horizontal tile background image alignment should be serialized. - - true if horizontal tile background image alignment should be serialized, false otherwise. - - - - Indicates whether the vertical tile background image alignment should be serialized. - - true if vertical tile background image alignment should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the Shadow.Transparency property should be serialized. - - true if Shadow.Transparency should be serialized, false otherwise. - - - - Indicates whether the Shadow.Size property should be serialized. - - true if Shadow.Size should be serialized, false otherwise. - - - - Indicates whether the Shadow.Distance property should be serialized. - - true if Shadow.Distance should be serialized, false otherwise. - - - - Indicates whether the Shadow.Angle property should be serialized. - - true if Shadow.Angle should be serialized, false otherwise. - - - - Indicates whether the left grid line property should be serialized. - - true if left grid line should be serialized, false otherwise. - - - - Indicates whether the right grid line property should be serialized. - - true if right grid line should be serialized, false otherwise. - - - - Indicates whether the top grid line property should be serialized. - - true if top grid line should be serialized, false otherwise. - - - - Indicates whether the bottom grid line property should be serialized. - - true if bottom grid line should be serialized, false otherwise. - - - - Indicates whether the vertical grid line property should be serialized. - - true if vertical grid line should be serialized, false otherwise. - - - - Indicates whether the horizontal grid line property should be serialized. - - true if horizontal grid line should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Indicates whether the property should be serialized. - - true if should be serialized, false otherwise. - - - - Gets value of "style" property. - If style has no this property and all its parents has no this property - then null is returned (NOT DEFAULT VALUE). - - Key of property (c_propXXX constant). - that should be used to get calculated properties. - - - - This method used only in RenderTable objects and its subobjects TableCell, - TableVector etc. - - Key of property (c_propXXX constant). - that should be used to get calculated properties. - - - - Returns true if style has no properties. - - - - - Clears the current style, resets all properties so that they - inherit from the parent style. - - - - - Copies to the current style all properties of another object - that have been explicitly set on that other style, - plus the values of the and properties. - - The source object to copy properties from. - - Effectively, this method makes the current - a complete copy of the style. - - - - - Gets a value indicating whether the current style has calculated properties. - - - - - Gets the owner of the current style. - - - - - Gets or sets the that is the parent of the current style. - - If non-null, that style provides the values for non-ambient properties - of the current style that have not been explicitly set. - - - If null, such properties have default values. - - - This property is null by default. - - - - Initially a object does not have any - explicitly set properties. This means that the effective - values of all ambient properties (such as font) are inherited from - the style of the containing object, while the effective values - of all non-ambient properties (such as borders) are inherited - from the style specified by this property. - - - - - Sets both parents ( and ) to the same value. - - - - - Gets the collection of child styles - (i.e. objects that have their - set to the current style). - - - This method always returns a non-null collection of child styles, - initializing it if it did not exist. - To test whether a style already has child styles - without creating the collection, - use the property. - - - - - Gets a value indicating whether the current style's - collection has been initialized and contains one or more elements. - - - - - Gets or sets the that is the ambient parent of the current style. - - If non-null, that style provides the values for ambient properties - of the current style that have not been explicitly set. - - - If null, such properties are inherited from the style of the containing object. - - - This property is null by default. - - - - Initially a object does not have any - explicitly set properties. This means that the effective - values of all ambient properties (such as font) are inherited from - the style of the containing object, unless this property has - been set to a non-null value, in which case they are - inherited from that style. - - Note that even if an AmbientParent has been specified, - only ambient properties that have been explicitly set on - that style or any of its own ambient parents (styles or containing objects) - propagate to the current style. See example below for details. - - - - For instance, the following code: - - C1PrintDocument doc = new C1PrintDocument(); - RenderArea ra = new RenderArea(); - ra.Style.FontBold = true; - RenderText rt = new RenderText("my text"); - ra.Style.AmbientParent = doc.Style; - ra.Children.Add(rt); - doc.Body.Children.Add(ra); - - still prints "my text" in bold, while this code: - - C1PrintDocument doc = new C1PrintDocument(); - doc.Style.FontBold = false; // this line makes the difference! - RenderArea ra = new RenderArea(); - ra.Style.FontBold = true; - RenderText rt = new RenderText("my text"); - ra.Style.AmbientParent = doc.Style; - ra.Children.Add(rt); - doc.Body.Children.Add(ra); - - prints "my text" using regular (non-bold) font. This is because - has been explicitly set to false - on the style assigned to the AmbientParent on the text object. - - - - - Gets or sets the background image. - The image is aligned using . - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is no image. - - - - - Gets or sets the name of the background image - in on the current document. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is emtpy string. - - - - - Gets or sets the brush used to fill the background. - If both this and properties are specified for a style, - the BackColor takes precedence. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is no brush. - - - - - Gets or sets the text (foreground) color. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is black color. - - - - - Gets or sets the text rotation angle, - in degrees counterclockwise from the X axis. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is 0. - - - - - Gets or sets the horizontal text alignment. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is left alignment. - - - - - Gets or sets the vertical text alignment. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is top alignment. - - - - - Gets or sets the line spacing of a text in percent. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is 100% (normal line spacing). - - - - - Gets or sets a value indicating whether text automatically - wraps to the next line when there is not enough space left on the current line. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is true. - - - - - Gets or sets a value indicating whether text is rendered - normally, or as superscript or subscript. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is normal text. - - - - - Gets or sets a for "normal" (neither visited nor highlighted) hyperlinks. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is to highlight hyperlinks with blue text color. - - - - - Gets or sets a for visited hyperlinks. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is to highlight visited hyperlinks with magenta text color. - - - - - Gets or sets a for highlighted hyperlinks. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is to underline text on a hyperlinks under mouse. - - - - - Gets or sets a for active hyperlinks. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is to not highlight active hyperlinks. - - - - - Obsolete. Use instead. - - - - - Obsolete. Use instead. - - - - - Gets or sets a value indicating whether spaces at ends of text lines - are taken into account when measuring the text. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets the padding (white space added between the style owner's content and borders). - - - Padding is within (if any), while is added outside of borders. - - This property is non-ambient (inherited from the of the current style if not explicitly set). - - The default is no padding. - - - - - Gets or sets the spacing between the the current style's owner and the surrounding objects. - - - Spacing is outside of (which, in turn, contain ). - - This property is non-ambient (inherited from the of the current style if not explicitly set). - - The default is no spacing. - - - - - Gets or sets the borders drawn around the current style's owner object. - - - Borders are drawn within the area, and contain . - - This property is non-ambient (inherited from the of the current style if not explicitly set). - - The default is no borders. - - - - - Gets or sets properties of the shadow cast by the current object. - By default the shadow is invisible due to being 100% transparent. - Set Shadow.Transparency to a value less than 100, to show shadow. - Other properties can be adjusted as needed. - - - - - Gets or sets the grid lines used to draw tables. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is no grid lines. - - - - - Gets or sets the foreground image alignment. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is to align to left/top, stretch horizontally and vertically, and keep aspect ratio. - - - - - - Gets or sets the background image alignment. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is to align to left/top, stretch horizontally and vertically, and keep aspect ratio. - - - - - - Gets or sets the background color. - If both this and properties are specified for a style, - this property takes precedence. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is transparent background color. - - - - - Gets or sets the minimum number of orphan text lines allowed on a page - before or after a page break. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is 0. - - - - - Gets or sets a value indicating whether just the client area of a , - or the whole control, is rendered by the object owning the current style. - - - - A can render an image of a - if it is assigned to the RenderImage's property. - ClientAreaOnly can be used to indicate that only the client area of that control should be rendered. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - - The default is false. - - - - - Gets or sets the brush used to fill internal areas of shapes - (objects derived from ). - If for a style both this and are specified, - ShapeFillColor takes precedence. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is no brush. - - - - - Gets or sets the color used to fill internal areas of shapes - (objects derived from ). - If for a style both this and are specified, - this property takes precedence. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is transparent fill color. - - - - - Gets or sets the style of lines used to draw shape objects (RenderLine, RenderRectangle etc). - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is a black line, 1pt thick. - - - - - Gets or sets the alignment of the current style's owner object within its container in a block flow. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is . - - - - - - - Gets or sets the alignment of children of the current style's owner object in a block flow. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is . - - - - - - - Gets or sets the indentation of the first line in a block of text. - - - This property is non-ambient (inherited from the of the current style if not explicitly set). - The default is 0. - - - - - Gets or sets the spacing between characters in a text. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is 0 (normal spacing). - - - - - Gets or sets the amount (in percent) by which to increase or decrease - the widths of characters in a text. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is 100 (normal width). - - - - - Gets or sets a value indicating whether the last line of text should be justified - if the current style has set to - or . - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets a value indicating whether lines of text - ending with a newline character should be justified - if the current style has set to - or . - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is true. - - - - - Gets or sets a mode of words' splitting during text wrapping. - at any pos. - - - - - Gets or sets the font. - - - Note that setting this property resets properies specifying individual font attributes: - , - , - , - , - and - . - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - - The default is Arial, 10pt. - - - - - Gets or sets the face name of the font. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is Arial. - - - - - Gets or sets the em-size of the font. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is 10. - - - - - Gets or sets a value indicating whether the font is bold. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets a value indicating whether the font is italic. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets a value indicating whether the font is underlined. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets a value indicating whether the font is strikeout. - - - This property is ambient (inherited from the style of the object containing the current style's owner if not explicitly set). - The default is false. - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Gets or sets the expression used to calculate . - - - - - Represents a collection of objects. - This is the type of the collection - on a . - - - - - Creates a new object and adds it to the current collection. - - The created object. - - - - Gets the object at the specified index in the current collection. - - The index of the element. - The element at the specified index. - - - - Represents operating system related information in a . - - - - - Initializes a new instance of the class. - Note that the property values are not updated by this constructor, - the method should be used to actually - fill the current object with system info data. - - - - - Updates the properties of the current object - with the current system info data. - - - - - Gets the number of system screens. - - - - - Gets the logical horizontal resolution (DPI) of the screen. - - - - - Gets the logical vertical resolution (DPI) of the screen. - - - - - Gets the physical horizontal resolution (DPI) of the screen. - - - - - Gets the physical vertical resolution (DPI) of the screen. - - - - - Gets the bounds of the screen as returned by . - - - - - Gets the measurement device as returned by . - - - - - Gets the measurement printer name as returned by . - - - - - Gets the measurement resolution as returned by . - - - - - Gets the if is a printer, - or the word "Screen" if it is the screen. - - - - - Gets a string representing the format version used to serialize a . - Format versions are backward-compatible, but not necessarily forward-compatible. - - - - - Gets the assembly version of the assembly containing the class. - - - - - Gets the current culture. - - - - - Gets the OS version as returned by . - - - - - The abstract base class for system () and user defined () tags. - - - - - Gets the object containing the current tag. - Can return null if the tag has not been added to a document. - - - - - Gets or sets the value of the current tag. - - - - - The abstract base class for system defined tags such as and . - - - - - Gets the name of the current tag. - - - - - - Sets the name of the current tag. - - The new tag name. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets the value of the current tag. - - - - - The abstract base class for system tags that evaluate to a page number or count. - - - - - Represents the current page number system tag. - - - - - Returns the name of the current tag ("PageNo"). - - "PageNo". - - - - Represents the total page count system tag. - - - - - Returns the name of the current tag ("PageCount"). - - "PageCount". - - - - Represents the current horizontal page number system tag. - - - - - Returns the name of the current tag ("PageX"). - - "PageX". - - - - Represents the horizontal page count system tag. - - - - - Returns the name of the current tag ("PageXCount"). - - "PageXCount". - - - - Represents the current vertical page number system tag. - - - - - Returns the name of the current tag ("PageY"). - - "PageY". - - - - Represents the vertical page count system tag. - - - - - Returns the name of the current tag ("PageYCount"). - - "PageYCount". - - - - Represents a system tag that is replaced by the page number of a hyperlink target. - - - - - Returns the name of the current tag ("HyperlinkPageNo"). - - "HyperlinkPageNo". - - - - The abstract base class for system tags that return - data from . - - - - - Represents a system tag returning the date and time when the document was last generated. - - - - - Returns the name of the current tag ("GeneratedDateTime"). - - "GeneratedDateTime". - - - - Represents a system tag returning the date and time when the document was last printed. - - - - - Returns the name of the current tag ("PrintedDateTime"). - - "PrintedDateTime". - - - - Represents a system tag returning the file name last used to save or load the document. - - - - - Returns the name of the current tag ("LastFileName"). - - "LastFileName". - - - - Represents a system tag returning the name of the printer last used to print the document. - - - - - Returns the name of the current tag ("LastPrinterName"). - - "LastPrinterName". - - - - Represents a user-defined tag. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name and value. - - The name of the tag. - The value of the tag. - - - - Initializes a new instance of the class with the specified name. - - The name of the tag. - - - - Initializes a new instance of the class with the specified name, value and type. - - The name of the tag. - The value of the tag. - The type of the tag. - - - - Sets the name of the current tag. - - The new tag name. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets a value indicating whether the of the current tag - should be serialized. The default is true. - - - - - Gets or sets a value indicating whether to show the current tag and - allow the user to edit its in the tags input dialog. - The default is true. - - - - - Gets or sets a value indicating whether the - property contains a string with a script expression - which must be evaluated when the tag is rendered. - - - - - Gets or sets the description of the tag. - If not empty, used as the label in the tag input dialog. - (If Description is empty, is shown in the input dialog instead.) - - - - - Gets or sets the current tag type. - - - - - Gets or sets the current tag value. - - - - - Gets or sets a object that is used by the tag input dialog - to customize the editor for the current tag. By default, this property is null. - - - The class is abstract, the following types derived from it - can be used, depending on the current tag's type: - - - Used to customize input of a string value. - - Used to customize input of a value. - - Allows to use a or for input of the tag's value. - - Allows to input a Boolean value using a check box. - - Used to customize input of a numeric value. - - - - - - Converts objects to/from other types. - - - - - Tests whether this converter can convert the object to the specified type. - - An ITypeDescriptorContext that provides a format context. - The target type. - true if the conversion can be performed, false otherwise. - - - - Converts the given value object to the specified type. - - An ITypeDescriptorContext that provides a format context. - The culture into which will be converted. - The object to convert. - The target type. - An object representing the converted value. - - - - Converts values to/from other types. - - - - - Converts the given object to a object. - - An ITypeDescriptorContext that provides a format context. - The culture into which will be converted. - The object to convert. - An object representing the converted value. - - - - Represents a collection of objects. - - - - - Initializes a new instance of the class. - - - - - - Adds a object to the current collection. - - The object to add. - The index of the newly added object. - - - - Removes a object from the current collection. - - The object to remove. - - - - Finds the index of the object with the specified name in the collection. - - The name to search for. - The index of the found object. - - - - Gets or sets a in the current collection by its index. - - The index of the in the current collection. - The with the specified index. - - - - Gets a in the current collection by its . - - The name of the . - The with the specified name. - - - - The abstract base class for specialized classes used by the - tag input dialog to customize input of individual tags. - - - - - Initializes a new instance of the class. - - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Creates a copy of the current object. - - The newly created object. - - - - Represents customization parameters for input of string tag values. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The maximum length of the input string. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets the maximum length of the input string. - - - - - Represents customization parameters for input of tag values. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The minimum allowed date. - The maximum allowed date. - The format to use in the date/time picker. - The custom date/time format string. - - - - Initializes a new instance of the class. - - The format to use in the date/time picker. - The custom date/time format string. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets the custom date/time format string. - - - - - Gets or sets the minimum allowed date. - - - - - Gets or sets the maximum allowed date. - - - - - Gets or sets the format to use in the date/time picker. - - - - - Specifies the type of list for . - - - - - The is used for input. - - - - - The is used for input. - - - - - Represents customization parameters for input of tag values that can be selected from a list. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The type of list input to use. - The collection of list items. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets the type of list input to use. - - - - - Gets the value indicating whether the list contains any items. - - - - - Gets the collection of list items. - - - - - Represents a list item for . - - - - - Initializes a new instance of the class. - - The item name. - The item value. - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Returns the string representation of the current . - - The string representing the current item. - - - - Gets or sets the current item's value. - - - - - Represents a collection of list items for . - - - - - Initializes a new instance of the class. - - The collection owner. - - - - Adds an item to the current collection. - - The item to add. - The index of the newly added item. - - - - Removes an item from the current collection. - - The item to remove. - - - - Gets or set the item with the specified index. - - The index of the item. - The item with the specified index. - - - - Gets or set the item with the specified name. - - The name of the item. - The item with the specified name. - - - - Represents customization parameters for input of Booleand tag values. - - - - - Initializes a new instance of the class. - - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Represents customization parameters for input of numeric tag values. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The minimum allowed value. - The maximum allowed value. - Increment for the spin buttons. - Editor precision (decimal places). - - - - Copies the properties of the specified object to the current object. - - The source object to copy properties from. - - - - Gets or sets the minimum allowed value. - - - - - Gets or sets the maximum allowed value. - - - - - Gets or sets the increment for the spin buttons. - - - - - Gets or sets the editor precision (decimal places). - - - - - For internal use. - Specifies a referenced object in an expression in a . - - - - - The parent of the current object. - - - - - The next object at the same level as the current object. - - - - - The previous object at the same level as the current object. - - - - - The current object. - - - - - An object with the specified name. - - - - - The current page. - - - - - The current page column. - - - - - An object with the specified Id - (provided for backward compatibility only). - - - - - A page with the specifid index. - - - - - For internal use. - Enumerates the single-dimensional coordinates and sizes of an object. - - - - - The default dimension. - - - - - The left edge of an object. - - - - - The top edge of an object. - - - - - The right edge of an object. - - - - - The bottom edge of an object. - - - - - The width of an object. - - - - - The height of an object. - - - - - Enumerates units of measurement used in a , - used by and related types. - - - - - Units specified by a document's are used. - - - - - Specifies the document unit (1/300 inch) as the unit of measure. - - - - - Specifies the inch as the unit of measure. - - - - - Specifies the millimeter as the unit of measure. - - - - - Specifies the pica unit (1/6 inch) as the unit of measure. - - - - - Specifies a device pixel as the unit of measure. - - - - - Specifies a printer's point (1/72 inch) as the unit of measure. - - - - - Specifies a twip (1/1440 inch) as the unit of measure. - - - - - Specifies a hundredths of an inch as the unit of measure. - - - - - Specifies 1/75 inch as the unit of measure. - - - - - Specifies centimetre's as the unit of measure. - - - - - Measurement is relative to the height of the element's font. - - - - - Measurement is relative to the height of the lowercase letter x of the element's font. - - - - - Measurement is relative to the spacing between two lines of element's font. - - - - - For internal use. - The abstract base class representing a single coordinate or dimension of an object. - - - - - Initializes a new instance of the class. - - - - - Converts a string to a value. The string can be one of the following: - "def", "doc", "in", "mm", "pc", "pix", "pt", "tw", "inhs". - This method is case-insensitive. - - The string to convert. If it is null or empty, is returned. - OUT: On exit, contains the value. - true if no error occurred, false otherwise. - - - - Converts a value to a string representation as in - the following table: - - DefaultEmpty string - Document"doc" - Inch"in" - Millimeter"mm" - Pica"pc" - Pixel"pix" - Point"pt" - Twip"tw" - InHs"inhs" - - - A to convert. - The string representing . - - - - Converts a string to a value. - The string can be one of the following: - "left", "top", "right", "bottom", "width", "height". - This method is not case sensitive. - - The string to convert. If s is null or empty, is returned. - OUT: A corresponding to the specified string. - true if no error occurred, false otherwise. - - - - Parses a string and creates a instance from that string. - - The string to parse. - Indicates whether to throw an exception if the string cannot be parsed. - A instance. Depending on , - this may be a , a , a or a . - If is false, null is returned if an error occurred. - - - - Returns true if size or coordinate represented by this Unit object. - Depends on autosize. - - - - - Gets a value indicating whether the current object represents an auto length. - - - - - Gets a value indicating whether the current object represents a zero length. - - - - - Gets a value indicating whether the current object represents an absolute length. - - - - - Gets an instance of representing an auto length. - - - - - Converts to/from other types. - - - - - Converts a string to a . - - An that provides a format context. - The string to convert. - A representing . - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - For internal use. - Represents an automatic dimension or coordinate. - Only one instance of this type can be created, it can be accessed via . - The string "auto" can be used in expressions as an alias for this type. - - - - - Converts the current object to a string. - - "auto". - - - - For internal use. - Represents an absolute length value, such as "5mm", "10in", "20" and so on. - - - - - Initializes a new instance of the class - from a string representing the length value. - - The string used to initialize the value, such as "5mm" or "10in". - - - - Initializes a new instance of the class - from a value and unit of measurement. - - The length value. - Unit of measurement of . - - - - Compares the current length with another object. - This method performs comparison by value. - - The object to compare the current with. - true if the two objects repesent the same length, false otherwise. - - - - Gets the hash code for the current object, - based on the length value. - - The hash code. - - - - Converts the current object to a string. - The returned string can be converted back to the current length object - (e.g. it can be used to initialize a to the same value). - - The string representing the current length value. - - - - Compares the current object with another object. - - A object to compare the current one with. - The document providing the context for comparison. - The font providing the context for comparison. - 0 if the two objects represent equal lengths, - -1 if the current length is less than the other, - 1 if the current length is greater than the other, - -2 if the units of measurement cannot be compared. - - - - Gets the numeric value (expressed in ). - - - - - Gets the unit of measurement used by . - - - - - Contains predefined values. - - - - - Gets a instance representing an empty length - (defined as "0mm"). - - - - - Gets a instance representing the default line thickness - (equal to 1pt). - This is used for borders, grid lines etc. - - - - - Gets a instance representing the default bold line thickness - (equal to 2pt). - This is used for borders, grid lines etc. - - - - - Gets an array of predefined values - (, and ). - - - - - For internal use. - Represents a length value that references a coordinate or a dimension of another object. - - (Examples of such references are "parent.width", "MyObjectName.right", "prev.height" - or "MyObjectName.MySubObjectName.Width".) - - - - - - Initializes a new instance of the class - from a string representing the length reference. - - The string used to initialize the value, such as "parent.width" or "MyObject.right". - - - - - Initializes a new instance of the class - from an array of nested object references and a dimension. - - An array of referencing nested objects. - The target dimension of this LengthRef. - - - - Initializes a new instance of the class - from a nested object reference and a dimension. - - A identifying the referenced object. - The target dimension of this LengthRef. - - - - Initializes a new instance of the class - from a predefined source reference and a dimension. - - A identifying the referenced object. - The target dimension of this LengthRef. - - - - Compares the current length with another object. - This method performs comparison by value. - - The object to compare the current with. - true if the two objects repesent the same length, false otherwise. - - - - Gets the hash code for the current object, - based on the length value. - - The hash code. - - - - Converts the current object to a string. - The returned string can be converted back to the current length object - (e.g. it can be used to initialize a to the same value). - - The string representing the current length value. - - - - Gets the array of objects composing the path to the target object of the current reference length. - If the current reference - - - - If the current object uses a simple (not nested) reference such as "parent.width", - this array contains just one element, corresponding to the parent object. - - - If the current object uses a nested reference such as "parent.MyChildName.width", - this array contains a element for each object in the hierarchy - (one for parent, and one for MyChildName in this example). - - - - - - Gets the target dimension of the referenced object. - - - - - A structure representing a single referenced object in a - (if the LengthRef uses a hierarchical reference, each object in the hierarchy - of nested objects is represented by an instance of this structure). - - - - - Specifies the referenced object as a . - - - - - Specifies the name of the referenced object if is . - - - - - Specifies the page or column number if is - or . - - - - - Initializes a new instance of the structure - with the specified source. - - A identifying the source of the current reference. - - - - Initializes a new instance of the structure - with the specified source, source name and page/column number. - - A identifying the source of the current reference. - The source name - (used if is ). - The source page/column number - (used if is - or ). - - - - Initializes a new instance of the structure - with the specified source and page/column number. - - A identifying the source of the current reference. - The source page/column number - (used if is - or ). - - - - Initializes a new instance of the structure - with the specified source name. - - The source name - ( is set to by this constructor). - - - - Converts the current object to a string. - The returned string can be converted back to the current length object - (e.g. it can be used to initialize a to the same value). - - The string representing the current length value. - - - - Contains and provides access to a number of commonly used - predefined objects. - - - - - Gets a instance representing the "Parent.Left" reference. - - - - - Gets a instance representing the "Parent.Top" reference. - - - - - Gets a instance representing the "Parent.Width" reference. - - - - - Gets a instance representing the "Parent.Height" reference. - - - - - Gets a instance representing the "Prev.Right" reference. - - - - - Gets a instance representing the "Prev.Bottom" reference. - - - - - Gets a instance representing the "Prev.Height" reference. - - - - - Gets a instance representing the "Next.Height" reference. - - - - - Gets a instance representing the "Parent.Default" reference. - - - - - Gets a instance representing the "Self.Default" reference. - - - - - Gets a instance representing the "Parent.Right" reference. - - - - - Gets a instance representing the "Parent.Bottom" reference. - - - - - Gets a instance representing the "Self.Width" reference. - - - - - Gets a instance representing the "Self.Height" reference. - - - - - Gets a instance representing the the "Page.Width" reference. - - - - - Gets a instance representing the "Page.Height" reference. - - - - - Gets a collection of containing all lengths - defined by the class. - - - - - For internal use. - Represents a length value which is an expression comprising instances of - , , and operations on them - (represented by static properties of type, such as LengthExp.Add) . - - (Examples of such expressions are "parent.width + 5mm", "80%parent.width", and so on.) - - - - - - - - Initializes a new instance of the class - with an array of operands and operations in inverse Polish notation order. - - The operands and operations comprising the current , - in inverse Polish notation order. - - The array should be a valid inverse Polish notation - stack of operands and operations such as: - - - : represents an absolute length value; - - - : represents a coordinate or dimension of another object; - - - A built-in function: - - : maximum; - : minimum. - - - - An operation: - - : add; - : subtract; - : multiply; - : divide; - : percentage; - : unary minus; - : unary plus; - : bracket (opening or closing); - : empty argument. - - - - - - - - - Compares the current object with another stack of - operands and operations in inverse Polish notation - (see remarks in for details). - This method compares values of the two stacks. - - A inverse Polish notation stack of operands and operations that are compared to the current expression. - - - - Compares the current length expression with another object. - This method compares operation stacks of the two objects - using the method. - - The object to compare the current with. - true if the two objects repesent the same length, false otherwise. - - - - Gets the hash code for the current object, - based on the values in the length expression stack. - - The hash code. - - - - Converts the current object to a string. - The returned string can be converted back to the current length object - (e.g. it can be used to initialize a to the same value). - - The string representing the current length value. - - - - Gets the expression stack, as described in remarks - to . - - - - - Gets an array of all registered (supported) operators. - - - - - Gets an array of all registered (supported) unary operators. - - - - - Gets an array of all registered (supported) functions. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - Gets the static instance of the class, - can be used in the constructor. - - - - - For internal use. - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - - For internal use. - - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - - - For internal use. - - - - - - - - - For internal use. - - - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - Holds some predefined LengthExp objects. - - - - - Represents "Parent.Right - Self.Width" reference. - - - - - Represents "Parent.Bottom - Self.Height" reference. - - - - - Represents "(Parent.Width - Self.Width) / 2" reference. - - - - - Represents "(Parent.Height - Self.Height) / 2" reference. - - - - - Represents "Self.Width / 2" reference. - - - - - Represents "Self.Height / 2" reference. - - - - - For internal use. - - - - - A structure representing a single coordinate or dimension of an object - (e.g. or of a ) - in a . - - - - The value may be "auto", absolute (e.g. "5mm"), or an expression (e.g. "prev.width + 12mm"). - See for more details. - - - - - - - - Initializes a new instance of the structure - from a string. See remarks for details. - - A string representing the value. - - - (In the description that follows, "object" means a - or another document object on which the current Unit represents a dimension - or a coordinate, not the Unit structure itself.) - - - The string should contain a valid value - in one of the following forms: - - - Auto, represented by the string "auto". - The exact semantics depend on the type of object with which the current unit is associated. - - - - An unqualified numeric value, e.g. "8" or "100.12". - In this case determines the unit of measurement. - - - - A numeric value qualified with unit of measurement, e.g. "28mm" or "7in". - - The following unit type qualifiers are supported - (for each type, the corresponding element of the enumeration is listed): - - - def is used - (; this is equivalent to not specifying untis at all); - doc"Document" units (; 1/300th of an inch); - inInches (); - mmMillimeters (); - pcPicas (; 1/6 of an inch); - pixDevice pixels (; depend on ); - ptPoints (; 1/72 of a inch); - twTwips (; 1/1440 of a inch); - inhs1/100 of an inch (); - dsp"Display" units (; 1/75 of an inch); - cmCentimeters (); - em"Em size" (; object font's height); - ex"Ex size" (; object font lowercase x's height); - lsObject font's line spacing (). - - - - - A percentage of the object's parent size, optionally qualified with the parent's dimension - ("width" or "height"; if a dimension is not specified, the dimension the current unit referes to is assumed), - e.g. "50%width" or "120%". - (Percentage can only be used to specify width or height, and is not valid for coordinates.) - - - - A reference to a dimension or coordinate of another object, - e.g. "prev.width", "next.bottom" or "page1column2.width". - - The referenced object may be identified by any of the following key words: - - self - The current object. Default, may be omitted; - parent - The current object's parent (container); - prev - The previous sibling of the current object; - next - The next sibling of the current object; - page - The current page; - column - The current page column; - pageN - Page by number, N is 1-based - (e.g. "page8"; the page must already exist - forward references using this notation are not supported); - pageindexN - Page by index, N is 0-based - (e.g. "page0"); - columnM - Column by number, M is 1-based, on the current page (e.g. "column2"); - pageN.columnM - Column M on page N, M and N are 1-based (e.g. "page8.column2"); - object name - Object with the specified name (see ). - The object is first searched among the siblings of the current object, then among its children. - - - The referenced dimension or coordinate may be specified using any of the following key words: - - leftThe X coordinate of the left edge of an object; - topThe Y coordinate of the top edge of an object; - rightThe X coordinate of the right edge of an object; - bottomThe Y coordinate of the bottom edge of an object; - widthThe width of an object; - heightThe height of an object. - - - - - A Max or Min built-in function call, e.g. "Max(prev.width,6cm)" or "Min(0.5in,next.height)". - - - - An expression using operands in any of the forms described above (except "auto"), - combined using operators + (add), - (subtract), * (multiply), / (divide), % (percent), - functions Min and Max, and parentheses ( and ). - - Examples of unit expressions are: - - - prev.width + 50%prev.width - This expression can be used to specify the width of an object being 1.5 times the width of its previous sibling - - - 150%prev - Same as above - - - prev * 1.5 - Same as above but using multiplication instead of percentage - - - - - - - - - Initializes a new instance of the structure - with an absolute length value. - - The unit value. - The unit of measurement. - - - - For internal use. - - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - Returns a string that represents the current object. - - A string that represents the current object. - - - - Compares the current unit value with another object. - - The object to compare the current with. - true if the two objects repesent the same unit value, false otherwise. - - - - Gets the hash code for the current unit value. - - The hash code. - - - - Attempts to convert the current unit value to other unit of measurement. - Only absolute units can be converted. - This method throws an exception if the conversion cannot be performed. - - The target . - The value in units. - - - - Attempts to convert the current unit value to other unit of measurement. - Only absolute units can be converted. - This method throws an exception if the conversion cannot be performed. - - The target . - The target resolution (used if is ). - The value in units. - - - - Attempts to convert the current unit value to other unit of measurement. - Only absolute units can be converted. - This method throws an exception if the conversion cannot be performed. - - The current unit value's resolution (used if is ). - The target . - The target resolution (used if is ). - The value in units. - - - - Attempts to convert an object to a unit value. - This method throws an exception if the conversion cannot be performed. - - An object to convert. - A unit value representing . - - - - Tests whether the two unit values are equal. - - The first unit value. - The second unit value. - true if the two units are equal, false otherwise. - - - - Tests whether the two unit values are not equal. - - The first unit value. - The second unit value. - true if the two units are not equal, false otherwise. - - - - Returns the absolute value of a expressed in units. - Throws exception if the operation cannot be performed. - - The unit value to convert. - The absolute value. - - - - Converts a unit value to a string. - - The unit to convert. - The string representing the unit value. - - - - Converts a double value to a using units. - - The double value. - The unit value. - - - - Converts an integer value to a using units. - - The integer value. - The unit value. - - - - Converts a string to a value (see . - - The string to convert. - The unit value. - - - - For internal use. - - - - - - - Gets a value indicating whether the current unit represents an empty value. - - - - - Gets the absolute value of the current unit (in ). - - - - - Gets the unit of measurement of the current unit. - - - - - Gets a value indicating whether the current unit represents an "auto" value. - - - - - Gets a value indicating whether the current unit represents an absolute value - (such as "1mm", "2in", "3em" and so on). - - - - - Gets a value indicating whether the current unit is specified as "parent.width". - - - - - Gets a value indicating whether the current unit is specified as "parent.height". - - - - - Gets a value indicating whether the current unit is specified as "parent". - - - - - For internal use. - Gets the LengthBase object representing this unit. - - - - - Gets a representing an "auto" value. - - - - - Gets a representing an emtpy (zero) value. - - - - - Gets a value representing the default line thickness (1 point wide). - - - - - Gets a value representing the default "bold" line thickness (2 points wide). - - - - - Provides type conversions for values. - - - - - Converts a string to a object. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - Tests whether an object can be converted to the specified type. - - The conversion context. - The target type. - true if the conversion can be performed, false otherwise. - - - - Converts an object to the specified type. - - The conversion context. - The culture to use. - The value to convert. - The target type. - The converted object. - - - - Represents a point on a two-dimensional surface, - with coordinates specified as values. - - - - - Initializes a new instance of the structure. - - The X coordinate. - The Y coordinate. - - - - Converts the current value to a human-readable string. - - The string representing the current value. - - - - Converts a string to a structure. - - The string to convert. - OUT: The structure representing . - Indicates whether an exception should be thrown if the conversion cannot be performed - (if an error occurs, and this value is false, is set to ). - true if no error occurred, false otherwise. - - - - Gets or sets the X coordinate of the current point. - - - - - Gets or sets the Y coordinate of the current point. - - - - - Represents a with zero coordinates. - - - - - Provides type conversions for values. - - - - - Converts a string to a value. - - An that provides a format context. - The string to convert. - The converted value. - - - - Converts an object to a string. - - An that provides a format context. - The object to convert. - The converted string. - - - - Contains common functions. - - - Contains common functions. - - - - Millimeters per inch as double. - - - Document units per inch as double. - - - Points per inch as double. - - - Twips per inch as double. - - - Picas per inch as double. - - - Centimeters per inch as double. - - - Display units per inch as double. - - - Millimeters per inch as float. - - - Document units per inch as float. - - - Points per inch as float. - - - Twips per inch as float. - - - Picas per inch as float. - - - Centimeters per inch as float. - - - Display units per inch as float. - - - - The special NumberFormatInfo object used to convert numbers - in C1PrintDocument, its fields are initialized as: - NumberDecimalSeparator is "." - CurrencyDecimalSeparator is "." - - - - For internal use only. - - - For internal use only. - - - For internal use only. - - - - For internal use only. - Converts an array of colors to a string. - - The array to convert. - The ";"-delimited string representing the color array. - - - - For internal use only. - Converts a ";"-delimited string to an array of colors. - - The string to convert. - The array of converted colors, or null if s is null. - - - - For internal use only. - Converts an array of float values to a ","-delimited string. - - - - - - - For internal use only. - Converts the array of floats to string. - - Array to convert. - Specifies the delimiter between numbers in string (should not be a [.]). - Returns the string representing a float array. - - - - For internal use only. - - - - - - - For internal use only. - Converts a string to array of floats. - - String to process. - Specifies the delimiter between numbers in string (should not be a [.]). - Array of floats or null if s is null. - - - - For internal use only. - Compares two array of floats. - - First array of float values. - Second array of float values. - Returns true if arrays equals. - - - - Converts color to string, use this method instead of Color.Name. - - Color structure to convert. - An that provides a format context. - The string representing a color. - - - - Converts string to color, use this method instead of Color.FromName(), - because the Color.FromName() works incorrectly sometimes. - - String to convert. - An that provides a format context. - The color. - - - - Performs a case-sensitive search of a string in a string array. - - The string array to search. - The string to search for. - Index of in , or -1 if the string was not found. - - - - Converts a string to a 32-bit signed integer, - using as the format provider. - The return value indicates whether the operation succeeded. - - The string to convert. - OUT: on return, the converted 32-bit signed integer, or zero if conversion failed. - true if was converted successfully, false otherwise. - - - - Converts a string to a double-precision floating-point number, - using as the format provider. - The return value indicates whether the operation succeeded. - - The string to convert. - OUT: on return, the converted double-precision floating-point number, or zero if conversion failed. - true if was converted successfully, false otherwise. - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - - - - - - - For internal use only. - Rounds a float value to the nearest integer. - - The float value. - The rounded integer. - - - - For internal use only. - Rounds a double value to the nearest integer. - - The double value. - The rounded integer. - - - - Tests whether an object is a . - - The object to test. - true if the object is a , false otherwise. - - - - Gets the represending the passed object, - or null if is not a . - - A document to test/convert. - representing the passed object, or null. - - - - Tests whether the specified type is, or derived from, . - - The type to test. - true if the type is , - false otherwise. - - - - Converts a value from one unit of measurement to another. - - The value to convert. - The source unit of measurement. - The target unit of measurement. - The source DPI (used if is ). - The target DPI (used if is ). - converted to units. - - - - Used in: - C1TrueDBGrid\Style - - - - For internal use. - - - For internal use. - - - For internal use. - - - - Used in: - C1TrueDBGrid\GridBorder - - - - - No borders. - - - - - Borders have a Flat appearance. - - - - - Borders have a 3D raised appearance. - - - - - Borders have a 3D inset appearance. - - - - - A line around the inside of the border. - - - - - A fillet type border. - - - - - Borders have a 3D raised with a bevel. - - - - - Borders have a 3D inset with a bevel. - - - - - Used in: - C1TrueDBGrid\Style - - - - - Image is rendered in the near side of the cell. - - - - - Image is rendered in the far side of the cell. - - - - - Image is rendered to the left of any text in the cell. - - - - - Image is rendered to the right of any text in the cell. - - - - - Image is rendered on top of any text in the cell. - - - - - Image is rendered below any text in the cell. - - - - - Text is not displayed. - - - - - Image is not displayed. - - - - - Used in: - C1TrueDBGrid\Style - - - - - Text is aligned Near and numeric values Far - - - - - Text is aligned to the left. - - - - - Text is aligned centered. - - - - - Text is aligned to the right. - - - - - Text is aligned with respect to the cells boundries. - - - - - Used in: - C1TrueDBGrid\Style - - - - - Text is rendered at the top of the cell. - - - - - Text is rendered at the center of the cell. - - - - - Text is rendered at the bottom of the cell. - - - - - Used in: - C1TrueDBGrid\GridLines - - - - - No line. - - - - - Single line. - - - - - Double line. - - - - - Line with 3D raised appearance. - - - - - Line with 3D inset appearance. - - - - - Used in: - C1Schedule\PaletteType - - - - - Office 2007 palette includes back and border colors - of free and working hours and days, day headers, grid borders - and calendar tabs. - - - - - Office 2010 palette includes back and border colors - of free and working hours and days, day headers, grid borders - and calendar tabs. - - - - - Use no background gradient. - - - - - Use a gradient that matches the current system Visual Style. - - - - - Use a silver background gradient. - - - - - Use a blue background gradient. - - - - - Use a gold background gradient. - - - - - Use an olive background gradient. - - - - - Use the Vista-style background gradient. - - - - - No gradient. - - - - - Horizontal gradient (left to right). - - - - - Vertical gradient (top to bottom). - - - - - Diagonal gradient (left-top to right-bottom). - - - - - Diagonal gradient (left-bottom to right-top). - - - - - Radial gradient. - - - - - Image is vertically aligned at the top, - and horizontally aligned on the left. - - - - - Image is vertically aligned at the top, - and horizontally aligned at the center. - - - - - Image is vertically aligned at the top, - and horizontally aligned on the right. - - - - - Image is vertically aligned in the middle, - and horizontally aligned on the left. - - - - - Image is vertically aligned in the middle, - and horizontally aligned at the center. - - - - - Image is vertically aligned in the middle, - and horizontally aligned on the right. - - - - - Image is vertically aligned at the bottom, - and horizontally aligned on the left. - - - - - Image is vertically aligned at the bottom, - and horizontally aligned at the center. - - - - - Image is vertically aligned at the bottom, - and horizontally aligned on the right. - - - - - Use the image's original size, clipping it to the display area if necessary. - - - - - Stretch the image to fill the display area. - This mode will usually change the image's aspect ratio. - - - - - Scale the image to fit the display area. - This mode may increase or reduce the size of the image - while maintaining its aspect ratio. - - - - - Tile the image to fill the display area. - - - - - Tile the image into the 3x3 matrix and stretch it to fill the display area. - - - - - Tile the image into the row of 3 images and stretch it to fill the display area. - - - - - Tile the image into the column of 3 images and stretch it to fill the display area. - - - - - Hide the image. - - - - - Default value. - - - - - Near. - - - - - Far. - - - - - Center. - - - - - Spread. - - - - - Text is drawn in the horizontal direction, left to right. - - - - - Text is draw vertically, from the bottom up. - - - - - Text is draw vertically, from the top down. - - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - - Describes the image set used for toolbar images of the - preview actions. - - - - - Classic image set. - - - - - XP image set. - - - - - XP alternative image set. - - - - - XP second alternative image set. - - - - - Adobe image set. - - - - - Os X image set. - - - - - Original (C1Preview "classic") image set. - - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - For internal use. - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - For internal use. - - - - - Abstract base class for all classes representing a brush in a theme. - Use the method to get an actual matching GDI+ brush. - Classes derived from override Equals() and - GetHashCode() methods and compare objects by content rather than by references. - - - - - For internal use. - - - - - - For internal use. - - - - - - Assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Creates an exact copy of this . - - The this method creates. - - - - Returns a GDI+ brush matching the theme brush. - It is the caller's responsibility to dispose this brush when it is no longer needed. - - The brush rectangle (used for gradient brushes). - The GDI+ object. - - - - Returns true if a GDI+ brush created for this theme brush depends on the rectangle - passed to the method. E.g. gradient brushes return - true in this method while solid return false. - - True if the GDI+ brush depends on the application area, false otherwise. - - - - Encodes this object to string. - - String represengin this object. - - - - Checks whether the two objects are equal by value - (i.e. represent identically described theme brushes). - - First object. - Second object. - True if the two brushes are identical, or are both null. - - - - Create object from specified string. - - String representing object. - object created from string. - True if string was successfully parsed, false otherwise. - - - - Represents a solid theme brush. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Overridden, creates a GDI+ matching this object. - Can return null if color is not specified or transparent. - - Target application area for the brush (ignored). - A object. - - - - For internal use. - - - - - - For internal use. - - - - - - For internal use. - - - - - - - Gets or sets the color of this solid brush. - - - - - Abstract base class for gradient theme brushes. - - - - - For internal use. - - - - - - Abstract base class for linear gradient theme brushes. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Gets or sets a value indicating whether gamma correction is enabled, - same as LinearGradientBrush.GammaCorrection. - - - - - Gets or sets the angle, measured in degrees clockwise from the x-axis, - of the gradient's orientation line. - - - - - Represents a linear gradient brush based on the starting and ending colors, - and a object. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Overridden, creates a matching this object. - - The gradient rectangle. - A object. - - - - For internal use. - - - - - - For internal use. - - - - - - - Gets or sets the starting gradient color. - - - - - Gets or sets the ending gradient color. - - - - - Gets or sets the object. Can be null. - - - - - Represents a multicolor linear gradient brush. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Overridden, creates a matching this object. - - Gradient brush rectangle. - A object. - - - - For internal use. - - - - - - For internal use. - - - - - - - Gets or sets a that defines a multicolor linear gradient. - - - - - Abstract base class for radial gradient theme brushes. - - - - - For internal use. - - - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - For internal use. - - - - - - Gets or sets a structure that defines position - of center point. - (0,0) is the top-left corner, (100,100) is the bottom-right corner. - - - - - Represents a radial gradient brush based on center point, - surrounding color and a object. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Overridden, creates a matching this object. - - The gradient rectangle. - A object. - - - - For internal use. - - - - - - - For internal use. - - - - - - Gets or sets the color at the center of the radial gradient. - - - - - Gets or sets the surrounding color of the radial gradient. - - - - - Gets or sets the object. Can be null. - - - - - Represents a multicolor radial gradient brush. - - - - - Overridden, assigns (copies) properties from another to the current object. - - The source object to copy properties from. - - - - Overridden, creates a matching this object. - - The gradient rectangle. - A object. - - - - For internal use. - - - - - - - For internal use. - - - - - - Gets or sets a that defines this multicolor radiant gradient. - - - - - Gets or sets a brush object which is stored but not managed by this ThemeBrushHelper - - i.e. it will not be disposed when this ThemeBrushHelper is disposed, or a new brush is - assigned to it. - Note that while the 'get' accessor is provided for this property, there is no need to use it - - just use the method to get a usable GDI+ brush. - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - For internal use. - - - - - - - First public versions of C1Themes. - - - - - Version of theme XML when structure of BackgroundProp was changed. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Gets or sets the mask - - - - - Gets or sets a value indicating whether the underlying datasource should be updated with the literals in the mask. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Finds the specified type name. - - Name of the type. - - - - - Represents a handler for an item related event. - - - - - Provides data for an item related event. - - - - - Gets key of the item being added or changed. - - The key. - - - - Gets the string value. - - The value. - - - - Gets a value indicating whether this instance is default. - - - true if this instance is default; otherwise, false. - - - - - Gets the description. - - The description. - - - - Represents a collection of end user visible UI strings. - - - - - Adds a string to the collection, specifying the ordinal. - - The key of the string. - The ordinal of the string. - The string. - The description of the string. - - - - Adds a string to the collection in alphabetical order. - - The key of the string. - The string. - The description of the string. - - - - Adds a string to the collection, preserving the order. - - The key of the string. - The string. - The description of the string. - - - - Sets all strings in collection to their default values. - - - - - Indicates whether any of the strings in the current collection - have non-default values. - - true if any of the strings have non-default values, false otherwise. - - - - Tests whether a string in the collection has default value. - - The key of the string to test. - true if the string has default value, false otherwise. - - - - Returns the description of a string. - - The key of the string to get the description of. - The string's description - - - - Resets a string to its default value. - - The key of the string to reset. - - - - For internal use. - - - - - - - For internal use. - - - - - - - Returns the key of an item with the specified index. - - The item index. - The item's key. - - - - Gets the string by its index. - - The string index. - The string. - - - - Sets the value of a string with the specified index. - - The string index. - The new string value. - - - - For internal use. - - - - - - For internal use. - - - - - - Fires the event. - - The event data. - - - - Fires the event. - - The event data. - - - - Fires the event. - - The event data. - - - - Gets or sets the string value for the specified key. - - The key of the string. - The string corresponding to the specified key. - - - - Used for serialization of strings. - - - - - Gets or sets the description shown in Properties window in the IDE. - - - - - Gets the number of elements contained in the collection. - - - - - For internal use. - - - - - For internal use. - - - - - Occurs when a new item is added to the collection. - - - - - Occurs when an item in the collection is changed. - - - - - Occurs when the collection has been changed. - - - - - Provides type conversion for the type. - - - - - For internal use. - - - - - - - - - - For internal use. - - - - - - - - - For internal use. - - - - - - - For internal use. - - - - - For internal use. - - - - - - - - For internal use. - - - - - - - For internal use. - - - - - - For internal use. - - - - - - - For internal use. - - - - - - - For internal use. - - - - - - - For internal use. - - - - - For internal use. - - - - - A helper class for implementing an ambient property on a control. - - - Usage: - An instance of AmbientPropertyMonitor must be created by the host control with the reference - to that host as the parameter. - The AmbientPropertyMonitor subscribes to the following events: - - ParentChanged on the host and the whole parents' chain; - - (ambient property name)Changed or INotifyPropertyChanged on the host and all parents in the chain. - NOTE: For the AmbientPropertyMonitor to work correctly, all controls that have the target property declared - must also provide either a property changed event, or implement INotifyPropertyChanged and fire - it at appropriate moments. - - - The AmbientPropertyMonitor monitors changes of the ambient property value on the host and all parents, - and if a change occurs applies the value of the ambient property on the closest parent - to that property on the host control, unless it has been changed independently of the AmbientPropertyMonitor - (AmbientPropertyMonitor assumes that when it is created, the ambient property on the host has default, - unchanged value). - - It is recommended that all controls declaring the target property also provide - the Reset(property) and ShouldSerialize(property) methods, calling the - and methods as needed. - - - - - - The target property name. - - - - - At all times, should contain the up-to-date parent chain, - starting with the host itself. Needed to keep track of - parent changes, and changes of ambient property on the parents. - - - - - Prevents raising the _propertySetByUser while we adjust the - property ourselves. - - - - - If true, we consider the property to have a value explicitly set - ty the user, so we do not update it anymore until reset. - - - - - Initializes a new instance of the AmbientPropertyMonitor class. - - Control on which the ambient property will be monitored. - The name of the monitored property. - The type of the property MUST be an enumeration. - - An instance of this class must be created in the constructor - of the host control. - It is assumed that the value of the ambient property that will be monitored - by the AmbientPropertyMonitor has not been set yet (i.e. has the default value) - at the time the AmbientPropertyMonitor is constructed. - - - - - Clears the all references. - - - Call Dispose() in the Dispose method - of the host control. - - An instance of the AmbientPropertyMonitor class holds references to the - host in private variables and event handles. - Host holds reference to the instance of the AmbientPropertyMonitor. - - If not to clear the refs then the host control and the all referenced objects (Form, etc.) may be never released to GC. - This cause a memory leak. - - - public class C1OutBar... - { - public C1OutBar() - { - ... - _ambientVisualStyleMonitor = new AmbientPropertyMonitor(this, "VisualStyle"); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - // To prevent the memory leak - if (_ambientVisualStyleMonitor != null) - { - _ambientVisualStyleMonitor.Dispose(); - _ambientVisualStyleMonitor = null; - } - ... - base.Dispose(disposing); - } - ... - } - - - - - Notifies the AmbientPropertyMonitor that the value of the monitored property - has been reset. If the host control is currently parented to a container - which itself defines the monitored property, the value from that parent - is assigned to the property on the host. - - - It is recommended that the host defines a Reset method for the target - property, and calls this method from that. E.g.: - - private AmbientPropertyMonitor __ambientVisualStyleMonitor = null; - ... - ctor() { - __ambientVisualStyleMonitor = new AmbientPropertyMonitor(this, "VisualStyle"); - ... - } - public VisualStyle VisualStyle { - get { ... } - set { ... } - } - protected void ResetVisualStyle() { - ... - __ambientVisualStyleMonitor.ResetValue(); - } - - - - - - Gets the value indicating whether the monitored property - currently has the ambient value, i.e. the value has been set - (by the AmbientPropertyMonitor) based on the value of a parent of the host. - - - It is recommended that the host defines a ShouldSerialize method for the target - property, tests IsValueAmbient in that method, and returns false if IsValueAmbient - returns true. E.g.: - - private AmbientPropertyMonitor __ambientVisualStyleMonitor = null; - ... - ctor() { - __ambientVisualStyleMonitor = new AmbientPropertyMonitor(this, "VisualStyle"); - ... - } - public VisualStyle VisualStyle { - get { ... } - set { ... } - } - protected bool ShouldSerializeVisualStyle() { - if (__ambientVisualStyleMonitor.IsValueAmbient) - return false; - ... - } - - - - - - Gets file-association string from the registry. - - Use constants. - Use constants. - - - - - An success/error code. - - To get associated exe's length/exe: - - uint assocLen = 0; - AssocQueryString(ASSOCF.ASSOCF_INIT_DEFAULTTOSTAR,ASSOCSTR.ASSOCSTR_EXECUTABLE,Path.GetExtension(OutputFileName),"open",null,ref assocLen); - - For existing files, another option is FindExecutable. - - - - - Fiels of DEVMODE structure. - - - - - GetDeviceCaps() constants - - - - - Sorting IDs. - - - - - Primary language IDs. - - - - - Sublanguage IDs. - - The name immediately following SUBLANG_ dictates which primary - language ID that sublanguage ID can be combined with to form a - valid language ID. - - - - - Locale Types. - - - - - usage: - using (FixFpu ff = new FixFpu()) - { do printer stuff } - or - do printer stuff - FixFpu.Doit(); - - - - A field type invalid or not found. - - - - System Menu Command Values - - - - - SetWindowPos flags. - - - - - Flags for ChangeDisplaySettings() function. - - - - - Return values of the ChangeDisplaySettings() function. - - - - - Windows messages. - - - - - EditControl window messages. - - - - - WM_HSCROLL and WM_VSCROLL notifications codes. - - - - - BM_GETSTATE flags. - - - - - BM_XXX flags. - - - - - DRAWITEMSTRUCT control types. - - - - - DRAWITEMSTRUCT drawing actions. - - - - - DRAWITEMSTRUCT visual states. - - - - - ComponentOne constants. - - - - - Specifies a raster-operation code, used by BitBlt function and other. - - - - - ShowWindow() function codes. - - - - - WM_PRINT drawing options. - - - - - Rich edit data format types. - - - - - Rich edit data format replacement options. - - - - - EM_SETCHARFORMAT / EM_GETCHARFORMAT flags. - - - - - CHARFORMAT mask values. - - - - - CHARFORMAT effects. - - - - - EM_SETTYPOGRAPHYOPTIONS flags. - - - - - Text Alignment Options. - - - - - GetDCEx() flags. - - - - - GetWindow() Constants. - - - - - GetAncestor() constants. - - - - - ExtTextOut() flags. - - - - - SetBkMode modes. - - - - - GetObjectType() returning values. - - - - - TEXTMETRIC tmPitchAndFamily flags. - - - - - OLE constants. - - - - - CreateWindow() flags. - - - - - Extended Window Styles - - - - - CreateWindow() flags for edit controls. - - - - - DrawFrameControl(), type of frame control to draw. - - - - - DrawFrameControl(), state of control. - - - - - CreatePen() flags - - - - - SetWindowLong() flags. - - - - - GetGuiResources() flags. - - - - - ExtSelectClipRgn() flags. - - - - - ScrollWindowEx flags - - - - - WM_MOUSEACTIVATE Return Codes - - - - - Constants for SetROP2 - - - - - Defines ASSOCF values for AssocQueryString method's first parameter (flags). - - - - - Defines ASSOCSTR values for AssocQueryString method's second parameter (str). - - - - - Name of Atom create by GDI+ for current thread. - - - - - Gets true if GDI+ currently shutdown. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Provides static methods that - should be called from the constructors of licensed classes. - Also provides a static method that can - be called to show the about box with product and licensing information. - - - - - Perform license validation. Call this method from the licensed object's - constructor to save a license key at design time, validate it at runtime, - and display a nag dialog if a valid license is not found. - - Type of licensed object (use typeof() and not GetType()). - Reference to the licensed object (not currently used). - A object that contains information about the license. - - Check the ShouldNag property of the returned - to determine whether the licensed class should nag the user. This value is set - to true in situations where a valid license was not found but a nag dialog - could not be displayed. In these cases, the licensed class is supposed to nag - in some other way (with a watermark for example). - - - - - Perform license validation. Call this method from the licensed object's - constructor to save a license key at design time, validate it at runtime, - and display a nag dialog if a valid license is not found. - - Type of licensed object (use typeof() and not GetType()). - Reference to the licensed object (not currently used). - Whether the nag dialog should be displayed when a valid license is not found. - A object that contains information about the license. - - This overload was created for use in WPF. It should be called in the control's constructor - in order to support license persistence correctly. But it should not show the nag dialog until the - control is fully loaded, or the VS designer may remain blank. - So the solution is this: - - LicenseInfo _licInfo; - public LicensedControl() - { - // check license but don't nag yet - _licInfo = ProviderInfo.Validate(typeof(LicensedControl), this, false); - - // perform licensing after control is fully loaded - Loaded += LicensedControl_Loaded; - } - void LicensedControl_Loaded(object sender, RoutedEventArgs e) - { - // nag after loading - if (_licInfo.ShouldNag) - { - ProviderInfo.ShowAboutBox(this); - } - } - - - - - - Nag user by showing AboutBox with license information. - Show it only once per day per assembly. - - Type of licensed object (use typeof() and not GetType()). - object that contains information about the license. - Whether we're running at design or run time. - - - - Version of Validate used by constructors that take runtime keys. - - Type of licensed object (use typeof() and not GetType()). - Reference to the licensed object. - Assembly that contains the owner licensed control. - Any valid C1 runtime key. - A with information about the runtime key. - - This allows a licensed C1 class to create other C1 objects bypassing - license verification for the child objects. - For extra safety, we check that the owner object is defined in an assembly - the contains a 'C1ProductInfo' attribute. - - - - - Design time validation. Looks for a license in the registry and saves it in the - provided . - - Type of licensed object (use typeof() and not GetType()). - where the runtime key will be stored. - A with information about the license. - - Call this method from application-type products (that always require a license to be - installed in the registry). In this case, the parameter - should be set to null. - - - - - Runtime validation. - Looks for a runtime key stored in the current application's resources. - - Type of licensed object (use typeof() and not GetType()). - where the runtime key will be stored. - A with information about the license. - - - - Shows the About Box for an instance of a C1 product. - - - - - Get the type whose assembly contains a 'C1ProductInfoAttribute'. - - Instance of an object whose type is to be checked. - The type whose assembly contains a 'C1ProductInfoAttribute' - - - - Contains information about a license stored in an application. - - - - - Initializes a new instance of a class. - - - - - Initializes a new instance of a class. - - - - - Gets or sets the status of this license (valid, expired, unlicensed). - - - - - Gets or sets the associated with this license. - - - - - Gets or sets the associated with this license. - - - - - Gets the number of evaluation days elapsed. - Returns -1 for valid licenses. - - - - - Gets the number of evaluation days still left. - - - - - Gets or sets a value that determines whether the caller should - nag the user. This is the case when the component/control is - not licensed, but is not running in interactive mode. So we can't - show a dialog and the caller is supposed to nag some other way - (typically by adding watermarks to the UI or output). - - - - - Gets a value that determines whether the license found is valid. - - - - - Gets a value that determines whether the license found is expired. - - - - - Gets a value that determines whether the component is running under - localhost and therefore should not nag the user with alert dialogs. - - - - - - Provides a version of GetSavedLicenseKey that doesn't require - special permissions. - - The code was mostly copied from the .NET framework, but then changed - in a few places to require fewer permissions (assembly name, file io, - etc). - - The main change is the use of a custom deserializer to read Hashtable - objects instead of the original BinaryFormatter, which requires - permissions. - - - - - - Attribute used to specify the product name shown on the About Box. - - - - - Attribute used to attach licensing/product information to assemblies. - - - - - C1DescriptionAttribute replaces the DescriptionAttribute - and uses the C1Localizer class to return the localized Attribute string - - - - - C1CategoryAttribute replaces the CategoryAttribute - and uses the C1Localizer class to return the localized Attribute string - - - - - Localization tables and methods for looking up localized strings. - - - - - Represents a license for a product (e.g. C1BarCode, C1Studio Enterprise). - - Provides methods for: - - generating new license keys (administrative task) - - checking license key validity (used by installer and products) - - generating and checking runtime keys (used by products) - - installing/uninstalling licenses (used by installer) - - The install/uninstall code requires elevated permissions, and is - used only by setups and utilities (not by controls). The code is - implemented in the ProductLicense.Installer.cs, which controls should - not include since it won't be useful to them. - - When a product is sold, we send the user a license KEY. The user installs - a license on his machine by providing his name, his company name, and the - key. - - The is a string in the following format: - - AAQYYCC-XX-NNNNNN-DD-DZZZZZZ - - Where: - - AA: Product code (should match one of the products in the - product catalog (see ProductInformation.GetProductCatalog()). - Q: Quarter when the license key was issued (1, 2, or 3) - YY: Year when the license key was issued (e.g., 10 for 2010) - CC: Order code, two chars that indicate whether this is a - new sale, upgrade, renewal, special offer, etc. - XX: Hash code to ensure key validity. - NNNNNN: Unique serial number. - DDD: Vendor code, three chars - ZZZZZZ: Combination of random numbers for uniqueness and extra hash. - - - - - - C1CryptStream - reads and decrypts data from an encrypted zip base stream, or - encrypts and writes data to an encrypted zip base stream - - - - - Calculates a checksum value for the entry and compares it to the checksum that - was stored when the entry was created. - - True if the checksum values match, false otherwise. - - This method is used to check the integrity of the entries in the zip file. If the - calculated checksum does not match the stored checksum, then either the zip file is - corrupted or the program used to create the zip file is incompatible with - C1Zip. - - - - - Checks whether this can be read with the currently set password. - - True if the entry can be read with the current password, or if the entry is not - encrypted. - - This method is more efficient than using a try/catch block and trying to open the entry - to determine whether the current password is valid for the entry. - - - - - Returns a that can be used to read the content of the entry without - extracting it to a disk file. - - A that can be used to read the data in the entry. - - The returned is a , which - decompresses the data as it is read from the entry. - - - - - Extracts this entry to a file. - - Name and location of the extracted file. - - - - Removes this entry from the zip file. - - - - - Gets the entry name. This is usually a file name, optionally including a path. - - - - - Gets the original (uncompressed) size of the entry, in bytes. - - - - - Gets the compressed size of the entry, in bytes. - - - - - Gets the original (uncompressed) size of the entry, in bytes, as a long integer. - - - - - Gets the compressed size of the entry, in bytes, as a long integer. - - - - - Gets the checksum calculated when the entry was compressed. - - - This value can be used to check the integrity of the entry when it is decompressed. - - - - - Gets the date and time when the file used to create the entry was last modified. - - - This value can be used to check whether an entry needs to be updated because the - source file was modified since it was last compressed. - - - - - Gets or sets a comment associated with the entry. - - - - - Gets the file attributes associated with the entry. - - - - - Gets a value that determines whether the entry is encrypted. - - - Encrypted entries can only be extracted if the property - on the containing object is set to the password that was used - when the file was added to the zip file. - - - - - Determines whether the collection contains an entry with a given name. - - Name of the entry to look for. - True if the collection contains an entry with the given name, false otherwise. - - - - Determines whether the collection contains an entry. - - Entry of the entry to look for. - True if the collection contains the entry, false otherwise. - - - - Gets the index of the entry with the specified name. - - Name of the entry to look for. - The index of the entry in the collection, or -1 if the entry was not found. - - - - Gets the index of an entry in the collection. - - to look for. - The index of the entry in the collection, or -1 if the entry was not found. - - - - Adds an entry to the current zip file. - - Name of the file to add to the zip file. - - By default, the directory name is not stored in the zip file. To store a specific - part of the directory name in the zip file, use the overloaded version of the - Add method with a pathLevels parameter. - - - - - Adds a list of entries to the current zip file. - - Array containing the file names of the entries to be added to the zip file. - - - - Adds an entry to the current zip file. - - Name of the file to add to the zip file. - The number of path levels to be stored as the entry name. - - By default, path names are not stored in the zip file. For example, adding - the file "c:\temp\samples\readme.txt" to the zip file will create an entry called - "readme.txt". - The parameter allows you to store one or more levels of the path in the entry name. - For example, adding the file "c:\temp\samples\readme.txt" to the zip file with =1 - will create an entry called "samples\readme.txt". - - - - - Adds an entry to the current zip file. - - Name of the file to add to the zip file. - Name of the new entry as stored in the zip file. - - By default, entries in the zip file have the same name as the original (uncompressed) - file. This method allows you to specify a different name, including a path for example. - - - - - Adds an entry to the current zip file. - - Name of the file to add to the zip file. - The date and time when the file was last modified. - Name of the new entry as stored in the zip file. - - By default, entries in the zip file have the same name as the original (uncompressed) - file. This method allows you to specify a different name, including a path for example. - - - - - Adds a stream to the current zip file. - - Stream that contains data for the new entry. - Name to be used for the new entry. - - - - Adds a stream to the current zip file. - - Stream that contains data for the new entry. - Name to be used for the new entry. - The date and time when the file was last modified. - - - - Adds the content of a folder to the current zip file. - - The full path of the folder to be added to the zip file. - - This method adds all files and sub folders to the zip file. - - - - - Adds the content of a folder to the current zip file. - - The full path of the folder to be added to the zip file. - A mask that specifies which files to add. - - If the folder contains sub folders, those are also added to the zip file. - - - - - Adds the content of a folder to the current zip file. - - The full path of the folder to be added to the zip file. - A mask that specifies which files to add. - True to include sub folders, false to include only files at the root level. - - - - Extracts the contents of the zip file into a specified path. - - Destination path for the unzipped files. - - If the zip file contains compressed folders, new folders will be created - under the destination path to preserve the hierarchical structure of the - archive. - - - - - Removes an entry from the current zip file. - - Index of the entry to remove. - - - - Removes an entry from the current zip file. - - Name of the entry to remove (case-insensitive). - - - - Removes several entries from the current zip file. - - Array containing the indices of the entries to remove. - - - - Removes several entries from the current zip file. - - Array containing the names of the entries to remove. - - - - Extracts a file from the current zip file. - - Index of the entry to extract. - Name and location of the extracted file. - - - - Extracts a file from the current zip file. - - Name of the entry to extract. - Name and location of the extracted file. - - - - Extracts a file from the current zip file. - - Index of the entry to extract. - - The entry is extracted to a file in the same folder as the current zip - file, with the same name as the entry. - - - - - Extracts a file from the current zip file. - - Name of the entry to extract. - - The entry is extracted to a file in the same folder as the current zip - file, with the same name as the entry. - - - - - Opens a stream for writing an entry into the zip file. - - The name of the new entry. - Whether to use a memory stream or temporary file. - - A stream that can be used to write data into the zip file. The entry - is not added until the stream is closed. - - - - - Opens a stream for writing an entry into the zip file. - - The name of the new entry. - The date and time when the file was last modified. - Whether to use a memory stream or temporary file. - - A stream that can be used to write data into the zip file. The entry - is not added until the stream is closed. - - - - - Gets the number of entries in the current zip file. - - - - - Gets the at the specified index. - - - - - Gets the with the given name (returns null if the entry cannot be found). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class and creates or opens - a zip file associated with this new instance. - - The name of the zip file to open or create. - True to create a new zip file, false to open an existing file. - - If is true and the zip file already exists, it is overwritten - with a new empty file. - If is false and the zip file already exists, the existing file - is opened. - - - - - Initializes a new instance of the class and opens a zip file associated - with this new instance. - - The name of the zip file to open. - - If the file does not exist, a new empty file is created. - - - - - Initializes a new instance of the class and opens a zip stream associated - with this new instance. - - that contains the zip data. - Whether to initialize the stream with an empty zip header or open an existing - zip file in the stream. - - - - Initializes a new instance of the class and opens a zip stream associated - with this new instance. - - that contains the zip data. - - - - Opens an existing zip file. - - The name of an existing zip file, including the path. - - This method checks that the zip file exists and is a valid zip file, then - reads the zip file directory into the collection. - The zip file is then closed, and can be used by other applications. There is no - need to close the zip file explicitly. - - - - - Creates an empty zip file on disk. - - The name of the zip file to create, including the path. - - If a file by the same name already exists, it is deleted before the new one - is created. - - - - - Opens an existing zip file stored in a stream. - - that contains a zip file. - - This method allows you to open and work with a zip file stored in a stream - instead of in an actual file. - Typical usage scenarios for this are zip files stored as application resources - or in binary database fields. - - - The example below loads information from a zip file stored in an embedded resource. - To embed a zip file in an application, follow these steps: - 1) Right-click the project node in Visual Studio, select the Add | Add Existing Item... menu option. - 2) Select a zip file to add to the project as an embedded resource. - 3) Select the newly added file and make sure the Build Action property is set to "Embedded Resource". - - // get Stream from application resources - System.Reflection.Assembly a = this.GetType().Assembly; - using (Stream stream = a.GetManifestResourceStream("MyApp.test.zip")) - { - // open C1ZipFile on the stream - zip.Open(stream); - - // enumerate the entries in the zip file, - foreach (C1ZipEntry ze in zip.Entries) - { - // show entries that have a 'txt' extension. - if (ze.FileName.ToLower().EndsWith(".txt")) - { - using (var sr = new StreamReader(ze.OpenReader())) - { - MessageBox.Show(sr.ReadToEnd(), ze.FileName); - } - } - } - } - - - - - - Creates a new zip file in a stream. - - that will contain the new zip file. - - The code below creates a new on a memory stream, then adds - several files to it. Finally, the code gets the zipped data out as an array of bytes, - which could be stored in a database for example. - - // create zip on a stream - MemoryStream msZip = new MemoryStream(); - C1ZipFile zip = new C1ZipFile(msZip, true); - - // add some entries to it - foreach (string f in Directory.GetFiles(@"c:\WINDOWS\Web\Wallpaper")) - { - zip.Entries.Add(f); - } - - // get zipped data out as a byte array - byte[] zipData = msZip.ToArray(); - - - - - - Resets all data members of the object. - - - Disk files are automatically closed by C1Zip. You only need to use this - method if you want to break the connection between a class - and a physical zip file. - - - - - Refreshes all data members by re-opening the current zip file. - - - This method is useful in instances where other applications may have changed - the zip file and you want to make sure the information in the - collection is up to date. - - - - - Tests whether a file is a valid zip file. - - Name of the file to test. - True if the file exists and is a valid zip file, false otherwise. - - - - Tests whether a stream contains a valid zip file. - - to test. - True if contains a valid zip file, false otherwise. - - - - Opens the zip file for multiple operations. - - - By default, opens and closes the zip file - automatically whenever entries are added or removed. - This can cause delays in systems that have certain types of anti-virus - software installed, or in situations where you want to add a large number of - relatively small entries. In these cases, use the and - methods to keep the zip file open until the entire - operation is concluded. - Use a finally clause to ensure that the - method is called even if an exception occurs. - - - The code below opens a zip file, adds several entries to it, then closes - the file: - - C1ZipFile zip = new C1ZipFile(); - zip.Open(myzipfile); - try - { - zip.OpenBatch(); - foreach (string fileName in Directory.GetFiles(path, "*.*")) - zip.Entries.Add(fileName); - } - finally - { - zip.CloseBatch(); - } - - - - - - Closes a zip file after it was opened with a call to the - method. - - - See the method for a complete description - and a sample. - - - - - Gets the name of the current zip file. - - - - - Gets or sets the password to use when adding or retrieving entries from the - zip file. - - - If the property is set to a non-empty string, any entries - added to the zip file will be encrypted and protected by the password. To extract these - entries later, the same password must be used. - The password applies to all entries from the moment it is set. If you set the - password to a non-empty string and then add several entries to the zip file, all - entries will use the same password. - Although C1Zip supports Unicode characters in passwords, several popular zip - utilities do not. To ensure your encrypted zip files can be opened with third-party - utilities, use passwords that consist of ASCII characters only. - - - - - Gets or sets a comment associated with the current zip file. - - - - - Gets or sets the compression level to use when adding entries to the zip file. - - - Higher compression settings create smaller files, but take longer to process. The - default setting () provides - a good trade-off between compression and speed. - - - - - Gets a that contains the entries in the zip file. - - - The collection is used to enumerate the entries in the zip file, - and also to add, remove, and expand entries. - - - - - Determines whether the component should overwrite read-only files when extracting - entries from the zip file. - - - - - Determines whether the component should overwrite hidden files when extracting - entries from the zip file. - - - - - Determines whether the component should overwrite system files when extracting - entries from the zip file. - - - - - Gets or sets the size of the largest stream to be compressed in memory. - - - compresses entries into temporary streams before - adding them to the zip file. - Entries with fewer than bytes are compressed - using a temporary memory stream. - Entries with more than bytes are compressed - using a temporary file. You can control the location of the temporary file using - the property. - - - - - Gets or sets the name of the temporary file to use when adding entries to the zip file. - - - creates temporary streams while adding entries to a zip file. - These temporary streams can be memory-based or disk-based, depending on the size of the - entry and on the setting of the property. - If a temporary file is used, you can control its location by - setting the property. If you don't select a path for the - temporary file, will create one automatically using the - method. - - - - - Encoding used for entry names and comments - - NOTE: this is culture-dependent, which is a really bad idea, but most zip packers - use the default OEM code page to encode file names, so we have to go along with it... - - Note that Encoding.Default seems like a logical choice but doesn't really work for - international locales. Instead, we need to create an encoding using the current - OEMCodePage. That allows accents and international characters to be used in file - names (like the zip built into Windows, allows names such as "Åland.txt", "Äiti.txt", - "Würth.txt", etc.). - - This has nothing to do with compression, it's just used to encode and decode entry - names and comments. - - - - - Exception thrown when trying to open an invalid Zip file. - - - - - Initializes a new instance of a . - - Message that describes the exception. - - - - Initializes a new instance of a . - - Message that describes the exception. - Name of the file that caused the exception. - - - - Initializes a new instance of a . - - Message that describes the exception. - Name of the file that caused the exception. - Inner exception. - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - Specifies whether the compressed stream was created in zip format. - Specifies the number of compressed bytes to read from the stream. - - The parameter is needed only when a single stream contains - several compressed streams (in zip files for example). If this parameter is not - specified, it is assumed that the stream contains a single stream of compressed data. - - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - Specifies whether the compressed stream was created in zip format. - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - Specifies whether the compressed stream contains header information (should be False for streams in zip files). - Specifies whether the compressed stream contains a CRC32 checksum (should be True for streams in zip files). - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - Specifies whether the compressed stream was created in zip format. - Specifies the number of compressed bytes to read from the stream. - Specifies the method that was used to compress the stream. - - - - Initializes a new instance of the class. - - Input stream that contains the compressed data. - Specifies whether the compressed stream was created in zip format. - Specifies the number of compressed bytes to read from the stream. - Specifies the method that was used to compress the stream. - - - - Not supported. - - - - - Sets the number of compressed bytes to read from the underlying stream. - - - - - Reads a sequence of bytes from the underlying compressed stream, decompressing them into - a buffer, then advances the position within the stream by the number of bytes read. - - An array of bytes. When this method returns, contains the specified byte array with the values between and ( + ) replaced by the uncompressed data read from the stream. - The zero-based byte offset in at which to begin storing the data read from the current stream. - The maximum number of (decompressed) bytes to be read from the current stream. - The total number of bytes read into the buffer. This may be less than the number of bytes - requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - - - - This method is overridden and is not supported by the class. - - - - - Clears all buffers for this stream and causes any buffered data to be written to the underlying - stream. - - - - - Closes the current stream compressor and flushed any pending data into the base stream. - If the property is set to True (the default value), - then this method also closes the base stream and releases any resources (such as sockets - and file handles) associated with it. - - - - - Reads a byte from the stream and advances the position within the stream - by one byte, or returns -1 if at the end of the stream. - - The unsigned byte cast to an , or -1 if at - the end of the stream. - - - - - Gets the underlying stream that contains the compressed data. - - - - - Gets or sets whether calling the method will also - close the underlying stream (see ). - - - - - Gets the number of bytes in the stream (compressed bytes). - - - - - Gets the number of bytes that were compressed into the stream (uncompressed bytes). - - - - - Gets the number of bytes in the stream (compressed bytes). - - - - - Gets the number of bytes that were compressed into the stream (uncompressed bytes). - - - - - Always returns True. - - - - - Always returns False. - - - - - Always returns False. - - - - - Gets the length of the compressed stream if it is known (or -1 if the - length of the compressed stream is unknown). - - - - - Gets the position within the stream (read-only). - - - - - No Compression. - - - - - Low compression, highest speed. - - - - - Highest compression, low speed. - - - - - High compression, high speed. - - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - Specifies whether the compressed stream should be compatible with zip files. - - Streams in zip files are different from regular zlib streams in two aspects: - (1) zip streams do not contain any local header information (the information is stored in the zip file headers instead) and - (2) zip streams use a CRC32 checksum instead of the adler32 checksum used by zlib streams. - - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - Include header information in compressed stream (should be False for streams in zip files). - Include CRC32 checksum in compressed stream (should be True for streams in zip files). - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - Compression level to use when compressing data. - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - Compression level to use when compressing data. - Specifies whether the compressed stream should be compatible with zip files. - - - - Initializes a new instance of the class. - - Output stream that will contain the compressed data. - Compression level to use when compressing data. - Include header information in compressed stream (should be False for streams in zip files). - Include CRC32 checksum in compressed stream (should be True for streams in zip files). - - - - Not supported. - - - - - Not supported. - - - - - Not supported. - - - - - Writes a sequence of bytes to the current stream and advances the current - position within this stream by the number of bytes written. - - An array of bytes. This method copies bytes from - to the current stream. - The zero-based byte offset in at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - - The data is compressed as it is written into the stream. Writing bytes - into the stream will usually advance the position by a number smaller than . - - - - - Clears all buffers for this stream and causes any buffered data to be written to the underlying - stream. - - - - - Closes the current stream compressor and flushed any pending data into the base stream. - If the property is set to True (the default value), - then this method also closes the base stream and releases any resources (such as sockets - and file handles) associated with it. - - - - - Writes a byte to the current position in the stream and advances the position within the stream by one byte. - - Value to be written to the stream. - - - - Gets the underlying stream that receives the compressed data. - - - - - Gets or sets whether calling the method will also - close the underlying stream (see ). - - - - - Gets the checksum value used to check the integrity of the stream. - - - The checksum used may be an Adler or crc32 value depending on how - the was created. - - - - - Gets the number of bytes in the stream (compressed bytes). - - - - - Gets the number of bytes that were compressed into the stream (uncompressed bytes). - - - - - Gets the number of bytes in the stream (compressed bytes). - - - - - Gets the number of bytes that were compressed into the stream (uncompressed bytes). - - - - - Gets the ZStream instance wrapped by this . - - - This property is useful only in advanced applications that need to customize - the low-level behavior of the compressor. It is not needed in common applications. - - - - - Always returns False. - - - - - Always returns True. - - - - - Always returns False. - - - - - Returns the length of the underlying stream, in bytes. - - - - - Gets the position within the stream (read-only). - - - - - Provide localization for error messages in Japanese. - - - - - ZipEntryStreamWriter - Extends C1ZStreamWriter to provide the following: - 1) Creates a memory or temporary storage stream. - 2) Keeps track of the parent zip file. - 3) Overrides Close to add the compressed stream to the zip file. - - - - - Interface ICheckSum - implemented by the Adler32 and CRC32 objects. - Adler32 is a faster checksum used by the native ZLib - CRC32 is the default checksum used in ZIP files - - - - - Summary description for CRC32. - methods are called Adler to keep zlib source code - - - - - Summary description for Deflate. - - - - - Summary description for InfBlocks. - - - - - Summary description for InfCodes. - - - - - Summary description for Inflate. - - - - - Summary description for InfTree. - - - - - Summary description for StaticTree. - - - - - Summary description for Tree. - - - - - No error. - - - - - End of stream detected. - - - - - A preset dictionary is needed at this point. - - - - - File error. - - - - - Stream structure is inconsistent (input/output buffers are null for example). - - - - - Input data is corrupted (wrong format or checksum). - - - - - Not enough memory. - - - - - No progress possible or no room in output buffer. - - - - - Incompatible ZLIB version. - - - - - Input buffer. - - - - - Position of cursor into input buffer. - - - - - Number of bytes available in the input buffer. - - - - - Total number of input bytes read so far. - - - - - Output buffer. - - - - - Position of cursor into the output buffer. - - - - - Number of free bytes remaining in output buffer. - - - - - Total number of bytes output so far. - - - - - Description of the last error (null if no errors). - - - - - Current checksum value (Adler or CRC32). - - - - - Initializes a new instance of the ZStream class using an Adler checksum. - - - - - Initializes a new instance of the ZStream class. - - True to use a CRC32 checksum, False to use an Adler checksum. - - CRC32 checksums are the standard used in zip files. Adler checksums are the default - used by ZLIB. Adler checksums are faster to calculate, but are not compatible with the zip format. - - - - - Initializes the internal stream state for decompression. - - Zero on success, an error code on failure. - - The fields and must be - initialized before by the caller. - inflateInit does not perform any decompression apart from reading the - zlib header if present: data decompression is done by the - method. Therefore, the next_in and avail_in may be modified, but - next_out and avail_out are unchanged. - - - - - Initializes the internal stream state for decompression. - - Size of the LZ77 sliding compression window in bits (the default value is 15 bits). - Zero on success, an error code on failure. - - - - Decompresses as much data as possible until the input buffer is exhausted or - the output buffer is full. - - How to flush data into the output buffer (default value is 2). - - Z_OK if some progress has been made (more input processed or more output produced), - Z_STREAM_END if the end of the compressed data has been reached and all - uncompressed output has been produced, - Z_NEED_DICT if a preset dictionary is needed at this point, - Z_DATA_ERROR if the input data was corrupted (input stream not conforming to - the zlib format or incorrect checksum), - Z_STREAM_ERROR if the stream structure was inconsistent (for example if - next_in or next_out was null), - Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. - - - inflate performs one or both of the following actions: - - 1. Decompress more input starting at next_in and update next_in - and avail_in accordingly. If not all input can be processed (because there - is not enough room in the output buffer), next_in is updated and processing - will resume at this point for the next call to inflate. - - 2. Provide more output starting at next_out and update next_out - and avail_out accordingly. inflate provides as much output as - possible, until there is no more input data or no more space in the output buffer. - - Before the call to inflate, the application should ensure that at least one of the - actions is possible, by providing more input and/or consuming more output, and - updating the next_* and avail_* values accordingly. - - If inflate returns Zero and avail_out == 0, it must be called again - after making room in the output buffer because there might be more output pending. - - The application can consume the uncompressed output when it wants, for example when - the output buffer is full (avail_out == 0), or after each call of inflate. - - This method may introduce some output latency (reading input without producing - any output) except when forced to flush. - - - - - Frees all dynamically allocated data structures for this stream, - discards any unprocessed input, and does not flush any pending output. - - Zero on success, an error code on failure. - - - - Skips invalid compressed data until a full flush point is found, - or until all available input is skipped. No output is provided. - - Zero on success, an error code on failure. - - - - Initializes the decompression dictionary from the given uncompressed byte sequence. - - Data in the dictionary. - Number of bytes in the dictionary. - Zero on success, an error code on failure. - - This method must be called immediately after a call of - if this call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the Adler32 value returned by this call to inflate. - The compressor and decompressor must use exactly the same dictionary - (see the method). - - - - - Initializes the internal stream state for compression. - - Compression level between zero and nine (0-9). - Zero on success, an error code on failure. - - Compression level 1 gives best speed, 9 gives best compression. - Compression level zero gives no compression at all (the input data is simply copied a block at a time). - The default compression level is 6, which provides a compromise between speed and compression. - - - - - Initializes the internal stream state for compression. - - Compression level between zero and nine (0-9). - Size of the LZ77 sliding compression window in bits (the default value is 15 bits). - Zero on success, an error code on failure. - - Compression level 1 gives best speed, 9 gives best compression. - Compression level zero gives no compression at all (the input data is simply copied a block at a time). - The default compression level is 6, which provides a compromise between speed and compression. - - - - - Compresses as much data as possible, and stops when the input buffer becomes empty or the - output buffer becomes full. - - Non-zero to force some data to be flushed into the output buffer. - Zero on success, an error code on failure. - - deflate performs one or both of the following actions: - 1. Compress more input starting at next_in and update next_in and - avail_in accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call to deflate. - 2. Provide more output starting at next_out and update next_out and - avail_out accordingly. This action is forced if the parameter is - non zero. Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). Some output may be - provided even if flush is not set - This method may introduce some output latency (reading input without producing - any output) except when forced to flush. - If deflate returns with avail_out == 0, this method must be called - again with the same value of the parameter and more output space - until the flush is complete (deflate returns with avail_out != 0). - - - - - Frees all dynamically allocated data structures for this stream, - discards any unprocessed input, and does not flush any pending output. - - Zero on success, an error code on failure. - - - - Dynamically updates the compression level and compression strategy. - - Compression level between zero and nine (0-9). - Compression strategy (0-2). - - - - - Initializes the compression dictionary from the given byte sequence without - producing any compressed output. - - Data in the dictionary. - Number of bytes in the dictionary. - Zero on success, an error code on failure. - - This method must be called immediately after , - before any call to . - The compressor and decompressor must use exactly the same dictionary - (see ). - - - - - The exception that is thrown when reading or writing to a compressed stream fails. - - - - - Border is a basic border object, used by StyleContext for rendering - and measuring elements. - It provides a solid border with a single color and arbitrary widths - on each side. - Border is designed to be extended so you can easily implement - 3-D effects, compound borders, etc. - - - - - BorderEmpty - - - - - BorderCompound combines two borders. These may in turn be compound, - so we get a lot of flexibility (got this idea from Java). - - - - - BorderRaised draws a 1-pixel wide raised border. - - - - - BorderInset draws a 1-pixel wide inset border. - - - - - BorderGroove draws a 2-pixel wide groove border. - - - - - BorderFillet draws a 2-pixel wide fillet border. - - - - - This is a specialized dictionary that does _very_ efficient range - lookups based on Point keys (much faster than a Hashtable or SortedList). - - - - - constructs a dragimage class - - bitmap that you want to drag around - initial starting position (in screen coordinates) - parent control - - - - Drags the immage around the screen - - Mouse position in screen coordinates - - - - Ends the drag operation. Final paint and some cleanup. - - Current cursor position in screen coordinates - - - - saves the area of the display that will be painted on when dragging a bitmap - - - - - Creates the memory dc that will contain the background obscured by - the image being dragged. - - - - - redraws the portion of the display that was painted on by the bitmap being dragged - - - - - Base class for the grid's scrollbars - - - - - Initializes a new instance of the SBar class - - - - - - - Overloaded. Releases the resources used by the class. - - - - - - Occurs when the scroll box has been moved by either a mouse or keyboard action. - - - - - - - Occurs when the mouse pointer enters the control. - - - - - - - Gets or sets the visibility of the scrollbars. - - - - - Gets or sets a value indicating whether the scrollbar is displayed. - - - - - Gets or sets a numeric value that represents the current position of the scroll box on the scroll bar control. - - - - - Represents a vertical scrollbar. - - - - - Initializes a new instance of the VBar class. - - - - - - Overloaded. Occurs when the scroll box has been moved by either a mouse or keyboard action. - - - - - - - Returns a string the represents the current object. - - - - - - Gets or sets a numeric value that represents the current position of the scroll box on the scroll bar control. - - - - - Gets or sets the width of the vertical scrollbar. - - - - - Represents a horizontal scrollbar. - - - - - Initializes a new instance of the VBar class. - - - - - - Overloaded. Occurs when the scroll box has been moved by either a mouse or keyboard action. - - - - - - - Returns a string the represents the current object. - - - - - - Gets or sets the height of the horizontal scrollbar. - - - - - Specifies which elements of the cell should be drawn by the grid. - - - This enumeration is used when rendering owner-drawn cells. - - - - - Draw nothing. - - - - - Draw the cell background. - - - - - Draw the cell border. - - - - - Draw the cell content (text, images, checkboxes, etc). - - - - - Draw all cell elements (background, border, and contents). - - - - - StyleContext contains a base Style definition and a list of - named Styles. It provides the following services: - - Style management (create, edit, and remove Styles) - - Style inheritance mechanism - - Rendering and measuring methods - - - - - Style contains a collection of arbitrary attributes, - represented by a name/object entry, a reference to a parent - Style, and a reference to the containing StyleContext. - - - - - Summary description for Types. - - - - - Determines the Office 2007 color scheme. - - - - - MS Office 2007 blue color scheme. - - - - - MS Office 2007 black color scheme. - - - - - MS Office 2007 silver color scheme. - - - - - Specifies a visual style to use when rendering the control. - - - - - Do not use any visual styles. Render the control using the styles and properties only. - - - - - Render the control with an appearance based on the current system settings. - - - - - Render the control with an appearance based on the Office 2007 Blue color scheme. - - - - - Render the control with an appearance based on the Office 2007 Silver color scheme. - - - - - Render the control with an appearance based on the Office 2007 Black color scheme. - - - - - Render the control with an appearance based on the Office 2010 Blue color scheme. - - - - - Render the control with an appearance based on the Office 2010 Silver color scheme. - - - - - Render the control with an appearance based on the Office 2010 Black color scheme. - - - - - Base class for the grid renderers. - - - - - Initializes a new instance of the class. - - - - - - - - - - Gets the background brush. - - The grid. - Type of the cell. - The r. - - - - - Gets the border pen. - - Type of the cell. - - - - - Styles the has custom background. - - The style. - - - - - Styles the has custom border. - - The style. - - - - - Styles the has right border. - - the style - True is has right border - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Initializes a new instance of the class. - - - - diff --git a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.dll b/SW/Dokumente_sik/bin/Debug/ThemenDokumente.dll deleted file mode 100644 index 70b922d..0000000 Binary files a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.dll and /dev/null differ diff --git a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.pdb b/SW/Dokumente_sik/bin/Debug/ThemenDokumente.pdb deleted file mode 100644 index a1ec1fa..0000000 Binary files a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.pdb and /dev/null differ diff --git a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.xml b/SW/Dokumente_sik/bin/Debug/ThemenDokumente.xml deleted file mode 100644 index 0ddc975..0000000 --- a/SW/Dokumente_sik/bin/Debug/ThemenDokumente.xml +++ /dev/null @@ -1,1110 +0,0 @@ - - - - -ThemenDokumente - - - - - - Doktype - 1: Vertragselement - 2: Test-Drehbuch - 3: Applikationsdokument - 4: Applikationlogbuch - ö - - - - Schliessen des Formulars - - - - - - - Prüfung, ob Datenänderungen vorgenommen wurden. Beim Speichern werden ebenfalls allfällige Änderungen von C1DokumentAblagoeOrt durchgeführt. - Wurden lediglich Änderungen bei C1Dokumentablageort vorgenommen, wird separat gefrat, ob die Änderungen gespeichert werden sollen. - - - - - - Optionaler Parameter Dokumentnummer des aktuellen Dokuments - - - - Formular-Load - - - - - - - Formular schliessen - - - - - - - Sicherungs-Button betätigt - - - - - - - Datensatz kopieren - - - - - - - Neuer Datensatz erstellen - - - - - - - Menu Beenden - - - - - - - Vertragspartner suchen - - - - - - - Allg Eventhandler für Chanage-Ereignise festlegen - - - - - - Envent-Handler für Change-Ereignisse - - - - - - - Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet - die gefundnen Controls in der Liste L zur weiteren Bearbeitung - - Base-Contrlo (z.B. aktuelles Formular - Schlüssel welcher gesucht werden soll - Liste der gefundenen Objekte - True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. - - - - - Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld - - - - - - - Daten ab DB laden uns ins Form befüllen - - - - - - Daten ab Form speichern - - - - - Auswahl des zu speichernden Dokumentes - - - - - - - Dokument anzeigen - - - - - - - Text-Change von Txt-Dateiname - - - - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr. May be SqlInt32.Null
  • -
  • iDokumentNr. May be SqlInt32.Null
  • -
  • sAblageort. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr. May be SqlInt32.Null
  • -
  • iDokumentNr. May be SqlInt32.Null
  • -
  • sAblageort. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr
  • -
  • iDokumentNr
  • -
  • sAblageort
  • -
  • sBeschreibung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • iMandantNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'DokumentAblageort'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
  • sTabelle. May be SqlString.Null
  • -
  • sTabellenspalte. May be SqlString.Null
  • -
  • sSpalte. May be SqlString.Null
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite. May be SqlInt32.Null
  • -
  • iReihenfolge. May be SqlInt32.Null
  • -
  • sTiptext. May be SqlString.Null
  • -
  • bAktiv
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • sNumberFormat. May be SqlString.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
  • sTabelle. May be SqlString.Null
  • -
  • sTabellenspalte. May be SqlString.Null
  • -
  • sSpalte. May be SqlString.Null
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite. May be SqlInt32.Null
  • -
  • iReihenfolge. May be SqlInt32.Null
  • -
  • sTiptext. May be SqlString.Null
  • -
  • bAktiv
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • sNumberFormat. May be SqlString.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iEintragnr
  • -
  • sTabelle
  • -
  • sTabellenspalte
  • -
  • sSpalte
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite
  • -
  • iReihenfolge
  • -
  • sTiptext
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • iMandantnr
  • -
  • sNumberFormat
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'spalten'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumenttypnr
  • -
  • sBezeichnung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'Dokumenttyp'. - - - - Dokument laden - - PersonNr - - - - - Person sichern - - - - - - Kopie eines Datensatzes erstellen. - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Datensatz inaktivieren - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Datensatz physisch löschen - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Neue Person einfügen - - - - - - Dokumenttypen laden und in der Datatable Dokumenttypdaten bereit stellen - - - - - - Datei im Dokument speichern - - - - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - Dokumente lesen und dem Grid übergeben - - C1TrueDBGrid mit Dokumente - - - - - Kontakte auslesen und dem Truedbgrid übergeben - - TruedbGrid - Vertragselement, für welches die Dokumente ausgelesen werden - - - - - Dokument in der Tabelle Dokument speichern - - Nummer des Dokument-Datensatzes - Zu speichender Dateiname - - - - - Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab - - - - - - - Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank - - - Es werden folgende Datebanktabellen berücksichtigt: - - - Dokument Attribut DocImage - - Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der - Vertragsübersicht|Vertragselemente - - yes - - - Tabellenname übernehmen und Daten ab DB laden - - - - - - Daten ab Datenbank laden - - - - - Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt - - - - - Update-Statement dynamisch für das UpdateCommand generieren - - - - - Insert-Statement dynamisch für das InsertCommand generieren - - - - - Prefixt für den SP-Übergabeparameter generieren - - Aktuelle Columnt - Prefis für SP-Übergabeparameter - - - - SQL-DB-Type für den SP-Übergabeparameter festlegen - - Aktuelle Column - SQLDBType - - - - Feldlänge für den SP-Übergabeparemter festlegen - - Aktulle Column - Feldlänge - - - - Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert - - - - - Dispose von Tabledata - - - - - Load der Verbindungstabelle - - - - - - - - Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. - - - - - - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
  • iKeyValue. May be SqlInt32.Null
  • -
  • iDokType. May be SqlInt32.Null
  • -
  • iDokumenttypNr. May be SqlInt32.Null
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • sFilename. May be SqlString.Null
  • -
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • -
  • sVersion. May be SqlString.Null
  • -
  • sVersionsNr. May be SqlString.Null
  • -
  • daVersionsdatum. May be SqlDateTime.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • blobDocImage. May be SqlBinary.Null
  • -
  • iSpeichertypNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
  • iKeyValue. May be SqlInt32.Null
  • -
  • iDokType. May be SqlInt32.Null
  • -
  • iDokumenttypNr. May be SqlInt32.Null
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • sFilename. May be SqlString.Null
  • -
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • -
  • sVersion. May be SqlString.Null
  • -
  • sVersionsNr. May be SqlString.Null
  • -
  • daVersionsdatum. May be SqlDateTime.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • blobDocImage. May be SqlBinary.Null
  • -
  • iSpeichertypNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentNr
  • -
  • iKeyValue
  • -
  • iDokType
  • -
  • iDokumenttypNr
  • -
  • sBezeichnung
  • -
  • sBeschreibung
  • -
  • sFilename
  • -
  • sOriginalFilename_incl_Path
  • -
  • sVersion
  • -
  • sVersionsNr
  • -
  • daVersionsdatum
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • blobDocImage
  • -
  • iSpeichertypNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'Dokument'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • iMandantNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'DokumentAblageTyp'. - - - - Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge - - - - - - - - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iKeynr
  • -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iKeynr
  • -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'key_tabelle'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iSpeicherTypNr
  • -
  • sBezeichnung
  • -
  • sBeschreibung
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'SpeicherTyp'. - - -
-
\ No newline at end of file diff --git a/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index a87afde..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferences.cache and /dev/null differ diff --git a/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index f34fc6e..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and /dev/null differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.dll b/SW/Dokumente_sik/obj/Debug/ThemenDokumente.dll deleted file mode 100644 index 70b922d..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.dll and /dev/null differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.pdb b/SW/Dokumente_sik/obj/Debug/ThemenDokumente.pdb deleted file mode 100644 index a1ec1fa..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.pdb and /dev/null differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache b/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache deleted file mode 100644 index 460824e..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.vbprojResolveAssemblyReference.cache and /dev/null differ diff --git a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.xml b/SW/Dokumente_sik/obj/Debug/ThemenDokumente.xml deleted file mode 100644 index 0ddc975..0000000 --- a/SW/Dokumente_sik/obj/Debug/ThemenDokumente.xml +++ /dev/null @@ -1,1110 +0,0 @@ - - - - -ThemenDokumente - - - - - - Doktype - 1: Vertragselement - 2: Test-Drehbuch - 3: Applikationsdokument - 4: Applikationlogbuch - ö - - - - Schliessen des Formulars - - - - - - - Prüfung, ob Datenänderungen vorgenommen wurden. Beim Speichern werden ebenfalls allfällige Änderungen von C1DokumentAblagoeOrt durchgeführt. - Wurden lediglich Änderungen bei C1Dokumentablageort vorgenommen, wird separat gefrat, ob die Änderungen gespeichert werden sollen. - - - - - - Optionaler Parameter Dokumentnummer des aktuellen Dokuments - - - - Formular-Load - - - - - - - Formular schliessen - - - - - - - Sicherungs-Button betätigt - - - - - - - Datensatz kopieren - - - - - - - Neuer Datensatz erstellen - - - - - - - Menu Beenden - - - - - - - Vertragspartner suchen - - - - - - - Allg Eventhandler für Chanage-Ereignise festlegen - - - - - - Envent-Handler für Change-Ereignisse - - - - - - - Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet - die gefundnen Controls in der Liste L zur weiteren Bearbeitung - - Base-Contrlo (z.B. aktuelles Formular - Schlüssel welcher gesucht werden soll - Liste der gefundenen Objekte - True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. - - - - - Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld - - - - - - - Daten ab DB laden uns ins Form befüllen - - - - - - Daten ab Form speichern - - - - - Auswahl des zu speichernden Dokumentes - - - - - - - Dokument anzeigen - - - - - - - Text-Change von Txt-Dateiname - - - - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr. May be SqlInt32.Null
  • -
  • iDokumentNr. May be SqlInt32.Null
  • -
  • sAblageort. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr. May be SqlInt32.Null
  • -
  • iDokumentNr. May be SqlInt32.Null
  • -
  • sAblageort. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentablageortNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentablageortNr
  • -
  • iDokumentablagetypNr
  • -
  • iDokumentNr
  • -
  • sAblageort
  • -
  • sBeschreibung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • iMandantNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'DokumentAblageort'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
  • sTabelle. May be SqlString.Null
  • -
  • sTabellenspalte. May be SqlString.Null
  • -
  • sSpalte. May be SqlString.Null
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite. May be SqlInt32.Null
  • -
  • iReihenfolge. May be SqlInt32.Null
  • -
  • sTiptext. May be SqlString.Null
  • -
  • bAktiv
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • sNumberFormat. May be SqlString.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
  • sTabelle. May be SqlString.Null
  • -
  • sTabellenspalte. May be SqlString.Null
  • -
  • sSpalte. May be SqlString.Null
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite. May be SqlInt32.Null
  • -
  • iReihenfolge. May be SqlInt32.Null
  • -
  • sTiptext. May be SqlString.Null
  • -
  • bAktiv
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • sNumberFormat. May be SqlString.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iEintragnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iEintragnr
  • -
  • sTabelle
  • -
  • sTabellenspalte
  • -
  • sSpalte
  • -
  • bReadonly
  • -
  • bAlsHacken
  • -
  • iBreite
  • -
  • iReihenfolge
  • -
  • sTiptext
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • iMandantnr
  • -
  • sNumberFormat
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'spalten'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumenttypnr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumenttypnr
  • -
  • sBezeichnung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'Dokumenttyp'. - - - - Dokument laden - - PersonNr - - - - - Person sichern - - - - - - Kopie eines Datensatzes erstellen. - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Datensatz inaktivieren - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Datensatz physisch löschen - - Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen - - - - - Neue Person einfügen - - - - - - Dokumenttypen laden und in der Datatable Dokumenttypdaten bereit stellen - - - - - - Datei im Dokument speichern - - - - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - Dokumente lesen und dem Grid übergeben - - C1TrueDBGrid mit Dokumente - - - - - Kontakte auslesen und dem Truedbgrid übergeben - - TruedbGrid - Vertragselement, für welches die Dokumente ausgelesen werden - - - - - Dokument in der Tabelle Dokument speichern - - Nummer des Dokument-Datensatzes - Zu speichender Dateiname - - - - - Liest das Dokument aus der DB und speichert dieses unter einem temporären Filenamen ab - - - - - - - Klasse für das Speichern bzw. Auslesen von Image-Dateien in der Datenbank - - - Es werden folgende Datebanktabellen berücksichtigt: - - - Dokument Attribut DocImage - - Profile Attribut V_Uebersicht (Profillayout des C1TrueDBGrids der - Vertragsübersicht|Vertragselemente - - yes - - - Tabellenname übernehmen und Daten ab DB laden - - - - - - Daten ab Datenbank laden - - - - - Basis-Datentabelle laden. Diese wird für die dynamische Generierung der Insert- und Update-Statements benötigt - - - - - Update-Statement dynamisch für das UpdateCommand generieren - - - - - Insert-Statement dynamisch für das InsertCommand generieren - - - - - Prefixt für den SP-Übergabeparameter generieren - - Aktuelle Columnt - Prefis für SP-Übergabeparameter - - - - SQL-DB-Type für den SP-Übergabeparameter festlegen - - Aktuelle Column - SQLDBType - - - - Feldlänge für den SP-Übergabeparemter festlegen - - Aktulle Column - Feldlänge - - - - Datesichern. Dabei wird das Update- sowie das Insert-Statement dynamisch generiert - - - - - Dispose von Tabledata - - - - - Load der Verbindungstabelle - - - - - - - - Neuer Eintrag in der Tabelle eintragen. Sind neben den Defaultwerten weitere Attribute vorhanden, werde diese abhängig vom Datentype mit Defaultwerten befüllt. - - - - - - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
  • iKeyValue. May be SqlInt32.Null
  • -
  • iDokType. May be SqlInt32.Null
  • -
  • iDokumenttypNr. May be SqlInt32.Null
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • sFilename. May be SqlString.Null
  • -
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • -
  • sVersion. May be SqlString.Null
  • -
  • sVersionsNr. May be SqlString.Null
  • -
  • daVersionsdatum. May be SqlDateTime.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • blobDocImage. May be SqlBinary.Null
  • -
  • iSpeichertypNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
  • iKeyValue. May be SqlInt32.Null
  • -
  • iDokType. May be SqlInt32.Null
  • -
  • iDokumenttypNr. May be SqlInt32.Null
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • sFilename. May be SqlString.Null
  • -
  • sOriginalFilename_incl_Path. May be SqlString.Null
  • -
  • sVersion. May be SqlString.Null
  • -
  • sVersionsNr. May be SqlString.Null
  • -
  • daVersionsdatum. May be SqlDateTime.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • blobDocImage. May be SqlBinary.Null
  • -
  • iSpeichertypNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentNr
  • -
  • iKeyValue
  • -
  • iDokType
  • -
  • iDokumenttypNr
  • -
  • sBezeichnung
  • -
  • sBeschreibung
  • -
  • sFilename
  • -
  • sOriginalFilename_incl_Path
  • -
  • sVersion
  • -
  • sVersionsNr
  • -
  • daVersionsdatum
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • blobDocImage
  • -
  • iSpeichertypNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'Dokument'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • iMandantNr. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iDokumentAblageTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iDokumentAblageTypNr
  • -
  • sBezeichnung
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
  • bAktiv
  • -
  • iMandantNr
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'DokumentAblageTyp'. - - - - Sortierung der in der DB-Tabelle Spalaten festgelegten Reihenfolge - - - - - - - - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iKeynr
  • -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr. May be SqlInt32.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iKeynr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iKeynr
  • -
  • sBeschreibung
  • -
  • iKey_wert
  • -
  • iMandantnr
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'key_tabelle'. - - - - Purpose: Class constructor. - - - - Purpose: Insert method. This method will insert one new row into the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Update method. This method will Update one existing row in the database. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
  • sBezeichnung. May be SqlString.Null
  • -
  • sBeschreibung. May be SqlString.Null
  • -
  • bAktiv. May be SqlBoolean.Null
  • -
  • daErstellt_am. May be SqlDateTime.Null
  • -
  • daMutiert_am. May be SqlDateTime.Null
  • -
  • iMutierer. May be SqlInt32.Null
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Delete method. This method will Delete one existing row in the database, based on the Primary Key. - - True if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Select method. This method will Select one existing row from the database, based on the Primary Key. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties needed for this method: -
    -
  • iSpeicherTypNr
  • -
- Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
  • iSpeicherTypNr
  • -
  • sBezeichnung
  • -
  • sBeschreibung
  • -
  • bAktiv
  • -
  • daErstellt_am
  • -
  • daMutiert_am
  • -
  • iMutierer
  • -
- Will fill all properties corresponding with a field in the table with the value of the row selected. -
-
- - Purpose: SelectAll method. This method will Select all rows from the table. - - DataTable object if succeeded, otherwise an Exception is thrown. - - Properties set after a succesful call of this method: -
    -
  • iErrorCode
  • -
-
-
- - Purpose: Data Access class for the table 'SpeicherTyp'. - - -
-
\ No newline at end of file diff --git a/SW/Dokumente_sik/obj/Debug/themendokumente.dll.licenses b/SW/Dokumente_sik/obj/Debug/themendokumente.dll.licenses deleted file mode 100644 index 220c572..0000000 Binary files a/SW/Dokumente_sik/obj/Debug/themendokumente.dll.licenses and /dev/null differ diff --git a/SW/WindowsApplication1/WindowsApplication1.sln b/SW/WindowsApplication1/WindowsApplication1.sln deleted file mode 100644 index 35f55b2..0000000 --- a/SW/WindowsApplication1/WindowsApplication1.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WindowsApplication1", "WindowsApplication1\WindowsApplication1.vbproj", "{67F895F8-B4F6-440E-9DC3-E9B78C9F504D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {67F895F8-B4F6-440E-9DC3-E9B78C9F504D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67F895F8-B4F6-440E-9DC3-E9B78C9F504D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67F895F8-B4F6-440E-9DC3-E9B78C9F504D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67F895F8-B4F6-440E-9DC3-E9B78C9F504D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/SW/WindowsApplication1/WindowsApplication1.v12.suo b/SW/WindowsApplication1/WindowsApplication1.v12.suo deleted file mode 100644 index a4ec161..0000000 Binary files a/SW/WindowsApplication1/WindowsApplication1.v12.suo and /dev/null differ diff --git a/SW/WindowsApplication1/WindowsApplication1/My Project/Resources.Designer.vb b/SW/WindowsApplication1/WindowsApplication1/My Project/Resources.Designer.vb deleted file mode 100644 index d4d8b37..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WindowsApplication1.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.Designer.vb b/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.Designer.vb deleted file mode 100644 index 3339783..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.Designer.vb +++ /dev/null @@ -1,406 +0,0 @@ - _ -Partial Class frmFinma_Definition - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Wird vom Windows Form-Designer benötigt. - Private components As System.ComponentModel.IContainer - - 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. - 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. - 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFinma_Definition)) - Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() - Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() - Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() - Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() - Me.Label1 = New System.Windows.Forms.Label() - Me.RichTextBox1 = New System.Windows.Forms.RichTextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.TextBox1 = New System.Windows.Forms.TextBox() - Me.TextBox2 = New System.Windows.Forms.TextBox() - Me.TextBox3 = New System.Windows.Forms.TextBox() - Me.Label3 = New System.Windows.Forms.Label() - Me.ComboBox1 = New System.Windows.Forms.ComboBox() - Me.Label4 = New System.Windows.Forms.Label() - Me.Label5 = New System.Windows.Forms.Label() - Me.ComboBox2 = New System.Windows.Forms.ComboBox() - Me.Label6 = New System.Windows.Forms.Label() - Me.ComboBox3 = New System.Windows.Forms.ComboBox() - Me.Label7 = New System.Windows.Forms.Label() - Me.ComboBox4 = New System.Windows.Forms.ComboBox() - Me.Label8 = New System.Windows.Forms.Label() - Me.Label9 = New System.Windows.Forms.Label() - Me.RichTextBox2 = New System.Windows.Forms.RichTextBox() - Me.cbAktiv = New System.Windows.Forms.CheckBox() - Me.lblAktiv = New System.Windows.Forms.Label() - Me.txtMutierer = New System.Windows.Forms.TextBox() - Me.txtMutiertam = New System.Windows.Forms.TextBox() - Me.txtErstelltam = New System.Windows.Forms.TextBox() - Me.Label10 = New System.Windows.Forms.Label() - Me.lblErstelltam = New System.Windows.Forms.Label() - Me.Label11 = New System.Windows.Forms.Label() - Me.MenuStrip1.SuspendLayout() - Me.ToolStrip1.SuspendLayout() - Me.SuspendLayout() - ' - 'MenuStrip1 - ' - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) - Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) - Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(663, 24) - Me.MenuStrip1.TabIndex = 0 - Me.MenuStrip1.Text = "MenuStrip1" - ' - 'DateiToolStripMenuItem - ' - Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" - Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) - Me.DateiToolStripMenuItem.Text = "&Datei" - ' - 'ToolStrip1 - ' - Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) - Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) - Me.ToolStrip1.Name = "ToolStrip1" - Me.ToolStrip1.Size = New System.Drawing.Size(663, 25) - Me.ToolStrip1.TabIndex = 2 - Me.ToolStrip1.Text = "ToolStrip1" - ' - 'TSBtnQuit - ' - Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) - Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta - Me.TSBtnQuit.Name = "TSBtnQuit" - Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) - Me.TSBtnQuit.Text = "ToolStripButton1" - Me.TSBtnQuit.ToolTipText = "Fenster schliessen" - ' - 'TSBtnSave - ' - Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) - Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta - Me.TSBtnSave.Name = "TSBtnSave" - Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) - Me.TSBtnSave.Text = "ToolStripButton1" - Me.TSBtnSave.ToolTipText = "Daten speichern" - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 66) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(58, 13) - Me.Label1.TabIndex = 3 - Me.Label1.Text = "FINMA RS" - ' - 'RichTextBox1 - ' - Me.RichTextBox1.Location = New System.Drawing.Point(132, 256) - Me.RichTextBox1.Name = "RichTextBox1" - Me.RichTextBox1.Size = New System.Drawing.Size(523, 96) - Me.RichTextBox1.TabIndex = 4 - Me.RichTextBox1.Text = "Selektion und Deklaration der Sicherheitsstandards" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(12, 92) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(48, 13) - Me.Label2.TabIndex = 6 - Me.Label2.Text = "Ref. ISO" - ' - 'TextBox1 - ' - Me.TextBox1.Location = New System.Drawing.Point(132, 66) - Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(100, 20) - Me.TextBox1.TabIndex = 7 - Me.TextBox1.Text = "24" - ' - 'TextBox2 - ' - Me.TextBox2.Location = New System.Drawing.Point(132, 92) - Me.TextBox2.Name = "TextBox2" - Me.TextBox2.Size = New System.Drawing.Size(100, 20) - Me.TextBox2.TabIndex = 8 - Me.TextBox2.Text = "5.1.1" - ' - 'TextBox3 - ' - Me.TextBox3.Location = New System.Drawing.Point(132, 118) - Me.TextBox3.Name = "TextBox3" - Me.TextBox3.Size = New System.Drawing.Size(100, 20) - Me.TextBox3.TabIndex = 10 - Me.TextBox3.Text = "5.1.1.1" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(12, 118) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(71, 13) - Me.Label3.TabIndex = 9 - Me.Label3.Text = "Ref. Kontrolle" - ' - 'ComboBox1 - ' - Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Location = New System.Drawing.Point(132, 144) - Me.ComboBox1.Name = "ComboBox1" - Me.ComboBox1.Size = New System.Drawing.Size(121, 21) - Me.ComboBox1.TabIndex = 11 - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(12, 145) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(52, 13) - Me.Label4.TabIndex = 12 - Me.Label4.Text = "Ketegorie" - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(12, 172) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(100, 13) - Me.Label5.TabIndex = 14 - Me.Label5.Text = "Normative Vorlagen" - ' - 'ComboBox2 - ' - Me.ComboBox2.FormattingEnabled = True - Me.ComboBox2.Location = New System.Drawing.Point(132, 172) - Me.ComboBox2.Name = "ComboBox2" - Me.ComboBox2.Size = New System.Drawing.Size(121, 21) - Me.ComboBox2.TabIndex = 13 - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(12, 199) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(91, 13) - Me.Label6.TabIndex = 16 - Me.Label6.Text = "Grundsatz FINMA" - ' - 'ComboBox3 - ' - Me.ComboBox3.FormattingEnabled = True - Me.ComboBox3.Location = New System.Drawing.Point(132, 199) - Me.ComboBox3.Name = "ComboBox3" - Me.ComboBox3.Size = New System.Drawing.Size(259, 21) - Me.ComboBox3.TabIndex = 15 - Me.ComboBox3.Text = "Sicherheitsstandards für Infrastruktur und Technologie" - ' - 'Label7 - ' - Me.Label7.AutoSize = True - Me.Label7.Location = New System.Drawing.Point(12, 229) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(114, 13) - Me.Label7.TabIndex = 18 - Me.Label7.Text = "Unterpunkt FINMA RS" - ' - 'ComboBox4 - ' - Me.ComboBox4.FormattingEnabled = True - Me.ComboBox4.Location = New System.Drawing.Point(132, 229) - Me.ComboBox4.Name = "ComboBox4" - Me.ComboBox4.Size = New System.Drawing.Size(259, 21) - Me.ComboBox4.TabIndex = 17 - Me.ComboBox4.Text = "Sicherheitsstandards" - ' - 'Label8 - ' - Me.Label8.AutoSize = True - Me.Label8.Location = New System.Drawing.Point(12, 259) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(51, 13) - Me.Label8.TabIndex = 19 - Me.Label8.Text = "Definition" - ' - 'Label9 - ' - Me.Label9.AutoSize = True - Me.Label9.Location = New System.Drawing.Point(12, 361) - Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(58, 13) - Me.Label9.TabIndex = 21 - Me.Label9.Text = "Ergänzung" - ' - 'RichTextBox2 - ' - Me.RichTextBox2.Location = New System.Drawing.Point(132, 358) - Me.RichTextBox2.Name = "RichTextBox2" - Me.RichTextBox2.Size = New System.Drawing.Size(523, 96) - Me.RichTextBox2.TabIndex = 20 - Me.RichTextBox2.Text = "Die SIcherheitsstandards müssen in Bezug auf die Grösse der Bank und den Grad der" & _ - " Komplexität seiner IT-Architektur angemessen sein" - ' - 'cbAktiv - ' - Me.cbAktiv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.cbAktiv.AutoSize = True - Me.cbAktiv.Location = New System.Drawing.Point(496, 138) - Me.cbAktiv.Name = "cbAktiv" - Me.cbAktiv.Size = New System.Drawing.Size(15, 14) - Me.cbAktiv.TabIndex = 38 - Me.cbAktiv.UseVisualStyleBackColor = True - ' - 'lblAktiv - ' - Me.lblAktiv.AutoSize = True - Me.lblAktiv.Location = New System.Drawing.Point(435, 138) - Me.lblAktiv.Name = "lblAktiv" - Me.lblAktiv.Size = New System.Drawing.Size(31, 13) - Me.lblAktiv.TabIndex = 37 - Me.lblAktiv.Text = "Aktiv" - ' - 'txtMutierer - ' - Me.txtMutierer.Location = New System.Drawing.Point(496, 110) - Me.txtMutierer.Name = "txtMutierer" - Me.txtMutierer.ReadOnly = True - Me.txtMutierer.Size = New System.Drawing.Size(159, 20) - Me.txtMutierer.TabIndex = 36 - ' - 'txtMutiertam - ' - Me.txtMutiertam.Location = New System.Drawing.Point(496, 85) - Me.txtMutiertam.Name = "txtMutiertam" - Me.txtMutiertam.ReadOnly = True - Me.txtMutiertam.Size = New System.Drawing.Size(159, 20) - Me.txtMutiertam.TabIndex = 35 - ' - 'txtErstelltam - ' - Me.txtErstelltam.Location = New System.Drawing.Point(496, 59) - Me.txtErstelltam.Name = "txtErstelltam" - Me.txtErstelltam.ReadOnly = True - Me.txtErstelltam.Size = New System.Drawing.Size(159, 20) - Me.txtErstelltam.TabIndex = 34 - ' - 'Label10 - ' - Me.Label10.AutoSize = True - Me.Label10.Location = New System.Drawing.Point(435, 113) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(45, 13) - Me.Label10.TabIndex = 33 - Me.Label10.Text = "Mutierer" - ' - 'lblErstelltam - ' - Me.lblErstelltam.AutoSize = True - Me.lblErstelltam.Location = New System.Drawing.Point(435, 62) - Me.lblErstelltam.Name = "lblErstelltam" - Me.lblErstelltam.Size = New System.Drawing.Size(55, 13) - Me.lblErstelltam.TabIndex = 31 - Me.lblErstelltam.Text = "Erstellt am" - ' - 'Label11 - ' - Me.Label11.AutoSize = True - Me.Label11.Location = New System.Drawing.Point(435, 88) - Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(56, 13) - Me.Label11.TabIndex = 32 - Me.Label11.Text = "Mutiert am" - ' - 'frmFinma_Definition - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(663, 473) - Me.Controls.Add(Me.cbAktiv) - Me.Controls.Add(Me.lblAktiv) - Me.Controls.Add(Me.txtMutierer) - Me.Controls.Add(Me.txtMutiertam) - Me.Controls.Add(Me.txtErstelltam) - Me.Controls.Add(Me.Label10) - Me.Controls.Add(Me.lblErstelltam) - Me.Controls.Add(Me.Label11) - Me.Controls.Add(Me.Label9) - Me.Controls.Add(Me.RichTextBox2) - Me.Controls.Add(Me.Label8) - Me.Controls.Add(Me.Label7) - Me.Controls.Add(Me.ComboBox4) - Me.Controls.Add(Me.Label6) - Me.Controls.Add(Me.ComboBox3) - Me.Controls.Add(Me.Label5) - Me.Controls.Add(Me.ComboBox2) - Me.Controls.Add(Me.Label4) - Me.Controls.Add(Me.ComboBox1) - Me.Controls.Add(Me.TextBox3) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.TextBox2) - Me.Controls.Add(Me.TextBox1) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.RichTextBox1) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.ToolStrip1) - Me.Controls.Add(Me.MenuStrip1) - Me.MainMenuStrip = Me.MenuStrip1 - Me.Name = "frmFinma_Definition" - Me.Text = "frmFinma_Definition" - Me.MenuStrip1.ResumeLayout(False) - Me.MenuStrip1.PerformLayout() - Me.ToolStrip1.ResumeLayout(False) - Me.ToolStrip1.PerformLayout() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip - Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip - Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton - Friend WithEvents TSBtnSave As System.Windows.Forms.ToolStripButton - Friend WithEvents Label1 As System.Windows.Forms.Label - Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox - Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents TextBox1 As System.Windows.Forms.TextBox - Friend WithEvents TextBox2 As System.Windows.Forms.TextBox - Friend WithEvents TextBox3 As System.Windows.Forms.TextBox - Friend WithEvents Label3 As System.Windows.Forms.Label - Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox - Friend WithEvents Label4 As System.Windows.Forms.Label - Friend WithEvents Label5 As System.Windows.Forms.Label - Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox - Friend WithEvents Label6 As System.Windows.Forms.Label - Friend WithEvents ComboBox3 As System.Windows.Forms.ComboBox - Friend WithEvents Label7 As System.Windows.Forms.Label - Friend WithEvents ComboBox4 As System.Windows.Forms.ComboBox - Friend WithEvents Label8 As System.Windows.Forms.Label - Friend WithEvents Label9 As System.Windows.Forms.Label - Friend WithEvents RichTextBox2 As System.Windows.Forms.RichTextBox - Friend WithEvents cbAktiv As System.Windows.Forms.CheckBox - Friend WithEvents lblAktiv As System.Windows.Forms.Label - Friend WithEvents txtMutierer As System.Windows.Forms.TextBox - Friend WithEvents txtMutiertam As System.Windows.Forms.TextBox - Friend WithEvents txtErstelltam As System.Windows.Forms.TextBox - Friend WithEvents Label10 As System.Windows.Forms.Label - Friend WithEvents lblErstelltam As System.Windows.Forms.Label - Friend WithEvents Label11 As System.Windows.Forms.Label -End Class diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.vb b/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.vb deleted file mode 100644 index a0291bf..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmFinma_Definition.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class frmFinma_Definition - -End Class \ No newline at end of file diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.Designer.vb b/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.Designer.vb deleted file mode 100644 index af74200..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.Designer.vb +++ /dev/null @@ -1,579 +0,0 @@ - _ -Partial Class frmPruefplan - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Wird vom Windows Form-Designer benötigt. - Private components As System.ComponentModel.IContainer - - 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. - 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. - 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPruefplan)) - Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() - Me.TSBtnQuit = New System.Windows.Forms.ToolStripButton() - Me.TSBtnSave = New System.Windows.Forms.ToolStripButton() - Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() - Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.Label6 = New System.Windows.Forms.Label() - Me.ComboBox3 = New System.Windows.Forms.ComboBox() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.TextBox3 = New System.Windows.Forms.TextBox() - Me.Label3 = New System.Windows.Forms.Label() - Me.TextBox2 = New System.Windows.Forms.TextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label9 = New System.Windows.Forms.Label() - Me.RichTextBox2 = New System.Windows.Forms.RichTextBox() - Me.Label8 = New System.Windows.Forms.Label() - Me.RichTextBox1 = New System.Windows.Forms.RichTextBox() - Me.Planung = New System.Windows.Forms.GroupBox() - Me.ComboBox1 = New System.Windows.Forms.ComboBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.ComboBox2 = New System.Windows.Forms.ComboBox() - Me.Label4 = New System.Windows.Forms.Label() - Me.ComboBox4 = New System.Windows.Forms.ComboBox() - Me.Label5 = New System.Windows.Forms.Label() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.ComboBox6 = New System.Windows.Forms.ComboBox() - Me.Label10 = New System.Windows.Forms.Label() - Me.ComboBox7 = New System.Windows.Forms.ComboBox() - Me.Label11 = New System.Windows.Forms.Label() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.Label7 = New System.Windows.Forms.Label() - Me.RichTextBox3 = New System.Windows.Forms.RichTextBox() - Me.Label12 = New System.Windows.Forms.Label() - Me.RichTextBox4 = New System.Windows.Forms.RichTextBox() - Me.Label13 = New System.Windows.Forms.Label() - Me.Label14 = New System.Windows.Forms.Label() - Me.Label15 = New System.Windows.Forms.Label() - Me.RichTextBox5 = New System.Windows.Forms.RichTextBox() - Me.GroupBox4 = New System.Windows.Forms.GroupBox() - Me.ToolStrip2 = New System.Windows.Forms.ToolStrip() - Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() - Me.ToolStripButton4 = New System.Windows.Forms.ToolStripButton() - Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() - Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() - Me.ToolStrip1.SuspendLayout() - Me.MenuStrip1.SuspendLayout() - Me.GroupBox1.SuspendLayout() - Me.Planung.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.GroupBox3.SuspendLayout() - Me.GroupBox4.SuspendLayout() - Me.ToolStrip2.SuspendLayout() - Me.SuspendLayout() - ' - 'ToolStrip1 - ' - Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBtnQuit, Me.TSBtnSave}) - Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) - Me.ToolStrip1.Name = "ToolStrip1" - Me.ToolStrip1.Size = New System.Drawing.Size(747, 25) - Me.ToolStrip1.TabIndex = 4 - Me.ToolStrip1.Text = "ToolStrip1" - ' - 'TSBtnQuit - ' - Me.TSBtnQuit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.TSBtnQuit.Image = CType(resources.GetObject("TSBtnQuit.Image"), System.Drawing.Image) - Me.TSBtnQuit.ImageTransparentColor = System.Drawing.Color.Magenta - Me.TSBtnQuit.Name = "TSBtnQuit" - Me.TSBtnQuit.Size = New System.Drawing.Size(23, 22) - Me.TSBtnQuit.Text = "ToolStripButton1" - Me.TSBtnQuit.ToolTipText = "Fenster schliessen" - ' - 'TSBtnSave - ' - Me.TSBtnSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.TSBtnSave.Image = CType(resources.GetObject("TSBtnSave.Image"), System.Drawing.Image) - Me.TSBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta - Me.TSBtnSave.Name = "TSBtnSave" - Me.TSBtnSave.Size = New System.Drawing.Size(23, 22) - Me.TSBtnSave.Text = "ToolStripButton1" - Me.TSBtnSave.ToolTipText = "Daten speichern" - ' - 'MenuStrip1 - ' - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem}) - Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) - Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(747, 24) - Me.MenuStrip1.TabIndex = 3 - Me.MenuStrip1.Text = "MenuStrip1" - ' - 'DateiToolStripMenuItem - ' - Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" - Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) - Me.DateiToolStripMenuItem.Text = "&Datei" - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(16, 19) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(58, 13) - Me.Label6.TabIndex = 18 - Me.Label6.Text = "FINMA-RS" - ' - 'ComboBox3 - ' - Me.ComboBox3.FormattingEnabled = True - Me.ComboBox3.Location = New System.Drawing.Point(80, 16) - Me.ComboBox3.Name = "ComboBox3" - Me.ComboBox3.Size = New System.Drawing.Size(259, 21) - Me.ComboBox3.TabIndex = 17 - Me.ComboBox3.Text = "Sicherheitsstandards für Infrastruktur und Technologie" - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.Label9) - Me.GroupBox1.Controls.Add(Me.RichTextBox2) - Me.GroupBox1.Controls.Add(Me.TextBox3) - Me.GroupBox1.Controls.Add(Me.Label3) - Me.GroupBox1.Controls.Add(Me.TextBox2) - Me.GroupBox1.Controls.Add(Me.Label2) - Me.GroupBox1.Controls.Add(Me.Label8) - Me.GroupBox1.Controls.Add(Me.ComboBox3) - Me.GroupBox1.Controls.Add(Me.Label6) - Me.GroupBox1.Controls.Add(Me.RichTextBox1) - Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Top - Me.GroupBox1.Location = New System.Drawing.Point(0, 49) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(747, 149) - Me.GroupBox1.TabIndex = 19 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Finma-Angaben" - ' - 'TextBox3 - ' - Me.TextBox3.Location = New System.Drawing.Point(601, 17) - Me.TextBox3.Name = "TextBox3" - Me.TextBox3.ReadOnly = True - Me.TextBox3.Size = New System.Drawing.Size(67, 20) - Me.TextBox3.TabIndex = 22 - Me.TextBox3.Text = "5.1.1.1" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(524, 22) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(71, 13) - Me.Label3.TabIndex = 21 - Me.Label3.Text = "Ref. Kontrolle" - ' - 'TextBox2 - ' - Me.TextBox2.Location = New System.Drawing.Point(409, 19) - Me.TextBox2.Name = "TextBox2" - Me.TextBox2.ReadOnly = True - Me.TextBox2.Size = New System.Drawing.Size(100, 20) - Me.TextBox2.TabIndex = 20 - Me.TextBox2.Text = "5.1.1" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(346, 19) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(48, 13) - Me.Label2.TabIndex = 19 - Me.Label2.Text = "Ref. ISO" - ' - 'Label9 - ' - Me.Label9.AutoSize = True - Me.Label9.Location = New System.Drawing.Point(345, 46) - Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(58, 13) - Me.Label9.TabIndex = 26 - Me.Label9.Text = "Ergänzung" - ' - 'RichTextBox2 - ' - Me.RichTextBox2.BackColor = System.Drawing.SystemColors.ButtonFace - Me.RichTextBox2.Location = New System.Drawing.Point(409, 43) - Me.RichTextBox2.Name = "RichTextBox2" - Me.RichTextBox2.ReadOnly = True - Me.RichTextBox2.Size = New System.Drawing.Size(259, 96) - Me.RichTextBox2.TabIndex = 25 - Me.RichTextBox2.Text = "Die SIcherheitsstandards müssen in Bezug auf die Grösse der Bank und den Grad der" & _ - " Komplexität seiner IT-Architektur angemessen sein" - ' - 'Label8 - ' - Me.Label8.AutoSize = True - Me.Label8.Location = New System.Drawing.Point(16, 49) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(51, 13) - Me.Label8.TabIndex = 24 - Me.Label8.Text = "Definition" - ' - 'RichTextBox1 - ' - Me.RichTextBox1.BackColor = System.Drawing.SystemColors.ButtonFace - Me.RichTextBox1.Location = New System.Drawing.Point(80, 46) - Me.RichTextBox1.Name = "RichTextBox1" - Me.RichTextBox1.ReadOnly = True - Me.RichTextBox1.Size = New System.Drawing.Size(259, 96) - Me.RichTextBox1.TabIndex = 23 - Me.RichTextBox1.Text = "Selektion und Deklaration der Sicherheitsstandards" - ' - 'Planung - ' - Me.Planung.Controls.Add(Me.ComboBox4) - Me.Planung.Controls.Add(Me.Label5) - Me.Planung.Controls.Add(Me.ComboBox2) - Me.Planung.Controls.Add(Me.Label4) - Me.Planung.Controls.Add(Me.ComboBox1) - Me.Planung.Controls.Add(Me.Label1) - Me.Planung.Location = New System.Drawing.Point(0, 204) - Me.Planung.Name = "Planung" - Me.Planung.Size = New System.Drawing.Size(179, 100) - Me.Planung.TabIndex = 20 - Me.Planung.TabStop = False - Me.Planung.Text = "Planung" - ' - 'ComboBox1 - ' - Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Location = New System.Drawing.Point(80, 19) - Me.ComboBox1.Name = "ComboBox1" - Me.ComboBox1.Size = New System.Drawing.Size(87, 21) - Me.ComboBox1.TabIndex = 27 - Me.ComboBox1.Text = "hoch" - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(16, 22) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(42, 13) - Me.Label1.TabIndex = 28 - Me.Label1.Text = "Priorität" - ' - 'ComboBox2 - ' - Me.ComboBox2.FormattingEnabled = True - Me.ComboBox2.Location = New System.Drawing.Point(80, 46) - Me.ComboBox2.Name = "ComboBox2" - Me.ComboBox2.Size = New System.Drawing.Size(87, 21) - Me.ComboBox2.TabIndex = 29 - Me.ComboBox2.Text = "jährlich" - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(16, 49) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(58, 13) - Me.Label4.TabIndex = 30 - Me.Label4.Text = "Periodizität" - ' - 'ComboBox4 - ' - Me.ComboBox4.FormattingEnabled = True - Me.ComboBox4.Location = New System.Drawing.Point(80, 73) - Me.ComboBox4.Name = "ComboBox4" - Me.ComboBox4.Size = New System.Drawing.Size(87, 21) - Me.ComboBox4.TabIndex = 31 - Me.ComboBox4.Text = "Juni" - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(16, 76) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(52, 13) - Me.Label5.TabIndex = 32 - Me.Label5.Text = "Zeitpunkt" - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.ComboBox6) - Me.GroupBox2.Controls.Add(Me.Label10) - Me.GroupBox2.Controls.Add(Me.ComboBox7) - Me.GroupBox2.Controls.Add(Me.Label11) - Me.GroupBox2.Location = New System.Drawing.Point(185, 204) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(209, 100) - Me.GroupBox2.TabIndex = 33 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Verantwortung" - ' - 'ComboBox6 - ' - Me.ComboBox6.FormattingEnabled = True - Me.ComboBox6.Location = New System.Drawing.Point(112, 46) - Me.ComboBox6.Name = "ComboBox6" - Me.ComboBox6.Size = New System.Drawing.Size(87, 21) - Me.ComboBox6.TabIndex = 29 - Me.ComboBox6.Text = "ISi" - ' - 'Label10 - ' - Me.Label10.AutoSize = True - Me.Label10.Location = New System.Drawing.Point(16, 49) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(91, 13) - Me.Label10.TabIndex = 30 - Me.Label10.Text = "Verantwortung ISi" - ' - 'ComboBox7 - ' - Me.ComboBox7.FormattingEnabled = True - Me.ComboBox7.Location = New System.Drawing.Point(112, 19) - Me.ComboBox7.Name = "ComboBox7" - Me.ComboBox7.Size = New System.Drawing.Size(87, 21) - Me.ComboBox7.TabIndex = 27 - Me.ComboBox7.Text = "ISi" - ' - 'Label11 - ' - Me.Label11.AutoSize = True - Me.Label11.Location = New System.Drawing.Point(16, 22) - Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(80, 13) - Me.Label11.TabIndex = 28 - Me.Label11.Text = "Verantwortliche" - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.Label14) - Me.GroupBox3.Controls.Add(Me.Label15) - Me.GroupBox3.Controls.Add(Me.RichTextBox5) - Me.GroupBox3.Controls.Add(Me.Label13) - Me.GroupBox3.Controls.Add(Me.Label12) - Me.GroupBox3.Controls.Add(Me.RichTextBox4) - Me.GroupBox3.Controls.Add(Me.Label7) - Me.GroupBox3.Controls.Add(Me.RichTextBox3) - Me.GroupBox3.Location = New System.Drawing.Point(0, 310) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(394, 224) - Me.GroupBox3.TabIndex = 34 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Prüfgegenstand" - ' - 'Label7 - ' - Me.Label7.AutoSize = True - Me.Label7.Location = New System.Drawing.Point(16, 22) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(82, 13) - Me.Label7.TabIndex = 26 - Me.Label7.Text = "Prüfgegenstand" - ' - 'RichTextBox3 - ' - Me.RichTextBox3.BackColor = System.Drawing.Color.White - Me.RichTextBox3.Location = New System.Drawing.Point(104, 19) - Me.RichTextBox3.Name = "RichTextBox3" - Me.RichTextBox3.ReadOnly = True - Me.RichTextBox3.Size = New System.Drawing.Size(235, 65) - Me.RichTextBox3.TabIndex = 25 - Me.RichTextBox3.Text = "Informationssicherheitspolitik" - ' - 'Label12 - ' - Me.Label12.AutoSize = True - Me.Label12.Location = New System.Drawing.Point(16, 93) - Me.Label12.Name = "Label12" - Me.Label12.Size = New System.Drawing.Size(70, 13) - Me.Label12.TabIndex = 28 - Me.Label12.Text = "Massnahmen" - ' - 'RichTextBox4 - ' - Me.RichTextBox4.BackColor = System.Drawing.Color.White - Me.RichTextBox4.Location = New System.Drawing.Point(104, 161) - Me.RichTextBox4.Name = "RichTextBox4" - Me.RichTextBox4.ReadOnly = True - Me.RichTextBox4.Size = New System.Drawing.Size(235, 65) - Me.RichTextBox4.TabIndex = 27 - Me.RichTextBox4.Text = "Nachgeführtes Prüflogfile Assessments" - ' - 'Label13 - ' - Me.Label13.AutoSize = True - Me.Label13.Location = New System.Drawing.Point(17, 106) - Me.Label13.Name = "Label13" - Me.Label13.Size = New System.Drawing.Size(83, 13) - Me.Label13.TabIndex = 29 - Me.Label13.Text = "bei Abweichung" - ' - 'Label14 - ' - Me.Label14.AutoSize = True - Me.Label14.Location = New System.Drawing.Point(17, 177) - Me.Label14.Name = "Label14" - Me.Label14.Size = New System.Drawing.Size(74, 13) - Me.Label14.TabIndex = 32 - Me.Label14.Text = "Info / Rapport" - ' - 'Label15 - ' - Me.Label15.AutoSize = True - Me.Label15.Location = New System.Drawing.Point(16, 164) - Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(55, 13) - Me.Label15.TabIndex = 31 - Me.Label15.Text = "Ereignisse" - ' - 'RichTextBox5 - ' - Me.RichTextBox5.BackColor = System.Drawing.Color.White - Me.RichTextBox5.Location = New System.Drawing.Point(104, 90) - Me.RichTextBox5.Name = "RichTextBox5" - Me.RichTextBox5.ReadOnly = True - Me.RichTextBox5.Size = New System.Drawing.Size(235, 65) - Me.RichTextBox5.TabIndex = 30 - Me.RichTextBox5.Text = "Anpassung der Marktstandards" - ' - 'GroupBox4 - ' - Me.GroupBox4.Controls.Add(Me.ToolStrip2) - Me.GroupBox4.Location = New System.Drawing.Point(409, 206) - Me.GroupBox4.Name = "GroupBox4" - Me.GroupBox4.Size = New System.Drawing.Size(333, 330) - Me.GroupBox4.TabIndex = 35 - Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "Hilfsmittel / Dokumente" - ' - 'ToolStrip2 - ' - Me.ToolStrip2.AllowDrop = True - Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton1, Me.ToolStripButton4, Me.ToolStripButton2, Me.ToolStripButton3}) - Me.ToolStrip2.Location = New System.Drawing.Point(3, 16) - Me.ToolStrip2.Name = "ToolStrip2" - Me.ToolStrip2.Size = New System.Drawing.Size(327, 25) - Me.ToolStrip2.TabIndex = 1 - Me.ToolStrip2.Text = "ToolStrip2" - ' - 'ToolStripButton1 - ' - Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) - Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta - Me.ToolStripButton1.Name = "ToolStripButton1" - Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton1.Text = "Neues Dokument" - ' - 'ToolStripButton4 - ' - Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton4.Image = CType(resources.GetObject("ToolStripButton4.Image"), System.Drawing.Image) - Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta - Me.ToolStripButton4.Name = "ToolStripButton4" - Me.ToolStripButton4.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton4.Text = "Dokumentinformationen bearbeiten" - ' - 'ToolStripButton2 - ' - Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) - Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta - Me.ToolStripButton2.Name = "ToolStripButton2" - Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton2.Text = "Dokument löschen" - ' - 'ToolStripButton3 - ' - Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image) - Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta - Me.ToolStripButton3.Name = "ToolStripButton3" - Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton3.Text = "Dokument anzeigen" - ' - 'frmPruefplan - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(747, 543) - Me.Controls.Add(Me.GroupBox4) - Me.Controls.Add(Me.GroupBox3) - Me.Controls.Add(Me.GroupBox2) - Me.Controls.Add(Me.Planung) - Me.Controls.Add(Me.GroupBox1) - Me.Controls.Add(Me.ToolStrip1) - Me.Controls.Add(Me.MenuStrip1) - Me.Name = "frmPruefplan" - Me.Text = "frmPruefplan" - Me.ToolStrip1.ResumeLayout(False) - Me.ToolStrip1.PerformLayout() - Me.MenuStrip1.ResumeLayout(False) - Me.MenuStrip1.PerformLayout() - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - Me.Planung.ResumeLayout(False) - Me.Planung.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.GroupBox3.ResumeLayout(False) - Me.GroupBox3.PerformLayout() - Me.GroupBox4.ResumeLayout(False) - Me.GroupBox4.PerformLayout() - Me.ToolStrip2.ResumeLayout(False) - Me.ToolStrip2.PerformLayout() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip - Friend WithEvents TSBtnQuit As System.Windows.Forms.ToolStripButton - Friend WithEvents TSBtnSave As System.Windows.Forms.ToolStripButton - Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip - Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents Label6 As System.Windows.Forms.Label - Friend WithEvents ComboBox3 As System.Windows.Forms.ComboBox - Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox - Friend WithEvents TextBox3 As System.Windows.Forms.TextBox - Friend WithEvents Label3 As System.Windows.Forms.Label - Friend WithEvents TextBox2 As System.Windows.Forms.TextBox - Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents Label9 As System.Windows.Forms.Label - Friend WithEvents RichTextBox2 As System.Windows.Forms.RichTextBox - Friend WithEvents Label8 As System.Windows.Forms.Label - Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox - Friend WithEvents Planung As System.Windows.Forms.GroupBox - Friend WithEvents ComboBox4 As System.Windows.Forms.ComboBox - Friend WithEvents Label5 As System.Windows.Forms.Label - Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox - Friend WithEvents Label4 As System.Windows.Forms.Label - Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox - Friend WithEvents Label1 As System.Windows.Forms.Label - Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox - Friend WithEvents ComboBox6 As System.Windows.Forms.ComboBox - Friend WithEvents Label10 As System.Windows.Forms.Label - Friend WithEvents ComboBox7 As System.Windows.Forms.ComboBox - Friend WithEvents Label11 As System.Windows.Forms.Label - Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox - Friend WithEvents Label14 As System.Windows.Forms.Label - Friend WithEvents Label15 As System.Windows.Forms.Label - Friend WithEvents RichTextBox5 As System.Windows.Forms.RichTextBox - Friend WithEvents Label13 As System.Windows.Forms.Label - Friend WithEvents Label12 As System.Windows.Forms.Label - Friend WithEvents RichTextBox4 As System.Windows.Forms.RichTextBox - Friend WithEvents Label7 As System.Windows.Forms.Label - Friend WithEvents RichTextBox3 As System.Windows.Forms.RichTextBox - Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox - Friend WithEvents ToolStrip2 As System.Windows.Forms.ToolStrip - Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton - Friend WithEvents ToolStripButton4 As System.Windows.Forms.ToolStripButton - Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton - Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton -End Class diff --git a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.vb b/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.vb deleted file mode 100644 index 832ec1b..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/Stammdaten/frmPruefplan.vb +++ /dev/null @@ -1,6 +0,0 @@ -Public Class frmPruefplan - - Private Sub ComboBox7_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox7.SelectedIndexChanged - - End Sub -End Class \ No newline at end of file diff --git a/SW/WindowsApplication1/WindowsApplication1/WindowsApplication1.vbproj b/SW/WindowsApplication1/WindowsApplication1/WindowsApplication1.vbproj deleted file mode 100644 index a9d0155..0000000 --- a/SW/WindowsApplication1/WindowsApplication1/WindowsApplication1.vbproj +++ /dev/null @@ -1,144 +0,0 @@ - - - - - Debug - AnyCPU - {67F895F8-B4F6-440E-9DC3-E9B78C9F504D} - WinExe - WindowsApplication1.My.MyApplication - WindowsApplication1 - WindowsApplication1 - 512 - WindowsForms - v3.5 - - - AnyCPU - true - full - true - true - bin\Debug\ - WindowsApplication1.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - WindowsApplication1.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - Form1.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - frmFinma_Definition.vb - - - Form - - - frmPruefplan.vb - - - Form - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - frmFinma_Definition.vb - - - frmPruefplan.vb - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - \ No newline at end of file diff --git a/SW/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.vshost.exe b/SW/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.vshost.exe deleted file mode 100644 index efafb53..0000000 Binary files a/SW/WindowsApplication1/WindowsApplication1/bin/Debug/WindowsApplication1.vshost.exe and /dev/null differ diff --git a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index a1fbc7e..0000000 Binary files a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferences.cache and /dev/null differ diff --git a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index e56cae6..0000000 Binary files a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and /dev/null differ diff --git a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/SW/WindowsApplication1/WindowsApplication1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll deleted file mode 100644 index a2f511b..0000000 Binary files a/SW/WindowsApplication1/WindowsApplication1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll and /dev/null differ diff --git a/SW/_FRReporting/_FRReporting.vbproj b/SW/_FRReporting/_FRReporting.vbproj index b1b0111..11cbb1d 100644 --- a/SW/_FRReporting/_FRReporting.vbproj +++ b/SW/_FRReporting/_FRReporting.vbproj @@ -46,9 +46,9 @@ On - + False - ..\Libs\C1.Win.C1TrueDBGrid.2.dll + ..\AssessmentMgmt\bin\Debug\C1.Win.C1TrueDBGrid.2.dll False diff --git a/SW/_FRReporting/bin/Debug/FastReport.Bars.dll b/SW/_FRReporting/bin/Debug/FastReport.Bars.dll index 9f7c0c2..d98c6c3 100644 Binary files a/SW/_FRReporting/bin/Debug/FastReport.Bars.dll and b/SW/_FRReporting/bin/Debug/FastReport.Bars.dll differ diff --git a/SW/_FRReporting/bin/Debug/FastReport.Compat.dll b/SW/_FRReporting/bin/Debug/FastReport.Compat.dll new file mode 100644 index 0000000..55c574b Binary files /dev/null and b/SW/_FRReporting/bin/Debug/FastReport.Compat.dll differ diff --git a/SW/_FRReporting/bin/Debug/FastReport.DataVisualization.dll b/SW/_FRReporting/bin/Debug/FastReport.DataVisualization.dll new file mode 100644 index 0000000..29934a2 Binary files /dev/null and b/SW/_FRReporting/bin/Debug/FastReport.DataVisualization.dll differ diff --git a/SW/_FRReporting/bin/Debug/FastReport.Editor.dll b/SW/_FRReporting/bin/Debug/FastReport.Editor.dll index 0b0ab6f..e91d746 100644 Binary files a/SW/_FRReporting/bin/Debug/FastReport.Editor.dll and b/SW/_FRReporting/bin/Debug/FastReport.Editor.dll differ diff --git a/SW/_FRReporting/bin/Debug/FastReport.dll b/SW/_FRReporting/bin/Debug/FastReport.dll index cea9179..29e51d7 100644 Binary files a/SW/_FRReporting/bin/Debug/FastReport.dll and b/SW/_FRReporting/bin/Debug/FastReport.dll differ diff --git a/SW/_FRReporting/bin/Debug/FastReport.xml b/SW/_FRReporting/bin/Debug/FastReport.xml new file mode 100644 index 0000000..f1434aa --- /dev/null +++ b/SW/_FRReporting/bin/Debug/FastReport.xml @@ -0,0 +1,53156 @@ + + + + FastReport + + + + + The class for representing visible digital signature in the report. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object, in millimeters + + + + + Gets or sets the dxf objects fill mode + + + + + Initializes a new instance of the class. + + + + + Export all report objects + + + + + + + + + Export of Band + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + + + + + + + + + + Add BandObject. + + + + + Add TextObject. + + + + + Save DXF file. + + + + + Save DXF stream. + + + + + Add Line. + + + + + + + + Double precision 3D point value + + + + + Code range: 0-9 + String (with the introduction of extended symbol names in AutoCAD 2000, the 255-character + limit has been increased to 2049 single-byte characters not including the newline at the end + of the line) + + + + + Sets Name group + + Name (attribute tag, block name, and so on) + + + + Sets Name group + + Name (attribute tag, block name, ENDSEC, and so on) + + + + AutoCAD Color Index -> RGB Color table + + + + + RGB Color table -> AutoCAD Color Index + + + + + Get AutoCAD Color Index + + + AutoCAD Color Index + + + + CT command + + + + + CI command + + + + + EP command + Perimeter of polygon defined as polygon buffer by PM, PA/PR, PU/PD, + AA/AR, CI, and CT command is plotted. Pen position after command and + pen up / down state will be in state before command. + + + + + EA command + Rectangle which makes diagonal coordinates (x, y) specified the present position and + here is plotted. Pen position after command and pen up / down state will be in state before command. + + + + + ER command + Rectangle which makes diagonal relative coordinate (x, y) from the present position + and the present position is plotted. Pen position after command and pen up / down state + will be in state before command. + + + + + FP command + Shading of the inside of polygon defined as polygon buffer by PM, PA/PR, + PU/PD, AA/AR, CI, and CT command is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + RA command + It is used with FT and PT command and shading of the inside of rectangle which makes + diagonal point coordinates (x, y) specified the present position and here is carried out. + Pen position after command and pen up / down state will be in state before command. + + + + + RR command + It is used with FT and PT command and shading of the inside of rectangle which makes diagonal point + relative coordinate (x, y) from the present position and there is carried out. Pen position after command + and pen up / down state will be in state before command. + + + + + Model of shading + + + + + Painting out interactive at space specified by PT command (FT command interval and angle are ignored) + + + + + It is painting out (FT command space and angle are ignored) of the single direction at space specified by PT command. + + + + + Hatching which is the single direction at space and angle which were specified by FT command + + + + + It is crossing hatching at space and angle which were specified by FT command. + + + + + None (solid) + + + + + FT command + It is used together with FP, RA, RR, and WG command, and model of shading (painting out and hatching) is specified. + + + + + IN command + Plotter is changed into initial state. + + + + + IP command + Sets origin position of system of coordinates + + + + + Line Type + + + + + Point is plotted at specifying point + + + + + Dotted line of point + + + + + Short dotted line + + + + + Long dotted line + + + + + Short dashed line + + + + + Long dashed line + + + + + Two-point phantom line + + + + + No any patterns needed + + + + + LT command + + + + + PD command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + PU command + + + + + PA command + + + + + PR command + + + + + Polygon Type + + + + + Polygon buffer is cleared and it is made polygon definition mode. + + + + + Polygon under definition is closed. + + + + + Polygon under definition is closed and polygon definition mode is canceled. + + + + + PM command + It is made polygon definition mode. PM command is used with + PA/PR, PU/PD, AA/AR, CI, and CT command, and can define polygon. + + + + + RO command + + + + + SC command + + + + + SP command + + + + + PT command + It is used together with FP, FT, RR, RA, and WG command, and space (unit mm) of painting out + is specified between 0.1 and 5.0 in accordance with thickness of pen. Initial value is 0.3mm. + + + + + Variants of filling + + + + + Solid filling of hatch and solid objects + + + + + Draw only borders of hatch and solid objects + + + + + Gets or sets lines/polygons gap for barcodes object + + + + + Gets or sets the hpgl objects fill mode + + + + + Initializes a new instance of the class. + + + + + Save hpgl file. + + + + + Save hpgl stream. + + + + + Add BandObject. + + + + + Add TextObject. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Export all report objects + + + + + + Add Line. + + + + + + + + Excel 2003 export class + + + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Read and parse Excel document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Related to DRAWING group. Used once + + + + + Provides API to binary stream + + + + + + + + + + Represents the CSV export filter. + + + + + + + + Gets or set the resulting file encoding. + + + + + Gets or set the separator character used in csv format. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets a value that disable quotation marks for text. + + + + + Gets or sets a value that disable escaping quotation marks for text. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the export to DBF. + + + + + + + + Gets or sets the encoding. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Gets or sets the list of field names. + + + The field names must be separated by ";" symbol, for example: Column1;Column2;Column3 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the record. + + + + + Gets or sets the field with a specified index. + + + + + Gets the count of a fields. + + + + + Gets the size of a fields. + + + + + Initializes a new instance of the class. + + + + + Adds the new item into a list of fields. + + + + + Clears the list of fields. + + + + + Represents the email export. + + + In order to use this class, you need to set up at least the following properties: + , , . Use the + property to choose the format of an attachment. If you leave it empty, the attachment will be + in the .FRP format (FastReport prepared report). When you done with settings, call the + method to send an email. + + + This example demonstrates the bare minimum required to send an email. + + EmailExport export = new EmailExport(); + export.Account.Address = "my@address.net"; + export.Account.Host = "myhost"; + export.Address = "recipient@address.net"; + export.Subject = "Re: analysis report"; + // the report1 report must be prepared at this moment + export.SendEmail(report1); + + + + + + Displays the dialog box in which you can set up all parameters. + + true if user pressed OK button in the dialog. + + + + Gets or sets the recipient's address. + + + This property must contain value in form "john@url.com". + + + + + Gets or sets the carbon copy adresses. + + + This property must contain an array of values in form "john@url.com". + + + + + Gets or sets the subject of the message. + + + + + Gets or sets the message body. + + + + + Gets or sets the export filter which will be used to export a report. + + + Set this property to instance of any export filter. When you send the email, the report + will be exported using that export filter. + By default, this property is set to null. In this case the report will be send + in .FRP format. + + + + + Gets the email account settings such as host, user name, password. + + + + + Gets the parent Report object + + + + + Sends an email. + + Reports that will be sent as attachments. + + Before using this method, set up the following properties (it's a bare minimum): + , , . + The report that you pass in this method must be prepared using the Prepare method. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + + + + Form for . + For internal use only. + + + + + Hides attachment settings. + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allows to send message using MAPI interface. + + + + + Sends a message. + + Parent window handle. + Files to attach. + Email subject. + Email body. + Recipient names. + Recipient addresses. + Error code. 0 if operation was completed succesfully. + + + + Returns a text describing an error. + + The error code. + The text describing an error. + + + + Contains the email account settings such as host, email address, name. + + + You have to set up at least the and properties. If your + host requires authentication, provide the and + properties as well. + Set property to true if you want to use default email client + such as Outlook to send an email. In this case, all other properties will be ignored. + + + + + Gets or sets the sender's email address. + + + This property contains your email address (for example, "john@site.com"). + + + + + Gets or sets the sender's name. + + + This property contains your name (for example, "John Smith"). + + + + + Gets or sets the template that will be used to create a new message. + + + + + Gets or sets the SMTP host name or IP address. + + + + + Gets or sets the SMTP port. + + + The default value for this property is 25. + + + + + Gets or sets the user name. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets the password. + + + Specify the and properties if your host requires + authentication. + + + + + Gets or sets a value that determines whether to enable the SSL protocol. + + + + + Gets or sets a value that determines whether the account setting page + in the "Send Email" window is enabled. + + + + + Gets or sets a value that determines whether to use MAPI instead of SMTP when sending an email. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all export filters. + + + + + Exports the report to a file. + + Report to export. + true if report was succesfully exported. + + This method displays an export options dialog, then prompts a file name using standard "Open file" + dialog. If both dialogs were closed by OK button, exports the report and returns true. + + + + + Displays a dialog with export options. + + true if dialog was closed with OK button. + + + + Gets a report page with OverlayBand if it is a Demo or Academic. + + The prepared report page + The prepared report page with OverlayBand. + + + + Gets list of generated streams. + + + + + Zoom factor for output file + + + + + File filter that can be used in the "Save file" dialog. + + + + + Range of pages to export. + + + + + Page numbers to export. + + + Use page numbers separated by comma and/or page ranges, for example: "1,3-5,12". Empty string means + that all pages need to be exported. + + + + + Current page number. + + + Page number need to be exported if user selects "Current page" radiobutton in the export options dialog. + This property is typically set to current page number in the preview window. + + + + + Open the document after export. + + + + + Allows or disables the OpenAfterExport feature. + + + + + Gets or sets a value that determines whether to show progress window during export or not. + + + + + Gets a list of files generated by this export. + + + + + Gets a value indicating that the export may produce multiple output files. + + + + + Gets or sets a value indicating that the report bands should be shifted, if page + has any non-exportable bands + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Stream to export to. + + + + + File name to export to. + + + + + Array of page numbers to export. + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + This method is called when the export starts. + + + + + This method is called at the start of exports of each page. + + Page for export may be empty in this method. + + + + This method is called at the end of exports of each page. + + Page for export may be empty in this method. + + + + This method is called for each band on exported page. + + Band, dispose after method compite. + + + + This method is called when the export is finished. + + + + + Gets a report page with specified index. + + Zero-based index of page. + The prepared report page. + + + + + + + + + + Exports the report to a stream. + + Report to export. + Stream to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Exports the report to a file. + + Report to export. + File name to export to. + + This method does not show an export options dialog. If you want to show it, call + method prior to calling this method, or use the "Export(Report report)" method instead. + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export filter. + + + + + + + + Draw any custom controls + + + + + Draw any custom controls. + + + + + + Types of html export + + + + + Simple export + + + + + Web preview mode + + + + + Web print mode + + + + + hash:base64Image + + + + + Gets or sets images, embedded in html (hash:base64Image) + + + + + Sets a ID of report + + + + + Sets an onclick template + + + + + Enable or disable layers export mode + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Enable or disable showing of print dialog in browser when html document is opened + + + + + Enable or disable preview in Web settings + + + + + Enable or disable the breaks between pages in print preview when single page mode is enabled + + + + + Specifies the output format + + + + + Specifies the width units in HTML export + + + + + Specifies the height units in HTML export + + + + + Enable or disable the pictures in HTML export + + + + + Enable or disable embedding pictures in HTML export + + + + + Enable or disable the WEB mode in HTML export + + + + + Gets or sets html export mode + + + + + Enable or disable the single HTML page creation + + + + + Enable or disable the page navigator in html export + + + + + Enable or disable the sub-folder for files of export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + Gets print page data + + + + + Enable or disable saving streams in GeneratedStreams collection. + + + + + Enable or disable margins for pages. Works only for Layers-mode. + + + + + Enable or disable export of vector objects such as Barcodes in SVG format. + + + + + + + + + + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + Process Page with number p and real page ReportPage + + + + + + + + + + + + + For internal use only. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class for WebPreview mode. + + + + + + + + Event arguments for custom drawing of report objects. + + + + + Report object + + + + + ReportObject. + + + + + Resulting successfull drawing flag. + + + + + Resulting HTML string. + + + + + Resulting CSS string. + + + + + Layers mode when true or Table mode when false. + + + + + Zoom value for scale position and sizes. + + + + + Left position. + + + + + Top position. + + + + + Width of object. + + + + + Height of object. + + + + + Represents the HTML export templates. + + + + + Page Template Title + + + + + Page Template Footer + + + + + Navigator Template + + + + + OutlineTemplate + + + + + Index Template + + + + + Initializes a new instance of the class. + + + + + Represents the HTML export format enum + + + + + Represents the message-HTML type + + + + + Represents the HTML type + + + + + Specifies the image format in HTML export. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the units of HTML sizes. + + + + + Specifies the pixel units. + + + + + Specifies the percent units. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Represents the MHT export filter. + + + + + + + + Enable or disable the pictures in MHT export + + + + + Gets or sets the Wysiwyg quality of export + + + + + Gets or sets the image format. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the image export filter. + + + + + + + + Gets or sets the image format. + + + + + Gets or sets a value that determines whether to generate separate image file + for each exported page. + + + If this property is set to false, the export filter will produce one big image + containing all exported pages. Be careful using this property with a big report + because it may produce out of memory error. + + + + + Gets or sets image resolution, in dpi. + + + By default this property is set to 96 dpi. Use bigger values (300-600 dpi) + if you going to print the exported images. + + + + + Gets or sets horizontal image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets vertical image resolution, in dpi. + + + Separate horizontal and vertical resolution is used when exporting to TIFF. In other + cases, use the property instead. + + + + + Gets or sets the jpg image quality. + + + This property is used if is set to Jpeg. By default + it is set to 100. Use lesser value to decrease the jpg file size. + + + + + Gets or sets the value determines whether to produce multi-frame tiff file. + + + + + Gets or sets a value that determines whether the Tiff export must produce monochrome image. + + + Monochrome tiff image is compressed using the compression method specified in the + property. + + + + + Gets or sets the compression method for a monochrome TIFF image. + + + This property is used only when exporting to TIFF image, and the property + is set to true. + The valid values for this property are: EncoderValue.CompressionNone, + EncoderValue.CompressionLZW, EncoderValue.CompressionRle, + EncoderValue.CompressionCCITT3, EncoderValue.CompressionCCITT4. + The default compression method is CCITT4. + + + + + Sets padding in non separate pages + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image export format. + + + + + Specifies the .bmp format. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .gif format. + + + + + Specifies the .tif format. + + + + + Specifies the .emf format. + + + + + Represents the JSON export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the LaTeX export filter. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Base class for any ODF exports. + + + + + + + + Enum of OpenOffice formats. + + + + + OpenOffice Spreadsheet format. + + + + + OpenOffice Writer format. + + + + + Standard of ODF format. + + + + + ODF 1.0/1.1 + + + + + ODF 1.2 + + + + + XODF 1.0/1.1 + + + + + XODF 1.2 + + + + + Creator of the document + + + + + Is XODT format + + + + + Switch of page breaks + + + + + Wysiwyg mode, set for better results + + + + + Gets or sets ODF Compliance standard. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Spreadsheet export (Open Office Calc). + + + + + Initializes a new instance of the class. + + + + + + + + Open Document Text export (Open Office Writer). + + + + + Initializes a new instance of the class. + + + + + + + + MS Word 2007 export class + + + + + + + + Types of table rows height + + + + + Exactly height + + + + + Minimum height + + + + + Enable or disable matrix view of document + + + + + Enable or disable Paragraph view of document + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the type of height calculation. + + + + + Gets or sets the type of height calculation. + + + + + Enable or disable a resolution optimization. + + + + + Enable or disable DoNotExpandShiftReturn. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Word2007Export class. + + + + + Represents the PowerPoint 2007 export. + + + + + + + + Gets or sets the image format used when exporting. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the class with the default settings. + + + + + Excel 2007 export class + + + + + + + + Defines Print Scaling Mode. + + + + + Print sheets at thier actual size. + + + + + Shrink the printout so that it fits on one page. + + + + + Shrink the printout so that it is one page wide. + + + + + Shrink the printout so that it is one page high. + + + + + Gets or sets the Print Fit Mode. + + + + + Gets or sets the font scale value. + Default value is 1 + + + + + Enable or disable a resolution optimization. + + + + + Each report page is placed on a new Excel page. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Enable or disable export of page footers and next page headers without table breaks. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Main class of XML export + + + + + + + + PicturesCount + + + + + HumanReadable + + + + + + + + + + + + + + + + + + + + + + + Constructor of XPSExport + + + + + Destructor of XPSExport + + + + + Save + + + + + + + Padding over ridh object + + + + + This prperty keep RTF to DOC translation result, i.e. DOCX XML fragment + + + + + Base class for Microsoft Office 2007 export objects + + + + + Default XML header + + + + + Base class for export Office Open objects + + + + + Core document properties + + + + + Core document properties + + + + + Power point shape + + + + + Power Point Layout Descriptor + + + + + Power Point base class for style element + + + + + Base class for styles group + + + + + Base class for slides, masters, and layouts + + + + + Slide masters object + + + + + Ordinaty slide + + + + + Slide layout object + + + + + Presentation class + + + + + PPt Application Properties class + + + + + Ppt Table styles class + + + + + Ppt Presentation properties class + + + + + Ppt View Properties class + + + + + Specifies the image format in PowerPoint export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing class + + + + + Share all strings in document + + + + + Share all URL in document + + + + + Document styles + + + + + Workbook + + + + + OoXMLSheet class + + + + + Picture container + + + + + List of all document fonts + + + + + Single page export + + + + + Document structure descriptor + + + + + Font container + + + + + Font obfuscation procedure + + + + + PDF export (Adobe Acrobat) + + + + + + + + Embedded File + + + + + Name of embedded file. + + + + + Description of embedded file. + + + + + Modify Date of embedded file. + + + + + Relationship between the embedded document and the PDF part. + + + + + Valid MIME type. + + + + + Stream of embedded file. + + + + + File reference. + + + + + ZUGFeRD Conformance Level. + + + + Initializes a new instance of the class. + + + + Default preview size. + + + + + Actual size + + + + + Fit Page + + + + + Fit Width + + + + + Default + + + + + 10% + + + + + 25% + + + + + 50% + + + + + 75% + + + + + 100% + + + + + 125% + + + + + 150% + + + + + 200% + + + + + 400% + + + + + 800% + + + + + Standard of PDF format. + + + + + PDF 1.5 + + + + + PDF/A-1a + + + + + PDF/A-2a + + + + + PDF/A-2b + + + + + PDF/A-2u + + + + + PDF/A-3a + + + + + PDF/A-3b + + + + + Pdf/X-3 + + + + + Pdf/X-4 + + + + + Color Space. + + + + + RGB color space + + + + + CMYK color space + + + + + Types of pdf export. + + + + + Simple export + + + + + Web print mode + + + + + Relationship between the embedded document and the PDF part. + + + + + The embedded file contains data which is used for the visual representation. + + + + + The embedded file contains the source data for the visual representation derived therefrom in the PDF part. + + + + + This data relationship should be used if the embedded data are an alternative representation of the PDF contents. + + + + + This data relationship is used if the embedded file serves neither as the source nor as the alternative representation, but the file contains additional information. + + + + + If none of the data relationships above apply or there is an unknown data relationship, this data relationship is used. + + + + + ZUGFeRD Conformance Level. + + + + + Basic level. + + + + + Comfort level. + + + + + Extended level. + + + + + Gets or sets PDF Compliance standard. + After set, do not change other settings, it may lead to fail compliance test. + + + + + Enable or disable of embedding the TrueType fonts. + + + + + Enable or disable of exporting the background. + + + + + Enable or disable export text in curves + + + + + Gets or sets PDF color space + + + + + Enables or disables saving images in their original resolution + + + + + Enables or disables optimization of images for printing + + + + + Enable or disable image jpeg compression + + + + + Sets the quality of images in the PDF + + + + + Title of the document. + + + + + Author of the document. + + + + + Subject of the document. + + + + + Keywords of the document. + + + + + Creator of the document. + + + + + Producer of the document. + + + + + Sets the owner password. + + + + + Sets the user password. + + + + + Enable or disable printing in protected document. + + + + + Enable or disable modifying in protected document. + + + + + Enable or disable copying in protected document. + + + + + Enable or disable annotating in protected document. + + + + + Enable or disable the print dialog window after opening + + + + + Enable or disable hide the toolbar. + + + + + Enable or disable hide the menu's bar. + + + + + Enable or disable hide the Windows UI. + + + + + Enable or disable of fitting the window + + + + + Enable or disable of centering the window. + + + + + Enable or disable of scaling the page for shrink to printable area. + + + + + Enable or disable of document's Outline. + + + + + Set default zoom on open document + + + + + Sets the quality of RichText objects in the PDF + + + + + Enable or disable the compression in PDF document. + + + + + Enable or disable of images transparency. + + + + + Enable or disable of displaying document's title. + + + + + Set default page on open document + + + + + Color Profile (ICC file). + If "null" then default profile will be used + + + + + Gets or sets pdf export mode + + + + + Gets pdf AcroForms compatibility, if set then EmbeddingFonts = false and PdfCompliance = PdfStandard.None + + + + + Set pattern for selection of embedding glyphs for Interactive Forms + + + + + Enable or disable digital sign for pdf document + + + Be sure to specify a valid certificate for signing using the DigitalSignCertificate property. + Or using the DigitalSignCertificatePath and DigitalSignCertificatePassword properties. + + + + + Should save and serialize password for digital sign certificate. + Do not save password unless absolutely necessary!!! + + + + + Manualy sets digital sign certificate for exported documents. + + + This property is in priority, i.e. if a certificate is specified, + the DigitalSignCertificatePath and DigitalSignCertificatePassword properties will not be used. + + + + + The path for load digital sign certificate. + + + + + Sets digital sign certificate password. + + + + + Gets or sets the cpu host name or physical location of the signing + + + + + The reason for the signing, such as (I agree ...) + + + + + The information to enable the recipient to contact the signer to verify the signature + + + + + + + + + + + Begin exporting of page + + + + + + End exporting + + + + + + Export of Band + + + + + + + + + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + + + + Add an embedded XML file (only for PDF/A-3 standard). + + File name + Description + Modification date + File stream + ZUGFeRD Conformance Level + + + + Add an embedded file (only for PDF/A-3 standard). + + File name + Description + Modification date + Relation type + MIME type + File stream + + + + Initializes a new instance of the class. + + + + + Calculates mask for image. + + + + + Calculates image bounds according to . + + + + + Writes pixels' colors without alpha to stream according to CMYK or RGB color space. + Pixels should be in the format. + + + + + Update stream position for object number, only for int value + + int value + + + + + + The pdf export + size of place for svg + + + + The interpolation of curves (svg) + + + + + The interpolation of curves (text) + + + + + Export svg object as image, not vector + + + + + Gradient interpolation, high value will lead beautiful the gradient, + but the file size will increase and the speed of work will decrease. + + + + + The quality of gradient, export as image or export as gradient grid + + + + + Added graphics path to pdf, + + size of rect for gradient filling + path, with positions in pdf scaling + Any brush + Interpolation value + + matrix for transform to pdf scale + + + + returns true if this gradient is fillable by gradient grid + + + + + + The enum of curves interpolation + + + + + Export as curves, without interpolation + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + The enum of gradient interpolation points + + + + + Two points + + + + + Four points + + + + + Eight points + + + + + Sixteen points + + + + + Thirty two points + + + + + Sixty four points + + + + + One hundred and twenty eight points + + + + + Two hundred and fifty six points + + + + + The quality of gradient export + + + + + Export as image + + + + + Export as low quality gradient grid, max size of interpolation points is 32 + + + + + Export as medium quality gradient grid, max size of interpolation points is 128 + + + + + Export as high quality gradient grid, max size of interpolation points is 256 + + + + + File name without extentions, for example "MetaDataX" + + + + Represents the PPML export filter. + + + + + + + + Enable or disable the pictures in PPML export + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + + Add image as PPMLObject + + + + + + + + + + Save svg file. + + + + + Save svg stream. + + + + + + + + + + Represents the ps export filter. + + + + + + + + Enable or disable the pictures in PS export + + + + + Enable or disable export text in curves + + + + + Enable or disable export every page in separate file + + + + + Enable or disable saving every image in separate file + + + + + Gets or sets quality of JPEG images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + Create Window. + + + + Add TextLine in curves + + + + Method for add TextObject. + + + + + Method to add rectangle. + + + + + Method for add ellips. + + + + + Method for add triangle. + + + + + Method for add Diamond. + + + + + Method for add line. + + + + + Method for add line with dash. + + + + + Add image + + + + + + + + + + + Add image as hex code + + + + + + + + + + End of each page + + + + + Save file. + + + + + Save stream. + + + + + + + + + Represents the RTF export filter. + + + + + + + + Gets or sets the quality of Jpeg images in RTF file. + + + Default value is 90. This property will be used if you select Jpeg + in the property. + + + + + Gets or sets the image format that will be used to save pictures in RTF file. + + + Default value is Metafile. This format is better for exporting such objects as + MSChartObject and ShapeObject. + + + + + Gets or sets a value indicating that pictures are enabled. + + + + + Gets or sets a value indicating that page breaks are enabled. + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting rtf file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the creator of the document. + + + + + Gets or sets a value that determines whether the rows in the resulting table + should calculate its height automatically. + + + Default value for this property is false. In this mode, each row in the + resulting table has fixed height to get maximum wysiwyg. If you set it to true, + the height of resulting table will be calculated automatically by the Word processor. + The document will be more editable, but less wysiwyg. + + + + + Gets or sets a value that determines whether the repot's RichObject will be + translated as picture or joined to generated RTF. + + + Default value for this property is false. In this mode, each RichObject + will be embedded as a picture. This is default behavior. If you set it to true, + the RichObject will be incorporated as a navive part of document. This is experimetal + feature. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the image format in RTF export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Specifies the .emf format. + + + + + Represents the SVG export filter. + + + + + + + + Enable or disable the pictures in SVG export + + + + + Gets or sets the image format used when exporting. + + + + + Embed images into svg + + + + + Gets or sets value indicating whether or not should to force uniform scaling of SVG document + + + + + Gets or sets value indicating whether or not should be added 'viewBox' attribute to the svg tag + + + + + Gets or sets value indicating whether or not should be added 'width' and 'height' attributes to the svg tag + + + + + + + + Begin exporting of page + + + + + + + + + End exporting + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the alignment methods + + + + + Do not force uniform scaling. Scale the graphic content of the given element non-uniformly + if necessary such that the element's bounding box exactly matches the viewport rectangle. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint + X value of the viewport. Align the min-y of the element's viewBox with the smallest Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value + of the viewport. Align the min-y of the element's viewBox with the smallest Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the midpoint Y value of the element's viewBox with the midpoint Y value + of the viewport. + + + + + The default. Force uniform scaling. Align the midpoint X value of the element's viewBox + with the midpoint X value of the viewport. Align the midpoint Y value of the element's + viewBox with the midpoint Y value of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X + value of the viewport. Align the midpoint Y value of the element's viewBox with the midpoint + Y value of the viewport. + + + + + Force uniform scaling. Align the min-x of the element's viewBox with the smallest X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Force uniform scaling. Align the midpoint X value of the element's viewBox with the midpoint X + value of the viewport. Align the min-y+height of the element's viewBox with the maximum Y value + of the viewport. + + + + + Force uniform scaling. Align the min-x+width of the element's viewBox with the maximum X value of + the viewport. Align the min-y+height of the element's viewBox with the maximum Y value of the viewport. + + + + + Specifies the svg scale types + + + + + (the default) - Scale the graphic such that: + - aspect ratio is preserved + - the entire viewBox is visible within the viewport + - the viewBox is scaled up as much as possible, while still meeting the other criteria + + + + + Scale the graphic such that: + - aspect ratio is preserved + - the entire viewport is covered by the viewBox + - the viewBox is scaled down as much as possible, while still meeting the other criteria + + + + + Describes scaling of a svg documents + + + + + Gets the align value + + + + + Gets the meetOrSlice value + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + Align value + meetOrSlice value + + + + Represents the text export. + + + + + + + + Enable or disable the Data loss avoiding. + Auto calculation of ScaleX and ScaleY will be launched when dialogue window will be off. + + + + + Gets or sets the count of copies for printing of results. + + + + + Gets or sets the printer name for printing of results. + + + + + Enable or disable the printing results after export. + + + + + Gets or sets the active index of registered printer type. + + + + + Gets or sets the list of printer types. + + + + + Gets or sets the scale by X axis for correct text objects placement. + + + + + Gets or sets the scale by Y axis for correct text objects placement. + + + + + Gets or sets the encoding of resulting document. + + + Windows ANSI encoding + TextExport.Encoding = Encoding.Default; + Unicode UTF-8 encoding + TextExport.Encoding = Encoding.UTF8; + OEM encoding for current system locale sessings + TextExport.Encoding = Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage); + + + + + Enable or disable the data only output without any headers. Default value is false. + + + + + Enable or disable the breaks of pages in resulting document. Default value is true. + + + + + Enable or disable frames in resulting document. Default value is true. + + + + + Enable or disable the text (non graphic) frames in resulting document. Default value is false. + + + + + Enable or disable the output of empty lines in resulting document. Default value is false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Exports the page. + + + + + + + Calculates scale. + + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the printer command class + + + + + Gets or sets the active state of command. Default value is false. + + + + + Gets or sets the command name. + + + + + Gets or sets the list of "on sequence". + + + + + Gets or sets the list of "off sequence". + + + + + Initializes a new instance of the class. + + + + + Represents of the printer type class. + + + + + Gets or sets the printer name. + + + + + Gets or sets the list of printer commands. + + + + + Initializes a new instance of the class. + + + + + Represents supplement class for print of any stream directly in printer. + + + + + Prints a stream. + + Printer name on which should be print. + Document title for printer spooler. + Count of copies. + Stream that will be printed. + This example demonstrates the printing of Stream. + + TextExportPrint.PrintStream("EPSON FX-1000", "My Report", 1, txtStream) + + + + + Represents the XAML export filter. + + + + + + + + Gets or sets the class name of XAML document + + + + + Enable or disable the pictures in XAML export + + + + + Gets or sets the image format used when exporting. + + + + + Get or set scrollbar settings + + + + + Get dictionary of saved images + + + + + Add TextObject. + + + + + Add BandObject. + + + + + Add Line. + + + + + Add Shape. + + + + + + + + Begin exporting of page + + + + + + Export of Band + + + + + + End exporting + + + + + + + + + + + + Gem MemoryStream what contain image + + + + + + + + + + Initializes a new instance of the class. + + + + + Contains Dashes enum + + + + + Specifies the Dash. + + + + + Specifies the Dot. + + + + + Specifies the DashDot. + + + + + Specifies the DashDotDot. + + + + + Specifies the Double line. + + + + + XAML generator + + + + + Create Window. + + + + + Create Grid. + + + + + Create Canvas. + + + + + Create StackPanel + + + + + Create StackPanel + + + + + Create Resources tag + + + + + Add resource for TextObject + + + + + Add resource for TextObject with angle + + + + + Add resource for Line + + + + + Add resource for Rectangle + + + + + Add resource for Ellipse + + + + + Add resource for Polygon + + + + + Add TextObject. + + + + + Method for add TextObject with angle + + + + + Add line. + + + + + Add line with dash. + + + + + Add rectangle. + + + + + Add ellips. + + + + + Add triangle. + + + + + Add Diamond. + + + + + Add image + + + + + + + + + + + + Add image without name + + + + + + + + + + + Add page to StackPanel + + + + + + Save xaml file. + + + + + Save xaml stream. + + + + + + + + + + + + + Specifies the image format in XAML export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Represents the Excel 2003 XML export filter. + + + + + + + + Gets or sets a value that determines whether to insert page breaks in the output file or not. + + + + + + Gets or sets a value that determines whether the wysiwyg mode should be used + for better results. + + + Default value is true. In wysiwyg mode, the resulting Excel file will look + as close as possible to the prepared report. On the other side, it may have a lot + of small rows/columns, which will make it less editable. If you set this property + to false, the number of rows/columns in the resulting file will be decreased. + You will get less wysiwyg, but more editable file. + + + + + Gets or sets the name of document creator. + + + + + Gets or sets a value that determines whether to export the databand rows only. + + + + + Each report page is placed on a new Excel page. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the Zpl export filter. + + + + + + + + Enum of densty types of Zebra printers. + + + + + 6 dpmm(152 dpi) + + + + + 8 dpmm(203 dpi) + + + + + 12 dpmm(300 dpi) + + + + + 24 dpmm(600 dpi) + + + + + Sets the density of printer. + + + + + Sets the init string for sending before printing the document. + + + + + Sets the code page of document. Default is UTF-8 (^CI28). + + + + + Sets the string for sending after printing the document. + + + + + Sets the string for sending before printing each page. + + + + + Sets the scale font size. + + + + + Sets the Printer Font, default value is "A". + + + + + Enable or disable export as bitmap. + + + + + Writes the string value in stream. + + + + + + + Writes the string value in stream with CRLF. + + + + + + + Gets the left position in zpl units. + + + + + + + Gets the top position in zpl units. + + + + + + + Exports the TableObject. + + + + + + Exports the LineObject. + + + + + + Exports the ShapeObject. + + + + + + Exports the TextObject. + + + + + + Gets the position of object in ZPL code. + + + + + + + + Gets the text attributes in ZPL code. + + + + + + + + + + + Gets the text with font width and height in ZPL code. + + + + + + + + + Gets the horiz align in ZPL code. + + + + + + + Gets the rectangle in ZPL code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Specifies the export font class. + + + + + These fonts not support Bold or Itailc styles + + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontPanose structure + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of FontTextMetric structure + + + + + Return text metric structure, need to use after FillOutlineTextMetrix() + + + + + Gets or sets internal font name + + + + + Return source font used in constructor + + + + + Returns multiplier for stroke bold emulation + + + + + Gets or sets internal reference + + + + + Gets or sets internal property - save flag + + + + + True if bold style is not supported by font + + + + + True if italic style is not supported by font + + + + + Mark font as editable for InteractiveForms + + + + + Run fill outline text metric structure + + + + + Return glyph width + + + + + + + Return font file + + + + + + Get font data and set NeedSimulateBold and NeedSimulateItalic properties. Call this method after FillOutlineTextMetrix + + + + + Remap str in glyph indexes. Return string with glyph indexes. + + + + + + + + Set pattern for generation of alphabet's subset + + Regular expression with pattern generator + Use left-to-right rules + + + + Return english name of source font + + + + + + Return PANOSE string + + + + + + Create object of ExportTTFFont. + + + + + + Destructor + + + + + This property for internal use only. + + + + + Binary tree class + + + + + Maximal value between child and parent + + + + + Nodes count + + + + + Root node + + + + + Nodes array. Accending sorting by node value. Available after close of tree. + + + + + Accecptable inaccuracy of new values. + + + + + Recursive add value to a node. + + + + + + + + Poll right child node for correct balance. + + + + + + Poll left child for correct balance. + + + + + + Recursive indexation of node and childs. + + + + + + Add new value in tree. All equals are skipped. + + + + + + Close the tree and make index array. + + + + + Seek of value index in the tree. + + + + + + + Find of value index in sub-tree of node. + + + + + + + + Borrow values form List in the tree + + + + + + Borrow values form array in the tree + + + + + + Clear tree + + + + + Tree constructor + + + + + Tree node class + + + + + Link to left child + + + + + Link to right child + + + + + Node value + + + + + Count of nodes in left sub-tree + + + + + Count of nodes in right sub-tree + + + + + Node index + + + + + Node constructor + + + + + + For internal use only. + + + + + Gets current page width. + + + + + + + Gets current page height. + + + + + + + + + + + + + + Class for handling Exports visibility in the Preview control. + + + + + All exports available in the Preview control. + + + + + Gets an instance of ExportOptions. + + + + + + Exports menu node. + + + + + Gets the name. + + + + + Gets nodes. + + + + + Gets type of the export. + + + + + Gets index of the image. + + + + + Gets or sets the tag. + + + + + Gets or sets a value that indicates is node enabled. + + + + + Gets true if node is export, otherwise false. + + + + + Saves current visible exports in config file. + + + + + Restores visible exports from config file. + + + + + + + + + + Sets Export category visibility. + + Export category name. + Visibility state. + + + + Sets Export visibility. + + Export type. + Visibility state. + + + + Default Exports menu + + Tree that contains default Exports menu + + + + All cloud exports available in the preview. + + + + + All messengers exports available in the preview. + + + + + Default cloud exports menu. + + Tree that contains default cloud exports menu. + + + + Default messengers. + + + + + + Register all clouds. + + + + + Register all messengers. + + + + + Contains some configuration properties and settings that will be applied to the FastReport.Net + environment, including Report, Designer and Preview components. + + + + + Gets or sets the main form of application. + + + + + Gets or sets a value indicating that UI library must use high dpi compatible rendering. + + This flag is false by default. Turn it on at the application start if you need + better appearance of custom drawn UI items in high dpi mode. This however may result in + wrong appearance on multi-monitor setup. + /// + + + + Gets or sets the settings for the report designer window. + + + + + Gets or sets the UI style. + + + This property affects both designer and preview windows. + + + + + Gets or sets a value indicating whether the Ribbon UI should be used + + + + + Gets or set the current icon pack index. Default is 0 (classic). + + Set this property at the application start. + + + + Gets or sets a value indicating whether SplashScreen should be displayed while loading designer + + + + + Gets or sets a value indicating whether Welcome window feature enabled. + If false, interface elements associated with the Welcome window will not be visible. + + + + + Gets or sets a value indicating whether Welcome window shoud be displayed on startup + + + + + Gets the folder to store auto save files + + + + + Gets the autosaved report + + + + + Gets the autosaved report path + + + + + Is necessary to process abort and some other events in parallel + + + + + Gets a value indicating that the ASP.NET hosting permission level is set to full trust. + + + + + Gets or sets a value that determines whether to disable some functionality to run in web mode. + + + Use this property if you use FastReport in ASP.Net. Set this property to true before + you access any FastReport.Net objects. + + + + + Restores the form state from the configuration file. + + The form to restore. + + + + Saves the form state to the configuration file. + + The form to save. + + + + Saves the form state to the configuration file. + + The name of the form. + True if the form is in maximized state. + True if the form is in minimized state. + The location of the form. + The size of the form. + + + + Checks the visibility of rectangle area on currently connected screens with small gap. + + Rectanle area for checking. + True for visible rect. + + + + Gets or sets the settings for the preview window. + + + + + Gets a value indicating that the Mono runtime is used. + + + + + Gets or sets a value indicating is it impossible to specify a local data path in Xml and Csv. + + + + + Gets or sets the optimization of strings. Is experimental feature. + + + + + Enable or disable the compression in files with prepared reports (fpx). + + + + + Gets the application folder. + + + + + Gets an english culture information for localization purposes + + + + + Gets or sets the path used to load/save the configuration file. + + + By default, the configuration file is saved to the application local data folder + (C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\). + Set this property to "" if you want to store the configuration file in the application folder. + + + + + Gets or sets the path used to font.list file. + + + By default, the font.list file is saved to the FastReport.config folder + If WebMode enabled (or config file path is null), then file is saved in the application folder. + + + + + Gets or sets the settings for the Report component. + + + + + Gets or sets a value indicating whether RTL layout should be used. + + + + + Gets or sets a value indicating whether hotkeys should be disabled. + + + + + Gets the root item of config xml. + + + + + Gets or sets the path to the temporary folder used to store temporary files. + + + The default value is null, so the system temp folder will be used. + + + + + Gets the path to the system temporary folder used to store temporary files. + + + + + Gets FastReport version. + + + + + Called on script compile + + + + + Gets a PrivateFontCollection instance. + + + + + Enable report script validation. For WebMode only + + + + + Throws when property EnableScriptSecurity has been changed + + + + + Properties of report script validation + + + + + Properties of ScriptSecurity + + + + + Add stubs for the most dangerous classes (in System.IO, System.Reflection etc) + + + + + List of keywords that shouldn't be declared in the report script + + + + + Throws when has changed + + + + + Sets default value for + + + + + Gets or sets the settings for the "Send Email" window. + + + + + Get access to font collection + + + + + Holds the information about the registered object. + + + + + Image index. + + + + + Button index. + + + + + Name of object or category. + + + + + The registered object. + + + + + The registered function. + + + + + Tooltip text. + + + + + Flags that will be used to create an object instance in the designer. + + + + + Indicates whether this object can be inserted several times simultaneously. + + + This is applied to Line object only. + + + + + Gets or sets the enabled flag for the object. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + + + + + + + + + + + + + + + + Contains all registered report items such as objects, export filters, wizards. + + + Use this class to register own components, wizards, export filters or another items that + need to be serialized to/from a report file. + + + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + + + + + + Registers a new cloud storage client. + + Type of cloud storage client. + Text for cloud storage client's menu item. + + The obj must be of type. + + + + // register own cloud storage client + RegisteredObjects.AddCloud(typeof(MyCloud), "My Cloud"); + + + + + + Registers a new messenger. + + Type of messenger. + Text messenger's menu item. + + The obj must be of type. + + + + // register own messenger + RegisteredObjects.AddMessenger(typeof(MyMessenger), "My Messenger"); + + + + + + Registers a new wizard. + + Type of wizard. + Image for wizard item. + Text for wizard item. + true if this wizard creates some items in existing report. + + The obj must be of type. + + This example shows how to register own wizard that is used to create some items in the + current report. If you want to register a wizard that will be used to create a new report, + set the isReportItemWizard to false. + + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + + + + + + Root object for all registered objects. + + + + + Root object for all registered functions. + + + + + Checks whether the specified type is registered already. + + Type to check. + true if such type is registered. + + + + Registers a category that may contain several report objects. + + Category name. + Image for category button. + Text for category button. + + Category is a button on the "Objects" toolbar that shows context menu with nested items + when you click it. Consider using categories if you register several report objects. It can + save space on the "Objects" toolbar. For example, FastReport registers one category called "Shapes" + that contains the LineObject and different types of ShapeObject. + The name of category must starts either with "ReportPage," or "DialogPage," depending on + what kind of controls do you need to regiter in this category: report objects or dialog controls. + After the comma, specify the category name. So the full category name that you need to specify + in the name parameter, must be something like this: "ReportPage,Shapes". + + When register an object inside a category, you must specify the full category name in the + category parameter of the Add method. + + + + + Register Export category. + + Category name. + Category text. + + + + Registers a new export filter. + + Type of export filter. + Text for export filter's menu item. + + The obj must be of type. + + + + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + + + + + + Registers custom data connection. + + Type of connection. + Name of connection. + + The obj must be of type. + + + + // register data connection + RegisteredObjects.AddConnection(typeof(MyDataConnection), "My Data Connection"); + + + + + + Registers an object in the specified category. + + Type of object to register. + Name of category to register in. + Index of image for object's button. + Index of object's button in toolbar. + + + + Registers an object in the specified category with button's image, text, object's flags and multi-insert flag. + + Type of object to register. + Name of category to register in. + Image for object's button. + Text for object's button. + Integer value that will be passed to object's OnBeforeInsert method. + Specifies whether the object may be inserted several times until you + select the "arrow" button or insert another object. + + You must specify either the page type name or existing category name in the category parameter. + The report objects must be registered in the "ReportPage" category or custom category that is + registered in the "ReportPage" as well. The dialog controls must be registered in the "DialogPage" + category or custom category that is registered in the "DialogPage" as well. + If you want to register an object that needs to be serialized, but you don't want + to show it on the toolbar, pass empty string in the category parameter. + + To learn about flags, see the method. + + + + // register the report object + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage", myReportObjectBmp, "My Report Object"); + // register the dialog control + RegisteredObjects.Add(typeof(MyDialogControl), "DialogPage", myDialogControlBmp, "My Dialog Control"); + // add a category and register an object inside it + RegisteredObjects.AddCategory("ReportPage,MyCategory", myCategoryBmp, "My Category"); + // register another report object in MyCategory + RegisteredObjects.Add(typeof(MyReportObject), "ReportPage,MyCategory", + anotherReportObjectBmp, "Another Report Object"); + + + + + + Adds a new function category. + + Short name of category. + Display name of category. + + Short name is used to reference the category in the subsequent + method call. It may be any value, for example, "MyFuncs". Display name of category is displayed + in the "Data" window. In may be, for example, "My Functions". + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + + + This example shows how to register a new category: + + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + + + + + Adds a new function into the specified category. + + MethodInfo containing all necessary information about the function. + The name of category to register the function in. + + Your function must be a static, public method of a public class. + The following standard categories are registered by default: + + + "Math" + + + "Text" + + + "DateTime" + + + "Formatting" + + + "Conversion" + + + "ProgramFlow" + + + You may use one of the standard categories, or create a new category by the + method call. + FastReport uses XML comments to display your function's description. + To generate XML comments, enable it in your project's properties + ("Project|Properties..." menu, "Build" tab, enable the "XML documentation file" checkbox). + + + The following example shows how to register own functions: + + public static class MyFunctions + { + /// <summary> + /// Converts a specified string to uppercase. + /// </summary> + /// <param name="s">The string to convert.</param> + /// <returns>A string in uppercase.</returns> + public static string MyUpperCase(string s) + { + return s == null ? "" : s.ToUpper(); + } + + /// <summary> + /// Returns the larger of two 32-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static int MyMaximum(int val1, int val2) + { + return Math.Max(val1, val2); + } + + /// <summary> + /// Returns the larger of two 64-bit signed integers. + /// </summary> + /// <param name="val1">The first of two values to compare.</param> + /// <param name="val2">The second of two values to compare.</param> + /// <returns>Parameter val1 or val2, whichever is larger.</returns> + public static long MyMaximum(long val1, long val2) + { + return Math.Max(val1, val2); + } + } + + // register a category + RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); + + // obtain MethodInfo for our functions + Type myType = typeof(MyFunctions); + MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase"); + MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) }); + MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) }); + + // register simple function + RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs"); + + // register overridden functions + RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum"); + RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum"); + + + + + + Finds the registered object's info. + + The type of object to find. + The object's info. + This method can be used to disable some objects, for example: + RegisteredObjects.FindObject(typeof(PDFExport)).Enabled = false; + + + + + Register and override the method with method name in the type. + For property use the property name and _Get or _Set suffix. + + Type for registering method + Name of method fir registering + Method for registering + + + + Gets the method or null if method is not found + + Type for method finding + Name for method finfing + Use True value for inheritance the method from base type, use false for get the method only from the this type + + + + + Used to get localized values from the language resource file. + + + The resource file used by default is english. To load another locale, call + the method. It should be done at application start + before you use any FastReport classes. + + + + + Adds user image to 96 dpi images. + + User image (16x16 pixels). + Image index in the image list. + + + + Gets the standard images used in FastReport as an ImageList. + + ImageList object that contains standard images. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified index. + + Image index (zero-based). + Dpi value (96 for base dpi). + The image with specified index. + + FastReport contains about 240 truecolor images of 16x16 size that are stored in one + big image side-by-side. This image can be found in FastReport resources (the "buttons.png" resource). + + + + + Gets an image with specified name from resources. + + The name of image resource. + Dpi value (96 for base dpi). + The image. + + + + Gets an image with specified index and converts it to Icon. + + Image index (zero-based). + Dpi value (96 for base dpi). + The Icon object. + + + + Gets or set the folder that contains localization files (*.frl). + + + + + Returns the current UI locale name, for example "en". + + + + + Loads the locale from a file. + + The name of the file that contains localized strings. + + + + Loads and caches the locale from information. + Notes: *.frl the localization file is looked for in + To work correctly, it is recommended to install FastReport.Localization package + + + + + + Loads the locale from a stream. + + The stream that contains localized strings. + + + + Loads the english locale. + + + + + Gets a string with specified ID. + + The resource ID. + The localized string. + + Since the locale file is xml-based, it may contain several xml node levels. For example, + the file contains the following items: + + <Objects> + <Report Text="Report"/> + <Bands Text="Bands"> + <ReportTitle Text="Report Title"/> + </Bands> + </Objects> + + To get the localized "ReportTitle" value, you should pass the following ID + to this method: "Objects,Bands,ReportTitle". + + + + + Get builtin string. + + + + + + + Replaces the specified locale string with the new value. + + Comma-separated path to the existing locale string. + The new string. + + Use this method if you want to replace some existing locale value with the new one. + + + + Res.Set("Messages,SaveChanges", "My text that will appear when you close the designer"); + + + + + + Tries to get a string with specified ID. + + The resource ID. + The localized value, if specified ID exists; otherwise, the ID itself. + + + + Tries to get builtin string with specified ID. + + + + + + + Checks if specified ID exists. + + The resource ID. + true if specified ID exists. + + + + Resource loader class. + + + + + Gets a bitmap from specified assembly resource. + + Assembly name. + Resource name. + Bitmap object. + + + + Gets a bitmap from specified FastReport assembly resource. + + Resource name. + Bitmap object. + + + + Gets a cursor from specified assembly resource. + + Assembly name. + Resource name. + Cursor object. + + + + Gets a cursor from specified FastReport assembly resource. + + Resource name. + Cursor object. + + + + Gets an icon from specified assembly resource. + + Assembly name. + Resource name. + Icon object. + + + + Gets an icon from specified FastReport assembly resource. + + Resource name. + Icon object. + + + + Gets a stream from specified assembly resource. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from FastReport assembly resource. + + Resource name. + Stream object. + + + + Gets a stream from specified assembly resource and unpacks it. + + Assembly name. + Resource name. + Stream object. + + + + Gets a stream from specified FastReport assembly resource and unpacks it. + + Resource name. + Stream object. + + + + A static class that contains methods to auto-convert rtl layout. + + + + + Changes control's layout to rtl. + + + + + + Draws an image and a text. + + The control which is used to determine RTL and DPI settings. + The draw event args. + The image. + The text. + This method is used to draw items in an owner-drawn listboxes and comboboxes. It respects RTL and DPI settings of a control. + + + + Gets current dpi value for the control. + + The control. + The dpi value. + + + + Gets current dpi multiplier for the control (1.0 for 96dpi). + + The control. + The dpi multiplier. + + + + Gets current font dpi multiplier for the control (1.0 for 96dpi). + + The return value depends on the base resolution of the main screen. + The control. + The font dpi multiplier. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical units to device units (pixels). + + The control. + Logical units. + Device units. + + + + Converts logical font to device font. + + The control. + Logical font. + Determines whether to dispose the original font or not. + Device font. + + + + Returns an image from resources using control's dpi value. + + The control. + Image index. + An image with specified index from "buttons.png" resource. + + + + Returns an image from resources using control's dpi value. + + The control. + Image name. + An image with specified index from "buttons.png" resource. + + + + Returns an imagelist from resources using control's dpi value. + + The control. + An imagelist from "buttons.png" resource. + + + + The style of FastReport user interface. + + + + + Specifies the Microsoft Office 2003 style (blue). + + + + + Specifies the Microsoft Office 2007 style (blue). + + + + + Specifies the Microsoft Office 2007 style (silver). + + + + + Specifies the Microsoft Office 2007 style (black). + + + + + Specifies the Office 2010 (Blue) style. + + + + + Specifies the Office 2010 (Silver) style. + + + + + Specifies the Office 2010 (Black) style. + + + + + Specifies the Office 2013 style. + + + + + Specifies the Microsoft Visual Studio 2005 style. + + + + + Specifies the Visual Studio 2010 style. + + + + + Specifies the Visual Studio 2012 (Light) style. + + + + + Specifies the Microsoft Vista style (black). + + + + + Contains conversion methods between FastReport's UIStyle to various enums. + + + + + Contains visual style names. + + + + + Converts FastReport's UIStyle to eDotNetBarStyle. + + Style to convert. + Value of eDotNetBarStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eTabStripStyle. + + Style to convert. + Value of eTabStripStyle type. + + + + Converts FastReport's UIStyle to eOffice2007ColorScheme. + + Style to convert. + Value of eOffice2007ColorScheme type. + + + + Converts FastReport's UIStyle to eColorSchemeStyle. + + Style to convert. + Value of eColorSchemeStyle type. + + + + Returns app workspace color for the given style. + + UI style. + The color. + + + + Returns control color for the given style. + + UI style. + The color. + + + + Contains methods to call common editors. + + + Use this class if you are writing a new component for FastReport. + + + + + Invokes the expression editor. + + A reference to the report. + The expression to edit. + The new expression. + + + + Invokes the border editor. + + The Border to edit. + The new border. + + + + Invokes the data band columns editor. + + The data band columns to edit. + + + + + Invokes the fill editor. + + The fill to edit. + The new fill. + + + + Invokes the outline editor. + + The outline to edit. + The new outline. + + + + Provides the message functions. + + + + + Shows the Message Box with error message. + + The message. + + + + Shows Message Box with confirmation. + + The message. + The dialog buttons. + The dialog result. + + + + Shows information Message Box. + + The message. + + + + The profiler. + + + + + Starts the profiler. + + + + + Finishes the profiler and displays results. + + + + + Script security event arguments. + + + + + Gets the report language. + + The report language. + + + + Gets the report. + + The report. + + + + Gets the report script. + + The report script. + + + + Gets the references of script. + + Script references + + + + Gets or sets value if script is allowed to compile + + true if is valid; otherwise, false. + + + + Initializes a new instance of the class. + + Report. + Report's script. + Report's references. + + + + Base class for plugin's assembly initializer. + + + FastReport has an open architecture. That means you can extend it with own classes + such as report objects, wizards, export filters. Usually such classes are + placed in separate dlls (plugins). FastReport has mechanism to load plugin dlls. You can specify + which plugins to load at first start, in the FastReport configuration file (by default it is located in the + C:\Documents and Settings\User_Name\Local Settings\Application Data\FastReport\FastReport.config file). + To do this, add an xml item with your plugin name inside the <Plugins> item: + + <?xml version="1.0" encoding="utf-8"?> + <Config> + <Plugins> + <Plugin Name="c:\Program Files\MyProgram\MyPlugin.dll"/> + </Plugins> + </Config> + + When you run your application and use the Report object first time, all plugins will be loaded. + To register objects contained in a plugin, FastReport searches for classes of type + AssemblyInitializerBase and instantiates them. + Use this class to register custom report objects, controls, wizards, exports that + are contained in the assembly. To do this, make your own class of the AssemblyInitializerBase + type and override its default constructor. In the constructor, call RegisteredObjects.Add + methods to register all necessary items. + + + + + Registers plugins contained in this assembly. + + + This constructor is called automatically when the assembly is loaded. + + This example show how to create own assembly initializer to register own items. + + public class MyAssemblyInitializer : AssemblyInitializerBase + { + public MyAssemblyInitializer() + { + // register own wizard + RegisteredObjects.AddWizard(typeof(MyWizard), myWizBmp, "My Wizard", true); + // register own export filter + RegisteredObjects.AddExport(typeof(MyExport), "My Export"); + // register own report object + RegisteredObjects.Add(typeof(MyObject), "ReportPage", myObjBmp, "My Object"); + } + } + + + + + + Source of image, only for inline img tag + + + + + Class for ACMYK color conversions + + + + + Alpha transparency 0..255 + + + + + Cyan 0..100 + + + + + Magenta 0..100 + + + + + Yellow 0..100 + + + + + Black 0..100 + + + + + Returns ACMYK as string. + + + + + + Gets CMYKA from string. + + + + + + Converts Color value to ACMYK + + + + + + Converts separate ARGB values in ACMYK + + + + + + + + + Returns ARGB color value + + + + + + Creates CMYKColor from ARGB values + + + + + + + + + Creates CMYKColor from ACMYK values + + + + + + + + + + Creates CMYKColor from string (comma separated values) + + + + + + Creates CMYKColor from Color value + + + + + + Color Utilities + + + + + Return true for CMYK Jpeg image + + + + + + + Contains methods that peform string to object and vice versa conversions. + + + + + Converts an object to a string. + + The object to convert. + The string that contains the converted value. + + + + Converts a value to a string using the specified converter. + + The object to convert. + The type of converter. + The string that contains the converted value. + + + + Converts a string value to the specified data type. + + The data type to convert to. + The string to convert from. + The object of type specified in the type parameter that contains + a converted value. + + + + Converts a string to an object using the specified converter. + + The string to convert. + The type of converter. + The object that contains the converted value. + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + The result string. + + This method replaces some special symbols like <, > into xml-compatible + form: &lt;, &gt;. To convert such string back to original form, use the + method. + + + + + Converts a string containing special symbols to the xml-compatible string. + + The string to convert. + Determines whether it is necessary to convert cr-lf symbols to xml form. + The result string. + + + + Converts a value to xml-compatible string. + + The value to convert. + The result string. + + + + Convert the xml-compatible string to the regular one. + + The string to convert. + The result string. + + This is counterpart to the method. + + + + + Decreases the precision of floating-point value. + + The initial value. + The number of decimal digits in the fraction. + The value with lesser precision. + + + + Converts a string value to the float. + + The string value to convert. + The float value. + + Both "." or "," decimal separators are allowed. + + + + + Converts a string value to the float. + + The string value to convert. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + The float value. + + + + Converts a string value to the float. + + The string value to convert. + Decimal separator. + Indicates whether to ignore non-digit symbols. + The float value. + + + + Converts the string containing several text lines to a collection of strings. + + The string to convert. + The collection instance. + + + + Converts a collection of strings to a string. + + The collection to convert. + The string that contains all lines from the collection. + + + + Converts null value to 0, false, empty string, depending on type. + + The data type. + The value of the type data type. + + + + Converts string value to byte[]. + + The string to convert + The value of the byte[] data type. + + + + Converts a string to NameValueCollection. + + The string to convert. + The NameValueCollection that contains the name/value pairs. + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Result of processing + True if successful + + + + Convert &amp;&Tab;&quot; etc to symbol and return result as string + + String for processing + Position for processing + Append result of processing to FastString + True if successful + + + + Calc the Crc32 checksum + + + + + Caclulate Streams checksum. + + + + + + + Calculate byte array checksum. + + + + + + + Calculate string checksum. + + + + + + + Begin the checksum + + + + + + Update the checksum + + + + + + + + + + End the checksum. + + + + + + + Contains methods used to crypt/decrypt a data. + + + + + Sets the password that is used to crypt connection strings stored in a report. + + + See the property for more details. + + + + + Crypts a stream using specified password. + + The destination stream that will receive the crypted data. + The password. + The stream that you need to write to. + + Pass the stream you need to write to, to the dest parameter. Write your data to the + stream that this method returns. When you close this stream, the dest stream will be + closed too and contains the crypted data. + + + + + Decrypts a stream using specified password. + + Stream that contains crypted data. + The password. + The stream that contains decrypted data. + + You should read from the stream that this method returns. + + + + + Checks if the stream contains a crypt signature. + + Stream to check. + true if stream is crypted. + + + + Encrypts the string using the default password. + + String to encrypt. + The encrypted string. + + The password used to encrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Encrypts the string using specified password. + + String to encrypt. + The password. + The encrypted string. + + + + Decrypts the string using the default password. + + String to decrypt. + The decrypted string. + + The password used to decrypt a string can be set via property. + You also may use the method if you want to + specify another password. + + + + + Decrypts the string using specified password. + + String to decrypt. + The password. + The decrypted string. + + + + Computes hash of specified stream. Initial position in stream will be saved. + + Initial stream + + + + + Computes hash of specified array. + + Initial array + + + + + Computes hash of specified array. + + Initial array + + + + + MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. + It was created by Austin Appleby in 2008 and is currently hosted on Github along with its test suite named 'SMHasher'. + It also exists in a number of variants, all of which have been released into the public domain. + The name comes from two basic operations, multiply (MU) and rotate (R), used in its inner loop. + https://en.wikipedia.org/wiki/MurmurHash + Implementation of Murmur3 Hash by Adam Horvath + http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html + + + + + READ_SIZE + + + + + ComputeHash function + + + + + + + Gets the Hash + + + + + Used to draw a text with non-standard angle or justification. + + + + + Draws a string. + + String to draw. + Graphics object to draw on. + Font that used to draw text. + Brush that determines the color and texture of the drawn text. + RectangleF structure that specifies the location of the drawn text. + StringFormat that specifies formatting attributes, such as line spacing and alignment, that are applied to the drawn text. + Horizontal alignment of the text. + Width ratio of the font used to draw a string. + Line height, in pixels. + Angle of the text, in degrees. + Indicates whther to draw string close to the printout. + Force justify for the last line. + + + + Initializes a new instance of the DrawText class with default settings. + + + + + Draws control to a bitmap. + + Control to draw. + Determines whether to draw control's children or not. + The bitmap. + + + + The exception that is thrown when the user tried to set object's name that is already exists. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when the user tried to rename an object that is introduced in the ancestor report. + + + + + The exception that is thrown when loading bad formed xml report file. + + + + + The exception that is thrown when loading an encrypted report with wrong password. + + + + + The exception that is thrown if there is an error in the report's script code. + + + + + The exception that is thrown when trying to set an object's Parent property to + an object that not accepts children of this type. + + + + + The exception that is thrown when trying to load a report file that contains reference to an + unknown object type. + + + + + The exception that is thrown when initializing a table datasource which + TableName or Alias is not set properly. + + + + + The exception that is thrown when trying to access a row of a datasource that is not initialized yet. + + + + + The exception that is thrown if an error occurs in the TableObject.ManualBuild event. + + + + + The exception that is thrown if an error occurs in the MatrixObject.ManualBuild event. + + + + + The exception that is thrown if a report object's Name property is set to wrong value. + + + + + The exception that is thrown if an unknown value is supplied to some methods dealing with totals, variables etc. + + + + + throws this exception if an error occurs in the SaveReport method. + See inner exception for detailed information. + + + + + The exception that is thrown when the Group Header has no group condition. + + + + + The helper class used to create unique component names using the fastest method. + + + Note: you can create unique component's name using its CreateUniqueName method. + However, it is very slow and can't be used in some situations (when you create a report + layout in a code and have a lot of objects on a page). + + This example demonstrates how to use this class. + + FastNameCreator nameCreator = new FastNameCreator(Report.AllObjects); + foreach (Base c in Report.AllObjects) + { + if (c.Name == "") + nameCreator.CreateUniqueName(c); + } + + + + + + Creates the unique name for the given object. + + The object to create name for. + + + + Initializes a new instance of the FastNameCreator class with collection of + existing report objects. + + The collection of existing report objects. + + + + Fast alternative of StringBuilder. + + + + + Gets the Length of string. + + + + + Gets or sets the chars of string. + + + Char value + + + + Gets StringBuilder + + + + + Initialize the new array for chars. + + Length of initial array. + + + + Checks the empty array. + + True if string is empty. + + + + Converts the array in string. + + String value. + + + + Clears the string. + + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Appends the string by string value. + + String value. + FastString object. + + + + Append formatted string. + + + + + + + + Appends new line. + + FastString object. + + + + Appends the string by char value. + + Char value. + FastString object. + + + + Appends the another FastString object. + + FastString object. + FastString object. + + + + Appends the string by object data. + + Object value. + FastString object. + + + + Copies the substring in char array. + + Start index in source. + Destination array. + Destination index. + Count of chars + + + + Removes substring. + + Start index of removed string. + Length of removed string. + FastString object. + + + + Inserts string. + + Start index in existing string. + Value of inserting string. + FastString object. + + + + Replacing the substring on other. + + Old string value. + New string value. + FastString object. + + + + Index of substring. + + Substring for search. + Sarting position for search. + Position of substring. + + + + Compare of substring in position. + + Starting index for comparsion. + Value for compare. + True if substring is identical in position. + + + + Returns the substring. + + Starting index. + Length of substring. + Substring. + + + + Creates the new FastString object with initial capacity. + + Initial capacity. + + + + Creates the new FastString object with default capacity. + + + + + Creates the new FastString object from initial string. + + + + + + Represents a collection of float values. + + + + + Gets or sets the value at the specified index. + + Index of a value. + The value at the specified index. + + + + Adds the specified values to the end of this collection. + + + + + + Adds a value to the end of this collection. + + Value to add. + Index of the added value. + + + + Inserts a value into this collection at the specified index. + + The zero-based index at which value should be inserted. + The value to insert. + + + + Removes the specified value from the collection. + + Value to remove. + + + + Returns the zero-based index of the first occurrence of a value. + + The value to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether a value is in the collection. + + The value to locate in the collection. + true if value is found in the collection; otherwise, false. + + + + Copies values from another collection. + + Collection to copy from. + + + + Represents a collection of FastReport base objects. + + + + + Gets an owner of this collection. + + + + + Adds the specified elements to the end of this collection. + + Range of elements. + + + + Adds the specified elements to the end of this collection. + + Collection of elements. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Returns an array of collection items. + + + + + + Determines whether two collections are equal. + + The collection to compare with. + true if collections are equal; false otherwise. + + + + Copies the content to another collection. + + The collection to copy to. + + + + + + + + + + + + + Initializes a new instance of the FRCollectionBase class with default settings. + + + + + Initializes a new instance of the FRCollectionBase class with specified owner. + + The owner of this collection. + + + + Specifies the main mode of the designer's workspace. + + + + + Specifies selection mode. + + + + + Specifies insertion mode. + + + + + Specifies drag-drop mode. + + + + + Specifies the additional mode of the designer's workspace. + + + + + Specifies default mode. + + + + + Indicates that user moves the selected objects. + + + + + Indicates that user resizes the selected objects. + + + + + Indicates that user draw the selection rectangle. + + + + + Specifies a custom mode handled by the object. + + + + + Provides a data for mouse events. + + + + + The X mouse coordinate. + + + + + The Y mouse coordinate. + + + + + Current state of mouse buttons. + + + + + Current keyboard state. + + + + + Indicates that current object was handled the mouse message. + + + + + The delta of the mouse movement. + + + + + The mouse wheel delta. + + + + + Current cursor shape. + + + + + Additional mode of the designer's workspace. + + + + + Current sizing point if Mode is set to Size. + + + + + Current selection rectangle if mode is set to SelectionRect. + + + + + Active object that handles the mouse event. + + + + + The source object of drag-drop operation. + + + + + Multiple sources objects of drag-drop operation. + + + + + The target object of drag-drop operation. + + + + + The message to show when drag source is over the object. + + + + + Additional data supplied and handled by report objects. + + + + + Specifies the sizing point used to resize an object by mouse. + + + + + No sizing point. + + + + + Specifies left-top sizing point. + + + + + Specifies left-bottom sizing point. + + + + + Specifies right-top sizing point. + + + + + Specifies right-bottom sizing point. + + + + + Specifies top-center sizing point. + + + + + Specifies bottom-center sizing point. + + + + + Specifies left-center sizing point. + + + + + Specifies right-center sizing point. + + + + + Specifies a selection point used to resize an object. + + + + + The X coordinate of the point. + + + + + The Y coordinate of the point. + + + + + The size mode. + + + + + Initializes a new instance of the SelectionPoint class with specified location and size mode. + + The X coordinate. + The Y coordinate. + Size mode. + + + + Provides a data for paint event. + + + + + Gets a Graphics object to draw on. + + + + + Gets the X scale factor. + + + + + Gets the Y scale factor. + + + + + Gets the cache that contains graphics objects. + + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + IGraphicsRenderer object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + Initializes a new instance of the FRPaintEventArgs class with specified settings. + + Graphics object to draw on. + X scale factor. + Y scale factor. + Cache that contains graphics objects. + + + + The reader used to deserialize object's properties from a report file. + + + + + Gets a string that contains errors occured during the load. + + + + + Gets the current item name. + + + + + Gets or sets a value indicating whther is necessary to read the object's children. + + + + + Returns Root element for this reader + + + + + Gets or sets target of serialization. + + + + + Reads the specified object. + + The object to read. + + The object must implement the interface. This method + invokes the Deserialize method of the object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads an object from current xml node. + + The object. + + This method creates an instance of object described by the current xml node, then invokes + its Deserialize method. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Reads properties of specified object. + + The object to read. + + This method reads simple properties like "Text", "Border.Lines" etc. for specified object. + To read nested properties like collections, you should override the + method of an object. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Moves the current xml item. + + false if there is no more items to move on; true otherwise. + + This method is used to read child objects. + + This example demonstrates the use of ReadProperties, ReadChildren, + NextItem, Read methods. + + public void Deserialize(FRReader reader) + { + // read simple properties like "Text", complex properties like "Border.Lines" + reader.ReadProperties(this); + + // moves the current reader item + while (reader.NextItem()) + { + // read the "Styles" collection + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else if (reader.ReadChildren) + { + // if read of children is enabled, read them + Base obj = reader.Read(); + if (obj != null) + obj.Parent = this; + } + } + } + + + + + + Checks if current item has specified property. + + The property name to check. + true if current item has specified property. + + + + Reads the string property. + + Name of property. + Property value. + + + + Reads the boolean property. + + Name of property. + Property value. + + + + Reads the integer property. + + Name of property. + Property value. + + + + Reads the float property. + + Name of property. + Property value. + + + + Reads the double property. + + Name of property. + Property value. + + + + Reads the enum property. + + Name of property. + Type of property. + Property value. + + + + Reads the standalone property value. + + Property value. + + + + Disposes the reader, fixups the property references. + + + + + Loads the xml items from a stream. + + The stream to load from. + + + + Initializes a new instance of the FRReader class with specified report. + + Reference to a report. + + + + Initializes a new instance of the FRReader class with specified report and xml item with + contents to read. + + Reference to a report. + Xml item with contents to read. + + + + Specifies the target for the serialize operation. + + + + + Serialize to the report file. + + + + + Serialize to the preview pages. + + + + + Serialize to the source pages of a preview. + + + + + Serialize to the designer's clipboard. + + + + + Serialize to the designer's undo/redo buffer. + + + + + The writer used to serialize object's properties to a report file. + + + + + Gets or sets current xml item name. + + + + + Gets or sets target of serialization. + + + + + Gets the ethalon object to compare with. + + + + + Gets or sets a value that determines whether is necessary to serialize child objects. + + + + + Gets or sets a value that determines whether is necessary to add xml header. + + + + + Serializes the specified object. + + The object to serialize. + + The object must implement the interface. This method + invokes the Serialize method of the object. + + This example demonstrates the use of writer. + + public void Serialize(FRWriter writer) + { + // get the etalon object. It will be used to write changed properties only. + Base c = writer.DiffObject as Base; + + // write the type name + writer.ItemName = ClassName; + + // write properties + if (Name != "") + writer.WriteStr("Name", Name); + if (Restrictions != c.Restrictions) + writer.WriteValue("Restrictions", Restrictions); + + // write child objects if allowed + if (writer.SaveChildren) + { + foreach (Base child in ChildObjects) + { + writer.Write(child); + } + } + } + + + + + + Serializes the object using specified etalon. + + The object to serialize. + The etalon object. + + + + Writes a string property. + + Property name. + Property value. + + + + Writes a boolean property. + + Property name. + Property value. + + + + Writes an integer property. + + Property name. + Property value. + + + + Writes a float property. + + Property name. + Property value. + + + + Writes a double property. + + Property name. + Property value. + + + + Writes an enumeration property. + + Property name. + Property value. + + + + Writes an object reference property. + + Property name. + Property value. + + + + Writes a standalone property value. + + Name of property. + Property value. + + This method produces the following output: + <PropertyName>PropertyValue</PropertyName> + + + + + Determines if two objects are equal. + + The first object. + The second object. + true if objects will be serialized to the same value. + + + + Disposes the writer. + + + + + Saves the writer output to a stream. + + Stream to save to. + + + + Initializes a new instance of the FRWriter class with default settings. + + + + + Initializes a new instance of the FRWriter class with specified xml item that will + receive writer's output. + + The xml item that will receive writer's output. + + + + Returns splited string + + text for splitting + index of first character of second string + second part of string + returns true if ends on enter + first part of string + + + + Check the line, and if last word is able to move next line, move it. + e.g. white space won't move to next line. + If word is not moved return current line. + else return new line + + the paragraph for lines + the line with extra words + the index of start last word in this line + width to place words + ref to current line width + + + + + Represents character placement. + + + + + Be care generates dictionary only one time + + + + + Return true if read char + + + + + + Represents a style used in HtmlTags mode. Color does not affect the equals function. + + + + + returns true if objects realy equals + + + + + + + Converts a PNG image to a icon (ico) + + The input image + The output stream + Preserve the aspect ratio + Wether or not the icon was succesfully generated + + + + Returns an Image format. + + + + + Name of object or category. + + + + + Tooltip text. + + + + + The registered function. + + + + + List of subitems. + + + + + Enumerates all objects. + + List that will contain enumerated items. + + + + Used to access to resource IDs inside the specified branch. + + + Using the method, you have to specify the full path to your resource. + Using this class, you can shorten the path: + + // using the Res.Get method + miKeepTogether = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(Res.Get("ComponentMenu,HeaderBand,RepeatOnEveryPage")); + + // using MyRes.Get method + MyRes res = new MyRes("ComponentMenu,HeaderBand"); + miKeepTogether = new ToolStripMenuItem(res.Get("KeepTogether")); + miResetPageNumber = new ToolStripMenuItem(res.Get("ResetPageNumber")); + miRepeatOnEveryPage = new ToolStripMenuItem(res.Get("RepeatOnEveryPage")); + + + + + + + Gets a string with specified ID inside the main branch. + + The resource ID. + The localized value. + + + + Initializes a new instance of the class with spevified branch. + + The main resource branch. + + + + Localized CategoryAttribute class. + + + + + + + + Initializes a new instance of the SRCategory class. + + The category name. + + + + Advanced text renderer is used to perform the following tasks: + - draw justified text, text with custom line height, text containing html tags; + - calculate text height, get part of text that does not fit in the display rectangle; + - get paragraphs, lines, words and char sequence to perform accurate export to such + formats as PDF, TXT, RTF + + Here is how one may operate the renderer items: + + foreach (AdvancedTextRenderer.Paragraph paragraph in renderer.Paragraphs) + { + foreach (AdvancedTextRenderer.Line line in paragraph.Lines) + { + foreach (AdvancedTextRenderer.Word word in line.Words) + { + if (renderer.HtmlTags) + { + foreach (AdvancedTextRenderer.Run run in word.Runs) + { + using (Font f = run.GetFont()) + using (Brush b = run.GetBrush()) + { + g.DrawString(run.Text, f, b, run.Left, run.Top, renderer.Format); + } + } + } + else + { + g.DrawString(word.Text, renderer.Font, renderer.Brush, word.Left, word.Top, renderer.Format); + } + } + } + } + + + + + + The scale for font tag + + + + + Paragraph represents single paragraph. It consists of one or several . + + + + + Line represents single text line. It consists of one or several . + Simple line (that does not contain tabs, html tags, and is not justified) has + single which contains all the text. + + + + + Word represents single word. It may consist of one or several , in case + when HtmlTags are enabled in the main class. + + + + + Represents character placement. + + + + + Represents a style used in HtmlTags mode. + + + + + Represents sequence of characters that have the same . + + + + + Represents inline Image. + + + + + Standard text renderer uses standard DrawString method to draw text. It also supports: + - text rotation; + - fonts with non-standard width ratio. + In case your text is justified, or contains html tags, use the + class instead. + + + + + Cache for rendering img tags in textobject. + You can use only HTTP[s] protocol with absolute urls. + + + + + Is serialized + + + + + Get or set WebClient for downloading imgs by url + + + + + Occurs before image load + + + + + Occurs after image load + + + + + Enumerates all values + + + + + + Return CacheItem by src + + Src attribute from img tag + + + + + + + + + + + + Set CacheItem by src + + Src attribute from img tag + CacheItem + + + + + Validate src attribute from image + + Src attribute from img tag + return true if src is valid + + + + + + + + + + + + Item of image cache Dictionary + + + + + Get Base64 string + + + + + Return true if has some error with Image + + + + + Get Image + + + + + Get byte array + + + + + Return error image and set true to error property + + + + + + Set value for cache item + + Image encoded base64 string + + + + Set value for cache item + + Image + + + + Set value for cache item + + Image + + + + + + + + + + WebClientEventArgs + + + + + Gets a cache + + + + + Gets or sets a value indicating whether the event was handled. + + + + + Gets or sets a url from src attribue of img tag + + + + + + + + + + + The report page units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in hundreths of inch. + + + + + Defines the constants used to convert between report units and screen pixels. + + + To convert pixels to millimeters, use the following code: + valueInMillimeters = valueInPixels / Units.Millimeters; + To convert millimeters to pixels, use the following code: + valueInPixels = valueInMillimeters * Units.Millimeters; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in 1/10 of ich. + + + + + The number of pixels in 1/100 of inch. + + + + + Represents a xml property. + + + + + Represents a property key. + + + + + Represents a property value. + + + + + Creates new property and assigns value + + Property key + Property value + + + + Represents a xml node. + + + + + Gets a number of children in this node. + + + + + Gets a list of children in this node. + + + + + Gets a child node with specified index. + + Index of node. + The node with specified index. + + + + Gets or sets the node name. + + + This property will return "Node" for a node like <Node Text="" Left="0"/> + + + + + Gets or sets a list of properties in this node. + + + + + Gets or sets the parent for this node. + + + + + Gets or sets the node value. + + + This property will return "ABC" for a node like <Node>ABC</Node> + + + + + Gets the root node which owns this node. + + + + + Clears the child nodes of this node. + + + + + Adds a new child node to this node. + + The new child node. + + + + Adds a specified node to this node. + + The node to add. + + + + Inserts a specified node to this node. + + Position to insert. + Node to insert. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; null otherwise. + + + + Finds the node with specified name. + + The name of node to find. + The node with specified name, if found; the new node otherwise. + + This method adds the node with specified name to the child nodes if it cannot find the node. + Do not dispose items, which has been created by this method + + + + + Gets the index of specified node in the child nodes list. + + The node to find. + Zero-based index of node, if found; -1 otherwise. + + + + Gets a property with specified name. + + The property name. + The value of property, if found; empty string otherwise. + + This property will return "0" when you request the "Left" property for a node + like <Node Text="" Left="0"/> + + + + + Removes all properties. + + + + + Sets the value for a specified property. + + The property name. + Value to set. + + For example, you have a node like <Node Text="" Left="0"/>. When you set the + "Text" property to "test", the node will be <Node Text="test" Left="0"/>. + If property with specified name is not exist, it will be added. + + + + + Removes a property with specified name. + + The property name. + Returns true if property is removed, false otherwise. + + + + Disposes the node and all its children. + + + + + Initializes a new instance of the XmlItem class with default settings. + + + + + Represents a xml document that contains the root xml node. + + + Use Load and Save methods to load/save the document. To access the root node + of the document, use the property. + + + + + Gets or sets a value indicating whether is necessary to indent the document + when saving it to a file/stream. + + + + + Gets or sets a value indicating whether is necessary to add xml header. + + + + + Gets the root node of the document. + + + + + Clears the document. + + + + + Saves the document to a stream. + + Stream to save to. + + + + Saves the document to a string. + + Writer to save to. + + + + Loads the document from a stream. + + Stream to load from. + + + + Saves the document to a file. + + The name of file to save to. + + + + Loads the document from a file. + + The name of file to load from. + + + + Disposes resources used by the document. + + + + + Initializes a new instance of the XmlDocument class with default settings. + + + + + + + + + + + + + Clear all files in archive. + + + + + Check for exisiting file in archive. + + + + + + + Adds the file form disk to the archive. + + + + + + Adds all files from directory (recursive) on the disk to the archive. + + + + + + Adds the stream to the archive. + + + + + + + Creates the zip and writes it to rhe Stream + + + + + + Creates the ZIP archive and writes it to the file. + + + + + + Gets or sets the Root Folder. + + + + + Gets or sets the errors. + + + + + Gets or sets the commentary to the archive. + + + + + Gets count of files in archive. + + + + + Creates the new zip archive. + + + + + Class helper for compile source code with path of assemblies + + + + + Generate a assembly in memory with some source code and several path for additional assemblies + + + + + + + + The components factory. + + + The components factory. + + + + + Creates a RichObject instance with specified name and parent. + + The name of the RichObject instance. + The parent of the RichObject instance. + The RichObject instance. + + + + Creates a MSChartObject instance with specified name and parent. + + The name of the MSChartObject instance. + The parent of the MSChartObject instance. + The MSChartObject instance. + + + + Creates a SparklineObject instance with specified name and parent. + + The name of the SparlineObject instance. + The parent of the SparlineObject instance. + + + + + Creates a MapObject instance with specified name and parent. + + The name of the MapObject instance. + The parent of the MapObject instance. + The MapObject instance. + + + + Creates a ReportPage instance in the specified Report. + + The Report instance. + The ReportPage instance. + + + + Creates a ReportTitleBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportTitleBand instance. + + + + Creates a ReportSummaryBand instance in the specified ReportPage. + + The ReportPage instance. + The ReportSummaryBand instance. + + + + Creates a PageHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The PageHeaderBand instance. + + + + Creates a PageFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The PageFooterBand instance. + + + + Creates a ColumnHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnHeaderBand instance. + + + + Creates a ColumnFooterBand instance in the specified ReportPage. + + The ReportPage instance. + The ColumnFooterBand instance. + + + + Creates a DataHeaderBand instance in the specified DataBand. + + The DataBand instance. + The DataHeaderBand instance. + + + + Creates a DataBand instance in the specified ReportPage. + + The ReportPage instance. + The DataBand instance. + + + + Creates a DataFooterBand instance in the specified DataBand. + + The DataBand instance. + The DataFooterBand instance. + + + + Creates a GroupHeaderBand instance in the specified ReportPage. + + The ReportPage instance. + The GroupHeaderBand instance. + + + + Creates a GroupFooterBand instance in the cpecified ReportPage. + + The ReportPage instance. + The GroupFooterBand instance. + + + + Creates a ChildBand instance in the specified BandBase. + + The BandBase instance. + The ChildBand instance. + + + + Creates an OverlayBand in the specified ReportPage. + + The ReportPage instance. + The OverlayBand instance. + + + + Creates a Style instance with specified name. + + The name of the Style instance. + The report to add style to. + The Style instance. + + + + Creates a TextObject instance with specified name and parent. + + The name of the TextObject instance. + The parent of the TextObject instance. + The TextObject instance. + + + + Creates a PictureObject instance with specified name and parent. + + The name of the PictureObject instance. + The parent of the PictureObject instance. + The PictureObject instance. + + + + Creates a LineObject instance with specified name and parent. + + The name of the LineObject instance. + The parent of the LineObject instance. + The LineObject instance. + + + + Creates a ShapeObject instance with specified name and parent. + + The name of the ShapeObject instance. + The parent of the ShapeObject instance. + The ShapeObject instance. + + + + Creates a PolyLineObject instance with specified name and parent. + + The name of the PolyLineObject instance. + The parent of the PolyLineObject instance. + The PolyLineObject instance. + + + + Creates a PolygonObject instance with specified name and parent. + + The name of the PolygonObject instance. + The parent of the PolygonObject instance. + The PolygonObject instance. + + + + Creates a SubreportObject instance with specified name and parent. + + The name of the SubreportObject instance. + The parent of the SubreportObject instance. + The SubreportObject instance. + + + + Creates a ContainerObject instance with specified name and parent. + + The name of the ContainerObject instance. + The parent of the ContainerObject instance. + The ContainerObject instance. + + + + Creates a CheckBoxObject instance with specified name and parent. + + The name of the CheckBoxObject instance. + The parent of the CheckBoxObject instance. + The CheckBoxObject instance. + + + + Creates a HtmlObject instance with specified name and parent. + + The name of the HtmlObject instance. + The parent of the HtmlObject instance. + The HtmlObject instance. + + + + Creates a TableObject instance with specified name and parent. + + The name of the TableObject instance. + The parent of the TableObject instance. + The TableObject instance. + + + + Creates a MatrixObject instance with specified name and parent. + + The name of the MatrixObject instance. + The parent of the MatrixObject instance. + The MatrixObject instance. + + + + Creates a BarcodeObject instance with specified name and parent. + + The name of the BarcodeObject instance. + The parent of the BarcodeObject instance. + The BarcodeObject instance. + + + + Creates a ZipCodeObject instance with specified name and parent. + + The name of the ZipCodeObject instance. + The parent of the ZipCodeObject instance. + The ZipCodeObject instance. + + + + Creates a CellularTextObject instance with specified name and parent. + + The name of the CellularTextObject instance. + The parent ot the CellularTextObject instance. + The CellularTextObject instance. + + + + Creates a LinearGauge instance with specified name and parent. + + The name of the LinearGauge instance. + The parent of the LinearGauge instance. + The LinearGauge instance. + + + + Creates a SimpleGauge instance with specified name and parent. + + The name of the SimpleGauge instance. + The parent of the SimpleGauge instance. + The SimpleGauge instance. + + + + Represents the DevExpess import plugin. + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + The DevExpress units converter. + + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + + + Converts SizeF to pixels. + + SizeF value as string. + The value in pixels. + + Use this method for fonts, because font size is not stored as multiplied by dpi + + + + + Converts value to Boolean. + + Boolen value as string. + + + + Converts DevExpress Color. + + The DevExpress Color value as string. + The Color value. + + + + Converts DevExpress BackColor. + + The DevExpress BackColor value as string. + The Color value. + + + + Converts the DevExpress BorderDashStyle to LineStyle. + + The DevExpress BorderDashStyle value. + The LineStyle value. + + + + Converts the DevExpress LineStyle to LineStyle. + + The DevExpress LineStyle value. + The LineStyle value. + + + + Converts the DevExpress TextAlignment to HorzAlignment. + + The DevExpress TextAlignment value. + The HorzAlign value. + + + + Converts the DevExpress TextAlignment to VertAlignment. + + The DevExpress TextAlignment value. + The VertAlign value. + + + + Converts the DevExpress ImageSizeMode to PictureBoxSizeMode. + + The ImageSizeMode value as string. + The PictureBoxSizeMode value. + + + + Converts the DevExpress Shape to ShapeKind. + + The DevExpress Shape value as string. + The ShapeKind value. + + + + Converts the DevExpress Barcode.Symbology to Barcode.Barcode. + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Converts the DevExpress border sides to FastReport border sides + + The DevExpress Barcode.Symbology value as string. + The BarcodeObject instance. + + + + Represents the RDL import plugin. + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + + + + The RDL units converter. + + + The RDL units converter. + + + + + Converts the RDL GradientType to GradientStyle. + + The RDL GradientType value. + The GradientStyle value. + + + + Converts the RDL Chart.Type to SeriesChartType. + + The RDL Chart.Type value. + The SeriesChartType value. + + + + Converts the RDL Chart.Palette to ChartColorPalette. + + The RDL Chart.Palette value. + The RDL ChartColorPalette value. + + + + Converts the RDL Chart.Legend.Position to Legend.Docking and Legend.Alignment. + + The RDL Chart.Legend.Position value. + The Legend instance to convert to. + + + + Converts the RDL Chart.Legend.Layout to LegendStyle. + + The RDL Chart.Legend.Layout value. + The LegendStyle value. + + + + Converts the RDL BorderStyle to ChartDashStyle. + + The RDL BorderStyle value. + The ChartDashStyle value. + + + + Converts the RDL Axis.Visible to AxisEnabled. + + The RDL Axis.Visible value. + The AxisEnabled value. + + + + Converts the RDL TickMarkStyle to TickMarkStyle. + + The RDL TickMarkStyle value. + The TickMarkStyle value. + + + + Converts the RDL Shading to LightStyle. + + The RDL Shading value. + The LightStyle value. + + + + Converts the RDL Boolean to bool value. + + The RDL Boolean value. + The bool value. + + + + Converts the RDL Color to Color. + + The RDL Color value. + The Color value. + + + + Converts the RDL Size to float value. + + The RDL Size value. + The RDL Size units measure. + The float value of RDL Size. + + + + Converts the RDL Size to int value. + + The RDL Size value. + The RDL Size units measure. + The int value of RDL Size. + + + + Converts the RDL Size to millimeters. + + The RDL Size value. + The float value of RDL Size in millimeters. + + + + Converts the RDL Size to pixels. + + The RDL Size value. + The float value of RDL Size in pixels. + + + + Converts the RDL FontStyle to FontStyle. + + The RDL FontStyle value. + The FontStyle value. + + + + Converts the RDL FontSize to float. + + The RDL FontSize value. + The float value of RDL FontSize in points. + + + + Converts the RDL TextAlign to HorzAlign. + + The RDL TextAlign value. + The HorzAlign value. + + + + Converts the RDL TextAlign to VerticalAlign. + + The RDL VerticalAlign value. + The VertAlign value. + + + + Converts the RDL WritingMode to Angle. + + The RDL WritingMode value. + The int value of RDL WritingMode in degree. + + + + Converts the RDL TextAlign to StringAlignment. + + The RDL TextAling value. + The StringAlignment value. + + + + Converts the RDL TextAlign and VerticalAlign to ContentAlignment. + + The RDL TextAlign value. + The RDL VerticalAlign value. + The ContentAlignment value. + + + + Converts the RDL BorderStyle to LineStyle. + + The RDL BorderStyle value. + The LineStyle value. + + + + Converts the RDL Sizing to PictureBoxSizeMode. + + The RDL Sizing value. + The PictureBoxSizeMode value. + + + + The RDL Size units. + + + + + Specifies the units measured in millimeters. + + + + + Specifies the units measured in centimeters. + + + + + Specifies the units measured in inches. + + + + + Specifies the units measured in points. + + + + + Specifies the units measured in picas. + + + + + Defines the constants used to convert between RDL Size and pixels. + + + To convert pixels to inches, use the code: + inches = pixels / SizeUnitsP.Inch; + To convert inches to pixels, use the code: + pixels = inches * SizeUnitsP.Inch; + + + + + The number of pixels in one millimeter. + + + + + The number of pixels in one centimeter. + + + + + The number of pixels in one inch. + + + + + The number of pixels in one point. + + + + + The number of pixels in one pica. + + + + + Defines the constants used to convert between RDL Size and millimeters. + + + To convert millimeters to inches, use the code: + inches = millimeters / SizeUnitsM.Inch; + To convert inches to millimeters, use the code: + millimeters = inches * SizeUnitsM.Inch; + + + + + The number of millimeters in one centimeter. + + + + + The number of millimeters in one inch. + + + + + The number of millimeters in one point. + + + + + The number of millimeters in one pica. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the List and Label import plugin. + + + + + Gets the value indicating is the report List and Label template after trying to load it. + + + + + Initializes a new instance of the class. + + + + + + + + The List and Label units converter. + + + + + Converts List and Label units to millimeters. + + The List and Label unit as string. + The value in millimeters. + + + + Converts List and Label units to pixels. + + The List and Label unit as string. + The value in pixels. + + + + Converts List and Label paper orientation. + + The List and Label paper orientation value as string. + Returns true if orientation is landscape. + + + + Converts List and Label bool. + + The List and Label bool value as string. + A bool value. + + + + Converts List and Label text Align. + + The List and Label text Align value as string. + A HorzAlign value. + + + + Convert List and Label LineType to LineStyle. + + The List and Label LineType value as string. + A LineStyle value. + + + + Converts List and Label rounding to float. + + The List and Label rounding value as string. + A float value. + + + + Represents the pages of a prepared report. + + + Prepared page is a page that you can see in the preview window. Prepared pages can be + accessed via property. + The common scenarios of using this object are: + + + Working with prepared pages after the report is finished: load + () or save () pages + from/to a .fpx file, get a page with specified index to work with its objects + (); modify specified page (). + + + + Using the , , + methods while report is generating to produce an output. + + + + + + + + + Gets the number of pages in the prepared report. + + + + + Specifies an action that will be performed on method call. + + + + + Gets or sets a value indicating whether the prepared pages can be uploaded to the file cache. + + + This property is used while report is generating. + Default value for this property is true. That means the prepared pages may be uploaded to + the file cache if needed. To prevent this (for example, if you need to access some objects + on previously generated pages), set the property value to false. + + + + + + + + Adds a source page to the prepared pages dictionary. + + The template page to add. + + Call this method before using AddPage and AddBand methods. This method adds + a page to the dictionary that will be used to decrease size of the prepared report. + + + + + Adds a new page. + + The original (template) page to add. + + Call the method before adding a page. This method creates + a new output page with settings based on page parameter. + + + + + Prints a band with all its child objects. + + The band to print. + true if band was printed; false if it can't be printed + on current page due to its PrintOn property value. + + Call the method before adding a band. + + + + + Gets a page with specified index. + + Zero-based index of page. + The page with specified index. + + + + Gets the size of specified page, in pixels. + + Index of page. + the size of specified page, in pixels. + + + + Replaces the prepared page with specified one. + + The index of prepared page to replace. + The new page to replace with. + + + + Modify the prepared page with new sizes. + + The name of prepared page to reSize. + + + + Removes a page with the specified index. + + The zero-based index of page to remove. + + + + Creates a copy of a page with specified index and inserts it after original one. + + The zero-based index of original page. + + + + Saves prepared pages to a stream. + + The stream to save to. + + + + Saves prepared pages to a .fpx file. + + The name of the file to save to. + + + + Loads prepared pages from a stream. + + The stream to load from. + + + + Loads prepared pages from a .fpx file. + + The name of the file to load from. + + + + Clears the prepared report's pages. + + + + + Creates the pages of a prepared report + + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the OutlineControl class with default settings. + + + + + Represents a Windows Forms control used to preview a report. + + + To use this control, place it on a form and link it to a report using the report's + property. To show a report, call + the Report.Show method: + + report1.Preview = previewControl1; + report1.Show(); + + Use this control's methods such as , etc. to + handle the preview. Call method to clear the preview. + You can specify whether the standard toolbar is visible in the + property. The property allows you to hide/show the statusbar. + + + + + + Occurs when current page number is changed. + + + + + Occurs when Print button clicked. + + + + + Occurs when Export button clicked. + + + + + Gets a reference to the report. + + + + + Obsolete. Gets or sets the color of page border. + + + + + Gets or sets the color of active page border. + + + + + Gets or sets the first page offset from the top left corner of the control. + + + + + Gets or sets a value indicating whether the toolbar is visible. + + + + + Gets or sets a value indicating whether the statusbar is visible. + + + + + Gets or sets a value indicating whether the outline control is visible. + + + + + Specifies the set of buttons available in the toolbar. + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Gets or sets the visual style. + + + + + Gets or sets a value indicating that the BackColor property must be used to draw the background area. + + + By default, the background area is drawn using the color defined in the current UIStyle. + + + + + Gets the preview window's toolbar. + + + + + Gets the preview window's statusbar. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Updates the control appearance and layout on dpi change. + + + + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Adds a new report tab to the preview control. + + The Report object that contains the prepared report. + The title for the new tab. + If true, makes the new tab active. + + Prepare the report using its Prepare method before you pass it to the report parameter. + + + + + Switches to the tab with specified text. + + Text of the tab. + true if the tab with specified text exists, or false if there is no such tab. + + + + Deletes the report tab with specified text. + + The text of the tab. + + + + Checks if the tab with specified text exists. + + The text of the tab. + true if the tab exists. + + + + Displays the text in the status bar. + + Text to display. + + + + Sets the focus to the preview control. + + + + + Prints the current report. + + true if report was printed; false if user cancels the "Print" dialog. + + + + Saves the current report to a .fpx file using the "Save FIle" dialog. + + + + + Saves the current report to a specified .fpx file. + + + + + Saves the current report to a stream. + + + + + Loads the report from a .fpx file using the "Open File" dialog. + + + + + Loads the report from a specified .fpx file. + + + + + Load the report from a stream. + + The stream to load from. + + + + Sends an email. + + + + + Finds the text in the current report using the "Find Text" dialog. + + + + + Finds the specified text in the current report. + + Text to find. + A value indicating whether the search is case-sensitive. + A value indicating whether the search matches whole words only. + true if text found. + + + + Finds the next occurence of text specified in the Find method. + + true if text found. + + + + Navigates to the first page. + + + + + Navigates to the previuos page. + + + + + Navigates to the next page. + + + + + Navigates to the last page. + + + + + Gets or sets the current page number. + + + This value is 1-based. + + + + + Gets the pages count in the current report. + + + + + Gets or sets the zoom factor. + + + 1 corresponds to 100% zoom. + + + + + Zooms in. + + + + + Zooms out. + + + + + Zooms to fit the page width. + + + + + Zooms to fit the whole page. + + + + + Edits the current page in the designer. + + + + + Copies the current page in preview. + + + + + Removes the current page in preview. + + + + + Edits the current report in the designer. + + + + + Edits the watermark. + + + + + Edits the page settings. + + + + + Navigates to the specified position inside a specified page. + + The page number (1-based). + The position inside a page, in pixels. + + + + Clears the preview. + + + + + Refresh the report. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies an action that will be performed on PreparedPages.AddPage method call. + + + + + Do not add the new prepared page if possible, increment the CurPage instead. + + + + + Add the new prepared page. + + + + + Represents a class that contains all parameters of Swiss QR Code. + + + + + IBAN object + + + + + (either EUR or CHF) + + + + + Creditor (payee) information + + + + + Reference information + + + + + Can be null + + + + + Debitor (payer) information + + + + + Amount + + + + + Optional command for alternative processing mode - line 1 + + + + + Optional command for alternative processing mode - line 2 + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR" + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Represents a barcode object. + Represents a barcode object. + + + The instance of this class represents a barcode. Here are some common + actions that can be performed with this object: + + + To select the type of barcode, use the property. + + + + To specify a static barcode data, use the property. + You also may use the or properties + to specify dynamic value for a barcode. + + + + To set a barcode orientation, use the property. + + + + To specify the size of barcode, set the property + to true and use the property to zoom the barcode. + If property is set to false, you need to specify the + size using the Width and + Height properties. + + + + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + + + + + + + + + + + + + + + + Specifies the horizontal alignment of a Barcode object. Works only when autosize is on. + + + + + Specifies that the barcode is aligned to the left of the original layout. + + + + + Specifies that the barcode is aligned to the center of the original layout. + + + + + Specifies that the barcode is aligned to the right of the original layout. + + + + + Gets or sets the barcode type. + + + + + Gets or sets the horizontal alignment of a Barcode object. + + + + + Gets or sets the symbology name. + + + The following symbology names are supported: + + "2/5 Interleaved" + "2/5 Industrial" + "2/5 Matrix" + "Codabar" + "Code128" + "Code39" + "Code39 Extended" + "Code93" + "Code93 Extended" + "EAN8" + "EAN13" + "MSI" + "PostNet" + "UPC-A" + "UPC-E0" + "UPC-E1" + "Supplement 2" + "Supplement 5" + "PDF417" + "Datamatrix" + "QRCode" + + + + + barcode.SymbologyName = "PDF417"; + (barcode.Barcode as BarcodePDF417).CompactionMode = CompactionMode.Text; + + + + + + Gets or sets the angle of barcode, in degrees. + + + + + Gets or sets a value that determines whether the barcode should handle its width automatically. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the barcode data. + + + + + Enable or disable of using an expression in Text + + + + + Gets or sets brackets for using in expressions + + + + + Gets or sets a value that indicates if the barcode should display a human-readable text. + + + + + Gets or sets the barcode data. + + + + + Gets or sets padding within the BarcodeObject. + + + + + Gets or sets a zoom of the barcode. + + + + + Gets or sets a value that determines whether it is necessary to hide the object if the + barcode data is empty. + + + + + Gets or sets the text that will be displayed if the barcode data is empty. + + + + + Gets or sets values for forced use of a bitmap image instead of a vector + + + + + Initialize current BarcodeObject as Swiss QR. + + Parameters of swiss qr. + + + + Relocate BarcodeObject based on alignment + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + + Aztec 2D code representation + + Rustam Abdullaev + + + + Compact or full symbol indicator + + + + + Size in pixels (width and height) + + + + + Number of levels + + + + + Number of data codewords + + + + + The symbol image + + + + + The class holds the available options for the AztecWriter + + + + + Representing the minimal percentage of error correction words. + Note: an Aztec symbol should have a minimum of 25% EC words. + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + A simple, fast array of bits, represented compactly by an array of ints internally. + + Sean Owen + + + Flips bit i. + + + bit to set + + + + + Gets the next set. + + first bit to check + index of first bit that is set, starting from the given index, or size if none are set + at or beyond this given index + + + + see getNextSet(int) + + index to start looking for unset bit + index of next unset bit, or if none are unset until the end + + + Sets a block of 32 bits, starting at bit i. + + + first bit to set + + the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + + + Sets a range of bits. + + start of range, inclusive. + end of range, exclusive + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + + start of range, inclusive. + + end of range, exclusive + + if true, checks that bits in range are set, otherwise checks that they are not set + + true iff all bits are set or not set in range, according to value argument + + IllegalArgumentException if end is less than or equal to start + + + + Appends the bit. + + The bit. + + + underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + + + Appends the least-significant bits, from value, in order from most-significant to + least-significant. For example, appending 6 bits from 0x000001E will append the bits + 0, 1, 1, 1, 1, 0 in that order. + + containing bits to append + bits from value to append + + + + Toes the bytes. + + first bit to start writing + array to write into. Bytes are written most-significant byte first. This is the opposite + of the internal representation, which is exposed by BitArray + position in array to start writing + how many bytes to write + + + Reverses all bits in the array. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Erstellt ein neues Objekt, das eine Kopie der aktuellen Instanz darstellt. + + + Ein neues Objekt, das eine Kopie dieser Instanz darstellt. + + + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+
+ Sean Owen + dswitkin@google.com (Daniel Switkin) +
+ + The width of the matrix + + + + The height of the matrix + + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + + row/column dimension of this matrix + + + +

Gets the requested bit, where true means black.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + + value of given bit in matrix + +
+ +

Flips the given bit.

+ +
+ The horizontal component (i.e. which column) + + The vertical component (i.e. which row) + +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ +
+ The horizontal position to begin at (inclusive) + + The vertical position to begin at (inclusive) + + The width of the region + + The height of the region + +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + + The row to retrieve + + An optional caller-allocated BitArray, will be allocated if null or too small + + The resulting BitArray - this reference should always be used even when passing + your own row + + + + + Sets the row. + + row to set + {@link BitArray} to copy from + + + + Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees + + + + + This is useful in detecting the enclosing rectangle of a 'pure' barcode. + + {left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white + + + + This is useful in detecting a corner of a 'pure' barcode. + + {x,y} coordinate of top-left-most 1 bit, or null if it is all white + + + + These are a set of hints that you may pass to Writers to specify their behavior. + + dswitkin@google.com (Daniel Switkin) + + + + Specifies the width of the barcode image + type: + + + + + Specifies the height of the barcode image + type: + + + + + Don't put the content string into the output image. + type: + + + + + Specifies what character encoding to use where applicable. + type: + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + type: + + + + + Specifies whether to use compact mode for PDF417. + type: + + + + + Don't append ECI segment. + That is against the specification of QR Code but some + readers have problems if the charset is switched from + ISO-8859-1 (default) to UTF-8 with the necessary ECI segment. + If you set the property to true you can use UTF-8 encoding + and the ECI segment is omitted. + type: + + + + + if true, don't switch to codeset C for numbers + + + + + Specifies the required number of layers for an Aztec code: + a negative number (-1, -2, -3, -4) specifies a compact Aztec code + 0 indicates to use the minimum number of layers (the default) + a positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code + + + + + Generates Aztec 2D barcodes. + + Rustam Abdullaev + + + + Encodes the given binary content as an Aztec symbol + + input data string + Aztec symbol matrix with metadata + + + + Encodes the given binary content as an Aztec symbol + + input data string + minimal percentage of error check words (According to ISO/IEC 24778:2008, + a minimum of 23% + 3 words is recommended) + if non-zero, a user-specified value for the number of layers + + Aztec symbol matrix with metadata + + + + + Defines an container for encoder options + + + + + Gets the data container for all options + + + + + Specifies the height of the barcode image + + + + + Specifies the width of the barcode image + + + + + Don't put the content string into the output image. + + + + + Specifies margin, in pixels, to use when generating the barcode. The meaning can vary + by format; for example it controls margin before and after the barcode horizontally for + most 1D formats. + + + + + Initializes a new instance of the class. + + + + +

This class contains utility methods for performing mathematical operations over + the Galois Fields. Operations use a given primitive polynomial in calculations.

+

Throughout this package, elements of the GF are represented as an {@code int} + for convenience and speed (but at the cost of memory). +

+
+ Sean Owen +
+ + + Create a representation of GF(size) using the given primitive polynomial. + + irreducible polynomial whose coefficients are represented by + * the bits of an int, where the least-significant bit represents the constant + * coefficient + the size of the field + the factor b in the generator polynomial can be 0- or 1-based + * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). + * In most cases it should be 1, but for QR code it is 0. + + + + Builds the monomial. + + The degree. + The coefficient. + the monomial representing coefficient * x^degree + + + + Implements both addition and subtraction -- they are the same in GF(size). + + sum/difference of a and b + + + + Exps the specified a. + + 2 to the power of a in GF(size) + + + + Logs the specified a. + + A. + base 2 log of a in GF(size) + + + + Inverses the specified a. + + multiplicative inverse of a + + + + Multiplies the specified a with b. + + A. + The b. + product of a and b in GF(size) + + + + Gets the size. + + + + + Gets the generator base. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + +

Represents a polynomial whose coefficients are elements of a GF. + Instances of this class are immutable.

+

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+
+ Sean Owen +
+ + + Initializes a new instance of the class. + + the {@link GenericGF} instance representing the field to use + to perform computations + coefficients as ints representing elements of GF(size), arranged + from most significant (highest-power term) coefficient to least significant + if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + + degree of this polynomial + + + + + Gets a value indicating whether this is zero. + + true iff this polynomial is the monomial "0" + + + + coefficient of x^degree term in this polynomial + + The degree. + coefficient of x^degree term in this polynomial + + + + evaluation of this polynomial at a given point + + A. + evaluation of this polynomial at a given point + + + + This produces nearly optimal encodings of text into the first-level of + encoding used by Aztec code. + It uses a dynamic algorithm. For each prefix of the string, it determines + a set of encodings that could lead to this prefix. We repeatedly add a + character and generate a new set of optimal encodings until we have read + through the entire input. + @author Frank Yellin + @author Rustam Abdullaev + + + + + Convert the text represented by this High Level Encoder into a BitArray. + + text represented by this encoder encoded as a + + + + Implements Reed-Solomon encoding, as the name implies. + + Sean Owen + William Rucklidge + + + + State represents all information about a sequence necessary to generate the current output. + Note that a state is immutable. + + + + + Create a new state representing this state with a latch to a (not + necessary different) mode, and then a code. + + + + + Create a new state representing this state, with a temporary shift + to a different mode to output a single value. + + + + + Create a new state representing this state, but an additional character + output in Binary Shift mode. + + + + + Create the state identical to this one, but we are no longer in + Binary Shift mode. + + + + + Returns true if "this" state is better (or equal) to be in than "that" + state under all possible circumstances. + + + + + Contains conversion support elements such as classes, interfaces and static methods. + + + + + Copies an array of chars obtained from a String into a specified array of chars + + The String to get the chars from + Position of the String to start getting the chars + Position of the String to end getting the chars + Array to return the chars + Position of the destination array of chars to start storing the chars + An array of chars + + + + Sets the capacity for the specified List + + The List which capacity will be set + The new capacity value + + + + Converts a string-Collection to an array + + The strings. + + + + + Joins all elements to one string. + + + The separator. + The values. + + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The value. + + + + Fills the specified array. + (can't use extension method because of .Net 2.0 support) + + + The array. + The start index. + The end index. + The value. + + + + Generates the Code128 barcode. + + + This barcode supports three code pages: A, B and C. You need to set appropriate code page + in the barcode text, or use the auto encode feature. See the property + for more details. + + This example shows how to configure the BarcodeObject to display Code128 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + + + + + + Gets or sets a value that determines whether the barcode should automatically + use appropriate encoding. + + + You may use this property to encode data automatically. If you set it to false, + you must specify the code page inside the data string. The following control codes are available: + + + Sequence + Code128 control code + + + &A; + START A / CODE A + + + &B; + START B / CODE B + + + &C; + START C / CODE C + + + + &S; + SHIFT + + + &1; + FNC1 + + + &2; + FNC2 + + + &3; + FNC3 + + + &4; + FNC4 + + + The following example shows how to specify control codes: + + BarcodeObject barcode; + barcode.Barcode = new Barcode128(); + (barcode.Barcode as Barcode128).AutoEncode = false; + barcode.Text = "&C;1234&A;ABC"; + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for 2D-barcodes such as PDF417 and Datamatrix. + + + + + Generates the "2/5 Interleaved" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Identcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "Deutsche Leitcode" barcode. + + + + + Gets or sets a value that indicates that CheckSum should be printed. + + + + + + + + Generates the "ITF-14" barcode. + + + + + Gets or sets the value indicating that vertical bearer bars are needed to draw. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the "2/5 Industrial" barcode. + + + + + Generates the "2/5 Matrix" barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Code39 extended barcode. + + + + + Generates the Code93 barcode. + + + + + + + + Generates the Code93 extended barcode. + + + + + Generates the 2D Aztec barcode. + + + + + Gets or sets the error correction percent. + + + + + Initializes a new instance of the class with default settings. + + + + + + + + The base class for all barcodes. + + + + + Gets the name of barcode. + + + + + Gets or sets the color of barcode. + + + + + Creates the exact copy of this barcode. + + The copy of this barcode. + + + + Assigns properties from other, similar barcode. + + Barcode object to assign properties from. + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Codabar barcode. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the Datamatrix encoding. + + + + + Specifies the auto encoding. + + + + + Specifies the ASCII encoding. + + + + + Specifies the C40 encoding. + + + + + Specifies the text encoding. + + + + + Specifies the binary encoding. + + + + + Specifies the X12 encoding. + + + + + Specifies the Edifact encoding. + + + + + Specifies the Datamatrix symbol size. + + + + + Specifies the auto size. + + + + + Specifies the 10x10 size. + + + + + Specifies the 12x12 size. + + + + + Specifies the 8x8 size. + + + + + Specifies the 14x14 size. + + + + + Specifies the 8x32 size. + + + + + Specifies the 16x16 size. + + + + + Specifies the 12x26 size. + + + + + Specifies the 18x18 size. + + + + + Specifies the 20x20 size. + + + + + Specifies the 12x36 size. + + + + + Specifies the 22x22 size. + + + + + Specifies the 16x36 size. + + + + + Specifies the 24x24 size. + + + + + Specifies the 26x26 size. + + + + + Specifies the 16x48 size. + + + + + Specifies the 32x32 size. + + + + + Specifies the 36x36 size. + + + + + Specifies the 40x40 size. + + + + + Specifies the 44x44 size. + + + + + Specifies the 48x48 size. + + + + + Specifies the 52x52 size. + + + + + Specifies the 64x64 size. + + + + + Specifies the 72x72 size. + + + + + Specifies the 80x80 size. + + + + + Specifies the 88x88 size. + + + + + Specifies the 96x96 size. + + + + + Specifies the 104x104 size. + + + + + Specifies the 120x120 size. + + + + + Specifies the 132x132 size. + + + + + Specifies the 144x144 size. + + + + + Generates the 2D Data Matrix barcode. + + + + + Gets or sets the symbol size. + + + + + Gets or sets the encoding mode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the size of the pixel. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for EAN barcodes. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the EAN8 barcode. + + + + + Generates the EAN13 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the GS1-128 (formerly known as UCC-128 or EAN-128) barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Intelligent Mail (USPS) barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 2D MaxiCode barcode. + + + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + + + + Initializes a new instance of the class with default settings. + + + + + + + Implements MaxiCode according to ISO 16023:2000. + + MaxiCode employs a pattern of hexagons around a central 'bulls-eye' + finder pattern. Encoding in several modes is supported, but encoding in + Mode 2 and 3 require primary messages to be set. Input characters can be + any from the ISO 8859-1 (Latin-1) character set. + + TODO: Add ECI functionality. + + @author Robin Stuart + @author Daniel Gredler + + + MaxiCode module sequence, from ISO/IEC 16023 Figure 5 (30 x 33 data grid). + + + ASCII character to Code Set mapping, from ISO/IEC 16023 Appendix A. + 1 = Set A, 2 = Set B, 3 = Set C, 4 = Set D, 5 = Set E. + 0 refers to special characters that fit into more than one set (e.g. GS). + + + ASCII character to symbol value, from ISO/IEC 16023 Appendix A. + + + Sets the MaxiCode mode to use. Only modes 2 to 6 are supported. + + @param mode the MaxiCode mode to use + + + Returns the MaxiCode mode being used. Only modes 2 to 6 are supported. + + @return the MaxiCode mode being used + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the + position of this symbol in the series. Valid values are 1 through 8 inclusive. + + @param position the position of this MaxiCode symbol in the structured append series + + + Returns the position of this MaxiCode symbol in a series of symbols using structured append. If this symbol is not part of + such a series, this method will return 1. + + @return the position of this MaxiCode symbol in a series of symbols using structured append + + + If this MaxiCode symbol is part of a series of MaxiCode symbols appended in a structured format, this method sets the total + number of symbols in the series. Valid values are 1 through 8 inclusive. A value of 1 indicates that this symbol is not + part of a structured append series. + + @param total the total number of MaxiCode symbols in the structured append series + + + Returns the size of the series of MaxiCode symbols using structured append that this symbol is part of. If this symbol is + not part of a structured append series, this method will return 1. + + @return size of the series that this symbol is part of + + + Sets the primary data. Should only be used for modes 2 and 3. Must conform to the following structure: + + + + + + +
CharactersMeaning
1-9Postal code data which can consist of up to 9 digits (for mode 2) or up to 6 + alphanumeric characters (for mode 3). Remaining unused characters should be + filled with the SPACE character (ASCII 32).
10-12Three-digit country code according to ISO-3166.
13-15Three digit service code. This depends on your parcel courier.
+ + @param primary the primary data +
+ + Returns the primary data for this MaxiCode symbol. Should only be used for modes 2 and 3. + + @return the primary data for this MaxiCode symbol + + + {@inheritDoc} + + + Extracts the postal code, country code and service code from the primary data and returns the corresponding primary message + codewords. + + @return the primary message codewords + + + Returns the primary message codewords for mode 2. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Returns the primary message codewords for mode 3. + + @param postcode the postal code + @param country the country code + @param service the service code + @return the primary message, as codewords + + + Formats text according to Appendix A, populating the {@link #set} and {@link #character} arrays. + + @return true if the content fits in this symbol and was formatted; false otherwise + + + Guesses the best set to use at the specified index by looking at the surrounding sets. In general, characters in + lower-numbered sets are more common, so we choose them if we can. If no good surrounding sets can be found, the default + value returned is the first value from the valid set. + + @param index the current index + @param Length the maximum Length to look at + @param valid the valid sets for this index + @return the best set to use at the specified index + + + Moves everything up so that the specified shift or latch character can be inserted. + + @param position the position beyond which everything needs to be shifted + @param c the latch or shift character to insert at the specified position, after everything has been shifted + + + Returns the error correction codewords for the specified data codewords. + + @param codewords the codewords that we need error correction codewords for + @param ecclen the number of error correction codewords needed + @return the error correction codewords for the specified data codewords + + + {@inheritDoc} + + + {@inheritDoc} + + + + Generates the MSI barcode. + + + + + Specifies the error correction level used for PDF417 barcode. + + + + + Indicates that correction level should be calculated automatically. + + + + + Specifies level 0. + + + + + Specifies level 1. + + + + + Specifies level 2. + + + + + Specifies level 3. + + + + + Specifies level 4. + + + + + Specifies level 5. + + + + + Specifies level 6. + + + + + Specifies level 7. + + + + + Specifies level 8. + + + + + Specifies the compaction mode used for PDF417 barcode. + + + + + Indicates that compaction mode should be calculated automatically. + + + + + Specifies the text compaction mode. + + + + + Specifies the numeric compaction mode. + + + + + Specifies the binary compaction mode. + + + + + Generates the 2D PDF417 barcode. + + This example shows how to configure the BarcodeObject to display PDF417 barcode. + + BarcodeObject barcode; + ... + barcode.Barcode = new BarcodePDF417(); + (barcode.Barcode as BarcodePDF417).CompactionMode = PDF417CompactionMode.Text; + + + + + + Gets or sets the barcode aspect ratio. + + + A ratio or 0.5 will make the barcode width twice as large as the height. + + + + + Gets or sets the number of barcode data columns. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the number of barcode data rows. + + + To calculate the necessary number of columns and rows, set the + and properties to 0. In this case, the property + should be set to desired aspect ratio. + + + + + Gets or sets the error level correction used for the barcode. + + + + + Gets or sets the code page used for text conversion. + + + Use this property to encode non-ASCII characters. For example, set this + property to 1251 to use Window CP1251. + + + + + Gets or sets the compaction mode. + + + + + Gets or sets the size of the pixel. + + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the Pharmacode barcode. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + Generates the Plessey barcode. + + + + + Appends the given pattern to the target array starting at pos. + + encode black/white pattern into this array + position to start encoding at in target + lengths of black/white runs to encode + starting color - false for white, true for black + the number of elements added to target. + + + + Generates the PostNet barcode. + + + + + Specifies the QR code error correction level. + + + + + L = ~7% correction. + + + + + M = ~15% correction. + + + + + Q = ~25% correction. + + + + + H = ~30% correction. + + + + + Specifies the QR Code encoding. + + + + + UTF-8 encoding. + + + + + ISO 8859-1 encoding. + + + + + Shift_JIS encoding. + + + + + Windows-1251 encoding. + + + + + cp866 encoding. + + + + + Generates the 2D QR code barcode. + + + + + Gets or sets the error correction. + + + + + Gets or sets the encoding used for text conversion. + + + + + Gets or sets the value indicating that quiet zone must be shown. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E0 barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the UPC E1 barcode. + + + + + Generates the UPC A barcode. + + + + + Generates the 2-digit supplement barcode. + + + + + Initializes a new instance of the class with default settings. + + + + + Generates the 5-digit supplement barcode. + + + + + The base class for linear (1D) barcodes. + + + + + Gets or sets a value that determines if the barcode object should calculate + the check digit automatically. + + + + + Gets or sets a relative width of wide bars in the barcode. + + + + + Gets the value indicating that the barcode is numeric. + + + + + Gets or sets a value indicating that leading/trailing whitespaces must be trimmed. + + + true if trim; otherwise, false. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Container object that may contain child objects. + + + + + Gets the collection of child objects. + + + + + This event occurs before the container layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a script event name that will be fired before the container layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + + + + + + + + + + Initializes a new instance of the ContainerObject class with default settings. + + + + + + + + + + + + + + + + + The default field name. + + + + + FastReport json connection + + + + + Name of json object table + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the JsonDataConnection connection string builder. + + + Use this class to parse connection string returned by the JsonDataConnection class. + + + + + Gets or sets json data + + + + + Gets or sets json schema + + + + + Gets or sets json url encoding + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + JsonTableDataSource present a json array object + + + + + Gets or sets value for force update schema on init schema + + + + + + + + + + + + + + + + + + + + + + + This class represents a single data column in a . + + + + + + + + Gets or sets the business object property name which this column is bound to. + + + + + Gets or sets the business object property descriptor which this column is bound to. + + + + + Gets or sets the type of data supplied by this column. + + + + + Gets or sets a value that specifies the type of a control that will be created + when you drop this column on a report page. + + + If you need to specify the custom type, use the property instead. + + + + + Gets or sets a name of custom bindable control. + + + Use this property if you want to bind a column to custom object type. You need to + specify the type name of your object; that object must be registered in FastReport using the + RegisteredObjects.Add method. + + + + + Gets or sets the format of this column. + + + This property is used when you drag a column from the Data window to the report page. + FastReport will create a "Text" object and set its "Format" property to the corresponding format. + By default, this property is set to Auto. It means that the format will be determined + automatically depending on the property. + + + + + Gets or sets expression of the calculated column. + + + This property is used if the property is true. + + + + + Gets or sets a value that indicates whether this column is calculated. + + + You should specify the property for calculated columns. + + + + + Gets the collection of child columns. + + + + + Gets or sets the tag value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the Column class with default settings. + + + + + + + + + + Initialize a new instance + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all connection editors. This control is used when you edit + the connection in the Data Wizard. + + + + + Gets or sets a connection string. + + + + + This method should construct the connection string from values entered by user. + + The connection string. + + + + This method should parse the connection string and fill the user interface elements. + + The connection string. + + + + Updates the component layout on dpi change. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a connection to xml file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + XmlDataConnection conn = new XmlDataConnection(); + conn.XmlFile = @"c:\data.xml"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .xsd file. + + + + + Gets or sets the path to .xml file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a total that is used to calculate aggregates such as Sum, Min, Max, Avg, Count. + + + + + + + + Gets or sets the total type. + + + + + Gets or sets the expression used to calculate the total. + + + + + Gets or sets the evaluator databand. + + + The total will be calculated for each row of this band. + + + + + This property is kept for compatibility only. + + + + + Gets or sets the band to print the total on. + + + The total will be resetted after the specified band has been printed. + + + + + Gets or sets a value that determines whether the total should be resetted after print. + + + + + Gets or sets a value that determines whether the total should be resetted if printed + on repeated band (i.e. band with "RepeatOnEveryPage" flag). + + + + + Gets or sets the condition which tells the total to evaluate. + + + + + Gets or sets a value that determines if invisible rows of the Evaluator should + be included into the total's value. + + + + + This property is not relevant to this class. + + + + + Gets the value of total. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a datasource based on DataTable class. + + This example shows how to add a new table to the existing connection: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = "Table1"; + conn.Tables.Add(table); + + + + + + + + + Gets or sets the underlying DataTable object. + + + + + Gets or sets the table name. + + + + + Gets or sets SQL "select" command. + + + If this command contains parameters, you should specify them in the + property. + + + + + Gets a collection of parameters used by "select" command. + + + You must set up this property if the SQL query that you've specified in the + property contains parameters. + You can pass a value to the SQL parameter in two ways. + The right way is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the SQL parameter. To do this, set the SQL parameter's Expression property + to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + The other way (unrecommended) is to find a datasource object and set its parameter from a code: + + TableDataSource ds = report.GetDataSource("My DataSource Name") as TableDataSource; + ds.Parameters[0].Value = 10; + + This way is not good because you hardcode the report object's name. + + + + + Gets or sets the parent object. + + + + + Gets or sets a value that determines whether it is necessary to store table data in a report file. + + + + + Gets or sets the table data. + + + This property is for internal use only. + + + + + If set, ignores the Connection (always returns null). Needed when we replace the + existing connection-based datasource with datatable defined in an application. + + + + + Gets or sets the query builder schema. + + + This property is for internal use only. + + + + + + + + + + + + + + + + + Refresh the table schema. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a master-detail relation between two data sources. + + + To setup a relation, you must specify parent and child datasources. For a parent datasource, + you must specify set of key columns; for child datasource, you must specify set of columns that + relate to the parent key columns. + This example shows how to create relation between Customers and Orders tables: + + Report report1; + DataSourceBase customersTable = report1.Dictionary.DataSources.FindByAlias("Customers"); + DataSourceBase ordersTable = report1.Dictionary.DataSources.FindByAlias("Orders"); + Relation rel = new Relation(); + rel.Name = "customersOrders"; + rel.ParentDataSource = customersTable; + rel.ChildDataSource = ordersTable; + rel.ParentColumns = new string[] { "CustomerID" }; + rel.ChildColumns = new string[] { "CustomerID" }; + report1.Dictionary.Relations.Add(rel); + + + + + + + + + + Gets or sets the parent datasource. + + + + + Gets or sets the child datasource. + + + + + Gets or sets an array of parent datasource columns. + + + Note: both and must have the + same number of elements. + + + + + Gets or sets an array of child datasource columns. + + + Note: both and must have the + same number of elements. + + + + + + + + Compares this relation with another one. + + Another relation to compare with. + true if both relations are equal; false otherwise. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to any OLE DB database. + + This example shows how to add a new connection to the report. + + Report report1; + OleDbDataConnection conn = new OleDbDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to any database through ODBC. + + This example shows how to add a new connection to the report. + + Report report1; + OdbcDataConnection conn = new OdbcDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS SQL database. + + This example shows how to add a new connection to the report. + + Report report1; + MsSqlDataConnection conn = new MsSqlDataConnection(); + conn.ConnectionString = "your_connection_string"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a connection to MS Access database (.mdb file). + + This example shows how to add a new connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + Gets or sets the datasource file name. + + + + + Gets or sets the user name. + + + + + Gets or sets the password. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data connection components such as . + + This example shows how to add a new MS Access connection to the report. + + Report report1; + MsAccessDataConnection conn = new MsAccessDataConnection(); + conn.DataSource = @"c:\data.mdb"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + Gets a string that will identify a connection in the Data Wizard. + + The string that contains the connection type and some meaningful information. + + + + Gets the default type for a new parameter. + + The integer representation of a parameter type. + + + + Gets a control that will be used to edit the connection properties. + + The editor's control. + + + + + + + Tests the connection. + + + If test connection is not successful, this method throws an exception. Catch this exception to + show an error message. + + + + + Gets an internal DataSet object that contains all data tables. + + + + + Gets a collection of data tables in this connection. + + + To add a table to the connection, you must either create a new TableDataSource and add it + to this collection or call the method which will add + all tables available in the database. + + + + + Gets or sets a connection string that contains all connection parameters. + + + To modify some parameter of the connection, use respective + ConnectionStringBuilder class. + Security note: the connection string may contain a user name/password. + This information is stored in a report file. By default, it is crypted using the standard + FastReport's password. Since FastReport's source code is available to anyone who paid for it, + it may be insecure to use the standard password. For more security, you should use own + password. To do this, specify it in the Crypter.DefaultPassword property. + + This example demonstrates how to change a connection string: + + OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(oleDbConnection1.ConnectionString); + builder.PersistSecurityInfo = false; + oleDbConnection1.ConnectionString = builder.ToString(); + + + + + + Gets or sets an expression that returns a connection string. + + + Use this property to set the connection string dynamically. + The recommended way to do this is to define a report parameter. You can do this in the + "Data" window. Once you have defined the parameter, you can use it to pass a value + to the connection. Set the ConnectionStringExpression property of the + connection object to the report parameter's name (so it will look like [myReportParam]). + To pass a value to the report parameter from your application, use the + method. + + Once you set value for this property, the property will be ignored + when report is run. + + + + + + Gets or sets a value indicates if this connection is SQL-based. + + + + + Gets or sets a value indicating whether a login dialog appears immediately before opening a connection. + + + Set LoginPrompt to true to provide login dialog when establishing a connection. If this + property is false (by default), you should provide login information (user name and password) + in the property. Though that property is stored in a crypted form, + this may be insecure. + Another way to pass login information to the connection is to use + property that is bound to the report parameter. In that + case you supply the entire connection string from your application. + + + + + Gets or sets the command timeout, in seconds. + + + + + + + + Initializes a DataSet instance. + + The DataSet object. + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Disposes a DataSet. + + + This method is used to support FastReport infrastructure. You don't need to use it. + + + + + Sets the connection string. + + New connection string. + + Use this method if you need to perform some actions when the connection string is set. + + + + + Gets a connection string that contains username and password specified. + + User name. + Password. + + Override this method to pass login information to the connection. Typical implementation + must get the existing , merge specified login information into it + and return the new value. + + + + + + + + + + + + + + + + + + + + + + + + + + Fills the collection with all tables available in the database. + + + This method does not read the table data; to do this, call the + method of each table. + + + + + Fills the collection with all tables available in the database. + + Set to true to initialize each table's schema. + + + + Creates the relations between tables. Applies to XmlDataConnection only. + + + + + Gets an array of table names available in the database. + + An array of strings. + + + + Returns a type of connection. + + Type instance. + + You should override this method if you developing a new connection component. + If your connection component does not use data connection, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override Type GetConnectionType() + { + return typeof(OleDbConnection); + } + + + + + + Returns a connection object. + + The DbConnection instance. + Either creates a new DbConnection instance of type provided by the + method, or returns the application connection if set + in the Config.DesignerSettings.ApplicationConnection. + + + + Opens a specified connection object. + + Connection to open. + + Use this method to open a connection returned by the method. + This method displays a login dialog if your connection has the + property set to true. Once you have entered an user name and password in + this dialog, it will remeber the entered values and will not used anymore in this report session. + + + + + Disposes a connection. + + The connection to dispose. + + + + Returns a object that is specific to this connection. + + The SQL command used to fetch a table data rows. + The connection object. + The select command parameters. + The DbDataAdapter object. + + You should override this method if you are developing a new connection component. In this method, + you need to create the adapter and set its SelectCommand's parameters. + If your connection does not use data adapter, you need to override + the and methods instead. + + Here is the example of this method implementation: + + public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, + CommandParameterCollection parameters) + { + OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection as OleDbConnection); + foreach (CommandParameter p in parameters) + { + OleDbParameter parameter = adapter.SelectCommand.Parameters.Add(p.Name, (OleDbType)p.DataType, p.Size); + parameter.Value = p.Value; + } + return adapter; + } + + + + + + Gets the type of parameter that is specific to this connection. + + The parameter's type. + + This property is used in the report designer to display available data types when you edit the + connection parameters. For example, the type of OleDbConnection parameter is a OleDbType. + + + + + Quotes the specified DB identifier such as table name or column name. + + Identifier to quote. + The opened DB connection. + The quoted identifier. + + + + Fills the table schema. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table schema. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Fills the table data. + + DataTable to fill. + The SQL select command. + SQL parameters. + + Usually you don't need to use this method. Internally it uses the and + methods to fill the table data. If you create own connection component + that does not use nor connection or adapter, then you need to override this method. + + + + + Creates table. + For internal use only. + + + + + Deletes table. + For internal use only. + + + + + Clone table. + For internal use only. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for all data components such as data sources, columns. + + + + + + + + Gets or sets alias of this object. + + + Alias is a human-friendly name of this object. It may contain any symbols (including + spaces and national symbols). + + + + + Gets or sets a value indicates that object is enabled and thus can be used in a report. + + + This property is used to hide an object from the Data Dictionary window. Hidden + objects are still accessible in the "Data|Choose Data Source..." menu. + + + + + Gets or sets a name of the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets or sets a reference to the data object. + + + This property is used to support FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a value indicates that this object has an alias. + + + + + + + + + + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a connection to csv file-based database. + + This example shows how to add a new connection to the report. + + Report report1; + CsvDataConnection conn = new CsvDataConnection(); + conn.CsvFile = @"c:\data.csv"; + report1.Dictionary.Connections.Add(conn); + conn.CreateAllTables(); + + + + + + + + + + + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of the .csv file. + + + + + Gets or sets the separator of the .csv file. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types fhould be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Obsolete. Specifies a set of flags used to convert business objects into datasources. + + + + + Specifies no actions. + + + + + Allows using the fields of a business object. + + + + + Allows using properties of a business object with BrowsableAttribute only. + + + + + Specifies a kind of property. + + + + + Specifies the property of a simple type (such as integer). + + + + + Specifies the complex property such as class with own properties. + + + + + Specifies the property which is a list of objects (is of IEnumerable type). + + + + + Represents a datasource based on business object of IEnumerable type. + + + Do not use this class directly. To register a business object, use the + Report.RegisterData method. + + + + + Occurs when FastReport engine loads data source with data from a business object. + + + Use this event if you want to implement load-on-demand. Event handler must load the data into + your business object. + + + + + + + + + + + + + + + + + + + + Represents the method that will handle the LoadBusinessObject event. + + The source of the event. + The event data. + + + + Provides data for event. + + + + + Parent object for this data source. + + + + + Specifies the format for the column value. + + + + + The format will be determined automatically depending on the column's DataType. + + + + + Specifies the General format (no formatting). + + + + + Specifies the Number format. + + + + + Specifies the Currency format. + + + + + Specifies the Date format. + + + + + Specifies the Time format. + + + + + Specifies the Percent format. + + + + + Specifies the Boolean format. + + + + + Specifies the type of an object that will be created when you drop the + data column on a report page. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the object. + + + + + The column will create the custom object, specified in the + property. + + + + + Represents the collection of objects. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + Finds a column by its name. + + The name of a column. + The object if found; otherwise null. + + + + Finds a column by its alias. + + The alias of a column. + The object if found; otherwise null. + + + + Returns an unique column name based on given name. + + The base name. + The unique name. + + + + Returns an unique column alias based on given alias. + + The base alias. + The unique alias. + + + + Sorts the collection of columns. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of columns. + + + + + + + + This class represents a single parameter to use in the "select" command. + + + + + Gets or sets the parameter's data type. + + + + + Gets or sets the size of parameter's data. + + + This property is used if the property is set to String. + + + + + Gets or sets an expression that returns the parameter's value. + + + If this property is not set, the property will be used + to obtain a parameter's value. + + + + + Gets or sets a default value for this parameter. + + + This value is used when you designing a report. Also it is used when report is running + in case if you don't provide a value for the property. + + + + + Gets or sets the parameter's value. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + This class is used to store the list of parameters defined in the datasource. See the + property for more details. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a data connection. + + The index of a data connection in this collection. + The data connection with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the CsvDataConnection connection string builder. + + + Use this class to parse connection string returned by the CsvDataConnection class. + + + + + Gets or sets the path to .csv file. + + + + + Gets or sets the codepage of .csv file. + + + + + Gets or sets the separator. + + + + + Gets or sets the value indicating that field names should be loaded from the first string of the file. + + + + + Gets or sets the value indicating that quotation marks should be removed. + + + + + Gets or sets the value indicating that field types should be converted. + + + + + Gets or sets locale name used to auto-convert numeric fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert currency fields, e.g. "en-US". + + + + + Gets or sets locale name used to auto-convert datetime fields, e.g. "en-US". + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified connection string. + + The connection string. + + + + Base class for all CubeSources such as . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a CubeSource by its name. + + The name of a CubeSource. + The object if found; otherwise null. + + + + Finds a CubeSource by its alias. + + The alias of a CubeSource. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Base class for all datasources such as . + + + + + Occurs when the FastReport engine loads data source with data. + + + Use this event if you want to implement load-on-demand. Event handler must load the data + into the data object which this datasource is bound to (for example, the + TableDataSource uses data from the DataTable object bound to + the Table property). + + + + + Gets a number of data rows in this datasource. + + + You should initialize the datasource by the Init method before using this property. + + + + + Gets a value indicating that datasource has more rows, that is the + is less than the . + + + You should initialize the datasource by the Init method before using this property. + Usually this property is used with the following code block: + + dataSource.Init(); + while (dataSource.HasMoreRows) + { + // do something... + dataSource.Next(); + } + + + + + + Gets the current data row. + + + This property is updated when you call the method. + + + + + Gets an index of current data row. + + + You should initialize the datasource by the Init method before using this property. + This property is updated when you call the method. + + + + + Gets data stored in a specified column. + + Alias of a column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Gets data stored in a specified column. + + The column. + The column's value. + + You should initialize the datasource by the Init method before using this property. + + + + + Forces loading of data for this datasource. + + + This property is false by default. Set it to true if you need to reload data + each time when the datasource initialized. Note that this may slow down the performance. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the additional filter settings. + + + + + Gets data stored in a specified column. + + The column alias. + An object that contains the data. + + + + Gets data stored in a specified column. + + The column. + An object that contains the data. + + + + Initializes the datasource schema. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + + + + Loads the datasource with data. + + + This method is used to support the FastReport.Net infrastructure. Do not call it directly. + + Rows to fill with data. + + + + Initializes this datasource. + + + This method fills the table with data. You should always call it before using most of + datasource properties. + + + + + Initializes this datasource and applies the specified filter. + + The filter expression. + + + + Initializes this datasource, applies the specified filter and sorts the rows. + + The filter expression. + The collection of sort descriptors. + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. + + Parent datasource. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation between + this datasource and parentData. Also applies the specified filter and sorts the rows. + + Parent datasource. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes this datasource and filters data rows according to the master-detail relation. + Also applies the specified filter and sorts the rows. + + The master-detail relation. + The filter expression. + The collection of sort descriptors. + + To use master-detail relation, you must define the object that describes + the relation, and add it to the Report.Dictionary.Relations collection. + + + + + Initializes the data source if it is not initialized yet. + + + + + Navigates to the first row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the next row. + + + You should initialize the datasource by the Init method before using this method. + + + + + Navigates to the prior row. + + + You should initialize the datasource by the Init method before using this method. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the collection of objects. + + + + + Gets or sets a data source. + + The index of a data source in this collection. + The data source with specified index. + + + + Finds a datasource by its name. + + The name of a datasource. + The object if found; otherwise null. + + + + Finds a datasource by its alias. + + The alias of a datasource. + The object if found; otherwise null. + + + + Sorts data sources by theirs names. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the comparer class that used for sorting the collection of data sources. + + + + + + + + Determines how to filter the data value. + + + The "Data value" is a value contained in the datasource which you filter. + The "Selected value" is a value you have entered or selected in the dialog control. + + + + + Data value is equal to selected value. + + + + + Data value is not equal to selected value. + + + + + Data value is less than selected value. + + + + + Data value is less than or equal to selected value. + + + + + Data value is greater than selected value. + + + + + Data value is greater than or equal to selected value. + + + + + Data string contains selected value. + + + + + Data string does not contain selected value. + + + + + Data string starts with selected value. + + + + + Data string does not start with selected value. + + + + + Data string ends with selected value. + + + + + Data string does not end with selected value. + + + + + This class stores all report data items such as datasources, connections, relations, parameters, + system variables. + + + You can access the report dictionary via Report.Dictionary property. + + + + + Gets a collection of connection objects available in a report. + + + + + Gets a collection of datasources available in a report. + + + Usually you don't need to use this property. It contains only datasources + registered using the RegisterData method. All other datasources are contained + in connection objects and may be accessed via property. + + + + + Gets a collection of relations. + + + + + Gets a collection of parameters. + + + Another way to access parameters is to use the Report.Parameters property + which is actually a shortcut to this property. You also may use the Report.GetParameter + and Report.GetParameterValue methods. + + + + + Gets a collection of system variables like Date, PageNofM etc. + + + Another way to access a system variable is to use the Report.GetVariableValue method. + + + + + Gets a collection of totals. + + + Another way to get a total value is to use the Report.GetTotalValue method. + + + + + Gets a collection of cubesources available in a report. + + + Usually you don't need to use this property. It contains only cubesources + registered using the RegisterData method. + + + + + Gets a list of registered items. + + + This property is for internal use only. + + + + + + + + Registers a DataView. + + The DataView to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a business object. + + The business object. + The name of the object. + Maximum level of data nesting. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a CubeLink. + + The CubeLink to register. + The name of the data object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Registers a data object. + + The object to register. + The name of the object. + Determines wheter to enable the object or not. + + This method is for internal use only. + + + + + Unregisters the previously registered data. + + The application data. + + + + Unregisters the previously registered data. + + The application data. + The name of the data. + + You must specify the same data and name as when you call RegisterData. + + + + + Re-registers the data registered before. + + + This method is for internal use only. + + + + + Re-registers the data registered before. + + + + + + Clears all registered data. + + + + + Enables or disables relations between data tables. + + + Call this method if you create master-detail report from code. This method enables + relation between two data tables which Enabled flag is set to true. Relations + whose parent and child tables are disabled, gets disabled too. + + + + + Creates unique name for data item such as connection, datasource, relation, parameter or total. + + The base name. + The new unique name. + + Use this method to create unique name of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new parameter: + + Report report1; + Parameter par = new Parameter(); + par.Name = report1.Dictionary.CreateUniqueName("Parameter"); + report1.Parameters.Add(par); + + + + + + + Creates unique alias for data item such as connection, datasource or relation. + + The base alias. + The new unique alias. + + Use this method to create unique alias of the data item. It is necessary when you create new + items in code to avoid conflicts with existing report items. + This example show how to add a new table: + + Report report1; + DataConnectionBase conn = report1.Dictionary.Connections.FindByName("Connection1"); + TableDataSource table = new TableDataSource(); + table.TableName = "Employees"; + table.Name = report1.Dictionary.CreateUniqueName("EmployeesTable"); + table.Alias = report1.Dictionary.CreateUniqueAlias("Employees"); + conn.Tables.Add(table); + + + + + + + Finds a data item such as connection, datasource, relation, parameter or total by its name. + + The item's name. + The data item if found; otherwise, null. + + + + Finds a data item such as connection, datasource or relation by its alias. + + The item's alias. + The data item if found; otherwise, null. + + + + Finds a datasource that matches the specified DataTable. + + The DataTable object to check. + The DataSourceBase object if found. + + This method is for internal use only. + + + + + Finds a data component that matches the specified reference name. + + The name to check. + The DataComponentBase object if found. + + This method is for internal use only. + + + + + + + + + + + Saves the dictionary to a stream. + + Stream to save to. + + + + Saves the dictionary to a file. + + The name of a file to save to. + + + + Loads the dictionary from a stream. + + The stream to load from. + + + + Loads the dictionary from a file. + + The name of a file to load from. + + + + Merges this dictionary with another Dictionary. + + Another dictionary to merge the data from. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the item registered in a dictionary. + + + + + Gets the item data. + + + + + Gets the item name. + + + + + Represents a report parameter that is used to pass user data to a report. + + + See for details about using parameters. + + + + + Gets or sets the name of parameter. + + + + + Gets or sets the type of parameter. + + + + + Gets or sets the value of parameter. + + + You may specify the static value in this property. Note: if the + property is not empty, it will be calculated and its value will be returned. + + + + + Gets or sets value of the parameter as a string. + + + + + Gets or sets an expression of the parameter. + + + This expression will be calculated each time you access a parameter's Value. + + + + + Gets or sets the description of a parameter. + + + + + Gets a collection of nested parameters. + + + Parameters can have child (nested) parameters. To get or set a nested + parameter's value, use the method. + + + + + Gets the full name of the parameter. This is useful to get the nested parameter's full name. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified name. + + + + + Represents the collection of objects. + + + + + Gets or sets a parameter. + + The index of a parameter in this collection. + The parameter with specified index. + + + + Finds a parameter by its name. + + The name of a parameter. + The object if found; otherwise null. + + + + Returns an unique parameter name based on given name. + + The base name. + The unique name. + + + + Copies the parameters from other collection. + + Parameters to copy from. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents the collection of objects. + + + + + Gets or sets a relation. + + The index of a relation in this collection. + The relation with specified index. + + + + Finds a relation by its name. + + The name of a relation. + The object if found; otherwise null. + + + + Finds a relation by its alias. + + The alias of a relation. + The object if found; otherwise null. + + + + Finds a relation that is equal to specified one. + + Another relation to compare with. + The object if found; otherwise null. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Represents the collection of system variables. + + + + + Represents the base class for system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Returns date and time of the report's start. + + + + + + + + Returns current page number. + + + + + + + + Returns total number of pages in the report. To use this variable, you need + to enable the report's double pass. + + + + + + + + Returns a string containing the current page number in a form "Page N". + + + + + + + + Returns a string containing the current page number and total pages in a form "Page N of M". + To use this variable, you need to enable the report's double pass. + + + + + + + + Returns data row number inside the group. This value is reset at the start of a new group. + + + + + + + + Returns absolute number of data row. This value is never reset at the start of a new group. + + + + + + + + Returns current page number. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the number of total pages in the report. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns the name of the printed copy. + This variable is actually a macro. Its value is substituted when the component is viewed in + the preview window. That means you cannot use it in an expression. + + + + + + + + Returns a level of hierarchy in the hierarchical report. + + + + + + + + Returns the row number like "1.2.1" in the hierarchical report. + + + + + + + + Represents the collection of objects. + + + + + Gets or sets a data table. + + The index of a data table in this collection. + The data table with specified index. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Specifies the total type. + + + + + The total returns sum of values. + + + + + The total returns minimal value. + + + + + The total returns maximal value. + + + + + The total returns average value. + + + + + The total returns number of values. + + + + + The total returns number of distinct values. + + + + + Represents the collection of objects. + + + + + Gets or sets a total. + + The index of a total in this collection. + The total with specified index. + + + + Finds a total by its name. + + The name of a total. + The object if found; otherwise null. + + + + Returns an unique total name based on given name. + + The base name. + The unique name. + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a datasource based on DataView class. + + + This class is used to support FastReport.Net infrastructure, do not use it directly. + If you want to use data from DataView object, call the + method of the Report. + + + + + Gets the underlying DataView object. + + + + + + + + + + + + + + + + + Represents the XmlDataConnection connection string builder. + + + Use this class to parse connection string returned by the XmlDataConnection class. + + + + + Gets or sets the path to .xml file. + + + + + Gets or sets the path to .xsd file. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with + specified connection string. + + The connection string. + + + + Allows working with JsonObject + + + + + Returns child object for JsonArray + + + + + + + Returns child object for JsonObject + + + + + + + Returns count of child object + + + + + Returns true if this object is JsonArray + + + + + Returns true if this object is JsonObject + + + + + Returns list of JsonObject keys + + + + + Pars json text string and return a new JsonBase Object + + + + + + + returns true + + + + + + + Serialize this object to sb + + + + indent in space, 0 = without indent + + + + Based on code of Stefan Bцther, xprocs@hotmail.de + + + + + Contains standard functions registered in the "Data" window. + + + + + Returns the larger of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the larger of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is larger. + + + + Returns the smaller of two 32-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two 64-bit signed integers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two single-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two double-precision floating-point numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns the smaller of two decimal numbers. + + The first of two values to compare. + The second of two values to compare. + Parameter val1 or val2, whichever is smaller. + + + + Returns an integer value representing the character code corresponding to a character. + + Character to convert. + The character code. + + + + Returns the character associated with the specified character code. + + Character code to convert. + The character. + + + + Inserts a specified string at a specified index position in the original string. + + The original string. + The index position of the insertion. + The string to insert. + A new string. + + + + Gets the number of characters in a string. + + The original string. + The number of characters. + + + + Converts a specified string to lowercase. + + The string to convert. + A string in lowercase. + + + + Right-aligns the characters in a string, padding with spaces on the left for a specified total length. + + The original string. + The number of characters in the resulting string. + Right-aligned string, padded on the left with spaces. + + + + Right-aligns the characters in a string, padding on the left with a specified character + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Right-aligned string, padded on the left with padding characters. + + + + Left-aligns the characters in a string, padding with spaces on the right, for a specified total length. + + The original string. + The number of characters in the resulting string. + Left-aligned string, padded on the right with spaces. + + + + Left-aligns the characters in a string, padding on the right with a specified character, + for a specified total length. + + The original string. + The number of characters in the resulting string. + A padding character. + Left-aligned string, padded on the right with padding characters. + + + + Converts the specified string to titlecase. + + The string to convert. + A new string. + + + + Deletes all the characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + A new string. + + + + Deletes a specified number of characters from a string beginning at a specified position. + + The original string. + The position to begin deleting characters. + The number of characters to delete. + A new string. + + + + Replaces all occurrences of a specified string in the original string, with another specified string. + + The original string. + A string to be replaced. + A string to replace all occurrences of oldValue. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position. + + The original string. + The starting character position of a substring. + A new string. + + + + Retrieves a substring from the original string, starting at a specified character position, + with a specified length. + + The original string. + The starting character position of a substring. + The number of characters in the substring. + A new string. + + + + Removes all occurrences of white space characters from the beginning and end of the original string. + + The original string. + A new string. + + + + Converts a specified string to uppercase. + + The string to convert. + A string in uppercase. + + + + Adds the specified number of days to the original date. + + The original date. + A number of whole and fractional days. + A new DateTime value. + + + + Adds the specified number of hours to the original date. + + The original date. + A number of whole and fractional hours. + A new DateTime value. + + + + Adds the specified number of minutes to the original date. + + The original date. + A number of whole and fractional minutes. + A new DateTime value. + + + + Adds the specified number of months to the original date. + + The original date. + A number of months. + A new DateTime value. + + + + Adds the specified number of seconds to the original date. + + The original date. + A number of whole and fractional seconds. + A new DateTime value. + + + + Adds the specified number of years to the original date. + + The original date. + A number of years. + A new DateTime value. + + + + Subtracts the specified date and time from the original date. + + The original date. + The date and time to subtract. + A TimeSpan interval between two dates. + + + + Initializes a new instance of the DateTime. + + The year. + The month. + The day. + A new DateTime value. + + + + Gets the day of the month. + + The date value. + The day component. + + + + Gets the localized name of the day of the week. + + The date value. + The name of the day of the week. + + + + Gets the day of the year. + + The date value. + The day of the year. + + + + Returns the number of days in the specified month and year. + + The year. + The month. + The number of days in month for the specified year. + + + + Gets the hour component of the date. + + The date. + The hour component. + + + + Gets the minute component of the date. + + The date. + The minute component. + + + + Gets the month component of the date. + + The date. + The month component. + + + + Gets the localized month name. + + The month number. + The month name. + + + + Gets the seconds component of the date. + + The date. + The seconds component. + + + + Gets the week of the year. + + The date value. + The week of the year. + + + + Gets the year component of the date. + + The date. + The year component. + + + + Replaces the format item in a specified String with the text equivalent of the value of a + corresponding Object instance in a specified array. + + A String containing zero or more format items. + An Object array containing zero or more objects to format. + A copy of format in which the format items have been replaced by the String equivalent of the corresponding instances of Object in args. + + + + Returns a string formatted as a currency value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a currency value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a date/time value. + + The value to format. + The format specifier, one of the + "Long Date", "Short Date", "Long Time", "Short Time" values. + The formatted string. + + + + Returns a string formatted as a numeric value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a numeric value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Returns a string formatted as a percent value. + + The value to format. + The formatted string. + + + + Returns a string formatted as a percent value with specified number of decimal digits. + + The value to format. + Number of decimal digits. + The formatted string. + + + + Converts a numeric value to Roman string representation. + + Integer value in range 0-3998. + The string in Roman form. + + + + Converts a currency value to an english (US) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (US) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (US) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to an english (GB) string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to an english (GB) string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a spanish string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a russian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a russian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "страница". + The name in plural form, for example "страницы". + The name in plural form, for example "страниц". + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a german string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a german string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a french string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a french string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value. + + The currency value to convert. + The string representation of the specified value. + + + + Converts a currency value to a dutch string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "EUR". + The string representation of the specified value. + + + + Converts a numeric value to a dutch string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + the currency value to convert + The string representation of the specified value. + + + + Converts a numeric value to a indian numbering system string representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "INR". + + + + + Converts a numeric value to a indian numbering system string representation of that value. + + The numeric value to convert. + The name in singular form, for example "page". + The name in plural form, for example "pages". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a currency value to a ukrainian string representation of that value, + using the specified currency. + + The currency value to convert. + The 3-digit ISO name of the currency, for example "UAH". + The string representation of the specified value. + + + + Converts a numeric value to a ukrainian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "сторінка". + The name in plural form, for example "сторінки". + The name in plural form, for example "сторінок". + The string representation of the specified value. + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a spanish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a spanish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a persian representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a persian string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + The string representation of the specified value. + + + + Converts a numeric value to a polish representation of that value. + + he numeric value to convert. + The 3-digit ISO name of the currency, for example "EUR". + + + + + Converts a numeric value to a polish string representation of that value. + + The numeric value to convert. + True if the name is of male gender. + The name in singular form, for example "silla". + The name in plural form, for example "Sillas". + The name in plural form, for example "Sillas". + The string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to an english (US) alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + The alphabet string representation of the specified value. + + + + Converts a value to a russian alphabet string representation of that value. + + The value to convert. + Bool indicating that letters should be in upper registry. + The alphabet string representation of the specified value. + + + + Selects and returns a value from a list of arguments. + + A value between 1 and the number of elements passed in the "choice" argument. + Object parameter array. + One of the values in the "choice" argument. + + + + Returns one of two objects, depending on the evaluation of an expression. + + The expression you want to evaluate. + Returned if Expression evaluates to True. + Returned if Expression evaluates to False. + Either truePart os falsePart. + + + + Evaluates a list of expressions and returns a value corresponding to the first + expression in the list that is True. + + Parameter array consists of paired expressions and values. + The value corresponding to an expression which returns true. + + + + Checks if the specified object is null. + + The report instance. + Either a name of DB column, or a parameter name, or a total name to check. + true if the object's value is null. + + + + The FastReport.dll assembly initializer. + + + + + Registers all standard objects, wizards, export filters. + + + + + Base class for all bands. + + + + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This event occurs before the band layouts its child objects. + + + + + This event occurs after the child objects layout was finished. + + + + + Gets or sets a value indicating that the band should be printed from a new page. + + + New page is not generated when printing very first group or data row. This is made to avoid empty + first page. + + + + + Gets or sets a value that determines the number of repetitions of the same band. + + + + + Gets or sets a value indicating that the first row can start a new report page. + + + Use this property if is set to true. Normally the new page + is not started when printing the first data row, to avoid empty first page. + + + + + Gets or sets a value indicating that the band should be printed on the page bottom. + + + + + Gets or sets a value indicating that the band should be printed together with its child band. + + + + + Gets or sets an outline expression. + + + + Outline is a tree control displayed in the preview window. It represents the prepared report structure. + Each outline node can be clicked to navigate to the item in the prepared report. + + + To create the outline, set this property to any valid expression that represents the outline node text. + This expression will be calculated when band is about to print, and its value will be added to the + outline. Thus, nodes' hierarchy in the outline is similar to the bands' hierarchy + in a report. That means there will be the main and subordinate outline nodes, corresponding + to the main and subordinate bands in a report (a report with two levels of data or with groups can + exemplify the point). + + + + + + Gets or sets a child band that will be printed right after this band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + Gets a collection of report objects belongs to this band. + + + + + Gets a value indicating that band is reprinted on a new page. + + + This property is applicable to the DataHeaderBand and GroupHeaderBand only. + It returns true if its RepeatOnAllPages property is true and band is + reprinted on a new page. + + + + + Gets or sets a script event name that will be fired before the band layouts its child objects. + + + + + Gets or sets a script event name that will be fired after the child objects layout was finished. + + + + + + + + + + + Gets or sets collection of guide lines for this band. + + + + + Gets a row number (the same value returned by the "Row#" system variable). + + + This property can be used when running a report. It may be useful to print hierarchical + row numbers in a master-detail report, like this: + 1.1 + 1.2 + 2.1 + 2.2 + To do this, put the Text object on a detail data band with the following text in it: + [Data1.RowNo].[Data2.RowNo] + + + + + Gets an absolute row number (the same value returned by the "AbsRow#" system variable). + + + + + Gets a value indicating that this is the first data row. + + + + + Gets a value indicating that this is the last data row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the BeforeLayout event and the script code connected to the BeforeLayoutEvent. + + Event data. + + + + This method fires the AfterLayout event and the script code connected to the AfterLayoutEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Specifies an origin where the new objects inserted from. + + + + + Specifies that a new object was inserted from the "Objects" toolbar or "Insert" menu. + + + + + Specifies that a new object was dragged from the "Dictionary" window. + + + + + Specifies that a new object was pasted from the clipboard. + + + + + Represents the root class of the FastReport object's hierarhy. + + + + + Gets a value indicating whether the object is selected in the designer. + + + + + Gets a value indicating whether one of the object's parent is selected in the designer. + + + + + Deletes the object in the designer. + + + This method is called when you delete the object in the designer. + Typically this method calls the method to delete the object and all + its children. You may override it to delete the object only, and keep children. + + + + + Called before inserting a new object in the designer. + + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + Some objects are registered in the designer several times with the same object + type, but different flags. For example, the + represents different shapes: rectangle, roundrect, ellipse and so on. All these + shapes are registered in the designer using flags (the last parameter in this + code): + + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 108, "Objects,Shapes,Rectangle", 0); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 109, "Objects,Shapes,RoundRectangle", 1); + RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 110, "Objects,Shapes,Ellipse", 2); + + When we put the "Ellipse" object on a band, the designer creates the + ShapeObject instance and calls its OnBeforeInsert method with + flags value set to 2. In turn, the OnBeforeInsert method converts the + int value of the flags to the shape kind: + + public override void OnBeforeInsert(int flags) + { + FShape = (ShapeKind)flags; + } + + + + Object's flags. + + + + Called after the new object was inserted in the designer. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + This method is called when new object is inserted, pasted from clipboard or dragged from + "Dictionary" window. You may override this method if you need to perform some actions when object + is inserted. Typical implementation invokes the object's editor if "Edit after insert" flag is set + in the designer options. + + The insertion source. + + + + Called when the user selects another object in the designer. + + + This method is typically used by the in-place object's editor to check if selection was changed and close + the editor. + + + + + Gets the object's context menu. + + Null reference if object does not have a menu. + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + You may use base menu classes such as , + to create own context menus. + + + + + Gets or sets the name of the object. + + + Name of the report object must contain alpha, digit, underscore symbols only. + Data objects such as Variable, TableDataSource + etc. can have any characters in they names. Each component must have unique + name. + + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + + + Another object with such name exists. + Rename an object that was introduced in the ancestor report. + + + + Gets or sets the flags that restrict some actions in the designer. + + + Use this property to restrict some user actions like move, resize, edit, delete. For example, if + Restriction.DontMove flag is set, user cannot move the object in the designer. + + + + + Gets the flags that allow some functionality in the designer. + + + Use this property only if you developing a new FastReport object. + + + + + Gets or sets the parent of the object. + + + Each report object must have a parent in order to appear in the report. Parent must be able to + contain objects of such type. + Another way (preferred) to set a parent is to use specific properties of the parent object. + For example, the object has the collection. + To add a new page to the report, use the following code: report1.Pages.Add(new ReportPage()); + + + + Report report1; + ReportPage page = new ReportPage(); + page.Parent = report1; + + Parent object cannot contain this object. + + + + The base part of the object's name. + + + This property is used to automatically create unique object's name. See + + + + + Gets the short type name. + + + Returns the short type name, such as "TextObject". + + + + + Gets reference to the parent object. + + + + + Gets reference to the parent object. + + + + + Gets the collection of this object's child objects. + + + This property returns child objects that belongs to this object. For example, Report.ChildObjects + will return only pages that contains in the report, but not page childs such as bands. To return all + child objects, use property. + + + + + Gets the collection of all child objects. + + + This property returns child objects that belongs to this object and to child objects of this object. + For example, Report.AllObjects will return all objects that contains in the report - such as + pages, bands, text objects. + + + + + Gets or sets the Z-order of the object. + + + The Z-order is also called "creation order". It is the index of an object in the parent's objects list. + For example, put two text objects on a band. First object will have ZOrder = 0, second = 1. Setting the + second object's ZOrder to 0 will move it to the back of the first text object. + + + + + Gets a value indicating whether the object was introduced in the ancestor report. + + + + + Gets a value indicating whether the object is in the design state. + + + + + Gets a value indicating whether the object is currently printing. + + + + + Gets a value indicating whether the object is currently processed by the report engine. + + + + + Gets an original component for this object. + + + This property is used in the preview mode. Each object in the prepared report is bound to its + original (from the report template). This technique is used to minimize the prepared report's size. + + + + + Helper method, helps to set a reference-type value to the property. + + Old property value. + New property value. + + This method is used widely to set a new value to the property that references another FastReport object. + Method deals with the property. + + This is example of the DataBand.Header property: + public DataHeaderBand Header + { + get { return FHeader; } + set + { + SetProp(FHeader, value); + FHeader = value; + } + } + + + + + Checks if two float values are different. + + First value. + Second value. + true if values are not equal. + + This method is needed to compare two float values using some precision (0.001). It is useful + to compare objects' locations and sizes for equality. + + + + + Deserializes nested object properties. + + Reader object. + + Typically the object serializes all properties to the single xml item: + + <TextObject Name="Text2" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + + Some objects like have child objects that serialized in subitems: + + <DataBand Name="Data1" Top="163" Width="718.2" Height="18.9"> + <TextObject Name="Text3" Left="18.9" Top="37.8" Width="283.5" Height="28.35"/> + </DataBand> + + To read such subitems, the DeserializeSubItems method is used. Base + implementation reads the child objects. You may override it to read some specific subitems. + + The following code is used to read report's styles: + + protected override void DeserializeSubItems(FRReader reader) + { + if (String.Compare(reader.ItemName, "Styles", true) == 0) + reader.Read(Styles); + else + base.DeserializeSubItems(reader); + } + + + + + + Replaces the macros in the given string and returns the new string. + + The text containing macros. + The text with macros replaced with its values. + + + + + + + Set object's flags. + + Flag to set. + true to set the flag, false to reset. + + + + Sets the reference to a Report. + + Report to set. + + + + Sets the object's name. + + + This method is for internal use only. It just sets a new name without any checks + (unlike the property setter). + + Name Property + New name. + + + + Sets the object's parent. + + + This method is for internal use only. You can use it if you are developing a new + component for FastReport. Override it to perform some actions when the parent of an + object is changing. This method checks that parent can contain a child. + + Parent object cannot contain this object. + New parent. + + + + Sets the object's parent. + + New parent. + + This method is for internal use only. You can use it if you are developing a new component for FastReport. + This method does not perform any checks, it just sets the new parent. + + + + + Searches for an object with given name. + + Name of the object to find. + Returns a null reference if object is not found + The following code demonstrates how to find an object by its name: + + TextObject text1 = report1.FindObject("Text1") as TextObject; + if (text1 != null) + { + // object found + } + + + + + + Creates the unique object's name. + + + Note: you have to set object's parent before calling this method. Method uses the + property to create a name. + Note: this method may be very slow on a report that contains lots of objects. Consider + using own naming logic in this case. + + + + TextObject textObj = new TextObject(); + dataBand1.Objects.Add(textObj); + textObj.CreateUniqueName(); + + + + + + Clears the object's state. + + + This method also disposes all object's children. + + + + + Serializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to save the state. It may happen + when: + + + saving the report to the file or stream; + + + saving the report to the designer's undo buffer; + + + + assigning the object to another object using the + or AssignAll methods; + + + + saving the object to the designer's clipboard; + + + saving the object to the preview (when run a + report). + + + + Writer object. + + + + Deserializes the object. + + + Do not call this method directly. You should override it if you are + developing a new component for FastReport. + This method is called when the object needs to restore the state. It may + happen when: + + + loading the report from a file or stream; + + + loading the report from the designer's undo + buffer; + + + assigning another object to this object using the + or AssignAll methods; + + + loading the object from the designer's + clipboard; + + loading the object from the preview pages. + + + Reader object. + + + + Assigns values from another source. + + + Note: this method is relatively slow because it serializes + an object to the xml and then deserializes it. + + Source to assign from. + + + Copies the contents of another, similar object. + + Call Assign to copy the properties from another object of the same type. + The standard form of a call to Assign is + destination.Assign(source); + + which tells the destination object to copy the contents of the + source object to itself. In this method, all child objects are + ignored. If you want to copy child objects, use the + AssignAll method. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings, do not copy report objects + report2.Assign(report1); + + AssignAll Method + Source object to copy the contents from. + + + Copies the contents (including children) of another, similar object. + + + This method is similar to method. It copies child + objects as well. + + + + Report report1; + Report report2 = new Report(); + // copy all report settings and objects + report2.AssignAll(report1); + + + Source object to copy the state from. + + + + Gets a value indicating whether the object has the specified parent in its parent hierarhy. + + Parent object to check. + Returns true if the object has given parent in its parent hierarhy. + + + + Gets a value indicating whether the object has a specified flag in its property. + + Flag to check. + true if Flags property contains specified flag. + + + + Gets a value indicating whether the object has a specified restriction + in its property. + + Restriction to check. + true if Restrictions property contains specified restriction. + + + + Invokes script event. + + Name of the event to invoke. + Event parameters. + + Do not call this method directly. You should use it if you are developing a new component + for FastReport. + Use this method to call an event handler that is located in the report's script. + + Example of the OnBeforePrint method: + public void OnBeforePrint(EventArgs e) + { + if (BeforePrint != null) + BeforePrint(this, e); + InvokeEvent(BeforePrintEvent, e); + } + + + + + Called after all report objects were loaded. + + + Do not call this method directly. You may override it if you are developing a new component + for FastReport. + + + + + Gets all expressions contained in the object. + + Array of expressions or null if object contains no expressions. + + Do not call this method directly. You may override it if you are developing a + new component for FastReport. + + This method is called by FastReport each time before run a report. FastReport + do this to collect all expressions and compile them. For example, + GetExpressions method of the class + parses the text and returns all expressions found in the text. + + + + + + Returns a custom code that will be added to the report script before report is run. + + A custom script text, if any. Otherwise returns null. + + This method may return any valid code that may be inserted into the report script. Currently it is + used in the TableObject to define the following script methods: Sum, Min, Max, Avg, Count. + + + Note: you must take into account the current script language - C# or VB.Net. You may check it via + Report.ScriptLanguage property. + + + + + + Used to extract macros such as "TotalPages#" in the preview mode. + + + This method is used mainly by the TextObject to extract macros and replace it with + actual values passed in the pageIndex and totalPages parameters. This method + is called automatically when the object is being previewed. + + + + + Used to get information of the need to convertation if the function returns true, then the GetConvertedObjects function is called + + The export or the object, that call this method + By default returns false + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Used to get an enumeration of the objects to which this object will be converted, before calling this function, the IsHaveToConvert function will be called + + By default returns this object + + The functions IsHaveToConvert and GetConvertedObjects allow you to convert objects from one to another, + for example the export will convert object before adding it to the file and convert recursive, + i.e. If the new object has the ability to convert, + it will be converted again but limit is 10 times. + At the time of export it is called, only on objects inside the band, + the child objects of converted object will be returned, and the child objects of old object will be ignored. + + + + + Gets the collection of all child objects, converts objects if necessary + + the object or export, that call this convertation + + + + Initializes a new instance of the Base class with default settings. + + + + + This class represents the context menu of the . + + + This class adds the "Can Break" menu item to the component context menu. + + + + + The "Can Break" menu item. + + + + + Initializes a new instance of the BreakableComponentMenu class with default settings. + + + + + Represents a text object which draws each symbol of text in its own cell. + + + The text may be aligned to left or right side, or centered. Use the + property to do this. The "justify" align is not supported now, as well as vertical alignment. + The cell size is defined in the and properties. + These properties are 0 by default, in this case the size of cell is calculated automatically based + on the object's Font. + To define a spacing (gap) between cells, use the and + properties. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets or sets the width of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the height of cell, in pixels. + + + If zero width and/or height specified, the object will calculate the cell size + automatically based on its font. + + + + + Gets or sets the horizontal spacing between cells, in pixels. + + + + + Gets or sets the vertical spacing between cells, in pixels. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents a check box object. + + + + + + + + + + + + + + Gets or set a value indicating whether the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the checked state. + + + + + Gets or sets a symbol that will be displayed when the check box is in the unchecked state. + + + + + Gets or sets a color of the check symbol. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "[Datasource.Column]". + + + + + Gets or sets an expression that determines whether to show a check. + + + + + Gets or sets the check symbol width ratio. + + + Valid values are from 0.2 to 2. + + + + + Gets or sets a value determines whether to hide the checkbox if it is in the unchecked state. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the CheckBoxObject class with default settings. + + + + + This class represents a child band. + + + Typical use of child band is to print several objects that can grow or shrink. It also can be done + using the shift feature (via property), but in some cases it's not possible. + + + + + + + + + + + Gets or sets a value indicating that band will be used to fill unused space on a page. + + + If you set this property to true, the band will be printed several times to fill + unused space on a report page. + + + + + Gets or sets a value that determines the overall number of data rows printed by the data band. + + + Using this property, you may complete the data band upto N data rows. + If the data band has less number of rows, this band will be used to print empty rows. + + + + + Gets or sets a value indicating that the band will be printed if its parent databand is empty. + + + The child band with this property set to true, connected to a databand can be used to print "No data" + text if the databand has no rows. + + + + + + + + + + + Returns true, if compilation is successful + + + + + Handle compile errors + + Returns true if all errors were handled + + + + Returns true, if recompilation is successful + + + + + This class is used to pass find arguments to some methods of the CodeUtils class. + + + + + The start position of the search. After the search, this property points to + the begin of an expression. + + + + + After the search, this property points to the end of an expression. + + + + + The char sequence used to find the expression's begin. + + + + + The char sequence used to find the expression's end. + + + + + The text with embedded expressions. + + + + + The last found expression. + + + + + This static class contains methods that may be used to find expressions embedded + in the object's text. + + + + + Returns expressions found in the text. + + Text that may contain expressions. + The char sequence used to find the start of expression. + The char sequence used to find the end of expression. + Array of expressions if found; otherwise return an empty array. + + + + Gets first expression found in the text. + + Object with find arguments. + Indicates whether to skip strings. + The expression if found; otherwise, returns an empty string. + + + + Class that implements some object's properties such as location, size and visibility. + + + + + Corrects the object's size and sizing point if the size becomes negative. + + Current mouse state. + Typically you don't need to use or override this method. + This method is called by the FastReport designer to check if the object's size becomes negative + when resizing the object by the mouse. Method must correct the object's size and/or position to + make it positive, also change the sizing point if needed. + + + + Checks if the object is inside its parent. + + if true, check now independent of any conditions. + + Typically you don't need to use or override this method. + When you move an object with the mouse, it may be moved outside its parent. If so, this method + must find a new parent for the object and correct it's Left, Top and Parent + properties. If immediately parameter is false, you can optimize the method + to search for new parent only if the object's bounds are outside parent. If this parameter is + true, you must skip any optimizations and search for a parent immediately. + + + + + Draws the object. + + Paint event args. + + This method is widely used in the FastReport. It is called each time when the object needs to draw + or print itself. + In order to draw the object correctly, you should multiply the object's bounds by the scale + parameter. + cache parameter is used to optimize the drawing speed. It holds all items such as + pens, fonts, brushes, string formats that was used before. If the item with requested parameters + exists in the cache, it will be returned (instead of create new item and then dispose it). + + + + + Draw the frame around the object to indicate that it accepts the drag&drop operation. + + Paint event args. + The color of frame. + + + + Draw the selection points. + + Paint event args. + + This method draws a set of selection points returned by the method. + + + + + + + + Gets the preferred size of an object. + + Preferred size. + + This method is called by the FastReport designer when you insert a new object. + + + + + Returns a "smart tag" menu. + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + + + Handles double click event in the designer. + + + This method is called when the user doubleclicks the object in the designer. Typical implementation + invokes the object's editor (calls the InvokeEditor method) and sets the designer's + Modified flag. + + + + + Handles the DragDrop event in the designer. + + Current mouse state. + + This method is called when the user drops an item from the Data Tree window into this object. + This method should copy the information from the e.DraggedObject object and set the + e.Handled flag to true to complete the drag operation. + + + + + Handles the DragOver event in the designer. + + Current mouse state. + + This method is called when the user drags an item from the Data Tree window. This method should + check that the mouse (e.X, e.Y) is inside the object, then set the e.Handled flag + to true if an item can be dragged into this object. + + + + + Handles KeyDown event in the designer. + + The designer's workspace. + Keyboard event parameters. + + This method is called when the user presses any key in the designer. Typical implementation + does nothing. + + + + + Handles MouseDown event that occurs when the user clicks the mouse in the designer. + + + This method is called when the user press the mouse button in the designer. + The standard implementation does the following: + + checks if the mouse pointer is inside the object; + add an object to the selected objects list of the designer; + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. Typical + use of this method is to change the mouse cursor to SizeAll when it is over + an object. The standard implementation does the following: + + checks if the mouse pointer is inside the object; + changes the cursor shape (e.Cursor property); + sets the e.Handled flag to true. + + + Current mouse state. + + + + Handles MouseMove event that occurs when the user moves the mouse in the designer. + + + This method is called when the user moves the mouse in the designer. The + standard implementation does the following: + + + if mouse button is not pressed, check that mouse pointer is inside one of + the selection points returned by the + method and set the e.SizingPoint member to the corresponding sizing + point; + + if mouse button is pressed, and e.SizingPoint member is not + SizingPoint.None, resize the object. + + + Current mouse state. + + + + Handles MouseUp event that occurs when the user releases the mouse button in the designer. + + + This method is called when the user releases the mouse button in the + designer. The standard implementation does the following: + + if e.Mode is WorkspaceMode2.SelectionRect, checks if object + is inside the selection rectangle and sets e.Handled flag if so; + + checks that object is inside its parent (calls the + method). + + + + Current mouse state. + + + + Handles mouse wheel event. + + Current mouse state. + + + + Checks if given point is inside the object's bounds. + + point to check. + true if point is inside the object's bounds. + + You can override this method if your objectis not of rectangular form. + + + + + Draws the selection point. + + Paint event args. + object. + object. + Left coordinate. + Top coordinate. + + + + Gets the object's selection points. + + Array of objects. + + Selection point is a small square displayed at the object's sides when object is selected + in the designer. You can drag this square by the mouse to change the object's size. For example, + the TextObject has eight selection points to change its width and height by the mouse. + If you are developing a new component for FastReport, you may override this method + if your object has non-standard set of selection points. For example, if an object has something like + "AutoSize" property, it would be good to disable all selection points if that property is true, + to disable resizing of the object by the mouse. + + + + + Gets a value indicating that given point is inside selection point. + + point's x coordinate. + point's y coordinate. + selection point. + true if (x,y) is inside the point + + + + Gets the absolute bottom coordinate of the object. + + + + + Gets the absolute bounding rectangle of the object. + + + + + Gets the absolute left coordinate of the object. + + + + + Gets the absolute right coordinate of the object. + + + + + Gets the absolute top coordinate of the object. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control + is resized with its parent. + + + Use the Anchor property to define how a control is automatically resized as its parent control + is resized. Anchoring a control to its parent control ensures that the anchored edges remain in the + same position relative to the edges of the parent control when the parent control is resized. + You can anchor a control to one or more edges of its container. For example, if you have a band + with a TextObject whose Anchor property value is set to Top, Bottom, the TextObject is stretched to + maintain the anchored distance to the top and bottom edges of the band as the height of the band + is increased. + + + + + Gets the bottom coordinate of the object in relation to its container. + + + To change the bottom coordinate, change the and/or properties. + + + + + Gets or sets the bounding rectangle of the object. + + + Assigning a value to this property is equal to assigning values to the , + , , properties. + + + + + Gets or sets the size of client area of the object. + + + This property is used in the class. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control + is resized with its parent. + + + Use the Dock property to define how a control is automatically resized as its parent control is + resized. For example, setting Dock to DockStyle.Left causes the control to align itself with the + left edges of its parent control and to resize as the parent control is resized. + A control can be docked to one edge of its parent container or can be docked to all edges and + fill the parent container. + + + + + Gets or sets a group index. + + + Group index is used to group objects in the designer (using "Group" button). When you select + any object in a group, entire group becomes selected. To reset a group, set the GroupIndex + to 0 (default value). + + + + + Gets or sets the height of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Height to 10mm + text1.Height = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Height = " + (text1.Height / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets the left coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Left to 10mm + text1.Left = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Left = " + (text1.Left / Units.Millimeters).ToString() + "mm"); + + + + + Gets the right coordinate of the object in relation to its container. + + + To change the right coordinate, change the and/or properties. + + + + + Gets or sets the Tag string for this component. + + + + + Gets or sets the top coordinate of the object in relation to its container. + + + + This property value is measured in the screen pixels. Use + class to convert a value to desired units. + + + To obtain absolute coordinate, use property. + + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Top to 10mm + text1.Top = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Top = " + (text1.Top / Units.Millimeters).ToString() + "mm"); + + + + + Gets or sets a value indicating whether the object is displayed in the preview window. + + + Setting this property to false will hide the object in the preview window. + + The following report script will control the Text1 visibility depending on the value of the + data column: + private void Data1_BeforePrint(object sender, EventArgs e) + { + Text1.Visible = [Orders.Shipped] == true; + } + + + + + Gets or sets a string containing expression that determines should be object displayed in the preview window. + + + + + Gets or sets a value that determines if the object can be printed on the printer. + + + Object with Printable = false is still visible in the preview window, but not on the printout. + If you want to hide an object in the preview, set the property to false. + + + + + Gets or sets a string containing expression that determines should be object printed on the printer. + + + + + Gets or sets the width of the object. + + + This property value is measured in the screen pixels. Use class to + convert a value to desired units. + + The following example demonstrates how to convert between pixels and units: + TextObject text1; + // set Width to 10mm + text1.Width = Units.Millimeters * 10; + // convert a value to millimeters + MessageBox.Show("Width = " + (text1.Width / Units.Millimeters).ToString() + "mm"); + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. This class implements the following actions: Edit, Cut, Copy, + Paste, Delete, Bring to Front, Send to Back. + + + + + The "Name" menu item. + + + + + The "Edit" menu item. + + + + + The "Cut" menu item. + + + + + The "Copy" menu item. + + + + + The "Paste" menu item. + + + + + The "Delete" menu item. + + + + + The "BringToFront" menu item. + + + + + The "SendToBack" menu item. + + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Represents a combobox that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Gets or sets value indicating whether it is necessary to show a color name in a combobox. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a drop-down control that allows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the control that owns this dropdown. + + Set the Owner to onscreen control that initiates dropdown. This control will + be used to calculate dpi-dependent sizes. + + + + Gets or sets the selected color. + + + + + Sets the UI style. + + The style to set. + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a popup window that alows to choose a color. + + + This control may be useful if you write own components for FastReport. + + + + + This event is raised when you select a color. + + + + + Gets or sets the selected color. + + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup control. + + + + Represents the combobox used to select a data column. + + + + + Occurs when the text portion of the combobox is changed. + + + + + + + + Gets or sets the data source. + + + + + Gets or sets the Report. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + This is an internal enum that represents the selected datatree item type. + + + + + Nothing selected. + + + + + Data column selected. + + + + + Total selected. + + + + + Parameter selected. + + + + + Function selected. + + + + + Dialog control selected. + + + + + This is an internal control that represents the data tree. + + + This control is for internal use only. + + + + + DataSource property + + + + + SelectedItem property + + + + + SelectedItemType property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new instance of the DataTreeView control. + + + + + Split Container Control + + + + + Constructor + + + + + Represents the label with line. + + + + + + + + Initializes a new instance of the class. + + + + + Represents a control that may contain several pages. It is similar to the TabControl + but contains no tabs. This control is widely used in wizards. + + + + + Occurs when page is selected. + + + + + Gets or sets a value that determines whether the selector area is visible or not. + + + + + Gets or sets the height of selector tab. + + + + + This property is not relevant to this class + + + + + Gets or sets the active page. + + + + + Gets or sets the index of active page. + + + + + Gets or sets the highlighted page index. + + + + + Gets the collection of pages. + + + + + + + + + + + + + + + + + + + + Gets tab at specified mouse point. + + The mouse point. + Index of tab under mouse; -1 if mouse is outside tab area. + + + + Selects the next page. + + + + + Selects the previous page. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a single page of the control. + + + + + Gets or sets the image associated with this page. + + + + + Gets or sets the page caption text. + + + + + + + + + + + + + + Represents a popup form. + + + Use this form if you want to show some controls in non-modal borderless form that + behaves like other standard popup controls such as context menu. This form does not + move a focus from the parent form. + + + + + Shows the form. + + The control which location is used as a reference for pt parameter. + The location relative to the ctl control. + + + + Shows the form. + + The control which location is used as a reference for x, y parameters. + The x position relative to the ctl control. + The y position relative to the ctl control. + + + + Shows the form. + + The absolute screen location. + + + + Initializes a new instance of the class with default settings. + + The main form that owns this popup form. + + + + Handler which allows to prevent canceling of popup window + + Popup helper + Event arguments + + + + Contains event information for a PopupClosed event. + + + + + The popup form. + + + + + Gets the popup form which is being closed. + + + + + Constructs a new instance of this class for the specified + popup form. + + Popup Form which is being closed. + + + + Arguments to a PopupCancelEvent. Provides a + reference to the popup form that is to be closed and + allows the operation to be cancelled. + + + + + Whether to cancel the operation + + + + + Mouse down location + + + + + Popup form. + + + + + Constructs a new instance of this class. + + The popup form + The mouse location, if any, where the + mouse event that would cancel the popup occured. + + + + Gets the popup form + + + + + Gets the location that the mouse down which would cancel this + popup occurred + + + + + Gets/sets whether to cancel closing the form. Set to + true to prevent the popup from being closed. + + + + + Represents the method which responds to a PopupClosed event. + + + + + Represents the method which responds to a PopupCancel event. + + + + + A class to assist in creating popup windows like Combo Box drop-downs and Menus. + This class includes functionality to keep the title bar of the popup owner form + active whilst the popup is displayed, and to automatically cancel the popup + whenever the user clicks outside the popup window or shifts focus to another + application. + + + + + Event Handler to detect when the popup window is closed + + + + + Message filter to detect mouse clicks anywhere in the application + whilst the popup window is being displayed. + + + + + The popup form that is being shown. + + + + + The owner of the popup form that is being shown: + + + + + Whether the popup is showing or not. + + + + + Whether the popup has been cancelled, notified by PopupCancel, + rather than closed. + + + + + Raised when the popup form is closed. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + Shows the specified Form as a popup window, keeping the + Owner's title bar active and preparing to cancel the popup + should the user click anywhere outside the popup window. + Typical code to use this message is as follows: + + frmPopup popup = new frmPopup(); + Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom)); + popupHelper.ShowPopup(this, popup, location); + + Put as much initialisation code as possible + into the popup form's constructor, rather than the System.Windows.Forms.Load + event as this will improve visual appearance. + + Main form which owns the popup + Window to show as a popup + Location relative to the screen to show the popup at. + + + + Responds to the + event from the popup form. + + Popup form that has been closed. + Not used. + + + + Subclasses the owning form's existing Window Procedure to enables the + title bar to remain active when a popup is show, and to detect if + the user clicks onto another application whilst the popup is visible. + + Window Procedure Message + + + + Called when the popup is being hidden. + + + + + Raises the event. + + describing the + popup form that is being closed. + + + + Raises the event. + + describing the + popup form that about to be cancelled. + + + + Default constructor. + + Use the + method to attach this class to the form you want to show popups from. + + + + A Message Loop filter which detect mouse events whilst the popup form is shown + and notifies the owning class when a mouse + click outside the popup occurs. + + + + + Raised when the Popup Window is about to be cancelled. The + property can be + set to true to prevent the form from being cancelled. + + + + + The popup form + + + + + The owning object. + + + + + Constructs a new instance of this class and sets the owning + object. + + The object + which owns this class. + + + + Gets/sets the popup form which is being displayed. + + + + + Checks the message loop for mouse messages whilst the popup + window is displayed. If one is detected the position is + checked to see if it is outside the form, and the owner + is notified if so. + + Windows Message about to be processed by the + message loop + true to filter the message, false otherwise. + This implementation always returns false. + + + + Checks the mouse location and calls the OnCancelPopup method + if the mouse is outside the popup form. + + + + + Raises the event. + + The associated + with the cancel event. + + + + Represents the control that combines a textbox and a button. + + + + + Occurs when the button is clicked. + + + + + Occurs when the text is changed. + + + + + + + + Gets or sets the button's image. + + + + + Gets or sets the button's text. + + + + + + + + + + + + + + Set focus on text box. + + + + + + Initializes a new instance of the class. + + + + + TreeView control with multiselect support. + + + This control is for internal use only. + + + + + Creates a new instance of the TreeViewMultiSelect control. + + + + + Gets a copy of list of selected nodes. + + + + + + + + + + + + + + + + + + + + Specifies how text in a is horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + Gets or sets the alignment to apply to the current + selection or insertion point. + + + Replaces the SelectionAlignment from . + + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in screen pixels + Value in twips + + + + Convert between screen pixels and twips (1/1440 inch, used by Win32 API calls) + + Value in twips + Value in screen pixels + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + (Index of last character that fitted on the page) + 1 + + + + Calculate or render the contents of RichTextBox for printing + + Graphics object + Graphics object to measure richtext for + Bonding rectangle of the RichTextBox + Index of first character to be printed + Index of last character to be printed + If true, only the calculation is performed, + otherwise the text is rendered as well + The calculated text height + (Index of last character that fitted on the page) + 1 + + + + The base class for the context menu item. + + + + + Gets a collection of menu items. + + + + + Gets or sets "Check on click" property. + + + + + Sets bold font. + + + + + The base class for the context menu of the report component. + + + This class represents a context menu of the report component that is displayed when the object + is right-clicked in the designer. + + + + + The reference to the report designer. + + + + + Gets a collection of menu items. + + + You should add new items to this collection. + + + + + This method is called to reflect changes in the designer. + + + + + Creates a new menu item. + + Item's text. + New item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New item. + + + + Displays context menu. + + Parent control. + Location. + + + + Initializes a new instance of the ComponentBaseMenu class with default settings. + + The reference to a report designer. + + + + Specifies the shape of the CrossBandObject. + + + + + Specifies the vertical line shape. + + + + + Specifies the rectangle shape. + + + + + Represents an object that can be printed across several bands. + + + + + Gets or sets the object's shape. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + This class represents the Data band. + + + Use the property to connect the band to a datasource. Set the + property if you want to filter data rows. The + property can be used to sort data rows. + + + + + + + + + + + + + + + + + Invokes column editor + + + + + Gets or sets a header band. + + + + + Gets a collection of detail bands. + + + + + Gets or sets a footer band. + + + + + Gets or sets a data source. + Please note: data source have to be enabled. + + + + + Gets or sets a number of rows in the virtual data source. + + + Use this property if your data band is not connected to any data source. In this case + the virtual data source with the specified number of rows will be used. + + + + + Limits the maximum number of rows in a datasource. 0 means no limit. + + + + + Gets or sets a relation used to establish a master-detail relationship between + this band and its parent. + + + Use this property if there are several relations exist between two data sources. + If there is only one relation (in most cases it is), you can leave this property empty. + + + + + Gets the collection of sort conditions. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will not be printed. + + + + + Gets the band columns. + + + + + Gets or sets a value that determines whether to print a band if all its detail rows are empty. + + + + + Gets or sets a value that determines whether to print a band if its datasource is empty. + + + + + Gets or sets a value indicating that all band rows should be printed together on one page. + + + + + Gets or sets a value indicating that the band should be printed together with all its detail rows. + + + + + Gets or sets the key column that identifies the data row. + + + This property is used when printing a hierarchic list. + To print the hierarchic list, you have to setup three properties: IdColumn, + ParentIdColumn and Indent. First two properties are used to identify the data + row and its parent; the Indent property specifies the indent that will be used to shift + the databand according to its hierarchy level. + When printing hierarchy, FastReport shifts the band to the right + (by value specified in the property), and also decreases the + width of the band by the same value. You may use the Anchor property of the + objects on a band to indicate whether the object should move with the band, or stay + on its original position, or shrink. + + + + + Gets or sets the column that identifies the parent data row. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets the indent that will be used to shift the databand according to its hierarchy level. + + + This property is used when printing a hierarchic list. See description of the + property for more details. + + + + + Gets or sets a value indicating that the databand should collect child data rows. + + + This property determines how the master-detail report is printed. Default behavior is: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + MasterData row2 + -- DetailData row1 + -- DetailData row2 + When you set this property to true, the master databand will collect all child data rows + under a single master data row: + MasterData row1 + -- DetailData row1 + -- DetailData row2 + -- DetailData row3 + -- DetailData row4 + -- DetailData row5 + + + + + Gets or sets a value that determines whether to reset the page numbers when this band starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the data source connected to this band. + + + + + + + + Initializes a new instance of the class. + + + + + Class represent a smart tag that is used to choose a data column. + + + + + Gets or sets the data column name. + + + + + + + + Gets a root datasource for the object currently edited. + + The DataSourceBase object if found; null otherwise. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents a smart tag that is used to choose a data source. + + + + + Gets or sets a data source. + + + + + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the report's designer control. + + + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + This control represents pure designer surface + Objects toolbar. If you need + standard menu, statusbar, toolbars and tool windows, use the + control instead. Also you may + decide to use a designer's form () + instead of a control. + To run a designer, you need to attach a Report instance to it. This can be done via + the property. + To call the designer in MDI (Multi-Document Interface) mode, use the + property. + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + + Occurs when designer's UI state changed. + + + + + Gets or sets the edited report. + + + To initialize the designer, you need to pass a Report instance to this property. + This will create the designer's surface associated with the report. + + Designer designer = new Designer(); + designer.Parent = form1; + designer.Report = report1; + + + + + + Gets active report object. + + + May be null if Start Page selected, or no reports opened. + + + + + Gets a collection of global plugins such as menu, properties window, etc. + + + + + Gets a collection of objects on the active page of the active report. + + + + + Gets a collection of selected objects on the active page of the active report. + + + + + Gets a collection of selected objects of the ComponentBase type. + + + + + Gets a collection of selected objects of the ReportComponentBase type. + + + + + Gets a collection of selected objects of the TextObject type. + + + + + Gets or sets a value indicating that the report was modified. + + + + + Gets or sets a value that determines whether to ask user to save changes when closing the designer. + + + + + Gets the designer restrictions. + + + + + Gets or sets a value indicating that designer is run in MDI mode. + + + To call the designer in MDI (Multi-Document Interface) mode, use the following code: + + DesignerControl designer = new DesignerControl(); + designer.MdiMode = true; + designer.ShowDialog(); + + + + + + Gets or sets the visual style. + + + + + Gets a value indicating that designer is used to edit a preview page. + + + + + Gets or sets the zoom factor. + + + + + Gets the zoom factor with respect of designer's dpi value. + + + + + The "File|New" command. + + + + + The "New Page" toolbar command. + + + + + The "New Dialog" toolbar command. + + + + + The "File|Open..." command. + + + + + The "File|Save" command. + + + + + The "File|Save As..." command. + + + + + The "File|Save All" command. + + + + + The "File|Close" command. + + + + + The "Window|Close All" command. + + + + + The "File|Preview..." command. + + + + + The "File|Printer Setup..." command. + + + + + The "File|Page Setup..." command. + + + + + The "Data|Add New Data Source..." command. + + + + + The "Data|Sort Data Sources" command. + + + + + The "Data|Choose Report Data..." command. + + + + + The "Edit|Undo" command. + + + + + The "Edit|Redo" command. + + + + + The "Edit|Cut" command. + + + + + The "Edit|Copy" command. + + + + + The "Edit|Paste" command. + + + + + The "Format Painter" toolbar command. + + + + + The "Edit|Delete" command. + + + + + The "Edit|Copy Page" command. + + + + + The "Edit|Delete Page" command. + + + + + The "Edit|Select All" command. + + + + + The "Edit|Group" command. + + + + + The "Edit|Ungroup" command. + + + + + The "Edit" command. + + + + + The "Edit|Find..." command. + + + + + The "Polygon move command" command. + + + + + The "Polygon point move" command. + + + + + The "Polygon add new point" command. + + + + + The "Polygon berier" command. + + + + + The "Polygon remove point" command. + + + + + The "Edit|Replace..." command. + + + + + The "Bring To Front" command. + + + + + The "Send To Back" command. + + + + + The "Insert" command. + + + + + The "Insert Band" command. + + + + + The "Recent Files" command. + + + + + The "File|Select Language..." command. + + + + + The "View|Start Page" command. + + + + + The "Report|Options..." command. + + + + + The "View|Options..." command. + + + + + The "Report|Styles..." command. + + + + + The "Help|Help Contents..." command. + + + + + The "Help|About..." command. + + + + + The "Show welcome window..." command. + + + + + Gets or sets the layout state of the designer. + + + This property is used to store layout in Visual Studio design time. You may also use + it to save and restore the designer's layout in your code. However, consider using the + and methods that use FastReport + configuration file. + + + + + Fires when the layout is changed. + + + This event is for internal use only. + + + + + Updates UI style of the designer. + + + + + Initializes designer plugins such as toolbars and toolwindows. + + + + + + + + Zooms the report to page width. + + + + + Zooms the report to whole page. + + + + + Cancels paste mode. + + + + + AutoSave system initialization. + + + + + Stops the AutoSave system. + + + + + Call this method if you change something in the report. + + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + + This method adds the current report state to the undo buffer and updates all plugins. + + + + + Call this method if you change something in the report. + + The object that was modified. + The undo action name. + The name of modified object. + + + + Call this method to tell the designer that current selection is changed. + + The plugin that changes the selection (may be null). + + + + Locks all plugins. + + + This method is usually called when we destroy the report to prevent unexpected + errors - such as trying to draw destroyed objects. + + + + + Unlocks all plugins. + + + Call this method after the Lock. + + + + + Call this method to refresh all plugins' content. + + The plugin that we don't need to refresh. + + + + Updates localization of the designer. + + + + + Updates layout and images on dpi change. + + The sender object. + + + + Saves config to a FastReport configuration file. + + + + + Restores config from a FastReport configuration file. + + + Call this method to restore the designer's layout. You need to do this after the + designer's control is placed on a form. + + + + + Refresh the designer's toolbars and toolwindows layout. + + + Call this method if you use + DesignerControl. To restore + the layout that you've created in VS design time, you need to call this method in the form's + Load event handler. If you don't do this, tool windows like Properties, Data, Report Tree + will not be available. + + + + + + + + + + + Initializes the workspace after the new report is loaded. + + + + + Tries to create a new empty report. + + true if report was created successfully; false if user cancels the action. + + + + Displays a message in the "Messages" window. + + Message text. + + + + Clears the "Messages" window. + + + + + Shows the selected object's information in the designer's statusbar. + + Object's location. + Object's size. + Textual information about the selected object. + + + + Close all opened reports, ask to save changes. + + true if all tabs closed succesfully. + + Use this method to close all opened documents and save changes when you closing the main form + that contains the designer control. To do this, create an event handler for your form's FormClosing + event and call this method inside the handler. If it returns false, set e.Cancel to true. + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all designer commands. + + + + + Gets a value indicating that the command is enabled. + + + If you use own controls that invoke designer commands, use this property to refresh + the Enabled state of a control that is bound to this command. + + + + + Defines a custom action for this command. + + + Using custom action, you can override the standard behavior of this designer's command. + + + This example demonstrates how to override the "New..." command behavior. + + // add an event handler that will be fired when the designer is run + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + // override "New..." command behavior + (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); + } + + void cmdNew_CustomAction(object sender, EventArgs e) + { + // show the "Label" wizard instead of standard "Add New Item" dialog + Designer designer = sender as Designer; + LabelWizard wizard = new LabelWizard(); + wizard.Run(designer); + } + + + + + + Gets a value for the Enabled property. + + true if command is enabled. + + + + Invokes the command. + + + + + Invokes the command with specified sender and event args. + + Sender. + Event args. + + This method is compatible with standard and can be passed + to the event handler constructor directly. + + + + + Represents the "File|New" command. + + + + + + + + + + + Represents the "New Page" toolbar command. + + + + + + + + + + + Represents the "New Dialog" toolbar command. + + + + + + + + + + + Represents the "File|Open..." command. Also can be used for loading a file + from the recent files list. + + + + + + + + + + + Loads a specified report file. + + File to load. + + + + Represents the "File|Save" command. + + + + + + + + + + + Represents the "File|Save As..." command. + + + + + + + + + + + Represents the "File|Save All" command. + + + + + + + + + + + Represents the "File|Close" command. + + + + + + + + + + + Represents the "Window|Close All" command. + + + + + + + + Represents the "File|Preview..." command. + + + + + + + + + + + Represents the "File|Page Setup..." command. + + + + + + + + + + + Represents the "Report|Options..." command. + + + + + + + + + + + Represents the "File|Printer Setup..." command. + + + + + + + + + + + Represents the "Edit|Undo" command. + + + + + + + + + + + Undo several actions. + + Number of actions to undo. + + + + Represents the "Edit|Redo" command. + + + + + + + + + + + Redo several actions. + + Number of actions to redo. + + + + Represents the "Edit|Cut" command. + + + + + + + + + + + Represents the "Edit|Copy" command. + + + + + + + + Represents the "Edit|Copy Page" command. + + + + + + + + + + + Represents the "Edit|Paste" command. + + + + + + + + + + + Represents the "Format Painter" toolbar command. + + + + + + + + + + + Represents the "Edit|Delete" command. + + + + + + + + + + + Represents the "Edit|Delete Page" command. + + + + + + + + + + + Represents the "Edit|Select All" command. + + + + + + + + + + + Represents the "Edit|Group" command. + + + + + + + + + + + Represents the "Edit|Ungroup" command. + + + + + + + + Represents the "Edit" command. + + + + + + + + + + + Represents the "Edit|Find..." command. + + + + + + + + + + + Represents the "Edit|Replace..." command. + + + + + Represents the "Bring To Front" context menu command. + + + + + + + + + + + Represents the "Send To Back" context menu command. + + + + + + + + Represents the "Insert" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Insert Band" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the insert operation is enabled. + + + + + + + + Represents the "Data|Add Data Source..." command. + + + + + + + + + + + Represents the "Data|Sort Data Sources" command. + + + + + + + + + + + Represents the "Data|Choose Report Data..." command. + + + + + + + + + + + Represents the "Recent Files" command. + + + This command has no default action associated with it. Check the Enabled property + to see if the recent files list is enabled. + + + + + + + + Represents the "File|Select Language..." command. + + + + + + + + Represents the "View|Options..." command. + + + + + + + + Represents the "View|Start Page" command. + + + + + + + + + + + Represents the "Select polygon move" command. + + + + + + + + + + + Represents the "Report|Styles..." command. + + + + + + + + + + + Represents the "Help|Help Contents..." command. + + + + + + + + + + + Represents the "Help|About..." command. + + + + + + + + Represents the "Show welcome window..." command. + + + + + + + + + + + Provides a data for the designer ReportLoaded event. + + + + + The current report. + + + + + Represents the method that will handle the designer ReportLoaded event. + + The source of the event. + The event data. + + + + Provides a data for the designer ObjectInserted event. + + + + + Gets the inserted object. + + + + + Gets the source where the object is inserted from. + + + + + Represents the method that will handle the designer ObjectInserted event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets or sets a file name. + + + This property contains the location of a report. If you work with files (like the + standard "Open" and "Save" dialogs do), treat this property as a file name. + + + + + Gets or sets a value indicating that the dialog was cancelled. + + + This property is used to tell the designer that the user was cancelled the dialog. + + + + + Gets or sets the custom data that is shared across events. + + + You may set the Data in the OpenDialog event and use it later in the OpenReport event. + + + + + Gets a report designer. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides a data for the designer's custom dialog events. + + + + + Gets a report. + + + Use this report in the load/save operations. + + + + + Gets a file name. + + + This property contains the location of a report that was selected by the user in the + open/save dialogs. If you work with files (like the standard "Open" and "Save" dialogs do), + treat this property as a file name. + + + + + Gets the custom data that was set in the OpenDialog event. + + + + + Represents the method that will handle the designer's custom dialogs event. + + The source of the event. + The event data. + + + + Provides data for the FilterConnectionTables event. + + + + + Gets the Connection object. + + + + + Gets the table name. + + + + + Gets or sets a value that indicates whether this table should be skipped. + + + + + Represents the method that will handle the FilterConnectionTables event. + + The source of the event. + The event data. + + + + Provides data for the CustomQueryBuilder event. + + + + + Gets the Connection object. + + + + + Gets or sets the query text. + + + + + Gets or sets the query parameters. + + + + + Represents the method that will handle the CustomQueryBuilder event. + + The source of the event. + The event data. + + + + Represents list of registered design plugins. + + + + + Adds a new plugin's type. + + The type of a plugin. + + + + Represents a set of designer's restrictions. + + + + + Gets or sets a value that enables or disables the "Open" action. + + + + + Gets or sets a value that enables or disables the "Save/Save as" actions. + + + + + Gets or sets a value that enables or disables the "New..." action. + + + + + Gets or sets a value that enables or disables the "Preview" action. + + + + + Gets or sets a value that enables or disables the recent files list. + + + + + Gets or sets a value that enables or disables the "Code" tab. + + + + + Gets or sets a value that enables or disables the "Data" menu. + + + + + Gets or sets a value that enables or disables the "Data|Add New Data Source..." menu. + + + + + Gets or sets a value that enables or disables the "Data|Sort Data Sources" menu. + + + + + Gets or sets a value that enables or disables the "Report|Options..." menu. + + + + + Gets or sets a value that enables or disables insertion of objects. + + + + + Gets or sets a value that enables or disables the insertion of bands. + + + + + Gets or sets a value that enables or disables the "Delete Page" action. + + + + + Gets or sets a value that enables or disables the creation of report/dialog pages. + + + + + Gets or set a value that enables or disbles the "Copy Page" action. + + + + + Gets or sets a value that enables or disables the "Page Setup" action. + + + + + Copies the contents of another, similar object. + + Source object to copy the contents from. + + + + Creates exact copy of this object. + + The copy of this object. + + + + This class contains settings that will be applied to the report designer. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when the designer is closed. + + + + + Occurs when the report is loaded. + + + + + Occurs when a report page or a dialog form is added to the report. + + + Use this event if you want to customize the page properties. + + + This example demonstrates how to change the default page margins. + + Config.DesignerSettings.PageAdded += new EventHandler(DesignerSettings_PageAdded); + + void DesignerSettings_PageAdded(object sender, EventArgs e) + { + if (sender is ReportPage) + (sender as ReportPage).TopMargin = 0; + } + + + + + + Occurs when object is inserted. + + + + + + + + + + + + + + + + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + Config.DesignerSettings.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + Config.DesignerSettings.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Occurs when the query builder is called. + + + Subscribe to this event if you want to replace the embedded query builder with your own one. + + + + + Gets or sets the icon for the designer window. + + + + + Gets or sets the default font used in a report. + + + + + Gets or sets a value indicating whether the designer window is displayed in the Windows taskbar. + + + + + Gets the designer restrictions flags. + + + + + Gets or sets the title text for the designer window. + + + If no text is set, the default text "FastReport -" will be used. + + + + + Gets or sets application-defined DbConnection object that will be used in the designer + to create a new datasource. + + + The application connection object is used in the "Data Wizard" to create new datasources. + In this mode, you can't create any other connections in the wizard; only application + connection is available. You still able to choose tables or create a new queries inside + this connection. The connection information (ConnectionString) is not stored in the report file. + + + + + Gets the toolstrip renderer. + + + + + Adds a custom connection used in the "Data Wizard" window. + + + Use this method to provide own connection strings for the "Data Wizard" dialog. To do this, you need + to pass the type of connection object and connection string associated with it. You must use one of the + connection objects registered in FastReport that inherit from the + class. + To clear the custom connections, use the method. + + + This example shows how to add own connection string. + + Config.DesignerSettings.AddCustomConnection(typeof(MsAccessDataConnection), @"Data Source=c:\data.mdb"); + + + + + + Clears the custom connections added by the AddCustomConnection method. + + + + + Initializes a new instance of the class. + + + + + Base class for all export plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Save File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a save dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Saves the specified report into specified file. + + Report object. + File name. + + + + Represents the FR3 export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR3 units converter. + + + + + Converts Color to TColor. + + Color value. + String that contains TColor value. + + + + Converts font style. + + FontStyle value. + String that contains converted value. + + + + Converts horizontal alignment of text. + + HorzAlign value. + String that contains converted value. + + + + Converts vertical alignment of text. + + VertAlign value. + String that contains coverted value. + + + + Converts font size to delphi font height. + + Font size value. + String that contains font height value. + + + + Convert line style to frame style. + + Line style value. + String that contains converted value. + + + + Converts barcode type. + + BarcodeBase instance. + String that contains converted value. + + + + Converts BorderLines value. + + BorderLines instance. + String that contains converted value. + + + + Converts CheckedSymbol value. + + CheckeSymbol instance. + String that contains converted value. + + + + Converts ScaleDock value. + + ScaleDock instance. + String that contains converted value. + + + + Converts DashStyle value. + + DashStyle instance. + String that contains converted value. + + + + Converts TotalType value. + + TotalType instance. + String that contains converted value. + + + + Converts MapLabelKind value. + + MapLabelKind instance. + String that contains converted value. + + + + Converts MapPalette value. + + MapPalette instance. + String that contains converted value. + + + + Converts ShapeKind value. + + ShapeKind instance. + String that contains coverted value. + + + + Represents the RDL export plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + The FR units converter. + + + + + Converts the float size in pixels to string value in millimeters. + + The float value in pixels. + The string value in millimeters. + + + + Converts the float size in millimeters to string value in millimeters. + + The float value in millimeters. + The string value in millimeters. + + + + Converts the bool value to string. + + The bool value. + The string value. + + + + Converts the int size in pixels to string value in pt. + + The int value in pixels. + The string value in pt. + + + + Converts the Color value to string. + + The Color value. + The string representation of Color value. + + + + Converts the LineStyle value to RDL BorderStyle value. + + The LineStyle value. + The string with RDL BorderStyle value. + + + + Converts the GradientStyle value to RDL GradientType value. + + The GradientStyle value. + The string with RDL GradientType value. + + + + Converts the FontStyle value to RDL FontStyle value. + + The FontStyle value. + The string with RDL FontStyle value. + + + + Converts the FontFamily value to RDL FontFamily value. + + The FontFamily value. + The string with RDL FontFamily value. + + + + Converts the HorzAlign value to RDL TextAlign value. + + The HorzAlign value. + The string with RDL TextAling value. + + + + Converts the VertAling value to RDL VerticalAling value. + + The VertAling value. + The string with RDL VerticalAlign value. + + + + Converts the Angle value to RDL WritingMode value. + + The Angle value. + The string with RDL WritingMode value. + + + + Converts the FontSize value to RDL FontSize value. + + The FontSize value. + The string with RDL FontSize value. + + + + Converts the PictureBoxSizeMode value to RDL Sizing value. + + The PictureBoxSizeMode value. + The string with RDL Sizing value. + + + + Converts the SeriesChartType value to RDL Chart.Type value. + + The SeriesChartType value. + The string with RDL Chart.Type value. + + + + Converts the ChartColorPalette value to RDL Chart.Palette value. + + The ChartColorPalette value. + The string with RDL Chart.Palette value. + + + + Converts the Legend.Docking and Legend.Alignment values to RDL Chart.Legend.Position value. + + The Legend.Docking value. + The Legend.Alignment value. + The string with RDL Chart.Legend.Position value. + + + + Converts the LegendStyle value to Chart.Legend.Layout value. + + The LegendStyle value. + The string with RDL Chart.Legend.Layout value. + + + + Converts the LightStyle value to RDL Shading value. + + The LightStyle value. + The string with RDL Shading value. + + + + Converts the ChartDashStyle value to RDL BorderStyle value. + + The ChartDashStyle value. + The string with RDL ChartDahsStyle value. + + + + Converts the ContentAlignment value to RDL TextAlign value. + + The ContentAlignment value. + The string with RDL TextAlign value. + + + + Converts the ContentAlignment value to RDL VerticalAlign value. + + The ContentAlignment value. + The string with RDL VerticalAlign value. + + + + Converts the AxisEnabled value to RDL Axis.Visible value. + + The AxisEnabled value. + The string with RDL Axis.Visible value. + + + + Converts the TickMarkStyle value to RDL TickMarkStyle value. + + The TickMarkStyle value. + The string with RDL TickMarkStyle value. + + + + Converts the StringAlignment value to RDL TextAlign value. + + The StringAlignment value. + The string with RDL TextAlign value. + + + + Provides functionality required for report designer plugins such as toolbars and toolwindows. + + + + + Gets the plugin name. + + + + + Saves the plugin state. + + This example shows how to save the state: + + public void SaveState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + xi.SetProp("ShowGrid", DialogWorkspace.ShowGrid ? "1" : "0"); + } + + + + + + Restores the plugin state. + + This example shows how to restore the state: + + public void RestoreState() + { + XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name); + DialogWorkspace.ShowGrid = xi.GetProp("ShowGrid") != "0"; + } + + + + + + Updates plugin state when current selection was changed. + + + Typically you need to do the same work in the and + methods. + + + + + Updates plugin state when the report was modified. + + + Typically you need to do the same work in the and + methods. + + + + + Locks the plugin. + + + This method is called by the designer when report is loading. It may be needed to disable + some operations (like painting) that use the report. + + + + + Unlocks the plugin. + + This method is called by the designer when report is loaded. It follows the Lock + method call and must reset the lock. + + + + Localizes the plugin. + + + This method is called by the designer when current localization is changed. + + + + + Gets an options page that will be used in the Designer Options dialog to edit the plugin options. + + The options page, if implemented; otherwise, null. + + + + Updates UI style of the plugin. + + + The plugin should update its style according to the designer's UIStyle property. + + + + + Updates layout on dpi change. + + + + + Base class for all import plugins. + + + + + Gets or sets the name of plugin. + + + + + Gets or sets the filter string used in the "Open File" dialog. + + + + + Gets or sets reference to the designer. + + + + + Gets or sets reference to the report. + + + + + + + + Gets or sets reference to the import. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a file filter for a open dialog. + + String that contains a file filter, for example: "Bitmap image (*.bmp)|*.bmp" + + + + Loads the specified file into specified report. + + Report object. + File name. + + + + Represents the DevExpess import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + Represents the List and Label import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Represents the RDL import plugin. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + Import RichTextFile to a report + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified designer. + + The report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents collection of designer plugins. + + + This class is used in the Designer.Plugins property. + To register own plugin, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Finds a plugin by its name. + + The plugin's name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.Find("MessagesWindow") as MessagesWindow; + + + + + + Finds a plugin by its type name. + + The plugin's type name. + The plugin, if found; otherwise, null. + This example shows how to find a plugin. + + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + Base class for all designer toolbars. + + + Use this class to write own designer's toolbar. To do this: + - in the constructor, set the Name property and create toolbar buttons. + The Name will be used to restore toolbar's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolbar, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolbar)); + + + + + + + Gets the report designer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new button. + + Button's name. + Button's image index. + Click handler. + New button. + + + + Creates a new button. + + Button's name. + Button's image index. + Button's tooltip text. + Click handler. + New button. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the "Data Dictionary" window. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Describes an item dragged from the "Data Dictionary" window. + + + + + The dragged object. + + + + + The text of dragged object. + + + + + Collection of dragged items. + + + + + Represents the "Messages" window. + + + To get this window, use the following code: + + Designer designer; + MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; + + + + + + + + + Clears the message list. + + + + + Adds a new message. + + The message text. + The name of object related to a message. + + + + Adds a new script-related message. + + The message text. + The line of the script. + The column of the script. + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Properties" window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the "Report Tree" window. + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Extend the class for window with TreeView. + + + + + + + + This method puts data to TreeView. + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + + + + + + + + + + Base class for all tool windows such as "Properties", "Data Dictionary" etc. + + + Use this class to create own tool window. To do this: + - in the constructor, set the Name and Image properties and create necessary controls. + The Name will be used to restore window's state; + - override the SelectionChanged method. This method is called when current selection + is changed. In this method, you should update buttons state to reflect the current selection. + Selected objects can be accessed via Designer.SelectedObjects property; + - override the UpdateContent method. This method is called when the report + content was changed. Typically you need to do the same actions in SelectionChanged and + UpdateContent methods; + - to register a toolwindow, add its type to the global collection: + + DesignerPlugins.Add(typeof(MyToolWindow)); + + + + + + + Gets the report designer. + + + + + Gets a value indicating that window is locked. + + + + + + + + Gets or sets shortcut keys used to show this toolwindow. + + + + + Gets or sets a value indicating that the toolwindow can be closed by the x button. + + + + + Gets a parent control that contains all controls. + + + Add your control to the parent control Controls collection. + + + + + Shows the toolwindow. + + + + + Hides the toolwindow. + + + + + + + + + + + + + + + + + + + + + + + + + + Implements method. + + The options page, if implemented; otherwise, null. + + + + + + + + + + Initializes a new instance of the class with default settings. + + The report designer. + + You don't need to call this constructor. The designer will do this automatically. + + + + + Represents the standard report designer. + + + This control extends the control with + standard menu, status bar, and toolbars. + To choose toolbars and tool windows in design-time, click the "View" menu + in this control and select what you want to see. Toolbars can be reordered using the mouse. + To restore the designer layout at runtime, you need to call the + RefreshLayout method in your + form's Load event handler. + + + + + Gets the main menu. + + + + + Gets or sets a value indicating whether the main menu should be displayed or not. + + + + + Gets or sets a value indicating whether the status bar should be displayed or not. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents standard designer's form. + + + This form contains the . Use the + property to get access to this control. + Usually you don't need to create an instance of this class. The designer can be called + using the method of + the instance. + If you decided to use this class, you need: + + + create an instance of this class; + + + set the Designer.Report property to report that you need to design; + + + call either ShowModal or Show methods to display a form. + + + + + + + Gets a reference to the control which is actually a designer. + + + + + Gets a list of File menu buttons + + + + + Creates a new instance of the class with default settings. + + + + + Creates a new instance of the class with default settings. + + enables welcome window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the designer's main menu. + + + To get this menu, use the following code: + + Designer designer; + DesignerMenu menu = designer.Plugins.FindType("DesignerMenu") as DesignerMenu; + + + + + + The "File" menu. + + + + + The "File|New..." menu. + + + + + The "File|Open..." menu. + + + + + The "File|Close" menu. + + + + + The "File|Save" menu. + + + + + The "File|Save as..." menu. + + + + + The "File|Save All" menu. + + + + + The "File|Page Setup..." menu. + + + + + The "File|Printer Setup..." menu. + + + + + The "File|Preview..." menu. + + + + + The "File|Select Language" menu. + + + + + The "File|Exit" menu. + + + + + The "Edit" menu. + + + + + The "Edit|Undo" menu. + + + + + The "Edit|Redo" menu. + + + + + The "Edit|Cut" menu. + + + + + The "Edit|Copy" menu. + + + + + The "Edit|Paste" menu. + + + + + The "Edit|Delete" menu. + + + + + The "Edit|NewPage" menu. + + + + + The "Edit|Copy Page" menu. + + + + + The "Edit|Delete Page" menu. + + + + + The "Edit|Select All" menu. + + + + + The "Edit|Group" menu. + + + + + The "Edit|Ungroup" menu. + + + + + The "Edit|Find..." menu. + + + + + The "Edit|Replace..." menu. + + + + + The "View" menu. + + + + + The "View|Toolbars" menu. + + + + + The "View|Start Page" menu. + + + + + The "View|Options..." menu. + + + + + The "Insert" menu. + + + + + The "Report" menu. + + + + + The "Report|Options..." menu. + + + + + The "Data" menu. + + + + + The "Data|Choose Report Data..." menu. + + + + + The "Data|Add Data Source..." menu. + + + + + The "Data|Show Data Dictionary" menu. + + + + + The "Window" menu. + + + + + The "Window|Close All" menu. + + + + + The "Help" menu. + + + + + The "Help|Help Contents..." menu. + + + + + The "Help|About..." menu. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new menu item. + + New menu item. + + + + Creates a new menu item. + + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's text. + Click handler. + New menu item. + + + + Creates a new menu item. + + Item's image index. + Item's text. + Click handler. + New menu item. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Represents the designer's statusbar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Updates the information about location and size. + + The location. + The size. + + + + Updates the name and text information. + + The text. + + + + Initializes a new instance of the class with default settings. + + The report designer. + + + + Contains the email settings such as recipient(s) address, name, subject, message body. + + + + + + + Gets or sets the recipient(s) email addresses. + + + This property contains one or several email addresses in the following form: "john@url.com". + + + + + Gets or sets the message subject. + + + + + Gets or sets the message body. + + + + + Copies email settings from another source. + + Source to copy settings from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains some global settings that used in the FastReport.Net. + + + This component is intended for use in the Visual Studio IDE to quickly configure + FastReport global settings. To use it, drop the component on your Form and set up + its properties and events. + Here are some common actions that can be performed with this object: + + + To define own open/save dialogs that will be used in the report designer, + use the , , + , events; + + + + To pass connection string to the connection object defined in a report, + or to define own database login dialog, use the event; + + + + To adjust the connection object after it is opened, + use the event; + + + + To define own progress window, use the , + and events; + + + + To setup some common properties of the report, designer and preview, + use properties defined in this class; + + + + To set UI style of the designer and preview window, + use property. + + + + This component actually uses the static class which + contains , and + properties. You can use Config class as well. + + + + + Gets or sets the UI style of the designer and preview windows. + + + This property affects both designer and preview windows. + + + + + Indicates whether the Ribbon-style window should be used. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs when progress state is changed. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Gets or sets the report settings. + + + + + Occurs when the designer is loaded. + + + Use this event if you want to customize some aspects of the designer, for example, + to hide some menu items. + + + This example demonstrates how to hide the "File|Select Language..." menu item. + + environmentSettings1.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded); + + void DesignerSettings_DesignerLoaded(object sender, EventArgs e) + { + (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false; + } + + + + + + Occurs when report is loaded in the designer. + + + Use this event handler to register application data in a report. + + + + + Occurs when object is inserted in the designer. + + + Use this event handler to set some object's properties when it is inserted. + + + + + Occurs when the report designer is about to show the "Open" dialog. + + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will open the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to show the "Save" dialog. + + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + display a dialog window to allow user to choose a report file. + If dialog was executed successfully, you must return e.Cancel = false and set the + e.FileName to the selected file name. + You also need to use event to provide code that + will save the report. + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to load the report. + + This event is used together with the event. + Use this event to attach own "Open" dialog to the designer. In the event handler, you must + load the e.Report from the location specified in the e.FileName property. + For example, if you work with files: e.Report.Load(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when the report designer is about to save the report. + + This event is used together with the event. + Use this event to attach own "Save" dialog to the designer. In the event handler, you must + save the e.Report to the location specified in the e.FileName property. + For example, if you work with files: e.Report.Save(e.FileName); + + + This example shows how to attach own "Open" and "Save" dialogs to the designer. + It uses the following events: , , + , . + + private void CustomOpenDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Filter = "Report files (*.frx)|*.frx"; + // get default file name from e.FileName + dialog.FileName = e.FileName; + + // set e.Cancel to false if dialog was succesfully executed + e.Cancel = dialog.ShowDialog() != DialogResult.OK; + // set e.FileName to the selected file name + e.FileName = dialog.FileName; + } + } + + private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // load the report from the given e.FileName + e.Report.Load(e.FileName); + } + + private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e) + { + // save the report to the given e.FileName + e.Report.Save(e.FileName); + } + + + + + + Occurs when previewing a report from the designer. + + + Use this event to show own preview window. + + + + environmentSettings1.CustomPreviewReport += new EventHandler(MyPreviewHandler); + + private void MyPreviewHandler(object sender, EventArgs e) + { + Report report = sender as Report; + using (MyPreviewForm form = new MyPreviewForm()) + { + report.Preview = form.previewControl1; + report.ShowPreparedReport(); + form.ShowDialog(); + } + } + + + + + + Occurs when getting available table names from the connection. + + + Use this handler to filter the list of tables returned by the connection object. + + + This example demonstrates how to hide the table with "Table 1" name from the Data Wizard. + + environmentSettings1.FilterConnectionTables += DesignerSettings_FilterConnectionTables; + + private void DesignerSettings_FilterConnectionTables(object sender, FilterConnectionTablesEventArgs e) + { + if (e.TableName == "Table 1") + e.Skip = true; + } + + + + + + Gets or sets the designer settings. + + + + + Gets or sets the preview settings. + + + + + Gets or sets the email settings. + + + + + Represents a group header band. + + + A simple group consists of one GroupHeaderBand and the DataBand that is set + to the property. To create the nested groups, use the property. + + Only the last nested group can have data band. + + Use the property to set the group condition. The + property can be used to set the sort order for group's data rows. You can also use the Sort + property of the group's DataBand to specify additional sort. + + This example shows how to create nested groups. + + ReportPage page = report.Pages[0] as ReportPage; + + // create the main group + GroupHeaderBand mainGroup = new GroupHeaderBand(); + mainGroup.Height = Units.Millimeters * 10; + mainGroup.Name = "MainGroup"; + mainGroup.Condition = "[Orders.CustomerName]"; + // add a group to the page + page.Bands.Add(mainGroup); + + // create the nested group + GroupHeaderBand nestedGroup = new GroupHeaderBand(); + nestedGroup.Height = Units.Millimeters * 10; + nestedGroup.Name = "NestedGroup"; + nestedGroup.Condition = "[Orders.OrderDate]"; + // add it to the main group + mainGroup.NestedGroup = nestedGroup; + + // create a data band + DataBand dataBand = new DataBand(); + dataBand.Height = Units.Millimeters * 10; + dataBand.Name = "GroupData"; + dataBand.DataSource = report.GetDataSource("Orders"); + // connect the databand to the nested group + nestedGroup.Data = dataBand; + + + + + + + + + + + + + + + Gets or sets a nested group. + + + Use this property to create nested groups. + + Only the last nested group can have data band. + + + + This example demonstrates how to create a group with nested group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.NestedGroup = new GroupHeaderBand(); + group.NestedGroup.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets the group data band. + + + Use this property to add a data band to a group. Note: only the last nested group can have Data band. + + + This example demonstrates how to add a data band to a group. + + ReportPage page; + GroupHeaderBand group = new GroupHeaderBand(); + group.Data = new DataBand(); + page.Bands.Add(group); + + + + + + Gets or sets a group footer. + + + + + Gets or sets a header band. + + + + + Gets or sets a footer band. + + + To access a group footer band, use the property. + + + + + Gets or sets the group condition. + + + This property can contain any valid expression. When running a report, this expression is calculated + for each data row. When the value of this condition is changed, FastReport starts a new group. + + + + + Gets or sets the sort order. + + + FastReport can sort data rows automatically using the value. + + + + + Gets or sets a value indicating that the group should be printed together on one page. + + + + + Gets or sets a value that determines whether to reset the page numbers when this group starts print. + + + Typically you should set the property to true as well. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for headers and footers which support the "Keep With Data" and "Repeat on Every Page" features. + + + + + + + + Gets or sets a value indicating that the band should be printed together with data band. + + + + + Gets or sets a value that determines whether to repeat this band on every page. + + + When band is repeated, its property is set to true. You can use + it to show any additional information on the band. To do this, + use the property which + can be set to "Rpeeated". In that case the object will be printed + only on the repeated band. + + + + + + + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObject. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Implements the object's editor. + + + + + Invokes the object's editor. + + true if object was succesfully edited. + + This method is called by FastReport when the object is doubleclicked in the designer. + + + + + Provides the "search" functionality in the preview and designer. + + + + + Finds the specified text inside the object. + + Text to find. + true to perform case-sensitive search. + true to find whole words only. + Array of character ranges that describes the occurences of text found; + null if text not found. + + + + Draws the highlight to show the text found. + + Draw event arguments. + Range of characters to highlight. + + + + Represents a line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. Set the property to true + if you want to show a diagonal line. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating that the line is diagonal. + + + If this property is false, the line can be only horizontal or vertical. + + + + + Gets or sets the start cap settings. + + + + + Gets or sets the end cap settings. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report pages and dialog forms. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the snap size for this page. + + + + + Gets a page designer for this page type. + + The page designer. + + + + This method is called by the designer when you create a new page. + + + You may create the default page layout (add default bands, set default page size, etc). + + + + + Causes the page to refresh in the preview window. + + + Call this method when you handle object's MouseMove, MouseDown, MouseUp, MouseEnter, MouseLeave events + and want to refresh the preview window. + + If you have changed some objects on a page, the Refresh method will not save the changes. + This means when you print or export the page, you will see original (unmodified) page content. + If you want to save the changes, you have to use the method instead. + + + + + + Modifies the page content and refresh it in the preview window. + + + Call this method when you handle object's Click, MouseDown or MouseUp events + and want to modify an object and refresh the preview window. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Picture object that can display pictures. + + + The Picture object can display the following kind of pictures: + + + picture that is embedded in the report file. Use the + property to do this; + + + picture that is stored in the database BLOb field. Use the + property to specify the name of data column you want to show; + + + picture that is stored in the local disk file. Use the + property to specify the name of the file; + + + picture that is stored in the Web. Use the + property to specify the picture's URL. + + + Use the property to specify a size mode. The + and properties can be used to restrict the image size if SizeMode + is set to AutoSize. + The property can be used to display an image with + transparent background. Use the property if you want to display + semi-transparent image. + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image. + + + By default, image that you assign to this property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set the property to true right after you assign an image: + + myPictureObject.Image = new Bitmap("file.bmp"); + myPictureObject.ShouldDisposeImage = true; + + + + + + Gets or sets the expansion of image. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Gets or sets a hash of grayscale svg image + + + + + Gets or sets the color of the image that will be treated as transparent. + + + + + Gets or sets the transparency of the PictureObject. + + + Valid range of values is 0..1. Default value is 0. + + + + + Gets or sets a value indicating that the image should be tiled. + + + + + Gets or sets a value indicating that the image stored in the + property should be disposed when this object is disposed. + + + By default, image assigned to the property is never disposed - you should + take care about it. If you want to dispose the image when this PictureObject is disposed, + set this property to true right after you assign an image to the property. + + + + + Gets or sets a bitmap transparent image + + + + + + + + + + + + + + + + + Draws the image. + + Paint event args. + + + + Sets image data to FImageData + + + + + + + + + + + + Loads image + + + + + Disposes image + + + + + + + + + + + + + + Forces loading the image from a data column. + + + Call this method in the AfterData event handler to force loading an image + into the property. Normally, the image is stored internally as byte[] array + and never loaded into the Image property, to save the time. The side effect is that you + can't analyze the image properties such as width and height. If you need this, call this method + before you access the Image property. Note that this will significantly slow down the report. + + + + + Initializes a new instance of the class with default settings. + + + + + the base class for all picture objects + + + + + Draw an error image to Graphics g, when the image is designing + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets the image rotation angle, in degrees. Possible values are 0, 90, 180, 270. + + + + + Gets or sets the data column name to get the image from. + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + + + + Gets or sets the path for the image to display in the PictureObject. + + + This property may contain the path to the image file as well as external URL. + + + + + Gets or sets the expression that determines the source for the image to display in the PictureObject. + + + The result of the expression should be data column name or path to the image file. + The data column name will be saved to the property. + The path will be savetd to the property. + + + + + Gets a value indicating that the image stored in the databases column + + + + + Gets a value indicating that the image stored in the separate file + + + + + Gets a value indicating that the image stored in the Web + + + + + Gets or sets the maximum height of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets the maximum width of a Picture object, in pixels. + + + Use this property to restrict the object size if the property + is set to AutoSize. + + + + + Gets or sets padding within the PictureObject. + + + + + Gets or sets a value indicating whether the PictureObject should display + the error indicator if there is no image in it. + + + + + Gets or sets a value that specifies how an image is positioned within a PictureObject. + + + + + + + + Gets or sets the alignment of a image in the border. + + + + + Return base size of image, internal use only + + + + + Return base size of image, internal use only + + + + + + + + + + + Calculates URI from ImageLocation + + + + + + + + + gets points for transform this image + + the box where to draw image + image width + image height + scale horizontal + scale vertical + offset of left + offset of top + out start of vectors + out end of frist vector + out end of second vector + + + + Loads image + + + + + Moves the point on specified angle + + + + + + + + + + + + Rotates vector on specified angle + + + + + + + + + + + Draws not tiled image + + + + + + + + Reset index of image + + + + + When auto size was updated, internal use only + + + + + + + + Represents a polygon object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + scale by width + scale by height + Always returns a non-empty path + + + + Draw polyline path to graphics + + Event arguments + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a poly line object. + + + Use the Border.Width, Border.Style and Border.Color properties to set + the line width, style and color. + + + + + + + + + + + Add point to end of polyline and recalculate bounds after add. + Can be first point. + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + Add point to start of polyline and recalculate bounds after add + Can be first point + Deprecated, use insert point + + local x - relative to left-top point + local y - relative to left-top point + + + + + + + + + + Replace points with star + + Minimum value is 3 + + + + + + + + + + + + + + + + + + + Insert point to desired place of polyline + Recalculate bounds after insert + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + + + + Insert point to near line + Recalculate bounds after insert + + local x - relative to left-top point + local y - relative to left-top point + depricated + Index of inserted point + + + + + + + + + + + + + + + + Delete point from polyline by index + Recalculate bounds after remove + + Index of point in polyline + + + + + + + Delete point from polyline by index. + Recalculate bounds. + + Index of point in polyline + + + + + + + + + + Returns best new point position based on mouse + + + + + + do not set this value, internal use only + + + + + Return points collection. + You can modify the collection for change this object. + + + + + Returns origin of coordinates relative to the top left corner + + + + + Returns origin of coordinates relative to the top left corner + + + + + Return points array of line + deprecated + + + + + Return point types array. 0 - Start of line, 1 - Keep on line + deprecated + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + + + + Calculate GraphicsPath for draw to page + + Pen for lines + Left boundary + Top boundary + Right boundary + Bottom boundary + scale by width + scale by height + Always returns a non-empty path + + + + Recalculate position and size of element + + + + + + + + Add point to end of polyline, need to recalculate bounds after add + First point must have zero coordinate and zero type. + Recalculate bounds. + Method is slow do not use this. + + local x - relative to left-top point + local y - relative to left-top point + depreceted + + + + Delete point from polyline by index. + Recalculate bounds. + Method is slow do not use this. + + Index of point in polyline + + + + Draw polyline path to graphics + + Event arguments + + + + Insert point to desired place of polyline + recalculateBounds(); + Method is slow do not use this + + Index of place from zero to count + local x - relative to left-top point + local y - relative to left-top point + deprecated + + + + Represent a point for polygon object + + + + + Specifies the set of buttons available in the preview. + + + + + No buttons visible. + + + + + The "Print" button is visible. + + + + + The "Open" button is visible. + + + + + The "Save" button is visible. + + + + + The "Email" button is visible. + + + + + The "Find" button is visible. + + + + + The zoom buttons are visible. + + + + + The "Outline" button is visible. + + + + + The "Page setup" button is visible. + + + + + The "Edit" button is visible. + + + + + The "Watermark" button is visible. + + + + + The page navigator buttons are visible. + + + + + The "Close" button is visible. + + + + + The "Design" button is visible. + + + + + The "Copy Page" button is visible. + + + + + The "Delete Page" button is visible. + + + + + The "About" button is visible. + + + + + All buttons are visible. + + + + + Specifies the set of export buttons available in the preview. + + + + + No exports visible. + + + + + The "Prepared" button is visible. + + + + + The "PDFExport" button is visible. + + + + + The "RTFExport" button is visible. + + + + + The "HTMLExport" button is visible. + + + + + The "MHTExport" button is visible. + + + + + The "XMLExport" export button is visible. + + + + + The "Excel2007Export" button is visible. + + + + + The "Excel2003Document" button is visible. + + + + + The "Word2007Export" button is visible. + + + + + The "PowerPoint2007Export" button is visible. + + + + + The "ODSExport" button is visible. + + + + + The "ODTExport" button is visible. + + + + + The "XPSExport" export button is visible. + + + + + The "CSVExport" button is visible. + + + + + The "DBFExport" button is visible. + + + + + The "TextExport" button is visible. + + + + + The "ZplExport" button is visible. + + + + + The "ImageExport" button is visible. + + + + + The "XAMLExport" button is visible. + + + + + The "SVGExport" button is visible. + + + + + The "PPMLExport" button is visible. + + + + + The "PSExport" button is visible. + + + + + The "JsonExport" button is visible. + + + + + The "LaTeXExport" button is visible. + + + + + The "HpglExport" button is visible. + + + + + The All export buttons is visible. + + + + + Specifies the set of export in clouds buttons available in the preview. + + + + + No exports in clouds visible. + + + + + The "Box" button is visible. + + + + + The "Dropbox" button is visible. + + + + + The "FastCloud" button is visible. + + + + + The "Ftp" button is visible. + + + + + The "GoogleDrive" button is visible. + + + + + The "SkyDrive" button is visible. + + + + + The All export in clouds buttons is visible. + + + + + Specifies the set of export by messenger buttons available in the preview. + + + + + No exports by messengers visible. + + + + + The "Xmpp" button is visible. + + + + + The All export my messengers buttons is visible. + + + + + Contains some settings of the preview window. + + + + + Occurs when the standard preview window opened. + + + You may use this event to change the standard preview window, for example, add an own button to it. + The sender parameter in this event is the PreviewControl. + + + + + Gets or sets a set of buttons that will be visible in the preview's toolbar. + + + Here is an example how you can disable the "Print" and "EMail" buttons: + + Config.PreviewSettings.Buttons = PreviewButtons.Open | + PreviewButtons.Save | + PreviewButtons.Find | + PreviewButtons.Zoom | + PreviewButtons.Outline | + PreviewButtons.PageSetup | + PreviewButtons.Edit | + PreviewButtons.Watermark | + PreviewButtons.Navigator | + PreviewButtons.Close; + + + + + + Specifies the set of exports that will be available in the preview's "save" menu. + + + + + Specifies the set of exports in clouds that will be available in the preview's "save" menu. + + + + + Specifies the set of exports by messengers that will be available in the preview's "save" menu. + + + + + Gets or sets the number of prepared pages that can be stored in the memory cache during preview. + + + Decrease this value if your prepared report contains a lot of pictures. This will + save the RAM memory. + + + + + Gets or sets a value indicating whether the preview window is displayed in the Windows taskbar. + + + + + Gets or sets a value indicating whether the preview window should be displayed as a topmost form. + + + + + Gets or sets the icon for the preview window. + + + + + Gets or sets the text for the preview window. + + + If no text is set, the default text "Preview" will be used. + + + + + Gets or sets a value indicating whether the fast scrolling method should be used. + + + If you enable this property, the gradient background will be disabled. + + + + + Enables or disables the "Print to file" feature in the print dialog. + + + + + Gets or sets the initial directory that is displayed by a save file dialog. + + + + + Initializes a new instance of the PreviewSettings class with default settings. + + + + + Specifies the report printing mode. + + + + + Specifies the default printing mode. One report page produces + one printed paper sheet of the same size. + + + + + Specifies the split mode. Big report page produces several smaller paper sheets. + Use this mode to print A3 report on A4 printer. + + + + + Specifies the scale mode. One or several report pages produce one bigger paper sheet. + Use this mode to print A5 report on A4 printer. + + + + + Specifies the number of report pages printed on one paper sheet. + + + + + Specifies one report page per sheet. + + + + + Specifies two report pages per sheet. + + + + + Specifies four report pages per sheet. + + + + + Specifies eight report pages per sheet. + + + + + Specifies the pages to print. + + + + + Print all report pages. + + + + + Print odd pages only. + + + + + Print even pages only. + + + + + This class contains the printer settings. + It is used in the property. + + + Typical use of this class is to setup a printer properties without using the "Print" + dialog. In this case, setup necessary properties and turn off the dialog via the + property. + + + + + Gets or sets the printer name. + + + + + Gets or sets a value indicating that the printer name should be saved in a report file. + + + If this property is set to true, the printer name will be saved in a report file. + Next time when you open the report, the printer will be automatically selected. + + + + + Gets or sets a value indicating that the printing output should be send + to a file instead of a printer. + + + Also set the property. + + + + + The name of a file to print the report to. + + + This property is used if property is true. + + + + + Gets or sets a value specifies the page range to print. + + + + + Gets or sets the page number(s) to print. + + + This property is used if property is set to PageNumbers. + You can specify the page numbers, separated by commas, or the page ranges. + For example: "1,3,5-12". + + + + + Gets or sets the number of copies to print. + + + + + Gets or sets a value indicating whether the printed document should be collated. + + + + + Gets or sets a value specifies the pages to print. + + + + + Gets or sets a value determines whether to print pages in reverse order. + + + + + Gets or sets the duplex mode. + + + + + Gets or sets the paper source. + + + This property corresponds to the RAW source number. Default value is 7 which + corresponds to DMBIN_AUTO. + + + + + Gets or sets the print mode. + + + See the enumeration for details. If you use + the mode other than Default, you must specify the sheet size in the + , properties. + + + + + Gets or sets the width of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper width in millimeters. + + + + + Gets or sets the height of the paper sheet to print on. + + + This property is used if the property is not Default. + Specify the paper height in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + + + Gets or sets the number of pages per printed sheet. + + + This property is used if the property is set to Scale. + + + + + Gets or sets an array of printed copy names, such as "Original", "Copy", etc. + + + + + Specifies whether to display the "Print" dialog. + + + + + + + + Assigns values from another source. + + Source to assign from. + + + + Resets all settings to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a report object. + + + The instance of this class contains a report. Here are some common + actions that can be performed with this object: + + + To load a report, use the + method or call static method. + + + To save a report, call the method. + + + To register application dataset for use it in a report, call one of the + RegisterData methods. + + + To pass some parameter to a report, use the + method. + + + To design a report, call the method. + + + To run a report and preview it, call the method. + Another way is to call the method, then call the + method. + + + To run a report and print it, call the method. + Another way is to call the method, then call the + method. + + + To load/save prepared report, use one of the LoadPrepared and + SavePrepared methods. + + + To set up some global properties, use the static class + or component that you can use in the Visual Studio IDE. + + + + The report consists of one or several report pages (pages of the + type) and/or dialog forms (pages of the type). + They are stored in the collection. In turn, each page may contain report + objects. See the example below how to create a simple report in code. + + This example shows how to create a report instance, load it from a file, + register the application data, run and preview. + + Report report = new Report(); + report.Load("reportfile.frx"); + report.RegisterData(application_dataset); + report.Show(); + + This example shows how to create simple report in code. + + Report report = new Report(); + // create the report page + ReportPage page = new ReportPage(); + page.Name = "ReportPage1"; + // set paper width and height. Note: these properties are measured in millimeters. + page.PaperWidth = 210; + page.PaperHeight = 297; + // add a page to the report + report.Pages.Add(page); + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create Text object and put it to the title + TextObject text = new TextObject(); + text.Name = "Text1"; + text.Bounds = new RectangleF(0, 0, Units.Millimeters * 100, Units.Millimeters * 5); + page.ReportTitle.Objects.Add(text); + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to a page + page.Bands.Add(data); + + + + + + Gets a reference to the report designer. + + + This property can be used when report is designing. In other cases it returns null. + + + + + Runs the report designer. + + true if report was modified, otherwise false. + + + + Runs the report designer. + + A value indicates whether the designer should run modally. + true if report was modified, otherwise false. + + + + Runs the report designer. + + The main MDI form which will be a parent for the designer. + true if report was modified, otherwise false. + + + + Gets the email settings such as recipients, subject, message body. + + + + + Gets or sets the report preview control. + + + Use this property to attach a custom preview to your report. To do this, place the PreviewControl + control to your form and set the report's Preview property to this control. + + + + + Gets the print settings such as printer name, copies, pages to print etc. + + + + + + + + + + Prepares the report and prints it. + + + + + Prints the report with the "Print" dialog. + Report should be prepared using the method. + + + + + Prints the report without the "Print" dialog. + Report should be prepared using the method. + + Printer-specific settings. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Prepares the report and shows it in the preview window. + + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + + + + Prepares the report and shows it in the preview window. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Prepares the report and shows it in the preview window. + + The main MDI form which will be a parent for the preview window. + + + + Previews the report. The report should be prepared using the method. + + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + + + + Previews the prepared report. + + A value that specifies whether the preview window should be modal. + The owner of the preview window. + + + + Previews the prepared report. + + The main MDI form which will be a parent for the preview window. + + + + Shows the "Print" dialog. + + Printer-specific settings. + true if the dialog was closed by "Print" button. + + Use the following code if you want to show the "Print" dialog, then print: + + if (report.Prepare()) + { + PrinterSettings printerSettings = null; + if (report.ShowPrintDialog(out printerSettings)) + { + report.PrintPrepared(printerSettings); + } + } + + + + + + Occurs when calc execution is started. + + + + + Occurs when report is inherited and trying to load a base report. + + + Typical use of this event is to load the base report from a database instead of a file. + + + + + Occurs when report execution is started. + + + + + Occurs when report execution is finished. + + + + + Occurs before export to set custom export parameters. + + + + + Gets the pages contained in this report. + + + This property contains pages of all types (report and dialog). Use the is/as operators + if you want to work with pages of ReportPage type. + + The following code demonstrates how to access the first report page: + + ReportPage page1 = report1.Pages[0] as ReportPage; + + + + + + Gets the report's data. + + + The dictionary contains all data items such as connections, data sources, parameters, + system variables. + + + + + Gets the collection of report parameters. + + + Parameters are displayed in the "Data" window under the "Parameters" node. + Typical use of parameters is to pass some static data from the application to the report. + You can print such data, use it in the data row filter, script etc. + Another way to use parameters is to define some reusable piece of code, for example, + to define an expression that will return the concatenation of first and second employee name. + In this case, you set the parameter's Expression property to something like this: + [Employees.FirstName] + " " + [Employees.LastName]. Now this parameter may be used in the report + to print full employee name. Each time you access such parameter, it will calculate the expression + and return its value. + You can create nested parameters. To do this, add the new Parameter to the + Parameters collection of the root parameter. To access the nested parameter, you may use the + method. + To get or set the parameter's value, use the and + methods. To set the parameter's expression, use the + method that returns a Parameter object and set its + Expression property. + + + + + Gets or sets the report information such as report name, author, description etc. + + + + + Gets or sets the base report file name. + + + This property contains the name of a report file this report is inherited from. + Note: setting this property to non-empty value will clear the report and + load the base file into it. + + + + + Gets or sets the absolute path to the parent report. + + + This property contains the absolute path to the parent report. + + + + + Gets or sets the name of a file the report was loaded from. + + + This property is used to support the FastReport.Net infrastructure; + typically you don't need to use it. + + + + + Gets or sets the report script. + + + The script contains the ReportScript class that contains all report objects' + event handlers and own items such as private fields, properties, methods etc. The script + contains only items written by you. Unlike other report generators, the script does not + contain report objects declarations, initialization code. It is added automatically when + you run the report. + By default this property contains an empty script text. You may see it in the designer + when you switch to the Code window. + If you set this property programmatically, you have to declare the FastReport + namespace and the ReportScript class in it. Do not declare report items (such as bands, + objects, etc) in the ReportScript class: the report engine does this automatically when + you run the report. + Security note: since the report script is compiled into .NET assembly, it allows + you to do ANYTHING. For example, you may create a script that will read/write files from/to a disk. + To restrict such operations, use the property. + + + + + Gets or sets the script language of this report. + + + Note: changing this property will reset the report script to default empty script. + + + + + Gets or sets a value indicating whether the null DB value must be converted to zero, false or + empty string depending on the data column type. + + + This property is true by default. If you set it to false, you should check + the DB value before you do something with it (for example, typecast it to any type, use it + in a expression etc.) + + + + + Gets or sets a value that specifies whether the report engine should perform the second pass. + + + Typically the second pass is necessary to print the number of total pages. It also + may be used to perform some calculations on the first pass and print its results on the + second pass. + Use the Engine.FirstPass, Engine.FinalPass properties to determine which + pass the engine is performing now. + + + + + Gets or sets a value that specifies whether to compress the report file. + + + The report file is compressed using the Gzip algorithm. So you can open the + compressed report in any zip-compatible archiver. + + + + + Gets or sets a value that specifies whether to use the file cache rather than memory + to store the prepared report pages. + + + + + Gets or sets a value that specifies the quality of text rendering. + + + Note: the default property value is TextQuality.Default. That means the report + may look different depending on OS settings. This property does not affect the printout. + + + + + Gets or sets a value that specifies if the graphic objects such as bitmaps + and shapes should be displayed smoothly. + + + + + Gets or sets the report password. + + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in this property before loading + the report. In this case the report will load silently. + Password-protected report file is crypted using Rijndael algorithm. + Do not forget your password! It will be hard or even impossible to open + the protected file in this case. + + + + + Gets or sets a value indicating whether it is necessary to automatically fill + DataSet registered with RegisterData call. + + + If this property is true (by default), FastReport will automatically fill + the DataSet with data when you trying to run a report. Set it to false if + you want to fill the DataSet by yourself. + + + + + Gets or sets the maximum number of generated pages in a prepared report. + + + Use this property to limit the number of pages in a prepared report. + + + + + Gets or sets the collection of styles used in this report. + + + + + Gets or sets an array of assembly names that will be used to compile the report script. + + + By default this property contains the following assemblies: "System.dll", "System.Drawing.dll", + "System.Windows.Forms.dll", "System.Data.dll", "System.Xml.dll". If your script uses some types + from another assemblies, you have to add them to this property. + + + + + Gets or sets a script event name that will be fired when the report starts. + + + + + Gets or sets a script event name that will be fired when the report is finished. + + + + + Gets a value indicating that report execution was aborted. + + + + + Gets or sets a value that determines whether to store the report in the application resources. + Use this property in the MS Visual Studio IDE only. + + + By default this property is true. When set to false, you should store your report + in a file. + + + + + Gets or sets the resource string that contains the report. + + + This property is used by the MS Visual Studio to store the report. Do not use it directly. + + + + + Gets a value indicating that this report contains dialog forms. + + + + + Gets or sets a set of permissions that will be restricted for the script code. + + + Since the report script is compiled into .NET assembly, it allows you to do ANYTHING. + For example, you may create a script that will read/write files from/to a disk. This property + is used to restrict such operations. + This example shows how to restrict the file IO operations in a script: + + using System.Security; + using System.Security.Permissions; + ... + PermissionSet ps = new PermissionSet(PermissionState.None); + ps.AddPermission(new FileIOPermission(PermissionState.Unrestricted)); + report1.ScriptRestrictions = ps; + report1.Prepare(); + + + + + + + Gets a reference to the graphics cache for this report. + + + This property is used to support the FastReport.Net infrastructure. Do not use it directly. + + + + + Gets a pages of the prepared report. + + + + + Gets a reference to the report engine. + + + This property can be used when report is running. In other cases it returns null. + + + + + Gets or sets the initial page number for PageN/PageNofM system variables. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets the report operation that is currently performed. + + + + + Gets or sets the Tag object of the report. + + + + + Gets or sets the flag for refresh. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the report's fields. + + + This method is for internal use only. + + + + + Generates the file (.cs or .vb) that contains the report source code. + + Name of the file. + + Use this method to generate the report source code. This code can be attached to your project. + In this case, you will need to call the following code to run a report: + + SimpleListReport report = new SimpleListReport(); + report.RegisterData(your_dataset); + report.Show(); + + + + + + Calculates an expression and returns the result. + + The expression to calculate. + If report is running, returns the result of calculation. + Otherwise returns null. + + The expression may be any valid expression such as "1 + 2". The expression + is calculated in the report script's ReportScript class instance context, + so you may refer to any objects available in this context: private fields, + methods, report objects. + + + + + Calculates an expression and returns the result. + + The expression to calculate. + The value of currently printing object. + If report is running, returns the result of calculation. + Otherwise returns null. + + Do not call this method directly. Use the Calc(string expression) method instead. + + + + + Returns an expression value. + + The expression. + The value of currently printing object. + Returns the result of calculation. + + This method is for internal use only, do not call it directly. + + + + + Invokes the script event handler with given name. + + The name of the script method. + The method parameters. + + + + Gets the data column's value. Automatically converts null value to 0, false or "" + depending on the column type. + + The name of the data column including the datasource name. + If report is running, returns the column value. Otherwise returns null. + + The return value of this method does not depend on the property. + + + + string employeeName = (string)report.GetColumnValue("Employees.FirstName"); + + + + + + Gets the data column's value. This method does not convert null values. + + The name of the data column including the datasource name. + If report is running, returns the column value. + Otherwise returns null. + + + + Gets the report parameter with given name. + + The name of the parameter. + The object if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Gets a value of the parameter with given name. + + The name of the parameter. + The parameter's value if found, otherwise null. + + To find nested parameter, use the "." separator: "MainParameter.NestedParameter" + + + + + Sets the parameter's value. + + The name of the parameter. + Value to set. + + Use this method to pass a value to the parameter that you've created in the "Data" window. + Such parameter may be used everythere in a report; for example, you can print its value + or use it in expressions. + You should call this method after the report was loaded and before you run it. + To access a nested parameter, use the "." separator: "MainParameter.NestedParameter" + + This method will create the parameter if it does not exist. + + + This example shows how to pass a value to the parameter with "MyParam" name: + + // load the report + report1.Load("report.frx"); + // setup the parameter + report1.SetParameterValue("MyParam", 10); + // show the report + report1.Show(); + + + + + + Gets a value of the system variable with specified name. + + Name of a variable. + The variable's value if found, otherwise null. + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise 0. + This method converts null values to 0 if the property is set to true. + Use the method if you don't want the null conversion. + + + + + Gets a value of the total with specified name. + + Name of total. + The total's value if found, otherwise null. + + + + Gets the datasource with specified name. + + Alias name of a datasource. + The datasource object if found, otherwise null. + + + + + + + Aborts the report execution. + + + + + + + + + + + Updates the report component's styles. + + + Call this method if you change the collection. + + + + + Sets prepared pages. + + + + + + This method fires the StartReport event and the script code connected + to the StartReportEvent. + + + + + This method fires the FinishReport event and the script code connected + to the FinishReportEvent. + + + + + Runs the Export event. + + ExportReportEventArgs object. + + + + Add the name of the assembly (in addition to the default) that will be used to compile the report script + + Assembly name + + For example: report.AddReferencedAssembly("Newtonsoft.Json.dll") + + + + + Add the names of the assembly (in addition to the default) that will be used to compile the report script + + Assembly's names + + + + + + + + + + Saves the report to a stream. + + The stream to save to. + + + + Saves the report to a file. + + The name of the file to save to. + + + + Loads report from a stream. + + The stream to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a file. + + The name of the file to load from. + + When you try to load the password-protected report, you will be asked + for a password. You also may specify the password in the + property before loading the report. In this case the report will load silently. + + + + + Loads the report from a string. + + The string that contains a stream in UTF8 or Base64 encoding. + + + + Saves the report to a string. + + The string that contains a stream. + + + + Saves the report to a string using the Base64 encoding. + + The string that contains a stream. + + + + Creates the report instance and loads the report from a stream. + + The stream to load from. + The new report instance. + + + + Creates the report instance and loads the report from a file. + + The name of the file to load from. + The new report instance. + + + + Creates the report instance and loads the report from a string. + + The string that contains a stream in UTF8 encoding. + The new report instance. + + + + Registers the application dataset with all its tables and relations to use it in the report. + + The application data. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1); + + + + + + Registers the application dataset with all its tables and relations to use it in the report and enables all its tables. + + The application data. + The boolean value indicating whether all tables should be enabled. + + If you register more than one dataset, use the method. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, true); + + + + + + Registers the application dataset with specified name. + + The application data. + The name of the data. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind"); + + + + + + Registers the application dataset with specified name and enables all its tables. + + The application data. + The name of the data. + The boolean value indicating whether all tables should be enabled. + + Use this method if you register more than one dataset. You may specify any value + for the name parameter: it is not displayed anywhere in the designer and used only + to load/save a report. The name must be persistent and unique for each registered dataset. + + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1, "NorthWind", true); + + + + + + Registers the application data table to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(dataSet1.Tables["Orders"], "Orders"); + + + + + + Registers the application data view to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myDataView, "OrdersView"); + + + + + + Registers the application data relation to use it in the report. + + The application data. + The name of the data. + + You may specify any value for the name parameter: it is not displayed anywhere + in the designer and used only to load/save a report. The name must be persistent + and unique for each registered relation. + + + + report1.Load("report.frx"); + report1.RegisterData(myDataRelation, "myRelation"); + + + + + + Obsolete. Registers the application business object to use it in the report. + + Application data. + Name of the data. + Not used. + Maximum nesting level of business objects. + + This method is obsolete. Use the method instead. + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myBusinessObject, "Customers"); + + + + + + Registers the application business object to use it in the report. + + Application data. + Name of the data. + Maximum nesting level of business objects. + + This method creates initial datasource with specified nesting level. It is useful if + you create a report in code. In most cases, you don't need to specify the nesting level + because it may be selected in the designer's "Choose Report Data" dialog. + + + + + Registers the application cube link to use it in the report. + + The application data. + The name of the data. + + + report1.Load("report.frx"); + report1.RegisterData(myCubeLink, "Orders"); + + + + + + Prepares the report. + + true if report was prepared succesfully. + + + + Prepares the report. + + Specifies whether the new report should be added to a + report that was prepared before. + true if report was prepared succesfully. + + Use this method to merge prepared reports. + + This example shows how to merge two reports and preview the result: + + Report report = new Report(); + report.Load("report1.frx"); + report.Prepare(); + report.Load("report2.frx"); + report.Prepare(true); + report.ShowPrepared(); + + + + + + Prepares the report with pages limit. + + Pages limit. The number of pages equal or less will be prepared. + true if report was prepared succesfully. + + + + For internal use only. + + + + + For internal use only. + + + + + Refresh the current report. + + + Call this method in the Click or MouseUp event handler of a report object to refresh + the currently previewed report. Report will be generated again, but without dialog forms. + + + + + Refresh prepared report after intercative actions. + + + + + Prepare page + + + + + + Exports a report. Report should be prepared using the method. + + The export filter. + Stream to save export result to. + + + + Exports a report. Report should be prepared using the method. + + The export filter. + File name to save export result to. + + + + Saves the prepared report. Report should be prepared using the method. + + File name to save to. + + + + Saves the prepared report. Report should be prepared using the method. + + Stream to save to. + + + + Loads the prepared report from a .fpx file. + + File name to load form. + + + + Loads the prepared report from a .fpx file. + + Stream to load from. + + + + Initializes a new instance of the class with default settings. + + + + + Ensure that static constructor is called. + + + + + Create name for all unnamed elements with prefix and start with number + + Prefix for name + Number from which to start + + + + The style of the report object markers. + + + + + Rectangle marker. + + + + + Small markers at the object's corners. + + + + + Base class for all report objects. + + + + + + + + + + + + + + + + + Assigns a format from another, similar object. + + Source object to assign a format from. + + + + + + + + + + Draws the object's markers. + + Draw event arguments. + + + + Draws the object's markers. + + Draw event arguments. + Marker style + + + + + + + + + + + + + This event occurs when the user moves the mouse over the object in the preview window. + + + + + This event occurs when the user releases the mouse button in the preview window. + + + + + This event occurs when the user clicks the mouse button in the preview window. + + + + + This event occurs when the mouse enters the object's bounds in the preview window. + + + + + This event occurs when the mouse leaves the object's bounds in the preview window. + + + + + Copies event handlers from another similar object. + + The object to copy handlers from. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method is fired when the user scrolls the mouse in the preview window. + + Event data. + + + + This event occurs before the object is added to the preview pages. + + + + + This event occurs after the object was added to the preview pages. + + + + + This event occurs after the object was filled with data. + + + + + This event occurs when the user clicks the object in the preview window. + + + + + Gets or sets a value that determines if the object can be exported. + + + + + Gets or sets a string containing expression that determines should be object exported. + + + + + Gets or sets an object's border. + + + + + Gets or sets an object's fill. + + + The fill can be one of the following types: , , + , . + To set the solid fill color, use the simpler property. + + This example shows how to set the new fill and change its properties: + + textObject1.Fill = new SolidFill(Color.Green); + (textObject1.Fill as SolidFill).Color = Color.Red; + + + + + + Gets or sets the fill color in a simple manner. + + + This property can be used in a report script to change the fill color of the object. It is + equivalent to: reportComponent1.Fill = new SolidFill(color); + + + + + Gets or sets a bookmark expression. + + + This property can contain any valid expression that returns a bookmark name. This can be, for example, + a data column. To navigate to a bookmark, you have to use the property. + + + + + Gets or sets a hyperlink. + + + The hyperlink is used to define clickable objects in the preview. + When you click such object, you may navigate to the external url, the page number, + the bookmark defined by other report object, or display the external report. + Set the Kind property of the hyperlink to select appropriate behavior. + Usually you should set the Expression property of the hyperlink to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to + something fixed (URL or page number, for example) you also may set the Value + property instead of Expression. + + + + + Determines if the object can grow. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object will grow to display all the information that it contains. + + + + + Determines if the object can shrink. + + + This property is applicable to the bands or text objects that can contain several text lines. + If the property is set to true, object can shrink to remove the unused space. + + + + + Determines if the object must grow to the band's bottom side. + + + If the property is set to true, object grows to the bottom side of its parent. This is useful if + you have several objects on a band, and some of them can grow or shrink. + + + + + Gets or sets a shift mode of the object. + + + See enumeration for details. + + + + + Gets or sets the style name. + + + Style is a set of common properties such as border, fill, font, text color. The Report + has a set of styles in the property. + + + + + Gets or sets a style name that will be applied to even band rows. + + + Style with this name must exist in the collection. + + + + + Gets or sets a style name that will be applied to this object when the mouse pointer is over it. + + + Style with this name must exist in the collection. + + + + + Gets or sets a value that determines which properties of the even style to use. + + + Usually you will need only the Fill property of the even style to be applied. If you want to + apply all style settings, set this property to StylePriority.UseAll. + + + + + Gets or sets a value that determines where to print the object. + + + See the enumeration for details. + + + + + Gets or sets a script event name that will be fired before the object will be printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was printed in the preview page. + + + + + Gets or sets a script event name that will be fired after the object was filled with data. + + + + + Gets or sets a script event name that will be fired when the user click the object in the preview window. + + + + + Determines if the object has custom border and use only Border.Width, Border.Style and + Border.Color properties. + + + This flag is used to disable some toolbar buttons when such object is selected. Applicable to the + ShapeObject and LineObject. + + + + + Determines if the object uses the Border. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Determines if the object uses the fill. + + + This flag is used to disable some toolbar buttons when such object is selected. + + + + + Gets or sets a value indicates that object should not be added to the preview. + + + + + Determines if serializing the Style property is needed. + + + The Style property must be serialized last. Some ancestor classes may turn off the standard Style + serialization and serialize it by themselves. + + + + + Determines if an object can provide the hyperlink value automatically. + + + This flag is used in complex objects such as Matrix or Chart. These objects can provide + a hyperlink value automatically, depending on where you click. + + + + + Gets an object's parent band. + + + + + Gets an object's parent data band. + + + + + Gets or sets an object's cursor shape. + + + This property is used in the preview mode. + + + + + Gets or sets a script event name that will be fired when the user + moves the mouse over the object in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + releases the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the user + clicks the mouse button in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse enters the object's bounds in the preview window. + + + + + Gets or sets a script event name that will be fired when the + mouse leaves the object's bounds in the preview window. + + + + + + + + Applies the style settings. + + Style to apply. + + + + Saves the current style. + + + + + Restores the current style. + + + + + Draws the object's background. + + Draw event arguments. + + + + + + + Determines if the object is visible on current drawing surface. + + Draw event arguments. + + + + + + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + + + + Checks if there are any listeners to the Click event. + + + + + Initializes the object before running a report. + + + This method is used by the report engine, do not call it directly. + + + + + Performs a finalization after the report is finished. + + + This method is used by the report engine, do not call it directly. + + + + + Saves the object's state before printing it. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should save any object properties that may be changed during the object printing. + The standard implementation saves the object's bounds, visibility, bookmark and hyperlink. + + + + + Restores the object's state after printing it. + + + This method is called by the report engine after processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should restore the object properties that were saved by the method. + + + + + Calculates the object's height. + + Actual object's height, in pixels. + + Applicable to objects that contain several text lines, such as TextObject. Returns the height needed + to display all the text lines. + + + + + Gets the data from a datasource that the object is connected to. + + + This method is called by the report engine before processing the object. + Do not call it directly. You may override it if you are developing a new FastReport component. + In this method you should get the data from a datasource that the object is connected to. + + + + + + + + This method fires the BeforePrint event and the script code connected to the BeforePrintEvent. + + Event data. + + + + This method fires the AfterPrint event and the script code connected to the AfterPrintEvent. + + Event data. + + + + This method fires the AfterData event and the script code connected to the AfterDataEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific + to the ReportComponentBase. + + + + + The "Can Grow" menu item. + + + + + The "Can Shrink" menu item. + + + + + The "Grow to Bottom" menu item. + + + + + The "Hyperlink" menu item. + + + + + The "Style" menu item. + + + + + Initializes a new instance of the ReportComponentBaseMenu + class with default settings. + + The reference to a report designer. + + + + Represents a report page. + + + To get/set a paper size and orientation, use the , + and properties. Note that paper size is measured in millimeters. + Report page can contain one or several bands with report objects. Use the , + , , , + , , properties + to get/set the page bands. The property holds the list of data bands or groups. + Thus you may add several databands to this property to create master-master reports, for example. + + Report page can contain bands only. You cannot place report objects such as TextObject on a page. + + + + This example shows how to create a page with one ReportTitleBand and DataBand bands and add + it to the report. + + ReportPage page = new ReportPage(); + // set the paper in millimeters + page.PaperWidth = 210; + page.PaperHeight = 297; + // create report title + page.ReportTitle = new ReportTitleBand(); + page.ReportTitle.Name = "ReportTitle1"; + page.ReportTitle.Height = Units.Millimeters * 10; + // create data band + DataBand data = new DataBand(); + data.Name = "Data1"; + data.Height = Units.Millimeters * 10; + // add data band to the page + page.Bands.Add(data); + // add page to the report + report.Pages.Add(page); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets a value indicating that imperial units (inches, hundreths of inches) are used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invokes the object's editor. + + + + + Gets or sets the paper source for the first printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the first page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for all printed pages except the first one. + + + + This property represents the paper source (printer tray) that will be used when printing + all pages except the first one and the last one. To set source for first and last pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the paper source for the last printed page. + + + + This property represents the paper source (printer tray) that will be used when printing + the last page. To set the source for other pages, use + and properties. + + + Note: This property uses the raw number of the paper source. + + + + + + Gets or sets the printer duplex mode that will be used when printing this page. + + + + + This event occurs when the report engine starts this page. + + + + + This event occurs when the report engine finished this page. + + + + + This event occurs when the report engine is about to print databands in this page. + + + + + Gets or sets a width of the paper, in millimeters. + + + + + Gets or sets the page name on export + + + + + Gets or sets a height of the paper, in millimeters. + + + + + Gets or sets the raw index of a paper size. + + + This property stores the RawKind value of a selected papersize. It is used to distiguish + between several papers with the same size (for ex. "A3" and "A3 with no margins") used in some + printer drivers. + It is not obligatory to set this property. FastReport will select the + necessary paper using the PaperWidth and PaperHeight values. + + + + + Gets or sets a value indicating whether the page has unlimited height. + + + + + Gets or sets the value indicating whether the unlimited page should be printed on roll paper. + + + + + Gets or sets a value indicating whether the page has unlimited width. + + + + + Get or set the current height of unlimited page. + + + + + Get or set the current width of unlimited page. + + + + + Gets the current page height in pixels. + + + + + Gets the current page width in pixels. + + + + + Gets or sets a value indicating that page should be in landscape orientation. + + + When you change this property, it will automatically swap paper width and height, as well as paper margins. + + + + + Gets or sets the left page margin, in millimeters. + + + + + Gets or sets the top page margin, in millimeters. + + + + + Gets or sets the right page margin, in millimeters. + + + + + Gets or sets the bottom page margin, in millimeters. + + + + + Gets or sets a value indicating that even pages should swap its left and right margins when + previewed or printed. + + + + + Gets the page columns settings. + + + + + Gets or sets the page border that will be printed inside the page printing area. + + + + + Gets or sets the page background fill. + + + + + Gets or sets the page watermark. + + + To enabled watermark, set its Enabled property to true. + + + + + Gets or sets a value indicating that ReportTitle band should be printed before the + PageHeader band. + + + + + Gets or sets an outline expression. + + + For more information, see property. + + + + + Gets or sets a value indicating whether to start to print this page on a free space of the previous page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating that FastReport engine must reset page numbers before printing this page. + + + This property can be used if you have two or more pages in the report template. + + + + + Gets or sets a value indicating whether the page has extra width in the report designer. + + + This property may be useful if you work with such objects as Matrix and Table. + + + + + Gets or sets a value indicating whether this page will start on an odd page only. + + + This property is useful to print booklet-type reports. Setting this property to true + means that this page will start to print on an odd page only. If necessary, an empty page + will be added to the prepared report before this page will be printed. + + + + + Uses this page as a back page for previously printed pages. + + + + + Gets or sets a report title band. + + + + + Gets or sets a report summary band. + + + + + Gets or sets a page header band. + + + + + Gets or sets a page footer band. + + + + + Gets or sets a column header band. + + + + + Gets or sets a column footer band. + + + + + Gets or sets an overlay band. + + + + + Gets the collection of data bands or group header bands. + + + The Bands property holds the list of data bands or group headers. + Thus you may add several databands to this property to create master-master reports, for example. + + + + + Gets or sets the page guidelines. + + + This property hold all vertical guidelines. The horizontal guidelines are owned by the bands (see + property). + + + + + Gets or sets the reference to a parent SubreportObject that owns this page. + + + This property is null for regular report pages. See the for details. + + + + + Gets or sets a script event name that will be fired when the report engine starts this page. + + + + + Gets or sets a script event name that will be fired when the report engine finished this page. + + + + + Gets or sets a script event name that will be fired when the report engine is about + to print databands in this page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the StartPage event and the script code connected to the StartPageEvent. + + + + + This method fires the FinishPage event and the script code connected to the FinishPageEvent. + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + + + + Initializes a new instance of the class with default settings. + + + + + This class contains settings that will be applied to the Report component. + + + + + Occurs before displaying a progress window. + + + + + Occurs after closing a progress window. + + + + + Occurs after printing a report. + + + + + Occurs when progress state is changed. + + + + + Gets or sets a value that determines whether to show the progress window + when perform time-consuming operations such as run, print, export. + + + + + Gets or sets a value that determines whether to show the information about + the report performance (report generation time, memory consumed) in the + lower right corner of the preview window. + + + + + Occurs when database connection is about to open. + + Use this event to provide own connection string or user name/password to the connection + object that is about to open. + To provide own connection string, set the e.ConnectionString property. + In this case the new connection string will be used. + To provide own user name/password, set the e.UserName and e.Password properties. + You may ask these values in own login dialog. + This example shows how to provide username/password using own login dialog. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + using (MyLoginDialog dialog = new MyLoginDialog()) + { + if (dialog.ShowDialog() == DialogResult.OK) + { + e.UserName = dialog.UserName; + e.Password = dialog.Password; + } + } + } + + This example shows how to provide own connection string. + + private void report1_DatabaseLogin(object sender, DatabaseLoginEventArgs e) + { + e.ConnectionString = my_connection_string; + } + + + + + + Occurs after the database connection is established. + + + + + Occurs when discovering the business object's structure. + + + + + Occurs when determining the kind of business object's property. + + + + + Occurs when discovering the structure of business object of ICustomTypeDescriptor type + with no instance specified. + + + The event handler must return an instance of that type. + + + + + Gets or sets the default script language. + + + + + Gets or sets the default paper size used when creating a new report. + + + + + Gets or sets a value indicating that the business object engine will use property values + when possible to discover the BO structure. + + + + + Gets or sets the default path for root of PictureObject.ImageLocation path. + + + + + Initializes a new instance of the class. + + + + + Represents a report summary band. + + + + + This property is not relevant to this class. + + + + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Alignment" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Aligns left edges of the selected objects. + + + + + Aligns right edges of the selected objects. + + + + + Aligns centers of the selected objects. + + + + + Aligns top edges of the selected objects. + + + + + Aligns bottom edges of the selected objects. + + + + + Aligns middles of the selected objects. + + + + + Makes the selected objects the same width as the first object. + + + + + Makes the selected objects the same height as the first object. + + + + + Makes the selected objects the same size as the first object. + + + + + Centers the selected objects horizontally. + + + + + Centers the selected objects vertically. + + + + + Aligns the selected objects to the grid. + + + + + Adjusts the size of selected objects to the grid. + + + + + Spaces the selected objects horizontally. + + + + + Increases horizontal spacing between the selected objects. + + + + + Decreases horizontal spacing between the selected objects. + + + + + Removes horizontal spacing between the selected objects. + + + + + Spaces the selected objects vertically. + + + + + Increases vertical spacing between the selected objects. + + + + + Decreases vertical spacing between the selected objects. + + + + + Removes vertical spacing between the selected objects. + + + + + Holds the list of selected objects of type. Used by the + . + + + + + Gets a value indicating that report page is selected. + + + + + Gets a value indicating that report is selected. + + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Border and Fill" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. + If you want to access all selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Gets a value indicating whether the object with simple border is selected. + + + When the object has a simple border, you cannot change individual border lines. + Example of such an object is the "Shape" and "Line" objects. + + + + + Gets a value indicating whether the border operations are enabled. + + + + + Gets a value indicating whether the fill operations are enabled. + + + + + Sets the solid fill color for the selected objects. + + Fill color. + + + + Sets the fill for the selected objects. + + Fill. + + + + Sets the style for the selected objects. + + Style name. + + + + Sets the hyperlink for the selected objects. + + Hyperlink. + Indicates whether to modify the object's appearance. + Indicates whether it is necessary to change designer's modified state. + + + + Sets the CanGrow flag for the selected objects. + + Flag value. + + + + Sets the CanShrink flag for the selected objects. + + Flag value. + + + + Sets the GrowToBottom flag for the selected objects. + + Flag value. + + + + Toggles the specified border line for the selected objects. + + Border line. + Toggle value. + + + + Sets the border color for the selected objects. + + Border color. + + + + Sets the border width for the selected objects. + + Border width. + + + + Sets the border style for the selected objects. + + Border style. + + + + Sets the border for the selected objects. + + Border. + + + + Invokes the fill editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the border editor for the selected objects. + + true if editor was closed by the OK button. + + + + Invokes the hyperlink editor for the selected objects. + + true if editor was closed by the OK button. + + + + Holds the list of objects currently selected in the designer. + + + This class is used by the "Text" toolbar. Use methods of this class to perform some + operations on the selected objects. + Note: after calling any method in this class, call the + Designer.SetModified method to reflect changes. + Note: this list contains only objects of type. If you want to access all + selected objects, use the property. + + + + + Gets the first selected object. + + + + + Gets the number of selected objects. + + + + + Gets a value indicating whether the operations are enabled. + + + + + Sets the font name for the selected objects. + + Font name. + + + + Sets the font size for the selected objects. + + Font size. + + + + Toggles the specified font style for the selected objects. + + Font style. + Toggle value. + + + + Sets the horizontal text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the vertical text alignment for tthe selected objects. + + Alignment to set. + + + + Sets the text color for the selected objects. + + Text color. + + + + Sets the angle for the selected objects. + + Angle to set. + + + + Sets the AutoWidth property value for the selected objects. + + Value to set. + + + + Sets the WordWrap property value for the selected objects. + + Value to set. + + + + Sets the highlight conditions for the selected objects. + + Highlight conditions. + + + + Clears the text of the selected objects. + + + + + Invokes the highlight editor for the selected objects. + + true if editor was closed with the OK button. + + + + Represents a shape object. + + + Use the property to specify a shape. To set the width, style and color of the + shape's border, use the Border.Width, Border.Style and Border.Color properties. + + + + + + + + + + + Gets or sets a shape kind. + + + + + Gets or sets a shape curvature if is RoundRectangle. + + + 0 value means automatic curvature. + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The base class for smart tags. + + + + "Smart tag" is a little button that appears near the object's top-right corner when we are in the + designer and move the mouse over the object. When you click that button you will see a popup window + where you can set up some properties of the object. FastReport uses smart tags to quickly choose + the datasource (for a band) or data column (for objects). + + + Smart tag is internally a ContextMenuStrip. + + + + + + Gets the underlying context menu. + + + + + Gets the report object that invokes this smart tag. + + + + + Gets the report designer. + + + + + Called when the menu item is clicked. + + + Override this method to define a reaction on the menu item click. + + + + + Creates the smart tag menu items. + + + Override this method to create the smart tag menu. + + + + + Displays a smart tag at the specified screen location. + + + Do not call this method directly. It is called automatically when click on smart tag button. + + Screen location. + + + + Initializes a new instance of the class with default settings. + + Report object that owns this smart tag. + + + + Represents the base class for the report style or the highlight condition. + + + + + Gets or sets a value determines that the border must be applied. + + + + + Gets or sets a value determines that the fill must be applied. + + + + + Gets or sets a value determines that the font must be applied. + + + + + Gets or sets a value determines that the text fill must be applied. + + + + + Gets or sets a border. + + + + + Gets or sets a fill. + + + + + Gets or sets a font. + + + + + Gets or sets a text fill. + + + + + Initializes a new instance of the class with default settings. + + + + + Assigns values from another source. + + Source to assign from. + + + + Deserializes the style. + + Reader object. + + This method is for internal use only. + + + + + Serializes the style. + + Writer object. + + This method is for internal use only. + + + + + Represents a subreport object. + + + To create a subreport in code, you should create the report page first and + connect it to the subreport using the property. + + The following example shows how to create a subreport object in code. + + // create the main report page + ReportPage reportPage = new ReportPage(); + reportPage.Name = "Page1"; + report.Pages.Add(reportPage); + // create report title band + reportPage.ReportTitle = new ReportTitleBand(); + reportPage.ReportTitle.Name = "ReportTitle1"; + reportPage.ReportTitle.Height = Units.Millimeters * 10; + // add subreport on it + SubreportObject subreport = new SubreportObject(); + subreport.Name = "Subreport1"; + subreport.Bounds = new RectangleF(0, 0, Units.Millimeters * 25, Units.Millimeters * 5); + reportPage.ReportTitle.Objects.Add(subreport); + // create subreport page + ReportPage subreportPage = new ReportPage(); + subreportPage.Name = "SubreportPage1"; + report.Pages.Add(subreportPage); + // connect the subreport to the subreport page + subreport.ReportPage = subreportPage; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a report page that contains the subreport bands and objects. + + + + + Gets or sets a value indicating that subreport must print its objects on a parent band to which it belongs. + + + Default behavior of the subreport is to print subreport objects they own separate bands. + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents the Text object that may display one or several text lines. + + + Specify the object's text in the Text property. + Text may contain expressions and data items, for example: "Today is [Date]". When report + is running, all expressions are calculated and replaced with actual values, so the text + would be "Today is 01.01.2008". + The symbols used to find expressions in a text are set in the + Brackets property. You also may disable expressions + using the AllowExpressions property. + To format an expression value, use the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a paragraph format for a new html rendering type, not for others rendering + + + + + Gets or sets a value that determines if the text object should handle its width automatically. + + + + + Gets or sets a value that indicates whether the font size should shrink to + display the longest text line without word wrap. + + + To limit the minimum size, use the property. + + + + + Gets or sets the minimum size of font (or minimum width ratio) if the + mode is on. + + + This property determines the minimum font size (in case the property is set to + FontSize), or the minimum font width ratio (if AutoShrink is set to FontWidth). + The default value is 0, that means no limits. + + + + + Gets or sets the horizontal alignment of a text in the TextObject object. + + + + + Gets or sets the vertical alignment of a text in the TextObject object. + + + + + Gets or sets the text angle, in degrees. + + + + + Gets or sets a value that indicates whether the component should draw right-to-left for RTL languages. + + + + + Gets or sets a value that indicates if lines are automatically word-wrapped. + + + + + Gets or sets a value that determines if the text object will underline each text line. + + + + + Gets or sets the font settings for this object. + + + + + Gets or sets a collection of TAB symbol positions, in pixels. + + Use collection methods to add or remove TAB positions. + + + + Gets or sets the fill color used to draw a text. + + + Default fill is . You may specify other fill types, for example: + + text1.TextFill = new HatchFill(Color.Black, Color.White, HatchStyle.Cross); + + Use the property to set the solid text color. + + + + + Gets or sets the text outline. + + + + + Gets or sets the text color in a simple manner. + + + This property can be used in a report script to change the text color of the object. It is + equivalent to: textObject1.TextFill = new SolidFill(color); + + + + + Gets or sets the string trimming options. + + + + + Gets or sets the width ratio of the font. + + + Default value is 1. To make a font wider, set a value grether than 1; to make a font narrower, + set a value less than 1. + + + + + Gets or sets the height of single text line, in pixels. + + + + + Gets or sets the offset of the first TAB symbol. + + + + + Gets or sets the width of TAB symbol, in pixels. + + + + + Gets or sets a value that indicates if text should be clipped inside the object's bounds. + + + + + Gets the collection of conditional highlight attributes. + + + Conditional highlight is used to change the visual appearance of the Text object + depending on some condition(s). For example, you may highlight negative values displayed by + the Text object with red color. To do this, add the highlight condition: + + TextObject text1; + HighlightCondition highlight = new HighlightCondition(); + highlight.Expression = "Value < 0"; + highlight.Fill = new SolidFill(Color.Red); + highlight.ApplyFill = true; + text1.Highlight.Add(highlight); + + + + + + Gets or sets a value that indicates if the text object should display its contents similar to the printout. + + + + + Forces justify for the last text line. + + + + + Allows handling html tags in the text. + + + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Indicates handling html tags in the text. + + To set the value use the TextRenderer property. + + + + The type of text render + + /// + The following html tags can be used in the object's text: <b>, <i>, <u>, + <strike>, <sub>, <sup>, </b>, </i>, </u>, + </strike>, </sub>, </sup>, + <font color=&...&>, </font>. Font size cannot + be changed due to limitations in the rendering engine. + + + + + Gets or sets the paragraph offset, in pixels. For HtmlParagraph use ParagraphFormat.FirstLineIndent. + + + + + Cache for inline images + + + + + + + + + + + Draws a text. + + Paint event data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the object's width. + + The width, in pixels. + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + + + + + + + Base class for text objects such as and . + + + This class implements common functionality of the text objects. + + + + + + + + + + + + + + Gets or sets a value indicating that the object's text may contain expressions. + + + + + Gets or sets the symbols that will be used to find expressions in the object's text. + + + The default property value is "[,]". As you can see, the open and close symbols are + separated by the comma. You may use another symbols, for example: "<,>" or "<%,%>". + You should use different open and close symbols. + + + + + Gets or sets the object's text. + + + Text may contain expressions and data items, for example: "Today is [Date]". + When report is running, all expressions are calculated and replaced with actual + values, so the text would be "Today is 01.01.2008". + + + + + Gets or sets padding within the text object. + + + + + Gets or sets a value indicating that zero values must be hidden. + + + + + Gets or sets a value that will be hidden. + + + Use this property to specify a value that you would like to hide. For example, specify "0" + if you want to hide zero values, or use property to do this. + You also may use this property to hide default DateTime values (such as 1/1/1900). + In this case you need to specify a string containing both date and time, for example: + "1/1/1900 0:00:00". + + FastReport uses the ToString conversion to compare the expression value with this property. + This conversion depends on regional settings selected in the Control Panel, so be aware of this + if you going to distribute your report worldwide. + + + + + + Gets or sets a string that will be displayed instead of a null value. + + + + + Gets or sets the formatter that will be used to format data in the Text object. + + + The default formatter does nothing, i.e. it shows expression values with no formatting. + To set another formatting, create a new formatter and assign it to this property. + If there are several expressions in the text, use the property + to format each expression value. + + This example shows how to set currency formatter. + + TextObject text1; + text1.Format = new CurrencyFormat(); + + + + + + Gets or sets a value that specifies how the report engine processes this text object. + + + Use this property to perform such task as "print a total value in the group header". Normally, + all total values are calculated in the footers (for example, in a group footer). If you try to print + a total value in the group header, you will get 0. If you set this property to + ProcessAt.DataFinished, FastReport will do the following: + + + print the object (with wrong value); + + + print all related data rows; + + + calculate the correct object's value and replace old (wrong) value with the new one. + + + + This option will not work if you set the to true. + + + + + + Gets the collection of formatters. + + + This property is used to set format for each expression contained in the text. + For example, if the TextObject contains two expressions: + Today is [Date]; Page [PageN] + you can use the following code to format these expressions separately: + + text1.Formats.Clear(); + text1.Formats.Add(new DateFormat()); + text1.Formats.Add(new NumberFormat()); + + + + + + Gets or sets a value that determines how to display duplicate values. + + + + + Gets a value of expression contained in the object's text. + + + + + Gets or sets editable for pdf export + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The class introduces some menu items specific to the TextObjectBase. + + + + + The "Format" menu item. + + + + + The "Allow Expressions" menu item. + + + + + The "Hide Zeros" menu item. + + + + + Initializes a new instance of the TextObjectBaseMenu + class with default settings. + + The reference to a report designer. + + + + The class introduces some menu items specific to the TextObject. + + + + + The "Clear" menu item. + + + + + The "Auto Width" menu item. + + + + + The "Word Wrap" menu item. + + + + + Initializes a new instance of the TextObjectMenu + class with default settings. + + The reference to a report designer. + + + + Represents a zip code object. + + + This object is mainly used in Russia to print postal index on envelopes. It complies with the + GOST R 51506-99. + + + + + + + + + + + + + + + + + + + + Gets or sets the width of a single zipcode segment, in pixels. + + + + + Gets or sets the height of a single zipcode segment, in pixels. + + + + + Gets or sets the spacing between origins of segments, in pixels. + + + + + Gets or sets the number of segments in zipcode. + + + + + Gets or sets a value indicating whether the reference markers should be drawn. + + + Reference markers are used by postal service to automatically read the zipcode. + + + + + Gets or sets a value indicating whether the segment grid should be drawn. + + + + + Gets or sets a data column name bound to this control. + + + Value must be in the form "Datasource.Column". + + + + + Gets or sets an expression that contains the zip code. + + + + + Gets or sets the zip code. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with the default settings. + + + + + Box cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Box storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Box client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FastCloud storage client. + + + + + Gets or sets the access token. + + + + + Gets the report URL that can be used to download report from cloud. + + + + + Initializes a new instance of the class. + + + + + + + + Gets the access token. + + The access token string. + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of FastCloud storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Gets the proxy settings. + + The proxy settings. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FTP storage client. + + + + + Gets or sets the FTP server. + + + + + Gets or sets the username. + + + + + Gets or sets the password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + + + + + + + Represents form of the FTP storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The FTP server. + The username. + The password. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for all cloud storage clients. + + + + + Gets or sets the filename. + + + + + Gets or set the information is user authorized or not. + + + + + Gets or sets the proxy settings of a client. + + + + + Initializes a new instance of the class. + + + + + Prepares report before it will be saved to cloud storage. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Creates a MemoryStream instance using a Stream instance. + + The Stream instance that should be converted. + The MemoryStream instance. + + + + Saves a memory stream to cloud. + + The memory stream that should be saved. + + + + Saves the report to cloud storage. + + The report template that should be saved. + The export filter that should export template before. + + + + + Saves the stream to cloud storage. + + The stream that contains report. + The filename in which stream will be saved in cloud. + + + + Represents form of Dropbox storage client. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + Shows a dialog window. + + Modal result. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl. + + + + + Represents the Application Info diabolg form. + + + + + Gets the access token. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Dropbox cloud storage client. + + + + + The base URL for files_put command. + + + + + Gets or sets the application access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Dropbox application access token. + + + + + + + Represents form of Dropbox storage client. + + + + + Initializes a new instance of the class. + + The Dropbox access token. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Gets the client Auth key. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Google Drive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The storage client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL stirng. + + + + Gets the access token. + + The access token string. + + + + Represents form of Google Drive storage client. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The information about Google Drive client application. + The report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of the web browser. + + + + + Gets obtained authorization code. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the information about SkyDrive application. + + + + + Gets or sets the client name. + + + + + Gets or sets the client ID. + + + + + Gets or sets the client secret. + + + + + Initializes a new instance of the class. + + The client name. + The client ID. + The client secret. + + + + Represents the Client Info diabolg form. + + + + + Gets the client ID. + + + + + Gets the client secret. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents form of SkyDrive storage client. + + + + + Initializes a new instance of the class. + + The SkyDrive client info. + The report template. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SkyDrive cloud storage client. + + + + + Gets or sets the client info. + + + + + Gets or sets the authorization code. + + + + + Gets or sets the access token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The client info. + + + + Initializes a new instance of the class. + + Client ID. + Client Secret. + + + + + + + Gets the authorization URL. + + The authorization URL string. + + + + Gets the access token. + + The access token value. + + + + Represents the base form for cloud storage web browsers. + + + + + Gets or sets the url string. + + + + + Initizlizes a new instance of the class. + + + + + Initializes a new instance of the class. + + The url string. + + + + Handle the web browser form shown event. + + The event sender. + The event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The web browser component. + + + + + Represents an HTTP request method. + + + + + GET request method. + + + + + POST request method. + + + + + PUT request method. + + + + + Static class that contains HTTP utilities. + + + + + Encodes the URL string. + + The URL string. + The encoded URL string. + + + + Encodes the dictionary with URL parameters. + + The dictionary with parameters. + The encoded string. + + + + Decodes the URL string. + + The URL string. + The decoded URL string. + + + + Represents the consumer. + + + + + Gets the consumer key. + + + + + Gest the consumer secret. + + + + + Gets the consumer's signature method. + + + + + Initializes a new instance of the class. + + The consumer key. + The consumer secret. + + + + Represents parser for parse OAuth responses. + + + + + Parses token information in stream. + + The stream for parse. + The OAuth token. + + + + Parses token information in stream for SkyDrive. + + The stream for parse. + The SkyDrive access token. + + + + Parses token information in stream for Google Drive. + + The stream for parse. + The Google Drive access token. + + + + Parses token information in stream for FastCloud. + + The stream for parse. + The FastCloud access token. + + + + Represents the service provider. + + + + + Gets the request token URL. + + + + + Gets the user authorization URL. + + + + + Gets the callback URL. + + + + + Gets the access token URL. + + + + + Initializes a new instance of the class with a specified parameters. + + The request token URL. + The user authorization URL. + The callback URL. + The access token URL. + + + + Represents the OAuth token credentials. + + + + + Gets the token key. + + + + + Gets the token secret. + + + + + Initializes a new instance of the class. + + The token key. + The token secret. + + + + API for OAuth protocol. + + + + + Builds signed URL. + + The base token URL. + The HTTP method. + The consumer context. + The request token. + Signed URL. + + + + Represents the signature method. + + + + + Signature method PLAINTEXT. + + + + + Signature method HMAC-SHA1. + + + + + Signature method RSA-SHA1. + + + + + Represents proxy settings of the cloud storage. + + + + + Gets or sets the type of proxy. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + The type of proxy. + The proxy server. + The port number of server. + The username. + The user's password. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Provides utils for the web request. + + + + + Sets proxy settings for web request. + + The web request. + The cloud proxy settings. + + + + Represents the parameter of http request. + + + + + Gets the name of a request parameter. + + + + + Gets the value of a request parameter. + + + + + Initializes a naw instance of the class with a specified parameters. + + The name of a request parameter. + The value of a request paramter. + + + + Comparer class for comparing request parameters. + + + + + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Represents the crossview object that is used to print cube slice or slicegrid. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a value indicating whether to show a X Axis fields Caption. + + + + + Gets or sets a value indicating whether to show a Y Axis fields Caption. + + + + + Gets or sets a matrix style. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a cube source. + + + + + Gets the object that holds data of Cube + + + See the class for more details. + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents interface of the source for object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The descriptor that is used to describe one CrossView data cell. + + + The class is used to define one data cell of the CrossView. + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the CrossView data cells is stored + in the CrossViewObject.Data.Cells property. + + + + + Gets a value indicating that this is the "GrandTotal" element on X axis. + + + + + Gets a value indicating that this is the "GrandTotal" element on Y axis. + + + + + Gets a value indicating that this is the "Total" element on X axis. + + + + + Gets a value indicating that this is the "Total" element on Y axis. + + + + + Gets the name of field in X axis. + + + + + Gets the name of field in Y axis. + + + + + Gets the name of measure in cube. + + + + + Gets the x coordinate. + + + + + Gets the y coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name in X axis. + The Field Name in Y axis. + The Measure Name. + Indicates the "XTotal" element. + Indicates the "YTotal" element. + Indicates the "XGrandTotal" element. + Indicates the "YGrandTotal" element. + + + + Initializes a new instance of the class + + + + + Represents a collection of CrossView data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the CrossView descriptors. + + + This class contains three collections of descriptors such as , + and . Descriptors are filled from FastCube Slice. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the CrossView. + + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + CrossViewObject crossView; + // change the fill color of the first matrix cell + crossView.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of CrossView header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + + + + + + The descriptor that is used to describe one element of the CrossView header. + + + The class is used to define one header element of the CrossView + (either the column element or row element). + To set visual appearance of the element, use the + property. + The collection of descriptors used to represent the CrossView header is stored + in the CrossViewObject.Data.Columns and CrossViewObject.Data.Rows properties. + + + + + Gets a value indicating that this is the "GrandTotal" element. + + + + + Gets a value indicating that this is the "Total" element. + + + + + Gets a value indicating that this is the "Measure" element. + + + + + Gets the name of field in cube. + + + + + Gets the name of measure in cube. + + + + + Gets the cell coordinate. + + + + + Gets the size in cell coordinate. + + + + + Gets the level coordinate. + + + + + Gets the size in level coordinate. + + + + + + + + + + + Initializes a new instance of the class + + The Field Name. + The Measure Name. + Indicates the "Total" element. + Indicates the "GrandTotal" element. + Indicates the "Measure" element. + + + + Initializes a new instance of the class + + + + + Represents a Windows CheckBox. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal CheckBox. + + + + + Gets or sets the value that determines the appearance of a CheckBox control. + Wraps the property. + + + + + Gets or sets the horizontal and vertical alignment of the check mark on a CheckBox control. + Wraps the property. + + + + + Gets or set a value indicating whether the CheckBox is in the checked state. + Wraps the property. + + + + + Gets or sets the state of the CheckBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the CheckBox will allow three check states rather than two. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the CheckBoxControl class with default settings. + + + + + Represents a Windows combo box control. + Wraps the control. + + + + + + + + + + + + + + Occurs after the selection has been changed. + Wraps the event. + + + + + Occurs each time an owner-drawn ComboBox item needs to be drawn and + when the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ComboBox changes. + Wraps the event. + + + + + Gets an internal ComboBox. + + + + + Gets or sets a value indicating whether your code or the operating system will handle drawing of elements in the list. + Wraps the property. + + + + + Gets or sets a value specifying the style of the combo box. + Wraps the property. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + Wraps the property. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets the height of an item in the combo box. + Wraps the property. + + + + + Gets a collection of the items contained in this ComboBox. + Wraps the property. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the combo box are sorted. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the index specifying the currently selected item. + Wraps the property. + + + + + Gets or sets currently selected item in the ComboBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Initializes a new instance of the ComboBoxControl class with default settings. + + + + + Implements base behavior of button controls. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value that indicates whether the control resizes based on its contents. + Wraps the property. + + + + + Gets or sets the image that is displayed on a button control. + Wraps the property. + + + + + Gets or sets the alignment of the image on the button control. + Wraps the property. + + + + + Gets or sets the alignment of the text on the button control. + Wraps the property. + + + + + Gets or sets the position of text and image relative to each other. + Wraps the property. + + + + + + + + + + + Represents a Windows button control. + Wraps the control. + + + + + + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal Button. + + + + + Gets or sets a value that is returned to the parent form when the button is clicked. + Wraps the property. + + + + + + + + Initializes a new instance of the ButtonControl class with default settings. + + + + + Displays a ListBox in which a check box is displayed to the left of each item. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Occurs after item's check state was changed. + Wraps the event. + + + + + Gets an internal CheckedListBox. + + + + + Gets or sets a value indicating whether the check box should be toggled when an item is selected. + Wraps the property. + + + + + Collection of checked indexes in this CheckedListBox. + Wraps the property. + + + + + Collection of checked items in this CheckedListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ItemCheck event and the script code connected to the ItemCheckEvent. + + Event data. + + + + Initializes a new instance of the CheckedListBoxControl class with default settings. + + + + + Displays a hierarchical collection of labeled items, each represented by a TreeNode. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs after the tree node is selected. + Wraps the event. + + + + + Gets an internal TreeView. + + + + + Gets or sets a value indicating whether check boxes are displayed next to the tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between tree nodes in the tree view control. + Wraps the property. + + + + + Gets or sets a value indicating whether lines are drawn between the tree nodes that are at the root of the tree view. + Wraps the property. + + + + + Gets or sets the ImageList that contains the Image objects used by the tree nodes. + Wraps the property. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + Wraps the property. + + + + + Gets or sets the tree node that is currently selected in the tree view control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + This method fires the AfterSelect event and the script code connected to the AfterSelectEvent. + + Event data. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a Windows text box control. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal TextBox. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + Wraps the property. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box control types a TAB character in the control instead of moving the focus to the next control in the tab order. + Wraps the property. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + Wraps the property. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + Wraps the property. + + + + + Gets or sets a value indicating whether this is a multiline TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + Wraps the property. + + + + + Gets or sets which scroll bars should appear in a multiline TextBox control. + Wraps the property. + + + + + Gets or sets how text is aligned in a TextBox control. + Wraps the property. + + + + + Gets or sets a value indicating whether the text in the TextBox control should appear as the default password character. + Wraps the property. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the TextBoxControl class with default settings. + + + + + Enables the user to select a single option from a group of choices when paired with other RadioButton controls. + Wraps the control. + + + + + + + + Occurs when the value of the Checked property changes. + Wraps the event. + + + + + Gets an internal RadioButton. + + + + + Gets or sets the location of the check box portion of the RadioButton. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is checked. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the CheckedChanged event and the script code connected to the CheckedChangedEvent. + + Event data. + + + + Initializes a new instance of the RadioButtonControl class with default settings. + + + + + Represents a Windows picture box control for displaying an image. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal PictureBox. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + Gets or sets the image that the PictureBox displays. + Wraps the property. + + + + + Indicates how the image is displayed. + Wraps the property. + + + + + + + + Initializes a new instance of the PictureBoxControl class with default settings. + + + + + Base class for controls that may contain child controls. + + + + + + + + + + + + + + + + + Gets the collection of child controls. + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the ParentControl class with default settings. + + + + + Used to group collections of controls. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + Gets an internal Panel. + + + + + Indicates the border style for the control. + Wraps the property. + + + + + + + + + + + Initializes a new instance of the PanelControl class with default settings. + + + + + Represents a Windows spin box (also known as an up-down control) that displays numeric values. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs when the Value property has been changed in some way. + Wraps the event. + + + + + Gets an internal NumericUpDown. + + + + + Gets or sets the number of decimal places to display in the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether the up-down control should display the value it contains in hexadecimal format. + Wraps the property. + + + + + Gets or sets the value to increment or decrement the up-down control when the up or down buttons are clicked. + Wraps the property. + + + + + Gets or sets the maximum value for the up-down control. + Wraps the property. + + + + + Gets or sets the minimum value for the up-down control. + Wraps the property. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the up-down control when appropriate. + Wraps the property. + + + + + Gets or sets the value assigned to the up-down control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the NumericUpDownControl class with default settings. + + + + + Represents a Windows control that enables the user to select a date using a visual monthly calendar display. + Wraps the control. + + + + + + + + + + + + + + + + + Occurs when the date selected in the MonthCalendar changes. + Wraps the event. + + + + + Gets an internal MonthCalendar. + + + + + Gets or sets the number of columns and rows of months displayed. + Wraps the property. + + + + + Gets or sets the first day of the week as displayed in the month calendar. + Wraps the property. + + + + + Gets or sets the maximum allowable date. + Wraps the property. + + + + + Gets or sets the maximum number of days that can be selected in a month calendar control. + Wraps the property. + + + + + Gets or sets the minimum allowable date. + Wraps the property. + + + + + Gets or sets a value indicating whether the date represented by the TodayDate property is displayed at the bottom of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether today's date is circled. + Wraps the property. + + + + + Gets or sets a value indicating whether the month calendar control displays week numbers (1-52) to the left of each row of days. + Wraps the property. + + + + + Gets or sets the value that is used by MonthCalendar as today's date. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which annual days are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determines which nonrecurring dates are displayed in bold. + Wraps the property. + + + + + Gets or sets the array of DateTime objects that determine which monthly days to bold. + Wraps the property. + + + + + Gets or sets the end date of the selected range of dates. + Wraps the property. + + + + + Gets or sets the selected range of dates for a month calendar control. + Wraps the property. + + + + + Gets or sets the start date of the selected range of dates. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the DateChanged event and the script code connected to the DateChangedEvent. + + Event data. + + + + Initializes a new instance of the MonthCalendarControl class with default settings. + + + + + Uses a mask to distinguish between proper and improper user input. + Wraps the control. + + + + + + + + + + + + + + + + + Gets an internal MaskedTextBox. + + + + + Gets or sets the input mask to use at run time. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to reenter literal values. + Wraps the property. + + + + + Gets or sets how text is aligned in a masked text box control. + Wraps the property. + + + + + + + + + + + + + + Initializes a new instance of the MaskedTextBoxControl class with default settings. + + + + + Represents a Windows list view control, which displays a collection of items that can be displayed using one of four different views. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the checked state of an item changes. + Wraps the event. + + + + + Occurs when the index of the selected item in the list view control changes. + Wraps the event. + + + + + Gets an internal ListView. + + + + + Gets or sets a value indicating whether a check box appears next to each item in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether multiple items can be selected. + Wraps the property. + + + + + Gets or sets a value indicating whether items are displayed in groups. + Wraps the property. + + + + + Gets or sets how items are displayed in the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the indexes of the currently checked items in the control. + Wraps the property. + + + + + Gets the currently checked items in the control. + Wraps the property. + + + + + Gets the collection of all column headers that appear in the control. + Wraps the property. + + + + + Gets the collection of ListViewGroup objects assigned to the control. + Wraps the property. + + + + + Gets a collection containing all items in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as large icons in the control. + Wraps the property. + + + + + Gets the indexes of the selected items in the control. + Wraps the property. + + + + + Gets the items that are selected in the control. + Wraps the property. + + + + + Gets or sets the ImageList to use when displaying items as small icons in the control. + Wraps the property. + + + + + + + + + + + + + + This method fires the ItemChecked event and the script code connected to the ItemCheckedEvent. + + Event data. + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + Initializes a new instance of the ListViewControl class with default settings. + + + + + Base class for list box controls such as ListBoxControl, CheckedListBoxControl. + + + + + This property is not relevant to this class. + + + + + + + + + + + Occurs when the SelectedIndex property has changed. + Wraps the event. + + + + + Occurs when an owner-drawn ListBox is created and the sizes of the list items are determined. + Wraps the event. + + + + + Occurs when a visual aspect of an owner-drawn ListBox changes. + Wraps the event. + + + + + Gets or sets the width of columns in a multicolumn ListBox. + Wraps the property. + + + + + Gets or sets the drawing mode for the control. + Wraps the property. + + + + + Gets or sets the height of an item in the ListBox. + Wraps the property. + + + + + Gets the items of the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox supports multiple columns. + Wraps the property. + + + + + Gets or sets the method in which items are selected in the ListBox. + Wraps the property. + + + + + Gets or sets a value indicating whether the items in the ListBox are sorted alphabetically. + Wraps the property. + + + + + Gets or sets a value indicating whether the ListBox can recognize and expand tab characters when drawing its strings. + Wraps the property. + + + + + Gets or sets the string that contains all items text. + + + + + Gets or sets the zero-based index of the currently selected item in a ListBox. + Wraps the property. + + + + + Gets a collection that contains the zero-based indexes of all currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets the currently selected item in the ListBox. + Wraps the property. + + + + + Gets a collection containing the currently selected items in the ListBox. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the SelectedIndexChanged event and the script code connected to the SelectedIndexChangedEvent. + + Event data. + + + + This method fires the MeasureItem event and the script code connected to the MeasureItemEvent. + + Event data. + + + + This method fires the DrawItem event and the script code connected to the DrawItemEvent. + + Event data. + + + + Represents a standard Windows label. + Wraps the control. + + + + + + + + Gets an internal Label. + + + + + Gets or sets a value indicating whether the control is automatically resized to display its entire contents. + Wraps the property. + + + + + Gets or sets the alignment of text in the label. + Wraps the property. + + + + + + + + Initializes a new instance of the LabelControl class with default settings. + + + + + Displays data in a customizable grid. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Gets an internal DataGridView. + + + + + Gets or sets the data source that the DataGridView is displaying data for. + + + + + Gets or sets a value indicating whether the option to add rows is displayed to the user. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to delete rows from the DataGridView. + Wraps the property. + + + + + Gets or sets the default cell style applied to odd-numbered rows of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating how column widths are determined. + Wraps the property. + + + + + Gets or sets a value indicating how row heights are determined. + Wraps the property. + + + + + Gets or sets the background color of the DataGridView. + Wraps the property. + + + + + Gets or sets the border style for the DataGridView. + Wraps the property. + + + + + Gets the cell border style for the DataGridView. + Wraps the property. + + + + + Gets the border style applied to the column headers. + Wraps the property. + + + + + Gets or sets the default column header style. + Wraps the property. + + + + + Gets or sets the height, in pixels, of the column headers row. + Wraps the property. + + + + + Gets or sets a value indicating whether the height of the column headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the column header row is displayed. + Wraps the property. + + + + + Gets the collection of objects that represents the grid columns. + + + + + Gets or sets the default cell style to be applied to the cells in the DataGridView if no other cell style properties are set. + Wraps the property. + + + + + Gets or sets the color of the grid lines separating the cells of the DataGridView. + Wraps the property. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the DataGridView at a time. + Wraps the property. + + + + + Gets a value indicating whether the user can edit the cells of the DataGridView control. + Wraps the property. + + + + + Gets or sets the border style of the row header cells. + Wraps the property. + + + + + Gets or sets the default style applied to the row header cells. + Wraps the property. + + + + + Gets or sets a value indicating whether the column that contains row headers is displayed. + Wraps the property. + + + + + Gets or sets the width, in pixels, of the column that contains the row headers. + Wraps the property. + + + + + Gets or sets a value indicating whether the width of the row headers is adjustable and whether it can be adjusted by the user or is automatically adjusted to fit the contents of the headers. + Wraps the property. + + + + + Gets or sets the default style applied to the row cells of the DataGridView. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display for the DataGridView control. + Wraps the property. + + + + + Gets or sets a value indicating how the cells of the DataGridView can be selected. + Wraps the property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the GridControl class with default settings. + + + + + Represents the special kind of report page that wraps the + and used to display dialog forms. + + + Use the property to add/remove controls to/from a dialog form. + If you set the Visible property to false, this dialog form will be + skippen when you run a report. + + This example shows how to create a dialog form with one button in code. + + DialogPage form = new DialogPage(); + // set the width and height in pixels + form.Width = 200; + form.Height = 200; + form.Name = "Form1"; + // create a button + ButtonControl button = new ButtonControl(); + button.Location = new Point(20, 20); + button.Size = new Size(75, 25); + button.Text = "The button"; + // add the button to the form + form.Controls.Add(button); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs before a form is displayed for the first time. + Wraps the event. + + + + + Occurs after the form is closed. + Wraps the event. + + + + + Occurs before the form is closed. + Wraps the event. + + + + + Occurs whenever the form is first displayed. + Wraps the event. + + + + + Occurs when the form is resized. + Wraps the event. + + + + + Occurs when the form is redrawn. + Wraps the event. + + + + + Gets an internal Form. + + + + + Gets or sets an active state in Web application. + + + + + Gets or sets the button on the form that is clicked when the user presses the ENTER key. + Wraps the property. + + + + + Gets or sets the button control that is clicked when the user presses the ESC key. + Wraps the property. + + + + + Gets the auto scale dimensions for this form. + + + + + Gets or sets the background color for the form. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the border style of the form. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the text associated with this form. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets the collection of controls contained within the form. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shows the form as a modal dialog box with the currently active window set as its owner. + Wraps the method. + + One of the DialogResult values. + + + + This method fires the Load event and the script code connected to the LoadEvent. + + Event data. + + + + This method fires the FormClosed event and the script code connected to the FormClosedEvent. + + Event data. + + + + This method fires the FormClosing event and the script code connected to the FormClosingEvent. + + Event data. + + + + This method fires the Shown event and the script code connected to the ShownEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Initializes a new instance of the DialogPage class. + + + + + Base class for all dialog controls such as ButtonControl, TextBoxControl. + + + + + Determines whether is necessary to serialize the BackColor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Cursor property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the Font property. + + true if serialization is necessary. + + + + Determines whether is necessary to serialize the ForeColor property. + + true if serialization is necessary. + + + + + + + Draws the selection point. + + Graphics object to draw on. + object. + object. + Left coordinate. + Top coordinate. + + + + + + + + + + Creates the empty event handler for the ClickEvent event in the report's script. + + true if event handler was created successfully. + + + + + + + Occurs when the control is clicked. + Wraps the event. + + + + + Occurs when the control is double-clicked. + Wraps the event. + + + + + Occurs when the control is entered. + Wraps the event. + + + + + Occurs when the input focus leaves the control. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is pressed while the control has focus. + Wraps the event. + + + + + Occurs when a key is released while the control has focus. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is pressed. + Wraps the event. + + + + + Occurs when the mouse pointer is moved over the control. + Wraps the event. + + + + + Occurs when the mouse pointer is over the control and a mouse button is released. + Wraps the event. + + + + + Occurs when the mouse pointer enters the control. + Wraps the event. + + + + + Occurs when the mouse pointer leaves the control. + Wraps the event. + + + + + Occurs when the control is resized. + Wraps the event. + + + + + Occurs when the Text property value changes. + Wraps the event. + + + + + Occurs when the control is redrawn. + Wraps the event. + + + + + Gets an internal Control. + + + + + Gets or sets the background color for the control. + Wraps the property. + + + + + Gets or sets the cursor that is displayed when the mouse pointer is over the control. + Wraps the property. + + + + + Gets or sets a value indicating whether the control can respond to user interaction. + Wraps the property. + + + + + Gets or sets the font of the text displayed by the control. + Wraps the property. + + + + + Gets or sets the foreground color of the control. + Wraps the property. + + + + + Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts. + Wraps the property. + + + + + Gets or sets the tab order of the control within its container. + Wraps the property. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + Wraps the property. + + + + + Gets or sets the text associated with this control. + Wraps the property. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets the edges of the container to which a control is bound and determines how a control is resized with its parent. + Wraps the property. + + + + + Gets or sets a value indicating whether the control is displayed. + Wraps the property. + + + + + Gets or sets a property that returns actual data contained in a control. This value is used + in the "Data" window. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + + + + Called when the control's Enabled state changed. + + + + + Attaches Control events to its event handlers. + + + Override this method if your custom control has own events. + + See the example of AttachEvents implementation used in the CheckBoxControl: + + protected override void AttachEvents() + { + base.AttachEvents(); + CheckBox.CheckedChanged += new EventHandler(CheckBox_CheckedChanged); + } + + private void CheckBox_CheckedChanged(object sender, EventArgs e) + { + if (CheckedChanged != null) + CheckedChanged(this, e); + InvokeEvent(CheckedChangedEvent, e); + } + + + + + + Detaches Control events from its event handlers. + + + Override this method if your custom control has own events. In this method, you should + detach control's events that were attached in the method. + + See the example of DetachEvents implementation used in the CheckBoxControl: + + protected override void DetachEvents() + { + base.DetachEvents(); + CheckBox.CheckedChanged -= new EventHandler(CheckBox_CheckedChanged); + } + + + + + + + + + + + + Initializes the control before display it in the dialog form. + + + This method is called when report is run. + + + + + Finalizes the control after its parent form is closed. + + + This method is called when report is run. + + + + + Sets input focus to the control. + + + + + Conceals the control from the user. + + + + + Displays the control to the user. + + + + + + + + This method fires the Click event and the script code connected to the ClickEvent. + + Event data. + + + + This method fires the DoubleClick event and the script code connected to the DoubleClickEvent. + + Event data. + + + + This method fires the Enter event and the script code connected to the EnterEvent. + + Event data. + + + + This method fires the Leave event and the script code connected to the LeaveEvent. + + Event data. + + + + This method fires the KeyDown event and the script code connected to the KeyDownEvent. + + Event data. + + + + This method fires the KeyPress event and the script code connected to the KeyPressEvent. + + Event data. + + + + This method fires the KeyUp event and the script code connected to the KeyUpEvent. + + Event data. + + + + This method fires the MouseDown event and the script code connected to the MouseDownEvent. + + Event data. + + + + This method fires the MouseMove event and the script code connected to the MouseMoveEvent. + + Event data. + + + + This method fires the MouseUp event and the script code connected to the MouseUpEvent. + + Event data. + + + + This method fires the MouseEnter event and the script code connected to the MouseEnterEvent. + + Event data. + + + + This method fires the MouseLeave event and the script code connected to the MouseLeaveEvent. + + Event data. + + + + This method fires the Resize event and the script code connected to the ResizeEvent. + + Event data. + + + + This method fires the TextChanged event and the script code connected to the TextChangedEvent. + + Event data. + + + + This method fires the Paint event and the script code connected to the PaintEvent. + + Event data. + + + + Base class for all dialog components. + + + + + + + + + + + + + + + + + Gets or sets the coordinates of the upper-left corner of the control relative to the upper-left corner of its container. + + + + + Gets or sets the height and width of the control. + + + + + + + + Initializes a new instance of the DialogComponentBase class with default settings. + + + + + Represents the control with two lists (available items and selected items). + + + The control allows to select one or several items and then filter the datasource which it is connected to. + All you need is to setup the DataColumn property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Gets or sets a value indicating that the items must be sorted. + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the DataSelectorControl class with default settings. + + + + + Represents a Windows control that allows the user to select a date and a time and to display the date and time with a specified format. + Wraps the control. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Occurs after the date has been changed. + Wraps the event. + + + + + Gets an internal DateTimePicker. + + + + + Gets or sets a value indicating whether the Value property has been set with a valid date/time value and the displayed value is able to be updated. + Wraps the property. + + + + + Gets or sets the custom date/time format string. + Wraps the property. + + + + + Gets or sets the alignment of the drop-down calendar on the DateTimePicker control. + Wraps the property. + + + + + Gets or sets the format of the date and time displayed in the control. + Wraps the property. + + + + + Gets or sets the maximum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets the minimum date and time that can be selected in the control. + Wraps the property. + + + + + Gets or sets a value indicating whether a check box is displayed to the left of the selected date. + Wraps the property. + + + + + Gets or sets a value indicating whether a spin button control (also known as an up-down control) is used to adjust the date/time value. + Wraps the property. + + + + + Gets or sets the date/time value assigned to the control. + Wraps the property. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + + + + + + + + + + + + + This method fires the ValueChanged event and the script code connected to the ValueChangedEvent. + + Event data. + + + + Initializes a new instance of the DateTimePickerControl class with default settings. + + + + + Represents the 's column. + Wraps the class. + + + + + Gets or sets the mode by which the column automatically adjusts its width. + Wraps the property. + + + + + Gets or sets the data column attached to this column. + + + + + Gets or sets the caption text on the column's header cell. + Wraps the property. + + + + + Gets or sets the column's default cell style. + Wraps the property. + + + + + Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control. + Wraps the property. + + + + + Gets or sets the current width of the column. + Wraps the property. + + + + + Gets or sets a value indicating whether the column is visible. + Wraps the property. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Initializes a new instance of the GridControlColumn class with default settings. + + + + + Represents the collection of GridControl columns. + + + + + Gets or sets a column. + + The index of a column in this collection. + The column with specified index. + + + + + + + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows rich text box control. + Wraps the control. + + + + + Gets an internal RichTextBox. + + + + + Gets or sets the text of the RichTextBox control, including all rich text format (RTF) codes. + Wraps the property. + + + + + Gets or sets the type of scroll bars to display in the RichTextBox control. + Wraps the property. + + + + + + + + Loads rtf from a file. + + File to load from. + + + + Loads rtf from a stream using specified stream type. + + Stream to load from. + Type of a stream. + + + + Loads rtf from a file using specified stream type. + + File to load from. + Type of a stream. + + + + Initializes a new instance of the RichTextBoxControl class with default settings. + + + + + Represents a Windows control that displays a frame around a group of controls with an optional caption. + Wraps the control. + + + + + Gets an internal GroupBox. + + + + + Initializes a new instance of the GroupBoxControl class with default settings. + + + + + The base class for all controls that support the data filtering feature. + + + The data filtering allows you to bind the control to a . + It will be automatically filled by data from the datasource's column. When you select/check + item(s) and close the dialog with OK button, it will filter the datasource according to your selection. + You can set the filter operation using the property. + + + + + Occurs after the control is filled with data. + + + + + Gets or sets a value that determines whether to fill the control with data automatically. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a value that determines whether to filter the datasource automatically + when you close the dialog by OK button. + + + The default value of this property is true. If you set it to false, + you need to call the method manually. + + + + + Gets or sets a data column name that will be used to fill this control with data. + + + This property must contain both datasource name and column name, for example: + Orders.OrderID. You also may use relations, for example: Orders.Customers.CompanyName. + + + + + Gets or sets name of report parameter which value will be set to value contained + in this control when you close the dialog. + + + + + Gets or sets a value that specifies the filter operation. + + + + + Gets or sets the detail control used in cascaded filtering. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + + + Fills the control with data. + + The data source. + The data column. + Here is the example of FillData method implementation: + + protected override void FillData(DataSourceBase dataSource, Column column) + { + Items.Clear(); + dataSource.First(); + while (dataSource.HasMoreRows) + { + Items.Add(dataSource[column].ToString()); + dataSource.Next(); + } + } + + + + + + Returns list of values that can be used to fill control with data. + + The data source. + The data column. + List of string values. + + This method is used by the FillData method to fill list-type controls + such as ListBox with data. The result list contains distinct values. + + + + + Returns value entered in the control. + + The value of type supported by this control. + + This method must return a value entered by the user. For example, TextBox + control must return its Text property value. If this control supports multi-selection, + return selected values in an array, for example string[] array for CheckedListBox. + + + + + Handles the cascaded filter internal logic. + + + This method should be called in your custom dialog control that supports data filtering. + Call it when the value in your control is changed. + + + + + + + + + + + + + + Fills the control with data from a datasource. + + + Call this method if you set the property to false. + + + + + Fills the control with data from a datasource. + + Parent data source + + Call this method if you need to implement cascaded filter. In the parentData parameter, + pass the parent data source that will be used to set up master-detail relationship with + data source in this control. + + + + + Fills the control with data from a datasource. + + Parent control + + Call this method if you need to implement cascaded filter. In the parentControl parameter, + pass the parent control which performs filtering on a parent data source. + + + + + Applies the filter to a datasource. + + + Call this method if you set the property to false. + + + + + Resets the filter set by this control. + + + + + This method fires the DataLoaded event and the script code connected to the DataLoadedEvent. + + Event data. + + + + Initializes a new instance of the DataFilterBaseControl class with default settings. + + + + + Represents the collection of dialog components. + + + + + Gets or sets a component. + + The index of a component in this collection. + The component with specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with default settings. + + The owner of this collection. + + + + Represents a Windows control to display a list of items. + Wraps the control. + + + + + Gets an internal ListBox. + + + + + + + + + + + Initializes a new instance of the ListBoxControl class with default settings. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all forms. + + + + + The event occurs on form's dpi change. + + + + + Convenience method returns an image with specified index for this form's dpi. + + Image index. + The image. + + + + Convenience method returns an image with specified name for this form's dpi. + + Image resource name. + The image. + + + + Convenience method returns an imagelist for this form's dpi. + + The imagelist. + + + + Localizes the dialog controls. + + + Use this method to set control's captions specific to the current locale. + + + + + + + + Update controls on dpi change. + + This method is called when the form's dpi is changed. Write custom logic to update + some controls (such as ListBox.ItemHeight) here. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Editor for rearrangement Exports Menu elements + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The form for message box with text editor + + + + + Gets or sets text + + + + + Defualt constructor + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for . + For internal use only. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base form for all export options dialog forms. + + + + + Represents the "Open after export" button visibility. + + + + + Gets a reference to the currently editing export filter. + + + + + + + + + + + Called when editing is done. + + + Override this method to pass edited values from the dialog controls to the export filter. + + See the example of this method implementation that is used in the ImageExport. + + protected override void Done() + { + base.Done(); + ImageExport imageExport = Export as ImageExport; + imageExport.ImageFormat = (ImageExportFormat)cbxImageFormat.SelectedIndex; + imageExport.Resolution = (int)udResolution.Value; + imageExport.JpegQuality = (int)udQuality.Value; + imageExport.SeparateFiles = cbSeparateFiles.Checked; + } + + + + + + + + + Initializes controls with initial values. + + The export filter to edit. + + Override this method to pass values from the export filter to the dialog controls. + + See the example of this method implementation that is used in the ImageExport. + + public override void Init(ExportBase export) + { + base.Init(export); + ImageExport imageExport = Export as ImageExport; + cbxImageFormat.SelectedIndex = (int)imageExport.ImageFormat; + udResolution.Value = imageExport.Resolution; + udQuality.Value = imageExport.JpegQuality; + cbSeparateFiles.Checked = imageExport.SeparateFiles; + } + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + "Page Range" groupbox. + + + + + "Page Numbers" label. + + + + + "Page Numbers" textbox. + + + + + "Page Numbers" radiobutton. + + + + + "Current Page" radiobutton. + + + + + "All Pages" radiobutton. + + + + + PageControl. + + + + + Pages panel. + + + + + "Open after export" checkbox. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Splash Screen showing during loading designer + + + + + Initializes a new instance of the class. + + + + + Filters mouse events. + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the Welcome window displayed on the designer startup + + + + + Initializes a new instance of the class. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The "Advanced Connection Properties" form. + + + + + Gets or sets the connection string builder which contains the connection properties. + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the FastReport exception form. + + + + + + + + Creates a new instance ofthe form. + + The exception object which data to display in the form. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + Gets Aborted state + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Form for barcode editor + + + + + Generated text for barcode object + + + + + Initializes a new instance of the class. + + Text data for parsing + Report object for nodes + Brackets symbols + Editor for rich barcode? + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Base class for all dialog forms with two buttons, OK and Cancel. + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The OK button. + + + + + The Cancel button. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The base class for designer plugin's options page. + + + Use this class if you develop a designer plugin that may be configured in the + "View|Options..." menu. You need to implement an options page for your + plugin and return it in the IDesignerPlugin.GetOptionsPage method. + + + + + The TabControl control. + + + + + The TabPage control. + + + + + Initializes controls on this options page. + + + Override this method to fill options page's controls with initial values. + + + + + Finalizes the options page. + + The dialog result. + + Override this method to pass controls' values to the plugin. Do this if result is + DialogResult.OK. + + + + + Updates images used in the control. + + + + + Initializes a new instance of the DesignerOptionsPage class with default settings. + + + Usually you need to define another contructor which takes one parameter - the plugin. + + This example shows how to define own constructor which takes a plugin: + + public DialogPageOptions(DialogPageDesigner pd) : base() + { + FPageDesigner = pd; + InitializeComponent(); + } + + + + + + read current token, returns next + + + + + + + + read current token, returns next + + + + + + + + ignore current token, read from next, returns current i.e not next + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + For internal use only. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the report engine. + + + + + Shows band at the current position. + + Band to show. + + After the band is shown, the current position is advanced by the band's height. + + + + + Gets or sets the current X offset. + + + This property specifies the X offset where the current band will be printed. + + + + + Gets or sets the current Y offset. + + + This property specifies the Y offset where the current band will be printed. + After the band is printed, this value is incremented by the band's height. + + + + + Gets the index of currently printing column in the multi-column report. + + + This value is 0-based. + + + + + Gets or sets index of current prepared page the current band will print on. + + + Note: the page with specified index must exists. This property is used to print side-by-side + subreports and Table object. Usually you don't need to use it. + + + + + Gets the current page width, in pixels. + + + This property returns a paper width minus left and right margins. + + + + + Gets the current page height, in pixels. + + + This property returns a paper height minus top and bottom margins. + + + + + Gets the value indicating whether the page has unlimited height. + + + + + Gets the value indicating whether the page has unlimited width. + + + + + Gets or sets the current height of unlimited page. + + + + + Gets or sets the current width of unlimited page. + + + + + Gets the height of page footer (including all its child bands), in pixels. + + + + + Gets the height of column footer (including all its child bands), in pixels. + + + + + Gets the free space on the current page, in pixels. + + + This property returns the page height minus footers height minus CurY value. + + + + + Gets the current prepared page number. + + + This value is 1-based. The initial value (usually 1) is set in the Report.InitialPageNumber property. + + + + + Gets the number of total pages in a prepared report. + + + To use this property, your report must be two-pass. Set the + property to true. + + + + + Gets the string that represents the current page number. + + + This property returns a locale-based value, for example: "Page 1". + + + + + Gets the string that represents the "Page N of M" number. + + + This property returns a locale-based value, for example: "Page 1 of 10". + + + + + Gets the current row number of currently printing band. + + + This value is 1-based. It resets to 1 on each new group. + + + + + Gets the running current row number of currently printing band. + + + This value is 1-based. + + + + + Gets the date of report start. + + + + + Gets a value indicating whether the report is executing the final pass. + + + This property is true if report is one-pass, or if report is two-pass and + the second pass is executing. + + + + + Gets a value indicating whether the report is executing the first pass. + + + This property is true if report is one-pass, or if report is two-pass and + the first pass is executing. + + + + + Gets a level of hierarchy when printing hierarchical bands. + + + The first level of hierarchy has 0 index. + + + + + Gets the row number like "1.2.1" when printing hierarchical bands. + + + + + Returns true of keeping is enabled + + + + + Returns keeping position + + + + + Starts the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Ends the keep mechanism. + + + Use this method along with the method if you want to keep + several bands together. Call StartKeep method before printing the first band + you want to keep, then call the EndKeep method after printing the last band you want to keep. + + + + + Gets xml containing outline nodes. + + + + + Creates a new outline element with specified text. + + Text of element. + + After you call this method, the element will be added to the current position in the outline. + The next call to AddOutline will add new element as a child of this element. + To shift the position, use the or + OutlineUp methods. + + + + + Sets the current outline position to root. + + + + + Shifts the current outline position one level up. + + + + + Creates a new bookmark with specified name at current position. + + + + + + Gets a page number for the specified bookmark name. + + Name of bookmark. + Page number if bookmark with such name found; 0 otherwise. + + Use this method to print the table of contents in your report. Normally it can be done + using bookmarks. + + You must set your report to double pass to use this method. + + + + + + Resets the logical page numbers. + + + + + Called when the number of pages increased during DoublePass + + + + + Starts a new page. + + + + + Starts a new column. + + + + + Processes the specified text object which ProcessAt property is set to Custom. + + The text object to process. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents a linear gauge. + + + + + + + + + + + Gets or sets the value that specifies inverted gauge or not. + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a linear pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Initializes a new instance of the + + The parent gauge object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a linear gauge. + + + + + + + + + + + + + + + + + Returns centr of the gauge + + + + + The number of radians in one degree + + + + + Gets or sets the Radial Gauge type + + + + + Gats or sets the Radial Gauge position. Doesn't work for Full Radial Gauge. + + + + + Gets or sets the semicircles offset + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Radial Gauge types + + + + + Full sized gauge + + + + + Half of the radial gauge + + + + + Quarter of the radial gauge + + + + + Radial Gauge position types + + + + + None + + + + + Top + + + + + Bottom + + + + + Left + + + + + Right + + + + + Represents a linear pointer. + + + + + Gets or sets the value, indicating that gradient should be rotated automatically + + + + + Initializes a new instance of the + + The parent gauge object. + The scale object. + + + + + + + + + + + + + Represents a linear scale. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple progress gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Gets scale. Should be disabled for SimpleProgressGauge + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Gets or sets the number of fractional digits + + + + + + + + + + + + + + SimpleProgressGauge pointer types + + + + + Full sized pointer + + + + + Small pointer + + + + + + + + Gets or sets the pointer type + + + + + Gets or sets the small pointer width ratio + + + + + + + + + + + + + + Represents a simple gauge. + + + + + + + + + + + Gets or sets gauge label. + + + + + Initializes a new instance of the class. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a simple pointer. + + + + + Gets o sets the Left offset of gauge pointer. + + + + + Gets o sets the Top offset of gauge pointer. + + + + + Gets o sets the height of gauge pointer. + + + + + Gets or sets the width of a pointer. + + + + + Gets or sets the pointer ratio. + + + + + Gets or sets the pointer horizontal offset (cm). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represents a simple scale. + + + + + Gets or sets the first subscale (top or left). + + + + + Gets or sets the second subscale (right or bottom). + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + + + + + + + + + + Represent the subscale of simple scale. + + + + + Gets or sets a value that specifies enabled subscale or not. + + + + + Gets or sets a value that specifies show caption or not. + + + + + Initializes a new instance of the class. + + + + + Copies the contents of another SimpleSubScale. + + The SimpleSubScale instance to copy the contents from. + + + + Serializes the SimpleSubScale. + + Writer object. + SimpleSubScale property name. + Another SimpleSubScale to compare with. + + This method is for internal use only. + + + + + Represents a gauge object. + + + + + + + + + + + + + + Gets or sets the minimal value of gauge. + + + + + Gets or sets the maximal value of gauge. + + + + + Gets or sets the currenta value of gauge. + + + + + Gets or sets scale of gauge. + + + + + Gets or sets pointer of gauge. + + + + + Gets or sets gauge label. + + + + + Gets or sets an expression that determines the value of gauge object. + + + + + Gets a value that specifies is gauge vertical or not. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + + + + Initializes a new instance of the class. + + Minimum value of gauge. + Maximum value of gauge. + Current value of gauge. + Scale of gauge. + Pointer of gauge. + + + + + + + + + + + + + Draws the gauge. + + Draw event arguments. + + + + + + + Clone Gauge Object + + clone of this object + + + + Represents a label of a gauge. + + + + + Gets or sets the label text + + + + + Gets or sets the label font + + + + + Gets or sets the label color + + + + + Gets or sets the label parent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Label text + Label font + Label color + Label parent + + + + Copies the contents of another GaugeLabel. + + The GaugeLabel instance to copy the contents from. + + + + Draws the gauge label. + + Draw event arguments. + + + + Serializes the gauge label. + + Writer object. + Gauge label property name. + Another GaugeLabel to compare with. + + This method is for internal use only. + + + + + Represents a pointer of gauge. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the color of a pointer. + + + + + Gets or sets the border width of a pointer. + + + + + Gets or sets the border color of a pointer. + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugePointer. + + The GaugePointer instance to copy the contents from. + + + + Draws the gauge pointer. + + Draw event arguments. + + + + Serializes the gauge pointer. + + Writer object. + Gauge pointer property name. + Another GaugePointer to compare with. + + This method is for internal use only. + + + + + Represents a scale of a gauge. + + + + + Gets or sets major ticks of scale. + + + + + Gets or sets minor ticks of scale. + + + + + Gets or sets the parent gauge object. + + + + + Gets or sets the font of scale. + + + + + Gets or sets the scale font color + + + + + Initializes a new instance of the class. + + The parent gauge object. + + + + Copies the contents of another GaugeScale. + + The GaugeScale instance to copy the contents from. + + + + Draws the scale of gauge. + + Draw event arguments. + + + + Serializes the gauge scale. + + Writer object. + Scale property name. + Another GaugeScale to compare with. + + This method is for internal use only. + + + + + Represents a scale ticks. + + + + + Gets or sets the length of ticks. + + + + + Gets or sets the width of ticks. + + + + + Gets or sets the color of ticks. + + + + + Gets or sets the count of ticks + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + + + + Initializes a new instance of the class. + + Ticks length. + Ticks width. + Ticks color. + Ticks count. + + + + Copies the contents of another ScaleTicks. + + The ScaleTicks instance to copy the contents from. + + + + Serializes the scale ticks. + + Writer object. + Scale ticks property name. + Another ScaleTicks to compare with. + + This method is for internal use only. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + + + + + + + Provides a user interface for editing a text outline. + + + + + + + + + + + Provides a user interface for choosing a relation. + + + + + Provides a user interface for selecting a component inside the report. + + + + + + + + + + + + + + Provides a user interface for selecting a component inside the same band. + + + + + + + + + + + + + + Provides a user interface for editing a flags enumeration. + + + + + + + + + + + Provides a user interface for choosing a data type. + + + + + + + + + + + Provides a user interface for choosing a data column. + + + + + + + + + + + + + + Provides a user interface for choosing a data source. + + + + + Provides a user interface for editing an expression. + + + + + + + + + + + Provides a user interface for editing an angle in degrees. + + + + + + + + + + + Provides a user interface for editing a component's border. + + + + + + + + + + + Provides a user interface for selecting a component inside the same page. + + + + + + + + + + + + + + Provides a user interface for choosing a color. + + + + + + + + + + + + + + + + + Provides a user interface for editing a fill. + + + + + + + + + + + Provides a user interface for editing a string collection. + + + + + + + + + + + Represents a map object. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the path to folder containing shapefiles. + + + This property is used by the map editor when selecting a shapefile. + + + + + Gets or sets the map zoom. + + + + + Gets or sets minimum zoom value. + + + + + Gets or sets maximum zoom value. + + + + + Gets or sets the X offset of the map. + + + + + Gets or sets the Y offset of the map. + + + + + Gets or sets the value indicating that mercator projection must be used to view the map. + + + + + Gets the color scale settings. + + + + + Gets or sets a collection of map layers. + + + + + Gets or sets padding within the map. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loads a map from file. + + Name of file that contains a map. + + + + Creates unique names for all contained objects such as layers, shapes, etc. + + + + + Initializes a new instance of the class. + + + + + Represents a map point. + + + + + Gets or sets the X-coordinate of the point. + + + + + Gets or sets the Y-coordinate of the point. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a polygon shape. + + + + + Holds the largest bounding rectangle of this shape. + + + + + Gets or sets a bounding box of this shape. + + + + + Gets or sets a list of polygons in this shape. + + + + + Gets or sets the shape data in binary format. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed. Otherwise, false. + + + + Represents four coordinates that define a bounding box. + + + + + Gets or sets the minimum X-coordinate of a bounding box. + + + + + Gets or sets the minimum Y-coordinate of a bounding box. + + + + + Gets or sets the maximum X-coordinate of a bounding box. + + + + + Gets or sets the maximum Y-coordinate of a bounding box. + + + + + Copies the contents of another instance. + + Source box to copy the contents from. + + + + Defines the palette used to display map shapes. + + + + + No palette used. + + + + + Light palette. + + + + + Pastel palette. + + + + + Grayscale palette. + + + + + Earth tones palette. + + + + + Sea green palette. + + + + + Bright pastel palette. + + + + + Represents a set of color ranges used to highlight polygons based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start color. + + + + + Gets or sets the middle color. + + + + + Gets or sets the end color. + + + + + Gets or sets a value indicating that the map's color scale must display data from this color ranges. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another ColorRanges. + + The ColorRanges instance to copy the contents from. + + + + Gets a color associated with given analytical value. + + The analytical value. + The color associated with this value, or Color.Transparent if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single color range. + + + + + Gets or sets color of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another ColorRange. + + The ColorRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The color of the range. + The start value of the range. + The end value of the range. + + + + Represents the color scale. + + + + + Gets or sets that must be displayed in this color scale. + + + + + Gets or sets the format string used to format data values. + + + + + Gets or sets a value indicating whether the color scale must be hidden if there is no data in it. + + + + + Gets or sets the text displayed in the color scale if there is no data in it. + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a distance scale. + + + + + Initializes a new instance of the class. + + + + + Represents loading map data from dbf-file. + + + + + Gets or sets the filter string used in an open file dialog. + + + + + Initializes a new instance of the class. + + + + + Returns a file filter for an open file dialog. + + String that contains a file filter. + + + + Imports the map data from a specified file into a specfied layer. + + The MapObject for an importing map. + The name of a file that contains map. + + + + Represents the description of dBase field. + + + + + Gets the field name. + + + + + Gets the field type. + + + + + Gets the field length. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + Initializes a new instance of the class with a specified parameters. + + The field name. + The field type. + The field length. + + + + The type of dBase field. + + + + + Character field. + + + + + Date field. + + + + + Numeric field. + + + + + Logical field. + + + + + Memo field. + + + + + Represents a collection of objects. + + + + + Gets a layer with specified index. + + Index of a layer. + The layer with specified index. + + + + Specifies the type of objects that layer contains. + + + + + The layer contains points. + + + + + The layer contains lines. + + + + + The layer contains polygons. + + + + + Specifies the spatial source for the layer. + + + + + Source is ESRI shapefile. + + + + + Source is a latitude/longitude/name provided by an application. + + + + + Determines how map labels are displayed. + + + + + No label displayed. + + + + + The shape name is displayed. + + + + + The value is displayed. + + + + + Both name and value displayed. + + + + + Represents a map layer. + + + + + Gets or sets a type of layer. + + + + + Gets or sets the spatial source for the layer. + + + + + Gets or sets the name of ESRI shapefile. + + + + + Gets or sets the data source. + + + + + Gets or sets the datasource filter expression. + + + + + Gets or sets spatial column name. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns spatial value. + + + This property is used if the is set to ShpFile. + + + + + Gets or sets an expression that returns latitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns longitude value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns label value. + + + This property is used if the is set to ApplicationData. + + + + + Gets or sets an expression that returns analytical value. + + + + + Gets or sets label's column name. + + + + + Gets or sets a value that determines how map labels are displayed. + + + + + Gets or sets the format of label's value. + + + + + Gets or sets the map accuracy. Lower value is better, but slower. + + + + + Gets or sets the value that determines the labels visiblity at a certain zoom value. + + + + + Gets or sets the aggregate function. + + + + + Gets or sets a value indicating that the layer is visible. + + + + + Gets or sets a bounding box of layer. + + + + + Gets a collection of map objects. + + + + + Gets the default style of shapes in this layer. + + + + + Gets or sets the palette used to highlight shapes. + + + + + Gets the color ranges used to highlight shapes based on analytical value. + + + + + Gets the size ranges used to draw points based on analytical value. + + + + + Gets or sets the expression that returns the name of polygon to zoom. + + + + + Gets or sets the bounding box as a string. + + + + + Gets a reference to the Map object. + + + + + + + + Draws the layer. + + The drawing parameters. + + + + Finds the shape under cursor. + + The cursor coordinates. + The ShapeBase object if found. + + + + + + + Creates unique names for all contained objects such as points, lines, polygons, etc. + + + + + Reduces the number of points in the shapes in this layer. + + The accuracy value. + + + + Loads the layer contents from ESRI shapefile (*.shp/*.dbf). + + The file name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds application provided data. + + Latitude value. + Longitude value. + The name displayed as a label. + Analytical value. + + Use this method if the is set to ApplicationData. + + + + + Adds a spatial/analytical value pair to the list. + + The spatial value. + The analytical value. + + Use this method if the is set to ShpFile. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a pair of double coordinates that defines a constituent point. + + + + + Gets or sets the X-coordinate of a point. + + + + + Gets or sets the Y-coordinate of a point. + + + + + Creates a new instance of the class with specified coordinates. + + X coordinate. + Y coordinate. + + + + Specifies the position of a scale control inside the map. + + + + + The scale is displayed at top left corner. + + + + + The scale is displayed at top center side. + + + + + The scale is displayed at top right corner. + + + + + The scale is displayed at middle left side. + + + + + The scale is displayed at middle right side. + + + + + The scale is displayed at bottom left corner. + + + + + The scale is displayed at bottom center side. + + + + + The scale is displayed at bottom right corner. + + + + + The base class for scale-type controls such as and . + + + + + Gets or sets the border. + + + + + Gets or sets the fill. + + + + + Gets or sets the title font. + + + + + Gets or sets the title text color. + + + + + Gets or sets the title text. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the border color. + + + + + Gets or sets the location of the scale. + + + + + Gets or sets the visibility of a scale. + + + + + Copies the contents of another ScaleBase. + + The ScaleBase instance to copy the contents from. + + + + Serializes the scale. + + Writer object. + Scale property name. + Another ScaleBase to compare with. + + This method is for internal use only. + + + + + Gets the size of the scale, in pixels. + + The SizeF structure containing the size of the object. + + + + Draws the object. + + Draw parameters. + Parent map object. + + + + Initializes a new instance of the class. + + + + + The base class for shape objects such as , and . + + + + + Gets or sets the shape visibility. + + + + + Gets or sets a value indicating that custom shape style is used. + + + If this property is false, the layer's DefaultShapeStyle is used. + + + + + Gets a custom shape style. + + + To use this property, first set the property to true. + + + + + Gets or sets the center point X offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the center point Y offset. + + + Use this property to adjust the label's position. + + + + + Gets or sets the shape X offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the shape Y offset. + + + Use this property to adjust the shape position. + + + + + Gets or sets the scale factor for this shape. + + + Use this property to adjust the shape size. + + + + + Gets or sets the spatial data associated with this shape. + + + + + Gets or sets the value. + + + + + Gets a reference to the parent Map object. + + + + + Gets a reference to the parent Layer object. + + + + + + + + Draws the shape. + + Object that provides a data for paint event. + + + + Draws the label. + + Object that provides a data for paint event. + + + + Checks if the shape is under cursor. + + The cursor coordinates. + true if the cursor is over the shape. + + + + Reduces the number of points in the shape. + + The accuracy value. + + + + + + + Initializes a component before running a report. + + + + + Finalizes a component before running a report. + + + + + Saves the state of this component. + + + + + Restores the state of this component. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents a line shape. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents the spatial data of a shape. + + + + + Copies contents from another spatial data object. + + The object to copy contents from. + + + + Compares two spatial data objects. + + The spatial object to compare with. + true if spatial objects are identical. + + + + Gets a value by its key. + + The key of value. + The value. + + + + Sets a value by its key. + + The key of value. + The value. + + + + Gets a list of keys. + + The list of keys. + + + + Creates a new instance of the class. + + + + + Represents the style of a shape. + + + + + Gets or sets the border color. + + + + + Gets or sets the border style. + + + + + Gets or sets the border width. + + + + + Gets or sets the fill color. + + + + + Gets or sets the font. + + + + + Gets or sets the text color. + + + + + Gets or sets the point size, in pixels. + + + + + Copies contents from another similar object. + + The object to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Represents a set of size ranges used to draw points based on analytical value. + + + + + Gets the list of ranges. + + + + + Gets or sets the number of ranges. + + + + + Gets or sets the start size. + + + + + Gets or sets the end size. + + + + + Gets or sets ranges as a string. + + + + + Copies the contents of another SizeRanges. + + The SizeRanges instance to copy the contents from. + + + + Gets a size associated with given analytical value. + + The analytical value. + The size associated with this value, or 0 if no association found. + + + + Initializes a new instance of the class. + + + + + Represents a single size range. + + + + + Gets or sets size of the range. + + + + + Gets or sets start value of the range. + + + + + Gets or sets end value of the range. + + + + + Copies the contents of another SizeRange. + + The SizeRange instance to copy the contents from. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified parameters. + + The size of the range. + The start value of the range. + The end value of the range. + + + + Represents the matrix object that is used to print pivot table (also known as cross-tab). + + + The matrix consists of the following elements: columns, rows and data cells. Each element is + represented by the descriptor. The class is used + for columns and rows; the is used for data cells. + The property holds three collections of descriptors - Columns, + Rows and Cells. + To create the matrix in a code, you should perform the following actions: + + + create an instance of the MatrixObject and add it to the report; + + + create descriptors for columns, rows and cells and add it to the + collections inside the property; + + + call the method to create the matrix template + that will be used to create a result; + + + modify the matrix template (change captions, set the visual appearance). + + + To connect the matrix to a datasource, use the property. If + this property is not set, the result matrix will be empty. In this case you may use + the event handler to fill the matrix. + + This example demonstrates how to create a matrix in a code. + + // create an instance of MatrixObject + MatrixObject matrix = new MatrixObject(); + matrix.Name = "Matrix1"; + // add it to the report title band of the first report page + matrix.Parent = (report.Pages[0] as ReportPage).ReportTitle; + + // create two column descriptors + MatrixHeaderDescriptor column = new MatrixHeaderDescriptor("[MatrixDemo.Year]"); + matrix.Data.Columns.Add(column); + column = new MatrixHeaderDescriptor("[MatrixDemo.Month]"); + matrix.Data.Columns.Add(column); + + // create one row descriptor + MatrixHeaderDescriptor row = new MatrixHeaderDescriptor("[MatrixDemo.Name]"); + matrix.Data.Rows.Add(row); + + // create one data cell + MatrixCellDescriptor cell = new MatrixCellDescriptor("[MatrixDemo.Revenue]", MatrixAggregateFunction.Sum); + matrix.Data.Cells.Add(cell); + + // connect matrix to a datasource + matrix.DataSource = Report.GetDataSource("MatrixDemo"); + + // create the matrix template + matrix.BuildTemplate(); + + // change the style + matrix.Style = "Green"; + + // change the column and row total's text to "Grand Total" + matrix.Data.Columns[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allows to fill the matrix in code. + + + In most cases the matrix is connected to a datasource via the + property. When you run a report, the matrix is filled with datasource values automatically. + Using this event, you can put additional values to the matrix or even completely fill it + with own values (if is set to null. To do this, call the + Data.AddValue method. See the + method for more details. + + This example shows how to fill a matrix with own values. + + // suppose we have a matrix with one column, row and data cell. + // provide 3 one-dimensional arrays with one element in each to the AddValue method + Matrix1.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Andrew Fuller" }, + new object[] { 21.35f }); + Matrix1.Data.AddValue( + new object[] { 1997 }, + new object[] { "Nancy Davolio" }, + new object[] { 421.5f }); + + // this code will produce the following matrix: + // | 1996 | 1997 | + // --------------+--------+--------+ + // Andrew Fuller | 123.45| 21.35| + // --------------+--------+--------+ + // Nancy Davolio | | 421.50| + // --------------+--------+--------+ + + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Allows to modify the prepared matrix elements such as cells, rows, columns. + + + + + Gets or sets a value that determines whether the matrix must calculate column/row sizes automatically. + + + + + Gets or sets a value that determines how to print multiple data cells. + + + This property can be used if matrix has two or more data cells. Default property value + is false - that means the data cells will be stacked. + + + + + Gets or sets a value indicating that the side-by-side cells must be kept together on the same page. + + + + + Gets or sets a data source. + + + When you create the matrix in the designer by drag-drop data columns into it, + this property will be set automatically. However you need to set it if you create + the matrix in code. + + + + + Gets the row filter expression. + + + This property can contain any valid boolean expression. If the expression returns false, + the corresponding data row will be skipped. + + + + + Gets or sets a value indicating whether to show a title row. + + + + + Gets or sets a matrix style. + + + + + Gets or sets even style priority for matrix cells. + + + + + Gets or sets need split rows. + + + + + Gets or sets a value indicating that empty matrix should be printed. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets or sets a script method name that will be used to handle the + event. + + + See the event for more details. + + + + + Gets the object that holds the collection of descriptors used + to build a matrix. + + + See the class for more details. + + + + + Gets or sets array of values that describes the currently printing column. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing column. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.ColumnValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (int)Matrix1.ColumnValues[0] == 2000. + + + + + + + + Gets or sets array of values that describes the currently printing row. + + + Use this property when report is running. It can be used to highlight matrix elements + depending on values of the currently printing row. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition. Use the Matrix.RowValues to + refer to the value you need to analyze. Note: these values are arrays of System.Object, + so you need to cast it to actual type before making any comparisons. Example of highlight + condition: (string)Matrix1.RowValues[0] == "Andrew Fuller". + + + + + + + + Gets or sets the index of currently printing column. + + + This property may be used to print even columns with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.ColumnIndex, + for example: Matrix1.ColumnIndex % 2 == 1. + + + + + + + + Gets or sets the index of currently printing row. + + + This property may be used to print even rows with alternate color. To do this: + + + select the cell that you need to highlight; + + + click the "Highlight" button on the "Text" toolbar; + + + add a new highlight condition that uses the Matrix.RowIndex, + for example: Matrix1.RowIndex % 2 == 1. + + + + + + + + + + + + + + + + + Creates or updates the matrix template. + + + Call this method after you modify the matrix descriptors using the + object's properties. + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + This method fires the ModifyResult event and the script code connected to the ModifyResultEvent. + + Event data. + + + + This method fires the AfterTotals event and the script code connected to the AfterTotalsEvent. + + Event data. + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + This is a shortcut method to call the matrix Data.AddValue. + See the method for more details. + + + + + Gets the value of the data cell with the specified index. + + Zero-based index of the data cell. + The cell's value. + + Use this method in the cell's expression if the cell has custom totals + (the total function is set to "Custom"). The example: + Matrix1.Value(0) / Matrix1.Value(1) + will return the result of dividing the first data cell's value by the second one. + + + + + Initializes a new instance of the class. + + + + + Specifies the aggregate function used in the . + + + + + No aggregates are used. + + + + + Specifies the sum of values. + + + + + Specifies the minimum of values. + + + + + Specifies the maximum of values. + + + + + Specifies the average of values. + + + + + Specifies the count of values. + + + + + Specifies the count of distinct values. + + + + + Specifies the custom function. + + + + + Determines how matrix percents are calculated. + + + + + Do not calculate percent value. + + + + + Calculate percent of the column total value. + + + + + Calculate percent of the row total value. + + + + + Calculate percent of the grand total value. + + + + + The descriptor that is used to describe one matrix data cell. + + + The class is used to define one data cell of the matrix. + The key properties are and . + To set visual appearance of the data cell, use the + property. + The collection of descriptors used to represent the matrix data cells is stored + in the MatrixObject.Data.Cells property. + + + + + Gets or sets an aggregate function used to calculate totals for this cell. + + + + + Gets or sets a value that determines how to calculate the percent value for this cell. + + + + + + + + + + + Initializes a new instance of the class + with default settings. + + + + + Initializes a new instance of the class + with specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class + with specified expression and aggregate function. + + The descriptor's expression. + The aggregate function. + + + + Initializes a new instance of the class + with specified expression, aggregate function, and a percent. + + The descriptor's expression. + The aggregate function. + The percent setting. + + + + Represents a collection of matrix data descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + + + + + + + Contains a set of properties and methods to hold and manipulate the matrix descriptors. + + + This class contains three collections of descriptors such as , + and . Use collections' methods to add/remove + descriptors. When you are done, call the + method to refresh the matrix. + To fill a matrix in code, use the AddValue method. + + + + + Gets a collection of column descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of row descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Gets a collection of data cell descriptors. + + + Note: after you change something in this collection, call the + method to refresh the matrix. + + + + + Clears all descriptors. + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + + The number of elements in an array passed to this method must be the same as + a number of descriptors in the appropriate collection. That is, if your matrix + has one column, two row and one cell descriptors (in Columns, Rows and + Cells collections respectively), you have to pass one-element array for the + columnValues param, two-element array for the rowValues and one-element + array for the cellValues. + + This example demonstrates how to fill a simple matrix that contains one column, + row and cell. + + MatrixObject matrix; + matrix.Data.AddValue( + new object[] { 1996 }, + new object[] { "Andrew Fuller" }, + new object[] { 123.45f }); + + // this will produce the following result: + // | 1996 | + // --------------+----------+ + // Andrew Fuller | 123.45| + // --------------+----------+ + + + + + + Adds a value in the matrix. + + Array of column values. + Array of row values. + Array of data values. + Datasource row index. + + See the method for more details. + + + + + Gets a value with specified column, row and cell indicies. + + Index of a column. + Index of a row. + Index of a cell. + The value of a cell. + + + + Sets the cell's value. + + Index of a column. + Index of a row. + The new value. + + + + The base class for matrix element descriptors such as and + . + + + + + Gets or sets an expression which value will be used to fill the matrix. + + + Expression may be any valid expression. Usually it's a data column: + [DataSource.Column]. + + + + + Gets or sets the template column bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to this descriptor. + + + Using this property, you may access the matrix cell which is bound to + this descriptor. It may be useful to change the cell's appearance. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + + + MatrixObject matrix; + // change the fill color of the first matrix cell + matrix.Data.Cells[0].TemplateCell.Fill = new SolidFill(Color.Red); + + + + + + Assigns values from another descriptor. + + Descriptor to assign values from. + + + + + + + + + + Represents a collection of matrix header descriptors used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified descriptors to the end of this collection. + + Array of descriptors to add. + + + + Adds a descriptor to the end of this collection. + + Descriptor to add. + Index of the added descriptor. + + + + Inserts a descriptor into this collection at the specified index. + + The zero-based index at which value should be inserted. + The descriptor to insert. + + + + Removes the specified descriptor from the collection. + + Descriptor to remove. + + + + Returns the zero-based index of the first occurrence of a descriptor. + + The descriptor to locate in the collection. + The zero-based index of the first occurrence of descriptor within + the entire collection, if found; otherwise, -1. + + + + Determines whether a descriptor is in the collection. + + The descriptor to locate in the collection. + true if descriptor is found in the collection; otherwise, false. + + + + Copies the elements of this collection to a new array. + + An array containing copies of this collection elements. + + + + Gets the list of indices of terminal items of this header. + + The list of indices. + + + + Gets the list of indices of terminal items of the header with specified address. + + The address of a header. + The list of indices. + + + + Removes a header item with the address specified. + + The address of a header. + + + + Gets an index of header with the address specified. + + The address of a header. + The index of header. + + + + Gets an index of header with the address specified. If there is no such header item, it will be created. + + The address of a header. + The index of header. + + + + + + + + + + The descriptor that is used to describe one element of the matrix header. + + + The class is used to define one header element of the matrix + (either the column element or row element). The key properties are + , and . + To set visual appearance of the element, use the + property. To set visual appearance of the "total" element, use the + property. + The collection of descriptors used to represent the matrix header is stored + in the MatrixObject.Data.Columns and MatrixObject.Data.Rows properties. + + + + + Gets or sets the sort order of header values. + + + This property determines how the values displayed in this element are sorted. The default sort + is ascending. + + + + + Gets or sets a value indicating that this element has associated "total" element. + + + To access the matrix cell that is bound to the "Total" element, use the + property. It may be useful to change the + "Total" text by something else. + + This example shows how to change the "Total" text of the total element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + + + + + + Gets or sets the value indicating whether the total values must be printed before the data. + + + + + Gets or sets a value indicating that the page break must be printed before this element. + + + Page break is not printed before the very first element. + + + + + Gets or sets a value that determines whether it is necessary to suppress totals + if there is only one value in a group. + + + + + Gets or sets the template column bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template row bound to the "total" element of this descriptor. + + + This property is for internal use; usually you don't need to use it. + + + + + Gets or sets the template cell bound to the "total" element of this descriptor. + + + This property may be useful to change the "Total" text by something else. + + Before using this property, you must initialize the matrix descriptors by + calling the method. + + + This example shows how to change the "Total" element. + + MatrixObject matrix; + matrix.Data.Rows[0].TemplateTotalCell.Text = "Grand Total"; + matrix.Data.Rows[0].TemplateTotalCell.Fill = new SolidFill(Color.Green); + + + + + + + + + + + + Initializes a new instance of the class with + default settings. + + + + + Initializes a new instance of the class with + specified expression. + + The descriptor's expression. + + + + Initializes a new instance of the class with + specified expression and totals. + + The descriptor's expression. + Indicates whether to show the "total" element. + + + + Initializes a new instance of the class with + specified expression, sort order and totals. + + The descriptor's expression. + Sort order used to sort header values. + Indicates whether to show the "total" element. + + + + Updates HeaderWidth, HeaderHeight, BodyWidth, BodyHeight properties. + + + + + Describes how the even style is applied to a matrix. + + + + + The even style is applied to matrix rows. + + + + + The even style is applied to matrix columns. + + + + + Represents the chart object based on Microsoft Chart control. + + + FastReport uses Microsoft Chart library to display charts. This library is included + in .Net Framework 4.0. For .Net 3.5 it is available as a separate download here: + http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c + This library requires .Net Framework 3.5 SP1. + To access Microsoft Chart object, use the property. It allows you + to set up chart appearance. For more information on available properties, refer to the + MS Chart documentation. + Chart object may contain one or several series. Each series is represented by two objects: + + + the Series that is handled by MS Chart. It is stored in the + Chart.Series collection; + + + the object that provides data for MS Chart series. + It is stored in the collection. + + + Do not operate series objects directly. To add or remove series, use + the and methods. These methods + handle Series and MSChartSeries in sync. + If you have a chart object on your Form and want to print it in FastReport, use + the method. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of objects. + + + + + Gets a reference to the MS Chart object. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the data source. + + + + + Gets or sets the filter expression. + + + This filter will be applied to all series in chart. You may also use the series' + property to filter each series individually. + + + + + Gets or sets a value indicating that all series' data point should be aligned by its X value. + + + Using this property is necessary to print stacked type series. These series must have + equal number of data points, and the order of data points must be the same for all series. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or set the color for auto-series. + + + If no color is specified, the new series will use the palette defined in the chart. + + + + + Gets or sets sort order for auto-series. + + + + + + + + Adds a new series. + + The type of series. + The new MSChartSeries object. + + + + Deletes a series at a specified index. + + Index of series. + + + + Assigns chart appearance, series and data from the + System.Windows.Forms.DataVisualization.Charting.Chart object. + + Chart object to assign data from. + + Use this method if you have a chart in your application and want to print it in FastReport. + To do this, put an empty MSChartObject in your report and execute the following code: + + report.Load("..."); + MSChartObject reportChart = report.FindObject("MSChart1") as MSChartObject; + reportChart.AssignChart(applicationChart); + report.Show(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Represents the small chart object (called sparkline) fully based on MSChartObject. + + + + + + + + + + + Initializes a new instance of the with default settings. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Specifies how the series points are sorted. + + + + + Points are not sorted. + + + + + Points are sorted by X value. + + + + + Points are sorted by Y value. + + + + + Specifies the direction in which the series points are sorted. + + + + + Points are sorted in ascending order. + + + + + Points are sorted in descending order. + + + + + Specifies how the series points are grouped. + + + + + Points are not grouped. + + + + + Points are grouped by X value. + + + + + Points are grouped by number specified in the . + + + + + Points are grouped by Years. + + + + + Points are grouped by Months. + + + + + Points are grouped by Weeks. + + + + + Points are grouped by Days. + + + + + Points are grouped by Hours. + + + + + Points are grouped by Minutes. + + + + + Points are grouped by Seconds. + + + + + Points are grouped by Milliseconds. + + + + + Specifies which pie value to explode. + + + + + Do not explode pie values. + + + + + Explode the biggest value. + + + + + Explode the lowest value. + + + + + Explode the value specified in the property. + + + + + Specifies which data points to collect into one point. + + + + + Do not collect points. + + + + + Show top N points (N value is specified in the + property), collect other points into one. + + + + + Show bottom N points (N value is specified in the + property), collect other points into one. + + + + + Collect points which have Y value less than specified + in the property. + + + + + Collect points which have Y value less than percent specified + in the property. + + + + + Collect points which have Y value greater than specified + in the property. + + + + + Collect points which have Y value greater than percent specified + in the property. + + + + + Represents a MS Chart series wrapper. + + + This class provides a data for MS Chart series. The series itself is stored inside the + MS Chart and is accessible via the property. + You don't need to create an instance of this class directly. Instead, use the + method. + + + + + Gets os sets the data filter expression. + + + The filter is applied for this series only. You can also use the + property to set a filter that will be applied to all + series in a chart. + + + + + Gets or set the data column or expression for automatically created series. + + + In order to create auto-series, you need to define one series that will be used as a + template for new series, and set up the property. + The value of this property will be a name of new series. If there is no series + with such name yet, the new series will be added. + + + + + Gets or sets the sort method used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or set Force automatically created series. + + + + + Gets or sets the sort order used to sort data points. + + + You have to specify the property as well. Data points in this series + will be sorted according selected sort criteria and order. + + + + + Gets or sets the group method used to group data points. + + + This property is mainly used when series is filled with data with several identical X values. + In this case, you need to set the property to XValue. All identical data points will be + grouped into one point, their Y values will be summarized. You can choose the summary function + using the property. + + + + + Gets or sets the group interval. + + + This value is used if property is set to Number. + + + + + Gets or sets the function used to group data points. + + + + + Gets or sets the collect method used to collect several data points into one. + + + This instrument for data processing allows to collect several series points into one point. + The collected point will be displaed using the text specified in the + property and color specified in the property. + For example, to display top 5 values, set this property to TopN and specify + N value (5) in the property. + + + + + Gets or sets the collect value used to collect several data points into one. + + + This property is used if the property is set to any value other than None. + + + + + Gets or sets the text for the collected value. + + + + + Gets or sets the color for the collected value. + + + If this property is set to Transparent (by default), the default palette color + will be used to display a collected point. + + + + + Gets or sets the method used to explode values in pie-type series. + + + + + Gets or sets the value that must be exploded. + + + This property is used if property is set + to SpecificValue. + + + + + Gets or sets the data column or expression that returns the X value of data point. + + + + + Gets or sets the data column or expression that returns the first Y value of data point. + + + + + Gets or sets the data column or expression returns the second Y value of data point. + + + + + Gets or sets the data column or expression returns the third Y value of data point. + + + + + Gets or sets the data column or expression returns the fourth Y value of data point. + + + + + Gets or sets the data column or expression that returns the color of data point. + + + + + Gets or sets the data column or expression returns the label value of data point. + + + + + Gets a reference to MS Chart Series object. + + + Use this property to set many options available for the Series object. These options + include: visual appearance, labels, marks, value types. Refer to the Microsoft Chart control + documentation to learn more. + + + + + Gets a number of Y value per data point. + + + Number of Y values depends on series type. Most of series have only one Y value. Financial + series such as Stock and Candlestick, use four Y values. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Clears all data points in this series. + + + + + Adds a data point with specified X and Y values. + + X value. + Array of Y values. + + Note: number of values in the yValues parameter must be the same as value returned + by the property. + + + + + + + + Creates a new instance of the class with default settings. + + + + + Represents a collection of objects. + + + + + Gets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Resets series data. + + + + + Processes the current data row. + + + + + Finishes the series data. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + SVG object + + + + + + + + + + + + + + Invokes the object's editor. + + true if object was edited succesfully. + + + + Gets or sets svg document + + + + + Gets or sets ViewBox value + + + + + Gets or sets AspectRatio value + + + + + + + + Gets or sets grayscale svg document + + + + + Gets or sets a value indicating that the image should be displayed in grayscale mode. + + + + + Returns SVG string + + + + + + + + + + + + + + + + + + + + + + + Returns clone of this object + + + + + + Sets svg object by SvgDocument + + SVG document + + + + Sets svg object from specified path + + path to SVG file + + + + Sets svg object from svg string + + SVG string + + + + Initializes a new instance of the class with default settings. + + + + + Represents a table row. + + + Use the property to set the height of a row. If + property is true, the row will calculate its height automatically. + You can also set the and properties + to restrict the row's height. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a height of the row, in pixels. + + + The row height cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal height for this row, in pixels. + + + + + Gets or sets the maximal height for this row, in pixels. + + + + + Gets or sets a value determines if the row should calculate its height automatically. + + + The row height cannot exceed the range defined by the + and properties. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets the index of this row. + + + + + + + + Gets or sets the cell with specified index. + + Column index. + The TableCell object. + + + + Gets or sets the page break flag for this row. + + + + + Gets or sets the number of rows to keep on the same page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table object that consists of several rows and columns. + + + To add/remove columns, use the collection. To add/remove + rows, use the collection. To initialize a table with specified number of + columns and rows, use and properties. + To print a table in code, use the event. In the manual build + mode, you can use aggregate functions. The following functions available: + + + Aggregate function + Description + + + Sum(cell) + Calculates the sum of values in specified table cell. + + + Min(cell) + Calculates the minimum of values in specified table cell. + + + Max(cell) + Calculates the maximum of values in specified table cell. + + + Avg(cell) + Calculates the average of values in specified table cell. + + + Count(cell) + Calculates the number of repeats of a specified table cell. + + + To print aggregate value, place the aggregate function call in the table cell: + [Count(Cell2)]. + + + + + + + + + + + + + + + + + + + + + + + Allows to print table rows/columns dynamically. + + + This event is used to handle the table print process in a code. Using special methods + like , you can print specified rows/columns. + + First way is to repeat specified row(s) to get a table that will grow downwards. + To do this, you have to call the PrintRow method followed by the PrintColumns method. + + Another way is to repeat the specified column(s) to get a table that grows sidewards. + To do this, call the PrintColumn method followed by the PrintRows method. + + Finally, the third way is to repeat rows and columns. The table will grow downwards and + sidewards. To do this, call the PrintRow method followed by the PrintColumn + method (or vice versa). + + + + When you print a table row-by-row, you must call one of the PrintColumn, + PrintColumns methods right after the PrintRow method. + In the same manner, when you print a table column-by-column, call one of the + PrintRow, PrintRows methods right after the PrintColumn method. + If you ignore this rule you will get an exception. + + + + In this example, we will consider all three ways to print a table which has 3 rows and 3 columns. + Case 1: print a table downwards. + + // print table header (the first row) + Table1.PrintRow(0); + Table1.PrintColumns(); + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + Table1.PrintRow(1); + Table1.PrintColumns(); + } + // print table footer (the third row) + Table1.PrintRow(2); + Table1.PrintColumns(); + + + Case 2: print a table sidewards. + + // print table header (the first column) + Table1.PrintColumn(0); + Table1.PrintRows(); + // print table body (the second column) + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + Table1.PrintRows(); + } + // print table footer (the third column) + Table1.PrintColumn(2); + Table1.PrintRows(); + + + Case 3: print a table downwards and sidewards. + + // print the first row with all its columns + Table1.PrintRow(0); + // print header column + Table1.PrintColumn(0); + // print 10 data columns + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + // print footer column + Table1.PrintColumn(2); + + // print table body (the second row) + for (int i = 0; i < 10; i++) + { + // print data row with all its columns + Table1.PrintRow(1); + Table1.PrintColumn(0); + for (int j = 0; j < 10; j++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + } + + // print table footer (the third row) + Table1.PrintRow(2); + // again print all columns in the table footer + Table1.PrintColumn(0); + for (int i = 0; i < 10; i++) + { + Table1.PrintColumn(1); + } + Table1.PrintColumn(2); + + + + + + Gets or sets a script method name that will be used to handle the + event. + + + If you use this event, you must handle the table print process manually. + See the event for details. + + + + + Determines whether to manage cell spans automatically during manual build. + + + The default value for this property is true. If you set it to false, you need to manage + spans in your ManualBuild event handler. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method fires the ManualBuild event and the script code connected to the ManualBuildEvent. + + Event data. + + + + Prints a row with specified index. + + Index of a row to print. + + See the event for more details. + + + + + Prints rows with specified indices. + + Indices of rows to print. + + See the event for more details. + + + + + Prints all rows. + + + See the event for more details. + + + + + Prints a column with specified index. + + Index of a column to print. + + See the event for more details. + + + + + Prints columns with specified indices. + + Indices of columns to print. + + See the event for more details. + + + + + Prints all columns. + + + See the event for more details. + + + + + Adds a page before rows or columns. + + + Call this method to insert a page break before the next row or column that you intend to print + using PrintRow(s) or PrintColumn(s) methods. + See the event for more details. + + + + + Initializes a new instance of the class. + + + + + Represents a table column. + + + Use the property to set the width of a column. If + property is true, the column will calculate its width automatically. + You can also set the and properties + to restrict the column's width. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + Gets or sets a width of the column, in pixels. + + + The column width cannot exceed the range defined by the + and properties. + To convert between pixels and report units, use the constants defined + in the class. + + + + + Gets or sets the minimal width for this column, in pixels. + + + + + Gets or sets the maximal width for this column, in pixels. + + + + + Gets or sets a value determines if the column should calculate its width automatically. + + + The column width cannot exceed the range defined by the + and properties. + + + + + Gets the index of this column. + + + + + + + + Gets or sets the page break flag for this column. + + + + + Gets or sets the number of columns to keep on the same page. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents a table cell. + + + Use , properties to set the cell's + column and row spans. To put an object inside the cell, use its property: + + TableCell cell1; + PictureObject picture1 = new PictureObject(); + picture1.Bounds = new RectangleF(0, 0, 32, 32); + picture1.Name = "Picture1"; + cell1.Objects.Add(picture1); + + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of objects contained in this cell. + + + + + Gets or sets the column span for this cell. + + + + + Gets or sets the row span for this cell. + + + + + + + + Gets the address of this cell. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + + + + Gets the TableBase object which this cell belongs to. + + + + + + + + Creates the exact copy of this cell. + + The copy of this cell. + + + + Determines if two cells have identical settings. + + Cell to compare with. + true if cells are equal. + + + + + + + Changes the cell's style. + + The new style. + + Each cell in a dynamic table object (or in a matrix) has associated style. + Several cells may share one style. If you try to change the cell's appearance directly + (like setting cell.TextColor), it may affect other cells in the table. + To change the single cell, use this method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + The base class for table-type controls such as and + . + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + This property is not relevant to this class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection of table rows. + + + + + Gets a collection of table columns. + + + + + Gets or sets the number of fixed rows that will be repeated on each page. + + + + + Gets or sets the number of fixed columns that will be repeated on each page. + + + + + Gets or sets a value that determines whether is necessary to repeat table header on each page. + + + To define a table header, set the and + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Row header on each page. + + + To define a table Row header, set the + properties. + + + + + Gets or sets a value that determines whether is necessary to repeat table Column header on each page. + + + To define a table Column header, set the + properties. + + + + + Gets or sets the table layout. + + + This property affects printing the big table that breaks across pages. + + + + + Gets or sets gap between parts of the table in wrapped layout mode. + + + This property is used if you set the property to Wrapped. + + + + + Gets or sets a value that determines whether to adjust the spanned cell's width when breaking the table across pages. + + + If set to true, the spanned cell's width will be adjusted to accomodate all contained text. + + + + + Gets or sets the table cell. + + Column index. + Row index. + The TableCell object that represents a cell. + + + + Gets or sets a number of columns in the table. + + + + + Gets or sets a number of rows in the table. + + + + + Gets a table which contains the result of rendering dynamic table. + + + Use this property to access the result of rendering your table in dynamic mode. + It may be useful if you want to center or right-align the result table on a page. + In this case, you need to add the following code at the end of your ManualBuild event handler: + + // right-align the table + Table1.ResultTable.Left = Engine.PageWidth - Table1.ResultTable.CalcWidth() - 1; + + + + + + + + + + + + + + + Gets data of the table cell with specified column and row numbers. + + The column number. + The row number. + TableCellData instance containing data of the table cell. + + + + Creates unique names for all table elements such as rows, columns, cells. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates and returns the table width, in pixels. + + + + + + + + + + + Calculates a sum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a minimum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates a maximum of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates an average of values in a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Calculates number of repeats of a specified cell. + + The cell. + The object that contains calculated value. + + This method can be called from the ManualBuild event handler only. + + + + + Initializes a new instance of the class. + + + + + Specifies the layout that will be used when printing a big table. + + + + + The table is printed across a pages then down. + + + + + The table is printed down then across a pages. + + + + + The table is wrapped. + + + + + Represents data of the table cell. + + + + + Gets or sets parent table of the cell. + + + + + Gets or sets objects collection of the cell. + + + + + Gets or sets text of the table cell. + + + + + Gets or sets value of the table cell. + + + + + Gets or sets hyperlink value of the table cell. + + + + + Gets or sets column span of the table cell. + + + + + Gets or sets row span of the table cell. + + + + + Gets or sets the address of the table cell. + + + + + Gets the table cell. + + + + + Gets style of table cell. + + + + + Gets original the table cell. + + + + + Gets width of the table cell. + + + + + Gets height of the table cell. + + + + + Initializes a new instance of the class. + + + + + Attaches the specified table cell. + + The table cell instance. + This method is called when we load the table. + + + + Assigns another instance. + + The table cell data that used as a source. + This method is called when we copy cells or clone columns/rows in a designer. + + + + Assigns another instance at run time. + + The table cell data that used as a source. + This flag shows should children be copied or not. + This method is called when we print a table. We should create a copy of the cell and set the style. + + + + Sets style of the table cell. + + The new style of the table cell. + + + + Disposes the instance. + + + + + Calculates width of the table cell. + + The value of the table cell width. + + + + Calculates height of the table cell. + + The width of the table cell. + The value of the table cell height. + + + + Updates layout of the table cell. + + The width of the table cell. + The height of the table cell. + The new value of x coordinate. + The new value of y coordinate. + + + + Represents a collection of objects. + + + + + Gets a column with specified index. + + Index of a column. + The column with specified index. + + + + + + + + + + Represents a result table. + + + Do not use this class directly. It is used by the and + objects to render a result. + + + + + Occurs after calculation of table bounds. + + + You may use this event to change automatically calculated rows/column sizes. It may be useful + if you need to fit dynamically printed table on a page. + + + + + + + + + + + Creates a new instance of the class. + + + + + Represents a collection of objects. + + + + + Gets a row with specified index. + + Index of a row. + The row with specified index. + + + + + + + + + + Represents the "Blank Report" wizard. + + + + + + + + Represents the "Inherited Report" wizard. + + + + + + + + Represents the "Label" wizard. + + + + + Gets a selected label manufacturer. + + + + + Gets a selected label name. + + + + + Gets the XML item containing a selected label parameters. + + + + + + + + Initializes a new instance of the class with the default settings. + + + + + Represents the "New Data Source" wizard. + + + + + + + + Represents the "Standard Report" wizard. + + + + + + + + The base class for all report wizards. + + + To create own wizard, use this class as a base. All you need is to override + the method. To register a wizard, use the + method. + + + + + Runs the wizard. + + Report designer. + true if wizard was executed succesfully. + + This method is called when you select a wizard in the "Add New Item" window and + click "Add" button. You should do the work in this method. + + + + + Represents the "New Dialog" wizard. + + + + + + + + Represents the "New Page" wizard. + + + + + + + + Represents a RichText object that can display formatted text. + + + Use the property to set the object's text. The text may include + the RTF formatting tags. + + + + + + + + + + + + + + Gets or sets the object's text. + + + This property returns the formatted text with rtf tags. + + + + + Gets or sets a name of the data column bound to this control. + + + Value must contain the datasource name, for example: "Datasource.Column". + + + + + Gets the actual text start. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets the actual text length. + + + This property is for internal use only; you should not use it in your code. + + + + + Gets or sets the break style. + + + Set this property to true if you want editable rich text when you edit the prepared report page. + + + + + Experimental feature for translation of RichText into report objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + The DIGEST-MD5 SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + + + + The PLAIN SASL authentication mechanism. + + + + + The mechanism name. + + + + + Initializes a new instance of the class. + + The username. + The user's password. + + + + Computes the client response for server challenge. + + The challenge from server. Usually empty for PLAIN mechanism. + The response from client. + + + + The base abstarct class for all SASL mechanisms. + + + + + Gets or sets the name of mechanism. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + The username. + The user's password. + + + + Computes client response for server challenge. + + The server challenge. + The client response. + + + + Gets the base64-encoded client response fo the server challenge. + + The base64-string containing server challenge. + The base64-string containing client response. + + + + Gets the client response for the server challenge. + + Byte array containing server challenge. + Byte array containing client response. + + + + The base class for all messengers. + + + + + Gets the filename. + + + + + Gets or sets the proxy settings. + + + + + Initializes a new instance of the class. + + + + + Authorizes the user. + + True if user has been successfully authorized. + + + + Prepares the report before it will be send. + + The report template. + The export filter. + Memory stream that contains prepared report. + + + + Sends the report. + + The report template that should be sent. + The export filter that should export template before. + True if report has been successfully sent. + + + + Represents form of messenger. + + + + + Gets or sets the report template. + + + + + Gets or sets the list of exports. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The report template. + + + + Initializes the list of exports. + + + + + Gets the proxy settings. + + The proxy settings. + + + + Initializes the component. + + + + + Checks is the string numeric. + + The checking string. + True if string is numeric, otherwise false. + + + + Finishes the form work. + + Returns true if work has been successfully finished, otherwise false. + + + + + + + SelectedIndexChanged event handler for ComboBox File Type. + + Event sender. + Event args. + + + + Click event handler for Button Settings. + + Event sender. + Event args. + + + + FormClosing event handler for CloudStorageClientForm. + + Event sender. + Event args. + + + + Click event handler for button OK. + + Event sender. + Event args. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Page File. + + + + + Page Proxy. + + + + + ComboBox File Type. + + + + + Label File Type. + + + + + Buttons Settings. + + + + + Label Colon. + + + + + Label Password. + + + + + Label Username. + + + + + Label Server. + + + + + TextBox Username. + + + + + TextBox Port. + + + + + TextBox Server. + + + + + TextBox Password. + + + + + PageControl pageControl1. + + + + + Represents proxy settings of the messenger. + + + + + Gets or sets the proxy server. + + + + + Gets or sets the port number of proxy server. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the type of proxy. + + + + + Initializes a new instance of the class. + + The proxy server. + The port number of server. + The username. + The user's password. + The type of proxy. + + + + Represents the type of rpoxy. + + + + + The HTTP proxy type. + + + + + The SOCKS4 proxy type. + + + + + The SOCKS5 proxy type. + + + + + Represents the IQ stanza. + + + + + Gets or sets the type of iq. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the iq. + The type of iq. + The JID of the sender. + The JID of the recipient. + The ID of the iq. + The language of the iq. + The data of the iq. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP message. + + + + + Gets or sets the type of message. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the message. + The type of message. + The JID of the sender. + The JID of the recipient. + The ID of the message. + The language of the message. + The data of the message. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the XMPP Presence. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the presence. + The JID of the sender. + The JID of the recipient. + The ID of the presence. + The language of the presence. + The data of the presence. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Represents the base class for XML stanzas used in XMPP. + + + + + Gets the data of the stanza. + + + + + Gets or sets the JID of the sender. + + + + + Gets or sets the JID of the recipient. + + + + + Gets or sets the ID of the stanza. + + + + + Gets or sets the language of the stanza. + + + + + Initializes a new instance of the class with specified parameters. + + The namespace of the stanza. + The JID of the sender. + The JID of the recipient. + The ID of the stanza. + The language of the stanza. + The data of the stanza. + + + + Initializes a new instance of the class using specified XmlElement instance. + + The XmlElement instance using like a data. + + + + Converts stanza to string. + + String containing stanza value. + + + + The parser for XMPP XML-streams. + + + + + Initializes a new instance of the class. + + The stream for parsing. + True to leave the stream opened after closing the StreamReader instance. + + + + Read the XML stream up to opening "stream:stream" tag. + + + + + Reads the next XML element from the stream. + + The list of XML elements that are expected. + The XML element. + + + + Closes the stream parser. + + + + + Releases all resources used by the current instance of the class. + + + + + Represents a static class to simplify the work with XmlElement instance. + + + + + Creates a new XmlElement instance. + + The name of the element. + The namespace of the element. + A new instance of the class. + + + + Adds the specified child to the end of child nodes of element. + + The element for add the child to. + The child node to add. + A XmlElement instance. + + + + Adds the attribute to XmlElement with spefied name and value. + + The element for add the attribute to. + The name of attribute. + The value of attribute. + A XmlElement instance. + + + + Adds the specified text to the end of child nodes of element. + + The element for add the text to. + The text for add. + A XmlElement instance. + + + + Converts the XmlElement instance to a string. + + The element to convert to. + True if needed to include XML declaration. + True if needed to leave the tag of an empty element open. + The XmlElement instance as string. + + + + Represents the XMPP messenger. + + + + + Gets or sets the username. + + + + + Gets or sets the user's password. + + + + + Gets or sets the hostname of XMPP server. + + + + + Gets or sets the port number of the XMPP service of the server. + + + + + Gets or sets the username to send file to. + + + + + Gets or sets the JID to send from. + + + + + Gets or set the JID to send to. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + Username. + Password. + Hostname. + Port. + Username to send file to. + Send to user's resource. + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + JID to send to with resource. + + + + Sends the specified string to the server. + + The string to send. + + + + Initiates the stream to the server. + + The hostname. + The features response of the server. + + + + Validates the server certificate. + + The sender object. + X509 certificate. + The X509 chain. + The SSL policy errors. + True if successfull. + + + + Secures the stream by TLS. + + The hostname. + The features response of the server. + + + + Selects the SASL authentication mechanism. + + List of mechanisms. + The string containing mechanism name. + + + + Authenticates the user on the server using Plain mechanism. + + + + + Authenticates the user on the server using Digest-MD5 mechanism. + + + + + Authenticates the user on the server. + + The SASL mechanisms list. + + + + Setups the connection with the server. + + + + + Binds resource and gets the full JID that will be associated with current session. + + The full session JID. + + + + Opens session between client and server. + + The id of the opened session. + + + + Connects to the server. + + + + + Sends the message. + + The text of the message. + True if message has been successfully sent. + + + + Sends the presence. + + The text of the presence. + True if presence has been successfully sent. + + + + Initiates the In Band Bytestream for sending the file (XEP-0047). + + True if bytestream has been successfully initiated. + + + + Sends the chunk to the XMPP server. + + The data of the chunk. + The number of the chunk. + + + + Sends the file using In Band Bytestream. + + The memory stream containing data of the file. + True if file has been successfully sent. + + + + Sends the file using FastReport Cloud as a proxy server. + + The report template. + The export filter to export report before sending. + True if file has been successfully sent. + + + + Disconnects from the server. + + + + + + + + + + + Closes the connection. + + + + + Releases all the resources used by the XMPP messenger. + + + + + Represents the form of the XMPP messenger. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + User's JID without resource. + User's password. + Send to user's JID. + Report template. + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Provides a type converter for a property representing a reference to another component in a report. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a value measured in the current report units. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing an expandable object. + + + + + + + + + + + + + + + + + Provides a type converter for a property representing a data type. + + + + + + + + + + + + + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + The FastReport.dll assembly initializer. + + + + + Registers all core objects, wizards, export filters. + + + + + Represents a collection of bands. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + Owner that owns this collection. + + + + The layout of the data band columns. + + + + + Print columns across then down. + + + + + Print columns down then across. + + + + + This class holds the band columns settings. It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + The column width, in pixels. + + + + + Gets or sets the layout of the columns. + + + + + Gets or sets the minimum row count that must be printed. + + + This property is used if the Layout property is set to DownThenAcross. 0 means that + FastReport should calculate the optimal number of rows. + + + + + Assigns values from another source. + + Source to assign from. + + + + Initializes a new instance of the BandColumns class with default settings. + + + + + Specifies a set of actions that cannot be performed on the object in the design mode. + + + + + Specifies no restrictions. + + + + + Restricts moving the object. + + + + + Restricts resizing the object. + + + + + Restricts modifying the object's properties. + + + + + Restricts editing the object. + + + + + Restricts deleting the object. + + + + + Hides all properties of the object. + + + + + Specifies a set of actions that can be performed on the object in the design mode. + + + + + Specifies no actions. + + + + + Allows moving the object. + + + + + Allows resizing the object. + + + + + Allows deleting the object. + + + + + Allows editing the object. + + + + + Allows changing the Z-order of an object. + + + + + Allows moving the object to another parent. + + + + + Allows copying the object to the clipboard. + + + + + Allows drawing the object. + + + + + Allows grouping the object. + + + + + Allows write children in the preview mode by itself. + + + + + Allows write object's bounds into the report stream. + + + + + Allows the "smart tag" functionality. + + + + + Specifies that the object's name is global (this is true for all report objects + such as Text, Picture and so on). + + + + + Specifies that the object can display children in the designer's Report Tree window. + + + + + Specifies that the object supports mouse wheel in the preview window. + + + + + Specifies the style of a border line. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a double line. + + + + + Specifies the sides of a border. + + + + + Specifies no border lines. + + + + + Specifies the left border line. + + + + + Specifies the right border line. + + + + + Specifies the top border line. + + + + + Specifies the bottom border line. + + + + + Specifies all border lines. + + + + + Represents a single border line. + + + + + Gets or sets a color of the line. + + + + + Gets or sets a style of the line. + + + + + Gets or sets a width of the line, in pixels. + + + + + + + + + + + Represents a border around the report object. + + + Border consists of four lines. Each line has own color, style and width. Lines are accessible through + , , , properties. + + To turn on and off the lines, use the property. To set the same color, style or width + for each line, use , , properties of the Border. + + + + + Gets or sets a color of the border. + + + This property actually returns a color of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a value determines whether to draw a shadow. + + + + + Gets or sets a shadow width, in pixels. + + + + + Gets or sets a shadow color. + + + + + Gets or sets a style of the border. + + + This property actually returns a style of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets a visible lines of a border. + + + + + Gets or sets a width of the border, in pixels. + + + This property actually returns a width of the . When you assign a value + to this property, the value will be set to each border line. + + + + + Gets or sets the left line of the border. + + + + + Gets or sets the top line of the border. + + + + + Gets or sets the right line of the border. + + + + + Gets or sets the bottom line of the border. + + + + + Gets or sets a value determines that Border must serialize only one line. + + + This property is for internal use only. + + + + + Creates the exact copy of this Border. + + A copy of this border. + + + + + + + + + + Serializes the border. + + Writer object. + Border property name. + Another Border to compare with. + + This method is for internal use only. + + + + + Draw the border using draw event arguments and specified bounding rectangle. + + Draw event arguments. + Bounding rectangle. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Base class for report components that can break across pages. + + + + + Gets or sets a value that determines if the component can break its contents across pages. + + + + + Gets or sets a reference to another similar object that will be used for displaying the + text that not fit in this object. + + + + + + + + + + + Breaks the contents of the object. + + Object to put the part of content to that does not fit in this object. These two + objects must have the same type. + true if there is enough space in this object to display at least one text line. + + + Do not call this method directly, it is used by the report engine. You should override it if + you are writing a new FastReport object. + + + This method must break the contents of the object. The part of content that fit in current object's + bounds should remain in this object, the part that does not fit should be transferred to breakTo + object. + + + + + + Initializes a new instance of the BreakableComponent class with default settings. + + + + + Specifies a line cap style. + + + + + Specifies a line without a cap. + + + + + Specifies a line with a circle cap. + + + + + Specifies a line with a square cap. + + + + + Specifies a line with a diamond cap. + + + + + Specifies a line with an arrow cap. + + + + + Specifies a start and end line caps. + + + + + Gets or sets a width of the cap. + + + + + Gets or sets a height of the cap. + + + + + Gets or sets a cap style. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this object. + + Copy of this object. + + + + + + + + + + Serializes the cap settings. + + Name of the cap property. + Writer object. + Another cap to compare with. + + This method is for internal use only. + + + + + Initializes a new instance of the CapSettings class with default settings. + + + + + Specifies a symbol that will be displayed when a is in the checked state. + + + + + Specifies a check symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a plus symbol. + + + + + Specifies a filled rectangle. + + + + + Specifies a symbol that will be displayed when a is in the unchecked state. + + + + + Specifies no symbol. + + + + + Specifies a diagonal cross symbol. + + + + + Specifies a minus symbol. + + + + + Specifies a slash symbol. + + + + + Specifies a back slash symbol. + + + + + This class represents a column footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + This class represents a column header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of highlight conditions used in the property + of the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies conditions from another collection. + + Collection to copy from. + + + + + + + + + + This class represents a data band footer. + + + + + This class represents a header of the data band. + + + + + Specifies the image format in SVG export. + + + + + Specifies the .png format. + + + + + Specifies the .jpg format. + + + + + Drawing objects to a svg + + + + + For setting namespace, clear all attributes on setting, therefore use this property before setting other svg options + + + + + Initialize a new Graphics for SVG, it's rendered to xml, layer by layer, not one image, + set the Size of this graphics in Size property + + + + + Base class for all fills. + + + + + Returned true if Color = Transparent + + + + + Creates exact copy of this fill. + + Copy of this object. + + + + Creates the GDI+ Brush object. + + Drawing rectangle. + Brush object. + + + + Creates the GDI+ Brush object with scaling. + + Drawing rectangle. + X scaling coefficient. + Y scaling coefficient. + Brush object. + + + + Serializes the fill. + + Writer object. + Name of the fill property. + Fill object to compare with. + + This method is for internal use only. + + + + + Fills the specified rectangle. + + Draw event arguments. + Drawing rectangle. + + + + Class represents the solid fill. + + + + + Gets or sets the fill color. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with Transparent color. + + + + + Initializes the class with specified color. + + + + + + Class represents the linear gradient fill. + + + + + Gets or sets the start color of the gradient. + + + + + Gets or sets the end color of the gradient. + + + + + Gets or sets the angle of the gradient. + + + + + Gets or sets the focus point of the gradient. + + + Value is a floating point value from 0 to 1. + + + + + Gets or sets the gradient contrast. + + + Value is a floating point value from 0 to 1. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with start and end colors. + + Start color. + End color. + + + + Initializes the class with start, end colors and angle. + + Start color. + End color. + Angle. + + + + Initializes the class with start and end colors, angle, focus and contrast. + + Start color. + End color. + Angle. + Focus. + Contrast. + + + + The style of the path gradient. + + + + + Elliptic gradient. + + + + + Rectangular gradient. + + + + + Class represents the path gradient fill. + + + + + Gets or sets the center color of the gradient. + + + + + Gets or sets the edge color of the gradient. + + + + + Gets or sets the style of the gradient. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with center, edge colors and style. + + Center color. + Edge color. + Gradient style. + + + + Class represents the hatch fill. + + + + + Gets or sets the foreground color. + + + + + Gets or sets the background color. + + + + + Gets or sets the hatch style. + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with foreground, background colors and hatch style. + + Foreground color. + Background color. + Hatch style. + + + + Class represents the glass fill. + + + + + Gets or sets the fill color. + + + + + Gets or sets the blend value. + + Value must be between 0 and 1. + + + + + Gets or sets a value determines whether to draw a hatch or not. + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default settings. + + + + + Initializes the class with given color, blend ratio and hatch style. + + Color. + Blend ratio (0..1). + Display the hatch. + + + + Class represents the Texture fill. + + + + + Gets or sets value, indicating that image should preserve aspect ratio + + + + + Gets or sets the image width + + + + + Gets or sets the image height + + + + + Gets or sets the texture wrap mode + + + + + Gets or sets the image index + + + + + Gets or sets the image data + + + + + Image left offset + + + + + Image top offset + + + + + Sets image data to imageData + + input image data + + + + Set image + + input image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes the class with default texture. + + + + + Initializes the class with specified image. + + + + + + Initializes the class with specified image. + + + + + + Font header + + + + + TrueTypeFont object + + + + + Create outline for group of characters + + text as array of glyph's indexes + position of text + font size + text in form of outline vectors + + + + Create outline for text string + + text which will be transformed to outline + position of text + font size in px + text in form of outline vectors + + + + + + + Expected default behaviour as version 2020.3 + + + + + We use dictionary and pack "Index To Location" table (reorder glyph indexes) + + + + + Get or set current script + + + + + Get or set current Language + + + + + Get available scripts + + + + + Get available languages for script + + + + + + + Get available features for language and script + + + + + + + + Prepare tables for drawing, subsetting and so on + + always true + + + + Return raw image of the font + + Array of font bytes + + + + + Parse font supplement tables which store properties of the font + + + + + Create glyph outline assigned to specific position + + unicode character which will be drawn + size of the character + position of outline + outline of character + + + + Get glyph's outline + + unicode charter + outline image size + + + + + Constructor of TrueTypeFont object + + The start of RAW image of font or font collection + Actual address of font within RAW image + + + + Description of SCRIPT_STATE structure + + + + + data + + + + + uBidiLevel + + + + + SetRtl + + + + + Description of SCRIPT_ANALYSIS structure + + + + + data + + + + + state + + + + + Description of SCRIPT_CONTROL structure + + + + + data + + + + + Description of SCRIPT_DIGITSUBSTITUTE structure + + + + + NationalDigitLanguage + + + + + TraditionalDigitLanguage + + + + + DigitSubstitute + + + + + dwReserved + + + + + Description of SCRIPT_ITEM structure + + + + + iCharPos + + + + + analysis + + + + + Description of SCRIPT_VISATTR structure + + + + + data + + + + + Description of GOFFSET structure + + + + + du + + + + + dv + + + + + Description of ABC structure + + + + + abcA + + + + + abcB + + + + + abcC + + + + + Description of FontRect structure + + + + + Description of FontPoint structure + + + + + Description of OutlineTextMetric structure + + + + + Emulation of Uniscribe GetOutlineTextMetrics + + Reference to metric structure + + + + Translate text to positions of glyphs in glyph tables and glyphs width + + + size in px + + + + + + + + + Destructor of TrueTypeFont object + + + + + Font descriptor + + + + + Indicates that the point is the start of a figure. + + + + + Indicates that the point is one of the two endpoints of a line. + + + + + Indicates that the point is an endpoint or control point of a cubic Bézier spline. + + + + + Masks all bits except for the three low-order bits, which indicate the point type. + + + + + Specifies that the point is a marker. + + + + + Specifies that the point is the last point in a closed subpath (figure). + + + + + FontHeader table + + + + + Define type of font file + + + + + Classic TrueType font + + + + + Collection of TrueType fonts + + + + + OpenType font format + + + + + + + + GlyphSubstitution table + + + + + Return true if was applied + + + + + + + + + Return coverageIndex for ApplyForce or if fail then return -1 + + + + + + + + Apply this Substitution with specified coverageIndex, cant be called only after IsApply + + + + + + + + + Table with encoded glyphs' outline + + + + + HorizontalMetrix table + + + + + IndexToLocation table + + + + + Kerning table + + + + + MaximumProfile table + + + + + Name table keep human friendly description about font properties, including font names, author and copyright notes + + + + + OS/2 and Windows Metrics table + + + + + Description of FontTextMetric structure + + + + + Description of FontPanose structure + + + + + Request font file + + System.Drawing.Font object + System/IO.Stream object + + + + Get full path to a font file by it's identifier + + font name with attributes + path to a font file + + + + assign full path to a font file to it's identifier + + font name with attributes + path to a font file + + + + Request font file location + + + + + Request font file location + + + + + Register font file + + + + + Will be removed soon + + + + + Different caching strategies + + + + + Progress callback type definition + + Progress information + + + + Progress callback event + + + + + Open and parse TrueType file + + + + + + + + Find all fonts files in directory and it's subdirectories + + Directory where find fond files + Defines file which collect found fonts + + + + Get TrueType font from static collection + + String which identifies font - family name + "-B" for bold and "-I" for italic + + + + + Get font by its name and bold/italic attributes + + + TrueType font object + + + + Workaround function for avoid font duplicates + + if true then font append to collection, if false then font append to hash + Internal font structure + This parameter defines path to font file if file append to hash. Not used otherwise + + + + Parse raw image of font data and create TrueTypeFont objects from this image + + Defines font or collections + Pointer to memory of raw font data + + + + + Build list of fonts + + Optional path to font.list folder. + + + + Enumerate available fonts + + + + + Base class which is parent of any table in TrueType font or collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines how boolean values are formatted and displayed. + + + + + Gets or sets a string that will be displayed if value is false. + + + + + Gets or sets a string that will be displayed if value is true. + + + + + + + + + + + + + + + + + Initializes a new instance of the BooleanFormat class with default settings. + + + + + Defines how currency values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in currency values. + + + + + Gets or sets the string to use as the decimal separator in currency values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in currency values. + + + + + Gets or sets the string to use as the currency symbol. + + + + + Gets or sets the format pattern for positive currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0$n + 1n$ + 2$ n + 3n $ + + + + + + Gets or sets the format pattern for negative currency values. + + This property can have one of the values in the following table. + The symbol "$" is the CurrencySymbol and n is a number. + + ValueAssociated Pattern + 0 ($n) + 1 -$n + 2 $-n + 3 $n- + 4 (n$) + 5 -n$ + 6 n-$ + 7 n$- + 8 -n $ + 9 -$ n + 10n $- + 11$ n- + 12$ -n + 13n- $ + 14($ n) + 15(n $) + + + + + + + + + + + + + + + + + + Initializes a new instance of the CurrencyFormat class with default settings. + + + + + Represents a format that uses the Format string to display values. + + + + + Gets or sets a format string. + + + Default format is "G". For example, if you want to format a date, use the following + format string: "MM/dd/yyyy". See the System.String.Format method for list + of possible format strings. + + + + + + + + + + + + + + + + + Initializes a new instance of the CustomFormat class with default settings. + + + + + Defines how date values are formatted and displayed. + + + + + + + + Initializes a new instance of the DateFormat class with default settings. + + + + + Base class for all formats. + + + The format is used to format expression value in a object. + + + + + Gets the short format name (e.g. without a "Format" suffix). + + + + + Creates exact copy of this format. + + The copy of this format. + + + + Formats the specified value. + + The value to format. + The string that represents the formatted value. + + + + + + + + + + Represents a collection of formats used by the and + objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + Array of elements to add. + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Copies formats from another collection. + + Collection to copy from. + + + + + + + + + + Represents a format used to display values with no formatting. + + + + + + + + + + + + + + + + + Defines how numeric values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in numeric values. + + + + + Gets or sets the string to use as the decimal separator in numeric values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in numeric values. + + + + + Gets or sets the format pattern for negative numeric values. + + This property can have one of the values in the following table. + The symbol n is a number. + + ValueAssociated Pattern + 0(n) + 1-n + 2- n + 3n- + 4n - + + + + + + + + + + + + + + + + + + Initializes a new instance of the NumberFormat class with default settings. + + + + + Defines how percent values are formatted and displayed. + + + + + Gets or sets a value that determines whether to use system locale settings to format a value. + + + + + Gets or sets the number of decimal places to use in percent values. + + + + + Gets or sets the string to use as the decimal separator in percent values. + + + + + Gets or sets the string that separates groups of digits to the left of the decimal in percent values. + + + + + Gets or sets the string to use as the percent symbol. + + + + + Gets or sets the format pattern for positive percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0n % + 1n% + 2%n + 3% n + + + + + + Gets or sets the format pattern for negative percent values. + + This property can have one of the values in the following table. + The symbol "%" is the PercentSymbol and n is a number. + + ValueAssociated Pattern + 0 -n % + 1 -n% + 2 -%n + 3 %-n + 4 %n- + 5 n-% + 6 n%- + 7 -%n + 8 n %- + 9 % n- + 10% -n + 11n- % + + + + + + + + + + + + + + + + + + Initializes a new instance of the PercentFormat class with default settings. + + + + + Defines how time values are formatted and displayed. + + + + + + + + Initializes a new instance of the TimeFormat class with default settings. + + + + + Represents a group footer band. + + + + + Specifies a sort order. + + + This enumeration is used in the group header and in the "Matrix" object. + + + + + Specifies no sort (natural order). + + + + + Specifies an ascending sort order. + + + + + Specifies a descending sort order. + + + + + Represents a single highlight condition used by the property + of the . + + + + + Gets or sets a highlight expression. + + + This property can contain any valid boolean expression. If value of this expression is true, + the fill and font settings will be applied to the TextObject. + + + + + Gets or sets the visibility flag. + + + If this property is set to false, the Text object will be hidden if the + condition is met. + + + + + + + + + + + Creates exact copy of this condition. + + A copy of this condition. + + + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the hyperlink type. + + + + + Specifies the hyperlink to external URL such as "http://www.fast-report.com", "mailto:" + or any other system command. + + + + + Specifies hyperlink to a given page number. + + + + + Specifies hyperlink to a bookmark. + + + + + Specifies hyperlink to external report. This report will be run when you follow the hyperlink. + + + + + Specifies hyperlink to this report's page. The page will be run when you follow the hyperlink. + + + + + Specifies a custom hyperlink. No actions performed when you click it, you should handle it + in the object's Click event handler. + + + + + This class contains a hyperlink settings. + + + + + Gets or sets the kind of hyperlink. + + + Use the Kind property to define hyperlink's behavior. + The hyperlink may be used to navigate to the external url, the page number, + the bookmark defined by other report object, the external report, the other page of this report, + and custom hyperlink. + + + + + Gets or sets the expression which value will be used for navigation. + + + Normally you should set the Expression property to + any valid expression that will be calculated when this object is about to print. + The value of an expression will be used for navigation. + If you want to navigate to some fixed data (URL or page number, for example), + use the property instead. + + + + + Gets or sets a value that will be used for navigation. + + + Use this property to specify the fixed data (such as URL, page number etc). If you want to + navigate to some dynamically calculated value, use the property instead. + + + + + Gets or sets a value that indicate should be links open in new tab or not. + + + It works for HTML-export only! + + + + + Gets or sets an external report file name. + + + Use this property if is set to DetailReport. + When you follow the hyperlink, this report will be loaded and run. + You also may specify the report's parameter in the property. + + + + + Gets or sets the name of this report's page. + + + Use this property if is set to DetailPage. + When you follow the hyperlink, the specified page will be executed. It may contain the + detailed report. You also may specify the report's parameter in the + property. + + + + + Gets or sets a parameter's name that will be set to hyperlink's value. + + + Use this property if is set to DetailReport or DetailPage. + If you want to pass the hyperlink's value to the report's parameter, specify the + parameter name in this property. This parameter will be set to the hyperlink's value + before running a report. It may be used to display detailed information about clicked item. + It is also possible to pass multiple values to several parameters. If hyperlink's value + contains separators (the separator string can be set in the + property), it will be splitted to several values. That values will be passed to nested parameters + of the ReportParameter (you should create nested parameters by youself). For example, you have + the ReportParameter called "SelectedValue" which has two nested parameters: the first one is + "Employee" and the second is "Category". The hyperlink's value is "Andrew Fuller;Beverages". + It will be splitted to two values: "Andrew Fuller" and "Beverages". The first nested parameter + of the ReportParameter that is "Employee" in our case will be set to "Andrew Fuller"; + the second nested parameter ("Category") will be set to "Beverages". + Note: when you create a parameter in the detailed report, don't forget to set + its DataType property. It is used to convert string values to actual data type. + + + + + + Gets or sets a string that will be used as a separator to pass several values + to the external report parameters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Provides the serialize/deserialize functionality. + + + + + Serializes the object. + + Writer object. + + + + Deserializes the object. + + Reader object. + + + + Implement this interface if your object can contain list of child objects. + + + + + Gets a value indicating that this object can contain the specified child object. + + Child object. + true if this object can contain the specified child object; otherwise, false. + + + + Gets a list of child objects. + + List to fill with values. + + + + Adds a child object to this object's childs. + + Object to add. + + + + Removes a specified object from this object's childs. + + + + + + Returns z-order of the specified child object. + + Child object. + Z-order of the specified object. + + This method must return the index of a specified child object in the internal child list. + + + + + Sets the z-order of the specified object. + + Child object. + New Z-order. + + This method must place the specified child object at the specified position in the internal child list. + + + + + Updates the children layout when the size of this object is changed by dx, dy values. + + X delta. + Y delta. + + This method must update positions/sizes of child objects whose Dock or Anchor properties + are set to non-default values. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Represents an overlay band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + This class contains the page columns settings. + It is used in the property. + + + + + Gets or sets the number of columns. + + + Set this property to 0 or 1 if you don't want to use columns. + + + + + Gets or sets the column width. + + + + + Gets or sets a list of column starting positions. + + + Each value represents a column starting position measured in the millimeters. + + + + + Assigns values from another source. + + Source to assign from. + + + + Represents a page footer band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + + + + Initializes a new instance of the class with default settings. + + + + + Represents a page header band. + + + + + This property is not relevant to this class. + + + + + This property is not relevant to this class. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the alignment of a image in the border. + + + + + Specifies that image is not aligned in the layout rectangle. + + + + + Specifies that image is aligned in the top-left of the layout rectangle. + + + + + Specifies that image is aligned in the top-center of the layout rectangle. + + + + + Specifies that image is aligned in the top-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies that image is aligned in the center-left of the layout rectangle. + + + + + Specifies that image is aligned in the center-center of the layout rectangle. + + + + + Specifies that image is aligned in the center-right of the layout rectangle. + + + + + Specifies the language of the report's script. + + + + + The C# language. + + + + + The VisualBasic.Net language. + + + + + Specifies the quality of text rendering. + + + + + The default text quality, depends on system settings. + + + + + The regular quality. + + + + + The "ClearType" quality. + + + + + The AntiAlias quality. This mode may be used to produce the WYSIWYG text. + + + + + The "SingleBitPerPixel" quality. + + + + + The "SingleBitPerPixelGridFit" quality. + + + + + Specifies the report operation. + + + + + Specifies no operation. + + + + + The report is running. + + + + + The report is printing. + + + + + The report is exporting. + + + + + Specifies the page range to print/export. + + + + + Print all pages. + + + + + Print current page. + + + + + Print pages specified in the PageNumbers property of the PrintSettings. + + + + + The automatic shift mode. + + + + + Do not shift the object. + + + + + Shift the object up or down if any object above it shrinks or grows. + + + + + Shift the object up or down if any object above it shrinks or grows. + Objects must have overlapped x-coordinates. + + + + + Specifies where to print an object. + + + + + Do not print the object. + + + + + Print the object on the first page. If this flag is not set, the object will not + be printed on the first page. + + + + + Print the object on the last page. If this flag is not set, the object will not + be printed on the last page. You should set the report's double pass option to make + it work correctly. + + + + + Print the object on odd pages only. + + + + + Print the object on even pages only. + + + + + Print the object on band with "Repeat on Every Page" flag when that band is repeated. + + + + + Print the object if the report has single page only. + + + + + Specifies the style properties to use when style is applied. + + + + + Use the fill property of the style. + + + + + Use all style properties. + + + + + Holds the list of objects of type. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified owner. + + + + + Provides data for the event. + + + + + Gets a name of the file to load the report from. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The name of the file to load the report from. + The report. + + + + Provides data for the event. + + + + + Gets an expression. + + + + + Gets or sets a object. + + + + + The reference to a report. + + + + + Initializes a new instance of the class using the specified + file name and the report. + + The text of expression. + The name of the file to load the report from. + The report. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Represents the method that will handle the event. + + The source of the event. + The event data. + + + + Provides data for the Progress event. + + + + + Gets a progress message. + + + + + Gets the current page number. + + + + + Gets the number of total pages. + + + + + Initializes a new instance of the class using the specified + message, page number and total number of pages. + + The progress message. + Current page number. + Number of total pages. + + + + Represents the method that will handle the Progress event. + + The source of the event. + The event data. + + + + Provides data for the DatabaseLogin event. + + + + + Gets or sets the connection string. + + + + + Gets or sets an user name. + + + + + Gets or sets a password. + + + + + Initializes a new instance of the class using the specified + connection string. + + The connection string. + + + + Represents the method that will handle the DatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the AfterDatabaseLogin event. + + + + + Gets the DbConnection object. + + + + + Initializes a new instance of the class using + the specified connection. + + The connection object. + + + + Represents the method that will handle the AfterDatabaseLogin event. + + The source of the event. + The event data. + + + + Provides data for the FilterProperties event. + + + + + Gets the property descriptor. + + + + + Gets or sets a value that indicates whether this property should be skipped. + + + + + Represents the method that will handle the FilterProperties event. + + The source of the event. + The event data. + + + + Provides data for the GetPropertyKind event. + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets or sets the kind of property. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Provides data for the GetTypeInstance event. + + + + + Gets the type. + + + + + Gets or sets the instance of type. + + + + + Represents the method that will handle the GetPropertyKind event. + + The source of the event. + The event data. + + + + Event arguments for custom Export parameters + + + + + Used to set custom export parameters + + + + + Specifies the Save Mode of designed report. + + + + + The saving allowed to all. + + + + + The saving in original place. + + + + + The saving allowed to current user. + + + + + The saving allowed to current role/group. + + + + + The saving allowed with other security permissions. + + + + + The saving not allowed. + + + + + Custom saving rules. + + + + + This class represents the report information such as name, author, description etc. + + + + + Gets or sets the name of a report. + + + + + Gets or sets the author of a report. + + + + + Gets or sets the report version. + + + + + Gets or sets the report description. + + + + + Gets or sets the picture associated with a report. + + + + + Gets or sets the report creation date and time. + + + + + Gets or sets a value indicating that report was modified in the designer. + + + + + Gets or sets a value that determines whether to fill the property + automatically. + + + + + Gets or sets the ratio that will be used when generating a preview picture. + + + + + Gets the version of FastReport that was created this report file. + + + + + Gets or sets the Tag string object for this report file. + + + + + Gets or sets SaveMode property. + + + + + Resets all properties to its default values. + + + + + Initializes a new instance of the class with default settings. + + + + + Specifies the default paper size used when creating a new report. + + + + + A4 paper (210 x 297 mm). + + + + + Letter paper (8.5 x 11 inches, 216 x 279 mm). + + + + + Represents a report title band. + + + + + Internal representation of RichText document + + + + + This class represents a RTF run. + + + + + Insert paragraph into list of paragraphs + + + + + Insert row into list of paragraphs + + + + + This class represents a RTF properies. + + + + + This class parses an entiry RTF document. + + + + + + + + + + + + + + + + + Get RTF structure based on range of elements + + + + + + Save RTF document to text stream + + + + + This class represents a RTF document header. + + + Refer to RTF-1.7 spec for detail description + + + + + Parser of RTF header. + + + Return false on finish of header + + + + + This class represents a RTF text paragraph. + + + + + This class detect a RTF control sequences and text. + + + + + This class represents a RTF column description. + + + + + + Create RTF row + + + + + + + Save RTF document to plain text stream + + + + + Specifies a kind of the shape. + + + + + Specifies a rectangle shape. + + + + + Specifies a round rectangle shape. + + + + + Specifies an ellipse shape. + + + + + Specifies a triangle shape. + + + + + Specifies a diamond shape. + + + + + Represents a sort condition used in the . + + + + + Gets or sets an expression used to sort data band rows. + + + This property can contain any valid expression. + + + + + Gets or sets a value indicating that sort must be performed in descending order. + + + + + Serializes the class. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the class. + + Reader object. + + This method is for internal use only. + + + + + Initializes a new instance of the class with default settings. + + + + + Initializes a new instance of the class with specified expression. + + + + + Initializes a new instance of the class with specified expression and sort order. + + + + + Represents a collection of sort conditions used in the . + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Assigns values from another collection. + + Collection to assign from. + + + + Represents a style. + + + + Style class holds border, fill, text fill and font settings. It can be applied to any report object of + type. + + + The Report object holds list of styles in its property. Each style has + unique name. To apply a style to the report component, set its + property to the style name. + + + + + + Gets or sets a name of the style. + + + The name must be unique. + + + + + + + + + + + Creates exact copy of this Style. + + Copy of this style. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of styles used in the . + + + + + Gets or sets the name of the style. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style with specified name. + + The name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style with specified name is in the collection. + + The style name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + + + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file. + + The name of the file. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file. + + The name of the file. + + + + Creates exact copy of this collection. + + The copy of this collection. + + + + Initializes a new instance of the class with default settings. + + + + + Represents a collection of the objects. + + + + + Gets or sets the element at the specified index. + + Index of an element. + The element at the specified index. + + + + Adds the specified elements to the end of this collection. + + + + + + Adds an object to the end of this collection. + + Object to add. + Index of the added object. + + + + Inserts an object into this collection at the specified index. + + The zero-based index at which value should be inserted. + The object to insert. + + + + Removes the specified object from the collection. + + Object to remove. + + + + Returns the zero-based index of the first occurrence of an object. + + The object to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Returns the zero-based index of the first occurrence of a style collection with specified name. + + The style collection name to locate in the collection. + The zero-based index of the first occurrence of value within the entire collection, if found; + otherwise, -1. + + + + Determines whether an element is in the collection. + + The object to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Determines whether a style collection with specified name is in the collection. + + The style collection name to locate in the collection. + true if object is found in the collection; otherwise, false. + + + + Gets an array containing all collection items. + + An array containing all collection items. + + + + Serializes the collection. + + Writer object. + + This method is for internal use only. + + + + + Deserializes the collection. + + Reader object. + + This method is for internal use only. + + + + + Saves the collection to a stream. + + Stream to save to. + + + + Saves the collection to a file with specified name. + + File name to save to. + + + + Loads the collection from a stream. + + Stream to load from. + + + + Loads the collection from a file with specified name. + + Name of a file. + + + + Specifies the horizontal alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the left of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the right of the layout rectangle. + + + + + Specifies that text is aligned in the left and right sides of the layout rectangle. + + + + + Specifies the vertical alignment of a text in the TextObject object. + + + + + Specifies that text is aligned in the top of the layout rectangle. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned in the bottom of the layout rectangle. + + + + + The type of text renderer + + + + + The default render + + + + + Render with some html tags and stable logic + + + + + Render with img tags, span etc. Experimental and unstable logic + + + + + The format of paragraph + + + + + The first line on each paragraph, not effect if value less then 0 + + + + + The distance between lines, not effect if value less then 0 + + + + + The spacing type for distance between line calculation + + + + + The value for a multiplication line height for adding spacing + + + + + Skip the line indent in the first paragraph, for broken paragraphs + + + + + clone with new scale; + + + + + + + The spacing type between lines + + + + + Single spacing, not effect from LineSpacing + + + + + Minimal spacing in exactly size + + + + + The specific distance between the lines, for some exports, does not work if the distance value is too small. + + + + + The calculated distance between lines, for some exports, does not work if the distance value is too small. + + + + + Specifies the behavior of the AutoShrink feature of TextObject. + + + + + AutoShrink is disabled. + + + + + AutoShrink decreases the Font.Size property of the TextObject. + + + + + AutoShrink decreases the FontWidthRatio property of the TextObject. + + + + + Specifies how to display the duplicate values. + + + + + The TextObject can show duplicate values. + + + + + The TextObject with duplicate value will be hidden. + + + + + The TextObject with duplicate value will be shown but with no text. + + + + + Several TextObject objects with the same value will be merged into one TextObject object. + + + + + Specifies how the report engine processes the text objects. + + + + + Specifies the default process mode. The text object is processed just-in-time. + + + + + Specifies that the text object must be processed when the entire report is finished. This mode + can be used to print grand total value (which is normally calculated at the end of report) in the + report title band. + + + + + Specifies that the text object must be processed when the entire report page is finished. This mode + can be used if the report template consists of several report pages. + + + + + Specifies that the text object must be processed when any report page is finished. This mode + can be used to print the page total (which is normally calculated at the page footer) in the + page header band. + + + + + Specifies that the text object must be processed when the column is finished. This mode + can be used to print the column total (which is normally calculated at the column footer) in the + column header band. + + + + + Specifies that the text object must be processed when the data block is finished. This mode can be + used to print a total value in the data header (which is normally available + in the data footer only). + + + + + Specifies that the text object must be processed when the group is finished. This mode can be + used to print a total value in the group header (which is normally available + in the group footer only). + + + + + Specifies that the text object is processed manually when you call the Engine.ProcessObject + method in the report script. + + + + + Represents text outline. + + + + + Gets or sets a value indicating that outline is enabled. + + + + + Enable or disable draw the outline behind of text. + + + + + Gets or sets the outline color. + + + + + Gets or sets the outline width. + + + + + Specifies the style of an outline. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with specified parameters. + + True if outline enabled. + Outline color. + Outline width. + Outline style. + True if outline should be drawn behind text. + + + + Copies the content of another TextOutline. + + The TextOutline instance to copy the contents from. + + + + Creates the exact copy of this outline. + + Copy of this outline. + + + + Serializes the TextOutline. + + Writer object. + TextOutline property name. + Another TextOutline to compare with. + + + + Represents a cache of graphics objects such as pens, brushes, fonts and text formats. + + + Cache holds all used graphics objects. There is no need to dispose objects returned + by GetXXX calls. + + This example demonstrates how to use graphic cache. + + public void Draw(FRPaintEventArgs e) + { + Brush brush = e.Cache.GetBrush(BackColor); + Pen pen = e.Cache.GetPen(BorderColor, 1, BorderStyle); + e.Graphics.FillRectangle(brush, Bounds); + e.Graphics.DrawRectangle(pen, Bounds); + } + + + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + The Pen object. + + + + Gets a pen with specified settings. + + Color of a pen. + Width of a pen. + Dash style of a pen. + Line join of a pen. + The Pen object. + + + + Gets a brush with specified color. + + Color of a brush. + The SolidBrush object. + + + + Gets a font with specified settings. + + Name of a font. + Size of a font. + Style of a font. + The Font object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + The StringFormat object. + + + + Gets a string format with specified settings. + + Text alignment information on the vertical plane. + Line alignment on the horizontal plane. + StringTrimming enumeration. + StringFormatFlags enumeration that contains formatting information. + The number of spaces between the beginning of a line of text and the first tab stop. + Distance between tab stops. + Default distance between default tabs stops. + The StringFormat object. + + + + Disposes resources used by this object. + + + + + Initializes a new instance of the GraphicCache class with default settings. + + + + + A strongly typed object that readily casts an intrinsic + object to the other intrinsic types when possible. + + + The Variant class is an intrinsic object container structure + inspired by Visual Basic 6.0's Variant. The key features + of a Variant class include the ability to perform typecasts and + arithmetic between types that are not normally considered compatible. + For example, if a Variant class contains a string describing a + number, such as "1.1", then floating point arithmetic can be + performed on it. + Variants are normally considered dangerous because they + strip away the effectiveness of type safety, which is the + reason why the Visual Basic 6.0 Variant was left out of + Visual Basic .NET. However, this implementation restores the + Variant structure, both as a proof of concept and as a + restoration of the utility and positive merits of the Variant + where it can be used responsibly. + + + + + Creates a strongly typed object that readily casts a primitive + object to the other primitive types when possible. + + + + + The actual value being stored in its original , + returned as an . + + + + + The of the property. + + + + + Returns the for this instance. + + The enumerated constant that is the + of the class or value type that implements this interface. + + + + Returns the string equivalent of the property. + + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + The object after typecasting. + + + + Attempts to convert or typecast to the specified type. + + The type to convert or cast to. + An + interface implementation that supplies culture-specific formatting information. + The object after typecasting. + + + + Returns true if the property implements + + + + + Returns true if the property + is a numeric intrinsic value. + + + + + Returns true if the property + is a numeric intrinsic value or else can be parsed into + a numeric intrinsic value. + + + + + Returns true if the value is a date or can be parsed into a date. + + + + + Returns true if the value is a TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent value using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent 16-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent double-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent single-precision floating-point number using the + specified culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent Decimal number using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 8-bit signed integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 16-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 32-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent 64-bit unsigned integer using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTime using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent TimeSpan using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance to + an equivalent DateTimeOffset using the specified culture-specific + formatting information. + + The culture-specific formatting information. + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character. + + + + + If is a , returns + as-is. Otherwise, attempts to convert the value of this instance + to an equivalent Unicode character using the specified + culture-specific formatting information. + + The culture-specific formatting information. + + + + Addition operator. + + + If the value on the right is a + or a , + the Variant is converted to a string and appended. + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Subtraction operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Unary minus operator. + + + + + Greater than operator. + + + + + Greater than or equal operator. + + + + + Less than operator. + + + + + Less than or equal operator. + + + + + Multiplication operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Division operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Modulus operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise And operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Bitwise Or operator. + + + If the value on the right or the Variant + is a , arithmetic + is performed on the property and the + resulting value is set to the DateTime type. + Otherwise, if the value on the right is a number, both + the Variant and the value on the right are + converted to a , the arithmetic + is performed, and the resulting value is converted back to the + original type that the Variant previously represented. + If the type that the Variant previously represented + cannot contain the resulting value--such as if the type is a + and the value is -12--then the + type will be converted to a type that can contain + the value, such as . + + + + A new containing the resulting value. + + + + Inequality operator. + + + + + The opposite of == + + + + + Equality operator. + First attempts to compare the left value after + temporarily converting it to the type of the right value. + If the conversion cannot occur, such as if the value is not an + intrinsic value type, the comparison occurs at the + level using Object.Equals. + + + + + + + + Equality operator. + + + + + + + + Equality operator. + + + + + + + + Returns property unless the value on the right + is null. If the value on the right is null, returns "". + + + + + + Converts the value of this instance to an equivalent + using the specified culture-specific formatting information. + + + + + + + See . + + + + + + See . + + + + + + + Converts an object to a boolean. + For any type, if null, returns false. + For Boolean: true/false. + For String: "", "false", "0", etc. == false; + "1", "true", etc. == true, else true. + For numeric intrinsics: 0 == false, else true. + For any other non-null object, returns true. + + The string to be converted + The boolean value of this string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the watermark image size mode. + + + + + Specifies the normal (original) size. + + + + + Specifies the centered image. + + + + + Specifies the stretched image. + + + + + Specifies the stretched image that keeps its aspect ratio. + + + + + Specifies the tiled image. + + + + + Specifies the watermark text rotation. + + + + + Specifies a horizontal text. + + + + + Specifies a vertical text. + + + + + Specifies a diagonal text. + + + + + Specifies a backward diagonal text. + + + + + Represents the report page watermark. + + + Watermark can draw text and/or image behind the page objects on in front of them. To enable + watermark, set its Enabled property to true. + + + + + Gets or sets avalue indicating that watermark is enabled. + + + + + Gets or sets the watermark image. + + + + + Gets or sets the watermark image size mode. + + + + + Gets or sets an image transparency. + + + Valid values are 0..1. 1 means totally transparent image. + + + + + Gets or sets the watermark text. + + + + + Gets or sets a font of the watermark text. + + + + + Gets or sets a text fill. + + + + + Gets or sets a text rotation. + + + + + Gets or sets a value indicates that the text should be displayed on top of all page objects. + + + + + Gets or sets a value indicates that the image should be displayed on top of all page objects. + + + + + + + + + + Draws watermark image. + + + + + + + + + Draws watermark text. + + + + + + + + + Serializes the watermark. + + Writer object. + The watermark property name. + Another Watermark object to compare with. + + This method is for internal use only. + + + + + Disposes resources used by the watermark. + + + + + Assigns values from another source. + + Source to assign from. + + + + Creates exact copy of this Watermark. + + Copy of this watermark. + + + + Initializes a new instance of the class with default settings. + + + + + An SVG element to render circles to the document. + + + + + Gets the center point of the circle. + + The center. + + + + Gets the representing this element. + + + + + Renders the circle to the specified object. + + The graphics object. + + + + Initializes a new instance of the class. + + + + + Represents and SVG ellipse element. + + + + + Gets the for this element. + + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Initializes a new instance of the class. + + + + + Represents and SVG image + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + Represents and SVG line element. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an element that is using a GraphicsPath as rendering base. + + + + + SvgPolygon defines a closed shape consisting of a set of connected straight line segments. + + + + + The points that make up the SvgPolygon + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + SvgPolyline defines a set of connected straight line segments. Typically, defines open shapes. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Represents an SVG rectangle that could also have rounded edges. + + + + + Initializes a new instance of the class. + + + + + Gets an representing the top left point of the rectangle. + + + + + Gets or sets the position where the left point of the rectangle should start. + + + + + Gets or sets the position where the top point of the rectangle should start. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets or sets the X-radius of the rounded edges of this rectangle. + + + + + Gets or sets the Y-radius of the rounded edges of this rectangle. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Gets the for this element. + + + + + Renders the and contents to the specified object. + + + + + The class that all SVG elements should derive from when they are to be rendered. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Gets the associated if one has been specified. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets the algorithm which is to be used to determine the clipping region. + + + + + Gets the associated if one has been specified. + + + + + Gets or sets a value to determine if anti-aliasing should occur when the element is being rendered. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the fill of the to the specified + + The object to render to. + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Gets or sets a value to determine whether the element will be rendered. + + + + + Gets or sets a value to determine whether the element will be rendered. + Needed to support SVG attribute display="none" + + + + + Gets or sets the fill of this element. + + + + + Defines the methods and properties that an must implement to support clipping. + + + + + Gets or sets the ID of the associated if one has been specified. + + + + + Specifies the rule used to define the clipping region when the element is within a . + + + + + Sets the clipping region of the specified . + + The to have its clipping region set. + + + + Resets the clipping region of the specified back to where it was before the method was called. + + The to have its clipping region reset. + + + + Defines a path that can be used by other elements. + + + + + Specifies the coordinate system for the clipping path. + + + + + Initializes a new instance of the class. + + + + + Gets this 's region to be used as a clipping region. + + A new containing the to be used for clipping. + + + + + + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Indicates the algorithm which is to be used to determine the clipping region. + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from + that point to infinity in any direction and then examining the places where a segment of the + shape crosses the ray. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside. + + + + + This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside. + + + + + Provides properties and methods to be implemented by view port elements. + + + + + Gets or sets the viewport of the element. + + + + + Description of SvgAspectRatio. + + + + Specifies the color space for gradient interpolations, color animations and alpha compositing. + When a child element is blended into a background, the value of the ‘color-interpolation’ property on the child determines the type of blending, not the value of the ‘color-interpolation’ on the parent. For gradients which make use of the ‘xlink:href’ attribute to reference another gradient, the gradient uses the ‘color-interpolation’ property value from the gradient element which is directly referenced by the ‘fill’ or ‘stroke’ property. When animating colors, color interpolation is performed according to the value of the ‘color-interpolation’ property on the element being animated. + + + Indicates that the user agent can choose either the sRGB or linearRGB spaces for color interpolation. This option indicates that the author doesn't require that color interpolation occur in a particular color space. + + + Indicates that color interpolation should occur in the sRGB color space. + + + Indicates that color interpolation should occur in the linearized RGB color space as described above. + + + The value is inherited from the parent element. + + + Defines the coordinate system for attributes ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’. + + + If markerUnits="strokeWidth", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in a coordinate system which has a single unit equal the size in user units of the current stroke width (see the ‘stroke-width’ property) in place for the graphic object referencing the marker. + + + If markerUnits="userSpaceOnUse", ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’ represent values in the current user coordinate system in place for the graphic object referencing the marker (i.e., the user coordinate system for the element referencing the ‘marker’ element via a ‘marker’, ‘marker-start’, ‘marker-mid’ or ‘marker-end’ property). + + + + Defines the various coordinate units certain SVG elements may use. + + + + + Indicates that the coordinate system of the owner element is to be used. + + + + + Indicates that the coordinate system of the entire document is to be used. + + + + This is the descriptor for the style of a font and takes the same values as the 'font-style' property, except that a comma-separated list is permitted. + + + Indicates that the font-face supplies all styles (normal, oblique and italic). + + + Specifies a font that is classified as 'normal' in the UA's font database. + + + Specifies a font that is classified as 'oblique' in the UA's font database. Fonts with Oblique, Slanted, or Incline in their names will typically be labeled 'oblique' in the font database. A font that is labeled 'oblique' in the UA's font database may actually have been generated by electronically slanting a normal font. + + + Specifies a font that is classified as 'italic' in the UA's font database, or, if that is not available, one labeled 'oblique'. Fonts with Italic, Cursive, or Kursiv in their names will typically be labeled 'italic' + + + The weight of a face relative to others in the same font family. + + + All font weights. + + + The value is inherited from the parent element. + + + Same as . + + + Same as . + + + One font weight darker than the parent element. + + + One font weight lighter than the parent element. + + + + + + + + + + + + Same as . + + + + + + + + + Same as . + + + + + + + + + + Represents an orientation in an Scalable Vector Graphics document. + + + + + Gets the value of the unit. + + + + + Gets the value of the unit. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Overflow is not rendered. + + + The value is inherited from the parent element. + + + The overflow is rendered - same as "visible". + + + Overflow is rendered. + + + Overflow causes a scrollbar to appear (horizontal, vertical or both). + + + + Represents a list of used with the and . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + This property describes decorations that are added to the text of an element. Conforming SVG Viewers are not required to support the blink value. + + + The value is inherited from the parent element. + + + The text is not decorated + + + The text is underlined. + + + The text is overlined. + + + The text is struck through. + + + The text will blink. + + + Indicates the type of adjustments which the user agent shall make to make the rendered length of the text match the value specified on the ‘textLength’ attribute. + + The user agent is required to achieve correct start and end positions for the text strings, but the locations of intermediate glyphs are not predictable because user agents might employ advanced algorithms to stretch or compress text strings in order to balance correct start and end positioning with optimal typography. + Note that, for a text string that contains n characters, the adjustments to the advance values often occur only for n−1 characters (see description of attribute ‘textLength’), whereas stretching or compressing of the glyphs will be applied to all n characters. + + + + Indicates that only the advance values are adjusted. The glyphs themselves are not stretched or compressed. + + + Indicates that the advance values are adjusted and the glyphs themselves stretched or compressed in one axis (i.e., a direction parallel to the inline-progression-direction). + + + Indicates the method by which text should be rendered along the path. + + + Indicates that the glyphs should be rendered using simple 2x3 transformations such that there is no stretching/warping of the glyphs. Typically, supplemental rotation, scaling and translation transformations are done for each glyph to be rendered. As a result, with align, fonts where the glyphs are designed to be connected (e.g., cursive fonts), the connections may not align properly when text is rendered along a path. + + + Indicates that the glyph outlines will be converted into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. + + + Indicates how the user agent should determine the spacing between glyphs that are to be rendered along a path. + + + Indicates that the glyphs should be rendered exactly according to the spacing rules as specified in Text on a path layout rules. + + + Indicates that the user agent should use text-on-a-path layout algorithms to adjust the spacing between glyphs in order to achieve visually appealing results. + + + + Represents a unit in an Scalable Vector Graphics document. + + + + + Gets and empty . + + + + + Gets an with a value of none. + + + + + Gets a value to determine whether the unit is empty. + + + + + Gets whether this unit is none. + + + + + Gets the value of the unit. + + + + + Gets the of unit. + + + + + Converts the current unit to one that can be used at render time. + + The container element used as the basis for calculations + The representation of the current unit in a device value (usually pixels). + + + + Converts the current unit to a percentage, if applicable. + + An of type . + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The type. + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Defines the various types of unit an can be. + + + + + Indicates that the unit holds no value. + + + + + Indicates that the unit is in pixels. + + + + + Indicates that the unit is equal to the pt size of the current font. + + + + + Indicates that the unit is equal to the x-height of the current font. + + + + + Indicates that the unit is a percentage. + + + + + Indicates that the unit has no unit identifier and is a value in the current user coordinate system. + + + + + Indicates the the unit is in inches. + + + + + Indicates that the unit is in centimeters. + + + + + Indicates that the unit is in millimeters. + + + + + Indicates that the unit is in picas. + + + + + Indicates that the unit is in points, the smallest unit of measure, being a subdivision of the larger . There are 12 points in the . + + + + + Represents a list of . + + + + + A class to convert string into instances. + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + It is often desirable to specify that a given set of graphics stretch to fit a particular container element. The viewBox attribute provides this capability. + + + + + Gets or sets the position where the viewport starts horizontally. + + + + + Gets or sets the position where the viewport starts vertically. + + + + + Gets or sets the width of the viewport. + + + + + Gets or sets the height of the viewport. + + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value. + The result of the conversion. + + + + Initializes a new instance of the struct. + + The min X. + The min Y. + The width. + The height. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Represents a list of re-usable SVG components. + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An represents an SVG fragment that can be the root element or an embedded fragment of an SVG document. + + + + + Gets the SVG namespace string. + + + + + Gets or sets the position where the left point of the svg should start. + + + + + Gets or sets the position where the top point of the svg should start. + + + + + Gets or sets the width of the fragment. + + The width. + + + + Gets or sets the height of the fragment. + + The height. + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Indicates which font family is to be used to render the text. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Gets the for this element. + + + + + + Gets the bounds of the svg element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + An element used to group SVG shapes. + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + The �switch� element evaluates the �requiredFeatures�, �requiredExtensions� and �systemLanguage� attributes on its direct child elements in order, and then processes and renders the first child for which these attributes evaluate to true + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + An element used to group SVG shapes. + + + + + Gets or sets the viewport of the element. + + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Applies the required transforms to . + + The to be transformed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Initializes a new instance of the class. + + + + + The �foreignObject� element allows for inclusion of a foreign namespace which has its graphical content drawn by a different user agent + + + + + Gets the for this element. + + + + + + Gets the bounds of the element. + + The bounds. + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + matrix | saturate | hueRotate | luminanceToAlpha + Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix. If attribute �type� is not specified, then the effect is as if a value of matrix were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + + Gets or sets the radius of the blur (only allows for one value - not the two specified in the SVG Spec) + + + + + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the x-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + The amount to offset the input graphic along the y-axis. The offset amount is expressed in the coordinate system established by attribute �primitiveUnits� on the �filter� element. + If the attribute is not specified, then the effect is as if a value of 0 were specified. + Note: this is not used in calculations to bitmap - used only to allow for svg xml output + + + + + A filter effect consists of a series of graphics operations that are applied to a given source graphic to produce a modified graphical result. + + + + + Gets or sets the position where the left point of the filter. + + + + + Gets or sets the position where the top point of the filter. + + + + + Gets or sets the width of the resulting filter graphic. + + + + + Gets or sets the height of the resulting filter graphic. + + + + + Gets or sets the color-interpolation-filters of the resulting filter graphic. + NOT currently mapped through to bitmap + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Publish the element name to be able to differentiate non-svg elements. + + + + If specified, upon conversion, the default value will result in 'null'. + + + Creates a new instance. + + + Creates a new instance. + Specified the default value of the enum. + + + Attempts to convert the provided value to . + + + Attempts to convert the value to the destination type. + + + + Defines the methods and properties required for an SVG element to be styled. + + + + + Converts string representations of colours into objects. + + + + + Converts the given object to the converter's native type. + + A that provides a format context. You can use this object to get additional information about the environment from which this converter is being invoked. + A that specifies the culture to represent the color. + The object to convert. + + An representing the converted value. + + The conversion cannot be performed. + + + + + + + Converts HSL color (with HSL specified from 0 to 1) to RGB color. + Taken from http://www.geekymonkey.com/Programming/CSharp/RGB2HSL_HSL2RGB.htm + + + + + + + + + An unspecified . + + + + + A that should inherit from its parent. + + + + + A wrapper for a paint server which isn't defined currently in the parse process, but + should be defined by the time the image needs to render. + + + + + A wrapper for a paint server has a fallback if the primary server doesn't work. + + + + + Provides the base class for all paint servers that wish to render a gradient. + + + + + Initializes a new instance of the class. + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Gets the ramp of colors to use on a gradient. + + + + + Specifies what happens if the gradient starts or ends inside the bounds of the target rectangle. + + + + + Gets or sets the coordinate system of the gradient. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Gets a representing the 's gradient stops. + + The parent . + The opacity of the colour blend. + + + Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle. + + Possible values are: 'pad', which says to use the terminal colors of the gradient to fill the remainder of the target region, 'reflect', which says to reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled, and repeat, which says to repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + If the attribute is not specified, the effect is as if a value of 'pad' were specified. + + + + Use the terminal colors of the gradient to fill the remainder of the target region. + + + Reflect the gradient pattern start-to-end, end-to-start, start-to-end, etc. continuously until the target rectangle is filled. + + + Repeat the gradient pattern start-to-end, start-to-end, start-to-end, etc. continuously until the target region is filled. + + + + Represents a colour stop in a gradient. + + + + + Gets or sets the offset, i.e. where the stop begins from the beginning, of the gradient stop. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the gradient stop (0-1). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The offset. + The colour. + + + + + Render this marker using the slope of the given line segment + + + + + + + + + Render this marker using the average of the slopes of the two given line segments + + + + + + + + + + Common code for rendering a marker once the orientation angle has been calculated + + + + + + + + + Create a pen that can be used to render this marker + + + + + + + Get a clone of the current path, scaled for the stroke width + + + + + + Adjust the given value to account for the width of the viewbox in the viewport + + + + + + + Adjust the given value to account for the height of the viewbox in the viewport + + + + + + + Represents the base class for all paint servers that are intended to be used as a fill or stroke. + + + + + An unspecified . + + + + + Initializes a new instance of the class. + + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + A pattern is used to fill or stroke an object using a pre-defined graphic object which can be replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. + + + + + Specifies a supplemental transformation which is applied on top of any + transformations necessary to create a new pattern coordinate system. + + + + + Gets or sets the aspect of the viewport. + + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the width of the pattern. + + + + + Gets or sets the height of the pattern. + + + + + Gets or sets the X-axis location of the pattern. + + + + + Gets or sets the Y-axis location of the pattern. + + + + + Gets or sets another gradient fill from which to inherit the stops from. + + + + + Initializes a new instance of the class. + + + + + Gets a representing the current paint server. + + The owner . + The opacity of the brush. + + + + Determine how much (approximately) the path must be scaled to contain the rectangle + + Bounds that the path must contain + Path of the gradient + Scale factor + + This method continually transforms the rectangle (fewer points) until it is contained by the path + and returns the result of the search. The scale factor is set to a constant 95% + + + + Specifies the shape to be used at the end of open subpaths when they are stroked. + + + The value is inherited from the parent element. + + + The ends of the subpaths are square but do not extend past the end of the subpath. + + + The ends of the subpaths are rounded. + + + The ends of the subpaths are square. + + + Specifies the shape to be used at the corners of paths or basic shapes when they are stroked. + + + The value is inherited from the parent element. + + + The corners of the paths are joined sharply. + + + The corners of the paths are rounded off. + + + The corners of the paths are "flattened". + + + + Represents an SVG path element. + + + + + Gets or sets a of path data. + + + + + Gets or sets the length of the path. + + + + + Gets or sets the marker (end cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets or sets the marker (start cap) of the path. + + + + + Gets the for this element. + + + + + Gets the bounds of the element. + + The bounds. + + + + Initializes a new instance of the class. + + + + + Renders the stroke of the to the specified + + The object to render to. + + + + Parses the specified string into a collection of path segments. + + A containing path data. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if and contains relative coordinate values, otherwise false. + that contains absolute coordinates. + + + + Creates point with absolute coorindates. + + Raw X-coordinate value. + Raw Y-coordinate value. + Current path segments. + true if contains relative coordinate value, otherwise false. + true if contains relative coordinate value, otherwise false. + that contains absolute coordinates. + + + + Convenience wrapper around a graphics object + + + + + Initializes a new instance of the class. + + + + + Creates a new from the specified . + + from which to create the new . + + + + Creates a new from the specified . + + The to create the renderer from. + + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + Based of parent. If parents are also not set, then + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed, crisp edges and geometric precision, but with geometric precision given more importance than speed and crisp edges. + + true + + + + Indicates that the user agent shall emphasize rendering speed over geometric precision and crisp edges. This option will sometimes cause the user agent to turn off shape anti-aliasing. + + false + + + + Indicates that the user agent shall attempt to emphasize the contrast between clean edges of artwork over rendering speed and geometric precision. To achieve crisp edges, the user agent might turn off anti-aliasing for all lines and curves or possibly just for straight lines which are close to vertical or horizontal. Also, the user agent might adjust line positions and line widths to align edges with device pixels. + + false + + + + Indicates that the user agent shall emphasize geometric precision over speed and crisp edges. + + false + + + + The creator of SVG content might want to provide a hint about what tradeoffs to make as the browser renders text. The text-rendering attribute provides these hints. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/text-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the browser shall make appropriate tradeoffs to balance speed, legibility and geometric precision, but with legibility given more importance than speed and geometric precision. + + + + + Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision. This option will sometimes cause some browsers to turn off text anti-aliasing. + + + + + Indicates that the browser shall emphasize legibility over rendering speed and geometric precision. The user agent will often choose whether to apply anti-aliasing techniques, built-in font hinting or both to produce the most legible text. + + + + + Indicates that the browser shall emphasize geometric precision over legibility and rendering speed. This option will usually cause the user agent to suspend the use of hinting so that glyph outlines are drawn with comparable geometric precision to the rendering of path data. + + + + + The image-rendering attribute provides a hint to the browser about how to make speed vs. quality tradeoffs as it performs image processing. + + https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/image-rendering + Not Implemented yet. + + + + Indicates that the SVG shape rendering properties from the parent will be used. + + + + + Indicates that the user agent shall make appropriate tradeoffs to balance speed and quality, but quality shall be given more importance than speed. + + + + + Indicates that the user agent shall emphasize rendering speed over quality. + + + + + Indicates that the user agent shall emphasize quality over rendering speed. + + + + + Specifies the SVG attribute name of the associated property. + + + + + Gets a containing the XLink namespace (http://www.w3.org/1999/xlink). + + + + + When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. + + An to compare with this instance of . + + true if this instance equals ; otherwise, false. + + + + + Gets the name of the SVG attribute. + + + + + Gets the name of the SVG attribute. + + + + + Gets the namespace of the SVG attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified attribute name. + + The name of the SVG attribute. + + + + Initializes a new instance of the class with the specified SVG attribute name and namespace. + + The name of the SVG attribute. + The namespace of the SVG attribute (e.g. http://www.w3.org/2000/svg). + + + + A collection of Scalable Vector Attributes that can be inherited from the owner elements ancestors. + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name. + + The type of the attribute value. + A containing the name of the attribute. + The value to return if a value hasn't already been specified. + The attribute value if available; otherwise the default value of . + + + + Gets the attribute with the specified name and inherits from ancestors if there is no attribute set. + + The type of the attribute value. + A containing the name of the attribute. + The attribute value if available; otherwise the ancestors value for the same attribute; otherwise the default value of . + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + A collection of Custom Attributes + + + + + Initialises a new instance of a with the given as the owner. + + The owner of the collection. + + + + Gets the attribute with the specified name. + + A containing the attribute name. + The attribute value associated with the specified name; If there is no attribute the parent's value will be inherited. + + + + Fired when an Atrribute has changed + + + + + Create a deep copy of this . + + A deep copy of this + + + + Holds a dictionary of the default values of the SVG specification + + + + + Checks whether the property value is the default value of the svg definition. + + Name of the svg attribute + .NET value of the attribute + + + + The class used to create and load SVG documents. + + + + + Initializes a new instance of the class. + + + + + Gets an for this document. + + + + + Overwrites the current IdManager with a custom implementation. + Be careful with this: If elements have been inserted into the document before, + you have to take care that the new IdManager also knows of them. + + + + + + Gets or sets the Pixels Per Inch of the rendered image. + + + + + Gets or sets an external Cascading Style Sheet (CSS) + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + An with the contents loaded. + The document at the specified cannot be found. + + + + Opens the document at the specified path and loads the SVG contents. + + A containing the path of the file to open. + A dictionary of custom entity definitions to be used when resolving XML entities within the document. + An with the contents loaded. + The document at the specified cannot be found. + + + + Attempts to open an SVG document from the specified . + + The containing the SVG document to open. + + + + Attempts to create an SVG document from the specified string data. + + The SVG data. + + + + Opens an SVG document from the specified and adds the specified entities. + + The containing the SVG document to open. + Custom entity definitions. + The parameter cannot be null. + + + + Opens an SVG document from the specified . + + The containing the SVG document XML. + The parameter cannot be null. + + + + Renders the to the specified . + + The to render the document with. + The parameter cannot be null. + + + + Renders the to the specified . + + The to be rendered to. + The parameter cannot be null. + + + + Renders the and returns the image as a . + + A containing the rendered document. + + + + Renders the into a given Bitmap . + + + + + Renders the in given size and returns the image as a . + + A containing the rendered document. + + + + If both or one of raster height and width is not given (0), calculate that missing value from original SVG size + while keeping original SVG size ratio + + + + + + + + Maps a URI to an object containing the actual resource. + + The URI returned from + The current implementation does not use this parameter when resolving URIs. This is provided for future extensibility purposes. For example, this can be mapped to the xlink:role and used as an implementation specific argument in other scenarios. + The type of object to return. The current implementation only returns System.IO.Stream objects. + + A System.IO.Stream object or null if a type other than stream is specified. + + + is neither null nor a Stream type. + The specified URI is not an absolute URI. + + is null. + There is a runtime error (for example, an interrupted server connection). + + + + The base class of which all SVG elements are derived from. + + + + + Gets the name of the element. + + + + + Gets or sets the color of this element which drives the currentColor property. + + + + + Gets or sets the content of the element. + + + + + Gets an of all events belonging to the element. + + + + + Occurs when the element is loaded. + + + + + Gets a collection of all child . + + + + + Gets a value to determine whether the element has children. + + + + + Gets the parent . + + An if one exists; otherwise null. + + + + Gets the owner . + + + + + Gets a collection of element attributes. + + + + + Gets a collection of custom attributes + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + Gets or sets the element transforms. + + The transforms. + + + + Gets or sets the ID of the element. + + The ID is already used within the . + + + + Gets or sets the space handling. + + The space handling. + + + + Only used by the ID Manager + + + + + + Called by the underlying when an element has been added to the + collection. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Fired when an Element was added to the children of this Element + + + + + Calls the method with the specified parameters. + + The that has been added. + An representing the index where the element was added to the collection. + + + + Called by the underlying when an element has been removed from the + collection. + + The that has been removed. + + + + Calls the method with the specified as the parameter. + + The that has been removed. + + + + Initializes a new instance of the class. + + + + + Renders this element to the . + + The that the element should use to render itself. + + + Derrived classes may decide that the element should not be written. For example, the text element shouldn't be written if it's empty. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Renders the children of this . + + The to render the child s to. + + + + Renders the and contents to the specified object. + + The object to render to. + + + + Recursive method to add up the paths of all children + + + + + + + Recursive method to add up the paths of all children + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Fired when an Atrribute of this Element has changed + + + + + Fired when an Atrribute of this Element has changed + + + + + Gets or sets a value indicating whether this element's is dirty. + + + true if the path is dirty; otherwise, false. + + + + + Force recreation of the paths for the element and it's children. + + + + + Gets or sets the fill of this element. + + + + + Gets or sets the to be used when rendering a stroke around this element. + + + + + Gets or sets the opacity of this element's . + + + + + Gets or sets the width of the stroke (if the property has a valid value specified. + + + + + Gets or sets the opacity of the stroke, if the property has been specified. 1.0 is fully opaque; 0.0 is transparent. + + + + + Gets or sets the colour of the gradient stop. + + + + + Gets or sets the opacity of the element. 1.0 is fully opaque; 0.0 is transparent. + + + + + Refers to the AnitAlias rendering of shapes. + + + + + Gets or sets the text anchor. + + + + + Specifies dominant-baseline positioning of text. + + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Refers to the boldness of the font. + + + + + Set all font information. + + + + + Get the font information based on data stored with the text object or inherited from the parent. + + + + + + Describes the Attribute which was set + + + + + Content of this whas was set + + + + + Describes the Attribute which was set + + + + + Represents the state of the mouse at the moment the event occured. + + + + + 1 = left, 2 = middle, 3 = right + + + + + Amount of mouse clicks, e.g. 2 for double click + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Represents a string argument + + + + + Alt modifier key pressed + + + + + Shift modifier key pressed + + + + + Control modifier key pressed + + + + + Create a deep copy of this . + + A deep copy of this + + + This interface mostly indicates that a node is not to be drawn when rendering the SVG. + + + + Specifies the SVG name of an . + + + + + Gets the name of the SVG element. + + + + + Initializes a new instance of the class with the specified element name; + + The name of the SVG element. + + + + Represents a collection of s. + + + + + Initialises a new instance of an class. + + The owner of the collection. + + + + Returns the index of the specified in the collection. + + The to search for. + The index of the element if it is present; otherwise -1. + + + + Inserts the given to the collection at the specified index. + + The index that the should be added at. + The to be added. + + + + expensive recursive search for nodes of type T + + + + + + + expensive recursive search for first node of type T + + + + + + + Provides the methods required in order to parse and create instances from XML. + + + + + Gets a list of available types that can be used when creating an . + + + + + Creates an from the current node in the specified . + + The containing the node to parse into an . + The parameter cannot be null. + The CreateDocument method can only be used to parse root <svg> elements. + + + + Creates an from the current node in the specified . + + The containing the node to parse into a subclass of . + The that the created element belongs to. + The and parameters cannot be null. + + + + Contains information about a type inheriting from . + + + + + Gets the SVG name of the . + + + + + Gets the of the subclass. + + + + + Initializes a new instance of the struct. + + Name of the element. + Type of the element. + + + + Initializes a new instance of the class. + + + + + Provides methods to ensure element ID's are valid and unique. + + + + + Retrieves the with the specified ID. + + A containing the ID of the element to find. + An of one exists with the specified ID; otherwise false. + + + + Adds the specified for ID management. + + The to be managed. + + + + Adds the specified for ID management. + And can auto fix the ID if it already exists or it starts with a number. + + The to be managed. + Pass true here, if you want the ID to be fixed + If not null, the action is called before the id is fixed + true, if ID was altered + + + + Removed the specified from ID management. + + The to be removed from ID management. + + + + Ensures that the specified ID is valid within the containing . + + A containing the ID to validate. + Creates a new unique id . + + The ID cannot start with a digit. + An element with the same ID already exists within the containing . + + + + + Initialises a new instance of an . + + The containing the s to manage. + + + + Svg helpers + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + Gets the text value of the current node. + + + The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + + + + Gets the local name of the current node. + + + The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + + + + Moves to the next attribute. + + + true if there is a next attribute; false if there are no more attributes. + + + + + Reads the next node from the stream. + + + true if the next node was read successfully; false if there are no more nodes to read. + + An error occurred while parsing the XML. + + + + Resolves the entity reference for EntityReference nodes. + + + + + http://stackoverflow.com/questions/3633000/net-enumerate-winforms-font-styles + + + + + Evaluates the integral of the function over the integral using the specified number of points + + + + + + + + http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + + http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/bezier-der.html + + + + Indicates which font family is to be used to render the text. + + + + + Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + + + + + Refers to the style of the font. + + + + + Refers to the varient of the font. + + + + + Refers to the boldness of the font. + + + + + Gets or sets a of path data. + + + + + Gets the for this element. + + + + + Initializes a new instance of the class. + + + + + The element defines a graphics element consisting of text. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Text anchor is used to align (start-, middle- or end-alignment) a string of text relative to a given point. + + + + The value is inherited from the parent element. + + + + The rendered characters are aligned such that the start of the text string is at the initial current text position. + + + + + The rendered characters are aligned such that the middle of the text string is at the current text position. + + + + + The rendered characters are aligned such that the end of the text string is at the initial current text position. + + + + + Gets or sets the text to be rendered. + + + + + Gets or sets the X. + + The X. + + + + Gets or sets the dX. + + The dX. + + + + Gets or sets the Y. + + The Y. + + + + Gets or sets the dY. + + The dY. + + + + Gets or sets the rotate. + + The rotate. + + + + The pre-calculated length of the text + + + + + Gets or sets the text anchor. + + The text anchor. + + + + Specifies spacing behavior between text characters. + + + + + Specifies spacing behavior between words. + + + + + Gets or sets the fill. + + + Unlike other s, has a default fill of black rather than transparent. + + The fill. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the bounds of the element. + + The bounds. + + + + Renders the and contents to the specified object. + + The object to render to. + Necessary to make sure that any internal tspan elements get rendered as well + + + + Gets the for this element. + + + + + + Sets the path on this element and all child elements. Uses the state + object to track the state of the drawing + + State of the drawing operation + + + + Prepare the text according to the whitespace handling rules. SVG Spec. + + Text to be prepared + Prepared text + + + Empty text elements are not legal - only write this element if it has children. + + + + The element defines a graphics element consisting of text. + + + + + Represents and element that may be transformed. + + + + + Gets or sets an of element transforms. + + + + + Applies the required transforms to . + + The to be transformed. + + + + Removes any previously applied transforms from the specified . + + The that should have transforms removed. + + + + The class which applies custom transform to this Matrix (Required for projects created by the Inkscape). + + + + + The class which applies the specified shear vector to this Matrix. + + + + + The class which applies the specified skew vector to this Matrix. + + + + + Multiplies all matrices + + The result of all transforms + + + + Fired when an SvgTransform has changed + + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + An that provides a format context. + The to use as the current culture. + The to convert. + + An that represents the converted value. + + The conversion cannot be performed. + + + The maximum allowed codepoint (defined in Unicode). + + + + Return the shortest form possible + + + + + exposed enumeration for the adding of separators into term lists + + + + + An implementation that generates + human-readable description of the selector. + + + + + Initializes the text. + + + + + Gets the generated human-readable description text. + + + + + Generates human-readable for a selector in a group. + + + + + Concludes the text. + + + + + Adds to the generated human-readable text. + + + + + Generates human-readable text of this type selector. + + + + + Generates human-readable text of this universal selector. + + + + + Generates human-readable text of this ID selector. + + + + + Generates human-readable text of this class selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this attribute selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this pseudo-class selector. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates human-readable text of this combinator. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates human-readable text of this combinator. + + + + + Represents a selectors implementation for an arbitrary document/node system. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent an implementation that is responsible for generating + an implementation for a selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits the closing/conclusion of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + Represent a type or attribute name. + + + + + Represents a name from either the default or any namespace + in a target document, depending on whether a default namespace is + in effect or not. + + + + + Represents an empty namespace. + + + + + Represents any namespace. + + + + + Initializes an instance with a namespace prefix specification. + + + + + Gets the raw text value of this instance. + + + + + Indicates whether this instance represents a name + from either the default or any namespace in a target + document, depending on whether a default namespace is + in effect or not. + + + + + Indicates whether this instance represents a name + from any namespace (including one without one) + in a target document. + + + + + Indicates whether this instance represents a name + without a namespace in a target document. + + + + + Indicates whether this instance represents a name from a + specific namespace or not. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and another are equal. + + + + + Returns the hash code for this instance. + + + + + Returns a string representation of this instance. + + + + + Formats this namespace together with a name. + + + + + Semantic parser for CSS selector grammar. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a CSS selector group and generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Parses a tokenized stream representing a CSS selector group and + generates its implementation. + + + + + Adds reading semantics to a base with the + option to un-read and insert new elements while consuming the source. + + + + + Initialize a new with a base + object. + + + + + Initialize a new with a base + object. + + + + + Indicates whether there is, at least, one value waiting to be read or not. + + + + + Pushes back a new value that will be returned on the next read. + + + + + Reads and returns the next value. + + + + + Peeks the next value waiting to be read. + + + Thrown if there is no value waiting to be read. + + + + + Returns an enumerator that iterates through the remaining + values to be read. + + + + + Disposes the enumerator used to initialize this object + if that enumerator supports . + + + + + Represents a selector implementation over an arbitrary type of elements. + + + + + A selector generator implementation for an arbitrary document/element system. + + + + + Initializes a new instance of this object with an instance + of and the default equality + comparer that is used for determining if two elements are equal. + + + + + Initializes a new instance of this object with an instance + of and an equality comparer + used for determining if two elements are equal. + + + + + Gets the selector implementation. + + + If the generation is not complete, this property returns the + last generated selector. + + + + + Gets the instance that this object + was initialized with. + + + + + Returns the collection of selector implementations representing + a group. + + + If the generation is not complete, this method return the + selectors generated so far in a group. + + + + + Adds a generated selector. + + + + + Delimits the initialization of a generation. + + + + + Delimits a selector generation in a group of selectors. + + + + + Delimits the closing/conclusion of a generation. + + + + + Generates a ID selector, + which represents an element instance that has an identifier that + matches the identifier in the ID selector. + + + + + Generates a class selector, + which is an alternative when + representing the class attribute. + + + + + Generates a type selector, + which represents an instance of the element type in the document tree. + + + + + Generates a universal selector, + any single element in the document tree in any namespace + (including those without a namespace) if no default namespace + has been specified for selectors. + + + + + Generates an attribute selector + that represents an element with the given attribute + whatever the values of the attribute. + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute + and whose value is a whitespace-separated list of words, one of + which is exactly . + + + + + Generates an attribute selector + that represents an element with the given attribute , + its value either being exactly or beginning + with immediately followed by "-" (U+002D). + + + + + Generates an attribute selector + that represents an element with the attribute + whose value begins with the prefix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value ends with the suffix . + + + + + Generates an attribute selector + that represents an element with the attribute + whose value contains at least one instance of the substring . + + + + + Generates a pseudo-class selector, + which represents an element that is the first child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the last child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child of some other element. + + + + + Generates a pseudo-class selector, + which represents an element that has a parent element and whose parent + element has no other element children. + + + + + Generates a pseudo-class selector, + which represents an element that has no children at all. + + + + + Generates a combinator, + which represents a childhood relationship between two elements. + + + + + Generates a combinator, + which represents a relationship between two elements where one element is an + arbitrary descendant of some ancestor element. + + + + + Generates a combinator, + which represents elements that share the same parent in the document tree and + where the first element immediately precedes the second element. + + + + + Generates a combinator, + which separates two sequences of simple selectors. The elements represented + by the two sequences share the same parent in the document tree and the + element represented by the first sequence precedes (not necessarily + immediately) the element represented by the second one. + + + + + Generates a pseudo-class selector, + which represents an element that is the N-th child from bottom up of some other element. + + + + + An implementation that delegates + to two other objects, which + can be useful for doing work in a single pass. + + + + + Gets the first generator used to initialize this generator. + + + + + Gets the second generator used to initialize this generator. + + + + + Initializes a new instance of + with the two other objects + it delegates to. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Delegates to then generator. + + + + + Implementation for a selectors compiler that supports caching. + + + This class is primarily targeted for developers of selection + over an arbitrary document model. + + + + + Creates a caching selectors compiler on top on an existing compiler. + + + + + Creates a caching selectors compiler on top on an existing compiler. + An addition parameter specified a dictionary to use as the cache. + + + If is null then this method uses a + the implementation with an + ordinally case-insensitive selectors text comparer. + + + + + Represent a token and optionally any text associated with it. + + + + + Gets the kind/type/class of the token. + + + + + Gets text, if any, associated with the token. + + + + + Creates an end-of-input token. + + + + + Creates a star token. + + + + + Creates a dot token. + + + + + Creates a colon token. + + + + + Creates a comma token. + + + + + Creates a right parenthesis token. + + + + + Creates an equals token. + + + + + Creates a left bracket token. + + + + + Creates a right bracket token. + + + + + Creates a pipe (vertical line) token. + + + + + Creates a plus token. + + + + + Creates a greater token. + + + + + Creates an includes token. + + + + + Creates a dash-match token. + + + + + Creates a prefix-match token. + + + + + Creates a suffix-match token. + + + + + Creates a substring-match token. + + + + + Creates a general sibling token. + + + + + Creates an identifier token. + + + + + Creates an integer token. + + + + + Creates a hash-name token. + + + + + Creates a white-space token. + + + + + Creates a string token. + + + + + Creates a function token. + + + + + Creates an arbitrary character token. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Indicates whether the current object is equal to another object of the same type. + + + + + Gets a string representation of the token. + + + + + Performs a logical comparison of the two tokens to determine + whether they are equal. + + + + + Performs a logical comparison of the two tokens to determine + whether they are inequal. + + + + + Lexer for tokens in CSS selector grammar. + + + + + Parses tokens from a given text source. + + + + + Parses tokens from a given string. + + + + + Represents the classification of a token. + + + + + Represents end of input/file/stream + + + + + Represents {ident} + + + + + Represents "#" {name} + + + + + Represents "~=" + + + + + Represents "|=" + + + + + Represents "^=" + + + + + Represents "$=" + + + + + Represents "*=" + + + + + Represents {string} + + + + + Represents S* "+" + + + + + Represents S* ">" + + + + + Represents [ \t\r\n\f]+ + + + + + Represents {ident} ")" + + + + + Represents [0-9]+ + + + + + Represents S* "~" + + + + + Represents an arbitrary character + + +
+
diff --git a/SW/_FRReporting/bin/Debug/_FRReporting.dll b/SW/_FRReporting/bin/Debug/_FRReporting.dll index 3357e75..6d192e5 100644 Binary files a/SW/_FRReporting/bin/Debug/_FRReporting.dll and b/SW/_FRReporting/bin/Debug/_FRReporting.dll differ diff --git a/SW/_FRReporting/bin/Debug/_FRReporting.pdb b/SW/_FRReporting/bin/Debug/_FRReporting.pdb index fd7d9bc..da8d5e9 100644 Binary files a/SW/_FRReporting/bin/Debug/_FRReporting.pdb and b/SW/_FRReporting/bin/Debug/_FRReporting.pdb differ diff --git a/SW/_FRReporting/bin/Debug/_FRReporting.xml b/SW/_FRReporting/bin/Debug/_FRReporting.xml index 44c3ea8..064c1c8 100644 --- a/SW/_FRReporting/bin/Debug/_FRReporting.xml +++ b/SW/_FRReporting/bin/Debug/_FRReporting.xml @@ -6,6 +6,22 @@ _FRReporting + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + Purpose: Data Access class for the table 'Auswertung'. @@ -1307,21 +1323,5 @@ Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - diff --git a/SW/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb b/SW/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb new file mode 100644 index 0000000..6ffebde --- /dev/null +++ b/SW/_FRReporting/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.vb @@ -0,0 +1,7 @@ +' + Option Strict Off + Option Explicit On + + Imports System + Imports System.Reflection + diff --git a/SW/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SW/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 84bfc4a..7b136b4 100644 Binary files a/SW/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/SW/_FRReporting/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.dll b/SW/_FRReporting/obj/Debug/_FRReporting.dll index 3357e75..6d192e5 100644 Binary files a/SW/_FRReporting/obj/Debug/_FRReporting.dll and b/SW/_FRReporting/obj/Debug/_FRReporting.dll differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.pdb b/SW/_FRReporting/obj/Debug/_FRReporting.pdb index fd7d9bc..da8d5e9 100644 Binary files a/SW/_FRReporting/obj/Debug/_FRReporting.pdb and b/SW/_FRReporting/obj/Debug/_FRReporting.pdb differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache new file mode 100644 index 0000000..a2bbf55 Binary files /dev/null and b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.AssemblyReference.cache differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CopyComplete b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache index 669c15d..98f1e0f 100644 --- a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache +++ b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.CoreCompileInputs.cache @@ -1 +1 @@ -181d73c918182e9005763635adfcf98b6ad93090 +3dbe5bba246cb55d0d3e802aa649926a00e713bc diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt index 84aa0d9..9f13f78 100644 --- a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt +++ b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.FileListAbsolute.txt @@ -43,8 +43,12 @@ E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\ E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Bars.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Editor.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\C1.Win.C1TrueDBGrid.2.xml E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.dll -E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbprojResolveAssemblyReference.cache E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FlexCel.dll E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\XLSLib.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.Compat.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.DataVisualization.dll +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\bin\Debug\FastReport.xml +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.CoreCompileInputs.cache +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.CopyComplete +E:\Software-Projekte\TKBDiverse\Assessment_Management\SW\_FRReporting\obj\Debug\_FRReporting.vbproj.AssemblyReference.cache diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.Cache b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.Cache index 7f4c774..149a20a 100644 Binary files a/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.Cache and b/SW/_FRReporting/obj/Debug/_FRReporting.vbproj.GenerateResource.Cache differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.vbprojResolveAssemblyReference.cache b/SW/_FRReporting/obj/Debug/_FRReporting.vbprojResolveAssemblyReference.cache deleted file mode 100644 index 6ac6371..0000000 Binary files a/SW/_FRReporting/obj/Debug/_FRReporting.vbprojResolveAssemblyReference.cache and /dev/null differ diff --git a/SW/_FRReporting/obj/Debug/_FRReporting.xml b/SW/_FRReporting/obj/Debug/_FRReporting.xml index 44c3ea8..064c1c8 100644 --- a/SW/_FRReporting/obj/Debug/_FRReporting.xml +++ b/SW/_FRReporting/obj/Debug/_FRReporting.xml @@ -6,6 +6,22 @@ _FRReporting + + + Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + + Purpose: Data Access class for the table 'Auswertung'. @@ -1307,21 +1323,5 @@ Prüft, ob das Security-Objekt bereits auf der DB vorhanden ist - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - diff --git a/SW/_FRReporting/obj/Debug/_frreporting.dll.licenses b/SW/_FRReporting/obj/Debug/_frreporting.dll.licenses index 3d323a3..28c3c05 100644 Binary files a/SW/_FRReporting/obj/Debug/_frreporting.dll.licenses and b/SW/_FRReporting/obj/Debug/_frreporting.dll.licenses differ